基于人脸超分的网络视频人脸检测

2021-11-20 01:57李红艳魏艺杉
计算机工程与设计 2021年11期
关键词:人脸分辨率准确率

李红艳,曾 浩,魏艺杉

(重庆邮电大学 通信与信息工程学院,重庆 400065)

0 引 言

视频人脸检测是视频人脸识别的基础,只有在很好的人脸检测效果的前提下,视频人脸识别才会对有较好的识别效果。视频人脸检测一般更贴近于日常生活,这些要检测人脸的视频大多数都是在室外场景拍摄的,相比较于一般的人脸检测难度更大。因为视频人脸检测不仅面临着和图像人脸检测同样的光照、遮挡、姿态等问题,实际应用中视频的图像质量通常不佳,人脸五官不清晰,这些因素都进一步加大了人脸特征提取与检测的难度。

本文提出了一种基于人脸超分辨率重建的网络视频人脸检测模型,主要工作有以下几点:①提出了一种将人脸检测器与人脸超分辨率重建网络相结合的SR Face Detection模型,该模型以RetinaFace算法[1]为人脸检测器进行人脸粗提取,提取的人脸经过人脸超分辨率重建网络人脸超分后进行人脸的精细筛选。②根据所提出的SR Face Detection模型需求,在前人基于面部注意力标志的渐进式人脸超分算法[2]的基础之上,设计了一个适合于人脸检测的人脸超分辨率网络。③为了满足新模型的实时性的需求,提升检测速度并降低模型训练难度,对RetinaFace人脸检测器进行优化。

1 相关工作

人脸检测算法通常将图像中的所有人脸以边界框的形式输出,可分为早期算法时代、AdaBoost框架时代和深度学习时代3个阶段。早期的人脸检测算法使用了模板匹配技术,将图像中某个区域进行人脸-非人脸二分类的判别,如H.Rowley等提出的方法。之后是AdaBoost时代使用人工设计的算子进行人脸检测。

卷积神经网络出现后很快被应用于人脸检测,检测精度大幅度超越之前的AdaBoost算法。Cascade CNN[3]是传统技术和深度网络相结合的一个代表。Faceness-Net[4]算法设计了一个更有效的CNN,提高了速度和精度。文献[5]提出的MTCNN大幅提高了目标检测效率,尤其针对小目标检测精度有很大的提升。文献[6]提出的SSH实现了多尺度的人脸检测。RetinaFace可以利用联合超监督和自监督多任务学习的优势,在各种规模的人脸上执行像素级人脸定位。

本文主要针对网络视频中的人脸进行检测,针对视频帧图片低质量的问题引入了图片超分辨率重建技术(super-resolution reconstruction,SR)[7]。因此,在人脸检测研究基础之外又对SR进行研究。早期的超分辨率算法是基于学习的方式来研究的。

深度学习出现并在计算机视觉各个领域广泛使用后,也应用于图像超分辨率重建。W.Shi等[8]提出了高效的ESPCN网络。该网络直接在低分辨率特征图上提取特征,重新进行像素排列得到高分辨率图像。J.Kim等[9]提出了VDSR超分辩率网络,该网络架构在全卷积层的情况下加深了整体网络。同时作者使用ResNet网络来驱使整个网络来学习低分辨率图像与高分辨率图像之间的残差,并取得了很好的效果。C.Ledig等[10]提出了SRGAN,作者初次利用生成对抗网络(generative adversarial network,GAN)处理超分辨率的问题。其利用感知损失与对抗损失来提升恢复图片的真实感。EDSR[11]是NTIRE2017超分辨率挑战赛上获得冠军的方案,其去掉了图像超分辨率网络中ResNet多余的模块,通过扩大模型的尺寸来提升图片质量。文献[12]主要是一种端到端的人脸超分辨率重建技术,其通过人脸图像的特殊性,从人脸图像中提取几何先验信息来提高超分辨率的效果。文献[13]提出了一种人脸图像重建的方法,即使用残差密集网络作为基本单元,并在低层中组合了Inception体系结构。同时该方法主体结构使用了GAN,并且加入了激活前功能定义的改进的感知损失来提升重建人脸图像的质量。

2 SR Face Detection人脸检测模型

2.1 人脸检测模型的整体网络结构

针对低质量视频人脸的特点,本文基于优化的RetinaFace算法与渐近人脸超分辨率重建网络提出一种SR Face Detection模型。该模型主要是针对网络视频由于低质量问题导致人脸检测准确率低、人脸识别准确率低的问题进行改良的。

