刚开始打算用JAVA调用OPENCV进行人脸检测,但发现配置起来的难度实在略高啊。如果用JAVA写的话,推荐直接使用FACE++。
本篇文章里,PO主使用VS2010用C++调用OPENCV进行人脸检测。
以下是PO主在实践过程中遇到的问题及笔记,希望对大家有帮助。
1、安装及配置OPENCV:
http://blog.csdn.net/morewindows/article/details/8225783
2、
出现错误:
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方案:
项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。
3、1>LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d240d.lib”
解决办法:
opencv_calib3d240d.lib
opencv_contrib240d.lib
opencv_core240d.lib
opencv_features2d240d.lib
opencv_flann240d.lib
opencv_gpu240d.lib
opencv_highgui240d.lib
opencv_imgproc240d.lib
opencv_legacy240d.lib
opencv_ml240d.lib
opencv_objdetect240d.lib
opencv_ts240d.lib
opencv_video240d.lib
是OPENCV版本不一致,把240改成244
4、目前参考这篇文章:VS2010+Opencv-2.4.0的配置攻略
http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html
5、 fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
解决方法:
因为机器是64位机器,所以在工程的配置管理器上要选择x64方式,而不是win32。
6、 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
本篇文章里,PO主使用VS2010用C++调用OPENCV进行人脸检测。
以下是PO主在实践过程中遇到的问题及笔记,希望对大家有帮助。
1、安装及配置OPENCV:
http://blog.csdn.net/morewindows/article/details/8225783
2、
出现错误:
1>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方案:
项目\属性\配置属性\清单工具\输入和输出\嵌入清单:原来是“是”,改成“否”。
3、1>LINK : fatal error LNK1104: 无法打开文件“opencv_calib3d240d.lib”
解决办法:
opencv_calib3d240d.lib
opencv_contrib240d.lib
opencv_core240d.lib
opencv_features2d240d.lib
opencv_flann240d.lib
opencv_gpu240d.lib
opencv_highgui240d.lib
opencv_imgproc240d.lib
opencv_legacy240d.lib
opencv_ml240d.lib
opencv_objdetect240d.lib
opencv_ts240d.lib
opencv_video240d.lib
是OPENCV版本不一致,把240改成244
4、目前参考这篇文章:VS2010+Opencv-2.4.0的配置攻略
http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html
5、 fatal error LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
解决方法:
因为机器是64位机器,所以在工程的配置管理器上要选择x64方式,而不是win32。
6、 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
终极解决方案:
VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。
在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,解决方案为:
第一步:与上相同。
第二步:将 项目|项目属性|配置属性|连接器|清单文件|嵌入清单 “是”改为“否”。
第三步:一般计算机经过上两步设置就能解决问题了,但是如果还有问题,那就按一下方法解决:
计算机是否为64bit操作系统,如是,继续2。
查找是否有两个cvtres.exe。一个是C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe, 另一个是C:\Windows\Microsoft.NET\Framework\v
4.0.30319\cvtres.exe。右键属性|详细信息 查看两者版本号,删除/重命名较旧的版本,或者重新设置Path变量。
意外的是,治本的办法是第三步,删除旧版本的cvtres.exe后,就不需要每次都设置配置了。
http://blog.csdn.net/morewindows/article/details/8426318
8、haartraining
http://www.cnblogs.com/tornadomeet/archive/2012/03/22/2411318.html
OpenCV 之 HaarTraining 算法剖析(训练一个Haar分类器的步骤与强分类器流程的简述)
OPENCV根目录下的DOC目录下也有haartraining步骤文档
详细得不得了的步骤:
http://wenku.baidu.com/view/f327303683c4bb4cf7ecd18a.html
最后PO主训练出了自己的分类器,但是正确率偏低,远远比不上OPENCV自带的。总的来说,这次学习经历还是比较愉快的:)
最后附上两个下载地址:
haarconv.exe生成分类器XML文件
http://download.csdn.net/detail/sheila_2013/7608487
自训练adaboost分类器
http://download.csdn.net/detail/sheila_2013/7608473