基于opencv3.4.1(https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download)+contrib(https://github.com/opencv/opencv_contrib/releases),下载相应版本。cmake下载msi版本。(https://cmake.org/files/)
一、配置过程。
1.打开cmake。
build2文件夹自己建。选择环境,本人vs2015,x64平台。点configure后。等待结束。
添加contrib文件夹路径,上面一个打勾。
再点击configure,结束后,点击Generate,结束后,点击Open Project.
2.
3.找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”-->“仅生成INSTALL”:
二、Opencv的配置
打开vs2015,新建空文件。
属性管理器:
Debug|x64
Microsoft.Cpp.x64.user属性
1.包含目录:
D:\Program Files\opencv\build2\install\include
D:\Program Files\opencv\build2\install\include\opencv
D:\Program Files\opencv\build2\install\include\opencv2
2.库目录:
D:\Program Files\opencv\build2\install\x64\vc14\lib
3.链接器->输入
opencv_world341d.lib
opencv_img_hash341d.lib
三、利用opencv训练基于Haar特征、LBP特征、Hog特征的分类器cascade.xml
opencv_createsamplesd.exe
opencv_traincascaded.exe
这两个exe执行程序的路径为:
D:\Program Files\opencv\build2\install\x64\vc14\bin
1、搜集正样本、负样本
正样本:只含有目标的局部图(若是全图,则需要把目标截取出来,比如训练人脸,则把人脸从含有人脸的图片中截取出来,尺寸要一致),且背景不要太过复杂,灰度图
正样本大小:20*20(一般用于Haar特征),24*24(LBP特征)
正样本数量:一般大于等于2000
负样本:不含目标的任何图片,灰度图
负样本大小:60*60
负样本数量:一般大于等于5000
注:正样本尺寸越小,训练的时间越短,但正样本的尺寸要保证小于负样本的尺寸
2、在路径D:\Program Files\opencv\build2\install\x64\vc14\bin下新建3个文件夹:pos、neg、xml
3、将正样本、负样本分别复制到pos文件夹、neg文件夹
4、cmd打开dos命令窗口,进入pos路径下
输入以下命令,生成pos.txt
dir/b >pos.txt
生成pos.txt后,将png替换为:
png 1 0 0 24 24
删除最后一行的pos.txt
5、同样进入neg路径下
- 输入以下命令,生成neg.txt
dir/b >neg.txt
生成neg.txt后,将neg.txt中的图片名字前面加入路径:
neg/
删除最后一行的neg.txt
6、进入路径D:\Program Files\opencv\build2\install\x64\vc14\bin,即pos、neg、xml所在的路径,输入以下命令,生成pos.vec
opencv_createsamplesd.exe -info pos\pos.txt -vec pos.vec -bg neg\neg.txt -num 2000 -w 24 -h 24
1
7、输入以下命令开始训练
opencv_traincascaded.exe -data xml -vec pos.vec -bg neg\neg.txt -numPos 1800 -numNeg 4000 -numStages 20 -featureType LBP -w 24 -h 24
8、训练结束后,xml
文件夹下的cascade.xml
文件就是训练好的分类器