APP下载

基于非对称卷积-压缩激发-次代残差网络的人脸关键点检测

2021-09-18王贺兵张春梅

计算机应用 2021年9期
关键词:级联网络结构关键点

王贺兵,张春梅

(北方民族大学计算机科学与工程学院,银川 750021)

(*通信作者电子邮箱chunmei66@hotmail.com)

0 引言

人脸关键点检测作为计算机视觉主要研究方向之一[1],其应用场景包括人脸表情识别[2]、人脸追踪[3]、身份验证[4]等。虽然被广泛地研究,但是存在多尺度人脸、复杂表情、光照、姿态和遮挡等情况,获取高精度人脸关键点仍是一个具有挑战性的问题。

人脸关键点检测是一项检测人脸面部关键点位置的视觉任务[5],即在一张给定的人脸图像坐标系中,定位出人脸面部关键区域的坐标,例如眼睛、嘴角、脸部轮廓等。本文是对人脸左眼、右眼、鼻尖、左嘴角和右嘴角五点进行定位。

人脸关键点检测算法从建模方法上划分大体可以分为三类:

1)基于形状优化建模。活动形状模型(Active Shape Model,ASM)[6]将人脸关键点坐标构建成形状向量,人脸对齐计算出平均形状向量然后进行主成分分析(Principal Component Analysis,PCA)降维得到形状模型,为每一个关键点提取局部特征,以局部特征作为约束条件迭代匹配直至收敛。活动外观模型(Active Appearance Model,AAM)[7]是由ASM 活动形状模型改进而来,算法在构建形状模型的基础上还构建了纹理模型,将形状模型与纹理模型融合再PCA 降维形成AAM 模型。ASM 与AAM 的泛化能力较差,对差异性较大的人脸准确率会下降,同时这种近似穷举搜索的方式在一定程度上也影响了计算效率。

2)基于级联回归建模:级联回归算法一般需要训练一系列回归器,通过级联回归器逐步将初始形状回归到关键点真实位置,每一步回归器的计算都依赖于先前回归器的输出。级联姿态回归(Cascaded Pose Regression,CPR)[8]把由数据集形状向量计算出的平均人脸作为输入,提取姿态索引特征送入回归器,将回归偏移量加上当前阶段形状向量作为下一阶段形状向量,递归至收敛。CPR 很依赖回归函数和人工特征的选择,其有效程度会直接影响人脸关键点定位的精度。

3)基于深度学习建模。神经网络具有近似拟合任意函数的能力,因此被广泛地应用在各个领域中,并取得了相当瞩目的成果。级联深度卷积神经网络(Deep Convolutional Neural Network,DCNN)算法[9]首次将卷积神经网络(Convolutional Neural Network,CNN)[10]应用到人脸关键点检测任务中,同时结合了级联回归的思想,采用多阶段级联CNN 回归策略,在人脸五点检测上取得了相当高的精度。级联DCNN 算法精心设计了三个阶段:第一阶段以整张人脸和裁剪后的左右眼鼻尖、鼻尖左右嘴角作为输入,分别用来预测人脸五点、左右眼和鼻尖、鼻尖和左右嘴角的坐标,然后对预测的结果取平均值作为第一阶段的输出;第二阶段以第一阶段输出的结果为中心对原图像进行分割,将含有左右眼、鼻尖、左右嘴角的分割结果作为输入,每两个CNN 预测一个人脸器官的坐标偏差,取平均后作为该器官在第二阶段的输出;第三阶段在第二阶段的输出结果上对原图像进行裁剪预处理后作为输入,同样每两个CNN 预测一个人脸器官的坐标偏差,取平均后作为该器官在第三阶段的输出,算法流程如图1 所示。整个算法以第一阶段预测结果为基础,经第二、三阶段结果矫正后,作为整个算法最终的输出。精心设计的级联DCNN 算法虽然取得了很高的精度,但是算法使用了三个阶段来对人脸关键点坐标进行回归计算,相邻阶段间还需要繁琐的图像预处理,整个算法流程相当地复杂。

