yolov3实现理论

代码下载:https://github.com/pakaqiu/yolov3_simple
视频链接:https://www.bilibili.com/video/BV1MK4y1X74Q?p=1
1、yolov3简介
yolov3已经出来好久了,最近一直在做基于yolo系列的检测相关工作,并对相关的源码进行了研究与分析。yolov3并没有很大的创新,更多的是借鉴了最近两年一些网络构造技巧。不过不得不承认效果还是很赞的,在保持速度的前提下,提升了预测精度,尤其是小目标物体的检测相比v1、v2来说得到了较大的改善。
yolov3的主要改进:调整了网络结构;利用多尺度特征进行目标检测;对象分类用logistic取代了softmax。

2、网络结构
以darknet-53为例,具体结构如下:
在这里插入图片描述
其中residual示意图如下:
在这里插入图片描述
3、利用特征的多尺度信息进行目标检测,这里的特征多尺度实际上就是特征金字塔,和传统图像算法的金字塔结构相比,这样大大减少了计算量,同时也增加了特征的感受野。
在这里插入图片描述
yolov2中也采用了passthrough的结构来检测细粒度特征,v3中则采用三个不同的特征图进行目标检测。三个尺度的特征图尺度相对输入图像的stride分别为32,16,8;stride越大则特征图的局部野越大,能够用于检测较大的目标物体,stride越小则反之。同时,anchors的映入能够是的网络更好的进行学习。网络中采用了9种不同尺度的先验框,具体分配如下:
在这里插入图片描述
具体如下(黄色框为gt,蓝色框为anchors):
在这里插入图片描述
当然,这里的anchors可以根据自己的数据集不同而进行生成自己相应的anchors,具体anchors的产生可以参考我之前的博客anchors生成

4、输入到输出的映射
输出数据唯独信息分布如下:
在这里插入图片描述
上图输入数据为4164163,数据以coco为例,共80个类别;三个yolo输出层分别对应stride为32,16,8;每个输出层的每个网格对应三个anchor,每个目标物体四个坐标和一个坐标,所以输出为:feature_h * feature_w * 3 * (4 + 1 + 80);上面的例子一共有13 * 13 * 3 + 26 * 26 * 3 + 52 * 52 * 3 = 10647个预测结果,每个预测是(4 + 1 + 80) = 85维的向量。而v2只有845个预测。

5、总结
yolov3借鉴了残差网络,形成了更深的网络层次,多尺度的特征图使得输出层具有不同的感受野,提升了map以及小目标物体的检测结果。

个人水平有限,很多东西也是参考了他人的成果,在此表示感谢,同时加入了部分个人理解,若文中有不当之处请指教,谢谢!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值