摘要:针对交通标志检测过程中需同时满足高精度和速度的问题,本文提出了一种改进的基于区域全卷积网络(R-FCN)的交通标志检测方法。通过K-means聚类算法对数据集进行分析,选择合适的锚点框。并对特征提取网络ResNet101进行结构简化,只使用其前25层进行特征提取,以缩短检测时间。再将可变形卷积和可变形位置敏感RoI(Regionof Interest)池化层引入模型中,以提高模型对交通标志的感应能力。训练过程中使用在线困难样本挖掘策略,减少简单样本。在德国交通标志检测数据集上的实验结果表明:改进后的模型对交通标志位置信息更加敏感,在AP50时达到97.8%,AP75时为94.7%,检测时间缩短至48ms,整个模型在精度与速度上都得到了提升。
本文源自计算机工程2021-01-27《计算机工程》杂志级别:CSCD,主办单位:华北计算技术研究所,周期:旬刊, 国内统一刊号:11-2127/TP,国际标准刊号:1002-8331,复合影响因子为0.984,综合影响因子为0.518。《计算机工程》简介:《计算机工程》刊登内容包括发展趋势/热点技术、博士论文、基金项目论文、专题论文、软件技术与数据库、安全技术、多媒体技术及应用、网络与通信、人工智能及识别技术、工程应用技术与实现、开发研究与设计技术等。
关键词:交通标志;区域全卷积网络; ResNet101;可变形卷积;可变形位置敏感RoI池化
0概述
交通标志检测是自动驾驶和辅助驾驶的重要组成部分,交通标志中含有速度限制,路面状况等信息,对汽车起着指导作用,是安全驾驶的重要一步,对于交通标志的研究有着重要的理论和现实价值。研究人员对此提出了多种方法进行研究,在深度学习模型提出以前,交通标志的检测方法大体可分为基于交通标志的颜色形状等视觉信息方法[1-5],基于特征提取和机器学习的识别方法[6-8]。
自从文献[9]提出AlexNet在ImageNet大赛夺冠,多种深度学习模型被提出应用于交通标志检测任务中。文献[10]设计了一种端到端的全卷积神经网络,在对其收集的Tsinghua-Tencent 100K 数据集检测中,展现出强大的鲁棒性。文献[11]对Faster RCNN[12]中RPN接收域的修改,使模型更好的适应交通标志这种小目标。文献[13]通过使用多个11的卷积核,降低了模型的计算复杂度,使检测达到实时。文献[14]提出了一种基于多尺度区域的卷积神经网络,在RPN中融入上下文信息,能准确地检测出较小的交通标志。
由于模型结构设计的差异,目标检测模型所侧重的方面也不相同,一阶检测器如YOLO[15],SSD[16]等,检测速度快,但对交通标志这种小目标并不敏感,精度较低,容易产生误判。二阶检测器Faster RCNN,FPN[17]等精度高,但速度慢,对于交通场景这种速度较快的情况,无法及时将信息传递给汽车。对此,本文基于R-FCN[18]框架,提出了一种改进的交通标志的检测算法。通过对其特征提取网络进行简化,在不影响准确率的情况下提高模型检测的速度。再添加K-means,在线困难样本挖掘策略和可变形卷积等技术,以期提高模型的精度。
1交通标志检测算法框架
1.1 R-FCN算法
R-FCN算法由经典的Faster RCNN算法演变而来,同为二阶段检测器。先通过特征提取网络提取图像特征,输出特征图,再经过区域建议网络(region proposal network,RPN)对输出的特征图上提取出感兴趣区域。R-FCN与Faster RCNN在RPN之前的步骤相同,两者最大的不同在于对感兴趣区域的分类与回归。
Faster RCNN通过一组全连接层完成对目标的分类和回归,每个经过RPN提取出来的RoI都需要经过全连接层的计算,这将消耗大量的时间。而R-FCN则通过额外添加两组卷积的得到两张分别为类别和位置的得分图来对目标进行预测,即将全连接层替换成卷积层进行分类和回归计算,一定程度上加快了检测速度,整个检测框架如图1所示:
1.2 可变形卷积
传统的卷积操作通常是基于形状为3x3,5x5这种形状规则的卷积核进行特征提取,然而这种传统的卷积具有自身的局限性,只能提取规则区域内的特征,无法根据物体的形状提取到更细致的特征,而可变形卷积[19]引入了空间几何形变的学习能力,可以更好地适应空间。
可变形卷积可以根据目标的形状进行卷积位置调整,使卷积的区域更贴切于物体。具体实现是通过增加了一组2N(N为卷积核的大小)个卷积核,产生尺寸与输入特征图相同,通道数为2N的特征图,又称为offset field(偏置域)。从offset field上可得到每个像素点的offsets(偏置矩阵),具体方式如图2所示。
传统卷积的计算方式是与特征图进行固定区域的卷积计算,对于特征图上每个点位置0p,其计算方式如式1所示:
式中:x为输入特征图;y为输出特征图;0p为卷积计算点;R表示预采样偏移,假设使用3x3卷积核,则1, 1 , 1, 0 ,.... 0,1 , 1,1R ;Pn为R中位置的枚举。
可变形卷积加入其中,将学习到的偏置矩阵offsets与预采样偏移R相加,得到新的采样偏移量,则输入特征图上每个点Po进行可变形卷积的表达式如式2所示:
式中:np为偏置矩阵offsets对应于常规卷积网格的偏移量;其余变量与式(1)相同。
1.3 特征提取网络
R-FCN通过残差网络(ResNet)对图片进行特征提取,ResNet[20]自提出以来,被广泛应用于分类,检测任务。通过增加跳线连接,ResNet能够缓解梯度消失和梯度爆炸的问题。
ResNet的结构如图3所示,假设在不加残差前网络需要学习的是H xF x,这样一个恒等映射在神经网络层数增加时将变得很难拟合。而加入残差结构后神经网络学习的是H xF xx,即将恒等映射作为网络的一部分,那么网络真正学习的是残差函F xH xx,这比原来的恒等映射更容易拟合。
Fig. 4 Construct the ResNet unit as deformable ResNet structure
本文使用了经过预训练的ResNet-101,在其第conv4_x模块中融入可变形卷积。具体结构如图4所示,在残差结构中加入了额外的72个256维的卷积核,产生了四组offsets。通过这些新加入的卷积产生的offset的偏置量指引作用下, 对输入特征进行可变形卷积操作获得输出特征。
1.4可变形位置敏感RoI池化
R-FCN中的位置敏感RoI池化在位置敏感得分图上进行,位置敏感得分图实质上也是特征图,但却是有着确切含义的特征图。位置敏感RoI池化会将RPN层提取出的感兴趣区域分成kk个bins(子区域),假设目标的总类别数为C,则位置敏感得分图的层数为21kC,每一层分别代表着某类物体的某个部位在整个图像中的响应值。位置敏感得分图的层数受目标种类数影响,当目标种类增加时,得分图的通道数也随之增加,会带了大量参数,增加检测的时间,因此本文只有3类交通标志的情况适合于R-FCN位置敏感RoI池化的设计。
相比与原始的位置敏感RoI池化,可变形的位置敏感RoI池化通过卷积在位置敏感得分图上产上了一个额外的偏置域。这个偏置域的尺寸与得分图相同,通道数是其两倍,对应于位置敏感得分图上每个点在X与Y方向的偏移量,具体方式如图5所示。将经过RPN提取出来的RoI区域对应的offsets加入其中,其对应的计算公式如式3所示:
式中:x为输入特征图;y为输出的RoI;bin为由RoI划分为0,k ki j k 的区域;ijn是每个bin区域中的像素数;0p为RoI左上角的坐标;p为bin区域内像数点的枚举;p为偏移量offset。
1.5在线困难样本挖掘
经过特征提取网络输出的特征图会在RPN的作用下产生大量的ROIs(候选区域),这些ROIs中正样本和负样本分布并不平衡,简单地设置正负比例将这些ROIs送入后续分类与回归训练使模型无法关注到困难样本(预测时与真值标签误差较大的样本,这类样本常使得模型产生误判现象)。OHEM(在线困难样本挖掘)[21]会从这些ROIs中筛选出困难样本,将筛选得到的这些样本送入到训练中。
具体操作为设置两个相同的ROI子网络,两个子网络结构相同,但在功能上可将其分为只读子网络和可读可写子网络。只读子网络只负责前向计算,输出ROIs的损失,然后将这些ROIs的损失值从大到小排序,并通过NMS(非最大值抑制) 算法挑选出前K个ROIs,将其送入到可读可写子网络中进行参数的反向传播,完成网络更新。
2实验分析
2.1 实验数据集
1.6改进后的网络结构图
本文实验主要基于R-FCN网络结构,为了加检测速度,本文在基于ResNet-101的预练模型上进行删减实验,最后只保留了前25层来实现对图片特征的提取,并将RoI区域中bin的个数从7×7 变为3×3。以上两点有效提升了模型的检测速度,却并没有因为参数的减少而影响准确率。
上述措施虽然能将模型的速度提升,但无法提升模型的准确率,于是笔者将可变形卷积核和可变形位置敏感RoI池化引入。总共使用了两个可变形卷积核,分别置于RPN两侧,将可变形位置敏感RoI池化代替原始的位置敏感RoI池化,改进后的网络结构如图6所示。
本文的数据集采用的是德国交通标志检测数据集(German Traffic Sign Detection Benchmark,简称GTSDB)[22]。GTSDB 是在2013 年的国际神经网络会议(IJCNN2013)上发布的,被用于当年的交通标志检测大赛。该数据集包含900张高分辨率的道路交通图片,其中训练集600张,测试集300张,图像大小全部为800×1360像素。图片中交通标志的数量在0到6个,标志多为小目标,分辨率在16×16到128×128之间,形状大多数为三角形和圆形。GTSDB中将43种交通标志分为了四大类,即禁令标志、指示标志、警告标志、其他标志。而根据当年比赛的规定,本文只对前三种标志进行检测。因此本文训练集总共包含666个标志,测试集包含273个标志。图7为该数据集部分图片与其检测效果图。
2.2锚点框维度聚类
通过对数据集的分析可知交通标志的面积远小于原R-FCN的锚点框大小,使用原始的锚点将会使模型难以拟合那些过小的交通标志,因此需要对交通标志数据集进行聚类分析。
K-means聚类方法用欧氏距离定义损失函数,但在目标检测算法中更适合采用预测框和anchor box的面积重叠度IOU作为度量距离, 则新的度量标准公式为:
d box centriodIOU box centriod(4)
式中,box表示目标框尺寸, centriod表示聚类中心框尺寸。通过改变聚类中心点的个数得到不同的平均IOU,结果如图8所示。
从图8可看出当聚类个数为9时曲线逐渐平缓,于是选定9个锚点框,并且通过聚类可知交通标志长宽比的标注基本为1:1,锚点框具体大小设置为(22,22),(27,27),(32,32),(36,36),(40,40),(46,46),(56,56),(70,70),(100,100)。
2.3 实验评价
本文实验平台信息:cpu为Inter Core i7-8700,内存16G,gpu为NVIDIA GeForce RTX 2070,显存8G,操作系统为Ubuntu 16.04,深度学习框架为MXNET。
实验中采用ImageNet数据集上训练好的ResNet101,其参数不参与更新,总共训练15个epoch,初始学习率为0.001,在训练10个epoch后将学习率调整为0.0001。
本文采用目标检测中常见的AP50,AP70和AP三个评价指标进行评测,AP50,AP70分别表示IOU(预测目标与实际目标的重叠比)大于0.5和大于0.75时正确检出目标,AP为IOU [0.5:0.05:0.95]共10个IOU下AP的平均值。使用三个指标能更好的体现出可变形网络对交通标志的适应能力,评价更为全面。
为了选择适合本文的预训练模型,本文首先以ResNet101和ResNet50为特征提取网络的R-FCN在原模型下进行实验,得到以下结果,如表1所示
经对比发现预训练ResNet101网络与ResNet50相差不大,ResNet101相比与ResNet50中conv4_x中额外的51层并没有取得太大优势,意味着对于本文交通标志检测任务,ResNet101和ResNet50中的conv4_x的层数并不能产生太大的影响。于是选用总体偏优的ResNet101为特征提取网络,为了加快检测速度,将conv4_x模块进行简化,只保留其前三层参数,即整个特征提取网络只剩下35层,实验结果如表
对特征提取网络ResNet101进行层数的删减并没有对检测结果产生太大影响,对ResNet101中conv4_x模块的简化仅造成了微小的变化。说明前25层提取出来的特征图已经包含了足够交通标志的特征信息。
获得了简化的特征提取网络后,本文便在简化后的模型上进行实验,通过聚类锚点,可变形卷积和可变形位置敏感ROI层加入其中,在训练过程中采用在线难例挖掘方法,实验的具体结果如表3所示。
实验结果表明,在AP50时准确率提升了1.4%,达到97.8%。而在严格的AP75时达到94.7%,相比原算法提升了6%,总体AP更提升了将近9%。检测时间方面本文相较原始的R-FCN(ResNet101)减少了60ms,速度提升两倍有余。有效证明了本文保留前25层进行实验的可行性,K-means聚类后锚点框的适应性。
交通标志信息的标注是人工标注,其标注框都是正方形,加入可变形卷积和可变形位置敏感RoI池化层具体地提取出更多关于交通标志形状的信息,更加符合交通标志圆形,三角形以及矩形的特征,在更严格的AP75和AP评价指标下准确率明显提升。通过添加OHEM技术,着重于困难例的训练,模型的准确率进一步提升。
2.4 模型对比
在目标检测领域的研究中,广大学者已经提出了众多优秀的目标检测模型,但这些模型都在VOC,COCO数据集上做的实验,这两数据集种类多,数据量大,所设计的模型结构为了适应数据集其结构会设计的比较庞大。这些模型虽然可以直接用于交通标志分类检测,但其模型结构并不能完全契合交通标志检测数据集,比如其锚点框的大小形状,因此需要进行适应性改进。
表4对比了其他经典模型在本文数据集上的结果。其中Faster RCNN,R-FCN,FPN特征提取网络都为经过预训练的ResNet101,其参数不参与更新,保持不变,训练与检测均为原尺寸。YOLO系列尺寸则为608x608,特征提取网络为darknet。CenterNet特征提取网络为DLA-34,尺寸为512x512。RetinaNet和Cascade RCNN的特征提取网络为ResNet50-FPN,尺寸为原尺寸。各模型的锚点框大小均未进行调整。
从实验结果可看出,FPN因为其多尺度的设计,在AP和AP75指标时明显高于FasterRCNN与R-FCN这种单尺度的模型,证明了多尺度图像特征金字塔可以有效检测出交通标志这种小目标。但其使用的特征提取网络为ResNet101速度偏慢,于是本文在CascadeRCNN选择了参数较少ResNet50,并在其上使用FPN架构。最终使用了多尺度和多阀值的CascadeRCNN在AP指标时取得最高,达到了77.2%,但在AP50指标时却则只有95.5%,还不如未改进的R-FCN。原R-FCN由于位置敏感得分图的设计,适合于交通标志这种有特定形状的目标,且本文交通标志只有三类,位置敏感得分图层数少,一定程度上加快了检测的速度,因此原始的R-FCN在速度与精度都有不错的表现。
使用512尺寸的CenterNet在本文所对比模型具有最快的速度,中心点的设计原理也契合交通标志这种对称的物体,因此其整体表现不错。而使用原尺寸的RetinaNet在AP和AP75指标时同样具有较强的竞争力。YOLOv3与YOLOv4[23]算法则在608尺寸时和本文所提模型的检测速度接近,可以发现YOLOv4的准确率明显高于YOLOv3,是所有对比模型中准确率在AP50指标时最接近本文的,但在更严格的AP75和AP评价指标时,仍然与本文算法有不小的差距。可见本文可变形卷积的引入是有必要的,在速度接近的情况下,本文模型在更严格的评价指标时依然拥有着不小的优势。
3结束语
针对交通标志的检测研究,本文先使用R-FCN算法进行研究,发现原始的R-FCN模型在准确率上已有良好的表现,但速度却偏低,难以达到实时的要求,因此如何提升R-FCN的检测速度和准确率成为本文关注的两个重点。笔者通过模型简化,K-means算法锚点框聚类,并将可变形卷积和可变形位置敏感RoI池化层加入到简化后的模型中,在训练过程中使用在线困难例挖掘策略。实验结果表明,整个模型在速度提升的同时又不失精度,准确率高于其他经典模型,速度接近于实时,在精度与速度上取得了较优的平衡。在未来的工作中,将为模型寻找更适合于交通标志检测的特征提取网络,进一步提升模型检测的速度与精度。