基于Faster RCNN的交通目标检测方法
2019-11-20丁新涛王万军
张 琦,丁新涛,王万军,周 文
(1.安徽师范大学 计算机与信息学院,安徽 芜湖 241002;2.网络与信息安全安徽省重点实验室,安徽 芜湖 241002)
交通目标检测是汽车自动驾驶系统和驾驶员辅助系统等领域的关键挑战之一。传统交通目标检测方法包括:1)基于传感器的方法,如Sang等通过车辆检测雷达以对多车道的车辆进行分类[1];2)基于先验知识的方法,如Andriluka等使用分层高斯过程潜变量模型对行人在步行周期内可能的关节和时间一致性的先验知识进行建模以跟踪和检测行人[2]。3)基于机器学习的方法,采用的目标特征主要包括目标的Haar-like特征、目标的局部二值模式( Local Binary Patterns,LBP)特征及目标的方向梯度直方图( Histogram of Oriented Gradient,HOG)特征。如朱彬等将不同区域的Haar-like特征和多块局部二值模式特征分别与Adaboost分类器相结合用于侧向车辆检测[3]。但这些算法通常难以充分利用图像的信息,并且计算复杂,使得传统的道路目标检测方法不易达到较高的检测精度。
随着深度学习的快速发展,基于神经网络的方法广泛应用于交通目标检测。目前,基于深度学习的交通目标检测方法可分为二阶段检测法和一阶段检测法。二阶段检测法如Faster RCNN[4],首先提取区域建议,然后将区域建议输出至检测器中并对该区域中的目标位置和类别进行预测,如陈飞等将Faster RCNN中多个尺度的特征相融合用于交通目标检测[5]。一阶段检测法如YOLOv2[6],不需要提取区域建议,直接从图像中提取目标的候选区域并在该区域中对目标位置和类别进行预测,如宋建国等改进YOLOv2中的锚点生成方法并用于交通目标检测[7]。
Faster RCNN作为二阶段检测器,首先由卷积神经网络提取图像的边缘特征,得到目标的特征图;其次,由区域建议网络(Region Proposal Network,RPN)在特征图的每个位置上生成anchors,由分类器确定每个anchors中是否包含目标,并进行边界框回归,生成含有目标候选框的特征图;再次,由感兴趣区域池化(Region of Interest, RoI)将候选框坐标映射到特征图上,得到相同大小的矩形候选框;最后,由分类器确定候选框内目标的所属类别,并输出检测图像。尽管Faster RCNN等深度模型对一般目标的检测具有良好的适用性,但其未考虑目标属性等先验知识,使得它们在特定场景的应用中仍存在检测精度不理想的问题。
对于道路交通中的某一类目标,将目标的先验知识与模型提取的特征相结合,有助于提高目标的检测精度。如陆星家等[8]基于行人Haar先验知识与HOG特征相结合的行人追踪方法。基于先验知识的目标检测方法有效提高了交通目标的检测精度,但这种方法通常只获取某一类目标的先验知识,缺少对道路中多类目标先验知识的获取。由于道路场景应用的特定性,场景中的目标,如行人与车辆,它们在宽高比、大小中具有一定的几何区分度,因此对于道路场景中的多类目标,通过获取这些目标的几何属性并将其用于指导目标检测,可能有助于提高道路多目标的检测精度。
在Faster RCNN的RPN训练期间,输入到RPN网络的锚点用于生成建议,在这些锚点中,负样本数远多于正样本,容易使得正负样本的训练不平衡。焦点损失(Focal loss)针对一阶段检测器中锚点的正负样本失衡问题,改进分类损失函数以调节正负样本的损失权重[9]。而对于二阶段检测器如Faster RCNN,在训练时保留所有数量的锚点及调节正负样本所占的损失权重,可能有助于模型检测精度的提高。
交并比(Intersection over Union, IoU)常作为评估边界框相似性的距离度量,在Faster RCNN中通过计算两个边界框面积的交并比来预测相邻边界框之间的相似性,在非极大值抑制(Non-Maximum Suppression,NMS)中通常将IoU大于一定阈值的得分非最大的边界框剔除以提高边界框回归的准确性。本文通过两个边界框所构成的最小矩形闭包诱导一种强化IoU(SIoU),用于NMS。
本文以Faster RCNN为框架,提出基于锚点聚类、全锚点训练策略及SIoU的交通目标检测方法(T-Faster RCNN),用于道路场景中的目标检测。
1 T-Faster RCNN方法
T-Faster RCNN方法主要包含三个模块,如图1所示。首先,通过聚类获取交通道路目标宽高比、大小的先验几何属性,对数据集中图像的所有目标的大小进行聚类,再通过对宽高比聚类,生成大小和比例两种几何属性,将其用于Faster RCNN候选区域的生成(图1a);其次,在RPN训练时保留所有的锚点用于生成建议,并将Focal loss与RPN的分类损失相结合(图1b);最后,在两个边界框所构成的最小矩形闭包区域中,将两个边界框之外的空白区域面积和闭包区域面积的比值添加到IoU中(图1c),以产生RoIs。
图1 T-Faster RCNN框架
1.1 基于几何先验知识的锚点生成方法
基于几何先验知识的锚点生成方法如图2所示,它主要通过聚类得到“知识”。为进行聚类,先将数据集中所有图像的宽和高归一化,并将归一化图像中的边界框(图2a)的左下角归置到原点(图2b);再将数据集中所有边界框聚集在一起;令Bi=(wi,hi),(i=1,2…n)表示归一化后第i个标注边界框的宽和高;ri=wi/hi,(i=1,2…n)表示第i个标注边界框的宽高比。
对边界框宽高比{ri}进行K-means聚类,生成K个宽高比{RK},如图2c所示,其中黑色的柱子显示了聚类样本数量,柱子下端的区间显示了每一类中ri的范围。
(1)
其中
(2)
图2 基于先验知识的锚点生成方法
1.2 基于Focal loss的全锚点训练策略
在Faster RCNN中,通过对正负样本进行1∶1采样以解决锚点中正负样本失衡的问题,本文采用基于Focal loss的全锚点训练策略,探讨锚点的多样性对模型检测精度的影响。首先,在RPN训练时保留所有数量的锚点,以提高锚点中正负样本的利用率;其次,将Focal loss与RPN的分类损失相结合,以调节正负样本的损失权重。
1.3 用于非最大值抑制的SIoU
在Faster RCNN中,NMS用于解决RPN生成建议的冗余问题。本文提出一种基于最小闭包的SIoU用于NMS的距离度量,记作SIoU,图3显示了SIoU的构造方法。它主要在边界框A与B所构成的最小矩形闭包区域C中,将除边界框A与B之外的阴影区域面积和闭包区域面积SC的比值添加到IoU中。SIoU关注于两个边界框所构成的整体闭包区域的变化,它的计算公式如(3)所示。
(3)
其中SC为A与B构成的最小矩形闭包的面积,M为阴影面积与矩形闭包面积的比值。
图3 SIoU图示
2 实验
本文实验使用的操作系统为Ubuntu16.04,深度学习框架为TensorFlow 1.2,软件配置为CUDA Toolkit8.0、CUDNN 5.1、Python 2.7;硬件配置为六核AMD R5 1600 CPU、12 GB内存、NVIDIA GeForce GTX 1050TI显卡。
本文采用KITTI数据集进行训练和检测,KITTI数据集包含7481张带标注图像,共分为9类:汽车(Car)、面包车(Van)、卡车(Truck)、行人(Pedestrian),坐着的人(Person_sitting)、骑行者(Cyclist)、电车(Tram)、忽略(DontCare)、杂项(Misc)。基于最小边界框尺寸与最大遮挡程度KITTI数据集的检测难度被分为3个等级:简单(Easy)、中等(Moderate)、困难(Hard),其中简单对应的目标尺寸为40像素、无遮挡;中等对应的目标尺寸为25像素、部分遮挡;困难对应的目标尺寸为25像素、严重遮挡。
本文使用在ImageNet上预训练的ResNet101进行参数的初始化,设置学习率为0.001,动量为0.9,共训练110k次,权重衰减为0.0001。为了与KITTI数据集公开检测结果进行对比,本文以KITTI基准评估工具包为框架,对汽车(Car)、骑行者(Cyclist)、行人(Pedestrian)三类进行检测,通过三个类别的平均精度均值(mAP)来评估模型的性能。对比方法包括Faster RCNN[4]、YOLOv2[6]、RetinaNet[9]、MSCNN[10],这些方法所示的结果均为在KITTI基准平台上公布的结果①。
表1 聚类实验参数设置
由1.1节中边界框宽高比聚类得到的 10个锚点的Ratios (RK)为:0.61、0.8、1.03、1.13、1.22、1.32、1.43、1.54、1.65、1.78,由边界框尺寸聚类得到的10个锚点的Scales(SK)为:0.7、1.0、1.3、1.4、1.9、2.7、3.0、3.9、5.6、7.6。
实验结果如表2所示。由实验结果可知,首先,T-Faster RCNN在三类上的mAP比YOLOv2、Faster RCNN、RetinaNet、MSCNN分别提高了22.5%、14.4%、9.5%、3.1%,这表明本文方法具有更好的适用性。其中,RetinaNet采用了多特征融合的方法,MSCNN采用多尺度特征检测目标的方法,这两种方法均有助于小目标的检测。由表2可知,T-Faster RCNN在骑行者(Cyclist)和行人(Pedestrian)两类上,在中等和困难情况下的检测精度均优于RetinaNet及MSCNN,即表明采用Focal loss并且保留所有锚点的数量能够提高困难负样本的损失权重,有助于提高小目标的检测精度。其次,T-Faster RCNN方法在三类目标上的mAP均优于YOLOv2及Faster RCNN,即表明采用k-means聚类生成锚点的方式能够提高边界框的回归精度,并且采用SIoU能够为NMS提供准确的边界框距离度量。将三者相结合对提高目标的检测精度具有促进作用。
表2 本文方法和其他方法在KITTI数据集上的mAP对比结果
图4显示了Faster RCNN与T-Faster RCNN两种方法的召回(Recall)对精度(Precision)曲线(PR曲线),其中Precision为正确被检测到的目标数占实际检测到目标数的比例,Recall为正确被检测到的目标数占所有应该被检测到目标数的比例。汽车、行人、骑行者三类曲线的阈值分别设置为0.7、0.5、0.5。a、b、c分别表示Faster RCNN在汽车、行人、骑行者三类中的PR曲线;d、e、f分别表示T-Faster RCNN在上述三类中的PR曲线。每一类的PR曲线包含三种颜色,紫色代表简单,绿色代表中等,蓝色代表困难。
图4 Faster RCNN和T-Faster RCNN的PR曲线
由图4可知,图4d、e、f三类PR曲线均在图4a、b、c三类PR曲线的上方,因此T-Faster RCNN比Faster RCNN具有更好的检测精度。虽然Recall和Precision一般呈负相关,但图4a中的三条PR曲线在Recall≤0.5时就开始显著下降,而图4d中三条PR曲线在Recall>0.7后才开始显著下降,这表明T-Faster RCNN在汽车类上的Recall较高,即T-Faster RCNN相对于Faster RCNN能够正确地检测出更多的汽车;图4b中的三条PR曲线均低于图4e的三条PR曲线,并且随着Recall的增加,图4b的Precision快速下降,而图4e仍能保持较高的Precision;同样图4c中的三条PR曲线也低于图4f的三条PR曲线。在行人和骑行者两类上的PR曲线表明,随着迭代次数的增加,T-Faster RCNN能够有效提取目标的特征,因此在这两类上具有较好的检测精度。总之,T-Faster RCNN比Faster RCNN具有更好的Recall和Precision。
图5显示了T-Faster RCNN对部分样本的检测结果,检测结果显示本文方法不仅可以检测到图中的多个目标,并且对于图中尺寸较小的目标也能够有效地进行检测。
图5 T-Faster RCNN在部分样本上的检测结果
3 讨论
本文首先采用K-means对训练样本中的标注边界框的比例和尺度进行聚类,通过先验几何知识生成T-Faster RCNN的锚点,以提高目标边界框的召回率;其次,本文将Focal Loss与RPN的分类损失相结合,并保留所有数量的锚点,以调节锚点中正负样本的损失权重;再次,本文基于两个边界框所构成的最小闭包提出了一种SIoU,以提高NMS的准确率。实验结果表明,本文方法不仅有效提高了交通目标的检测精度,并且对于道路中的小物体与被遮挡严重的物体也有较好的检测效果。本文方法对提高自动驾驶汽车与驾驶员辅助系统中的交通目标检测精度具有一定的实践意义。
4 结语
本文以Faster RCNN为框架,旨在通过锚点聚类、全锚点训练策略及SIoU的方法提高道路目标的检测精度。在以后的工作中,将探讨目标的先验知识对提高模型检测精度的作用,以及同一目标在不同数据集之间的关联性对提高模型鲁棒性的影响,以提升模型的泛化能力。
注释:
① http://www.cvlibs.net/datasets/kitti/eval_object.php。