利用CNN進行人臉年齡預測


很久之前做的東西了,最近做了一個人臉相似度檢測,里面用到了這里的一個模型,所以抽個空把人臉年齡檢測的思路總結一下。

與其他CNN分類問題類似,人臉年齡預測無非就是將人臉分為多個類別,然后訓練卷積神經網絡,最后利用訓練好的卷積神經網絡進行分類即可。

但是在人臉年齡分類方面,有幾個比較重要的問題,第一,人臉數據集不好獲取,第二,人臉對偏移,光照敏感度很高。第三,特征不容易提取。

在數據集方面,我直接用了歪果仁的一個數據集,大概有40W張圖片,分為100個年齡類,雖然質量不高,但是勉強可用。

對人臉圖像進行預處理可降低偏移,光照等帶來的影響,例如對正人臉圖像,使用均值文件等等。

對於第三個問題,則需要用到caffe里面強大的功能::fine-turning,我選擇了vgg-16神經網絡,其中訓練分為6個階段,其結構圖為:

從左到右一共6個階段,每個階段為一個fine-turning,使用fine-turning能非常有效的提升神經網絡預測的准確率。

接下來訓練網絡,訓練時間比較慢,我在GTX1060上訓練大概3天才訓練玩。

訓練好以后直接將模型文件保存為age.caffemodel,將網絡配置文件保存為age.prototxt。

當預測一張新圖片時,會得到圖像的最終預測值,維度為100的向量,每個值代表屬於此類的概率,然后乘以range(100)即可。


免責聲明!

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



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