APP下载

基于轻量级网络的人脸检测及嵌入式实现

2022-05-09张芳慧宗佳平岑翼刚张琳娜

图学学报 2022年2期
关键词:人脸嵌入式卷积

张 明,张芳慧,宗佳平,宋 治,岑翼刚,张琳娜

基于轻量级网络的人脸检测及嵌入式实现

张 明1,张芳慧1,宗佳平1,宋 治2,岑翼刚1,张琳娜3

(1. 北京交通大学信息科学研究所,北京 100044;2. 深圳市光点智能科技有限公司,广东 深圳 518000;3. 贵州大学机械工程学院,贵州 贵阳 550025)

尽管基于卷积神经网络(CNN)的人脸检测器在精度上已经有了很大提升,但所需的计算量和模型复杂度越来越高,如何在计算能力有限的嵌入式设备上应用人脸检测模型是一个很大的挑战。针对320×240分辨率输入图像的人脸检测在嵌入式系统上的应用问题,提出了一种基于轻量级网络的低分辨率人脸检测算法。该算法使用注意力机制、结合了Distance-IoU (DIoU)与非极大值抑制(NMS)、使用Mish激活函数,同时针对人脸特征比例设置合适的先验框,实现了精度和速度的平衡,并部署到嵌入式平台中。具体地,用深度可分离卷积替代普通卷积,并在卷积块后加入注意力模块(CBAM),使网络更关注待识别的目标物体;代替ReLU激活函数,采用了Mish激活函数来提高模型推理速度;通过结合DIoU与NMS,提高模型对小人脸的检测能力。实验在WIDER FACE数据集的结果证明,该方法不仅能实时高精度地进行人脸检测,而且在小分辨率输入上,精度高于传统算法。扩充数据集之后,模型在复杂光照下的泛化性得到提高。

人脸检测;轻量级网络;注意力机制;激活函数;非极大值抑制

人脸检测是计算机视觉领域的重要研究方向之一,是人脸校准、人脸识别、人脸验证、人脸比对和跟踪等应用的基础技术。近年来,人脸检测已有了进一步地研究,并被广泛应用于安防监控、面部表情识别、人机交互等领域。由于嵌入式设备内存容量和计算能力有限,如何得到轻量且精准的人脸检测算法成为受关注的话题。

人脸检测是目标检测领域的特殊分支,经历了从依赖手工提取特征到深度学习网络的发展。尽管手动提取特征的方法能够实现较快的检测速度,但严重依赖所提取的特征质量,因不进行端到端的训练,导致检测效果不够鲁棒。此后,基于卷积神经网络(convolutional neural networks,CNN)的人脸检测器取得了很大的进展,可分为单阶段和两阶段法2类。两阶段法分为区域选择和定位回归2部分,主要是由Faster R-CNN[1]系列为代表。由于两阶段法延迟较高,出现了YOLO系列[2-5]、SSD (single shot MultiBox detector)[6]和RetinaNet[7]等单阶段法。为了处理多尺度或小物体问题,YOLO系列提出了新的锚框匹配策略,并对物体的宽度和高度的回归重新加权;SSD使用多级特征图组合结构;特征金字塔网络(feature pyramid networks,FPN)[8]引入了特征金字塔结构。

除了通用目标检测提出的新方法之外,其他领域的发展也促进了人脸检测。非极大值抑制(non-maximum suppression, NMS)是目标检测常用的后处理方法,用来解决同一个目标在检测时预测框冗余的问题。提取置信度高的检测框,抑制置信度低的检测框,去除重复框,得到正确的检测框。常用的NMS方法对于多个预测框重叠的情况下会导致错误的抑制,将DIoU[9]与NMS相结合,能够进一步考虑2框中心点的位置信息,使预测框更符合实际。激活函数是深度神经网络中引入非线性的关键,目前神经网络中最常用的激活函数是ReLU (rectified linear unit)。但其会出现硬零边界和过于简单的非线性处理的问题,而Mish[10]激活函数较平滑且能有效地缓解硬零边界问题。注意力机制在目标检测领域中,能将图片数据中关键的特征标识出来,通过学习训练,让深度神经网络学到每一张图片中需要关注的区域,从众多信息中选出对当前任务目标更关键的信息。卷积块注意模块(convolutional block attention module,CBAM)[11]是一种简单有效的用于前馈神经网络的注意力模块。在给定中间特征映射后,沿着通道和空间2个维度依次推导出注意映射,再将注意映射乘到输入特征映射上进行特征自适应学习。

