APP下载

基于多任务学习的人脸属性识别方法

2020-03-19张雨楠杨俊钦

计算机工程 2020年3期
关键词:错误率人脸轻量化

李 亚,张雨楠,彭 程,杨俊钦,刘 淼

(广州大学 计算机科学与网络工程学院,广州 510006)

0 概述

人脸具有丰富的属性信息,如性别、年龄、肤质、是否戴眼镜等。这些属性特征在人机交互、嫌犯识别、视频监控、精准广告投放[1-3]等方面都有广泛应用。

传统人脸属性识别方法主要包括3个阶段:人脸检测、特征提取和识别分类器训练。其中,常见的特征提取方法有局部二值模式(Local Binary Pattern,LBP)[4]和方向梯度直方图(Histogram of Oriented Gradient,HOG)[5]。在现实应用中,传统方法易受非限定条件下复杂环境的影响,导致错误率升高。近来出现了多个基于深度学习的属性识别方法,不但降低了非限定条件下的识别错误率,还能识别更加精细的人脸属性。如文献[6]提出的LNet+ANet网络以及相关改进[7-8]。随着神经网络的加深,属性识别效果逐步提升,但同时也带来了应用部署时计算资源要求高,以及难以实时识别处理的问题,限制了模型在资源有限的嵌入式和便携式设备上的应用。

为解决上述问题,本文提出一种轻量高效的人脸属性识别方法。通过轻量化的残差模块构建基础网络,极大减少了模型参数,同时可以加快训练和预测过程速度。根据属性类间的关联关系设计共享分支网络,与每个属性一个分支相比进一步减少模型参数。为了改善正负样本数不均衡问题,采用带权重的交叉熵作为损失函数训练网络。

1 网络基础

常用的卷积神经网络由LECUN提出[9],通常由卷积层、池化层和全连接层组成,通过反向传播算法[10]对模型参数进行更新。

1.1 一般卷积操作

卷积层是卷积神经网络的核心,用多个卷积核和上一层输出的特征图进行卷积。卷积层公式如下:

(1)

由式(1)可知,要得到当前层某通道的特征图需融合上一层所有通道的特征图,计算过程包括滤波和融合。假设卷积层输入尺寸为hi×wi×ci,即上一层输出的特征图大小为hi×wi,通道数为ci。若卷积核大小统一为d×d,步长为1,输出尺寸为hi×wi×ci+1。计算过程即ci+1个d×d卷积核遍历ci个特征图进行滤波,产生ci+1×ci个中间特征图,再叠加每个输入通道对应的特征图产生ci+1个特征图。一个卷积层的计算量如式(2)所示:

cost(i+1)=hi×wi×d×d×ci×ci+1

(2)

随着网络深度的增加,卷积层的计算量将成倍增加,而所需要存储的参数个数,即空间花销亦成倍增加。一个通道的特征图需要对上一层所有通道的特征图进行过滤与融合才能获得,卷积层的这种计算方式存在着大量的计算冗余,需进一步优化。

1.2 深度可分离卷积操作

针对计算冗余问题,深度可分离卷积对传统卷积过程进行改进,将完整的卷积运算分解为完全解耦的两步进行,网络上用独立的两层来实现,第一层是逐通道卷积层,第二层是逐点卷积层。

基于1.1节假设,卷积层输入尺寸为hi×wi×ci,输出尺寸为hi×wi×ci+1。逐通道卷积层对输入的每个通道用单个卷积核进行过滤,从而得到与输入通道数相同的中间输出。与传统卷积不同,该层只产生ci个中间特征图,计算量为hi×wi×d×d×ci。第二层是逐点卷积层,用ci+1个1×1的卷积核遍历第一层输出的ci个特征图,然后对同一输出通道的特征进行融合,最后输出ci+1个特征图,计算量为hi×wi×ci×ci+1。因此,采用深度可分离卷积结构的卷积层计算量为:

hi×wi×ci×(d2+ci+1)

(3)

1.3 跨层连接

