基于Faster-RCNN的快速目标检测算法*

2020-09-03 10:44曹之君
航天控制 2020年4期
关键词:残差卷积区域

曹之君 张 良

中国民航大学电子信息与自动化学院,天津 300300

0 引言

目标检测在计算机视觉领域是一个重要的研究方向,对于提取和挖掘感兴趣的区域非常重要。目标检测是计算机视觉中一个核心问题[1],在行人跟踪、车牌识别、无人驾驶等领域都具备重要的研究价值。传统算法大致可分为目标实例检测与传统目标类别检测2类。传统算法提取的特征基本都是低层次、人工选定的简单特征,针对特定对象更有针对性,但是不能很好地表达大量、多类目标。且需要一定的先验知识来设置相应的手工特征,具有鲁棒性不高,不能广泛应用的缺点。近年来,随着深度学习对图像分类准确度的大幅提高,基于深度学习的目标检测算法逐渐成为主流。

传统的目标检测算法,多是基于滑动窗口的经典框架或是根据特征点进行匹配。AlexNet在2012年度ImageNet大规模视觉识别挑战赛中一举夺冠[2],并且效果远超传统算法,将大众的视野带到卷积神经网络。基于深度学习的目标检测方法才开始在计算机视觉领域崭露头角。基于深度学习的目标检测大致分为2个流派:1)基于回归的检测算法;2)基于分类的检测算法。前者的代表是YOLO系算法。文献[3]提出了YOLO模型,YOLO将图片划分成S×S的网格,各网格负责检测中心落在该网格的目标。YOLO采取以单元格为中心的多尺度区域取代区域目标建议网络,舍弃了一些精确度以换取检测速度的提升,该方法直接在原始图像上训练,速度较快,精度略差。后者的代表算法是Faster-RCNN。文献[4]提出区域卷积神经网络模型,该模型利用选择性搜索的方法选取待检测图像中的若干候选区,并且使用深度卷积神经网络进行高层特征提取。再使用多个SVM对特征进行分类,从而完成目标检测任务。文献[5]为了提高RCNN模型的检测准确度和检测速度,提出了快速RCNN (Faster-RCNN)模型。核心思想是先使用RPN网络筛选出感兴趣区域,再在此基础上训练。该方法的特点是精度高,速度略慢。所以在精度要求较高的场合,应该采用基于分类思想的Faster-RCNN系列算法。但是Faster-RCNN速度较慢,不易应用于实时性要求高的场合[6]。本文通过两个角度改进Faster-RCNN模型:1)提高模型的检测速度;2)提高模型的检测精度。

鉴于上述问题,本文针对现有 Faster-RCNN算法进行改进,在RPN网络中引入反馈机制,在训练过程中调整RPN网络中选取候选区域的数量,减少所需要的开销和生成区域所需要的时间,使速率提高了18%。并且重构了特征提取网络,借鉴了残差网络shortcut[7]的方式搭建了底层特征网络,使其卷积网络提高到了58层,精度提高了3%。在此基础上,为了识别特定的飞机目标,在模型上对应做了一些优化。

1 Faster-RCNN算法

Faster-RCNN是一类基于分类的目标检测算法,是目前流行的检测框架之一,相比YOLO算法在精度上具有明显优势[8]。框架如图1所示,算法采用VGG16为基础特征提取网络,在此基础上添加卷积层、池化层等结构,得到特征图[9]。再经过RPN网络生成更加准确的候选区域,最后采用ROI池化,将特征图和RPN网络的输出结果进行判决。

图1 Faster-RCNN算法框架

Faster-RCNN的核心思想是通过预先设立的锚框样式,生成若干候选区域,然后再进行判决等后续操作。训练图像通过VGG16网络得到特征图,原图像通过若干次卷积得到特征图,特征图上的每一个像素点即对应原图上某一个区域。为了捕捉所有的待检测目标,1对1的映射形式不满足要求。对映射在原图上的感受野区域做出以下扩充:1)增设

区域长宽比形式,共3种,分别为1∶1、1∶2、2∶1;2)增设区域尺寸大小形式,共3种,分别为:512、256、128。所以,特征图上每一个像素点对应原图9个候选区域。原图上的候选区域数量为特征图像素数量的9倍。虽然这些候选区域足以捕捉到所有待检测目标,但是会造成以下两个问题:1)候选区域中有相当一部分质量不高;2)候选区域太多,使得训练、检测时运算开销过大。所以利用非极大值抑制的技术,对所有候选区域打分,重叠部分较高的候选区域舍弃。选取分数较高的前2000个候选区域再进行后续操作。

