项目一:kinect的人脸识别(水)

写在前面的话:

学校这个创新项目始于12年12月,终于14年4月,带头老师长期游走于计算机图形学/模式识别这一领域,她很优秀,相比之下我们就显得有点不给力了,昨天项目审核的时候,审核老师的评价差不多是不上不下、一般般。回头一想,可以优化的地方不胜枚举,故吾辈要踏实勤奋。



审核老师审核原则:

1)你做了什么

2)你实现了什么

3)结果如何,跟前人工作有什么异同


在我们项目审核之前,我顺带记录了一下前面几个小组的情况:

1、云判题系统的推荐算法

老师评价:与云无关,协同推荐算法也失败,最后不了了之。

项目负责任是个学长,acm得过区域赛铜牌,现在在华为实习,编程能力为我等膜拜。不过,他在这项目上没怎么花心思,被审核老师怒草也是合情合理。

2、图像检索:图像像相似度判断、文字图像内容提取

老师评价:蛮好的。【这是不干这行的老师说的,汗!尼玛明明用了opencv的api,你当我看不出来,这老师,哎】

他们讲了很多关于sift算法的细节,实现了提取图片中的文字内容,但表情识别这块作假被老师一眼看穿。。。

3、基于kinect的2.5维人脸识别【我自己所在的项目组】

老师评价:尝试实现人脸身份识别,但效果不理想,就这样吧。

我们用了高大上的kinect,并利用它完成了数据采集工作,并借助icp算法完成了人脸的鉴别,当然演示的时候显示误判。。。





项目从始至终都处于一个游离的状态,我觉得这也是低效的一个重要原理,我们先12月开始到隔年3月份学习了计算机视觉基本概念和熟悉c#和kinect,我直到13年暑假才把《kinect人机交互开发实践》和《kinect应用开发实战》两本书仔细看完了,这样我就知道了基本的手势识别、图像采集等知识。


        然后又学习了一个学长关于人脸重构的毕设代码,这代码感觉还是蛮好的,用到了asm等算法还有面片分割等四项,尼玛由于是基于mfc的,所以现在回忆代码我也只能几个大概思想了,如图:

            项目一:kinect的人脸识别(水)_第1张图片                                 


通过上面学长的毕设代码,我对人脸有了一个基础认识,后面再企图实现疲劳驾驶的时候,我们直接借用了kinect的内部类faceTracking来获取人脸约120个特征点的点坐标,原理图如下,利用这些点坐标我们尝试实现perclos算法,后来发现不适用perclos算法,然后这块就停在这里了,直到项目结束了。。。

项目一:kinect的人脸识别(水)_第2张图片




好在组长的人脸识别模块做得有模有样,不然我们就要被怒草了。

人脸注册:
1)› 根据鼻尖对准(矩阵平移)
2)› 根据三个特征点姿态矫正(矩阵旋转)
3)› ICP 算法迭代

     项目一:kinect的人脸识别(水)_第3张图片              

我们来看帅哥:

项目一:kinect的人脸识别(水)_第4张图片


                                     


             

                                           


就这样愉快地结束了。

写在最后的话:

通过这个项目,我并没有学到很多牛逼的技能,我至今也不是对kinect很有好感,感觉用kinect的时候是我离码农最近的时候,那不明就里的感觉不是很好。时间过了一年,我一直问自己,平时这么忙,可为什么感觉自己并没有做什么实在的事。


比如我学opencv,文档过了一遍,也会稍稍实践了一丢丢api,但两三个月过去后opencv就跟我从此是陌路人了,我觉得这里面有两个原因:1)自己没有静下心来再A4纸上重绘一下opencv的结构 。  2)没有进行大量编程的实践,学了只是过场似的学了,根本没有技术变现。


我们说,世界总归是积极为主流的,虽然打酱油一年了,但我也不是一无所获:

1)认识了优秀的老师和学长,他们总是给我很多前瞻性的建议

2)知道自己效率原来这么低,还是要踏实

3)知道了一点与人沟通的必要性

4)我接触到了很多东西的皮毛:opencv、人脸识别的概念、kinect

5)原来很多时候,编程就是ctrl+c、v,当然牛人会在这基础上做自己的创新,显然我不是。。。

6)养成了上知网查资料的习惯

你可能感兴趣的:(文章)