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

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

3天内不再提示

基于深度学习的人脸识别算法与其网络结构

新机器视觉 来源:CSDN技术社区 作者:weixin_39667398 2021-03-12 11:13 次阅读

度量学习

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

为了让神经网络能够更加有效的学习,合理的设计损失函数来度量和映射人物特征之间的距离,成为了提高人脸识别精度的主要研究方向之一。许多在分类任务中常用的损失函数,如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)。

cafaa5e6-82ca-11eb-8b86-12bb97331649.png

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

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

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

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

    关注

    42

    文章

    4771

    浏览量

    100745
  • 网络结构
    +关注

    关注

    0

    文章

    48

    浏览量

    11082
  • 深度学习
    +关注

    关注

    73

    文章

    5503

    浏览量

    121140
收藏 人收藏

    评论

    相关推荐

    深度识别算法包括哪些内容

    :CNN是深度学习中处理图像和视频等具有网格结构数据的主要算法。它通过卷积层、池化层和全连接层等组件,实现对图像特征的自动提取和识别。 应
    的头像 发表于 09-10 15:28 377次阅读

    深度识别人脸识别有什么重要作用吗

    深度学习人脸识别技术是人工智能领域的一个重要分支,它利用深度学习
    的头像 发表于 09-10 14:55 510次阅读

    深度识别人脸识别在任务中为什么有很强大的建模能力

    通过大量数据进行训练,能够自动学习人脸的特征表示,而不需要人为设计特征提取算法。 多层神经网络结构深度
    的头像 发表于 09-10 14:53 386次阅读

    基于FPGA的人脸识别技术

    基于FPGA(现场可编程逻辑门阵列)的人脸识别技术,是一种结合了高效并行处理能力和灵活可编程性的先进图像处理解决方案。这种技术在安全监控、身份认证、人机交互等领域具有广泛应用前景。以下将详细介绍基于FPGA的人脸
    的头像 发表于 07-17 11:42 1434次阅读

    基于Python的深度学习人脸识别方法

    基于Python的深度学习人脸识别方法是一个涉及多个技术领域的复杂话题,包括计算机视觉、深度学习
    的头像 发表于 07-14 11:52 1263次阅读

    基于OpenCV的人脸识别系统设计

    基于OpenCV的人脸识别系统是一个复杂但功能强大的系统,广泛应用于安全监控、人机交互、智能家居等多个领域。下面将详细介绍基于OpenCV的人脸识别系统的基本原理、实现步骤,并附上具体
    的头像 发表于 07-11 15:37 1.2w次阅读

    卷积神经网络人脸识别中的应用

    人脸识别技术作为人工智能领域的一个重要分支,近年来取得了显著的发展。其核心在于通过计算机对人脸图像进行特征提取和识别,从而实现自动的人脸身份
    的头像 发表于 07-08 10:48 719次阅读

    深度学习与nlp的区别在哪

    方法,它通过模拟人脑的神经网络结构,实现对数据的自动特征提取和学习深度学习的核心是构建多层的神经网络结构,每一层都包含大量的神经元,这些神
    的头像 发表于 07-05 09:47 922次阅读

    深度神经网络的设计方法

    深度神经网络(Deep Neural Networks, DNNs)作为人工智能领域的重要技术之一,通过模拟人脑神经元之间的连接,实现了对复杂数据的自主学习和智能判断。其设计方法不仅涉及网络结
    的头像 发表于 07-04 13:13 458次阅读

    如何设计人脸识别的神经网络

    人脸识别技术是一种基于人脸特征信息进行身份识别的技术,广泛应用于安全监控、身份认证、智能门禁等领域。神经网络是实现
    的头像 发表于 07-04 09:20 650次阅读

    人脸识别模型训练是什么意思

    人脸识别模型训练是指通过大量的人脸数据,使用机器学习深度学习
    的头像 发表于 07-04 09:16 589次阅读

    神经网络算法结构有哪些类型

    神经网络算法深度学习的基础,它们在许多领域都有广泛的应用,如图像识别、自然语言处理、语音识别
    的头像 发表于 07-03 09:50 441次阅读

    卷积神经网络的基本结构和训练过程

    卷积神经网络(Convolutional Neural Networks,CNN)是一种在图像识别、视频处理、自然语言处理等多个领域广泛应用的深度学习
    的头像 发表于 07-02 18:27 871次阅读

    神经网络结构类型和应用实例

    神经网络模型,作为深度学习领域的核心组成部分,近年来在图像识别、自然语言处理、语音识别等多个领域取得了显著进展。本文旨在深入解读神经
    的头像 发表于 07-02 11:33 438次阅读

    人脸识别技术的原理是什么 人脸识别技术的特点有哪些

    人脸检测是人脸识别的首要步骤。其目标是在图像或视频中准确地定位人脸的位置。人脸检测算法常用的方
    的头像 发表于 02-18 13:52 1893次阅读