总体来说,该人脸检测模型整体网络结构主要包括人脸检测器和人脸超分辨率重建网络两部分,其中人脸检测器负责粗筛选视频帧图片中的人脸,而人脸超分辨率重建网络负责对筛选出的人脸进行超分辨率重建,然后再进行二次的精细筛选,将一些模糊的误检人脸剔除。具体的模型结构如图1所示。整体框架实施步骤如下:首先,将预处理后的视频帧图片使用人脸检测器进行检测,其中在实际检测时会根据实际情况设置合适的人脸检测置信度阈值,输出视频帧图片中所有可能为人脸的区域。其次,将检测出来的所有可能为人脸的区域进行人脸的模糊度判别。若判别为高质量人脸直接放入检测结果。如果判别为低质量人脸,则送入人脸超高分辩率重建网络的生成对抗网络的生成器中,进行人脸超分辨率重建,最后,使用人脸超高分辨率重建网络生成对抗网络的判别器进行判别。人脸超分辨率重建网络的判别器会将超分后的低分辨率人脸与高分辨率人脸进行判别区分,同时会对超分后的人脸与非人脸进行判别,以将一些非人脸剔除,降低人脸检测的误检率。

2.2 人脸超分辨率网络的设计

由图1可知,本文提出的SR Face Detection模型是在人脸检测器后增加了一个人脸超分辨率重建网络以达到对人脸检测器检测的人脸进行超分处理,进而进行人脸二次筛选的目的。本文参考基于注意力面部坐标的渐近式人脸超分算法的结构,结合实际提出的人脸检测模型的需求,给出了一种人脸超分辨率重建网络(简称,人脸SR网络)。该网络的主体是GAN网络,整个网络采用渐进式训练的方式。同时在每一步的超分训练中加入面部注意力损失与感知损失来集中注意力到人脸,减少超分辨率重建任务的复杂度。在步骤2与步骤3中通过增加像素差和热图值来更详细地恢复面部属性[14]。具体来讲,采用一个人脸对齐网络(FAN)[15]在步骤1生成网络的输出效果图中提取出适合的人脸热图用于步骤2的人脸超分。随后从步骤2的生成网络的输出结果中提取合适的人脸热图,并将两次提取的热图进行比较,选择最合适的热图在步骤3中进行面部属性恢复,减少整体训练时间。

图1 基于超分辨率重建的人脸检测模型的网络结构

针对低质量人脸特征提取困难的问题,本文中人脸SR网络的生成网络以残差密集网络(RDB)[16](如图2所示)作为该网络特征提取的基础网络。由于RDB中密集连接和局部特征融合的特性,有利于提取更加深层次的网络特征。同时密集连接可以大大减少参数,局部特征融合可以更有效传播特征。生成网络每部分的超分网络块均由3个密集残差块提取并传播特征后经过一个Concat层将其特征图进行拼接,然后经过一个1×1的卷积层降低训练难度,其后连接批处理归一化层(BatchNorm),转置卷积层(ConvTrans)和整流器线性单元(ReLU)用于人脸超分辨重建。实际训练时,生成网络与判别网络交替训练,先训练判别网络,然后训练生成网络,不断往复。人脸SR网络的判别网络具有与生成器网络相对应的体系结构,用于判别生成器网络生成的人脸与目标人脸的差距。该判别体系结构由卷积层(Conv)、平均池化层(AvgPool)和Leaky ReLU组成。为了达到人脸检测的效果,本文将判别网络模块末端的全连接层设计为两个并行的串联全连接层,从而实现区分是否为高清人脸和区分人脸/背景的目的。同时在图中可以看到在每个步骤中的生成器到判别器之间都增加了一个额外的卷积层,以便将中间特征图转换为RGB图像。

图2 残差密集块

针对人脸SR网络的渐进式训练,在步骤1中,每个网络使用一个块进行训练,并学习特征进行超分将图像放大2倍。并将放大的图像输出再通过判别器的相应部分,然后将输出与目标图像进行比较。在步骤2中,将步骤1的放大2倍的人脸超分效果图作为步骤2的输入图像,进行二次的人脸超分辨率重建。该步骤采用双线性插值将步骤1中的2倍放大输出的图像再次放大2倍,然后将插值后的输出与步骤2中的4倍放大输出的图像相加。该过程表示如下

(1-α)*f(GN-1(I))+α*GH(I)

(1)

