APP下载

基于改进YOLOv5 的多任务安全人头检测算法

2022-08-12毛雨晴

计算机工程 2022年8期
关键词:查准率人头分支

毛雨晴,赵 奎

(四川大学网络空间安全学院,成都 610065)

0 概述

随着深度学习技术的发展,人脸检测与人头检测已成为计算机视觉领域的研究热点,具有重要的研究价值与广阔的应用前景,人头计数作为其延伸方向,广泛应用于人流预警设备中。如今,公共场所大范围部署监控摄像头,摄影录像大多包含被摄者的面部信息,若这些信息被不法分子获取,将严重威胁被摄者的隐私。2021 年3·15 晚会报道出多家企业滥用人脸识别摄像头,在顾客未知情的情况下私自存储人脸信息,严重侵害顾客的合法权益与隐私安全,使得普通民众的人脸信息安全难以得到保证。人脸是个人独有的生物识别信息,目前大部分人脸已与各大平台账号密码绑定,一旦存在泄露可能,用户将面临财产损失及隐私泄露的风险。《网络安全法》已经明确将包括人脸在内的个人生物识别信息纳入“个人信息”范围[1]。针对由公共场所摄像头引发的人脸隐私安全问题,需要一种实时打码的方法确保人脸信息不被非授权机构获取。

早期的监控视频人脸隐私保护方法可分为人工检测法与辅助检测法。人工检测法一般由人进行逐帧校对并添加马赛克掩膜,再合并回视频流,其具有打码位置准确的特点,但是需要人工添加掩膜信息,因此,对人力消耗巨大,无法做到实时保护。辅助检测法指利用人脸检测作为辅助手段进行掩膜覆盖。

传统人脸检测通常基于机器学习方法,需要专家提取人脸先验知识进行手工设计特征并转化为规则,然后结合分类器进行检测。文献[2]使用手工设计Haar特征积分图对人脸进行描述,将特征图输入带有级联结构的AdaBoost 分类器中进行快速人脸检测,其提出的VJ(Viola-Jones)算法是人脸检测领域的一次突破,可实现一秒检测15 张图的效果。但是,该算法提出的Haar特征使得分类器难以检测出非正面角度的人脸与被遮挡的人脸,检测性能也会随着人脸图像背景复杂度的提高而下降。文献[3]针对遮挡人脸检测问题,对VJ 算法进行改进,指出每个弱分类器都可以被看成一个图像补丁,人脸也可以划分为不同区域的补丁,其将弱分类器映射到人脸补丁中,通过设立的阈值来判断当前补丁区域是否为一个有效无遮挡的人脸,最终将所有有效补丁人脸进行整合,赋予补丁不同权重以确定整合后的窗口是否为人脸。该方法能有效解决人脸遮挡检测问题,但同样存在人脸角度的局限性。

研究人员对VJ 算法手工特征的框架进行改进,并先后提出不同的手工特征描述算法(如SIFT[4]、HOG[5]、LAB[6]、SURF[7]等),将其应用于人脸检测任务。文献[8]提出特征由粗到细的检测器,整合LAB、SURF、SIFT 三类特征,使用级联漏斗结构的多层感知机集中检查候选区域,这种方式可以有效突破传统方法在多视角人脸检测中的局限性,但是其在场景复杂、人脸尺度变化大等情况下的检测效果还有提升空间。传统方法往往依赖于专家手工设计特征,在复杂场景下算法的鲁棒性都有待提升。

人脸检测作为辅助手段易受到人脸角度、位置等限制,引起人脸漏检情况,且仍旧存在人脸隐私泄露风险。可以利用人头检测替代人脸检测进行人脸保护,通过卷积神经网络提取人头特征,无需专家设计人工特征。基于深度学习的人头检测方法更加适用于在自然场景下识别背景杂乱的人头,抗干扰性更强,具有更好的鲁棒性与准确率。

