您的位置:首页 > 理论基础 > 计算机网络

人脸识别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.prototxtLCNN_train_test.prototxt

对学习率的设置

初始学习率设置为0.01,训练过程中,发现初始loss为9.3,约为-log(1/10575)正常,稍加训练后,loss上升到80+,说明学习率设置过大,调整为0.001,并以inv方式进行衰减。发现loss逐渐衰减了。

测试记录

测试数据集:lfw。取官方给出的pairs.txt进行测试。保证pairs.txt中的图片不会出现在训练集中。

数据组织数量描述
Intra-pair3000每一个pair是同一个人物的两张不同场景下的人脸图片对
Extra-pair3000每一个pair是不同人物的人脸图片对
使用pairs.txt中给出的6000对人脸对测试本模型的准确度。按照标准的ROC评测方案,并在True Positive Rate与False Reject Rate相当时,取出准确率用于表征模型的准确率。将不同迭代次数时的测试结果记录在下表中。

迭代次数(万)True Positive Rate(%)False Reject Rate(%)Average(%)
11596.296.296.2
16596.833396.866796.85
18396.796.833396.7667
196.596.933396.966796.95
20696.733396.833396.7833
24096.866796.866796.8667
26096.766796.833396.8

计算环境

NVIDIA GTX970
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cnn 人脸识别