【OpenCV3】级联分类器训练——traincascade快速使用详解
上一篇(OpenCV3中的級聯分類器目標檢測——cv::CascadeClassifier簡介)介紹了如何使用級聯分類器進行目標檢測。這里,我們介紹一下如何訓練自己的級聯分類器。
至于原理這里就不再進行詳細介紹了,直接說明如何進行訓練。在opencv的安裝目錄中的bin文件夾下有兩個可執行文件opencv_createsamples.exe和opencv_traincascade.exe。將這兩個文件拷貝到訓練文件夾下,并將正、負樣本的文件夾和描述文件——positive_samples.txt和negative_samples.txt也拷貝到這個文件夾下。同時,新建兩個.bat文件——create_positive_samples.bat和traincascade.bat,新建一個文件夾data。這樣,訓練目錄如下:
1、制作正樣本
首先是制作和收集正樣本圖片,并將正樣本圖像的大小進行統一縮放(如40*40),然后在正樣本描述文件中,添加對正樣本的描述,形式如下:
然后在create_positive_samples.bat文件中添加如下內容:
其中,-info字段填寫正樣本描述文件;-vec用于保存制作的正樣本;-num制定正樣本的數目;-w和-h分別指定正樣本的寬和高。
保存,雙擊這個文件,開始制作正樣本:
這樣,正樣本制作完成。
2、級聯分類器訓練
下面進行級聯分類器的訓練,在traincascade.bat中輸入如下內容
字段說明如下:
-data:指定保存訓練結果的文件夾;
-vec:指定正樣本集;
-bg:指定負樣本的描述文件夾;
-numPos:指定每一級參與訓練的正樣本的數目(要小于正樣本總數);
-numNeg:指定每一級參與訓練的負樣本的數目(可以大于負樣本圖片的總數);
-numStage:訓練的級數;
-w:正樣本的寬;
-h:正樣本的高;
-minHitRate:每一級需要達到的命中率(一般取值0.95-0.995);
-maxFalseAlarmRate:每一級所允許的最大誤檢率;
-mode:使用Haar-like特征時使用,可選BASIC、CORE或者ALL;
另外,還可指定以下字段:
-featureType:可選HAAR或LBP,默認為HAAR;
其他字段將不再說明。
保存,雙擊執行,開始漫長的訓練過程(訓練可中斷,中斷后再執行,會繼續中斷前的訓練)
訓練結束后,data文件夾下會生成如下訓練結果:
cascade.xml文件即為最終的訓練結果,即可拿來進行目標檢測,參考OpenCV3中的級聯分類器目標檢測——cv::CascadeClassifier簡介。
2017.04.15
總結
以上是生活随笔為你收集整理的【OpenCV3】级联分类器训练——traincascade快速使用详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【OpenCV3】级联分类器目标检测——
- 下一篇: 【python图像处理】直线和曲线的拟合