目前基于深度学习的人脸检测面临的主要难点是如何在有限的计算资源上应用。这个问题主要是因为模型本身复杂度高和参数的冗余度大。为了解决该问题,用轻量级网络设计和对模型参数进行剪枝、量化处理。轻量级网络设计的主要思想是设计高效的卷积方式,从而在网络参数减少的同时,不损失网络性能。MobileNet[12]用深度可分离卷积替代传统卷积,深度可分离卷积将标准卷积分解为一个深度卷积和一个点卷积,分别起到滤波和线性组合的作用,同时减少参数量和计算量。

本文提出一个针对输入图像分辨率在320×240、大小为1 MB左右的人脸检测模型,并应用到嵌入式平台上。在原算法的骨干网络中引入了注意力机制,使特征提取网络提取有效的目标信息并抑制无用信息,增强特征图的表达和上下文描述能力。通过修改NMS方式和激活函数,提高了模型精度的同时适当增加模型复杂度,保证速度和精度的平衡。

1 本文工作

本文采用的轻量级网络结构包含6组卷积块(block),每组卷积块均包含不同数量的卷积和一个注意力模块。block3~block6等4个模块对应着4个不同尺度的特征图,形成不同尺度的预测,从而提高检测精度。这样做虽然降低模型的检测速率,但能提高模型的检测精度,在一定程度上可取得速度和精度的权衡。四分支对应的检测框个数分别为3,2,2,3,长宽比为1∶1,可加强对小人脸和大人脸的检测能力。由于Mish函数图像和导数图像更加平滑,能够更好地表达网络深层语义信息,因此在本文网络结构中采用Mish激活函数。为了增强网络对复杂背景下人脸信息的获取,每组卷积块后均增加了CBAM注意力层。在进行NMS运算时,结合了DIoU方法,与原IoU-NMS相比,加强了对小人脸的检测能力,能够小幅度提升检测效果。其主干网络的结构如图1所示。

图1 网络总体结构

首先将输入图像缩放为320×240,送入由6个block串联而成的网络结构进行训练和检测。选择40×30,20×15,10×8和5×4等4种不同尺度的特征层上设置多个先验框,加强对大、中、小目标的检测。网络中每个模块卷积层的具体参数设置见表1。其中,网络中的感受野块(receptive field block, RFB)[13]通过模拟人类视觉感受野加强网络的特征提取能力,结构上主要是在Inception的基础上加入了dilated卷积层,从而有效增大了感受野,该模块的具体结构如图2所示。图1网络总体结构中的CBAM模块的具体结构如图4(c)所示。

1.1 DIoU-NMS

在目标检测算法中,CNN获取多个预测框之后,进行IoU计算,得到最优候选框。但是IoU只考虑了重叠情况下的交并比,对于多个预测框重叠的情况下,将导致错误的抑制。DIoU的运算过程中,结合了预测框和真实框之间的交并比、距离、重叠率和尺度4个因素,结果更加准确,计算函数见式(2)。因此本文使用DIoU作为NMS的标准,记为DIoU-NMS。

其中,为预测框;B为真实框;为目标框与真实框之间的重叠度;和b分别为锚框和真实框各自的中心点;为2个中心点之间的欧氏距离;为能同时覆盖锚框和目标框的最小矩形的对角线。DIoU-NMS能充分判断重叠率较高的2个边界框是否属于同一个目标,从而有效地进行边框抑制。

表1 网络结构

图2 RFB结构图

1.2 Mish激活函数

在本文的CNN中采用Mish激活函数。Mish函数是一个无上界、有下界、平滑非单调的激活函数,其函数和导数可表达为

其中,()=4(+1)+42x+3x+e(4+6);()=2e+2x+2。

激活函数ReLU和Mish函数及导数示意图如图3所示。在图3(a)中,2个函数的正值部分基本一致,负值部分Mish函数可以有更好的梯度流。当输入为负时,Mish函数不会产生梯度消失问题,如图3(b)所示。并且Mish函数和其导数更平滑,能够使更好的信息深入网络,从而达到更好的准确性和泛化。

图3 激活函数示意图((a)函数图;(b)导数图)

1.3 注意力机制CBAM

