YOLOV3模型优化系列(一)Gaussian YOLOV3介绍

前言

现在对目标检测网络算法模型YOLOV3优化的文章很多,有很多新的思想提出来了,比如focal loss,denseNet,anchors free以及注意力机制等。我个人比较偏好那些源代码开放,方法简单明了,可操作性强同时想法合理的papers。以这种标准来看,Gaussian-YOLOV3无疑算得上不错得优化算法模型,至少能很快看到结果。

简介

Gaussian YOLOV3算法模型是ICCV 2019得一篇paper提出来的。它对应的项目代码已经开源(https://github.com/jwchoi384/Gaussian_YOLOv3)。从代码角度来看,它只是在官方darknet框架代码的基础上添加一个新的层:Gaussian-yolo层的支持。所以如果你之前编译过darknet框架代码,那么这个项目代码下载后就可以直接编译成功了。 

如果你想对自己数据集进行Guassian yolo3模型的训练,那么只需要将cfg文件中的[yolo]改成[Gaussian-yolo],同时将前面的filters数目由(class_num+5)*3改成(class_num+9)*3即可。至于为什么变成了+9,下面会详细解释。

原理

从原理上看,Gaussian yolov3模型和官方经典YOLOV3的唯一区别就是前者对bbox的输出是x,y,w和h的均值和方差,一共有8个值,如下图红框所示;而后者直接仅仅生成x,y,w和h四个值。

下面是几个重要的总结:

1) 这样bbox生成值就构成了输出层前面的卷积filter数目为(class_num+1+8)*3。 

2)在官方YOLOV3模型中,bbox的loss值是简单的mse,即predict的tx ty tw和th分别和GT的tx,ty,tw以及th进行差的平方和。而在Gaussian YOLOV3模型中,它们的delta就变成高斯概率值。其高斯概率密度公式如下所示:

在上式中, x是GT的tx或ty或tw或th,而miu和sigma平方则是对应的Gaussian yolo层的输出。由此可见,每组miu、sigma平方值和GT对应值应用上面公式就能求得一个概率值。

根据高斯概率分布曲线,如果predict出来的miu离对GT值很近的话,那么概率密度值就越大。 当然在真正在计算delta时,用的是(x-miu)/sigma。当GT值离miu值越近的话,delta值越小。

3)实际上在基于Gaussian yolo层的输出来求真正BBOX的坐标值用的是x,y,w和h对应的miu值。 而对应sigma值时来表示这些坐标值的不确定性,sigma值越大,表示该组bbox坐标值越不靠谱。这样Gaussian yolo3模型除了object score,class score外,还多一个bbox的不确定性的评判指标。

 

 

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ltshan139

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值