在春节前,终于完成了人脸表情识别的实现,在这里简述一下实现的基本原理。
首先是人脸识别,可以采用的方法是基于SVM支持向量机来对人脸进行提取,opencv自带有识别功能较好xml文件,在data文件中,可以直接调用。
但是在实现识别的过程当中,我仍然尝试了自己训练xml文件并使用,其中训练人脸识别的xml训练分为4步:
1、准备好样本文件,分为正样本和负样本,其中正样本为不同的人脸图像,网上可以找到很多库;负样本为其他的图像,需要保证的是不包含人脸,且差别越大越好,正负比例约为1:2~3。
2、将正样本进行尺寸调整,减小尺寸会减少训练时间,我的尺寸规定为24*24。
3、使用cmd读取正负样本的名称,正文本名称需加上相对路径,转化为两个txt文件。
4、分别使用opencv自带的opencv_createsamples.exe和opencv_haartraining.exe文件来对txt文件进行训练,分别生成vec文件和xml文件。
我参照的博客地址:http://www.cnblogs.com/tornadomeet/archive/2012/03/28/2420936.html
这时,就可以使用训练出来的xml文件识别出人脸部位了。
接下来是表情的识别,我采用的是BP 神经网络对人脸表情的特征识别,具体参照的是车牌识别的识别。
其中包括将表情文件打包 ,BP训练表情生成xml文件,预测函数预测表情类型,输出参数和识别度。
在做好可以识别出表情步骤后,合并以上步骤,即以下4步:
1、训练BP文件
2、调取摄像头获得图像
3、图像识别抠出人脸部分
4、人脸部分的表情识别
代码已上传:
http://download.csdn.net/detail/qq_34470213/9744999
网友评论