李雪萌,杨大伟,毛 琳
(大连民族大学 机电工程学院,辽宁 大连 116605)
目标检测算法因卷积特征表达能力不足,而致使检测偏离真实值,常表现为对小目标和同类多目标检测失效。基于深度学习的目标检测算法致力于不断提高检测精度,按两阶段和单阶段目标检测算法进行分类。两阶段检测算法的代表是基于区域生成的丰富特征层次结构网络(RCNN[1])系列算法,RCNN检测算法通过对输入的图片生成候选区域,使用基于深度卷积神经网络的图像分类(AlexNet[2])主干网络进行特征提取,并训练支持向量机(Support Vector Machine,SVM)对特征进行区域分类,取得比传统检测方法更好的结果。但其训练步骤繁琐,重复计算多。两阶段算法较单阶段算法拥有更高的检测精度,但检测效率较低。单阶段检测算法包含单次取样计算(You only look once,YOLO[3])、单次多尺度检测器(Single Shot MultiBox Detector,SSD[4])、分组角点检测网络(CornerNet)等。CornerNet具有可以与两阶段检测器相媲美的检测精度,该算法将对目标的检测转换为对目标关键点的检测,使用沙漏特征提取网络(Hourglass[5])作为骨干网络,通过目标左上角点与右下角点确定边界框位置,省略生成锚框的步骤。
CornerNet检测特征角点时,常常对目标边界定位不准确,当目标尺寸过小或同类目标距离过近时,容易出现漏检或错检现象。针对误捡漏检等问题,提出基于多尺度特征融合的小目标行人检测[6],结合反卷积与特征融合思想,实现深层特征与浅层特征结合使用,在一定程度上提高检测精度,但网络结构较为复杂,同时计算量增加。文献[7]为解决复杂背景下全景视频中运动小目标检测精度低的问题,提出了一种基于复杂背景下全景视频运动小目标检测算法,通过分离前景背景信息,提取有效的前景信息并训练前景特征图,实现小目标的精准检测,但算法运算时间长,无法实现目标实时检测。
本文提出一种边缘特征增强的CornerNet目标检测算法(Octconv Egle feature enhancement Cornernet,OEC),通过增强图像边缘特征实现边界框的精确定位。该算法加入OEC边缘特征增强模块获取目标的高低频分量信息,经融合两种不同分量信息增强边缘特征表达能力,改善CornerNet角点检测漏检、精度下降的情况,有效提升对小目标的检测,对空间距离较小的同类目标区分能力显著提升,进一步提高检测精度。
CornerNet算法的核心思想,是通过一个沙漏主干神经网络分别对目标的左上角和右下角进行卷积池化处理,获取目标边框角点,利用热图(Heatmap)估计目标所在的真实位置。预测边框角点时,在沙漏网络提取特征细节信息的过程中,一旦信息缺失或不完整,将直接影响热图对目标位置的判断,导致目标范围定位不准确。
OEC目标检测算法运用图像频率域高低频信息融合的思想,通过强调特征中高频信息分量增强边缘特征信息,有利于热图对角点位置的检测,不仅解决低频分量冗余问题,更可提高识别性能,能够对目标进行有效区分和定位,改善对空间距离较小的同类目标以及小目标检测精度较低的问题。OEC目标检测算法结构框架如图1。
图1 OEC目标检测算法结构
OEC检测算法由串联型OEC边缘特征增强模块实现,目的为从沙漏网络中分离出高频、低频不同的特征分量信息。在CornetNet网络中,特征经沙漏网络输出后直接进入角点处理层,即由A到A′点直接相连,在角点处理层中直接计算热图,确定目标位置。由于热图计算对目标边缘信息极为敏感,OEC模块在沙漏网络后,即AA′之间插入OEC边缘特征增强模块,通过OEC模块对特征进行边缘增强处理,分解为不同频率,融合输出适当的高频特征信息,为热图计算目标位置提供良好的预处理。
(1)特征通过沙漏网络进入OEC模块。经过1×1×128的卷积Conv进行降维变换,调整特征图尺度。
(2)引入八度卷积(Octave Convolution,OctConv[8])过滤特征信息,对输入频率张量中的低频和高频分量进行处理,输出融合信息。
(3)输出的高频信息经过1×1×128的反卷积DConv还原尺度,在角点处理层中生成热图,计算角点,得到目标的边框信息。
OEC模块结构如图2。
图2 OEC边缘特征增强模块结构
在卷积神经网络中,通过对特征图进行频率分离,可以充分提取图像的相关特征信息。在边缘特征增强模块中,引入OctConv算法对输入特征中的低频和高频分量进行分离-融合处理,通过融合部分低频信息,输出更多的高频信息,增强目标边缘特征。
当γ=0时,仅包含高频分量,没有低频分量信息,此时OctConv退化为普通卷积;当γ=1时,只输出低频信息而没有高频信息。
输出的融合分量设为Y,则Y的构建过程为
Y=[γYL+(1-γ)YH]]·D;
(1)
YL=(XL⊗M)+P(XH⊗M) ;
(2)
YH=(XH⊗M)+U(XL⊗M) 。
(3)
式中:D∈(0,1)为幅值系数;⊗为卷积计算;P为池化操作;U为上采样操作。通过调节频率分配系数γ控制融合分量的比率,最终输出高低频融合信息Y。
高低频融合张量的计算过程为
(4)
OEC模块通过融合高低频信息,有效替代普通卷积,稳定提高识别性能。
边缘特征的增强有利于热图计算,从而更精确地确定目标位置,通过计算OEC 高频输出后在热图中的类别得分,设计损失函数确定目标类别和检测的准确性。计算得到高频增强的热图得分:
(5)
由于高频处理能够突出特征的边缘信息,利于特征边缘信息的增强显示,通过OEC模块增强高频信息,融合低频信息,在实现高低频分量特征有效通信的基础上输出更多的高频分量。得到损失函数:
(6)
式中:pc为热图中类别c的得分;n是图像中目标的数量;α和β是控制角点的超参数;Sc为高频输出,(1-Sc)项增强了对真实值的约束。输入到热图的特征经OEC模块增强后的可视化对比如图3。
图3 边缘特征可视化对比
图3中(1)行为原始图像;(2)行为CornerNet原始算法中经Conv卷积层的可视化表达;(3)行为OEC算法中经OEC模块的可视化表达;(4)行为原始卷积细节显示效果;(5)行为经OEC算法特征增强后细节显示效果。OEC检测算法增强目标的边缘特征信息,在一定程度上提高了边缘特征的表达能力,利于目标的检测。
本算法运行环境硬件配置为NVIDIA 1080Ti显卡,软件系统为Ubuntu16.04,使用Pytorch0.4.0深度学习框架,训练使用语境中通用目标(Common Objects in Context,COCO[9])2014数据集,共有123 287张图片。将频率分配系数设置为0,幅值系数D设为1,不改变特征图输入与输出的大小,输出融合信息,增强高频特征。COCO 2014数据集提供的图片包含80个类别,经过与CornerNet仿真分析,设置批处理大小为2,在同样迭代80 000次的情况下,学习率为0.000 25,以IOU=0.5为标准进行对比分析。仿真结果见表1。
表1 算法对比结果
测试结果显示OEC检测算法mAP为0.302高于CornerNet检测算法(0.223)。在COCO数据集80个检测类别中,OEC检测算法的平均准确率均优于CornerNet,列举20个类别对比见表3。
表2 在COCO2014数据集上的仿真结果
OEC检测算法对人、交通工具、动物等类别检测效果的提高尤其明显,应用于无人驾驶系统、智能机器人等领域时,可有效提高检测精度,相比CornerNet存在较大优势。
选取OEC与CornerNet四组场景的测试结果如图4。
第一组对比图中由于目标过小,且目标与背景区分度不高,CornerNet不能检测远处场景中小目标(右侧的人),而OEC能够准确检测并分类;第二组对比图中,同一类目标过多且重叠度高,OEC相比CornerNet能够检测出更多的小目标;第三组对比图存在多个同一类目标且位置相近,CornerNet出现漏检的现象,OEC准确检测到CornerNet未检测到的目标(右数第四个人);第四组对比图中,CornerNet由于关键点定位错误,对于空间距离相近的同类目标不能够正确区分,OEC能够正确区分同一目标的不同位置,对目标进行精确框定。
OEC目标检测算法在一定程度上提高检测精度的同时,对于场景中存在多个目标以及目标与背景区分度过低情况下的检测效果仍待提升,如图5。
a)CornerNet测试结果 b)OEC测试结果
a)目标密集场景 b)目标区分度低场景
图5a中由于目标分布较密集,OEC算法不能检测出场景中的所有目标;图5b中,目标与背景区分度过低,目标(右侧的小鸟)没有被检测到。
对比CornerNet算法检测结果,OEC算法的检测精度提升幅度达0.9%,检测效果提升明显。虽然增加了卷积操作但训练时间并没有较大差距,同时计算量减少。OEC检测算法通过增强特征细节,能够检测到更多的特征信息,对小目标和空间距离较小的同类目标检测效果较好,并适用于复杂场景,检测精度有明显的优势。
本文针对CornerNet检测算法对角点检测容易出现漏检和检测效果不佳的情况,加入边缘特征增强模块分离并输出更多的高频信息,提出OEC目标边缘特征增强检测算法,通过增强边缘特征信息,进一步提高检测精度。与CornerNet算法相比,OEC算法进一步改善了目标的框定效果,并得到较优结果,提高对尺寸较小目标的检测精度,对空间距离较小的同类目标区分能力提升,适用于无人驾驶及移动机器人等场景。后续工作中,希望进一步提高对复杂场景下存在多个目标的检测精度,提升目标与背景的区分能力。