其中,G是人脸SR网络,f是双线性插值,I表示输入图像,N{2,3} 表示步数,权重比例从0线性增加到1。步骤2中同样将放大图像输入到判别器相应的部分,通过判别器将放大的输出与相应的目标图像进行比较。在步骤3中执行与上述相同的过程。渐进式训练方法使网络能够有效、稳定地学习每一步具有不同损失的超分辨人脸图像。

2.3 人脸检测RetinaFace算法框架的改良优化

本文所提出的SR Face Detection 模型,在提高其准确率的同时,以牺牲检测速率为代价,因此对人脸检测器进行优化改良。

RetinaFace是一个利用自监督与联合监督的多任务学习的单阶段人脸检测器,在各种人脸尺度上执行像素级的人脸定位,整个模型包含了人脸检测、人脸对齐、像素级的人脸分析和3D密集通信回归。本次通过对论文的详细分析发现在RetinaFace中引入用来预测3D人脸信息的分支的self-supervised自监督网格解码器分支,对低质量视频人脸检测效果提升不大,且提高训练难度。本文根据该模型的需求,需要尽可能多地检测人脸,同时为了降低模型复杂度,提高模型检测速率,对人脸检测器进行改良简化,将用来预测3D密集通信回归的分支去掉。

为了进一步弥补由于增加了人脸SR网络所造成的检测速率慢的问题,本文进一步对基础网络的选取进行优化。在原始的RetinaFace算法中基于算法检测精度与检测速度考虑,基础网络分别使用Resnet152或轻量级的mobilenet网络。本文由于优化时去掉用于预测3D人脸信息的自监督网格解码器分支,同时基于实际模型检测速率与检测准确率的需求,选用训练好的Resnet50作为基础网络。最终简化后的算法框架如图3所示。

图3 优化改良后的RetinaFace算法框架

2.4 损失函数

本文的人脸检测模型的损失主要包含了人脸检测器的损失与人脸超分辨率重建的损失两大模块。其中人脸检测器的损失采用改良优化的RetinaFace算法损失函数,人脸超分辨率重建的损失采用渐进式人脸超分辨率重建算法的损失函数。

(1)改良后的RetinaFace算法损失

本次研究根据实际情况对人脸检测模型中的人脸检测器进行改良,相应的对其算法的损失函数进行改良,去掉了3D密集通信回归损失Lpixel,只保留了相关的分类损失、检测框回归损失和面部标志回归损失,以提高算法的训练速度与检测效率。总损失函数表示如下

(2)

(2)人脸超分辨率重建算法的损失

由之前介绍的网络结构可以发现人脸超分部分是采用渐进式训练方式,一共包括3个步骤,并且在训练过程中加入感知机制、注意力机制、热图。因此该人脸SR网络模块的损失如下:

步骤1

Ls1=αLMES+βLfeat/i+γLWGAN

步骤2 & 步骤3

Ls2=αLMES+βLfeat/i+γLWGAN+λLheatmap+ηLattention

(3)

其中,α,β,γ,λ,η均为权重系数;LMES为图像重构误差;Lfeat/i为感知损失;LWGAN为对抗损失;Lheatmap为热图损失;Lattention为面部注意力损失。

由于本文的人脸超分辨率重建网络的损失包括3个步骤的损失。因此本文的SR Face Detection模型的损失也分为3个步骤,以下分别给出各步总的损失:

步骤1

Ls=Lface+Ls1=Lface+αLMES+βLfeat/i+γLWGAN

步骤2 & 步骤3

Ls=Lface+Ls2=Lface+αLMES+βLfeat/i+
γLWGAN+λLheatmap+ηLattention

(4)

3 实验结果

3.1 数据集

WIDER FACE数据集是人脸检测的基准数据集,该数据集标注效果好、准确率高。本文在训练优化RetinaFace检测器时使用了该数据集。

在人脸SR网络训练过程中使用了两个不同的数据集:对齐的数据集和未对齐的数据集。对齐后的CelebA数据集用于测试面部细节的恢复精度。未对齐的CelebA和AFLW数据集用于验证本文中人脸SR网络在现实世界中的泛化性。对齐的面部图像被裁剪为正方形,未对齐的面部图像数据集根据边界框区域裁剪。将裁剪后的图像调整为128×128像素以用作步骤3的目标,并双线性下采样为64×64像素作为步骤2的目标,将32×32像素作为步骤1的目标,将16×16像素作为低分辨率图像输入。本文使用CelebA数据集对齐的162 770张图像作为训练集,19 867张图像作为测试集。同时使用CelebA未对齐的80 000张裁剪图像和AFLW未对齐的20 000张裁剪图像进行实际适用性训练。最后使用CelebA的5000张图像和AFLW的4384张图像作为测试集。此外由于目前没有公开的视频帧图片数据集,故而本文手动标注了1万张视频帧图片作为测试的一个数据集。