注意力机制能使网络在全局图像中更多地关注在目标区域、抑制其他区域,从而可在有限的资源条件下筛选出大量的高价值信息。常用的注意力机制的基本模块有Non-local block[14],SENet[15]和CBAM等3种,如图4所示。Non-local网络使用自注意力机制建模远程依赖,主要利用位置信息。SE module是通道注意力机制网络,主要利用损失函数去学习特征权重,对不同通道进行权重标定。CBAM是一种结合空间和通道的注意力机制,沿着通道和空间2个独立的维度依次导出注意映射,再将注意映射与原特征映射相乘,对特征做自适应调整。

在网络结构中分别引入以上3个注意力模块,使用Grad-cam[16]进行网络可视化,得到的结果如图5所示。红色和蓝色分别代表模型高和低关注度。第1~3行分别为Non-local block,SE module和CBAM的可视化结果,能够看出,在该网络中,Non-local block和SE module更关注图像中的人体部分,而CBAM注意力机制能够更关注人脸而非背景区域,因此能够得到更好地检测结果。

图4 不同注意力模块结构图对比

图5 Grad-cam网络可视化结果

2 实验与结果分析

2.1 数据集

本文采用5个人脸关键点的WIDER FACE数据集[17]。该数据集是目前已知最大的人脸检测数据集,共有32203张图片,包括393703张脸,其在尺度、姿态、遮挡、光照等方面均有很大的变化范围。通过从61个场景类别中随机抽样,根据4∶1∶5的比例将该数据集分为训练集、验证集和测试集。

2.2 模型训练

本文在Ubuntu16.04系统、一块NVIDIA GTX1060显卡、显存为6 GB的笔记本上进行实验。并采用PyTorch深度学习框架进行网络训练,之后再将其部署到嵌入式平台上,搭建人脸检测系统。该嵌入式平台采用勘智K210芯片,搭载Sipeed_OV2640摄像头,输入图像分辨率为320×240。

在网络训练过程中使用随机梯度下降优化,动量为0.9,权重衰减为0.000 5,批处理尺寸为6×4。学习速率从0.001开始,经过5个轮次后上升到0.01,第95和第150次除以10。训练过程在250个轮次结束。分类和回归损失分别为交叉熵和SmoothL1损失函数。

2.3 实验结果分析

表2展示了模型在WIDER FACE验证集上的AP、模型大小和推理速度。其中,验证集根据边缘框的检测情况划分为easy,medium和hard等3个难度等级。单尺度测试的Baseline模型在验证集中分别可得到77.9%,69.1%和41.7%,依次添加CBAM,Mish和DIoU-NMS模块进行测试,实验结果表明,同时添加3个模块后检测器的精度分别提高了2.5%,2.6%和3.5%,模型大小增加了0.18 MB,推理速度虽有降低,但仍达到了实时检测的要求。

由于TinaFace[18]是目前先进、强大而简单的人脸检测器,RetinaFace (MobileNet-0.25)[19]和轻量快速的人脸检测器(light and fast face detector, LFFD)[20]在模型大小上和本文模型相近,性能比较更为直观,因此将本文算法与上述3个算法进行对比,实验结果见表3。从表3可看出,相比于RetinaFace (MobileNet-0.25)和LFFD,本文模型从精度和速度上均取得了更好的性能。与TinaFace相比,本文模型在hard子集的精度上相差较小,而在easy和medium子集上精度差距较大,但是本文模型采用的骨干网络比TinaFace小得多,生成的模型也更小,在实际应用中的可行性更强。实际检测效果对比如图6所示,能够看出,虽然本文的检测方法相比于TinaFace略有下降,但是和模型大小相似的RetinaFace和LFFD方法相比,本文的具有明显优势。

表2 模型在WIDER FACE数据集上的AP性能、大小和推理速度

注:加粗数据为最优值;√为本模型使用的结构;-为本模型未使用的结构

表3 不同模型的性能对比

注:加粗数据为最优值

图6 本文方法与TinaFace,RetinaFace和LFFD检测效果对比

虽然WIDER FACE数据集种类多、数量大,但在复杂光照条件下的图像数量较少,训练得到的模型检测性能较差,因此为了提高模型的鲁棒性,本文建立了一个新的人脸检测数据集。该数据集共18 907张图像,包括WIDER FACE数据集训练集和验证集共16 078张不同亮度的图像,通过开发板摄像头收集的1 337张亮度不均匀图像,通过实验室USB摄像头收集的823张亮度不均匀图像,以及从darkface数据集中筛选的178张低光照图像,从UFDD(unconstrained face detection dataset)数据集的Illumination类别中筛选的491张光照变化剧烈的图像。

