人脸识别
人脸识别中的数据集
可参考的网页链接
人脸相关数据集
人脸相关数据集
人脸相关数据集
论文讲解以及数据集下载
face_recongnition
简介:
人脸识别大致分为如下三个部分:
- 人脸检测 face detection(检测照片中所有的人脸,使用直方图梯度直方图)
- 人脸对齐 face alignment(使用Vahid Kazemi和Josephine Sullivan在2014年发明的方法。基本的想法是我们将在每个面上提出68个特定点(称为地标)
- 人脸识别 face recognition,包括: face verification:两张图片相似程度。face identification: 在图片库中检索与当前图片相似度最高的图片。(使用resnet并结合triplet loss训练神经网络输出128维的数据编码人脸)
扩展参考网页:https://www.cnblogs.com/Anita9002/p/7798907.html
优点:容易部署,代码执行效率较高
缺点:可扩展性差、对于亚洲人脸识别的准确度较低
人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型, 用LFW人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
代码地址:https://github.com/ageitgey/face_recognition
arc_face
代码地址
这篇文章提出一种新的用于人脸识别的损失函数:additive angular margin loss,基于该损失函数训练得到人脸识别算法ArcFace(开源代码中为该算法取名为insightface,二者意思一样,接下来都用ArchFace代替)。ArcFace的思想(additive angular margin)和SphereFace以及不久前的CosineFace(additive cosine margin )有一定的共同点,重点在于:在ArchFace中是直接在角度空间(angular space)中最大化分类界限,而CosineFace是在余弦空间中最大化分类界限,这也是为什么这篇文章叫ArcFace的原因,因为arc含义和angular一样。除了损失函数外,本文的作者还清洗了公开数据集MS-Celeb-1M的数据,并强调了干净数据的对实验结果的影响,同时还对网络结构和参数做了优化。总体来说ArcFace这篇文章做了很多实验来验证additive angular margin、网络结构设计和数据清洗的重要性,非常赞。
不管是SphereFace、CosineFace还是ArcFace的损失函数,都是基于传统的softmax loss进行修改得到的,因此公式1就是softmax loss损失函数。
在arcface 损失函数输出的基础上使用了focal loss
原文链接:https://blog.csdn.net/u014380165/article/details/80645489
facenet
谷歌人脸检测算法,发表于 CVPR 2015,利用相同人脸在不同角度等姿态的照片下有高内聚性,不同人脸有低耦合性,提出使用 cnn + triplet mining 方法,在 LFW 数据集上准确度达到 99.63%,在 youtube 人脸数据集上准确度 95.12%,比以往准确度提升了将近 30%。
facenet网络结构:
使用三元损失函数。
三元损失函数的公式表达:
整理后最终的表达式:
代码参考地址
论文介绍参考论文