級聯分類器訓練

2022-09-01 18:12:10 字數 2264 閱讀 2403

adaboost分類器由級聯分類器構成,"級聯"是指最終的分類器是由幾個簡單分類器級聯組成。在影象檢測中,被檢視窗依次通過每一級分類器,這樣在前面幾層的檢測中大部分的候選區域就被排除了,全部通過每一級分類器檢測的區域即為目標區域。

分類器訓練完以後,就可以應用於輸入影象中的感興趣區域的檢測。檢測到目標區域輸出為1,否則輸出為0。為了檢測整副影象,在影象中移動搜尋視窗,檢測每乙個位置來確定可能的目標。為了搜尋不同大小的目標物體,在影象中檢測未知大小的目標物體,掃瞄過程中用不同比例大小的搜尋視窗對進行掃瞄。

目標檢測分為三個步驟:

1、 樣本的建立

2、 訓練分類器

3、 利用訓練好的分類器進行目標檢測。

二、樣本收集

訓練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢目標樣本,反例樣本指其它任意,所有的樣本都被歸一化為同樣的尺寸大小(例如,24x24)。負樣本可以來自於任意的,但這些不能包含目標特徵。負樣本由背景描述檔案來描述。

訓練需要一些列樣本。樣本分兩類:負樣本和正樣本。負樣本是指不包括物體的影象。正樣本是待檢測的物體的影象。負樣本必須手工準備,正樣本使用opencv_createsamples

負樣本可以是任意影象,但影象中不能包含待檢測的物體。用於摳取負樣本的影象檔名被列在乙個檔案中。這個檔案是純文字檔案,每行是乙個檔名(包括相對目錄和檔名)。負樣本和樣本影象也叫做背景樣本,或者背景樣本影象,本文件中對之不予區分。這些影象可以是不同的尺寸,但是影象尺寸應該比訓練視窗的尺寸大,因為這些影象將被用於摳取負樣本,並將負樣本縮小到訓練視窗大小。

下面是乙個描述檔案的例子:

假如目錄結構如下:

則bg.txt檔案中的內容將如下所示:

請注意你需要乙個很大的負樣本庫送給訓練程式進行訓練。如果是絕對剛性的物體,如opencv的標誌,你只有一張正樣本影象;如果是人臉,你需要幾百甚至幾千個正樣本。在待檢測物體是人臉的情況下,你需要考慮所有的人種、年齡、表情甚至鬍子的樣式。

如果只有一張包含物體的影象,如乙個公司的標誌,那麼可以通過對物體影象的隨機旋轉、改變標誌亮度以及將標誌放在任意的背景上而獲得大量的正樣本。生成的正樣本數目以及隨機的程度都可以通過opencv_createsamples

命令列引數:

;bg_color+bg_color_threshold

]範圍的畫素被設定為透明畫素。將白雜訊加到前景影象上。如果指定了-inv

正樣本也可從一系列事先標記好的影象中建立。標記資訊可以儲存於乙個文字檔案,與背景描述檔案類似。檔案中的每行對應乙個影象檔案。每行的第乙個元素為影象檔名,後面是物體的數目,最後是物體位置和大小的描述 (x, y, width, height)。

下面是描述檔案的例子:

假設目錄結構如下:

檔案info.dat裡的內容如下:

影象img_with_faces_1.jpg中包含乙個物體例項(如人臉),標示其在影象中的位置和大小的矩形為(140, 100, 45, 45)。影象img_with_faces_2.jpg包含兩個物體例項。

此部分樣本建立過程如下:將物體例項從影象中摳取出,然後將之調整尺寸到目標尺寸,然後儲存到輸出的vec檔案。在此過程中不會對影象進行變形,所以有效的命令列引數僅有-w

,-h,-show

opencv_createsamples

在訓練中,訓練程式並不關心包含正樣本的vec檔案如何生成的,你可以自己寫程式來生成vec檔案。但是opencv提供的工具中,只有 opencv_createsamples

通用引數:

級聯引數:

boosted分類器引數:

類haar特徵引數:

lbp特徵引數:

lbp特徵無引數。

訓練結束後就可以測試訓練好的級聯分類器了.

級聯分類器訓練

使用級聯分類器工作 包括兩個階段 訓練和檢測。檢測部分在opencvobjdetect 模組的文件中有介紹,在那個文件中給出了一些級聯分類器的基本介紹。當前的指南描述了如何訓練分類器 準備訓練資料和執行訓練程式。opencv中有兩個程式可以訓練級聯分類器 opencv haartraining 和o...

級聯分類器訓練

一.準備正負樣本 正樣本 225張車牌 負樣本 將opencv traincascade.exe和opencv createsamples.exe複製到同一目錄 樣本存放路徑 二.檔案 dat vec 準備 得到pos.txt檔案,所有非資訊刪掉,最後一行空格刪掉,jpg替換為jpg 1 0 0 1...

OpenCV級聯分類器訓練

級聯分類器包括兩部分 訓練和檢測。檢測部分在opencv objdetect 模組的文件中有介紹,在那文件中給出了一些級聯分類器的基本介紹。這個指南是描述如何訓練分類器 準備訓練資料和執行訓練程式。opencv中有兩個程式可以訓練級聯分類器 opencv haartraining and openc...