YOLO v3 详解

  • 一、核心思想
  • 二、Darknet-53
  • 三、网络结构
  • 四、9 种尺度先验框
  • 五、输入与输出
  • 六、检测效果

YOLOv3: An Incremental Improvement

论文链接


  YOLO v3 是目前工业界用的非常多的目标检测的算法。YOLO v3 没有太多的创新,主要是借鉴一些好的方案融合到 YOLO v2 里面。不过效果还是不错的,在保持速度优势的前提下,提升了预测精度,尤其是加强了对小物体的识别能力。
  YOLO v3 主要的改进有: (1)调整了网络结构;(2)利用多尺度特征进行对象检测;(3)对象分类用 Logistic 取代了 softmax。

一、核心思想


图 1:多种尺度网格

  YOLO v3 的核心思想就是用 3 种不同的网格来划分原始图像。其中 13 * 13 的网格划分的每一块最大,用于预测大物体。26 * 26 的网格划分的每一块中等大小,用于预测中等物体。52 * 52 的网格划分的每一块最小,用于预测小物体。

二、Darknet-53


图 2:Darknet-53 网络结构

  YOLO v3 的 backbone 采用了自己设计的 Darknet-53 的网络结构(含有53个卷积层),它借鉴了残差网络 residual network 的做法,在一些层之间设置了快捷链路(shortcut connections)。

  上图的 Darknet-53 网络采用 256 * 256 * 3 作为输入,最左侧那一列的 1、2、8 等数字表示多少个重复的残差组件。每个残差组件有两个卷积层和一个快捷链路,示意图如下:

图 3:残差组件

三、网络结构


图 4:YOLO v3 网络结构

  YOLO v2 曾采用 passthrough 结构来检测细粒度特征,在 YOLO v3 更进一步采用了 3 个不同尺度的特征图来进行对象检测。

  结合上图看,卷积网络在 79 层后,经过下方几个黄色的卷积层得到一种尺度的检测结果。相比输入图像,这里用于检测的特征图有 32 倍的下采样。比如输入是 416 * 416 的话,这里的特征图就是 13 * 13 了。由于下采样倍数高,这里特征图的感受野比较大,因此适合检测图像中尺寸比较大的对象。

  为了实现细粒度的检测,第 79 层的特征图又开始作上采样(从 79 层往右开始上采样卷积),然后与第 61 层特征图融合(Concatenation),这样得到第 91 层较细粒度的特征图,同样经过几个卷积层后得到相对输入图像 16 倍下采样的特征图。它具有中等尺度的感受野,适合检测中等尺度的对象。

  最后,第 91 层特征图再次上采样,并与第 36 层特征图融合(Concatenation),最后得到相对输入图像 8 倍下采样的特征图。它的感受野最小,适合检测小尺寸的对象。

四、9 种尺度先验框


  随着输出的特征图的数量和尺度的变化,先验框的尺寸也需要相应的调整。YOLO v2 已经开始采用 K-means 聚类得到先验框的尺寸,YOLO v3 延续了这种方法,为每种下采样尺度设定 3 种先验框,总共聚类出 9 种尺寸的先验框。在 COCO 数据集这 9 个先验框是:(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326)。

  分配上,在最小的 13 * 13 特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326),适合检测较大的对象。中等的 26 * 26 特征图上(中等感受野)应用中等的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。较大的 52 * 52 特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象。

图 5:feature map 和先验框大小的对应关系

  我们可以通过下面的图片来感受一下先验框的大小和 feature map 大小的关系。其中蓝色框为聚类得到的先验框。黄色框式 ground truth,红框是对象中心点所在的网格。

图 6:9 种先验框

五、输入与输出


图 7:网络的输入与输出

  不考虑神经网络结构细节的话,总的来说,对于一个输入图像,YOLO v3 将其映射到 3 个尺度的输出张量,代表图像各个位置存在各种对象的概率。

  我们看一下 YOLO v3 共进行了多少个预测。对于一个 416 * 416 的输入图像,在每个尺度的特征图的每个网格设置 3 个先验框,总共有 13 * 13 * 3 + 26 * 26 * 3 + 52 * 52 * 3 = 10647 个预测。每一个预测是一个 (4 + 1 + 80) = 85 维向量,这个 85 维向量包含边框坐标(4 个数值),边框置信度(1 个数值),对象类别的概率(对于 COCO 数据集,有 80 种对象)。

  对比一下,YOLO v2 采用 13 * 13 * 5 = 845 个预测,YOLO v3 的尝试预测边框数量增加了 10 多倍,而且是在不同分辨率上进行,所以 mAP 以及对小物体的检测效果有一定的提升。

六、检测效果


  如果采用 COCO mAP-50 做评估指标(不是太介意预测框的准确性的话),YOLO v3 的表现相当惊人,如下图所示,在精确度相当的情况下,YOLO v3 的速度是其它模型的 3、4 倍。

  不过如果要求更精准的预测边框,采用 COCO AP 做评估标准的话,YOLO v3 在精确率上的表现就弱了一些。如下图所示。

