文摘

目标检测是自动驾驶技术的一个重要组成部分。确保车辆的安全运行在高速度、实时、准确检测道路上的所有对象是必需的。如何平衡检测的速度和准确性是近年来的一个研究热点。本文提出了一种基于YOLOv4单程目标检测算法,提高了检测精度和支持实时操作。算法的骨干双打的堆放时间最后残余CSPDarkNet53块。算法的脖子取代了SPP RFB的结构,提高了锅的结构特征融合模块,添加关注机制CBAM和CA结构骨架和颈部结构,并最终降低了网络的整体宽度原来的3/4,以减少模型参数,提高推理速度。与YOLOv4相比,本文算法提高了平均精度KITTI数据集2.95%和2.06%的BDD的数据集。当检测精度几乎不变,这个算法的推理速度增加9.14%,它可以实时检测的速度超过58.47帧/秒。

1。介绍

近年来,深度学习被广泛应用在各个领域,包括计算机视觉(1)、社会服务(2),和自动驾驶3]。传感器的快速发展和GPU,深度学习算法的计算速度大大加快,特别是在过去的十年中,当它已经注意到全自动汽车可能在可预见的未来成为现实。根据这份报告,每年有三分之二的致命事故有关城市交通网络(4)和自动驾驶的可变性的场景(如汽车,人们在不同的天气,不同的光线,和有或没有阻塞)使它特别困难的准确检测。因此,仍有许多困难的检测任务。

自主驾驶的主要任务是准确、快速检测车辆、行人、交通信号灯、交通标志、车辆和其他对象,为了确保安全驾驶。一般来说,自驾车辆使用各种传感器,如相机、激光雷达和雷达,探测对象(5]。一些研究人员(6)检测车辆通过提取从离散二进制图像传感器阵列,和一些研究人员7)取得了好的结果通过传感检测任务在恶劣天气的雷达和摄像头信息融合方法。与其他传感器相比,相机现在是在检测对象更精确和更加划算。基于深度学习的目标检测算法在自动驾驶成为一个重要的方法,因为它可以实现高检测精度与计算资源少。

对象的自动车辆检测算法应满足以下两个条件:首先,检测精度高的道路对象是必要的。其次,实时检测速度是非常重要的探测器是否可以用在开车。基于深度学习的目标检测算法大致可以分为两类:两级和单程。两阶段算法生成地区建议在第一阶段,继续bbox回归和对象分类预测在这些地区在第二阶段,例如,R-CNN [8),快R-CNN [9),快R-CNN [10],R-FCN [11]。两阶段算法通常有精度高,但检测速度相对较慢。单程算法,如SSD (12有人知道由罗[]和13),执行在一个阶段分类和回归。这些方法通常有一个低精度较高的检测速度。近年来,对象探测器结合各种优化方法已广泛研究[14- - - - - -18),以利用这两种类型的方法。MS-CNN [14),一个两级对象检测算法,提高了检测的速度通过一系列的中间层次。RFBNet [18),一个单程的算法,提出了接受申请块扩大接受域来提高精度。然而,先前的研究14- - - - - -17]不再能满足检测器速度超过30 fps,自主驾驶的一个先决条件,当输入分辨率达到512×512或更高。这表明之前的计划是不完整的精度和速度之间权衡,因此很难应用领域的自主驾驶。

