@huanghaian
2020-11-03T16:44:55.000000Z
字数 790
阅读 1202
目标检测
论文题目:Gaussian YOLOv3: An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving
其他人解读:https://zhuanlan.zhihu.com/p/95994718 虽然写的不咋地,几乎也没有看懂。
上图为yolov3总图。其每个位置三个anchor,每个anchor预测出4个坐标+1个conf+类别。
yolov3的官方做法中置信度分支的正样本Label是1,而不是iou,导致yolov3输出的bbox无法反映预测质量。而本文希望解决这个问题。
其输出由原来的txtytwth变成了4个均值和4个标准差,其实4个均值预测值就是原始的txtytwth,而希望标准差能够反映不确定性,不确定度范围是0-1,值越大表示不确定度越大。
带帽子的参数表示高斯yolov3的网络输出值,而不带帽子的参数表示经过处理后的预测值。
对于cle和conf分支的loss计算完全一样,但是对于均值和方差的loss计算不一样了:
看起来比较复杂,先看代码就理解了:
在高斯模式下,output[...,:2]就是xy分支的输出,target[...,:2]就是txty值,而sigma_xywh[...,:2]是4个标准差分支预测值中的xy标准差经过sigmoid的值。
以tx预测为例,其标准差的学习是自发的,没有任何监督。其希望:
1 当tx预测很准确时候,分子变小,对应的标准差也变小
2 当tx预测和均值有偏差时候,为了loss下降,此时标准差就会变大,从事不确定增加
看起来比较美好,但是自发学习出来的不确定性我觉得不太靠谱,也就是说其仅仅解决了一点点不确定性问题而已。
在测试时候将4个标准差预测值先经过sigmoid,然后求均值作为作者的标准差,然后应用: