OpenCV 級聯分類器訓練 訓練步驟詳解(一)

2021-08-16 13:10:17 字數 1303 閱讀 2199

參考文章:

根據本人實踐過程和理解寫了下文。

一、正樣本準備

正樣本應該盡可能包含少的干擾背景資訊。在訓練過程中這些背景資訊也會成為正樣本的乙個區域性特徵,使得特徵值的計算包含干擾資訊。

資料**盡可能做到多樣化,比如樣本為車,車的姿態場景應稍豐富些。同一正樣本目標的影象太多會使區域性特徵過於明顯,造成這個目標的訓練過擬合,影響檢測精度,不利於訓練器泛化使用。

內容也可更改為: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...