利用CNN进行人脸年龄预测
2016-11-30 10:12
405 查看
很久之前做的东西了,最近做了一个人脸相似度检测,里面用到了这里的一个模型,所以抽个空把人脸年龄检测的思路总结一下。
与其他CNN分类问题类似,人脸年龄预测无非就是将人脸分为多个类别,然后训练卷积神经网络,最后利用训练好的卷积神经网络进行分类即可。
但是在人脸年龄分类方面,有几个比较重要的问题,第一,人脸数据集不好获取,第二,人脸对偏移,光照敏感度很高。第三,特征不容易提取。
在数据集方面,我直接用了歪果仁的一个数据集,大概有40W张图片,分为100个年龄类,虽然质量不高,但是勉强可用。
对人脸图像进行预处理可降低偏移,光照等带来的影响,例如对正人脸图像,使用均值文件等等。
对于第三个问题,则需要用到caffe里面强大的功能::fine-turning,我选择了vgg-16神经网络,其中训练分为6个阶段,其结构图为:
从左到右一共6个阶段,每个阶段为一个fine-turning,使用fine-turning能非常有效的提升神经网络预测的准确率。
接下来训练网络,训练时间比较慢,我在GTX1060上训练大概3天才训练玩。
训练好以后直接将模型文件保存为age.caffemodel,将网络配置文件保存为age.prototxt。
当预测一张新图片时,会得到图像的最终预测值,维度为100的向量,每个值代表属于此类的概率,然后乘以range(100)即可。
与其他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 Object Detection API教程——利用自己制作的数据集进行训练预测和测试
- 机器学习分类之结合实际应用介绍KNN算法原理以及利用sklearn进行分类预测
- MFC中利用Opencv与C++抓取摄像头进行人脸识别(Mat)
- 利用Adaboost和LBP特征进行人脸检测
- 利用回归树DecisionTreeRegressor进行回归预测(复习10)
- keras系列︱迁移学习:利用InceptionV3进行fine-tuning及预测、完美案例(五)
- 蛙蛙推荐:利用Excel进行销售量预测
- 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结2——级联分类器与检测过程
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- 利用scikit-learn进行人脸表面关键点的定位
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图
- (链接) AdaBoost中利用Haar特征进行人脸识别算法分析与总结
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结1——Haar特征与积分图 .
- 蛙蛙推荐:利用Excel进行销售量预测
- 利用Python【Orange】结合DNA序列进行人种预测
- keras系列︱迁移学习:利用InceptionV3进行fine-tuning及预测、完美案例(五)
- 如何利用训练好的神经网络进行预测