文献[9]提出一种扩展R-CNN 检测器方法,使用两类上下文线索进行头部检测,一类提取前景和背景的全局特征,另一类提取目标对象关系模型,构建关联得分函数,将两类检测器组成一个联合卷积神经网络框架用于人头检测。但是,该方法在头部目标检测时易受闭塞因素影响[10]。文献[11]关注全局与局部特性,提出一种自适应关系网络用于捕获上下文信息,使用两步搜索法分别获取全局先验特征与结构化局部特征,并将全局先验特征和局部关系特征集成到一个可训练模型中,实验结果表明,该网络可以有效抑制漏检情况,但是其未融合低层特征,在特征提取上还有待提升[12]。文献[13]提出一种应用于拥挤场景中人头检测的无锚检测框架,该框架通过卷积神经网络提取高维特征,再使用递归LSTM 生成序列并挖掘信息以进行人头检测,利用3 种特殊设计的损失函数进行反向传播以更新模型参数。文献[14]在文献[13]的基础上进行改进,加入一组预先设置的锚框,使用VGG-16 作为基本架构,将VGG-16 末尾的全连接层转化成卷积层,改进后的全卷积神经网络可完成分类与回归任务,从而实现人头检测与人群计数。

由于人头检测框为矩形,因此直接进行掩膜覆盖可能会造成图中其他关键信息的损失。针对该问题,本文在人头检测的基础上,使用额外检测分支进行精细化人头像素分割,并用掩膜覆盖打码,在多方位保护人脸隐私的同时实现更精细的人头覆盖。具体地,本文提出三分支检测算法Privacyface-YOLO,该算法采用带残差结构的跨阶段局部网络提取人头特征,将金字塔结构与路径聚合网络(PANet)[15]相结合,进行多尺度特征融合与交流,充分利用浅层的目标位置信息和深层的特征图语义信息,使得模型对复杂的人头场景与小目标人头都具有良好的鲁棒性,以实现端到端实时人头定位、人头分割以及人群数量回归。同时,本文基于轻量级MobileNetV2[16]提 出Privacyface-YOLO(Light)网络,该网络可部署在移动端设备或内置于摄像头的芯片中,从而实现实时安全人脸保护。

1 相关工作

目标检测研究可按检测阶段分为两类:一类是RCNN[17]系列,第一阶段提出目标检测候选区域,第二阶段针对候选区域进行目标判断与回归,该系列具有检测精度高但检测速度慢的特点;另一类是SSD[18]和YOLO(You Only Look Once)[19]系列,这一系列需要一体化实现目标定位与检测,一阶段算法具有优越的时间性能,但是检测精度仍需提升[20]。

YOLO 意指神经网络只需看一遍图片就可以输出检测结果,迄今为止,研究人员已经陆续发布了5 个YOLO 版本。2016 年,REDMON 首次提出YOLOv1[19]并直接将输入图像划分为7×7 的网格,每个网格都计算2 个预测边界框及置信度,超过检测阈值直接预测边界框中的目标位置与类别。但是,由于约束了检测框数目,因此算法本身具有局限性,在小目标检测中表现欠佳。随后,REDMON 对YOLO 进行改进并提出YOLOv2[21]与YOLOv3[22]。YOLOv2 通过引入Batch normalization 加速网络收敛,并移除全连接层,重新引入锚框使得网络定位更加准确。YOLOv3 引入残差结构,提高特征主干网络的深度并提升语义丰富性,从而提高了对小目标的检测能力。BOCHKOVSKIY 等在REDMON 研究的基础上提出YOLOv4[23],其引入Bag of specials的思想,通过使用金字塔结构、激活函数Swish及soft NMS 后处理,只需付出一点额外的计算代价就能大幅提升检测精确度。在这之后,ULTRALYTICS 提出YOLOv5,YOLOv5 按照模型大小分为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,模型越大,网络的速度越快,宽度越大,检测效果越好,但是,所耗费的资源也越多。从YOLOv2 版本开始,YOLO 网络中都需要预先设置锚框,检测效果也与所设立锚框的大小有关。为了解决锚框大小设定问题,YOLOv5 在每次训练时自适应计算当前最佳锚框大小以适用于不同训练集的目标。

2 安全人头检测算法

2.1 Privacyface-YOLO 算法框架

本文提出一种基于YOLOv5 结构的多任务安全人头检测算法Privacyface-YOLO,该算法使用端到端的网络实现实时人头定位、人头分割以及人群数量回归。

