【干货】深度人脸识别的 Caffe 实现(附模型开源地址及论文下载)

【新智元导读】本论文对人脸识别和验证任务提出一种新的损失函数,即中心损失。中心损失和softmax损失联合监督学习的CNN,其对深层学习特征的人脸识别能力大大提高。对几个大型人脸基准的实验已经令人信服地证明了该方法的有效性。

相关论文

  1. 题目:A Discriminative Feature Learning Approachfor Deep Face Recognition
  2. 作者:Yandong Wen, Kaipeng Zhang, Zhifeng Li*, YuQiao
  3. 新智元微信公众号回复1015,可下载论文。

论文摘要

卷积神经网络(CNN)已经广泛应用于计算机视觉领域,显著提高了现有计算机视觉水平。在大多数可用的CNN中,softmax损失函数被用作训练深度模型的监视信号。为了增强深度学习特征的识别能力,本论文为人脸识别任务提出一种新的监视信号,称作中心损失函数(center loss)。具体地说,中心损失函数学习每类数据的深层特征的中心,同时惩罚深层特征和它们对应的类中心间的距离。更重要的是,我们证明了这种中心损失函数是可训练的,而且在CNN中非常容易优化。通过Softmax损失函数和中心损失函数的联合监视,我们可以训练足够强大的CNN,得到两个关键学习目标的深层特征以及尽可能高的类间分散性和类内紧密性,这对人脸识别来说非常重要。令人鼓舞的是,我们这种联合监视的CNN在几个重要人脸识别基准上取得了最高的准确率,包括Labeled Faces inthe Wild (LFW),YouTube Faces (YTF),和MegaFace Challenge。尤其是,我们的新方法在小型训练集(少于500000幅图像、少于20000个人)协议下的MegaFace(最大的公共领域基准)上得到了最好结果,相比以前的结果有显著的提高,这为人脸识别和人脸验证任务带来新的发展。

CNN架构

图:人脸识别任务中使用的CNN架构(来自论文,下同)

用LFW和YTF数据集实验

LFW和YTF中的部分人脸图像,绿色框是同个人,红色反之,白色框的人脸用于测试:

实验结果

实验中,model A是单一使用softmax损失函数监视的模型,model B是softmax损失和对比损失联合监视的模型,model C是softmax损失和中心损失联合监视的模型。实验结果显示,model C的性能比model A和modelB性能更好,在LFW和YTF中都能得到更高的准确率。

用MegaFaceChallenge数据集实验

MegaFace中的人脸图像样本:

我们对使用不同方法的模型进行了人脸识别和人脸验证实验,结果如下:

人脸识别任务中不同模型的正确率

人脸验证任务中不同模型的正确率

结果显示,使用 softmax 损失函数和中心损失函数联合监视的 model C 能得到更高的正确率。

总结

本论文中我们对人脸识别和验证任务提出一种新的损失函数,即中心损失。中心损失和softmax损失联合监督学习的CNN,其对深层学习特征的人脸识别能力大大提高。对几个大型人脸基准的实验已经令人信服地证明了该方法的有效性。

开源

这篇论文发表于2016欧洲计算机视觉大会(ECCV 2016),论文作者于10月12日和13日开源了训练模型和提取深层特征demo。

开源地址:https://github.com/ydwen/caffe-face

训练模型

1. 安装Caffe,请按照安装指南(http://caffe.berkeleyvision.org/installation.html)进行,确保在使用我们的代码前已经正确安装caffe。

2. 下载人脸数据集,e.g. CAISA-WebFace,VGG-Face, MS-Celeb-1M, MegaFace.

3. 预处理训练人脸图像,包括检测、对齐等。这里我们强烈推荐MTCNN,它是用于人脸识别和对齐非常高效的开源工具。

4. 创建训练集和验证集的列表,放到face_example /data /

5. 指定train和val的数据源

6. 指定FC6层的目标数量

7. 指定中心损失层目标数量和损失权重

8. 训练模型

提取深层特征

1. 编译及配置matcaffe

2. 在face_example/extractDeepFeature.m中指定相应的路径

3. 在Matlab运行extractDeepFeature.m

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

南京大学周志华教授综述论文:弱监督学习

44712
来自专栏新智元

谷歌放大招!数据增强实现自动化

1972
来自专栏CreateAMind

代码--深度网路场景位置记忆效果惊人-视频-论文

1142
来自专栏机器之心

想入门设计卷积神经网络?这是一份综合设计指南

1674
来自专栏机器之心

前沿 | 超越像素平面:聚焦3D深度学习的现在和未来

想象一下,如果你正在建造一辆自动驾驶汽车,它需要了解周围的环境。为了安全行驶,你的汽车该如何感知行人、骑车的人以及周围其它的车辆呢?你可能会想到用一个摄像头来满...

1882
来自专栏目标检测和深度学习

你可能不知道的7个深度学习实用技巧

深度学习已经成为解决许多具有挑战性的现实世界问题的方法。对目标检测,语音识别和语言翻译来说,这是迄今为止表现最好的方法。许多人将深度神经网络(DNNs)视为神奇...

2849
来自专栏新智元

效果惊艳!FAIR提出人体姿势估计新模型,升级版Mask-RCNN

来源:densepose.org 【新智元导读】FAIR和INRIA的合作研究提出一个在Mask-RCNN基础上改进的密集人体姿态评估模型DensePose-R...

43113
来自专栏应兆康的专栏

20. 偏差和方差

假设你的训练集,开发集和测试集都来自同一分布。那么你会觉得获取更多的训练数据就可以提高性能,对吗? 尽管更多的数据是无害的,但它并不是总会像我们所期望的那样有用...

3529
来自专栏崔庆才的专栏

NanoNets:数据有限如何应用深度学习?

2005
来自专栏漫漫深度学习路

Andrew NG 在2016 NIPS 上tutorial 简单总结

Andrew NG 在2016 NIPS 上tutorial 简单总结 水平有限,如有错误,请不吝指正,谢谢! 视频地址youtube 神经网络已经出现很多...

1966

扫码关注云+社区

领取腾讯云代金券