改进的基于YOLOv3的人脸检测算法.pdf
《改进的基于YOLOv3的人脸检测算法.pdf》由会员分享,可在线阅读,更多相关《改进的基于YOLOv3的人脸检测算法.pdf(12页珍藏版)》请在文库网上搜索。
1、ISSN 10049037,CODEN SCYCE4Journal of Data Acquisition and Processing Vol.38,No.5,Sep.2023,pp.1092-1103DOI:10.16337/j.10049037.2023.05.008 2023 by Journal of Data Acquisition and Processinghttp:/Email:sjcj Tel/Fax:+8602584892742改进的基于 YOLOv3的人脸检测算法胡一帆,秦岭,杨小健(南京工业大学计算机科学与技术学院,南京 211816)摘要:针对因背景与人脸高度相似和
2、人脸目标尺度过小而导致的人脸检测精度较低的问题,提出了一种改进的基于 YOLOv3的人脸检测算法。首先使用遗传算法改进原算法中随机初始化的影响,生成更符合目标大小的预测框,其次用轻量级网络改进原特征提取网络,提高人脸检测速度,最后使用边框回归损失代替 YOLOv3坐标损失函数并改进置信度损失函数以提升训练收敛速度和结果精度。所设计的算法模型在 Wider Face数据集上的检测精度和速度得到了提升。关键词:人脸检测;聚类算法;YOLOv3;轻量级网络;损失函数中图分类号:TP391.4 文献标志码:AImproved Face Detection Algorithm Based on YOLO
3、v3HU Yifan,QIN Ling,YANG Xiaojian(College of Computer Science and Technology,Nanjing TECH University,Nanjing 211816,China)Abstract:Aiming at the low accuracy of face detection caused by the high similarity between background and face and the small scale of face target,an improved face detection algo
4、rithm based on YOLOv3 is proposed.Firstly,the K-means clustering algorithm based on genetic algorithm is used to improve the influence of random initialization in the original algorithm and generate a prediction frame more in line with the target size.Secondly,the lightweight network is used to impr
5、ove the original feature extraction network and improve the face detection speed.Finally,the frame regression loss is used to replace the YOLOv3 coordinate loss function and the confidence loss function is improved to improve the training convergence speed and result accuracy.The accuracy and speed
6、of the designed face algorithm are improved on Wider Face dataset.Key words:face detection;clustering algorithm;YOLOv3;lightweight network;loss function引 言随着时代的发展,图像和视频是互联网中最常见的数据展现形式。计算机视觉技术可以通过这些数据获取有效信息,使得人与机器友好交互,该技术已经应用在人们生活的各个方面。其中,人脸检测是计算机视觉领域中的一个重点方向,受到国内外学者的关注。人脸检测是指通过计算机处理输入的图像、视频,输出人脸的位置、
7、大小的过程1。人脸检测的研究源于人脸识别,于 20世纪 60年代人脸识别就开始被学者关注,60多年来取得了巨大的进步。而人脸收稿日期:20220524;修订日期:20220915胡一帆 等:改进的基于 YOLOv3的人脸检测算法检测是人脸识别的第一个步骤,是在确定了人脸位置的基础上进行的,因此并没有单独受到重视。直至 21世纪,随着人脸识别技术的成熟、人脸识别需求的不断扩大以及对复杂环境下的人脸识别的鲁棒性需求,人脸检测不再仅仅是人脸识别的关键部分,还是视觉监视、三维人脸模型等方面重要的一环。现有的人脸检测技术已经能高精确度地检测出特定环境中的人脸,但在自然环境中,由于背景和人脸角度、大小的不
8、同,人脸检测仍然还有很多问题需要面对。最容易受到影响的因素主要有:(1)人脸的表情是多变的,导致眼睛、嘴巴可能会呈现出不同的姿态;(2)图像或视频中人脸可能会被不同的物体遮挡,如头发、胡子、饰品或其他人,使其不具有完整性;(3)图片或视频呈旋转状态;(4)受拍摄光源的影响,亮度、阴影等也对检测结果有很大的影响。目前各国的研究人员都对人脸检测投入了大量研究,每年的国内外会议以及期刊上都有许多文献发表。近年来,随着卷积神经网络技术的发展,深度人脸检测也取得了很大的进展。主要的研究方向分为两类:两步人脸检测和单步人脸检测。YOLO 是当前最先进的单步目标检测算法之一,常常被应用于计算机视觉领域,改进
9、后的 YOLOv3算法相较于其他优秀的目标检测算法单步多框目标检测(Single shot multibox detector,SSD)2、RetinaNet3、RFCN4有着较高的检测精度和检测速度。但对于现实中复杂的人脸检测环境,检测精度、召回率等依然不够理想。因此本文将针对 YOLOv3 算法,从聚类算法、特征提取网络、损失函数 3方面进行改进,提升训练收敛速度和结果精度。1 相关工作 1.1传统人脸检测传统人脸检测方法主要有两种类型。第一种是基于特征的检测方法,该方法主要通过肤色、灰度、模板等特征进行检测。文献 5 中根据肤色获取候选区域,使得模型检测效果得到很大的提升。文献6 首先对
10、图像进行分割,计算分割后各部分的像素平均值,最后得到灰度值,通过分析不同器官的灰度值来检测人脸。第二种是基于统计的检测方法,该方法首先训练人脸样本,提取人脸特征,最后通过提取到的特征进行检测。文献 7 通过支持向量机将特征空间的间隔扩大以扩大正、负样本间的间隔。文献 8 通过梯度统计直方图对人脸特征提取,并通过 latentSVM 分类的方式检测。1.2基于卷积神经网络的人脸检测方法基于卷积神经网络的目标检测算法主要分为单步检测和两步检测。两步检测算法中首先被人们熟知的是 RCNN9算法,随后学者们又对其做出了改进。文献 10 提出通过分类、边框回归,统一两个阶段。文献 11 将文献 10 中
11、的选择性搜索方法12替换成区域生成网络,使得目标检测的各个步骤都能共享卷积特征,目标检测速度得到了很大的提升。特征丢失对人脸检测有着重要影响,文献 13 为此改进目标检测网络,选取位置敏感的卷积层。文献 14 通过对多个区域进行特征提取以达到丰富目标特征的目的,实际检测效果也得到了提高。单步检测算法最经典的主要有 SSD2和 YOLO15两类。前者将文献 11 提出的思想进行归纳,预先针对不同情况生成先验框。后者通过减少计算复杂度,使得检测速度得到明显的提升,但检测精度却有一定的下降。YOLOv216引入锚框(Anchor box)、高分辨率分类器等,在保持其原先速度的同时,检测精度也得到了明
12、显的提升。YOLOv317在 YOLOv2的基础上进一步改进,同时融入特征金字塔、残差网络等方法,在小目标检测精度方面也得到了提升。YOLOv418在不改变 YOLOv3的骨干网络情况下,使用空间金字塔池化并将参数聚合方式更改为路径聚合网络。YOLOv519则将原先的 DarkNet53网络改为 CSPDarkNet和 Focus网络结构,同时结合路径聚1093数据采集与处理 Journal of Data Acquisition and Processing Vol.38,No.5,2023合网络和特征金字塔聚合特征,并设计出自适应的描框计算。由于人脸检测与目标检测有一定的相似性,因此很多人
13、脸检测算法是在目标检测算法上进行改进,其中最为常见的人脸检测算法主要分为 3类:级联卷积、单步、两步。对于级联卷积方式文献 20 首先提出在网络中设置多个分类器并通过级联结构组织,虽然相较于传统的人脸检测精度有很大的提升但模型过于复杂。文献 21 对其做出改进,用联合损失函数使其合并,同时合并各级的分类回归任务。文献 22 合并人脸区域性检测和关键点检测,该网络中候选区网络受限获取大致区域,接着使用微调网络对人脸区域进行优化,最后使用输出网络输出最终的检测结果。两步人脸检测主要是基于文献11 提出的 Faster RCNN 的改进,文献 23 提出了 Face RCNN,但在检测速度方面还有很
14、大进步空间。单步人脸检测主要是基于 SSD 的改进,文献 24 减少了网络参数,设计出尺度不变性网络。文献25 重新设计了 SSD中的 Anchor,针对小尺度人脸检测的问题,降低了阈值,使得小尺度人脸检测精度得到了很大的提升。通过以上分析可以看出在各类目标检测和人脸检测算法中,各种 YOLO 算法都有着最佳的事件性能,在后面改进的 YOLO 算法中精确度也得到了很大的提升。相较于 YOLOv4和 YOLOv5,YOLOv3在当前形势下有着最广阔的应用领域,对于人脸检测方面,时间性能和精确度都有不错的表现,因此本文将对 YOLOv3 进行改进,提出一种改进的基于 YOLOv3 的人脸检测算法,
15、从聚类算法、特征提取网络、损失函数 3方面出发针对性地进行改进以提升训练收敛速度和结果精度。2 YOLOv3算法 2.1边界框预测YOLOv3中使用 Kmeans算法进行聚类,从而获得最优的 Anchor box尺寸。预测结果会对每个网格生成 3个边界框,并用其中心坐标、宽、高、置信度和条件类别概率来表示。网格计算出每个预测框和真实框的交并比,并选取交并比最大的预测框负责预测,交并比计算公式为IoU=boxp boxtboxp boxt(1)式中:boxp为预测框的面积大小,boxt为真实框的面积大小。用tx、ty、tw、th表示预测框的输出,用bx、by、bw、bh表示预测结果。b和 t之间
16、的转换公式为bx=(tx)+cxby=(ty)+cybw=pwetwbh=pheth(2)式中:cx、cy表示每个网格左上角点的坐标,pw和ph分别表示预测框的宽的高。置信度的值取决于该网格中是否有对象,如果有,置信度为 1,反之则为 0。对象类别概率表示对检测目标类别的预测。2.2特征提取网络YOLOv3提出了 DarkNet53的特征提取网络,网络共 53层卷积,最后一层为全连接层,其余 52 层为主体结构,包括:1个 32 filters的卷积核,5组残差模块先执行 11再执行 33的卷积层,分别执行 1、2、8、8、4次,其中每个残差模块的第一层使用步长为 2的卷积核。网络输入为 41
17、6416,通过步长为 2的卷积,经历 5次下采样后得到 5个大小的特征图,并在 1313、2626、5252的特征图上预测。通过32倍、16倍、8倍下采样得到 3种特征图以融入更多的浅层语义和细节信息。1094胡一帆 等:改进的基于 YOLOv3的人脸检测算法2.3损失函数YOLOv3的损失函数主要有 3个部分:定位坐标损失、置信度损失、目标类别损失。整体损失函数公式为Loss=Losscoord+LossIoU+Lossclass(3)定位坐标的损失函数通过方差来计算,由式(2)可知,边框最终输出为bx、by、bw、bh,映射到 416416图上后输出值为x、y、w、h,原图中实际的真实框中
18、心坐标和宽高为x、y、w、h,定位坐标损失函数为Losscoord=coordi=0S2j=0BIobjij(xij-xij)2+(yij-yij)2+coordi=0S2j=0BIobjij(wij-wij)2+(hij-hij)2(4)式中:S2表示特征图有S2个网格,每个网格产生 B个预测框,Iobjij表示是否检测这个目标,如果是则为 1,反之为 0。置信度损失函数通过交叉熵损失函数计算,整个损失函数分为两部分,当有目标物体时损失函数为LossIoU1=obji=0S2j=0BIobjij Cjilg Cji+(1-Cji)lg(1-Cji)(5)当没有目标物体时损失函数为LossIo
19、U2=noobji=0S2j=0BInoobjij Cjilg Cji+(1-Cji)lg(1-Cji)(6)式中:Cji为预测的置信度,Cji为真实置信度。目标类别损失也是用相同的交叉熵损失函数计算,公式为Lossclass=i=0S2Iobjijc classes Pjilg Pji+(1-Pji)lg(1-Pji)(7)式中:Pji为在第 i个网格的第 j个预测框预测为 c类别的概率,Pji表示 c类真实的概率。3 针对 YOLOv3的算法改进 为解决复杂背景下的人脸检测问题,本文在 YOLOv3的基础上进行改进,对于 Anchor的预测使用遗传算法对原预测方式进行改进,特征提取网络方面
20、使用 GhostNet代替 DarkNet53,最后使用 GIOU边框回归损失进行定位坐标的损失计算以及使用 Focal loss进行置信度损失计算。3.1基于遗传算法的 Kmeans聚类如上文所述,YOLOv3要获取最优尺寸的 Anchor box,则需要使用 Kmeans算法对数据集中的相关参数进行聚类。思想是首先随机设置 k个中心,通过欧式距离公式筛选出与中心距离较近的目标分为一类,接着根据分类结果重新分配 k个中心并根据中心重新划分聚类,不断重复直至聚类中心不变。Kmeans算法有着速度快、消耗资源少的优点,但初始点的选取过于随机,对于分布不均的离散数据很难找到可靠的初始中心点,因此本
21、文的改进方向是获取更加可靠的初始中心点,接着使用 Kmeans聚类。1095数据采集与处理 Journal of Data Acquisition and Processing Vol.38,No.5,2023遗传算法是指将对象看作染色体,在其中随机选取若干形成聚类,通过适应度函数算出每个的适应值,并根据适应值选取出领头或是淘汰。接着将范围内的目标与其他聚类交叉,并产生子代,而适应度高的则直接进入下一代,然后使子代与适应度高的目标重新计算适应值,重复上述步骤,直到选取出最高适应值的目标。从算法过程可以看出遗传算法可以自适应地从全局搜索出最优的初始点。整个改进后的聚类算法流程如图 1所示,具体算
22、法如下:(1)染色体编码。由于聚类算法的目的是获取最优尺寸的 Anchor box,因此算法设计的染色体为锚框的坐标。本文设置锚框的总数据为 N,聚类数为 k,并采用二进制编码。(2)适应度函数。本文采用误差平方和的方式,设锚框 Nn的宽高分别为 wn、hn,样本集为 N=N1,N2,Nn,则公式为Ginner=i=1kj=1ni(x(i)j-mi)2(8)Ginter=i=1k(mi-m)2(9)式中:Ginner为类内距离和,Ginter为类间距类和,mi为聚类后每个聚类的均值,m 为整个样本的均值,xj(i)为第 i个样本中的第 j个对象。由于 Ginter与适应度成正比,Ginner与
23、适应度成反比,因此适应度公式为F(Nn)=GinterD+Ginner(10)式中 D为防止分母为 0设置的常数。(3)选择算子。遗传算法中使用的是优胜劣汰的方式进行淘汰,本文依照其法则将适应度值高的目标大概率的进入下一代,适应度值低的大概率进入交叉,其中适应度值最低的 10%对象则被淘汰。因此选择算子的计算公式为P(Nn)=F(Nn)j=1NF(Nj)(11)(4)自适应交叉算子。本文的设计为当适应值高于平均值时进行交叉,低于平均值时根据概率公式决定是否交叉,概率公式为Pc=Fmax-FFmax-Favg F Favg 1 F Favg(12)式中:Fmax为适应度的最大值,Favg为适应度
24、的平均值。具体的交叉方式为:将输入值转化为 10 位的二进制数,并为二进制数设置分段,以每三位分为一段,例如 128 的二进制数为 0010000000,划分后则为 0|010|000|000。随机选取一个分段,将两个目标的分段的部分进行交叉互换。(5)自适应变异算子。方式与交叉相同,概率公式为Pm=Fmax-FFmax-Favg F Favg 1 F Favg(13)图 1基 于 遗 传 算 法 的 Kmeans 聚类算法流程图Fig.1Flow chart of Kmeans clustering algorithm based on genetic algorithm1096胡一帆 等:
25、改进的基于 YOLOv3的人脸检测算法具体的变异规则为:与交叉方式相同地设置为二进制并分段,接着随机选取其中一段并将该段中的 3个数替换为随机生成的 3位二进制数。3.2网络架构的改进如上文所述,在 YOLOv3模型中使用的是 DarkNet53的网络结构,相较于以往的网络,尽管该网络在性能方面更加优异,但较大的计算量以及较大的内存空间使得检测速度还有一定的提升空间。轻量级网络模型通过压缩模型大小,依然有着很好的检测效果,同时也具备一定的泛化能力,因此本文通过轻量化的网络结构代替 DarkNet53对网络架构进行改进。GhostNet是最优秀的轻量级网络之一。GhostNet目标是通过廉价操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 改进 基于 YOLOv3 检测 算法