如图1 所示,Privacyface-YOLO 算法框架分为5 个部分,分别为主干网络(Backbone)、颈部(Neck)、人头分割层(Head Segmentation)、目标定位层(Object Detection)、人数回归层(Count Regression)。第一部分为主干网络,用于提取图像特征;第二部分为颈部,用于混合主干网络中提取的多尺度特征图,并将特征传递到三分支任务输出结构;第三部分为人头分割层,用于端到端地输出人头分割的结果;第四部分为目标定位层,直接使用颈部的输出特征图进行预测,获取目标的位置信息和类别;第五部分为人数回归层,用于直接预测当前图像中的人数。

图1 多任务Privacyface-YOLO 算法框架Fig.1 Multi-task Privacyface-YOLO algorithm framework

对于一张640×640 像素的RGB 图像,首先使用Focus 操作在不损失像素点的情况下将图像尺寸缩小一倍,再使用主干网络提取图像特征,其中,Down Conv 是步长为2 的3×3 卷积,在提取特征的同时缩小特征图尺寸,ResCSP 为带残差结构的跨阶段局部网络[24],通过拆分特征图来对部分特征图进行特征提取然后与剩下的特征图进行叠加,能够在减少计算量的同时提升网络的特征提取能力。在特征提取阶段,由于使用了下采样操作,使得特征图的尺寸减小,导致低层的特征图语义信息较少,但是目标位置准确;高层的特征图语义信息更加丰富,但是目标位置比较粗略[25]。因此,在颈部使用特征金字塔结构(FPN)[[25]融合不同层特征图的信息,并在FPN 后再接上一个PANet[15]结构,PANet 将FPN 中低层的信息再次传递到高层,从而实现跨网络层的信息交流。UpSample 为上采样,用于扩大特征图的尺寸。将颈部最上层的特征图传入人头分割层,用于人头像素点分割。人头分割层中首先使用3×3 卷积提取图像特征并结合上采样、ResCSP 还原特征图,主干网络、颈部、人头分割层结合在一起的网络结构呈U 型结构,类似于语义分割网络U-Net。目标定位层用于实现人头定位,在Neck 中得到3 个长宽分别为原图1/8、1/16、1/32 大小的特征图并传入目标定位层,结合自适应Anchor 对特征图中的人头进行检测,直接输出网络预测的人头置信度和位置信息。最后,人数回归层直接预测图像中的人数,使用一个3×3 卷积和自适应的Avg Pooling 将特征图的尺寸调整到1×1,再使用1×1 卷积调整特征图的通道数为1,实现人数回归。在3×3 卷积之后均使用BN 对特征图进行归一化,利用Leaky ReLU 对特征图进行激活,从而提升网络的训练速度并防止过拟合发生。

Privacyface-YOLO 算法可以制作成软件,并在计算能力高的服务器端或PC 端进行检测。对于计算能力低的移动端设备,本文提出一个更快的版本Privacyface-YOLO(Light),在上述网络的基础上进行改进,将主干网络替换为更加轻量的MobileNetV2[16],使用深度可分离卷积替换ResCSP 结构,从而实现更轻量级的特征提取网络。本文所提轻量级版本更适用于移动端设备,且可直接在芯片中部署。

2.2 损失函数

在深度学习的训练过程中,通过计算图像中的真实标签和神经网络的输出结果之差获得当前模型的损失(loss)值,loss 值反映了输出结果与真实标签的差异大小。在反向传播过程中根据loss 值的大小对网络参数进行调整,使得神经网络的预测结果趋向真实值。本文所提网络为多任务神经网络,使用的loss 包含3 个部分:第一部分为目标定位层的检测框loss,记为lossdet;第二部分为人头语义分割的loss,记为lossseg;第三部分为人头数量回归的loss,记为lossreg。具体如下:

1)目标检测框的lossdet

在通常情况下,目标检测网络的loss由3 个部分组成,分别为类别损失、检测框的损失和置信度的损失。本文目标检测任务为单目标检测,无类别损失,因此,本文检测任务的loss 由人头框和置信度的损失组成。

第一部分是人头框的损失,记为lossobj,使用的损失函数为二元交叉熵(Binary Cross Entropy,BCE),计算公式如下:

其中:x为网络的预测值,使用Sigmoid 函数将x映射到0-1 的空间中,反映当前类别概率;z为真实的标注信息,取值为0 或1。

第二部分为反映边界框准确度的loss,记为lossbox。本文使用的边界框损失函数为GIoU[26],计算公式如下:

其中:A为真实图像的目标框;B为网络预测出的物体框;C为A与B的最小包围框。

2)人头语义分割的lossseg

人头语义分割为单类别分割任务,loss 为二分类的交叉熵,计算公式同式(1)。

3)人头计数回归的lossreg

人头计数回归使用的loss 为smooth L1 loss,计算公式如下:

其中:x为预测的人头数减去真实图像中人头数的值。

对不同loss 设定不同的权重以得到整体的loss,计算公式如下:

3 实验结果与分析

3.1 实验环境与数据集

本文所有实验均在Ubuntu18.04 LTS操作系统下执行,处理器为Intel®Xeon®CPU E5-2630 v4@2.20 GHz,显卡采用NVIDIA GeForce RTX 2080Ti,11 GB 显存。程序编码使用Python3.6.10 及PyTorch1.7.0 实现,通过CUDA11.0 进行深度学习运算加速。模型迭代次数设置为300,初始学习率为0.01,动量与重量衰减分别设置为0.937 和0.000 5,引入早停(Early stopping)机制缓解过拟合,当30 轮迭代mAP 都没有提升时停止训练。

本文实验采用人头数据集HollywoodHeads[9]和Brainwash[11]分别进行训练、验证与测试,并将模型迁移至人脸数据集WIDER FACE 上[27]进行微调(finetune)。HollywoodHeads 包含21 部好莱坞电影的224 740 帧图像,提供了369 846 个人头标注,其中,训练集取自15 部电影共包含216 719 帧图像,验证集取自3 部电影共包含6 719 帧图像,测试集取自3 部电影共包含1 302 帧图像。Brainwash 来自咖啡馆摄像头每间隔100 s 所采样的图像,其中,训练集包含10 769 张图像并含有81 975 个人头,验证集包含500 张图像并含有3 318个人头,测试集包含500张图像并含有5 007个人头。与HollywoodHeads 相比,Brainwash 中的每一张图像都包含了更多的人,平均每一张图像中含有7.89个人头,是更具挑战性的人群密集场景。WIDER FACE是由WIDER 数据集中的61 个事件制作而成的人脸检测数据集,共包含32 203 张图片,含有393 703 个人脸标签,按照40%、10%、50%将数据集划分为训练集、验证集、测试集,对于训练集与验证集,平均每张图片中有24.45 张人脸,作者按照人脸识别的难易程度划分为Easy、Medium 和Hard,其中,Hard 部分场景图片人脸密集且具有不典型人脸特征与遮挡。WIDER FACE 数据集更适合模拟本文算法在真实场景下的人脸隐私打码应用效果。

3.2 评估方法

loss 值越大,说明网络的识别结果差异越大,网络的拟合程度越差;loss 值越小,说明模型对当前数据的拟合程度越好,但并不能说明网络识别能力更强,因为可能存在过拟合现象。因此,本文使用查准率(Precision,P)、查全率(Recall,R)、交并比分数(Intersection over Union,IoU)、数目回 归指数(Regression,Reg)和平均查准率(Average Precision,AP)对人头检测结果进行评估。查准率表示预测正确的人头与输出预测人头样本的比例,反映人头尽可能被预测正确的程度。查全率表示预测正确的人头与实际人头的比例,反映人头尽可能被找到的程度。两者计算公式如下:

其中:TP为真阳性,表示被正确识别的人头样本数;FP为假阳性,表示网络判定为人头而实际为非人头的样本数;FN为假阴性,表示被网络忽视的真实人头样本数。

IoU 分数是分割任务的标准性能度量指标,是指计算预测掩膜的像素面积与真实标签像素面积的交集和并集的比值[28],计算公式如下:

Reg 是衡量人头检测数目精准度的一项指标,通过计算预测人头数和实际人头数之差获得人头预测准确率的度量,计算公式如下:

AP 用于反映模型准确识别人头的能力,计算公式如下:

其中:P为计算一张测试图像中人头的查准率;Nimg为测试集中的图像数量。

当检测框和真实框的IoU 大于某一阈值时,将该物体视为准确识别。当阈值较大时,检测得到的目标框更精准,但是查准率会降低;当阈值较小时,查准率提高,但是检测框和真实位置可能会有偏差。在此次实验中,本文使用的阈值分别为0.50、0.70,在每一轮完成时,使用当前模型在测试集上进行测试,计算AP50 和AP70。

3.3 算法对比分析

3.3.1 本文算法与其他经典算法的对比

为验证Privacyface-YOLO 算法的检测性能,本文在公开通用数据集HollywoodHeads 和Brainwash 上将其与近年来出现的主流检测算法进行实验对比。

在HollywoodHeads 数据集的实验中,选取2 种经典目标检测算法SSD[18]和YOLOv2[20]以及CONC[9]、TINY[29]、FCHD[14]、HeadNet[11]作为对比算法,实验结果如表1 所示。从表1 可以看出:在IoU=0.50 时,本文算法的平均查准率较对比算法高11.8%;在IoU=0.70时,本文算法的平均查准率较对比算法高20.2%。

表1 各算法在HollywoodHeads测试集上的检测性能对比Table 1 Comparison of detection performance of each algorithm on HollywoodHeads test set %

在Brainwash 数据集的实验中,同样选取2 种经典目标检测方法SSD[18]和YOLOv2[20]以及Lhungarian[13]、TINY[29]、FCHD[14]、HeadNet[11]作为对比算法,实验结果如表2 所示。从表2 可以看出:在IoU=0.50 时,本文算法的平均查准率较对比算法高5.8%;在IoU=0.70 时,本文算法的平均查准率较对比算法高35.2%。

表2 各算法在Brainwash 测试集上的检测性能对比Table 2 Comparison of detection performance of each algorithm on Brainwash test set %

3.3.2 多分支检测对人头检测的促进作用

为确定Privacyface-YOLO 多分支检测算法对人头检测具有促进作用,在保证主干网络和颈部结构一致的前提下进行对比实验,去除多分支输出网络结构的人头分割层和人数回归层,退化为只具有目标定位层的单任务目标检测网络,网络其他部分不变。表3 所示为单分支结构与多分支结构在2 个数据集下的查准率、查全率和平均查准率比较,最优结果加粗表示。由于单分支结构不具有人头分割层和人数回归层,因此未比较IoU 分数及Reg 数目回归指数。

表3 多分支与单分支结构的对比结果Table 3 Comparison results of multi branch and single branch structures %

从表3 可以看出,增加多任务分支后,2 个数据集上的检测结果都有一定提升,因此,多分支对人头检测具有促进与辅助作用,增加多任务并不会影响检测准确率。对于Privacyface-YOLO 算法的检测效果,WIDER FACE 数据集测试图像之间人头数差异较大,且存在部分遮挡人头,在评估中实验结果存在一定下滑,证明本文算法在人头密度高的情况下仍旧具有鲁棒性。

3.3.3 轻量级结构

本文在Brainwash 测试集上对500 张图片使用Privacyface-YOLO 进行预测,预测总时间为2.09 s,平均一张图片的预测时间为0.004 18 s,算法每秒处理239张图片,模型GFlops为24.1;利用Privacyface-YOLO(Light)进行预测,预测总时间为1.20 s,平均一张图片的预测时间为0.002 40 s,算法每秒处理416 张图片,模型GFlops为19.0,轻量级模型的检测速度提升近一倍。表4 所示为Privacyface-YOLO(Light)在2 个数据集中的处理结果,相较Privacyface-YOLO,Privacyface-YOLO(Light)的平均查准率稍有下降,但检测结果依旧良好,可以满足日常检测需求。

表4 Privacyface-YOLO(Light)轻量级模型的测试结果Table 4 Test results of Privacyface-YOLO(Light)lightweight model %

3.3.4 人脸检测任务

