人脸识别CNN网络训练流程
2016-05-10 21:19
429 查看
目标
训练论文”A Lightened CNN for Deep Face Representation”中的caffe网络。数据
CASIA-WebFace 可在这里申请。预处理
获得CASIA-Webface数据集之后,使用tools中的:脚本
addLabeltopic.py将图片的label置为0-10574,并将label加入图片的名字中,如
0_001.jpg。
脚本
getallfilesInOnedir.py将所有图片复制到某一级目录下,如image/
使用code_point中的工具对人脸图片进行标点,其中bbox.txt中指定了固定的人脸位置。
可使用show_resulr.m脚本对标点结果进行可视化。
根据每个图片样本的标点信息将人脸进行旋转和裁剪,使得样本标准化。
经过上述操作,可以得到10575人的494414张标准化人脸图块。
使用caffe,训练模型
生成lmdb数据编写train_test.prototxt和solver.prototxt
开始训练!
网络配置
详细配置查看查看我的github项目中prototxt/中的LCNN_solver.prototxt和LCNN_train_test.prototxt。对学习率的设置
初始学习率设置为0.01,训练过程中,发现初始loss为9.3,约为-log(1/10575)正常,稍加训练后,loss上升到80+,说明学习率设置过大,调整为0.001,并以inv方式进行衰减。发现loss逐渐衰减了。
测试记录
测试数据集:lfw。取官方给出的pairs.txt进行测试。保证pairs.txt中的图片不会出现在训练集中。数据组织 | 数量 | 描述 |
---|---|---|
Intra-pair | 3000 | 每一个pair是同一个人物的两张不同场景下的人脸图片对 |
Extra-pair | 3000 | 每一个pair是不同人物的人脸图片对 |
迭代次数(万) | True Positive Rate(%) | False Reject Rate(%) | Average(%) |
---|---|---|---|
115 | 96.2 | 96.2 | 96.2 |
165 | 96.8333 | 96.8667 | 96.85 |
183 | 96.7 | 96.8333 | 96.7667 |
196.5 | 96.9333 | 96.9667 | 96.95 |
206 | 96.7333 | 96.8333 | 96.7833 |
240 | 96.8667 | 96.8667 | 96.8667 |
260 | 96.7667 | 96.8333 | 96.8 |
计算环境
NVIDIA GTX970相关文章推荐
- opencv 做人脸识别 opencv 人脸匹配分析
- 人脸识别测颜值、测脸龄、测相似度微信接口
- CUDA搭建
- 深入理解CNN的细节
- TensorFlow人工智能引擎入门教程所有目录
- 人脸识别测颜值、测脸龄、测相似度微信接口
- SIFT特征提取分析
- 基于OpenCV的PHP图像人脸识别技术
- 一个关于文件写入时乱码的故事
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接
- 搜索的新模式
- convolutional neural network
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
- 几个计算机论文检索的地方
- UFLDL Exercise: Convolutional Neural Network
- 初学PCA(主元分析)后的理解
- 人脸识别方法(转载)
- 图像处理工程师的要求
- 人脸识别
- 桃花相册开发笔记(1)——基于人脸识别的相册软件