2 Faster-RCNN改进算法

本文主要通过2个方面提升性能:1)提升经典模型的速度。经典方法是通过极大值抑制的方式选定2000候选区域。本文生成候选区域的方法是采取自适应反馈调节,通过训练时反馈调节,使候选区域量在300~2000动态变化,有效减少训练时间。2)提高经典模型的识别度,改进特征提取网络,引入残差网络[10],使网络深度更深,提取的特征更抽象。将原本的16层卷积层重构为58层,提高了目标检测的精度。以上做法能够有效减少训练时间,并且使得平均精度值提高。使得改进后的模型在识别率和训练速度上都有所提高。改进后的算法框架如图2所示。后续改进基于特定目标检测(飞行器),为了满足对于飞机目标的检测,做出了下文的一些改进,如多尺度训练以及丰富锚框样式。

图2 改进Faster-RCNN算法框架

2.1 特征提取网络

特征提取网络将原始图像转化为含有丰富特征信息的特征图。为了得到信息更加丰富的特征图,需要性能更加优异的卷积神经网络来提取更抽象更复杂的信息。

Faster-RCNN 原始特征提取网络为VGG16,VGG16整体分为5个大模块,通过反复卷积池化,得到特征图。Faster-RCNN 原始特征提取网络为16层。通过实验发现,通过简单叠加卷积层能提升精度,当模型层数提高到20层的时候,实验发现平均精度值不仅没有提高还有所下降。这是因为卷积神经网络模型的退化而不是过拟合所致。因为过拟合会导致训练集上效果好而测试集上效果不佳,而该情况是在训练集和测试集上结果都不佳。为了进一步加深模型的深度,引入残差网络。

残差学习不是卷积层的简单堆砌,而是明确地让其映射到残差层中[11]。训练深层次的神经网络是十分困难的,使用深度残差模块搭建网络可以很好地减轻深层网络训练的负担(数据量),实现对更深层网络的训练。

假设残差学习模块的输入为x,要拟合的函数映射为H(x),可以定义另一个残差映射为F(x),且F(x)=H(x)-x,则原始的函数映射H(x)=F(x)+x。通过实验证明,优化残差映射F(x)比优化原始函数映射H(x)容易得多[12]。直接映射只是恒等映射,并未加入任何其他参数,不影响整体网络的复杂度与计算量。通过这种捷径的方式构建了更为丰富的卷积神经网络。该残差网络如表1所示。其中卷积层二,三,四,五均采用3个卷积核模板。第1个卷积核样式是1×1,第2个卷积核样式是3×3,第3个卷积核样式是1×1。卷积核形式如表1所示。

表1 特征提取网络结构

网络结构整体分为3块卷积块,每个卷积块分成5个大的卷积层。第1个 7×7 的卷积层进行降维,再经过4个卷积层,最后经过1个卷积层还原。在第1个卷积层和第2个卷积层之间使用一条“捷径”,第3个 3×3 的卷积层和最后1个卷积层之间使用一条“捷径”,再将第1个卷积层和最后1个卷积层之间使用一条“捷径”。该结构共有58层。这套网络结构有效提高了经典模型的深度。

2.2 RPN网络及其训练

在Faster-RCNN算法出现之后,大部分目标检测网络选择采用区域建议网络推测目标位置[13]。Faster-RCNN 的核心思想是RPN,RPN的作用是使用卷积神经网络产生候选区域。为了尽可能选取所有待检测目标,需要制造大量候选区域。例如,1000*600像素的原始图像通过特征提取网络,得到60*40像素的特征图(锚框样式设置为9种不同类型的候选区域模式),遍历特征图原图生成60*40*9个候选区域[14]。如此大量的候选区域不能都用于后续的训练。所以采用非极大值抑制的方式,抑制高重叠候选区域,选取质量最高的2000个候选区域进行训练。RPN的损失函数定义如下:

(1)

(2)

(3)

本文引入NP(区域数目调节层,即numbers of proposals )层,在训练过程中自适应调节RPN选取的候选区域数量。

