opencv訓(xùn)練分級器的簡介:
OpenCV提供了兩個(gè)程序可以訓(xùn)練自己的級聯(lián)分類器opencv_haartraining與opencv_traincascade。opencv_traincascade是一個(gè)新程序,使用OpenCV
2.x API 以C++編寫。這二者主要的區(qū)別是opencv_traincascade支持 Haar和 LBP
(Local BinaryPatterns)兩種特征,并易于增加其他的特征。與Haar特征相比,LBP特征是整數(shù)特征,因此訓(xùn)練和檢測過程都會(huì)比Haar特征快幾倍。LBP和Haar特征用于檢測的準(zhǔn)確率,是依賴訓(xùn)練過程中的訓(xùn)練數(shù)據(jù)的質(zhì)量和訓(xùn)練參數(shù)。訓(xùn)練一個(gè)與基于Haar特征同樣準(zhǔn)確度的LBP的分類器是可能的。
與其他分類器模型的訓(xùn)練方法類似,同樣需要訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù);其中訓(xùn)練數(shù)據(jù)包含正樣本pos與負(fù)樣本neg。訓(xùn)練程序opencv_haartraining.exe與opencv_traincascade.exe對輸入的數(shù)據(jù)格式是有要求的,所以需要相關(guān)的輔助程序:
? ?opencv_createsamples?用來準(zhǔn)備訓(xùn)練用的正樣本數(shù)據(jù)和測試數(shù)據(jù)。opencv_createsamples?能夠生成能被opencv_haartraining?和?opencv_traincascade?程序支持的正樣本數(shù)據(jù)。它的輸出為以 *.vec 為擴(kuò)展名的文件,該文件以二進(jìn)制方式存儲(chǔ)圖像。
opencv訓(xùn)練分級器的步驟
1、準(zhǔn)備訓(xùn)練數(shù)據(jù)
2、訓(xùn)練級聯(lián)分類器
3、測試級聯(lián)分級器的性能
4、利用訓(xùn)練好的級聯(lián)分級器做目標(biāo)檢測、
準(zhǔn)備訓(xùn)練數(shù)據(jù)
準(zhǔn)備正樣本:
1、首先將左右的正樣本圖像截圖——最小外接矩形(減少計(jì)算難度,減少不必要的干擾)。注意:所有的樣本背景最好一致
2、將圖像歸一化處理、利用美圖秀秀等軟件將所有的圖像轉(zhuǎn)換成大小一致的圖像(推薦尺寸25*25,減少計(jì)算難度、避免內(nèi)存不夠用)
3、將圖像灰度處理GRAY
4、生成pos.text? 格式為:圖片路徑 ? ? 檢測目標(biāo)在圖片中的個(gè)數(shù) ? ? 起始監(jiān)測點(diǎn)坐標(biāo)(x,y) ? ? ? ?圖片大小(w,h)
5、訓(xùn)練分級器? dos運(yùn)行opencv_createsamples.exe -vec pos.vec -info pos.txt -num 100 -w 30 -h 30?? 得到得到pos.vec文件
準(zhǔn)備負(fù)樣本
? 1、.不要求樣本尺寸,但要大于等于正樣本的大??;且負(fù)樣本不能重復(fù),要增大負(fù)樣本的差異性。
?2、負(fù)樣本灰度化,同正樣本操作相同。
地址:https://www.cnblogs.com/linmengran/p/6514410.html