表4分别在2个不同的数据集上进行训练,然后在本文建立的验证集上进行测试的结果。实验结果表明,用WIDER FACE数据集训练得到的模型对于光照的泛化性能较低,精度只有0.493,使用自建数据集训练的模型精度可以达到0.515,提升了2.2%。部分实验结果如图7所示,可以看出,在光照复杂情况下,根据本文建立的数据集所训练的模型对于人脸的检测效果更好,但是对于亮度很弱的图像,检测精度的提高有限。

表4 不同的数据集训练后模型的检测精度对比(%)

模型训练完成后,本文将其部署到嵌入式平台上。由于该平台不支持PyTorch模型,所以需要对其进行模型转换。先将训练好的模型转换为ONNX模型,再进行量化处理,最终转换为开发板所需要的kmodel格式。摄像头捕捉320×240分辨率的图像之后,对其进行检测处理,将其结果展示在有机发光显示器(organic light emitting display,OLED)上,部分检测结果如图8所示。由于嵌入式平台计算资源的局限性,本文算法在该平台上能够达到4 FPS。

图7 对于光照不均匀图像2个模型检测效果对比((a)原模型;(b)使用扩充后的数据集训练的模型)

图8 嵌入式开发板检测人脸效果((a)人脸数量较少;(b)人脸数量较多但有序;(c)人脸数量多且无序)

3 结束语

本文提出了一种兼顾精度和速度的轻量级人脸检测算法,并将其部署到嵌入式平台中。在实现过程中,引入注意力模块提升特征;采用Mish激活函数提高整体网络的精确度和鲁棒性;使用DIoU-NMS代替传统NMS对检测框进行后处理,对小人脸的检测更加精准。实验结果表明,本文方法在模型尺寸较小的情况下,能够得到较高的精度和较短的延时,是边缘器件的理想选择。但是嵌入式平台上的计算资源远少于笔记本电脑,因此网络推理速度较慢,难以达到实时性,因此在之后的工作中,还需对检测网络作进一步的优化。此外,通过在数据集中加入复杂光照下的人脸图像,能够提高模型对于复杂光照情况的泛化性,在后续工作中可以考虑构造更加完备的复杂光照人脸数据集,考虑更加全面的光照情况。

[1] REN S Q, HE K M, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.

[2] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2016: 779-788.

[3] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2017: 6517-6525.

[4] REDMON J, FARHADI A. YOLOv3: an incremental improvement[EB/OL]. [2018-08-08]. https://arxiv.org/abs/ 1804.02767.

[5] BOCHKOVSKIY A, WANG C Y, LIAO H. YOLOv4: optimal speed and accuracy of object detection[EB/OL]. [2020-08-23]. https:// arxiv.org/abs/2004.10934v1.

[6] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[M]//Computer Vision – ECCV 2016. Cham: Springer International Publishing, 2016: 21-37.

[7] LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//IEEE Transactions on Pattern Analysis and Machine Intelligence. New York: IEEE Press, 2017: 318-327.

[8] LIN T Y, DOLLÁR P, GIRSHICK R, et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2017: 936-944.