图1 级联DCNN算法流程Fig.1 Flowchart of cascade DCNN algorithm

为解决级联算法在人脸五点检测上不仅需要多阶段回归还需要在相邻阶段间进行图像预处理的问题,本文在次代残差网络(Next Residual Network,ResNeXt)[11]基础上,添加非对称卷积(Asymmetric Convolution,AC)[12]结构,强化网络空间学习能力提升对翻转、旋转图像的鲁棒性,添加压缩激发结构(Squeeze Excitation,SE)[13],提高特征映射的通道相关性,构建出非对称卷积-压缩激发ResNeX(tAsymmetric Convolution-Squeeze Excitation ResNeXt,AC-SE-ResNeXt)网络,只使用单阶段一个AC-SE-ResNeXt 网络便可以完成人脸五点关键点检测任务。

本文的主要工作如下:1)在ResNeXt 网络结构的基础上添加AC结构和SE结构,强化网络空间学习和通道学习;2)为了能精确拟合复杂环境下人脸,将AC-SE-ResNeXt 网络模型加深到101 层,在单阶段只使用一个网络情况下,不仅达到了级联策略的精度还降低了检测失败率,提高了算法鲁棒性。

1 相关网络结构

1.1 ResNeXt块结构

在训练网络时,随着网络深度增加,输出结果会逐渐增至饱和后迅速退化,He等[14]为解决深度网络中存在的网络退化问题,提出残差网络(Residual Network,ResNet),在ResNet 中核心部分是残差单元,使得网络可以进行残差学习和恒等映射,同时由于恒等映射ResNet 在一定程度上也能缓解梯度消失的问题。

ResNeXt 保留了ResNet 的恒等映射部分,将残差学习由单路径卷积扩展成多路径分组卷积,多路径分组卷积遵循分割、转换、合并范式,输入数据会被分别送入到数量为分支基数(Cardinality)的多路径中,各路径独立进行卷积计算,计算结果以通道为基准进行连接,ResNeXt块如图2所示。

图2 ResNeXt块结构Fig.2 Structure of ResNeXt block

1.2 非对称卷积模块

非对称卷积结构在非对称卷积网络(Asymmetric Convolution Network,ACNet)中最先被使用,利用CNN 卷积核中权重与权重空间位置的关系强化普通卷积层,添加水平方向和竖直方向卷积运算提升模型对翻转和旋转图像的鲁棒性。文献[10]通过剪枝实验证明,在卷积核中不同空间位置的权重其重要性也不同,中间骨架的权重最为重要,因此在训练网络时,可以将单路径n×n卷积拆分成n×n、n× 1 和1×n三路卷积,在测试时将三路卷积权重线性相加重新合并成n×n,通过骨架权重合并的方式强化卷积层所提取的空间特征,同时还保持原测试网络结构不变,非对称卷积模块如图3所示。

图3 非对称卷积模块示意图Fig.3 Schematic diagram of asymmetric convolution module

1.3 压缩激发模块

压缩激发网络(Squeeze-and-Excitation Network,SENet)从特征通道相关性的角度出发构建网络模型,通过强化特征映射中重要通道的特征,减弱不重要通道的特征来增强卷积层所提取特征的指向性。SENet 的核心是压缩激发结构,此结构共分为两个过程:压缩与激发。对高宽通道数分别为H×W×C的输入,首先进行全局平均池化(Global Average Pooling,GAP),输出为1× 1×C的数据,该过程称为压缩;然后对1× 1×C的输入进行两级全连接(Full Connection,FC),该过程称为激发;最后把激活函数Sigmoid的输出1× 1×C作为一个缩放尺度乘到原输入H×W×C的C个通道上,作为下一级的输入,压缩激发模块的结构如图4所示。

图4 压缩激发模块结构Fig.4 Structure of squeeze-and-excitation module

2 AC⁃SE⁃ResNeXt人脸关键点检测算法

2.1 AC-SE-ResNeXt块结构

