【原/轉】opencv的級聯分類器訓練與分類全程記錄


眾所周知,opencv下有自帶的供人臉識別以及行人檢測的分類器,也就是說已經有現成的xml文件供你用。如果我們不做人臉識別或者行人檢測,而是想做點其他的目標檢測該怎么做呢?答案自然是自己訓練一個特定的訓練器。opencv里面比較常用的分類器有svm以及級聯分類器,svm的訓練以及分類很簡單,這里不再贅述,這里談談級聯分類器的訓練。級聯分類器可是好東西,opencv已經封裝了多尺度檢測方法(multiScaleDetector)以及繪制外接矩形的方法,這兩個方法為目標檢測提供了非常大的便利性。以下是本系列教程的總體流程:

1.訓練前的准備:opencv_createsamples.exe和 opencv_traincascade.exe程序的編譯

2.級聯分類器的訓練

3.級聯分類器的應用

===================

1.訓練的准備在開始訓練分類器前需要先獲取到opencv_createsamples.exe以及opencv_traincascade.exe,有兩種方式:第一自己編譯,可以按照博客的內容自己編譯,不過按照該方法最后運行出來的結果沒有這兩個可執行程序產生;第二拿別人編譯好的文件,從鏈接http://en.pudn.com/downloads204/sourcecode/graph/texture_mapping/detail958471_en.html處下載整個工程,在bin目錄下有這兩個文件,不過是opencv2.2版本的不影響,要用的時候把整個工程的文件(exe+dll)同時拷出來,否則會報“找不到dll”的錯誤。

2.分類器的訓練:

按照帖子http://jingyan.baidu.com/article/4dc40848f50689c8d946f197.html的操作一步步做下去,注意事項見:

http://blog.csdn.net/xidianzhimeng/article/details/10470839

結合自己的經驗補充如下:

1.在train時,numPos是指每個stage上用的正樣本數,一般取vec里面的正樣本數的90%;

 

目前卡在錯誤:

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   16 : 16
Train dataset for temp stage can not be filled. Branch training terminated.

找了半天資料試了之后仍舊無解,准備換台機子試試,to be continue...

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM