天天看點

windows環境下使用opencv訓練級聯分類器traincascade

基于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。

windows環境下使用opencv訓練級聯分類器traincascade

build2檔案夾自己建。選擇環境,本人vs2015,x64平台。點configure後。等待結束。

添加contrib檔案夾路徑,上面一個打勾。

windows環境下使用opencv訓練級聯分類器traincascade

再點選configure,結束後,點選Generate,結束後,點選Open Project.

2.

windows環境下使用opencv訓練級聯分類器traincascade

Debug X64

windows環境下使用opencv訓練級聯分類器traincascade

右擊解決方案‘Opencv’,點生成解決方案。

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

檔案就是訓練好的分類器