跨层连接是指将网络中的前后层连通,使网络中的每一层都接受它前面层的特征作为输入。随着网络层数的加深,网络在训练过程中的前传信号和梯度信号会逐渐消失。跨层连接可使信号在输入层和输出层之间高速流通,有效抑制梯度丢失和梯度爆炸等问题,在图像分类和分割等问题上表现出了良好的性能。跨层连接的网络单元结构如图1所示。

图1 跨层连接模块示意图

传统神经网络原本拟合的是y=F(x),而跨层连接将网络的拟合目标转变为y=F(x)+x。Resnet[14]的实验证明了这种拟合的转变能够保留输入的原始结构信息,不但能有效防止过拟合,而且使网络更易优化。受Resnet启发,本文采用跨层连接来设计网络模块。

2 轻量化人脸属性识别方法

2.1 整体网络结构

本文设计了一个面向丰富人脸属性识别的轻量化多任务学习网络LFaceA。整体网络结构如图2所示,包括特征学习共享网和属性识别分支网两部分。

图2 整体网络结构

特征学习共享网络基于Resnet进行改进,由多个轻量残差模块(Light Residual Module,LightRM)构成。模块由一对深度可分离卷积结构组成,模块间采用跨层连接。这种轻量化的设计大大减少了参数量,加快了训练和预测的速度。此外,本文采用小卷积核来改进传统卷积。与大卷积核相比,小卷积核所需要的参数更少,并且可通过堆叠多个小卷积核达到与大卷积核一样的感受野[15]。本文网络均采用了3×3和1×1的小卷积核,进一步减少网络的参数和计算量。

网络各层参数大小及详细网络设计结构如表1所示,输入是三通道的224×224大小的图像。特征学习共享部分首先是一个普通的3×3卷积,然后连接16个轻量化残差模块进行特征学习。属性识别分支网以学到的特征为输入,多个关联属性共享一个分支网。属性识别分支先通过一个轻量化残差模块和一个大小为1×1的卷积层提取与该属性组相关的精细特征;再连接一个7×7的平均池化层进行降维;然后为预防过拟合,连接了一个dropout层,以0.5的比率丢弃部分神经元;最后通过一个全连接层进行属性识别并输出。

2.2 轻量化残差模块设计

轻量化残差模块详细设计如图3所示。深度可分离卷积结构第一层的卷积核尺寸为3×3,卷积输出先经过批归一化处理(Batch Normalization,BN),然后进行非线性化处理。非线性化处理采用ReLU6激活函数,该函数是ReLU[16]的变种。ReLU的处理方法是将卷积结果小于零的部分置零,大于零的部分保持不变。而ReLU6除了保持小于零的部分置零外,大于零的部分设置上限为6。深度可分离卷积结构第二层的卷积核尺寸为1×1,对第一层的中间输出进行融合,最终经过批归一化处理后输出满足目标通道数的卷积结果。轻量化残差模块间采用跨层连接的模式,使信号在前后层之间高速流通,可有效抑制梯度消失。

图3 轻量化残差模块

2.3 共享属性识别子网络构建

人脸具有丰富的属性,而部分属性间往往具有较强的关联性[8,17-19]。例如,“山羊胡子”“光头”等属性与“性别是男”这一属性有极强的关联度,而与“直发”“灰发”“卷发”等属性几乎没有关联关系。由此,本文构建了可共享的属性识别子网络。为确定属性间的关联关系,本文对CelebA数据集中的图像进行了统计,各属性对通过构建关联矩阵得到关联关系图。如图4所示,不同颜色表征属性对间的关联程度,红色表示关联程度最高,蓝色表示关联程度最低(本刊为黑白印刷,彩色效果请至《计算机工程》官网查看电子文档)。

图4 CelebA数据集中人脸属性关联关系图

与每个属性都单独设计一个识别分支相比,多属性共享识别分支网络的方法可进一步减少网络参数,加快识别速度。受文献[8]的启发,本文把CelebA数据集上的40种属性分成9组(如表2所示),分别设计了9个共享的子网络来进行属性识别。子网络首先通过一个轻量残差模块提取与本属性组相关的精细特征,然后再进行相应的识别。这种设计不仅避免了大量属性分支的计算与空间花销,而且更好地利用了关联属性间的共同特征,具有更好的识别效果。

