《YOLOv3: An Incremental Improvement》

Joseph Redmon Ali Farhadi
University of Washington

发表时间:2018


YOLO v3总结了自己在YOLO v2的基础上做的一些尝试性改进,有的尝试取得了成功,而有的尝试并没有提升模型性能。其中有两个值得一提的亮点,一个是使用残差模型,进一步加深了网络结构;另一个是使用FPN架构实现多尺度检测。

YOLO v3的创新点有哪些?

1. 全新的网络结构:DarkNet-53

2. 融合了FPN

3. 用逻辑回归替代softmax作为分类器


1. YOLOv3网络结构改进–Darknet-53

YOLO v3在之前Darknet-19的基础上引入了残差模块,并进一步加深了网络,改进后的网络有535353个卷积层,取名为Darknet-53,网络结构如下图所示(以256×256以256×256以256×256的输入为例)。

Darknet-53模型结构 整个网络主要包括5组残差块,如下:

以256x256输入为例,首先经过一个3x3x32的卷积层输出为256x256x32;
接着经过一个3x3x64 stride=2的卷积层输出为128x128x64;
接着经过一个残差块(前面学习残差网络的时候学过),输出为128x128x64;
再经过一个3x3x128 stride=2的卷积层输出为64x64x128;
经过2个残差块后输出为64x64x128;
接着经过一个3x3x256 stride=2的卷积层输出为32x32x256;
接着经过8个残差块,输出为32x32x256;
再经过一个3x3x512 stride=2的卷积层输出为16x16x512;
接着经过8个残差块后输出为16x16x512;
接着经过一个3x3x1024 stride=2的卷积层输出为8x8x1024;
接着经过4个残差块后输出为8x8x1024;
最后经过池化全连接层以及softmax输出.

更加具体的Pytorch复现请看我另一篇文章 Darknet53网络结构复现(Pytorch版)

为了比较Darknet-53与其它网络结构的性能,作者在TitanX上,采用相同的实验设置,将256×256256×256256×256的图片分别输入以Darknet-19,ResNet-101,ResNet-152和Darknet-53为基础网络的分类模型中,实验得到的结果如下图所示。可以看到Darknet-53比ResNet-101的性能更好,而且速度是其1.5倍,Darknet-53与ResNet-152性能相似但速度几乎是其2倍。注意到,Darknet-53相比于其它网络结构实现了每秒最高的浮点计算量,说明其网络结构能更好的发挥GPU性能 。


2.YOLOv3FPN改进

YOLO v3借鉴了FPN的思想,从不同尺度提取特征。相比YOLO v2,YOLO v3提取最后3层特征图,不仅在每个特征图上分别独立做预测,同时通过将小特征图上采样到与大的特征图相同大小,然后与大的特征图拼接做进一步预测。用维度聚类的思想聚类出9种尺度的anchor box,将9种尺度的anchor box均匀的分配给3种尺度的特征图。

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


(图片转载江大白)


3.YOLOv3损失函数改进

YOLOv3对类别预测的代价函数进行了修改,并且没有用softmax。用了逻辑回归层来对每个类别做二分类。逻辑回归层主要用到sigmoid函数,该函数可以将输入约束在0~1的范围内,因此当一张图像经过特征提取后的某一类输出经过sigmoid函数约束后如果大于0.5,就表示属于该类,这样一个框就可以预测多个类别,代价函数用的是sigmoid的交叉熵。


总结

从YOLO v1到YOLO v2再到YOLO 9000、YOLO v3, YOLO经历三代变革,在保持速度优势的同时,不断改进网络结构,同时汲取其它优秀的目标检测算法的各种trick,先后引入anchor box机制、引入FPN实现多尺度检测等,在目标检测领域取得了空前的成功,但YOLO v3也是Joseph Redmon Ali Farhadi的最后一篇目标检测领域的论文,他因为一些原因已经宣布永远退出目标检测领域。


本文只介绍YOLO v3较v1 v2的创新之处,v1 v2详解见
YOLO v1详细解读
YOLO v2详细解读

