摘要:
目标检测算法在自动驾驶车辆中的应用越来越重要,高精度、快速的目标检测是实现自动驾驶安全的关键。在自动驾驶过程中,由于错误的定位而产生的假阳性(FP)会导致致命的交通事故,阻碍安全高效的驾驶。因此,在自主驾驶应用中需要一种能够应对错误定位的检测算法。此外,本文还提出了一种定位不确定度的预测方法,该方法可以反映bbox的可靠性。通过在检测过程中利用预测的定位不确定性,可以显著降低FP,提高真正值(true positive, TP),从而提高检测精度。与传统的YOLOv3算法相比,本文提出的高斯YOLOv3算法对KITTI和Berkeley deep drive (BDD)数据集的平均精度分别提高了3.09和3.5。然而,该算法能够以超过42帧/秒(fps)的速度进行实时检测,并且在具有类似fps的情况下,比之前的方法具有更高的精度。因此,该算法是最适合自主驾驶应用的算法。
正文:
Motivation:
自动驾驶领域对算法的精度和速度要求都比较高,512*512的分辨率输入情况下,之前的模型可以取得很高的精度,但是速度都没超过30帧。此外,以往基于深度学习的对象检测算法最关键的问题之一是,被检测对象的bbox坐标是已知的,而bbox结果的不确定性是未知的,造成了一些误检测情况,这个对于自动驾驶来说是非常致命的。因此,对被检测车辆的不确定性进行预测,并将其与客观分数和等级分数结合起来考虑,对于降低车辆的FP,预防自动驾驶事故的发生具有十分重要的意义,其实就是IOUnet的思想。本文提出使用预测bbox的定位准确性来降低FP,提高TP,并且因此增加的计算量可以忽略不计,仍然可以保持很快的速度。
网络结构:
标准的yoloV3网络如上图所示,对于每一个bbox,原网络是需要预测四个坐标和objectness score,和分类得分。由于bbox坐标输出为确定的坐标值,而不是分数,因此检测到的bbox的置信度是未知的。本文重点是对bbox的不确定性进行建模。
由于一个目标的bbox的正确gt只有一个,因此预测一个位置的不确定性不需要很复杂的建模。换句话来说,一个bbox的不确定性可以用x,y,w,h的每一个高斯模型来建模。建模公式如下:
对预测出的均值和方差做对应的处理。均值是检测器预测的bbox坐标,每个方差代表了个每个坐标的不确定性。此外,论文中对损失函数部分进行了修改,主要修改的是坐标回归处的损失,其他的分类和前景的交叉熵损失没变化。
定义了一个负Log似然损失函数,用来计算每一个坐标值的损失,来衡量坐标的不确定性:
实验结果:
1.在KITTI和BDD数据集上的效果对比
2.FP和TP的效果
备注:论文并未在coco上做详细的实验,因此只能算是自动驾驶领域的一个针对性检测算法,而非通用目标检测算法