這邊算是[CNN template]利用自己準備的圖集進行訓練與預測這邊的延伸,主要我想測試這個演算的方式的極限,所以這邊測試我使用非常雜亂的圖片集,這邊的圖片集是透過google搜索關鍵字所製作而成,故每張訓練圖片不但大小類型都有一定上的差距,甚至包含錯誤。
男性圖集關鍵字為:male , man , boy
女性圖集關鍵字為:lady , woman , girl
現在來介紹一下該專案的結構。
img資料夾裡面包含了從google上下載的圖集,主要是備存。
net則是用來儲存機器學習後的訓練結果,外部系統可以透過導入此結果來計算。
Test與TrainingData兩個資料夾則是放訓練與測試的圖片資料夾,將男女圖像分別存放至兩個資料夾,男性資料夾命名為 “0”,女性資料夾命名為”1″,若要增加訓練結果的種類的話,只需依照資料夾數字依序建立(3,4,5,….),並調整config.py的結果種類數量即可。
Web_pic則是從網路搜尋中下載圖片的程式集,有興趣的話可以轉至這邊查看。
然後這邊我為了方便調整參數,故整理出一個config.py來方便測試。
大致上可調整的部分有:
- 圖片的長寬設定:放在訓練與測試的圖片,無論是哪種大小,都會依照這邊的設定來調整長寬。
- 結果種類數量:這次性別偵測有兩種結果,故設2。(如果是手寫數字則要設成10,因為有0,1,2,3,4,5,6,7,8,9以上共十種結果)
- 每次所抓取特徵範圍的大小:pitch則是每次抓取圖片特真的範圍,這邊是3*3。
- 單次訓練圖片數:建議不要低於十張
- 訓練完整度:在訓練結果達到此程度前會不斷訓練,請設數值0 – 1。
- 最大訓練次數:若超過此次數時,無論結果如何都會結束訓練。
執行步驟:
1.python traing.py
2.python Demo.py
結語:
雖然髒污的訓練與測試圖集大大影響的訓練結果,但是辨識成功率依然有六成,可以證明本系統是可以完整執行且具有彈性,且在真實架設系統時並不會使用如此髒污的訓練圖片集,也會有一定侷限測試圖集的變化程度。
這次的code
1 thought on “[CNN] 性別偵測”