[CNN] 性別偵測

這邊算是[CNN template]利用自己準備的圖集進行訓練與預測這邊的延伸,主要我想測試這個演算的方式的極限,所以這邊測試我使用非常雜亂的圖片集,這邊的圖片集是透過google搜索關鍵字所製作而成,故每張訓練圖片不但大小類型都有一定上的差距,甚至包含錯誤。

男性圖集關鍵字為:male , man , boy

女性圖集關鍵字為:lady , woman , girl

 

現在來介紹一下該專案的結構。e89ea2e5b995e5bfabe785a7-2017-10-21-e4b88be58d8810-51-52.png

img資料夾裡面包含了從google上下載的圖集,主要是備存。

net則是用來儲存機器學習後的訓練結果,外部系統可以透過導入此結果來計算。

Test與TrainingData兩個資料夾則是放訓練與測試的圖片資料夾,將男女圖像分別存放至兩個資料夾,男性資料夾命名為 “0”,女性資料夾命名為”1″,若要增加訓練結果的種類的話,只需依照資料夾數字依序建立(3,4,5,….),並調整config.py的結果種類數量即可。

Web_pic則是從網路搜尋中下載圖片的程式集,有興趣的話可以轉至這邊查看

然後這邊我為了方便調整參數,故整理出一個config.py來方便測試。

螢幕快照 2017-10-21 下午11.02.54.png

大致上可調整的部分有:

  1. 圖片的長寬設定:放在訓練與測試的圖片,無論是哪種大小,都會依照這邊的設定來調整長寬。
  2. 結果種類數量:這次性別偵測有兩種結果,故設2。(如果是手寫數字則要設成10,因為有0,1,2,3,4,5,6,7,8,9以上共十種結果)
  3. 每次所抓取特徵範圍的大小:pitch則是每次抓取圖片特真的範圍,這邊是3*3。
  4. 單次訓練圖片數:建議不要低於十張
  5. 訓練完整度:在訓練結果達到此程度前會不斷訓練,請設數值0 – 1。
  6. 最大訓練次數:若超過此次數時,無論結果如何都會結束訓練。

 

執行步驟:

1.python traing.py

螢幕快照 2017-10-21 下午11.41.24.png

2.python Demo.py

 

螢幕快照 2017-10-21 下午11.42.06.png

結語:

雖然髒污的訓練與測試圖集大大影響的訓練結果,但是辨識成功率依然有六成,可以證明本系統是可以完整執行且具有彈性,且在真實架設系統時並不會使用如此髒污的訓練圖片集,也會有一定侷限測試圖集的變化程度。

 

這次的code

 

One Comment

Add a Comment

發佈留言必須填寫的電子郵件地址不會公開。