本文算法是在自行设计的网络结构AC-SE-ResNeXt 基础上对人脸五个关键点:左眼(Left Eye center,LE)、右眼(Right Eye center,RE)、鼻尖(Nose tip,N)、左嘴角(Left Mouth corner,LM)和右嘴角(Right Mouth corner,RM)进行检测。AC-SE-ResNeXt 网络结构的核心组成部分是AC-SE-ResNeXt块,如图5所示。

图5 AC-SE-ResNeXt块Fig.5 AC-SE-ResNeXt block

输入数据为矩阵X(b,h,w,c),其中:b表示一次送入网络中样本的数量即批量;h和w、c分别表示输入矩阵的高、宽和通道数。数据进入AC-SE-ResNeXt 块后会先进行批量归一化(Batch Normalization,BN)[15]操作,以消除网络在训练过程中由于参数更新导致每一层输入数据分布不稳定所带来的学习速度下降和梯度消失的问题。在单通道上批量归一化可形式化表示为:

其中:n表示通道且0 ≤n≤c-1;参数ε是一个很小的常数,保证分母大于0;两个可学习的超参数γ和β分别表示拉伸量和偏移量。经BN 操作输出的数据会由整流线性单元(Rectified Linear Unit,ReLU)作非线性映射,由此之后数据将分别流向恒等映射和残差学习两条分支。恒等映射分支会检查输入数据与输出数据的通道匹配度,若不匹配则采用1× 1卷积扩充通道使之匹配,1× 1卷积运算具体可表示为:

其中:m表示一次送入网络中样本的数量且0 ≤m≤b-1。图5 中恒等映射分支卷积操作CONV 1× 1× 64 × 256 表示卷积核的尺寸为1× 1,输入通道数为64,输出通道数为256。

为了使残差学习分支可以提取出更丰富的特征,在ResNeXt 的分割、转换、合并范式基础上替换普通卷积为AC结构,以提高卷积层的空间信息提取能力和对翻转、旋转图像的鲁棒性,同时添加SE 结构,在网络训练过程中为特征映射的不同通道学习一个权重系数,强化重要通道特征,弱化不重要通道特征,结合通道相关性增强特征映射的表征。残差学习分支的1× 1 卷积通过学习特征映射通道相关性将输入数据各个通道映射到新的特征空间中,卷积结果会被送入并行的多路径中,每条路径采用相同的拓扑结构但训练参数相互独立,给层间结构更多可以根据数据自动调节的空间,提高特征提取能力。其中基于硬件性能的考虑,本文使用了8 条并行路径。在每条路径层间连接的转换部分借鉴了非对称卷积思想,将单路径3× 3 卷积拆分成3× 1、1× 3 和3× 3 三路并行卷积,不同尺寸卷积核的卷积运算聚焦不同的空间信息,把提取到的多尺度特征进行线性相加融合,强化卷积核骨架部分提取的特征,使得映射结果包含更丰富的空间信息。融合后的数据经过ReLU 函数作非线性映射,各个分支的输出结果以通道为基准进行连接合并,上述过程可表示为:

其中:X为输入矩阵;CONVn×n(⋅)表示卷积核尺寸为n×n的卷积运算;BN(⋅)为批量归一化运算;C(⋅)表示以输入矩阵通道为基准的连接运算。

数据矩阵流动到SE 结构会分为两条分支:一条分支上的数据会原样向下传递。另一条分支会对数据矩阵先进行GAP运算,即:

其中:n表示通道且0 ≤n≤c-1。基于通道的整体信息来对原始数据矩阵进行降维,每一个矩阵切片的均值代表该通道初始权重。然后连接神经元个数为的FC 层,其中c表示输入数据的通道数目,r为一个超参数,本文使用的数值为16。经激活函数ReLU 运算后再连接神经元个数为c的FC层,以保证跟原始数据通道匹配,最后sigmoid 函数将结果限制到范围[0,1]内。把通过训练集学习出的权重系数乘到原始数据对应通道上,使得不同通道的特征指向性更强。

2.2 算法网络结构