参考链接:
https://arxiv.org/pdf/1804.02767.pdf
https://www.jianshu.com/p/d13ae1055302
https://www.bilibili.com/video/BV1XJ411D7wF?from=search&seid=14806288659754867060

YOLO v3 详解相关推荐

  1. st-link v2怎么连接_深度学习之 YOLO v1,v2,v3详解 - 一杯清酒邀明月

    (写在前面:如果你想 run 起来,立马想看看效果,那就直接跳转到最后一张,动手实践,看了结果再来往前看吧,开始吧······) 一.YOLOv1 简介 这里不再赘述,之前的我的一个 GitChat ...

  2. 深度学习之---yolov1,v2,v3详解

    (写在前面:如果你想 run 起来,立马想看看效果,那就直接跳转到最后一张,动手实践,看了结果再来往前看吧,开始吧······) 一.YOLOv1 简介 这里不再赘述,之前的我的一个 GitChat ...

  3. YOLO系列详解 目标检测

    yolo v1 前言 相比同年的fast-rcnn和ssd都没有优势 详解 B=2,Pr(Object)为0或者1 在v1中没有anchor的概念,预测的xywh是直接预测的box的位置,不像fast ...

  4. Uniswap v3 详解(五):Oracle 预言机

    Uniswap v2 的 Oracle Uniswap v2 版本起,就已经提供了预言机功能,用来计算交易对的时间加权平均价(TWAP, Time Weighted Average Price),但是 ...

  5. 河道水面漂浮物识别检测 YOLO算法详解

    河道水面漂浮物识别检测根据监控摄像头搜集江河或河道的水面视频,截取图片中带有海上漂浮物的照片,河道水面漂浮物识别检测训练所需照片,形成数据实体模型,实时检测河道水面的监控画面.如出现数据集模型中的漂浮 ...

  6. Uniswap v3 详解(四):交易手续费

    以普通用户的视角来看,对比 Uniswap v2,Uniswap v3 在手续费方面做了如下改动: 添加流动性时,手续费可以有 3个级别供选择:0.05%, 0.3% 和 1%,未来可以通过治理加入更 ...

  7. 华为-yolo系列详解

    [转载]https://www.huaweicloud.com/articles/1bbc978269862843879e580761883927.html

  8. YOLOv5 yolo.py详解

    分享一个写的超好的文章 yolov5深度剖析+源码debug级讲解系列(二)backbone构建

  9. YOLO v3算法详解

    论文地址:YOLOv3: An Incremental Improvement YOLO算法详解,YOLO v2算法详解 1.The Deal 接下来,从头梳理整个网络,如果对YOLO和YOLO v2 ...

最新文章

  1. Pdf怎么转换excel表格,职场人士必备技能
  2. mvp架构 java_GitHub - AnthonyCoder/MvpForJava: 一个可直接快速引入的 Java 版本的模块化 MVP 框架...
  3. mysql 碎片率_mysql数据碎片太多怎么办?
  4. js aes加密_nodejs中使用Crypto-JS对图片进行加解密
  5. Runnable和Thread基础---多线程学习笔记(二)
  6. SAP Marketing Cloud功能简述(四) : 线索和客户管理
  7. P7599-[APIO2021]雨林跳跃【二分,倍增,ST表】
  8. P3306-[SDOI2013]随机数生成器【BSGS】
  9. tomcat 6.0环境, 网页超链接,文件下载另存为时,不能识别msi文件类型,另存为只能选htm和所有文件。...
  10. (转)Bootstrap 之 Metronic 模板的学习之路 - (5)主题布局配置
  11. 实现labelme批量json_to_dataset方法
  12. 【LeetCode】【字符串】题号:*434. 字符串中的单词数
  13. Java枚举enum使用及相关的操作
  14. js——分享QQ、QQ空间、微信、微博
  15. [附源码]计算机毕业设计Python基于Web的软考题库平台(程序+源码+LW文档)
  16. Python简单爬虫(以爬取豆瓣高分图书为例)
  17. 【GA MTSP】基于matlab GUI遗传算法求解多旅行商问题(多起点不同终点)【含Matlab源码 935期】
  18. 产品经理入门——需求收集
  19. 微信定向流量_我和我的小伙伴都玩微信定向流量了
  20. 搭建Aqours Online Judge的琐琐碎碎(二)为什么我更新了18.04之后就ssh不上去了啊?...

热门文章

  1. Opencv之图像矩(晦涩难懂,用到再看吧)
  2. ResNet详解与分析
  3. abaqus导出全部节点应力值
  4. 连自律都做不到 还谈什么梦想
  5. QQ浏览器X5内核问题汇总 转
  6. linux_添加一个普通用户
  7. windows下之定时执行bat脚本
  8. python爬虫返回文本为乱码的解决方法
  9. HangFire简单实践
  10. windows_关闭windows休眠功能