人脸识别总结(附开源项目代码与各大数据集下载路径)

本文总结了人脸识别的关键技术,包括基于ResNet的网络模型、各种Loss函数的原理与应用,以及相关开源项目的介绍。文章讨论了ResNet的残差结构和不同变体,探讨了L2-softmax、Contrastive Loss、Triplet Loss、Center Loss、NormFace、Coco Loss、L-softmax、A-Softmax和ArcFace等多种Loss,还分享了人脸数据集和推荐资源。
摘要由CSDN通过智能技术生成

人脸识别总结

概要

人脸识别在深度学习领域里算是一项较为成功的应用,在日常生活中,经常可以见到人脸识别的设备,如人脸考勤机,各大交通站点的闸机,移动支付等。本人在从事人脸识别算法开发的短短一年时间里,也关注了不少论文和大佬们,对相关的技术发展也有了一些皮毛上的了解,在这里记录一下。本文的主要结构如下:

网络模型

深度学习发展至今,主流的 CNN 网络有 VGG, GoogleLeNet, ResNet, ResNeXt, DenseNet 等。其中,基于 ResNet 的开源人脸识别模型最为常见,如 InsightFacewy1iu/spherefaceageitgey/face_recognition 等。

本文主要介绍一下ResNet, 该模型结构是何凯明大神的团队提出的,用于解决深度学习模型因深度加深而导致的“退化”问题。由于网络深度增加后,梯度消失或者爆炸的问题就会接踵而来,因此模型达不到很优的收敛效果。关于梯度爆炸与消失的问题,可以参考博客详解机器学习中的梯度消失、爆炸原因及其解决方法。针对这个问题,作者提出了一个残差(Residual)的结构,如下:
在这里插入图片描述
对于一个简单的 block , 当输入为 x 时其学习到的特征记为 H(x) ,作者通过增加了一个恒等映射(identity mapping),将所需要学习的 H(x) 转换成学习残差 F(x)=H(x)-x 。这一想法源于图像处理中的残差向量编码,通过一个reformulation,将一个问题分解成多个尺度直接的残差问题,能够很好的起到优化训练的效果。除了上图中常规的残差结构外,针对于更深层的 ResNet 网络,还有如下的变体:
在这里插入图片描述
该结构的目的主要是为了降低模型的计算和参数量,使模型具有深层的语义表达能力的同时,兼具较快的速度,有利于实际应用需求。常见的 ResNet 网络结构有 18, 34, 50, 101, 152 层,详细如下:
在这里插入图片描述
从该表可以看出,ResNet 的结构可以分为 conv1,conv2_x,conv3_x,conv4_x,conv5_x ,共 5 个部分,每个部分的残差结构数目各不相同。关于其层数计算,拿 101 层的网络为例,每层的 block 数目为 conv2_x:3, conv3_x:4,conv4_x:23,conv5_x:3,共计 33 个 block, 再加上 conv1 和模型最后的 FC 层,为 101 层网络。

以下是收集的有关 CNN 网络的论文和博客等资料。

LOSS

人脸识别中所用的 LOSS 真的是百花齐放,从最基础的 SoftMax 到加入各种 trick 的 ArcFace, 从欧氏距离到余弦距离,从无 Margin 到加入 Margin。整理了一下,大概有如下几种:

  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值