樹莓派基於分類器的識別環保標誌(三)分類器xml創建

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

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

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

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

樣本:分爲正樣本---------負樣本

正樣本處理步驟:

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

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

        2、圖片處理

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

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

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

其實最簡單的直接將這個代碼加上便可實現圖像灰度化 input_img = cv2.imread('C:\\Users\\Administrator\\Desktop\\shujuxunlian 1\\negdata_2\\Img%d.jpg'%j,cv2.IMREAD_GRAYSCALE)

在處理後變成如下圖像

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

  cmd運行控制檯,切換到存放樣本圖片的文件目錄下:輸入如下命令(這些在自己電腦和樹莓派上都可以操作)

總體上我們的文件是這樣的

posdata文件生成的操作大致如此:

新建一個bat文件並重命名爲pos.bat,輸入上面的指令,生成含每個圖片絕對路徑的文件txt,然後替換文本如下所示

要注意的是其中絕對路徑換成了相對路徑,posdata是我們的文件夾名字,1代表處理一張圖片,而0,0代表從圖像左上角最初始位置進行測試,25,25是我們在美圖看看裏面處理的圖像大小

之後不出錯的話我們在cmd命令行進入posdata所在路徑,最好將txt和圖片放一起,然後在cmd命令行打入以下指令,

opencv_createsamples.exe -vec pos.vec -info posdata.txt -num 100 -w 25 -h25(具體大小和數量自己設置)

生成vec文件,這樣正樣本基本處理完畢。、

負樣本:不包含檢測目標的任何圖片。

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

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

就博主個人而言,使用了python的爬蟲爬取百度圖片的url,由於博主要識別的是垃圾桶的回收標誌,所以爬取得負樣本是垃圾桶標誌大概1000張左右,正負樣本在1:2-1:5之間即可。

其實網上的博客都認爲彩色圖片處理數據過大,但是對於博主這種小型比賽(智能車識別定點圖片)小數量的圖片恰恰不需要灰度處理emmmm

負樣本處理和正樣本處理差不多,負樣本產生的txt文件直接保存爲絕對路徑就行,就是執行bat文件以後什麼都不用改。

然後文件名命名爲negdata.txt後和posdata.txt放在同一目錄下。

最後將pos.vec和neg.txt文件拷貝到同一文件夾下。

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章