AC-SE-ResNeXt 将整张人脸图像作为网络的输入,输出网络回归的人脸关键点坐标。一张人脸图像X∈Rq×1,其中q为图像像素个数,Y∈R2p×1表示输出的p个关键点(p=5)坐标。整个人脸关键点检测任务就是去学习一个人脸图像输入矩阵到人脸器官坐标输出的映射函数f:X→Y,其中函数f需满足关系:

其中:向量Yt表示真实人脸器官坐标。从数学角度来看,人脸关键点回归任务其实是一个逼近问题,在给定的训练样本中去学习一个映射函数,用深度神经网络来求解回归问题,那么映射函数的形式便是神经网络的结构。神经网络具有近似拟合任意函数的能力,通过加深网络和改进网络结构,可以使网络的拟合能力更强,近似精度更高。

人脸图像具有纹理结构性的特点,即一般双眼在鼻子上方,嘴巴在鼻子下方,器官间的相对位置固定。网络在学习人脸关键点与对应坐标的映射关系时,需要将人脸器官间相互约束的结构性信息隐含其中,显式地学习像素点到坐标的回归关系,同时还需要隐式地学习图像全局上下文信息,结合这两方面的信息输出预测结果。为了使网络提取出更丰富的特征,从空间学习和通道学习两个方面加强网络特征提取能力,同时为了保证预测结果的精度,将整个网络加深到101 层,AC-SE-ResNeXt 网络结构概览如图6 所示。人脸边界框由先验知识人脸检测器得到,依据边界框坐标将裁剪后的人脸图像送入网络中。网络结构详细信息如表1所示。

表1 AC-SE-ResNeXt网络详细信息Tab.1 AC-SE-ResNeXt network details

图6 AC-SE-ResNeXt网络结构概览图Fig.6 Overview of AC-SE-ResNeXt network structure

3 实验与结果分析

平均误差率和失败率被广泛地应用于人脸关键点检测算法中[16-19],误差率和失败率可以评价整个算法的准确性和可靠性。平均误差率定义为:

其中:(x,y)和(x′,y′)分别表示关键点的真实坐标和网络预测的坐标;归一化参数w可以是人脸检测器检测出的人脸框边长,也可以是人脸双目间距离。平均误差率超过给定的阈值则被认为检测失败。为了与其他算法作比对,本文使用人脸双目距离作为归一化参数,失败率阈值设置为10%。

3.1 实验数据

数据集分为三个部分:训练集、验证集和测试集。其中,训练集和验证集是由级联DCNN 算法所使用的13 466 张人脸图像数据增强(旋转、平移)而来,增强后的数据共26 932 张,训练集与验证集分别使用了21 632 张和5 300 张。测试集使用的是公共数据集BioID[20]和LFPW[21],BioID 数据集中的人脸图像是在实验室条件下采集得到,LFPW 数据集则是从网络上搜集的人脸图像。对得到的公共数据集首先要进行数据清理,剔除掉数据集中因格式损坏、人脸边界框偏差过大而无法使用的人脸图像,经处理后的BioID 数据集和LFPW 数据集分别为1 471 张、662 张。同时,BioID 数据集中的人脸图像为单通道灰度图像,为了保持网络输入通道一致性,将BioID 数据集单通道的人脸图像扩充为三通道。

3.2 实验细节与纵向对比

本文所提AC-SE-ResNeXt 人脸关键点检测算法的训练和测试均是基于开源深度学习框架,其中网络训练过程中所使用的损失函数为:

网络权重采用Xavier[22]初始化方法,学习率设置为0.01,同时网络在训练过程中会依据提前设置的计划表动态调整学习率,在经过120、240 和300 次迭代时,会分别使学习率减小为原来的1/10,最终学习率为0.000 01,整个算法的迭代次数为450。训练过程中使用L2正则减少过拟合,其中正则化参数设置为0.000 1。使用Adam[23]优化器对损失函数即式(10)进行优化,训练批量的大小BatchSize设置为676。

纵向对比实验发现会造成结果产生明显性差异的参数是网络深度,实验初期选用深度为50 层,其他参数设置基本相同的网络结构,实验结果精度上不如101 层网络,具体对比如表2~3所示。

