TShopping

 找回密碼
 註冊
搜索
查看: 138|回復: 0

[教學] opencv_createsamples的用法

[複製鏈接]
發表於 2020-11-5 16:25:49 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk  
OPENCV的分類器,大概試了一下自帶的人臉識別例程,然後想到自己去訓練其他物品識別的分類器,需要用到裡面的opencv_createsamples創建樣本和opencv_traincascade訓練級聯分類器。網上搜了不少的文章,又看了opencv官網的訓練器生成教程,還是沒怎麼懂一些參數的意義和用法。經過自己多次的樣本創建和分類器訓練,加上研究opencv的源代碼。大致掌握了一些細節方面的東西,故在此作筆記並分享:

一、opencv_createsamples

    看過源碼才發現,這個EXE的執行原來是有幾種邏輯的,當你填入的參數列表不一樣時,你會得到差別很大的結果,這個在剛開始摸索的時候走了不少彎路。下面就此說一下:

opencv createsamples

opencv createsamples



上面是opencv_createsamples的源碼,根據調用的參數列表,會執行四種功能:

A.從一張圖像中通過扭曲形變創建多個訓練樣本;
B.從一張圖像中通過扭曲形變創建多個測試樣本;
C.通過描述文件的圖片列表清單中創建訓練樣本;
D.顯示VEC文件中的樣本圖片。
對應地,當指定-img -vec參數,則對應執行功能A,
如果只有-img,-bg,-info參數而沒有vec參數,則執行功能B,
如果只有-bg和-info,則執行功能C ,
如果只有-vec而沒有其他,則執行功能D。

回到opencv_createsamples的參數說明:

opencv createsamples

opencv createsamples



【-info】 就是跟存放正樣本圖片目錄位置相同的描述文件的路徑,可用txt,dat等格式保存,每一行的內容為:xxx.jpg nums left_x left_y width heght。

比如:samples_1.jpg 1 0 0 20 20這樣,就是指某個正樣本是samples_1.jpg的圖片,圖片中有1個目標區域,區域的左上角坐標為(0,0),區域的寬度為20像素,長度為20像素。注意樣本圖片和這裡的參數相符。

【-img】如果你要通過一張圖片的扭曲形變成多張圖片作為樣本,就填寫這個參數,參數的內容為要扭曲的圖片的路徑。填入後,-info參數不再有效。

【-vec】要生成用於訓練的vec文件的路徑,內容為:xxx/xxx/xxx/xxx.vec

【-bg】 如果省略,則使用bgcolor的值填充作為背景。就是跟存放負樣本圖片(背景圖片)目錄位置相同的描述文件的路徑,可用txt,dat等格式保存,,每一行的內容為:xxx.jpg。這裡要注意的是,不要填入圖片的完整路徑,不然會報錯。但訓練樣本opencv_traincascade也需要傳入一個-bg參數,但那個參數的描述文件每一行是要用完整路徑的,這有點怪。

【-num】要創建的樣本的數量,使用-info生成時,不要比你準備的正樣本圖片數量大就行了

【-bgcolor】這是創建樣本是樣本扭曲函數中用來決定像素是有效還是作為背景過濾的基本值,因為操作的是灰度圖,所以這個值0範圍是~255。

【-bgthresh】決定背景掩碼的實際取值範圍為bgcolor-bgthresh ——bgcolor-bgthresh

【-inv】【-randinv】這是樣本生成時,是否需要反相或隨機反相,這個在車牌這樣的數字中就需要,比如說白底黑字的車牌和藍底白字的車牌,兩者生成的樣本是相反的,前者數字是黑色,後者數字是白色。所以這個參數按你實際需要使用吧。

【-maxidev】一個用於生成前景(有效像素區域)灰度值的常數值,實際樣本的前景灰度值會根據這個參數結合隨機數產生多種不同的灰度值。

【-maxxangle】對樣本圖片的x軸方向的扭曲的最大弧度,X軸即是圖片水平方向的旋轉。

【-maxyangle】對樣本圖片的y軸方向的扭曲的最大弧度,Y軸即是圖片豎直方向的旋轉。

【-maxyangle】對樣本圖片的z軸方向的扭曲的最大弧度,Z軸即是垂直於圖像平面的方向的旋轉(可理解為旋轉軸是一條穿過顯示器的垂線)。

【-show】樣本創建期間,是否通過imshow顯示出每一個生成的樣本圖片出來。

【-w】要創建的樣本圖片的寬度,後面的訓練樣本步驟要使用和這時一樣的值,不然會報錯

【-h】要創建的樣本圖片的高度,後面的訓練樣本步驟要使用和這時一樣的值,不然會報錯



暫時沒有想到要補充和注意的,以後有機會再補充。建議訓練的時候先設-num為10,然後啟用-show,自己感受一下一些參數的意義和影響,不要想當然。



文章出處

網頁設計,網站架設 ,網路行銷,網頁優化,SEO - NetYea 網頁設計






 

臉書網友討論
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2020-12-2 23:17 , Processed in 0.056027 second(s), 24 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表