利用CNN进行人脸年龄预测

Posted 校草的舍友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用CNN进行人脸年龄预测相关的知识,希望对你有一定的参考价值。

很久之前做的东西了,最近做了一个人脸相似度检测,里面用到了这里的一个模型,所以抽个空把人脸年龄检测的思路总结一下。

与其他CNN分类问题类似,人脸年龄预测无非就是将人脸分为多个类别,然后训练卷积神经网络,最后利用训练好的卷积神经网络进行分类即可。

但是在人脸年龄分类方面,有几个比较重要的问题,第一,人脸数据集不好获取,第二,人脸对偏移,光照敏感度很高。第三,特征不容易提取。

在数据集方面,我直接用了歪果仁的一个数据集,大概有40W张图片,分为100个年龄类,虽然质量不高,但是勉强可用。

对人脸图像进行预处理可降低偏移,光照等带来的影响,例如对正人脸图像,使用均值文件等等。

对于第三个问题,则需要用到caffe里面强大的功能::fine-turning,我选择了vgg-16神经网络,其中训练分为6个阶段,其结构图为:

技术分享

从左到右一共6个阶段,每个阶段为一个fine-turning,使用fine-turning能非常有效的提升神经网络预测的准确率。

接下来训练网络,训练时间比较慢,我在GTX1060上训练大概3天才训练玩。

训练好以后直接将模型文件保存为age.caffemodel,将网络配置文件保存为age.prototxt。

当预测一张新图片时,会得到图像的最终预测值,维度为100的向量,每个值代表属于此类的概率,然后乘以range(100)即可。

以上是关于利用CNN进行人脸年龄预测的主要内容,如果未能解决你的问题,请参考以下文章

基于Tensorflow卷积神经网络(CNN)的人脸年龄和性别检测系统

基于Tensorflow卷积神经网络(CNN)的人脸年龄和性别检测系统

用OpenCV,深度学习和Python进行年龄识别

[python][deepface][原创]使用deepface进行年龄预测

使用 OpenCV 进行图像中的性别预测和年龄检测

R-CNN常见问题