表2 在LFPW测试集上50层网络与101层网络的平均误差率 单位:%Tab.2 Mean error rate of 50-layer network and 101-layer network on LFPW test set unit:%

表3 在BioID测试集上50层网络与101层网络的平均误差率 单位:%Tab.3 Mean error rate of 50-layer network and 101-layer network on BioID test set unit:%

3.3 实验结果分析

为了验证本文算法在人脸关键点检测上的有效性,除了与级联DCNN 算法[9]进行比较外,同时与已有的人脸五点关键点检测算法和商业软件进行比较。统计对比各个算法在LFPW、BioID 测试集上平均误差率和失败率如表4~7 所示。本文算法在测试集LFPW 上右眼平均误差率低于级联DCNN算法,左眼、鼻尖、左嘴角和右嘴角平均误差率略高于级联DCNN 算法,明显优于其他算法;各个关键点失败率均低于其他算法,所有算法的综合平均误差率如表6~7所示,其中本文算法综合平均误差率为2.3%,级联DCNN 算法综合平均误差率为2.19%。在测试集BioID上鼻尖、右嘴角平均误差率低于级联DCNN 算法,左眼、右眼和左嘴角略高于级联DCNN 算法,较其他算法有明显的优势;左右眼失败率略高于级联DCNN 算法,剩余关键点失败率均低于其他算法,其中本文算法综合平均误差率为1.99%,级联DCNN 算法综合平均误差率为2.02%。本文算法在平均误差率上与级联DCNN 算法相差不大,相较于其他算法优势明显;在失败率上相较于其他算法有所提升,说明本文算法在关键点检测过程中鲁棒性更强,可靠性上更有优势。

表4 不同算法在LFPW测试集上的平均误差率 单位:%Tab.4 Mean error rates of different algorithms on LFPW test set unit:%

表5 不同算法在BioID测试集上的平均误差率 单位:%Tab.5 Mean error rates of different algorithms on BioID test set unit:%

表6 不同算法在LFPW测试集上的失败率与综合平均误差率 单位:%Tab.6 Failure rates and comprehensive average error rates of different algorithms on LFPW test set unit:%

图7 为在验证集、LFPW 和BioID 测试集上人脸关键点检测结果示例,在不同光照、姿态、表情、面部遮挡等多种环境下,本文算法均能较为准确地定位到人脸左眼、右眼、鼻尖、左嘴角和右嘴角关键点的位置。

图7 在验证集、LFPW和BioID测试集上的人脸关键点检测结果示例Fig.7 Examples of facial landmark detection results on validation set,LFPW and BioID test sets

4 结语

为解决级联卷积神经网络策略在人脸关键点检测中不仅需要多阶段回归还需要在相邻阶段间进行图像预处理的问题,本文基于ResNeXt 网络结构,结合ACNet、SENet 的思想,提出了基于AC-SE-ResNeXt 网络的人脸关键点检测算法。实验结果表明,在网络结构上增加非对称卷积模块、压缩激发模块,强化网络所提取的空间特征和特征通道相关性,增加网络深度,可以有效地提高人脸关键点检测精度,增强算法鲁棒性,将级联策略下多阶段人脸关键点回归模型简化为端到端的单阶段单网络回归模型。

表7 不同算法在BioID测试集上的失败率与综合平均误差率 单位:%Tab.7 Failure rates and comprehensive average error rates of different algorithms on BioID test set unit:%

本文所设计的AC-SE-ResNeXt 网络模型虽说可以达到与级联卷积神经网络策略相似的精度,但是整个网络深度也达到了101 层。如何对网络结构进行压缩以及尝试使用回归热力图进行训练和检测是接下来的研究方向。

猜你喜欢

级联网络结构关键点
铀浓缩厂级联系统核安全分析
实现级联形状回归方法对视线追踪
论建筑工程管理关键点
多供取料的Q模型级联的数学描述
肉兔育肥抓好七个关键点
基于AutoML的保护区物种识别①
利用定义法破解关键点
带通信配网故障指示器故障监测方法及安装分析
机械能守恒定律应用的关键点
非常规突发事件跨组织合作网络结构演化机理研究