3.2 训练细节

本次人脸检测模块包含两部分的训练:人脸检测器的优化训练与人脸SR网络的训练。两者的编程语言均采用Python 3.6,均是在Ubuntu 18.04操作系统中编程实现,使用两台GTX1080在PC端进行实验。其中改良优化的RetinaFace是在MXnet深度学习框架进行训练的,初始的学习率设为10-3,最小批量大小设置为16。人脸SR网络训练采用的是PyTorch深度学习框架,初始学习率设置10-3,最小批量大小设置为16。每个步骤的训练迭代由超参数设置,训练模型时的迭代次数分别为5万、5万、10万次。

3.3 评估验证

本文采取评估参数主要是以下5个:准确率(P)、召回率(R)、F-measure(F)、平均精度均值mAP(mean averge precision)和每秒帧率FPS(frame per second)。其中mAP反应目标检测的总体效果,其公式如下

(5)

其中,n表示类别个数,i表示某个类别,APi表示平均精度。准确率(P)、召回率(R)与F-measure的计算公式前人已经给出,本文不再赘述。

3.4 实验结果分析

本文的模型是基于人脸超分辨率重建的人脸检测模型,主要由人脸检测器对图片的人脸进行粗筛选,将人脸超分后再进行一次精细的筛选,以提高模型检测的准确率。为了进一步验证本文提出的人脸检测模型的性能,将本文提出的SR Face Detection模型和原始的RetinaFace算法,以及MTCNN算法进行对比。本文首先在手动标注的1万张帧图片上进行人脸检测模型测试,评估该模型的性能。设置同等的实验环境,实验结果见表1,本文的模型相比于MTCNN算法准确率提高了0.136,召回率提高了0.082,mAP提高了0.134。相比于RetinaFace算法,虽然召回率降低了0.03,但准确率提高了0.015,mAP提高了0.015。但是总体来讲由于本文在人脸检测器后增加了人脸超分辨率重建网络故而其检测效率低于RetinaFace算法。

表1 视频人脸检测实验对比数据

其次,本文在WIDER FACE数据集上对3个算法进行对比,设置相同的实验环境,实验结果见表2,本文提出的人脸检测模型性能要优于所对比MTCNN算法与RetinaFace算法。其中,本文提出的模型与MTCNN相比准确率提高了0.153,召回率提高了0.115,mAP提高了0.155。相对比于RetinaFace算法,本文提出的模型准确率提高了0.017,mAP提高了0.019,但是召回率降低了0.004,但本文提出的模型检测效率要低于RetinaFace算法。经过以上两个数据集的测试,进一步说明了本文提出的SR Face Detection模型虽然检测的召回率与检测效率低于RetinaFace算法,但是其人脸检测的准确率与总体目标检测效果有不错的提升。

表2 WIDER FACE数据集人脸检测实验对比数据

同时,由表1与表2可知,在相同数据集的情况下,文中所提出的SR Face Detection模型是以牺牲人脸检测的检测效率为代价来提高模型检测的准确率。相比于MTCNN模型,本文的模型在人脸检测部分使用了特征金字塔技术,因此FPS要略高于MTCNN模型的。但相比于RetinaFace算法,本文所提出的模型由于增加了人脸SR网络,因此FPS要略低。

为了进一步对比MTCNN模型、RetinaFace模型和SR Face Detection模型的人脸检测效率,本文对WIDER FACE数据集上的部分测试图片做了2种模糊度的处理,形成“原图”、“20%模糊度”、“50%模糊度”3个子集,在3个模型上进行FPS验证对比。实验结果见表3,在“原图”子集上,SR Face Detection模型与RetinaFace模型的FPS相差3.4,与MTCNN模型相比要高12.9。当子集为“20%模糊度”时,SR Face Detection模型与RetinaFace模型相比FPS降低6.2,与MTCNN相比FPS高10.5。“50%模糊度”子集上,SR Face Detection模型所测试数据的FPS为21.4。与RetinaFace模型相比低9.5,与MTCNN相比FPS仅仅高4.7。由上述可知,SR Face Detection模型在处理清晰图片与模糊图片时的人脸检测效率相差较大。人脸清晰度高时该模型人脸检测效率与原始的RetinaFace算法相差较小,但是在模糊度较高时本模型的检测效率则会因为处理模糊人脸的问题有一定幅度的降低,但最终总是高于MTCNN的检测效率。

