下载自:http://blog.csdn.net/sangni007/article/details/7622681
在这里介绍一种简单的Facel方法。项目主页这里,作者David S. Bolme and J. Ross Beveridge来自Colorado State University。FaceL是一个基于OpenCV python接口实现的视频捕捉,人脸标注(Labeling),训练(Training),和识别(Classification)的一条龙软件。从官方的视频看,效果很靠谱!
label可以是人的身份(Identity),也可以是表情(expression),或者你可以去label带墨镜和不带墨镜。怎么说都只是个标签而已,分类器才不管具体是什么意思。FaceL用的是LibSVM的Python接口,训练直接集成并且实时在线。
要做到上面的功能,都有现成的算法。看起来FaceL的功劳就是把所有的东西攒起来,不过这已经够意思了,可以省了很多Computer Vision从业开发人员的时间。但是更牛逼的是FaceL的还实现了一个叫ASEF的eye tracker,相当靠谱精确,而且很快,就是一遍卷积。算法来自于作者自己在09年CVPR上paper: Average of synthetic exact filters。
ASEF就是,FFT+卷积,具体步骤:
1.对原图像,利用LUT做颜色值的log变换;(使对数变换之后FFT能更加清楚反映出频谱跳变)
2.加上一个全0通道,进行FFT变换;(FFT正逆变换都是双通道操作,分别实部虚部)
3.分别载入训练好的左右眼Filter文件,FFT变换,双通道;
4.MulSpectrums频谱相乘;
5.FFT逆变换,分离保留实部通道;
6.在预先设定好的矩形框内寻找,cvMinMaxLoc(rroi, NULL, NULL, NULL, &reye);指向返回的最大值的位置指针
其中:Filter文件是提前训练好的,通过人工标注,FFT变换,训练一组图像,得到平均值。