大多数目标检测算法的问题在于大型对象很容易发现,而往往忽略的小对象探测器。小姐是极其危险的行人、交通信号灯、交通标志自动驾驶。近年来,有许多特征融合算法对小目标检测(19- - - - - -22]。开明他提议SPPNet [19]2014年提取特征的长宽比,它提供了一个想法YOLOv3等检测算法(23]和YOLOv4 [24]。红外系统(20.)是一个多尺度特性融合网络结构。红外系统结合了高层语义特征和底层位置特性来有效地提高检测精度的小目标。PANet [21是红外系统的改进版本,采用自顶向下和自底向上传输方式消除信息损失的问题从底部高功能特性。ASFF [22)是一种新型的特征融合策略,从而减少不同功能层之间的冲突和矛盾通过自适应空间特征融合和改进的有效性特征金字塔。

此外,一些研究人员(25,26]试图添加P6和P7检测层与32倍P5后将采样率提高检测准确性的小对象,但它带来巨大的计算成本和速度损失。YOLO系列算法[意思13,23,24,27]是一种更快的单程算法,特别是YOLOv4。它提高了低精度YOLO[意思13],YOLOv2 [27],YOLOv3通过结合大量的优秀的模型的优点和添加大量的训练技巧。然而,YOLOv4和之前的算法都是训练和优化MS-COCO [28],它需要检测到大量的类别及其上下文变量。这些模型是理想当应用于自动驾驶领域。因此,本文提出了一种新的方法来提高模型的准确性通过嵌入RFB模块(18到骨干网络,优化,添加关注模块CBAM [29日)和CA (30.),并减少计算,提高实时性能,扩展网络的宽度。

YOLO[意思13]的两阶段算法使用不同地区的提议感兴趣的区域。相反,它检测图像对象分割成网格细胞。它的输出层信息包括bbox坐标,信心,和分类得分。因此,它可以检测多个对象通过一个单一的阶段,而速度是比两阶段算法快得多。然而,由于它直接预测坐标而不是基于锚,很难检测小物体。YOLOv2 [27]增加了BN层卷积后层,应用基于锚bbox,多尺度训练,并使用透传层熔丝细粒度特性,提高了精度与YOLO和YOLOv3意思23];其骨干DarkNet53剩余连接适用于解决问题的深度网络梯度消失;红外系统功能融合保留小对象细粒度功能;多尺度预测使不同大小的网络检测对象。它有一个更明显的改善而YOLO和YOLOv2意思。YOLOv4[的结构24)如图1。YOLOv3的基础上,大量的优秀方法和培训技巧近年来尝试。骨干CSPDarkNet53 DarkNet53融入CSP结构(31日]。SPP模块(19骨干后显著增加了接受域但不影响推理速度。锅的重复抽提过程21)结构特点缓解严重的信息损失的问题,当底部信息在红外系统转移到顶部。与YOLOv3一样,预测层进行三种不同的尺度大小不同的检测对象。YOLOv4的推理速度快比YOLO和YOLOv2意思,因为它只包含1×1和3×3小褶积层。CSP的骨干结构的参数大大减少,和之间的信息交换层是大大提高了。因此,推理速度和准确性是YOLOv3的比。它也可以满足高自主驾驶系统的实时要求。然而,一般而言,其准确性仍低于两阶段算法,和它不优化为许多小的情况自主驾驶场景中的对象。为了弥补这一点,我们用YOLOv4,低于两阶段算法的复杂性,并改善YOLOv4通过其他方法的精度和速度,从而设计一个更高效的自主驾驶探测器。

自从SENet [32]照耀在过去ImageNet分类竞争2016年,注意模块的即插即用可直接应用于现有的神经网络由于其灵活性,这是流行的计算机视觉任务。CBAM [29日)考虑了位置信息忽略SE卷积模块,并使用大规模利用位置信息通过减少渠道的数量,比SE模块更好的可解释性。CA (33)是一种新近提出的关注模块。为了缓解位置信息的损失造成的2 d全球池、频道关注解码流程分解为两个平行的一维特性,位置信息是有效地嵌入到通道的注意。

传统的目标检测算法通常使用均方误差(MSE, L2)或光滑的L1 (9]回归中心点坐标和bbox直接的宽度和高度,即。,{x中心,y中心, , },或左上角和右下角,即。,{x左上角,y左上角,x右下角,y右下角}。anchor-based对象检测算法,是回归偏移量,也就是说,{x抵消,y抵消, ,h抵消}。但回归bbox直接把四bbox点作为独立变量,而不考虑它们之间的相关性,在训练的过程中,更倾向于大型对象,因为小对象最初的损失小。因此,为了更好地处理这个问题,借据损失(34)提出了作为一个整体对待bbox回归和考虑GT。借据尺度不变性;它可以解决这个问题,损失增加与规模在回归。最近,研究者的持续改进,GIoU损失(30.提出了]。除了借据,GIoU损失还考虑对象的形状和方向来解决这个问题,借据损失不能反映重合度和返回梯度的大小当借据是零。DIoU损失(35)来代替惩罚项GIoU最大化重叠区域的最小外接矩形通过最小化bbox和GT中心点的欧氏距离,以加速收敛。至于意识丧失(35),高宽比被认为是DIoU的基础上。今年,一些研究者提出EIoU损失(36),思考意识的相对比例的损失不能反映真正的信心,所以真正的宽度和高损耗计算损失,分别,然后加起来。

自主驾驶场景不同于日常生活场景,不需要注意那些无关紧要的课程。因此,大多数的先进模型优化MS-COCO [28是次优的。KITTI [37)是一种常见的数据集自主驾驶场景。收集在城市地区,农村地区,和高速公路。每个图片都有15汽车和30多名行人,还有不同程度的闭塞和截断。BDD100k [38)是一个庞大而多样化的公众发布的驾驶数据集伯克利(贝尔)近年来,人工智能研究包括不同的天气条件下,日夜,以及不同的照明条件和闭塞。本文提出了基于YOLOv4两种算法。通过添加CSP(第一个算法提高了精度31日)结构特性融合,插入注意力机制,利用EIoU回归损失函数收敛加速模型。第二个算法提高了检测的准确性密集的小物体插入RFB [18)模块。最后,宽度减少到3/4的原始提高推理速度,如图2

3所示。提出工作

根据YOLOv4 [24),anchor-based单程检测算法通常是由骨架、脖子,预测。第一个模型提出了插入的注意机制的瓶颈残余结构和添加了CSP结构到脖子的基线。此外,在模型2中,稍微调整骨干的迭代次数,调整注意力机制的插入位置,取代SPP结构和规模总体网络结构在宽度方向上。改进算法满足实时检测的需要。这是一个多尺度实时检测算法特别设计的自动驾驶的场景。

3.1。骨干

CSPDarkNet53 YOLOv4是个优秀的骨干,可以解决大多数检测特征提取的任务场景。第一个模型提出了继续使用CSPDarkNet53,只有将CA关注模块添加到瓶颈(见图3)。注意机制的有效性已经被完全验证在许多检测模型。它可以大大提高特征提取的能力只通过添加少量的参数。为了更全面地提高骨干在复杂交通场景的特征提取能力,第二个模型的迭代的数量翻了一番(即残余的最后一层结构。,increased to 8). In the experiment, it was found that it is better to modify the attention mechanism to CBAM and the insertion position to be outside the residual structure and inside the CSP structure, as shown in Figure4 (b)

CBAM [29日)和CA (30.模块如图5。CBAM和CA都注意机制的混合通道和空间。相比于单通道SE(注意机制32),神经网络将更加关注对象区域包含重要信息,抑制无关信息,提高整体的目标检测的准确性。图3CA的注意机制模型1的插入位置。

3.2。脖子

为CNN,向后层富含语义信息。YOLOv4使用SPP [19]骨干后增加网络的接受域。相比之下,SPP的纯池,RFB [18借鉴《盗梦空间》在结构、采用水平连接融合网络层,并增加了接受域,减少通过扩张卷积的计算量,这是更健壮。如图6RFB块由3×3卷积和扩张卷积三层。

锅(21)是一个功能增强结构特性融合。采用自顶向下和自底向上的传播模式,消除从底部特征信息的损失特性高的特性。然而,锅之间的层状结构连接形式的普通的卷积。CSP (31日)结构显示其优势骨干:加强信息交流渠道和减少计算量。因此,添加CSP结构层结构之间的锅更精致,不如CSPDarkNet53 CSP结构参数(参见图4)。

3.3。预测的头

在目标检测、分类和回归任务之间的冲突是一个众所周知的问题,因此,预测的分类和回归被广泛使用在大多数探测器。YOLOv4遵循YOLOv3负责人预测,由一个3×3和一个卷积1×1层。最后预测输出通道 ,在哪里na是每个检测层和锚的数量数控类的数量。提出工作遵循这个结构。

3.4。损失函数

对象检测模型、损失函数通常是信心损失的总和,分类损失,和bbox回归的损失。二进制交叉熵(公元前)用于信心丧失和分类损失,和EIoU损失被用于bbox回归的损失。

在公式(1), 每一个损失的系数,这是hyperparameters。在公式(2) 代表了借据预测边界框和接地的真理, , 是预测值,N是积极和消极的数量样品。在公式(3), 指示是否有 类的 预测边界框, , 是预测值, 是积极的数量样品。在公式(4), 表示之间的欧几里得距离bbox, GT的中心点, 是最小的外切矩形的对角线的两个盒子,然后呢 最小外接矩形的宽度和高度。

3.5。不同模型的性能

不同的网络模型的参数数量和计算量权重如表所示1。所有模型测试分辨率512×512,FP16-precision。

可以看出,提出的参数工作(1)11.61米不到YOLOv4和6.35米不到YOLOv3。的参数提出了工作(2)减少了41.3%和36.1%,分别与YOLOv4和YOLOv3相比。此外,从失败的角度,提出了工作大大降低了复杂性。同时,模型的大小,提出了工作(2)只占72.1 MB, YOLOv4小于40.9%,很大程度上取决于CSP结构中引入的脖子和3/4的影响减少整体的宽度。适用于携带和使用自动驾驶。

4所示。实验

4.1。数据集

在实验中,我们使用KITTI [37]和BDD100k [38),常用的自主驾驶的研究。KITTI数据集包括7481 7518训练集和测试集,包括3类:汽车、自行车和行人。自测试集没有标签,训练集和验证集是通过随机划分训练集分割成两半(39,40]。BDD100k数据集是由70000的训练集,10000验证集,和20000测试集,包括十类:人,骑士,汽车,公共汽车,卡车,摩托车,汽车,交通信号灯、交通标志、火车。训练集和验证集的比例是7:1。大约有146万个对象实例在训练集和验证集,其中约080万人汽车实例,而只有151人训练实例。类别之间的这种不平衡分布的衰落将导致网络特征提取能力,所以火车,骑手,电动机被忽略在最后评估。最后的BDD数据集包括七类:人,汽车,公共汽车,卡车,自行车,交通信号灯、交通标志。因为我们只研究了模型之间的差异,训练集和验证集的1/5是随机抽样作为最终数据集。实验进行了Ubuntu 18.04, NVIDIA方形住宅区M4000, CUDA 10.1, cuDNN v7.6.5。推理速度相关的硬件设备。摘要推理测试FPS进行NVIDIA RTX 2080 ti。

4.2。锚的设计

KITTI和BDD这篇论文使用的数据集,我们设置锚箱大小来获得准确的预测结果。获得的结果k聚类算法则如表所示2

4.3。绩效评估提出的工作

为了检查的有效性改善YOLOv4网络,原YOLOv4之间进行比较实验模型和改进的YOLOv4模型。一般来说,测试结果可分为四类:TP(真阳性)是积极正确的预测样本;FP(假阳性)的积极样品错误的预测;TN(真阴性)的负样本正确预测;FN(假阴性)的负样本错误的预测。混淆矩阵如表所示3

所有阳性样品的数量模型预测的TP + FP,正确积极的样本的比例叫做精度,见公式(5)。的所有积极的样品验证集TP + FN,积极预测样本的比例叫做回忆,见公式(6)。

AP值通常是作为一个标准来评估对象检测模型的性能。AP值是由封闭的P-R曲线(与回忆的区域x轴和准确性y轴)。美联社表示模型的准确性在一定范畴;地图是所有类别的平均精度,可以测量模型的性能在所有类别。mAP50代表所有地图借据预测盒和GT值大于0.5。见公式(7)和(8)。

KITTI [37]数据集,借据的汽车通常设置为0.7,自行车和行人设置为0.5,而对于BDD数据集(38),所有类设置为0.5的借据。在YOLOv4并提出模型的训练1中,批处理大小设置为16,在模型2,批处理大小设置为32,学习速率设置为0.003,300时代训练。

为了反映的性能改进的模型,评价结果与其他研究相比(14,18,39]。这些实验结果从[39),如表所示4。这些研究没有包括在表中5BDD的AP50评价结果数据集。

如表所示4,地图的YOLOv4 KITTI验证组为86.43%,虽然地图模型1是88.49%,检测精度提高了2.06%。模型2的地图是86.35%,低于YOLOv4 0.08%,但它的参数和计算是少得多,推理速度为6.33 fps更高。表5显示了每个模型的性能在每个类的BDD验证集。与YOLOv4相比,模型1是增加了2.95%的地图和模型2是增加了1.73%。此外,可以看出,模型1和模型2显著提高检测准确性的小对象交通信号灯、交通标志等。汽车和卡车等大型对象,检测精度改进模型的原始YOLOv4几乎一样的。从这些结果,可以得出结论,模型1和模型2可以充分提高检测精度小物体在不牺牲大对象的检测精度。值得一提的是,当输入大小增加到704×704年,地图达到61.34%,但获得的高精度速度为代价的。

此外,公共关系曲线的三个常见的BDD数据集对象,汽车,人,和交通信号灯,如图7。公关曲线是评价的一个重要指标的输出对象检测算法,和它的面积是美联社这门课的价值。从图可以看出7模型1和模型2的公关曲线完全环绕YOLOv4,也显示了该工作的有效性。

4.4。视觉评估

8显示了YOLOv4的视觉比较,提出工作。从第三行可以看出,在夜间环境,模型1和模型2可以发现红绿灯对象YOLOv4错过了什么。在第四行,模型1可以补充在YOLOv4不正确的交通标志的检测。行5和6,模型1和模型2可以发现更多比YOLOv4小物体。第一行和最后一行的天气更好,和检测框架的改进算法更准确。

基于这些结果,模型1和模型2可以显著提高检测的准确性,以提高驾驶的稳定性和效率,防止致命事故,满足自主驾驶的需要实时目标检测任务,并具有实际应用价值。

5。结论

实时检测技术领域的自主驾驶具有重要意义。旨在单程探测器精度不足的问题自主驾驶场景,基于YOLOv4,本文替换SPP RFB结构支柱后,集成了CSP结构计算到颈部结构,最后补充道CBAM和CA的注意机制使神经网络更加注重对象区域包含重要信息,抑制无关信息,提高检测精度。实验结果表明,改进的模型1的精度高于原YOLOv4目标检测的任务。地图在KITTI验证组提高2.06%和2.95% BDD验证集。mAP50模型2是增加了1.73%,和推理速度增加了4.83 fps,验证改进算法的有效性。它为进一步的实际应用提供了理论参考。在后续工作中,一些研究人员关心的是如何提高检测的准确性(7,41,42]在夜间和恶劣的天气条件下,进一步提高检测的准确性也将是我们的下一个研究方向。

数据可用性

所有的数据都包含在这个研究可以从官方网站下载KITTI BDD100k或者通过联系相应的作者。

的利益冲突

作者宣称没有利益冲突有关的出版。

确认

这项工作是为吉林省自然科学基金资助(没有。20200201053 jc)。