[9] ZHENG Z H, WANG P, LIU W, et al. Distance-IoU loss: faster and better learning for bounding box regression[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2020, 34(7): 12993-13000.

[10] MISRA D. Mish: a self regularized non-monotonic neural activation function[EB/OL]. [2019-08-23]. https://arxiv.org/ abs/1908.08681.

[11] WOO S, PARK J, LEE J Y, et al. CBAM: convolutional block attention module[M]//Computer Vision – ECCV 2018. Cham: Springer International Publishing, 2018: 3-19.

[12] HOWARD A G, ZHU M L, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. [2017-04-17]. https://arxiv.org/abs/1704. 04861.

[13] LIU S T, HUANG D, WANG Y H. Receptive field block net for accurate and fast object detection[M]//Computer Vision – ECCV 2018. Cham: Springer International Publishing, 2018: 404-419.

[14] WANG X L, GIRSHICK R, GUPTA A, et al. Non-local neural networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2018: 7794-7803.

[15] HU J, SHEN L, SUN G. Squeeze-and-excitation networks[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2018: 7132-7141.

[16] SELVARAJU R R, COGSWELL M, DAS A, et al. Grad-CAM: visual explanations from deep networks via gradient-based localization[J]. International Journal of Computer Vision, 2020, 128(2): 336-359.

[17] YANG S, LUO P, LOY C C, et al. WIDER FACE: a face detection benchmark[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2016: 5525-5533.

[18] ZHU Y J, CAI H X, ZHANG S H, et al. TinaFace: strong but simple baseline for face detection[EB/OL]. [2020-11-26]. https://arxiv.org/abs/2011.13183.

[19] DENG J K, GUO J, ZHOU Y X, et al. RetinaFace: single-stage dense face localisation in the wild[EB/OL]. [2019-05-02]. https://arxiv.org/abs/1905.00641.

[20] HE Y H, XU D Z, WU L F, et al. LFFD: a light and fast face detector for edge devices[EB/OL]. [2019-08-24]. https://arxiv. org/abs/1904.10633.

Face detection and embedded implementation of lightweight network

ZHANG Ming1, ZHANG Fang-hui1, ZONG Jia-ping1, SONG Zhi2, CEN Yi-gang1, ZHANG Lin-na3

(1. School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044, China; 2. Shenzhen Bryture Co. Ltd., Shenzhen Guangdong 518000, China; 3. School of Mechanical Engineering, Guizhou University, Guiyang Guizhou 550025, China)

In recent years, face detection based on convolutional neural networks (CNN) has dominated this field, and the detection results on the public benchmark set have also been significantly improved. However, the computational cost and model complexity are on the rise. It remains a challenge to apply face detection model to embedded devices with limited computing power and memory capacity. Aiming at the application of face detection of 320×240 resolution input images in embedded systems, a low-resolution face detection algorithm based on lightweight network was proposed. The backbone network employed the attention module, combined Distance-IoU (DIoU) and Non-Maximum Suppression (NMS), and adopted the Mish activation function. Meanwhile, an appropriate a priori box was set for the face feature ratio. In doing so, the balance could be achieved between precision and speed, and it could be deployed to the embedded platform. Specifically, deep separable convolution was used to replace ordinary convolution, and an attention convolutional block attention module (CBAM) was added after the convolution block to keep the network’s focus on the target object to be recognized. Instead of the ReLU activation function, the Mish activation function was used to improve the model inference speed. By combining DIoU and NMS, the algorithm’s detection accuracy for small faces was enhanced. The results of experiments on the WIDER FACE dataset prove that the proposed method not only can detect human faces with high accuracy in real time, but also has higher accuracy than traditional algorithms in small resolution input. After expanding the dataset, the proposed model also improves the detection accuracy under complex illuminations.

face detection; lightweight network; attention module; activation function; non-maximum suppression

TP 751.1

10.11996/JG.j.2095-302X.2022020239

A

2095-302X(2022)02-0239-08

2021-07-01;

2021-10-29

中央高校基本科研业务费(2021YJS025);国家自然科学基金项目(62062021,61872034,62011530042);北京市自然科学基金项目(4202055);广西自然科学基金资助(2018GXNSFBA281086)

张 明(1997–),女,硕士研究生。主要研究方向为目标检测、模型压缩。E-mail:19120318@bjtu.edu.cn

张琳娜(1977–),女,副教授,硕士。主要研究方向为工业产品缺陷检测、机器视觉等。E-mail:zln770808@163.com

1 July,2021;

29 October,2021

Fundamental Research Funds for the Central Universities (2021YJS025); National Natural Science Foundation of China under Grant (62062021, 61872034, 62011530042); Beijing Municipal Natural Science Foundation under Grant (4202055);Guangxi Natural Science Foundation under Grant (2018GXNSFBA281086)

ZHANG Ming (1997–), master student. Her main research interests cover object detection and model compression. E-mail:19120318@bjtu.edu.cn

ZHANG Lin-na (1977–), associate professor, master. Her main research interests cover industrial product defect detection, machine vision, etc. E-mail:zln770808@163.com

猜你喜欢

人脸嵌入式卷积
基于IMX6ULL的嵌入式根文件系统构建
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一种并行不对称空洞卷积模块①
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
一起学画人脸
玻璃窗上的人脸
基于ARM嵌入式的关于图像处理的交通信号灯识别
从滤波器理解卷积