[关闭]
@huanghaian 2020-11-03T16:44:55.000000Z 字数 790 阅读 1202

Gaussian YOLOv3

目标检测


论文题目:Gaussian YOLOv3: An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving

其他人解读:https://zhuanlan.zhihu.com/p/95994718 虽然写的不咋地,几乎也没有看懂。

image.png-140kB

上图为yolov3总图。其每个位置三个anchor,每个anchor预测出4个坐标+1个conf+类别。

yolov3的官方做法中置信度分支的正样本Label是1,而不是iou,导致yolov3输出的bbox无法反映预测质量。而本文希望解决这个问题。

image.png-55.4kB

其输出由原来的txtytwth变成了4个均值和4个标准差,其实4个均值预测值就是原始的txtytwth,而希望标准差能够反映不确定性,不确定度范围是0-1,值越大表示不确定度越大。

image.png-23kB

带帽子的参数表示高斯yolov3的网络输出值,而不带帽子的参数表示经过处理后的预测值。

对于cle和conf分支的loss计算完全一样,但是对于均值和方差的loss计算不一样了:
image.png-18.7kB

看起来比较复杂,先看代码就理解了:
image.png-63.8kB

在高斯模式下,output[...,:2]就是xy分支的输出,target[...,:2]就是txty值,而sigma_xywh[...,:2]是4个标准差分支预测值中的xy标准差经过sigmoid的值。

以tx预测为例,其标准差的学习是自发的,没有任何监督。其希望:
1 当tx预测很准确时候,分子变小,对应的标准差也变小
2 当tx预测和均值有偏差时候,为了loss下降,此时标准差就会变大,从事不确定增加

看起来比较美好,但是自发学习出来的不确定性我觉得不太靠谱,也就是说其仅仅解决了一点点不确定性问题而已。

在测试时候将4个标准差预测值先经过sigmoid,然后求均值作为作者的标准差,然后应用:
image.png-12.9kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注