paper:https://arxiv.org/abs/1904.04620
官方code:https://github.com/jwchoi384/Gaussian_YOLOv3
第三方code:https://github.com/xuannianz/keras-GaussianYOLOv3
我的code:https://github.com/panchengl/yolov3_prune/tree/master/gussian_yolo
这篇文章是一个非常具有启发性的文章,再一次证明高斯模型的重要性,并且建模的角度也很清奇,当时在大家都停滞于yolov3精度的时候,独树一帜的提出这一点,我觉得非常棒,当然,同期的后来还有ASFF,后续我会写到ASFF,虽然ASFF效果更加惊艳,但我觉得gaussian_yolov3的思路真的更漂亮(主要是我复现gaussian yolov3在voc上得到了map提升,ASFF在voc上效果没有那么显著。。。),本文将按照论文的结构来对paper进行解读和分析。
Abstract
首先强调了自动驾驶中需要一种能够应付错误定位的检测算法,而本paper就解决了这个问题,本方法通过对one-stage中代表性的yolov3的box进行建模,使用高斯函数重新设计了损失函数,从而在实时检测的同时提高精度,具体来讲,本文就是提出了一种预测定位的不确定性方法,该方法表明了bbox的可靠性,可以显著减小False Predict并增加True Predict,并在KITTI和BDD数据集上获得了map的提升,且fps号称达到了42fps,极其适合自动驾驶。
1、Introduction
本文提出了一种通过对YOLOv3的bbox坐标建模来提高检测精度的方法,该方法仅输出确定性值作为高斯参数(即每个坐标的均值和方差),并重新设计损失函数。 通过这种高斯模型,可以估计YOLOv3中bbox回归任务的定位不确定性。 此外,为了进一步提高检测精度,提出了一种在检测过程中利用预测的bbox定位不确定性来减小FP并增加TP的方法(我的理解是利用极大似然来增加TP,不确定性减少FP)。 因此,这项研究是对YOLOv3中的定位不确定性进行建模并以实际方式利用这一因素的首次尝试。 结果表示,提出的高斯YOLOv3可以应对自动驾驶应用中的错误检测。 另外,本方法的额外的计算成本可忽略不计,因此所提出的算法以超过42 fps的速度保持了实时检测速度 输入分辨率为512×512。 与baseline(即YOLOv3)相比,提出的高斯YOLOv3分别在KITTI 和BDD 数据集上将mAP分别提高了3.09和3.5。 此外,在KITTI和BDD数据集上,该算法分别将FP降低了41.40%和40.62%,并将TP分别提高了7.26%和4.3%。 结果,在精度和