YOLO v3详细解读相关推荐

  1. YOLO v1详细解读

    <You Only Look Once: Unifified, Real-Time Object Detection> Joseph Redmon∗* , Santosh Divvala∗ ...

  2. 【YOLO系列】YOLOv1论文超详细解读(翻译 +学习笔记)

    前言 从这篇开始,我们将进入YOLO的学习.YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍. 本文主要介绍的是YOLOV1,这是由以Jo ...

  3. YOLO v3模型详细解读

    目录 前言 1.网络架构 1.1 backbone网络 2.Bounding Box Prediction-边界框预测 2.1 多尺度预测 2.2 anchor网格偏移量预测 2.3 Yolo Hea ...

  4. 【YOLO系列】--YOLOv1超详细解读/总结

    文章目录 前言 摘要 一.Introduction-介绍 二. Unified Detection-统一检测 三.Comparison to Other Detection Systems-与其他目标 ...

  5. DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略

    DL之YoloV3:Yolo V3算法的简介(论文介绍).各种DL框架代码复现.架构详解.案例应用等配图集合之详细攻略 目录 Yolo V3算法的简介(论文介绍) 0.YoloV3实验结果 1.Yol ...

  6. 【YOLO系列】YOLOv5超详细解读(网络详解)

    前言 吼吼!终于来到了YOLOv5啦! 首先,一个热知识:YOLOv5没有发表正式论文哦~ 为什么呢?可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧,hh 目录 前言 一.YOLOv5 ...

  7. layer output 激活函数_深入理解YOLO v3实现细节 - 第3篇 构建v3的Loss_layer

    深入理解YOLO v3实现细节系列文章,是本人根据自己对YOLO v3原理的理解,结合开源项目tensorflow-yolov3,写的学习笔记.如有不正确的地方,请大佬们指出,谢谢! 目录 第1篇 数 ...

  8. python实现yolo目标检测_从零开始PyTorch项目:YOLO v3目标检测实现

    在过去几个月中,我一直在实验室中研究提升目标检测的方法.在这之中我获得的最大启发就是意识到:学习目标检测的最佳方法就是自己动手实现这些算法,而这正是本教程引导你去做的. 在本教程中,我们将使用 PyT ...

  9. 从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.跟踪基础知识简介 首先要说明一点,现在多目标跟踪算法的效果,与 ...

最新文章

  1. python一切皆对象的理解_在 Python 中万物皆对象
  2. SAP登陆界面TITLE修改方法(Method of SAP Logon GUI Title Modification)
  3. java putnextentry_Java对zip格式压缩和解压缩
  4. VTK:模型之MarchingSquares
  5. XPath语法 在C#中使用XPath例子与用法
  6. Java规范请求中的数字
  7. 11 Interior-point methods and Conclusions
  8. pic单片机c语言读eeprom,PIC16F877单片机内部EEPROM读写实例
  9. 项目:SQL server 2008构建群集——环境部署
  10. Spring Boot 终极清单
  11. SharePoint中添加或者修改Item时调用EventReceiver(Event Handler)处理额外的逻辑
  12. c3p0配置 initialPoolSize 和minPoolSize 可以设为0吗?设0有坏处吗?
  13. linux 分区 LVM 挂载
  14. 带圈数字字体1-100
  15. NCBI|线粒体基因组数据上传
  16. 故障树FTA(fault tree analysis)工具链
  17. 关于电视盒子/XBOX/手机使用kodi访问局域网下的windows电脑文件/电影
  18. python如何保存excel文件
  19. matplotlib绘制四个子图
  20. 为什么要学习微信小程序直播开发?最新的小程序直播介绍和优势分析!

热门文章

  1. 我的世界hmcl启动器登录教程
  2. Linux FTP搭建及其使用
  3. HTML矢量图标的应用
  4. AD将原理图转换成彩色或者黑白PDF,主要是依据页面设计中的色彩设置黑白或者彩色打印。打印机中的高级设置或者属性设置中的色彩黑白或者彩色不起作用(亲自测试)
  5. 如何使用python编程解决生活中的问题-日常工作问题处理中Python程序的运用
  6. Ansys workbench结构线性静力学分析-简支梁分析
  7. 8分钟完成NodeJs爬虫,把JRS小姐姐全部看个遍
  8. houdini视图切换快捷键
  9. java exception 乱码_java如何解决乱码问题
  10. springboot 整合minio client 简单使用 视频流展示demo