參考文章:
根據本人實踐過程和理解寫了下文。
一、正樣本準備
正樣本應該盡可能包含少的干擾背景資訊。在訓練過程中這些背景資訊也會成為正樣本的乙個區域性特徵,使得特徵值的計算包含干擾資訊。
資料**盡可能做到多樣化,比如樣本為車,車的姿態場景應稍豐富些。同一正樣本目標的影象太多會使區域性特徵過於明顯,造成這個目標的訓練過擬合,影響檢測精度,不利於訓練器泛化使用。
內容也可更改為:dir pos /b > pos.txt其中pos是資料夾名字,將pos資料夾中的所有檔名儲存到pos.txt檔案中;
-img 輸入檔名
-bg 背景描述檔案,檔案中包含一系列的影象檔名,這些影象將被隨機選作物體的背景
-num 生成正樣本的數目
bgcolor 背景顏色(目前為灰度圖),背景顏色表示透明顏色。因為影象壓縮可造成顏色偏差,顏色的容差可以由 -bgthresh 指定。所有處於 bgcolor-bgthresh 和bgcolor+bgthresh 之間的畫素都被設定為透明畫素。
-bgthresh
-inv 如果指定該標誌,前景影象的顏色將翻轉。
-randinv 如果指定該標誌,顏色將隨機地翻轉。
-maxidev 前景樣本裡畫素的亮度梯度的最大值。
-maxxangle x軸最大旋轉角度,必須以弧度為單位。
-maxyangle y軸最大旋轉角度,必須以弧度為單位。
-maxzangle z軸最大旋轉角度,必須以弧度為單位。
-show 很有用的除錯選項。如果指定該選項,每個樣本都將被顯示。如果按下 esc 鍵,程式將繼續建立樣本但不再顯示。
-w 輸出樣本的寬度(以畫素為單位)。
-h 輸出樣本的高度(以畫素為單位)。
每個負樣本之間是各不相同的,即確保負樣本的多樣性;
每個負樣本的尺寸不是必須相同的,但負樣本的尺寸不能小於正樣本向量集影象的寬和高,本文設定的尺寸都大於等於64*64;
進行訓練的話,建立乙個classify20.bat
我寫的.bat內容為:
@echo off
opencv_traincascade.exe -data data -vec pos.vec -bg neg\neg.txt -numpos 20000 -numneg 50000 -numstages 16 -featuretype hog -w 64 -h 64
pause
會在data資料夾中生產乙個xml檔案,即分類器。
OpenCV級聯分類器訓練
級聯分類器包括兩部分 訓練和檢測。檢測部分在opencv objdetect 模組的文件中有介紹,在那文件中給出了一些級聯分類器的基本介紹。這個指南是描述如何訓練分類器 準備訓練資料和執行訓練程式。opencv中有兩個程式可以訓練級聯分類器 opencv haartraining and openc...
opencv級聯分類器訓練
這個部落格寫的挺詳細的 下面來寫一下我訓練的過程 2.準備好正負樣本後就是生成樣本描述檔案 txt 用cmd命令進入對應樣本資料夾下,cd 路徑名 然後輸入dir s b info.txt生成樣本描述檔案,去掉最後一行 注意正樣本的描述檔案需要新增 1 0 0 width height,其中widt...
級聯分類器訓練
使用級聯分類器工作 包括兩個階段 訓練和檢測。檢測部分在opencvobjdetect 模組的文件中有介紹,在那個文件中給出了一些級聯分類器的基本介紹。當前的指南描述了如何訓練分類器 準備訓練資料和執行訓練程式。opencv中有兩個程式可以訓練級聯分類器 opencv haartraining 和o...