人脸检测同样是计算机视觉领域中的重要任务,为证明本文算法同样适用于人脸检测任务,选取人脸密度较大的数据集WIDER FACE 进行实验,并与近年来所提基于深度学习的人脸检测算法YOLOv3-FACE[30]、MTCNN Multitask Cascade CNN[31]、RetinaFace[32]、SCRFD[33]进行对比,实验结果如表5所示,同样也按照WIDER FACE 的Easy、Medium 和Hard 划分标准,分别计算对应检测结果的AP。从表5 可以看出,本文算法在人脸检测领域同样具有较高的性能提升,尤其在人脸密度大、检测难度高的Hard 数据集中,其平均查准率相对SCRFD 算法提高12.2%。

表5 各算法在WIDER FACE 验证集上的性能对比结果Table 5 Performance comparison results of each algorithm on WIDER FACE verification set %

表6 所示为单任务分支、多任务分支以及多任务分支轻量级Privacyface-YOLO(Light)的检测结果。从表6 可以看出,在增加多任务分支后,Privacyface-YOLO 的检测结果在Easy、Medium 和Hard 下较单任务分别提升2%、2%、2.6%;Privacyface-YOLO(Light)在Easy、Medium 和Hard 下虽比 多分支Privacyface-YOLO 性能分别下降1.4%、1.5%、2.1%,但对比单分支模型分别提升0.6%、0.5%、0.5%。实验结果表明,在人脸检测领域,增加多任务分支后同样可以提升模型准确率,轻量级结构在提升一倍检测速度的同时也能保持较好的检测结果。

表6 在WIDER FACE 数据集上多分支与单分支结构的对比结果Table 6 Comparison results of multi branch and single branch structures on WIDER FACE dataset %

3.3.5 检测效果分析

本文模型将已训练好的Privacyface-YOLO 分别用于测试数据集Brainwash、HollywoodHeads 和WIDER FACE,得到的检测结果如图2~图4 所示,其中,每张图中的(a)展示对应数据集测试原图,(b)为人头检测分支的输出结果,(c)为人头分割分支的输出结果,(d)为整合后的带有分割掩膜的检测图像。从中可以看出,本文算法在实现人头检测的同时生成人头预测掩膜进行人头覆盖打码,对被检测到的人脸进行保护,有效避免了人脸数据泄露的风险。尤其在图4的WIDER FACE测试图片中,在人脸密集的场景下,Privacyface-YOLO算法也能很好地对几乎所有人脸生成掩膜并进行打码操作,该程序有望在公共场所摄像头中使用,以保证人脸隐私安全。

图2 Brainwash 数据集上的检测效果Fig.2 Detection effect on Brainwash dataset

图3 HollywoodHeads 数据集上的检测效果Fig.3 Detection effect on HollywoodHeads dataset

图4 WIDER FACE 数据集上的检测效果Fig.4 Detection effect on WIDER FACE dataset

4 结束语

已有的监控摄像头预置检测算法多数存在人脸隐私泄露的风险,为此,本文提出一种基于YOLOv5 结构的多任务安全人头检测算法Privacyface-YOLO。该算法通过主干网络层提取图像特征,在颈部融合层实现特征信息交流,利用人头分割层生成覆盖原图人头的掩膜以保证人脸隐私,目标定位层配合人头分割层实现人头检测,在人数回归层预测人头数量。在公开通用人头数据集HollywoodHeads 和Brainwash 上进行实验,结果表明,该算法的准确率AP50 分别达到94.8%和96.6%,准确率AP70 分别达到79.7%和84.4%,三分支结构在保护人脸隐私的同时具有较好的平均查准率。下一步将优化主干特征提取网络,提升网络在人脸密集条件下的检测准确率,并将轻量级网络Privacyface-YOLO(Light)集成到摄像头芯片中,从而实现更优的人脸安全保护。

猜你喜欢

查准率人头分支
一类离散时间反馈控制系统Hopf分支研究
软件多分支开发代码漏合问题及解决途径①
山西省立法禁止野外用火成效显著 林草防火责任明确到山头地头人头
巧分支与枝
假人头防盗大法
基于数据挖掘技术的网络信息过滤系统设计
朋友圈
大数据环境下的文本信息挖掘方法
基于深度特征分析的双线性图像相似度匹配算法
硕果累累