opencv 訓練樣本

2021-08-25 17:02:08 字數 1580 閱讀 2203

分類器的訓練以分為以下三部進行:

1、 樣本的建立

2、 訓練分類器

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

對檢測物體要確定其屬性:是否為絕對剛性的物體,也就是檢測的目標是乙個固定物體,沒有變化(如特定公司的商標),這樣的物體只要提供乙份樣本就可以進行訓練。

但絕大數時候我們想進行訓練的目標是非絕對剛性的物體,如對人的檢測,包括人臉識別、手勢識別。

樣本:分為正樣本---------負樣本

正樣本處理步驟:

所謂所謂正樣本就是只包含檢測目標的(最好背景一致),對於這我個人認為最好是檢測目標的最小外接矩,這樣可以減少訓練的計算量,減少目標檢測的干擾,提高檢測質量。

1、獲取正樣本,可以自己動手,也可以通過網路上的影象資料庫,像人臉資料庫就已經很全了,不必再自己製作。

2、處理

1)將正樣本進行擷取(自己收集的,主要是去掉訓練時的不必要干擾)-----最小外接矩,

2)將處理後的進行歸一化,將所有影象調整成一致大小,我用的「美圖看看」這款軟體,批量處理的,注意無論原圖多大最好都處理成25*25以下的影象,這樣計算機                   訓練速度快,而且不容易出現記憶體不夠用。

3    將歸一化後的影象進行灰度處理,這裡我用的是一段opencv**,

這樣正樣本就處理好了,接下來要生成pos.txt檔案

執行結果:

在影象檔案中多了個pos.txt檔案,內容如下:

格式為:路徑     檢測目標在中的個數     起始監測點座標(x,y)        大小(w,h)

4、訓練.vec檔案

doc下執行一下命令(假設當前路徑就是pos.txt所在的路徑):opencv_createsamples.exe -vec pos.vec -info pos.txt -num 100 -w 30 -h 30

得到pos.vec檔案。

負樣本1.不要求樣本尺寸,但要大於等於正樣本的大小;且負樣本不能重複,要增大負樣本的差異性。

2.負樣本灰度化,同正樣本操作相同。

3.執行命令:

最後將pos.vec和neg.txt檔案拷貝到同一資料夾下。

這樣正負樣本就處理完了,訓練見:

老訓練器)

opencv haar訓練 訓練樣本(4)

1.海爾訓練 現在,我們使用haartraining.exe來訓練我們自己的分類器。訓練語句如下 usage haartraining data vec bg npos nneg nstages nsplits mem sym default nonsym minhitrate maxfalseal...

opencv haar訓練 訓練樣本(4)

1.海爾訓練 現在,我們使用haartraining.exe來訓練我們自己的分類器。訓練語句如下 usage haartraining data vec bg npos nneg nstages nsplits mem sym default nonsym minhitrate maxfalseal...

opencv haar訓練 訓練樣本(4)

1.海爾訓練 現在,我們使用haartraining.exe來訓練我們自己的分類器。訓練語句如下 usage haartraining data vec bg npos nneg nstages nsplits mem sym default nonsym minhitrate maxfalseal...