(4)

式中:i代表每N次训练的序号。Npi代表第Ni次训练到第(N+1)i次训练中使用的候选区域数量。Li代表第Ni次训练到第(N+1)i次训练中回归损失的平均值。μ1代表惩罚因子,μ2代表奖励因子。

训练过程中引入NP层对训练结果进行反馈调节。每间隔N次训练计算回归损失的平均值,通过空白对照组实验(固定Npi+1取不同数值进行实验),得每隔N次Li缩小一半和自增1倍为合理变化抖动区间。超过这个区间,认为需要反馈调节。当Li翻倍及其以上时,将候选区域数量自增(1+μ1)的倍数;当Li缩小一半及其更小时,认为可以适当减少选框数量,将候选区域数量变为自身(1-μ2)的倍数。设置候选区域的数量上下限,让候选的数量从300~2000这个区间自适应改变。

2.3 多尺度训练

在实际应用中,各种各样目标尺寸差异较大。原始的Faster-RCNN 会对所有的训练图片采用固定尺寸,导致不同尺寸的目标检测泛化性能较差[15]。本文使用多尺度训练,在将图片送入网络之前,在保证图像原有比例的前提下,将图片随机调整大小,使其较短边取480、650和850 之一。然后随机选择三种尺度之一送入网络中进行训练,该操作如图3所示。实验证明,多尺度训练使得网络能够学习目标的各种尺寸的特征,使得网络对目标尺寸大小具有一定的鲁棒性。

图3 多尺度训练

2.4 丰富锚框样式

RPN网络中锚点数量是网络中一个非常重要的超参数,它影响到后续的候选区域的生成。原始的Faster-RCNN使用9种不同样式的锚点。每个滑动窗口产生9个不同尺度和不同长宽比的候选区域,在此基础上,对整张图片产生的候选区域使用非极大值抑制算法剔除多余的候选区域[16]。但默认设置的锚框参数对小的目标无法召回。在实际应用中。小目标总存在。因此,在默认参数的基础上,加入一组64×64尺寸的锚框样式使得网络可以检测到更多的小目标。并且,在民航领域,诸如飞机,飞行器等目标长宽比也较为特殊(飞行器一般较为修长)[17],如图4所示。经过对各种飞行器的考察和对比,在训练过程中添加三组新的长宽比3∶1,4∶1,5∶1, RPN网络一共使用20类锚框样式,尺度大小

分别为64×64, 128×128, 256×256, 512×512,5类长宽比分别为1∶1, 1∶2,3∶1,4∶1,5∶1。实验证明本文增加的64×64的尺度和不同长宽比可以检测更多的小目标和飞行器目标。

图4 针对飞行器设置好的锚框样式

3 目标检测实验

实验硬件采用Z440工作站,配置32G内存及 NVIDIA P2000显卡,操作系统为Ubuntu16.04。采用的编程环境如下:使用的编程语言是Python语言,深度学习框架是TensorFlow1.7[18]。实验的训练样本来自Pascalvoc数据集中的训练集。在训练阶段,需要对训练集中每张图像中的每个目标用矩形框标记,有遮挡的目标也要标记。测试时,若识别出的目标检测框和标记的矩形框重叠部分达到标记的矩形框的90 %以上,则记为检测成功。

PASCAL VOC 2007 数据集作为经典的开源数据集,包含5000训练集样本图像和5000测试样本图像,共有21类不同对象类别。本文使用该数据集的训练集和测试集,实验使用 Tensorflow框架实现卷积神经网络模型,Faster-RCNN中的随机失活、最大迭代值、批处理尺寸等参数对平均准确率值(mAP)产生较大的影响,为了得到较好的输出,需要对这些参数进行优化。实验中,最大迭代次数为70000,RPN网络的批处理尺寸为256,随机失活值选取为0.6。

实验一是具有区域数目调节层的目标检测网络在平均检测精度和速度两方面的表现。经过多次实验,平均能提高运算速度18%,精度几乎没有损失,节省了大量开销。实验一的结果如表2所示。

表2 相同网络不同候选区域数目下的检测效果

