谢斌红,袁 帅,龚大立
1.太原科技大学 计算机科学与技术学院,太原 030024
2.精英数智科技股份有限公司,太原 030000
煤矿作为一个高危行业,其生产安全问题一直以来都备受各级政府高度重视。随着数字化技术的发展和智慧矿山政策的不断推进,深度学习技术在煤矿安全防护中具有巨大的发展潜力。将计算机视觉与传统煤矿行业结合,在提升工作效率、改善生产环境、保障生产安全方面具有重要的研究价值和社会意义。
行人检测作为目标检测的一个子任务,其旨在利用计算机视觉技术识别视频图像中人员的精确位置。目前煤矿井下行人目标检测主要存在遮挡严重和监控视频质量低等问题。遮挡一直都是行人检测的难点,行人目标检测中的遮挡主要分为两种类型:一类是被检测行人之间的相互遮挡,另一类是待检测的行人被干扰物体遮挡[1]。前一类行人之间的遮挡和粘连,往往会引入大量的干扰信息,导致更多的虚检;而后一类行人被干扰物体的遮挡,会造成目标信息的缺失,进而导致漏检。由于煤矿生产环境的特殊性,井下人员密集程度较低,遮挡问题普遍存在于待检测行人被大型设备的遮挡,例如皮带、钻机和变电器等。被遮挡行人在检测时缺少完整的特征,对检测的精确度产生了较大的影响。
对于遮挡下的行人检测,现阶段主要有基于传统目标检测技术和基于深度学习的两种解决方法。
传统的人员目标检测方法包含HOG+SVM法[2]、Harr特征法[3]、LBP特征法[4]和积分通道特征等,针对行人遮挡情况的处理方式,传统检测方法分为两类思路:一是基于部件处理的遮挡行人检测,对检测目标进行分部处理,利用未被遮挡的部分来预测行人的实际位置。Wu和Nevatia[5]设计了Edgelet特征,建立了行人图像与构建特征之间的关系,运用此特征在腿部或者其他局部被遮挡的情况下也能够检测到行人。二是基于特殊遮挡分类器的行人检测,针对常见的遮挡物训练特定的分类器,以此缓解遮挡的影响。Mathias和Benenson根据该思想提出了Franken-classifiers[6]方法,将分类器针对每种不同的遮挡物和不同的遮挡等级进行区分,该方法可有效处理形变和遮挡;Felzenszwalb等则改进HOG特征提出了DPM[7],该模型融合了密集特征图的线性滤波器来增加对目标形变的鲁棒性。
两类传统方法的遮挡行人检测都能够在一定程度上减轻遮挡对算法带来的干扰,但前一类方法虽思想简单,易于实现,但较难充分利用未遮挡部分的部件,且对不同区块之间的权重占比难以把握,如何正确消除遮挡区域带来的影响仍是难题;后一类方法实现过于复杂,训练各类分类器费时费力,同时模型泛化能力较差,随着场景变换其鲁棒性也会有较强的波动。
借鉴传统算法对于遮挡处理的思想,深度学习算法对遮挡问题的处理也分为两种思路:一是将部件模型与深度学习网络结构相结合,综合部分检测器分数处理遮挡。Ouyang等[8]运用此思想,将行人检测、形变处理、遮挡处理和分类多种能力联合在一起,提出了一种新的卷积神经网络架构。但当有遮挡和大变形时,部分探测器难以整合分部模型的各类分数。为了解决部分探测器不完善的问题,他们又提出了基于改进受限玻尔兹曼机网络(RBM)的概率模型[9],通过将部件可见性建模成隐变量,使其模型能在可见性得分不准的情况下得到较为准确的整体检测;Tian等[10]则在分部检测器的启发之下提出了基于R-CNN的DeepParts,由不同的分布检测器组成深度部分检测器,增强其检测的鲁棒性;Zhang等[11]则提出使用部件检测器结合注意力机制[12],在R-CNN的模型算法中增加了一个额外的注意力机制来处理不同的遮挡类型,引导探测器更加关注未被遮挡的身体部分。Zhou等[13]在部件检测器上采用了多标签的学习方法,改善部件检测器之间的相关性以此来改进检测器的性能。
另一类基于深度学习处理遮挡问题的思路则是基于优化函数的方式,结合神经网络结构的特点,通过优化损失函数来减少遮挡带来的干扰。Wang等[14]在Faster R-CNN的基础上对损失函数进行优化,提出Repulsion Loss,使预测框对于真实目标框的距离更小,并增加周围非目标框的距离,从而减少遮挡对行人检测的影响。
综上所述,尽管基于CNN的行人检测算法在不同程度上取得较好效果,但这类算法仍存在以下局限性:(1)大多数的算法只采用了卷积神经网络的最后一层特征,未能有效利用卷积网络中不同层的图像特征[15];(2)部件模型与深度神经网络相结合的方法,其算法的提取特征工程过于复杂,且不同场景下的泛化能力较差,难以满足实际应用场景需求;(3)基于优化损失函数方式更多适用于行人与行人之间相互遮挡的情况,对于非目标遮挡物遮挡行人的检测场景,其提升效果不明显。
针对当前算法存在的不足,本文将YOLOv4目标检测算法引入到煤矿井下行人检测复杂场景中,并借鉴残差密集网络提取特征过程的连续记忆(continuous memory,CM)机制[16],通过加入残差密集块来减少在特征提取过程中由于网络深度增加而导致的特征信息丢失问题,利用卷积网络中的多层特征,将更多的全局信息与局部信息融合,以此来解决因目标遮挡而导致被检测人员特征不足的问题。
当行人被遮挡时,从全局图像中提取的特征都无法充分表征目标,因此不论是传统方法还是深度学习方法的遮挡行人检测,其主要思想都试图从未被遮挡的局部图像中提取到更多特征信息来预测行人位置。传统的深度学习模型网络结构相对单一,每一层的特征输入都来自于上一层的输出,且会随着网络深度的增加导致局部信息出现丢失,进而影响对遮挡行人的预测。本文在YOLOv4算法的基础上加以改进,针对局部信息在逐层提取过程中出现丢失的问题,在CSPDarknet-53特征提取网络中引入了残差密集块(residual dense block,RDB),实现特征的跨层传递。整体网络结构如图1所示。残差密集块内的每一层都能够接收到前层特征的直接传递,同时残差密集块之间也形成了特征传递的连续记忆机制(CM),这种机制使相邻RDB之间的各层能够跨模块直接传递不同层级之间的特征,从信息流通角度来看,这种连续记忆机制通过将特征不断地跨层融合,连续的连接保证了低级和高级特征信息存储和记忆,使特征提取过程中易丢失的信息得以保留。融合全部的密集信息特征后,有效的局部特征能够更加准确地预测被遮挡行人的信息。
图1 RDB-YOLOv4网络结构图Fig.1 Structure diagram of RDB-YOLOv4 network
YOLOv4模型由Bochkovskiy等[17]提出,其网络结构如图2所示,该模型在保持原有YOLO目标检测结构的基础上使用了多种优化策略,在特征提取网络中采用CSPDarknet-53结构,将基础层的特征提取过程分割为两部分,分割形成的梯度流丰富了其梯度组合,减小特征提取过程中的计算量。特征融合阶段使用SPP模块和PAN的方式进一步提高特征融合的能力,损失函数则采用CIOU_Loss进一步将预测框与目标框之间的长宽比、重叠面积和中心距离等因素考虑在内。
图2 YOLOv4算法结构Fig.2 Structure of YOLOv4 algorithm
更深层的卷积神经网络,具有更强的特征表达和逐层学习的能力,但深层网络带来的梯度不稳定和计算量骤增的问题严重影响其网络性能。对此CSPDarknet-53在Darknet-53的基础上融合了CSPNet跨阶段局部网络的特点,通过跨阶段的分层结构将梯度流进行分割,从而达到丰富梯度流,减小计算量的目的。CSPDarknet-53由5个CSP模块共同构成主干结构。单个CSP模块(交叉阶段部分连接)结构如图3所示。CSP模块将基础层的特征映射划分成了两部分,通过分开梯度流,使梯度流在不同的网络路径中进行传播,再通过跨阶段层次结构将这两部分拼接。经过上述变换后,传播的梯度信息产生较大的相关差异,在减少计算量的同时能保持准确性。
图3 CSP模块结构图Fig.3 Structure diagram of CSP module
Zhang等[16]针对图像超分辨率问题,提出残差密集网络(residual dense net)来利用原始图像的分层特征为重构提供更多线索。本文借鉴了残差密集网络中提取多层特征的方式,采用多个残差密集块(RDB)来改进原特征提取网络,使图像的有效特征能够在特征提取过程中直接传递至深层并融合,改善了层与层之间的信息交流方式,减少了特征提取过程中的信息丢失问题。
残差密集块结构示意图如图4所示。每个残差密集块内包含密集连接和局部的残差连接,使得块内的每一个卷积层都可以直接访问所有的后续层,有效信息直接传递,同时不同于密集网络(DenseNet)中将每一个密集块的输出直接拼接,在RDB中利用1×1的卷积层自适应地融合不同层的特征,形成局部特征融合(LFF)。第a个残差密集块的表达式为:
图4 残差密集块结构图Fig.4 Structure diagram of residual dense block
其中,Fa0为残差密集块的初始输入,Fa1,Fa2,…,Fan为该残差块内不同层的特征,σ为ReLU激活函数,W则表示卷积层的权重,Fan,LF表示为1×1卷积处理后融合的局部特征。公式(1)表达了不同层特征密集连接的过程。公式(2)则将局部特征融合后与浅层特征进行残差连接,得到该残差密集块的最终特征。残差密集块与块之间的特征也遵循这样连接方式,上一个RDB的输出可以直接访问下一个RDB的各层,传递需要保留的信息,形成状态的连续传递。最终将多个残差密集块输出的结果用1×1的卷积层自适应融合,利用3×3的卷积层做进一步的特征提取,得到该尺度下的特征信息。
整个RDB-YOLOv4特征提取网络模型共分为5组CSP卷积层模块。以608×608图像大小为例。在原网络中,YOLOv4针对76×76、38×38、19×19三个分辨率进行多尺度预测。由于深层网络中包含较丰富的语义信息,提取到的特征更具有代表性,同时为了避免大量残差密集连接带来的计算复杂度,故本文只对38×38和19×19两个分辨率大小的卷积过程改进为残差密集块。原始图像以RGB三通道图像输入至RDB-YOLOv4网络模型中,利用3×3步长为2的卷积核对其进行卷积操作。将卷积后的特征图依次送入5个CSP模块中,其中对304×304、152×152、76×76图像大小进行卷积拼接操作的为原YOLOv4的CSP模块,每个CSP模块中残差块的数量分别为1、2、8,卷积层之间呈线性连接;38×38、19×19图像大小的特征图则进入改进后的CSP残差密集模块,其数量分别为8、4,残差密集块内的不同卷积层通过1×1卷积自适应的保存密集连接后的信息,以此来提取局部密集特征。再将融合后的局部密集特征与浅层特征进行残差连接,输出得到该残差密集块的最终特征信息。
浅层卷积特征感受野较小,缺乏足够的语义信息,但通常包含较多的位置信息,而深层特征虽然对位置信息不够敏感,但因其感受野较大,蕴含了丰富的语义信息。为了克服采用单一尺度特征预测带来的局限性,YOLOv4中采用SPP+PANet结构对深、浅层特征进行融合,使其融合深浅层后的语义信息特征和空间信息特征都得到表达。
本文基于YOLOv4算法模型,将提取到的低、中、高三个层次的特征信息采用PANet[18]的结构来进行多尺度特征融合:高层次的特征图通过卷积操作将512个通道数减少为3×(4+1+类别数),即18个;同理中、低层次的特征图也分别对其通道数减少至18个,相同通道数的高、中、低层次特征图融合后在此基础上进行回归,计算预测框与真实框的IOU(交并比)并通过Soft-NMS[19](软非极大抑制)删除低于阈值的预测框,实现对井下行人的预测。
本文在Keras(Tensorflow backend)框架下完成对RDB-YOLOv4网络模型训练和验证。基于64位的Windows操作系统,开发语言为Python3.6版本。硬件环境:CPU处理器为Intel®Core™i7-8565 CPU@3.4 GHz,内存8.00 GB,GPU处理器为GeForce RTX 1080Ti的独立显卡。
为了验证RDB-YOLOv4网络结构的可行性及对井下有遮挡行人检测方面性能的有效性,本文采用了两类数据集进行实验:(1)标准数据集VOC2007;(2)煤矿井下行人数据集。两种数据集的具体数量如表1所示。
表1 实验数据集Table 1 Experimental data set
标准数据集VOC2007:VOC2007数据集中图像具有较为复杂的背景,能够表示现实中的真实场景。VOC2007数据集包含20个类别,而本实验只针对行人目标进行检测,故通过数据清洗提取了该数据集中所有标注类别为Person类的标注图像作为数据集。
煤矿井下行人数据集:该数据集取自某煤矿井下监控视频,符合煤矿井下实际工作状况。受大型设备遮挡、拍摄角度局限等影响,井下员工在不同工作场景下均具有难以检测的问题,以此作为实验数据集更能凸显本文网络在检测精确度和检测效率上的优越性。
煤矿井下行人数据集采用YOLO_Mark标注工具进行标注。目前主流的训练方法是在Imagenet数据集[20]进行模型的预训练,然后再在PASCAL VOC或其他数据集上进行微调。由于预训练过程需要耗费大量的时间,本文直接加载RDB-YOLOv4模型在PASCAL VOC数据集和井下行人数据集上,并通过两阶段的训练方式进行训练。整个训练过程初始输入图像大小为608×608,第一阶段冻结模型前249层网络层,初始学习率为0.000 1,训练轮次(epoch)为80次,batch_size设置为4。第二阶段训练所有的网络层,初始学习率为0.000 01,轮次设置为60次,batch_size保持不变。两阶段训练过程均采用学习率衰减函数和提前终止机制(early stopping),学习率衰减为余弦退火衰减法下降方式,并辅以提前终止机制(early stopping)防止训练过拟合,使损失值始终保持在全局最小值区域。
为了验证改进模型检测效果的有效性和可行性,本文在VOC行人数据集中进行了Repulsion Loss[14]算法、CenterNet-Keypoint[21]算法、CenterNet-Triplets[22]算法、CenterPoint-3D[23]算法和YOLOv4算法实验,并参考了其他文献[24]在VOC行人数据集上的检测结果,将RDBYOLOv4与当前优异的目标检测算法进行测试比较,结果表明本文算法与当前主流目标检测算法相比,其平均精度(AP)有所提高,具体结果如表2所示。
表2 PASCAL VOC行人数据集实验结果Table 2 Experimental results of PASCAL VOC 2007 pedestrian data set
本文算法的平均精确度(AP)普遍高于对比的单阶段和双阶段算法。Faster R-CNN平均精确度为79.1%,SSD512是基于高斯金字塔结构的单阶段目标检测算法,其平均精确度为80.2%,两种算法平均精确度均低于本文算法。Repulsion Loss是基于优化损失函数的方式解决行人间自遮挡问题的检测算法,由于VOC行人数据集中也存在大量行人间遮挡现象,所以本文算法平均精确度相较于Repulsion Loss提升不明显,Repulsion Loss平均精确度为93.97%,本文的算法较其提高0.3个百分点。CenterNet-Keypoint、CenterNet-Triplets、YOLOv4都是基于回归思想的最新检测算法,RDB-YOLOv4整体的平均精度对比CenterNet-Keypoint提高3.21个百分点,比CenterNet-Triplets提高了1.23个百分点,比YOLOv4算法提高了约2.74个百分点,同时虽然增长了对单幅图像的处理速度,但依然满足实时监测的要求。CenterPoint-3D是延续CenterNet-Keypoint思想的3D目标检测算法,检测效果依赖于深度信息和旋转角度的有效学习,本文的算法较其提高了2.14个百分点。
图5为RDB-YOLOv4和YOLOv4在VOC行人数据集中的实验效果对比图。第一组对比实验中,与YOLOv4预测效果相比,RDB-YOLOv4模型能够检测出更多目标数量。第二组对比实验中,由于汽车对检测行人造成了严重遮挡,YOLOv4在检测过程中只检测出了1位行人,出现了漏检情况,而RDB-YOLOv4检测出所有目标行人,表明改进后的模型能有效改善因遮挡物而导致的行人漏检问题。
图5 两种模型检测效果对比图Fig.5 Comparison in detection effects of two models
使用煤矿井下行人数据集在相同实验环境下,重新对各类算法进行训练实验,并通过相同的测试集对其模型进行评估。本文提出的RDB-YOLOv4模型在煤矿井下行人数据集上检测效果P-R曲线如图6所示,测试集平均精确度AP50为98.56%。
图6 RDB-YOLOv4 P-R曲线图Fig.6 P-R curve of RDB-YOLOv4
各算法的实验结果如表3所示,为保证预测框的精准性,井下行人数据集采用不同IOU阈值的平均精度AP50、AP75作为其评价指标,其中AP50为常用指标,而在工程应用中通常要求IOU达到0.75,即AP75为严格测试指标。
表3 井下行人数据集平均精确度(AP)Table 3 Mean accuracy of underground pedestrian data set(AP)
由表3实验结果可知,RDB-YOLOv4模型在平均精度(AP)这一评价指标上相较于其他对比算法有所提升。在IOU阈值为0.75时,RDB-YOLOv4平均精度为90.36%,分别高于目标检测算法CenterNet-Keypoint、CenterNet-Triplets和YOLOv4平均精度4.97个百分点、2.44个百分点、1.63个百分点,高于处理行人自遮挡的检测算法Repulsion Loss平均精度0.62个百分点,高于CenterPoint-3D平均精度4.86个百分点;当IOU阈值为0.5时,RDB-YOLOv4算法平均精度为98.56%,较CenterNet-Keypoint、CenterNet-Triplets、YOLOv4提高了4.73个百分点、3.16个百分点、3.5个百分点,较Repulsion Loss提高了2.4个百分点,较CenterPoint-3D提高了4.54个百分点。实验表明本文模型综合残差密集网络能够提取到更丰富的行人基本结构特征,对井下被大型设备遮挡的行人具有较好的检测效果。同时,由于融合了残差密集块的YOLOv4网络增加了特征提取的复杂程度和计算代价,检测速度较CenterNet-Keypoint、CenterNet-Triplets和YOLOv4算法减慢了约0.03~0.04 s/frame,平均检测速度为0.12 s/frame。但对比Repulsion Loss算法,由于主干网络的差异,RDB-YOLOv4检测速度上仍远快于Repulsion Loss。CenterPoint-3D因加入了3DCNN模块,同时要对旋转角度和深度信息进行学习,RDB-YOLOv4算法对比其检测速度仍具有领先性。综合而言,在略微牺牲检测速度的情况下,RDB-YOLOv4模型对比当前主流目标检测模型在平均检测精度上具有优势,从而验证了本文模型在提升检测精度的同时没有造成过多的时间成本代价,具备对井下有遮挡行人检测的有效性和应用价值。
对比在公开数据集进行的实验,RDB-YOLOv4在煤矿井下行人数据集中测试的平均精度更高,其主要原因为两点:(1)井下行人数据集为特定工作场景,多数训练集和测试集均取自同一工作地点,其图像背景更为单一。在浅层特征提取时,相似的纹理和图案信息减少了检测过程中误识别的概率。(2)井下行人数据集由于其场景的特殊性,出现人与人之间互相遮挡而造成的误检和漏检情况要远少于VOC2007数据集。
为了更直观地展示本文算法的实验效果,图7挑选了4组改进前后的YOLOv4算法在井下行人数据集中的实验结果。从第一组对比实验可以看出,与YOLOv4算法相比,本文算法在行人被设施严重遮挡后依然可以检测出图中行人;在第二组对比实验中存在目标与目标之间遮挡、目标与非目标之间遮挡的干扰情况,YOLOv4算法虽检测出被设备部分遮挡的行人,却漏检了被他所遮挡住的行人,本文算法提取到相互遮挡的两人之间不同的特征,完整检测出图中的两个人;第三组和第四组对比实验均为不同场景下多检测目标,YOLOv4算法在被遮挡人只露出部分特征的情况下均出现了漏检情况,而RDB-YOLOv4算法能检测出的目标数量更完整,这表明本算法在实际应用中具有可行性,达到了预期效果。
图7改进的YOLOv4与YOLOv4检测效果对比Fig.7 Comparison of improved YOLOv4 and YOLOv4 detection results
以YOLOv4算法为基础,RDB-YOLOv4算法利用残差网络和密集网络在特征提取上的特点,浅层与深层特征的直接结合以形成连续的记忆机制(CM),以此来减少特征提取中由于网络深度增加而导致的逐层信息丢失的问题。实验结果表明,RDB-YOLOv4算法在VOC2007数据集和井下行人数据集中的平均检测精度(AP)均有提升且较为稳定。该算法能有效减少井下被遮挡行人在目标检测中易出现漏检、误检的问题,在实际应用中具有良好的检测效果和使用价值。但本文算法针对目标之间相互遮挡的检测不够精准,同时在井下光照环境复杂情况下,检测效果也有待提高。后续研究将着眼于这些不足,进一步进行算法优化,提高模型的鲁棒性。