关于人脸识别,已经学习了一些比较基础的东西,基本上供从零开始的朋友一起学习。
首先,人脸识别的预处理分为三部分:人脸检测,关键点检测以及人脸的规整化,然后是人脸识别,将图片转换为向量,存到数据库,最后每次查询时,输入人脸经过预处理,人脸识别,得到向量,与数据库对比,找出相近的向量。
1.OPenCV的配置
按照这个教程来配置OPENCV,妥妥的。
http://my.phirobot.com/blog/2014-02-opencv_configuration_in_vs.html
2.人脸检测,我用的是于仕其的算法,在github上有动态链接库,可以直接调用,据说已经是极好的人脸检测算法。
链接是https://github.com/ShiqiYu/libfacedetection,输出的参数是人脸框出的矩形的左上角的坐标,以及长和宽的值。还有人脸的偏转角度等其他参数。
3.关键点检测,我用的是一个外国人的算法,在github上有源码,链接是https://github.com/uricamic/flandmark。在他的例子里面,人脸检测用的是普通的算法,不是于仕其的。我将其换成于仕其的算法,输出是两只眼睛的左右点,以及嘴巴的左右点,和鼻子。