表2 属性分组表Table 2 Attribute grouping table

3 实验结果与分析

3.1 数据集介绍

实验采用了CelebA[6]人脸属性数据集,如图5所示。该数据集由香港中文大学发布,提供了人脸对齐和自然场景下近20万张人脸图像,标注了40种人脸属性。本文按照8∶1∶1的比例划分数据集,分别用于模型的训练、验证和测试,采用属性识别错误率对模型进行评价,与当前较先进的人脸属性识别方法进行了比较。

图5 CelebA数据集部分图像展示

3.2 模型损失函数与评价方法

和文献[20]一样,本文也采用了交叉熵损失函数对模型进行训练,其一般形式如下:

(4)

与发酵前荷叶上清液相比,2株肠球菌荷叶发酵上清液的3种抗氧化酶活力均显著提高(P<0.001)(图3)。其中,WEHI01发酵上清的SOD、CAT酶活力均极显著高于WEFA23发酵上清(P<0.001),而WEFA23发酵上清的GSH-Px酶活力显著高于WEHI01发酵上清(P<0.01)。

(5)

(6)

结合权重式(5)、式(6),本文在模型训练中采用的损失函数如式(7)所示:

(7)

为了便于与现有研究比较,本文采用了识别错误率(ERR)和多属性平均识别错误率(mERR)作为评价指标。

3.3 识别错误率比较

将本文方法与的人脸属性识别方法文献[6]方法,Moon[7]和Mcnn[8]在识别错误率上进行了比较。文献[6]首次采用深度神经网络方法,超越了传统方法。Moon和Mcnn在文献[6]的基础上,分别通过改进损失函数和网络结构的方式,进一步降低了识别错误率。详细实验结果见表3,其中Mcnn-AUX是Mcnn的变体。结果表明,本文方法在大部分属性上的识别错误率表现良好,在平均识别错误率上的效果最好。此外,本文用自然场景下的人脸图像进行网络训练和测试,mERR指标仅仅上升0.2%。实验证明本文提出的网络模型具有很强的抗噪声能力,在复杂自然环境下依然保持较好的识别效果。

表3 属性识别错误率比较Table 3 Comparison of attribute recognition error rates %

3.4 模型效率比较

为了衡量模型效率,本文分别从模型参数量、空间开销和运算速度三方面进行评价,与当前最新的属性识别方法文献[6]方法,Moon和Mcnn,以及主流的深度模型进行比较。在运算速度方面,分别比较了基于GPU(单块Nvidia 1080Ti 显卡)和基于CPU(Intel i7-8700k 3.7 GHz)的处理速度。详细的比较结果如表4所示,第2、3列分别表示GPU和CPU环境下处理一幅图需要的时间。其中,Moon和Mcnn没有公布源码,标号*表示该结果由复现所得。

表4 网络模型计算与空间开销对比

Table 4 Comparison of calculation and space cost of network models

网络模型GPU/msCPU/ms参数量/107模型大小/MBResnet-181.1840.0711.7745.0Resnet-502.85112.2425.6498.0VGG-162.92283.30138.44528.0Moon2.86*282.18*135.00528.0*Mcnn0.65*19.50*15.0052.5*LFaceA0.6212.970.662.7

由表4可知,本文设计的网络模型与其他网络模型相比,运行速度大大提升,尤其是在计算能力弱的CPU上,与现有的深度学习模型拉开了较大的距离。在模型参数量上,本文方法仅为其他方法的几十分之一,模型的空间开销非常小,能方便地部署在资源受限的移动和嵌入式设备中。

3.5 消融实验

本文提出的网络模型基于轻量化残差模块构建,而轻量化残差模块由2个深度可分离卷积结构组合而成,模块间通过跨层连接的方式堆叠。此外考虑到属性间的关联关系,本文还设计了共享的属性识别分支网络。为了验证网络设计的有效性,本节设计了一系列实验进行验证。