实验二测试在最先进的目标检测模型上增加区域数目调节层是否能提升训练速度,选取的候选区域数目是否为最佳数目。本文大部分试验基于Faster-RCNN,由表3可知,在Faster-RCNN最新系列,Mask-RCNN中的表现依然有较强的速度提升。实验可知,在Faster-RCNN系列中,添加候选区域调节层,都具有普遍提升速度的效果。实验同时也选取了YOLOV3模型作为对比。YOLO系列早期并没有引入候选区域的概念,由于Faster-RCNN提出了RPN的概念,后续YOLO系列也采用了候选区域。在YOLO最新系列YOLOV3中添加了区域数目调节层,速度提升并不大。因为YOLO本身速度极快,检测速度本身高达45s/帧。由实验二可知,在Faster-RCNN系列中添加区域数目调节层意义重大,在YOLO系列中添加区域数目调节层只能增加少量速度。

表3 不同网络增添区域数目调节层的检测效果

实验三查看在特点目标检测的要求下(飞机的目标检测),一些对于模型的改动效果。由于作者在民航院校,对于飞机的检测非常感兴趣。飞机本身长宽比特殊,原本锚框设置为1:1.1:2.2:1。针对飞机添加1:5,1:6,1:7三种长宽比样式的锚点做实验发现,1:6对于飞机模型检测精度为最佳。锚点尺寸大小的经典设置为128、256和512,并在此基础上增加一组更小的尺寸样式52,组合成16种不同样式。实验结果如表4所示,对于锚框样式的优化,丰富后的16式提升了1.3%的精度。

表4 针对飞机模型做出的锚点优化

实验四检测综合两项改进对飞机的目标检测的效果。如表5所示,多尺度训练可以提升模型的鲁棒性,锚框样式改进可以提升模型的可靠性。实验说明,这两项改进对于飞机模型的检测,确实取得不错的效果。

表5 改进网络模型的检测效果

从实验一到实验四的数据分析得出结论,在目标检测模型上增添候选区域数目调节层,能有效提高模型的质量。在Faster-RCNN系列模型的提升效果尤其好,对YOLO系列的提升效果不明显。因为RPN层的训练速度对于Faster-RCNN影响颇大。但是对于YOLO,这并不是影响其速度的关键。在此基础中,本文探索了对于飞机目标检测的两项改进。另外,锚框样式的丰富以及多尺度训练也提升了飞机的目标检测。

实验五验证了自行改进的特征提取网络和不同特征网络对目标检测的效果。如表6所示,自行重构的58层参差网络比流行的参差网络精度提高了1.2%。

表6 不同网络的平均检测精度

从实验数据可知,残差网络可以有效解决神经网络的退化问题。,当VGG16网络普通加深卷积层具有19层模型的时候,map尚能提高1%,当继续加深模型,map精度剧烈下降。采用残差网络方式,基本有效解决了神经网络的退化问题。采用NP层反馈机制快速自适应算法后,速度提高了18%,提高了模型的有效性。

4 结论

主要针对2个方面的研究:1)引入候选区域数目调节层优化模型,针对飞机的目标检测做出一些模型优化。通过引入自适应反馈候选区域数量的方法进行动态调整,达到提高速度、提高模型有效性的目的;2)提高模型可靠性,利用残差网络的优势,重构并且优化了底层特征提取,精度提高了3.7%。

针对目标检测的实时性与准确性要求,以卷积神经网络为基础,搭建了多种框架的模型进行训练。通过比较各网络性能的优劣,找到适用目标识别的网络。基于残差的目标识别算法,相较于传统的目标识别算法,可以避免由于人为提取目标特征而带来的误差,在识别精度上有了巨大的提升。对于复杂背景下的目标,残差网络的shortcut反馈机制能够有效地降低网络训练的难度,使得更深层次的网络依然能够有效地训练使用残差的目标检测应用于目标识别中,残差网络无论在检测率还是速度上都优于原始网络VGG16。引入反馈机制,控制候选区数目,达到提高算法速度的目的。

基于二阶段的目标检测算法,在现有候选区域生成网络的基础上,很难再在速度上有所提高。后续可以考虑在特征提取模块和ROI池化模块进行优化、改进,以提高网络的检测率。

猜你喜欢
残差卷积区域
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
分区域
基于严重区域的多PCC点暂降频次估计
平稳自相关过程的残差累积和控制图
一种基于卷积神经网络的性别识别方法