基于级联卷积神经网络的高效目标检测方法
2021-03-09宋云博陈冬艳付先平
宋云博,陈冬艳,郝 赟,付先平
大连海事大学 信息科学技术学院,辽宁 大连116026
深度学习作为机器学习的一个重要分支,在自然语言处理、语音识别、计算机视觉等方面的应用越来越广,这给人们的工作和生活带来极大的便捷。目标检测作为计算视觉的一个研究领域,在人脸识别、无人驾驶等领域有着非常重要的作用。传统的目标检测算法依赖人工提取特征并受环境和背景的影响,使得特征提取网络的位置信息模糊,获取的特征可移植性差导致目标检测的准确率和精度过低。目前的目标检测算法主要分为两大类:一种是基于回归的目标检测算法,该算法直接产生物体分类的概率和边界框坐标完成对图片中目标的检测任务;另一种是基于候选区域的目标检测算法,该算法将检测分为两步,首先生成候选区域,然后对候选区域进行分类和位置的回归,以达到较高精度的检测。这两种算法都是根据交并比(IOU)的大小判断正负样本,但一般设置比较低的IOU阈值会得到过多的噪声样本,使训练的检测器识别能力偏低,从而影响整个网络的检测精度;设置高的IOU阈值又会过滤掉过多中等质量的样本,只保留少量的高质量样本,从而产生过拟合现象;并且,推荐区域IOU阈值和检测器使用的IOU阈值相差较大会造成质量不匹配的问题。在此背景下提出高精度的目标检测算法进而提升无人驾驶等设备的可靠性迫在眉睫。因此,本文提出了一种基于平行级联网络的目标检测算法,该算法利用平行级联架构的网络解决了检测器和推荐区域IOU阈值不同导致质量失配的问题,以及过拟合的问题。
1 目标检测算法描述
目标检测[1-2]旨在给定图片中精确地找到物体所在位置,并识别出物体的类别。目标检测要解决的就是物体在哪里、是什么的问题,然而物体的尺寸变化、摆放角度、姿态不一及出现在图片中的位置不同,使得高精度的目标检测极具挑战性。
1.1 传统的目标检测算法
传统的目标检测算法首先采用不同尺寸的滑动窗口在给定图像的不同位置上选取候选区域,然后进行特征提取,最后把这些从图片中提取到的特征送到分类器中进行识别与分类。特征提取是目标检测的重点,在这个阶段,研究人员致力于研究更好的特征提取算法[3-4]。传统的特征提取方法可分为基于局部图像、特征点检测和多特征融合三种方法。基于局部区域图像的方法主要是针对局部图像进行特征提取,在目标物被遮挡的实际问题中具有一定的优势;基于特征点检测的方法主要是由算法设计人员定义符合特征定义的像素点,然后根据这些特征描述目标,它在检测速度上具有明显的优势。基于多特征融合的方法主要是融合多种不同的特征,起到优势互补的作用;最后把这些从图片中提取到的特征送到分类器中进行识别与分类。针对不同的目标需要设计不同的特征提取和分类方法[5],这些需要人工获取特征信息方法的可移植性差,且不同的目标需要不同的特征提取,其中特征的提取和分类训练分离容易造成特征的遗漏,进而影响检测的结果,另外滑动窗口的遍历搜索把图片分成不同大小的块,计算复杂度高且冗余信息多,实时运行速度慢。
1.2 基于候选区域的目标检测算法
经典的卷积神经网络由若干卷积层和池化层交替构成,对输入的图片进行特征提取,并通过全连接层构成的分类器进行分类[6]。基于卷积神经网络(CNN)的深度学习算法在图像处理领域的应用尤为重要。与传统的目标检测方法相比,基于深层卷积神经网络的目标检测模型在效率与精度方面有较好的提升[7-8]。深度学习的目标检测算法主要分为两大类:一种是基于回归的目标检测方法,例如YOLO、SSD等[9-11];另一种是基于候选区域的目标检测方法,例如Faster-RCNN[12]、Cascade R-CNN[13]、Mask-RCNN[14]等。本文采用基于候选区域的目标检测算法。
Faster R-CNN是将R-CNN[15]和Fast R-CNN等目标检测算法经过改进后提出的新的目标检测算法。Faster R-CNN由两个模块组成:一个模块是推荐区域的深度全卷积网络;另一个模块是使用推荐区域的Fast R-CNN检测器。整个系统是一个单个的、统一的目标检测网络。其中,Faster R-CNN中提出的区域推荐网络[16](RPN)以任意大小的图像作为输入,输出一组矩形的目标推荐候选框,每个候选框都有一个目标得分,然后利用全卷积网络[17]对这个过程进行建模。由于SPP-Net[18]和Fast R-CNN等研究已经减少了这些检测网络的运行时间,在Faster R-CNN中为了缩短区域推荐的计算时间,引入了一个区域提议网络(RPN)。该网络与检测网络共享全图像的卷积特征,从而使近乎零时间成本的区域推荐成为可能。
Cascade R-CNN网络的核心是利用不断提高的阈值,使得在保证样本数不减少的情况下训练出高质量的检测器,通过级联检测网络来达到提高检测的精确度,该网络通过产生更高精度的回归框。从而提高生成正样本的IOU阈值,使得检测器接收到的推荐候选框精度就更高,自然能产生高精度的回归框。但是这样就会产生两个问题:其一是过拟合问题,如果提高IOU阈值,满足这个阈值条件的推荐候选区框必然比之前减小,那么就会导致过拟合。另一个是更严重的质量不匹配问题。由于R-CNN结构本身就存在质量不匹配问题,IOU阈值的提高,会使问题变得更加严峻。
Mask R-CNN本质是在Faster R-CNN的基础上加了一个预测每个二值掩膜Mask分支,相当于在之前Faster R-CNN的基础上,Faster R-CNN将目标框出,Mask R-CNN在目标框内对目标做一个实例分割。Mask R-CNN采用跟Faster R-CNN相同的两级结构,首先是找出RPN,然后对RPN找到的每个感兴趣区域进行分类和定位,Mask R-CNN还会为每一个感兴趣区域输出一个二进制掩模。这与最近的其他网络相反,其分类取决于掩模预测[19-21]。该方法遵循于Fast R-CNN边框分类和回归的并行,这在很大程度上简化了R-CNN的多级流水线。Mask R-CNN提出了一个区域特征聚集方式,很好地解决了感兴趣区域的池化操作中造成区域不匹配的问题。在网络结构上,对于上层网络,Mask R-CNN基本遵循了以前论文中提出的架构,在此基础上添加了一个全卷积的掩模预测分支,因此可以使上层网络包含更少的卷积核使网络变得更加高效。
2 平行级联检测网络
目前,基于区域推荐的目标检测算法首先需要生成可能包含目标的推荐区域,推荐区域的质量参差不齐,通常以某个设定的IOU阈值来筛选正样本和负样本。IOU是衡量目标与被检测物体重叠程度的指标,可以通过以下公式进行目标属性类别的判断:
其中,cy表示类别,x表示推荐区域的坐标取值,gt表示标注的真实边框Ground Truth,u表示设定的IOU阈值。检测器根据计算得到的IOU是否高于u值来判定正样本和负样本,设定的IOU阈值越高检测器得到的样本质量越高。目标检测算法通常设定的阈值是0.5,同时也意味着检测器会收到较多的低质量的正样本(包含较多背景),最后的检测结果就会包含较多误检,使用0.7的阈值可以减少误检,但是高的阈值会筛选出较少的正样本,因此容易造成过拟合。
图1 、图2表明单个检测器只对一个质量等级的推荐区域是最优的,对某个阈值训练的检测网络产生的边界框回归器,在对应阈值附近的样本效果最好。对于低质量的样本,使用阈值较低的检测器比阈值高的检测器效果好。
2.1 平行级联网络的结构
由于高阈值会造成过拟合,只有推荐区域自身的阈值和检测器训练用的阈值较为接近时,检测器的性能表现得最好,故本文的平行级联网络结构如图3所示,图中I是输入的图片,conv表示用来提取特征的主干卷积神经网络,pool是进行区域特征提取的池化操作,H是网络头,B是边界回归框,C是分类。
图1 不同质量的检测器对应的最佳样本质量
图2 随着检测器阈值的升高单检测器性能下降
图3 平行级联网络结构图
平行级联网络由四层级联的检测器组成,其目的是在确保样本数不减少的情况下,通过搭建级联结构训练出高质量的检测器。由图2可知,使用一个指定的IOU阈值训练得到的检测模型对输入IOU阈值跨度较大的样本检测效果较差。由图1可知,图中当u的取值分别为0.5、0.6、0.7时,三条曲线均在对角线之上,说明输入检测器的IOU阈值经过网络输出后都有一定的提升,并且三条曲线都在自己阈值周围的优化效果较好,所以可以通过设计逐级递增的IOU阈值,使上一级检测器的输出作为后一级的输入,来提升网络输出的效果。因此本文采用平行级联检测网络,逐级进行IOU阈值提升,设置第5级检测器使得样本数量减少导致过拟合现象的发生,进而使检测精度降低,所以文中平行级联检测网络采用四级网络结构。第一级对样本进行初筛,去掉质量过低的样本,设定IOU阈值为0.5;第二级设定两个平行的检测器,阈值分别取0.58和0.60,两个平行的检测器同时对推荐候选框进行边框回归,第二级的结果取两个检测器的均值;第三级选取阈值为0.64、0.66和0.68三个检测器进行平行组合,第三级输出的结果取它的三个检测器的均值;第四级则选取4个不同的阈值,分别为0.69、0.71、0.73和0.75,第四级的输出取均值即为模型的输出。值得注意的是平行级联检测网络四级的各个阈值,是根据图1的检测器输出质量在输入的IOU阈值附近提升效果好的基础上,而且需要采用逐级递增的IOU阈值来匹配逐级提升的样本质量,并结合图4的样本质量的初始分布和经过每一级后的样本质量提升后的分布设定相适配的IOU阈值,最后通过实验的参数调优确定的每级的最佳阈值。相比于其他两种结构,Iterative Bbox at inference结构是级联的分类器和回归器,但它的这些分类器和回归器还是对初始的候选区域进行训练,并且从图2可以看出,高的IOU阈值的样本经过低质量的检测器后反而会降低检测精度。Intergral Loss结构在池化后根据IOU阈值将样本分成不同的集合,不同IOU阈值的样本进入不同的分类器,但回归框只有一个,这种结构虽然提高了分类的精度,但使得高IOU阈值的样本较少,导致高阈值的检测器训练容易发生过拟合现象,并且一个回归框也无法对所有输入进行良好的回归。平行级联的结构利用多个回归器和分类器级联,将上一级回归器的输出输入到下一级,图1可以看出,由于回归器对输入的样本的IOU阈值均有一定程度的提升,这样每一级提升后的样本输入到下一级,使得不同级别的分类器和回归器在越来越高的样本质量上进行训练,并通过重采样保证足够多的高质量样本防止过拟合问题的发生,进而提升检测精度。
2.2 平行级联网络的损失函数
图4 级联网络和平行级联网络各级的样本质量分布对比
平行级联网络由多级级联而成,每一级由不同的一个或多个单独的检测器构成,并将它们的结果融合作为下一级的输入,最后一级多个检测器的结果融合后,得到最终结果。满足上述网络结构要求的损失函数是由回归损失函数和分类损失函数组合而成的。回归损失指边界框的回归损失,边界框包括4个坐标及其包围的区域,用表示,bx、by为中心点坐标,bw、bh为边界框的宽和高,通过回归函数F(b,g)使得边界框与真实边界框的IOU尽可能大,其中g=代表真正的回归框为中心点坐标,gw、gh为边界框的宽和高,最小化边界框损失函数如式(2)所示:
其中:
检测网络分类部分损失函数定义如公式(5)所示:其中,函数Lcls是经典的交叉熵损失函数。其中T代表第几层级,每层包括一个或多个分类器和回归器。边界框通过加权平均计算类别的标签值。
故第T级最终的损失函数表示为:
其中,hT代表第T级的分类器输出的分类结果,FT代表第T级回归器输出的回归结果的均值,g代表真实边框。r是平衡因子,平衡分类损失和边界框回归损失的归一化权重。
3 实验结果与分析
本文的实验配置为带有4块NVIDIA GTX 1080Ti显卡的服务器,内存大小为64 GB。实验的数据集为Microsoft COCO 2017(MS-COCO 2017)[22],它由训练集、验证集、测试集三部分组成。网络模型的训练集数据大约120 000张图片,用来评估模型的验证集包括5 000张图片,模型的测试集图片约20 000张。
3.1 样本质量分布
平行级联网络由四层级联的检测器组成,在确保样本数不减少的情况下,通过搭建级联结构训练出高质量的检测器,在每一级上,对平行级联检测网络与级联检测网络的样本质量进行对比,然后选出各级相对较优的IOU值。其质量分布对比如图4所示。第一级对样本进行初筛,去掉质量过低的样本,设定IOU阈值为0.5;第二级设定两个平行的检测器,阈值分别取0.58和0.60,两个平行的检测器同时对推荐候选框进行边框回归,第二级的结果取两个检测器的均值;第三级选取阈值为0.64、0.66和0.68三个检测器进行平行组合,第三级输出的结果取它的三个检测器的均值;第四级则选取4个不同的阈值,分别为0.69、0.71、0.73和0.75,第四级的输出取均值即为模型的输出。通过此平行级联网络样本的质量逐渐升高,检测器整体的检测精度也得到了提升。
3.2 平行级联检测网络提升效果分析
平行级联检测网络由多级检测组成,通过分析网络每级的检测结果来分析设计的合理性。模型的评估指标AP是以0.05为间隔从0.50至0.95这10个IOU阈值平均准确率的均值。其中AP50、AP70和AP90分别是IOU阈值为0.50、0.70和0.90时的平均准确率均值,各级的检测结果如表1、表2所示。
表1 级联检测网络和平行级联检测网络每一级检测结果%
表2 级联检测网络和平行级联检测网络多级检测结果%
由表1可知,平行级联检测网络的单检测器在AP90指标上略低于级联检测网络,其余大多数AP要高于级联检测网络,而且级联检测网络在第四级检测结果中AP指标下降的原因是高质量样本过多、样本多样性低,导致出现过拟合现象。平行级联检测网络设置4级检测器,每级检测器设置递增的IOU阈值,样本经过多级检测器的重采样,质量逐步得到提升,从而提高了整体样本的质量。由图4可以看出,样本的质量分布逐渐向高质量递增,在提高检测器精度的基础下,同时使得级联检测器的IOU阈值增加,与逐级提高的样本质量相匹配,解决质量不匹配的问题。所以平行级联检测网络可以在稳定提升样本质量的同时保持样本的多样性,降低了过拟合风险,从而使整体检测精度得到提升。
由表2可知,平行级联检测网络和级联检测网络的前两级的质量检测效果指标都有提升,平行级联检测网络的第一级与级联检测网络的第一级结果相近,这是因为两种网络的检测器均使用了0.5的IOU阈值进行初级样本的筛选,后面随着检测器的多级连接,平行级联检测网络的评价指标AP50和AP70都高于级联检测网络,评价指标AP90低于级联检测网络,说明级联检测网络的高质量样本数量较多,同时从两个网络的总体的评价指标AP可以看出,级联检测网络在1~4级时AP有所下降,说明高质量样本占大多数,产生了过拟合现象。而平行级联检测网络在加入第五级时出现了AP下降的情况,所以本文采用了四级的平行级联检测网络,它的总体评价指标AP均要高于其他级联检测网络,并且随着级数的增加而上升,说明平行级联检测网络减少了过拟合现象,提高了检测精度。
表4 平行级联检测网络与区域推荐的检测网络的对比%
3.3 平行级联检测网络和主流目标检测网络效果对比
本文的平行级联检测网络使用Resnet101+FPN作为基础网络,并与多个目前主流的检测网络进行比较,其余网络均用IOU阈值为0.5的检测器进行训练,表3、表4中AP75为IOU阈值0.75时的平均准确率。APS、APM和APL分别是小、中和大三种不同尺寸目标的平均准确率均值。
表3 平行级联检测网络与回归的检测网络的对比%
从表3可以看出,基于回归的目标检测网络YOLOv3、SSD513、RetinaNet在检测精度上,均要低于平行级联检测网络。其中RetinaNet在不同尺寸目标准确率均值上,平行级联检测网络提高了5.0个百分点。平行级联监测网络在0.50到0.95阈值区间的平均准确率提高更加显著,为5.3个百分点,这也是基于推荐区域的目标检测算法的优势。
从表4可以得出,对于不同尺寸物体的检测,平行级联网络相比于Cascade R-CNN提高了1.6个百分点,总体精度均高于Faster R-CNN+++、Faster R-CNN+FPN、Faster R-CNN by G-RMI、Deformable R-FCN、Mask R-CNN和Cascade R-CNN网络1.5个百分点以上。与目前主流的基于候选区域的目标检测网络和基于回归的目标监测网络网络相比,平行级联检测网络的AP可以提升1.5个百分点以上。
为了进一步验证平行级联网络的性能,将平行级联检测网络和多个常用的目标检测网络进行了速度上的比较,实验中的训练时间为一张图片在一块GTX1080Ti GPU上的训练时间消耗,测试时间为每张图片的测试时间消耗。由表5可以看出平行级联检测网络的速度比Faster R-CNN、R-FCN[23]、Cascade R-CNN要慢,但比FPN+要快。平行级联网络模型的参数比其他网络均要高,主要原因是相比于其他网络结构,平行级联网络采用了4级结构级数较多,而模型参数的大小是随着级联数的增加而增加的;但速度上的影响并不是很大,平行级联网络的每张图片的训练时间比Cascade R-CNN慢0.03 s,在测试时间上仅比Cascade R-CNN慢0.008 s,相比于其他网络也不高,主要因素是对于目前的检测网络来说,检测头的计算时间成本要比特征提取的时间少很多,所以多级检测器网络在运算复杂度上相比于其他网络并不高。
表5 平行级联检测网络与其他检测网络的速度对比
4 结束语
本文针对单一阈值检测器在提高样本质量时出现的过拟合问题,以及推荐区域与检测器使用相差较多的IOU阈值导致质量失配的问题,提出了一种平行级联检测网络用于高精度的目标检测。通过设置四级不同阈值的检测器,每级由一个或多个单检测器组成,结果取每一级内多个检测器的均值,低级过滤掉质量低的样本,高级逐步重采样用高质量样本训练检测器,使得平行级联检测网络可以在提升样本质量的同时保持样本的多样性,进而防止过拟合,达到提升检测精度的目的。