首先定义需要验证的网络变体。为了验证跨层连接和深度可分离卷积结构的有效性,本文在原LFaceA网络的基础上分别构建了去掉跨层连接的模型LFaceA-Ⅰ和去掉深度可分离卷积结构的模型LFaceA-Ⅱ。LFaceA-Ⅰ和LFaceA-Ⅱ的模型中仍包含共享的属性识别分支网。其次,为了验证共享属性分支网络的有效性,在原LFaceA网络的基础上构建了完全去掉属性识别分支网络的LFaceA-Ⅲ和每个属性一个分支网络的LFaceA-Ⅳ。LFaceA-Ⅲ和LFaceA-Ⅳ的模型中共享的特征学习网络部分保持不变,仍基于轻量化残差模块构建,模块间通过跨层连接的方式堆叠。

实验结果如表5所示。LFaceA和LFaceA-Ⅰ相比参数量一样,但跨层连接结构下平均识别错误率和处理速度均优于LFaceA-Ⅰ。LFaceA和LFaceA-Ⅱ相比虽然网络层数完全一样,但采用了深度可分离卷积结构后,参数量仅是LFaceA-Ⅱ的1/5,而且参数的减少对识别错误率和处理速度影响不大。LFaceA-Ⅲ因为去除了属性识别分支,其参数量最少,但识别的速度和错误率与LFaceA相比有所降低。LFaceA-Ⅳ模型的参数量最大,但每个属性都有独立的识别分支,并未降低识别错误率。

表5 消融实验结果Table 5 Results of ablation experiment

由实验结果可以看出,模型LFaceA的识别错误率最低,虽然在参数量上高于去除了属性识别分支的LFaceA-Ⅲ,但其大小仅2.7 MB,完全可以部署于资源有限的移动或便携式设备上。分析LFaceA模型特点可得出以下3点结论:

1)轻量化残差模块中采用的可分离卷积结构对模型轻量化效果提升明显,同时对识别错误率的影响不大,可广泛应用于需要轻量化的网络模型中。

2)轻量化残差模块间的跨层连接方式对模型识别错误率的影响较大,未采用跨层连接的网络错误率有大幅上升。随着深度的增加,跨层连接有利于特征在层间的保持,因此提升了识别效果。

3)关联属性共享识别网络的方法,有效利用了关联属性的共享特征,提升了关联属性的识别效果。

3.6 识别结果统计及可视化

本文提出的网络模型在CelebA上用接近20万张图片进行了测试,平均错误率降低至8.45%。数据集中的所有图像均标注了40种人脸属性,其中75%的图像都能正确识别出35个以上的属性,而单张图像能正确识别的最低属性个数是27,且只有2张,正确识别属性数在30~35之间的占总图像数的24%,正确识别属性数在27~30的图片仅有19张。

从上述统计数据可以看出,99%的图像都能正确识别30个以上的人脸属性。本文将属性识别个数达到最高值40的和属性识别个数较少的图像进行了可视化。如图6所示,图中数字比值为人脸属性识别正确个数与属性总数之比。图像分为2组,图6(a)组为识别效果好的人脸图像组,图6(b)组为识别效果差的人脸图像组。从可视化结果上可以观察到,识别效果差的人脸图像受背景复杂、非常规眼镜配戴方式等因素的影响较大。

图6 人脸图像属性识别结果

4 结束语

本文设计了一个面向人脸属性识别的轻量化多任务学习网络。网络基于轻量化残差模块进行构建,包括特征学习共享网和属性识别分支网两部分。轻量化残差模块由两个深度可分离卷积结构组合而成,模块间采用跨层连接。属性识别分支网基于属性类间的关联关系进行分组,相互间关联程度大的属性共享一个识别分支。实验结果表明,本文提出的网络模型降低了空间开销,提升了预测速度,同时未引起识别错误率的升高,达到了实时应用的要求,可以方便地部署在资源有限的移动便携式设备上。下一步将结合时空信息将算法扩展到视频人脸属性识别任务中。

猜你喜欢

错误率人脸轻量化
汽车轻量化集成制造专题主编
有特点的人脸
一起学画人脸
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
小学生分数计算高错误率成因及对策
三国漫——人脸解锁
正视错误,寻求策略
解析小学高段学生英语单词抄写作业错误原因
瞄准挂车轻量化 锣响挂车正式挂牌成立