人脸识别之DeepFace
来源:互联网 发布:外卖系统源码 编辑:程序博客网 时间:2024/05/03 11:57
该论文为2016年的一篇ECCV,ADiscriminative Feature Learning Approach for Deep Face Recognition。还是深圳先进院乔宇老师组的一篇。不管是思想还是效果都非常的棒。
论文思想:
整体流程就是读取输入的图像,然后做个前向传播,应用softmax loss+center loss学习到DiscriminativeFeatures,然后进行标签的预测。
softmaxloss可以实现将2个类别分开,center loss可以实现减少类类距离,增加类间距离的效果,有点类似,线性判别分析LDA(Linear Discriminant Analysis)的思想。在效果上优于contrastiveloss和triplet loss,解决了这2个方法在采样问题中的trick。
其中,softmaxloss公式如下:
center loss公式如下:
总体的损失函数就是下面的式子:
实际的mnist测试效果如下图所示:
左图为不加center_loss的效果,右图为加了center_loss的效果。可见效果确实是不错的。
注意事项:
因为必须首先确保matcaffe的正确安装,linux下安装成功的标志为在cafferoot/matlab/+caffe/目录下有caffe_.mexa64存在。同理,windows为caffe\Build\x64\Release\matcaffe\+caffe\private下有caffe_.mexw64存在。
直接跑测试的demo的话,原版的caffe就可以跑,因为虽然作者使用了center_loss,但是在检测的过程中,只用到了前向传播,在face_deploy.prototxt中是没有center_loss这个layer的。
跑训练的话就需要编译作者提供的caffe了,里面用到了center_loss,原版的caffe是不带的,或者自己加进去,重新编译下。可以看到在face_train_test.prototxt中是包含center_loss这一层的。
实验结果:
测试图像如下,大小为816*816,
matlab源码运行效果:
本人改好的c语言release下运行效果(8G内存+XeonE3-1225)
本人改好的CUDA下运行效果(titanX)
官方程序链接:https://github.com/ydwen/caffe-face
http://ydwen.github.io/
人脸识别训练:
该训练最重要的其实还是数据集的准备,也就是先期数据的预处理,所有的图片都要crop为112*96的大小,因为这里是使用的caffe自带的train进行训练的。
修改face_train_test.prototxt中的相关参数,
18行:source的位置,训练的图片,格式为路径/图片名 类别(从0开始)
39行:source的位置,测试的图片,格式为路径/图片名 类别
1146行:num_output,输出的个数,CASIA有10575个,但是有3个和LFW一样,所以这里作者用了10572个
1175行:num_output,输出的个数,CASIA有10575个,但是有3个和LFW一样,所以这里作者用了10572个
1180行:loss_weight,这里作者程序中给的是0.008,论文中验证的是0.003最佳,可以结合自己的数据集实际测试,本人测试效果差距不大,该参数为center_loss的乘积参数
然后下面的脚本开始训练,
ps:CASIA-WebFace和LFW重复照片的对应关系为,
LFW识别率测试:
由于作者提供了其LFW数据集提取出来的特征矩阵,所以,本人也对其LFW识别率进行了测试。
首先,LFW的这个测试,包含了6000对测试比对,其中3000对为同一个人的比对,3000对不同人之间的比对,下面贴一个本人写的matlab小程序。
上面第一个图为,3000对自己和自己的图像进行比对的cos距离值,第二幅图为自己和别人的图片进行比对的cos距离值,第三幅图为不同阈值(0-1)下的识别率,红色标记的*表示为最佳的识别率。
本人测试的最终的最佳识别率为0.9875,该识别率下的阈值为
0.4164
0.4165
0.4166
0.4167
0.4395
0.4396
0.4397
0.4398
0.4399
0.4400
0.4401
0.4402
0.4403
和作者论文中的0.9928还是有个小差距的。可能出错的地方可能就是本人处理数据的某些细节可能和作者的不一样把,或者这里提供的不是最好的那个模型,而是一个供开源测试的模型吧,本人猜测。这里,希望可以得到大神的指正。
程序和所需文件下载链接:http://download.csdn.net/detail/qq_14845119/9721049
- 人脸识别之DeepFace
- 人脸识别之端到端框架(一)--Deepface
- DeepFace--Facebook的人脸识别
- DeepFace--Facebook的人脸识别
- DeepFace--Facebook的人脸识别
- DeepFace--Facebook的人脸识别
- DeepFace--Facebook的人脸识别
- DeepFace--Facebook的人脸识别&& FaceNet--Google的人脸识别
- 人脸识别——FaceBook的DeepFace、Google的FaceNet、DeepID
- 人脸识别——FaceBook的DeepFace、Google的FaceNet、DeepID
- 图片识别之人脸识别API
- 人脸识别之颜色识别
- 人脸识别之特征向量
- 人脸识别之LBPH
- 人脸识别之PCA
- 人脸识别之FaceNet
- 人脸识别之light_cnn
- 人脸识别之Face++
- 慕课-程序设计与算法(大学先修课)-郭炜-第八九周练习题
- 网络爬虫学习(一)
- xcode 真机测试添加普通apple id时,“xxxx”is not on any development teams
- Java数组的简单使用
- 主流浏览器内核
- 人脸识别之DeepFace
- 通过RobotFrameWork+APPIUM对安卓APK进行自动化测试
- Ajax总结
- 16. 3Sum Closest Medium
- 2017.03.18【NOIP 普及组】模拟赛C组 蚂蚁 题解
- 数据库并发机制和事务的隔离级别详解
- leetcode(43)Multiply Strings
- HashMap常见问题
- 16进制数字转成字符串