opencv訓練分類器樣本處理


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

1、 樣本的創建
2、 訓練分類器
3、 利用訓練好的分類器進行目標檢測。

 

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

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

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

正樣本處理步驟:

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

        1、獲取正樣本,可以自己動手,也可以通過網絡上的圖像數據庫,像人臉數據庫就已經很全了,不必再自己制作。

        2、圖片處理

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

             2)將處理后的圖片進行歸一化,將所有圖像調整成一致大小,我用的“美圖看看”這款軟件,批量處理的,注意無論原圖多大最好都處理成25*25以下的圖像,這樣計算機                   訓練速度快,而且不容易出現內存不夠用。

        3    將歸一化后的圖像進行灰度處理,這里我用的是一段opencv代碼,http://www.cnblogs.com/linmengran/p/6513094.html

 

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

          cmd運行控制台,切換到存放樣本圖片的文件目錄下:輸入如下命令

         

         運行結果:

         在圖像文件中多了個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文件拷貝到同一文件夾下。

 

 

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

http://www.cnblogs.com/linmengran/p/6513017.html(老訓練器)

 

 

 

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM