0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文让你了解深度学习的人脸识别的算法

新机器视觉 来源:新机器视觉 作者:新机器视觉 2021-03-12 11:17 次阅读

基于深度学习的人脸识别算法,如何让神经网络从训练数据中学习到有效、鲁棒的生物特征是至关重要的。在这个过程中,一个良好的学习向导是不可或缺的。因此,在模型训练的过程中,通常使用度量学习的方式,将人物面部特征间的距离,作为神经网络特征学习的向导,来实现区分不同人物的目的。

为了让神经网络能够更加有效的学习,合理的设计损失函数来度量和映射人物特征之间的距离,成为了提高人脸识别精度的主要研究方向之一。许多在分类任务中常用的损失函数,如Softmax Loss,在经过一系列的改进之后,更好的适应了人脸识别的任务。像Arcface这样的损失函数(下图),利用了一种附加角度对cos值进行加法约束,使得模型能够在学习过程中合理的压缩相同人物特征间的余弦距离的同时增大不同人物特征间的余弦距离,以此达到精准区分人物的目的。

图示展示在利用损失函数arcface训练一个深度卷积神经网络过程中的计算流程。其中的改进在于,给角度加入了加性间隔m作为惩罚项来减小类间间距,并对其余弦值加入放缩s进行放缩,让网络变得易于训练。

另一些损失函数,如Triplet Loss(下图),则是通过以特定规则从训练集中选择样例,提取特征,比较这些特征之间的距离,来达到聚类相同人物特征和离散不同人物特征的目的。可以看到,这种方法因为要逐次比对选择样例特征之间的距离并基于此来优化模型参数,所以会延长模型训练的周期。但对于解决一些特殊场景下的困难样例,会有较好的效果。

图示为最初版本的Triplet Loss原理示意图。训练过程中需要从训练集中选择一个Anchor样本以及与Anchor样本同类的Positive样本和与Anchor样本异类的Negative样本,在训练过程中不断的拉近同类样本的距离并远离异类样本。

选择不同的损失函数,会对模型进行识别任务时选用的距离公式(相似度计算方法)产生影响。例如,Triplet Loss在早期优化的是欧氏距离,所以在后期进行特征比对时,利用欧式距离来计算特征之间相似度就是更加自然的。此外,通过对这些损失函数进行变形,来统一各损失函数的优化距离,从而使不同的损失函数能够运用在训练模型的不同阶段,或将不同损失函数对不同的样例分配进行结合,从而达到更高效的训练效率,也是目前的工作方向之一。

网络结构

根据使用场景和计算设备的不同,通常需要选择不同规模的神经网络结构。随着人脸识别在移动端的普及以及识别规模的增大,选用计算量更小、更高效的网络结构成为了重要的研究方向。

标准的卷积神经网络结构,以VGG16为例,通常由卷积层,池化层,全连接层和激活函数组成。该网络通过反复堆叠3*3的小型卷积核和2*2的最大池化层,不断加深网络结构来提升性能。

但随着网络结构的进一步加深,网络参数会随之增多,运算开销会变得很大,增加运算成本。同时,网络结构的加深也会让网络发生退化现象,以至于在进一步训练时无法达到预期的精度。

为解决这些问题,设计出参数少,深度深,运算快,易于训练的轻量级网络网络,各种卷积结构和模块被逐步引入到了卷积神经网络的基础构架中。

残差模块:为解决加深网络后的网络退化问题,使深度网络变得可训练而提出的结构(见下图)。这种跳跃连接的结构让网络有能力在需要的时候拟合一个潜在的恒等映射函数,从而避免了在极深网络中出现的难以训练的问题。

分组卷积:在标准的卷积操作中,其参数量与输入特征图通道数,卷积核尺寸和输出特征图通道数有关。如图,若输入特征图尺寸为H*W*c1,卷积核尺寸为h1*w1*c1,输出特征图尺寸为H*W*c2,标准卷几层的参数量则为:h1*w1*c1*c2。

若使用分组卷积(见下图),事先将输入的特征图按照通道数分为g组,分组卷积的参数量为则会变成标准卷积参数量的1/g:h1*w1*c1*c2/g。

分组卷积能够在一定程度上降低卷积的参数量,但也会减弱各通道之间的相关性。

深度可分离卷积:深度可分离卷积操作是将普通卷积拆解成深度卷积和逐点卷积。深度卷积负责滤波,逐点卷积负责转换通道。

如图(a),对于标准卷积,其参数量为Dk*Dk*M*N。如图(b),对于深度卷积,其参数量为:Dk*Dk*1*M。如图(c),对于逐点卷积,其参数量为:1*1*M*N。将两项操作合并,可知深度可分离卷积参数量是标准卷积的:(1/N)+(1/Dk**2)。

pIYBAGBK3j2AFOlGAABdfyCOB5M213.png

弃用池化层:池化层分为平均池化和最大池化,通过制定规则对池化核覆盖范围内的像素进行运算,达到学习图像边缘及纹理结构,同时压缩特征图的效果。但池化层常常会导致较多的信息损失,因此,通常使用控制卷积核在特征图上的滑动步长(如设定stride=2),来达到压缩特征图,提取图像特征的目的。

减少全连接层:因为全连接层需要将每个神经元节点与其前后层的神经元分别连接,其通常会占据卷积神经网络的大部分参数。为了减少模型的参数,会尽量减少全连接层的使用,通常利用全剧平均池化或大尺寸卷积核取代全连接层,来融合学到的特征。

同时,为了让模型能够更好的提取人物面部的特征,专门的人脸识别网络在这些方面进行了优化,例如mobilefacenet在卷积网络的尾部加入7*7卷积核压缩特征图,直接将特征图转化成相应维度的面部特征并送入全连接层这样的操作。对于一些特殊场景下的识别任务,则会根据需求,定制出相应的结构模块。例如,在面对面部遮挡的任务中,融入空间注意力机制,实现事先为特征热力图的空间分布的加权,就变得相对重要。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    3955

    浏览量

    80563

原文标题:基于深度学习的人脸识别算法

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用Python进行图像识别的自动学习自动训练?

    如何使用Python进行图像识别的自动学习自动训练? 使用Python进行图像识别的自动学习和自动训练需要掌握一些重要的概念和技术。在本文中,我们将介绍如何使用Python中的一些常用
    的头像 发表于 01-12 16:06 219次阅读

    深度学习在语音识别中的应用及挑战

    一、引言 随着深度学习技术的快速发展,其在语音识别领域的应用也日益广泛。深度学习技术可以有效地提高语音
    的头像 发表于 10-10 18:14 502次阅读

    生物识别人脸识别的区别

    人脸图片或视频进行分析和识别,以确定个体身份的一种方法。本文将探讨生物识别人脸识别的概念、应用领域和区别。
    发表于 08-28 17:29 892次阅读

    启英泰伦通话降噪方案,采用深度学习降噪算法通话更清晰

    的使用体验。 启英泰伦通话降噪方案具备以下特点: 1、采用深度学习降噪算法:利用深度神经网络进行模型训练,从而达到降噪效果,目标声音更清晰
    发表于 08-22 17:36

    什么是深度学习算法深度学习算法的应用

    。 在深度学习中,使用了一些快速的算法,比如卷积神经网络以及深度神经网络,这些算法在大量数据处理和图像
    的头像 发表于 08-17 16:03 1489次阅读

    深度学习算法简介 深度学习算法是什么 深度学习算法有哪些

    深度学习算法作为其中的重要组成部分,不仅可以为诸如人工智能、图像识别以及自然语言处理等领域提供支持,同时也受到了越来越多的关注和研究。在本文中,我们将着重介绍
    的头像 发表于 08-17 16:02 6840次阅读

    人脸识别的算法有哪些

    人脸识别的算法有哪些 人脸识别算法现在已经广泛应用于各个领域,如安防、商业、医疗等。
    的头像 发表于 08-09 18:34 3611次阅读

    人脸识别和指纹识别哪个安全?人脸识别和指纹识别的利弊及风险

      人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪
    发表于 08-03 16:55 2421次阅读

    人脸识别技术的工作原理和优缺点 人脸识别和图像识别的区别

      人脸识别技术是一种用于识别和验证人脸身份的技术。它使用计算机算法和数学模型识别人脸的不同特征
    发表于 08-03 16:53 1577次阅读

    基于粒神经网络与遗传算法优化的人脸识别算法

      摘要:针对非限条件下人脸识别准确率较低的问题,提出一种基于粒神经网络(MNN)与遗传算法优化的人脸识别
    发表于 07-20 15:38 0次下载

    使用局部线性嵌入极限学习的人脸识别方法

      摘要  针对人脸图片数量多、容易受噪声干扰,致使人脸识别的识别速度慢、准确率低的问题,提出一种基于 局部线性嵌入极限学习
    发表于 07-20 15:14 0次下载

    基于python代码的人脸识别实例

    基于python代码的一个人脸识别的实例,完整的实例,本人在pycharm中实测通过,是一个很基础的入门级的人脸检测和识别
    发表于 07-18 11:11 10次下载

    人脸识别技术的精度提高及其应用

    识别领域取得了很好的效果。通过训练大量的图像数据,深度学习模型可以自动提取图像中的特征,并且具有很强的泛化能力,可以识别不同角度、不同光照条件、不同表情
    的头像 发表于 07-05 14:13 500次阅读

    人脸面部表情识别的原理及其应用

    人脸面部表情识别是一种通过计算机视觉技术来分析人脸图像从而判断出面部表情的方法。该技术主要通过摄像头获取人脸图像,然后通过算法
    的头像 发表于 06-02 17:57 2868次阅读

    国产工业级RK3568核心板-AI人脸识别产品方案

    实际情况进行定制化开发, 例如: 深度学习算法优化:通过对RK3568处理器内置的NPU(神经网络处理器)进行深度学习
    发表于 05-06 14:30