表3 模糊度不同数据的FPS实验对比

此外,本文还在WIDER FACE数据集上进行了广泛的消融实验,以检测本文所优化改良的部分对人脸检测性能的定性影响。设置IOU=0.5,验证Easy,Medium和Hard几种不同设定的子集的AP。如表4所示,“FPN+Context+DCN+Lpts”为简化后的RetinaFace人脸检测器,与原来未简化的“FPN+Context+DCN+Lpts+Lpixel”相比较,在“Easy”子集上改良的人脸检测的AP降低了0.474%,但是当子集为“Medium”时仅降低了0.1%,“Hard”子集上提升最大,降低了0.163%。表明去掉用来预测3D信息的分支对检测结果影响不大。此外,本文提出的模型与RetinaFace算法相比较,在“Easy”子集上本文的模型对人脸检测的AP提升效果不明显,但是当子集为“Medium”时提升了0.112%,在“Hard”子集上提升最大,提升了0.756%。这表明本文给出的SR Face Detection模型具有良好的泛化性,在3种不同检测难度的数据集上表现出更加优异的结果,并且人脸检测场景越复杂,本文的算法准确率提升越明显。

表4 人脸消融实验对比数据

本文还将MTCNN算法、原始的RetinaFace算法与本文提出的SR Face Detection模型的检测结果分别送入人脸识别模型ArcFace,进行对比测试。如表5所示,通过在3个测试集上进行测试对比,可以发现本文提出的模型检测出的人脸在进行人脸识别时,其人脸识别的准确率相比于MTCNN算法和RetinaFace算法检测出的人脸进行人脸识别的准确率要高。由此可知本文提出的模型对人脸识别性能有明显的提高。

表5 人脸识别效果比对

本文中提出的SR Face Detection人脸检测模型测试效果如图4所,可以看出本文对测试集的测试效果良好。

图4 人脸检测结果

本文还给出了人脸超分辨率重建效果图。如图5所示,第一行为模糊人脸图片,第二行为本文的超分辨率人脸图片,最后一行为相对应的原图。由三者的对比可知本文给出的人脸超分辨率重建网络对人脸的细节还原较好,有利于人脸检测的精细筛选,进而提高人脸检测的准确率,也有利于后期的人脸识别。

图5 人脸超分辨率重建效果

最后本文给出了实际网络视频人脸检测的效果图。如图6所示,图6(a)为视频帧中具体检测的某区域中的某个人脸,可以看出本文提出的人脸检测模型对复杂场景的人脸检测有良好的效果,在人脸残缺的情况下依然可以检测出来。图6(b)为某个视频中许多帧图片中各自检测的人脸,可以看出无论是正脸、扭曲人脸、模糊人脸、光线强或者光线暗的情况的人脸,本文提出的SR Face Detection模型均可以检测出,进一步说明了本文所提出模型在实际应用中的有效性。

图6 视频人脸检测效果

虽然本文提出的模型对视频中人脸检测有不错的检测效果,但是在实际的视频人脸检测中一般要检测的为活体人脸,其它非活体人脸均为干扰项。而本文提出的模型将如图6(b)中视频中的照片也进行了检测,不能区分活体与非活体。下一步的研究工作,针对视频中的活体人脸与非活体人脸进行区分,检测时只检测活体人脸,不检测非活体人脸。

4 结束语

由于网络视频本身的质量比较低的特点,对网络视频进行人脸检测难度会加大,准确率会降低,最后还会影响人脸识别的效果。本文提出一种基于人脸超分辨率重建的人脸检测模型,该模型主要结构包括人脸检测器和人脸超分辨率重建网络这两部分。以改良优化的RetinaFace算法作为人脸检测器,将检测出的人脸送入人脸超分辨率重建网络进行人脸超分辨率处理,同时进行人脸的二次判别,将检测器误检的非人脸剔除提高检测的准确率。由实验结果可知,本文所提出的模型具有很好的准确率,进一步提高了低质量人脸的检测性能,尤其是检测场景越复杂时,模型的提升效果越好。同时本文提出的模型由于对模糊人脸进行了超分辨率处理,实验结果表明,也有利于后期低质量人脸识别准确率的提高。

猜你喜欢
人脸分辨率准确率
有特点的人脸
一起学画人脸
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
EM算法的参数分辨率
原生VS最大那些混淆视听的“分辨率”概念
三国漫——人脸解锁
高速公路车牌识别标识站准确率验证法
基于深度特征学习的图像超分辨率重建