YOLOv3

论文:《 YOLOv3: An Incremental Improvement 》
地址: https://arxiv.org/pdf/1804.02767.pdfyolov3

相比之前版本的改进

  • 网络的特征提取部分
    由 Darknet-19改成了 Darknet-53,更深了,速度确有下降,但是相比ResNet来说仍然高很多。
    b799f7151e3a56e0c6678fdae50a3c00.png9d554116caf26a6a91d11ab2569aec06.png

  • 跨尺度预测
    yolov3网络在3个不同尺寸的特征图下,每个尺寸的特征图预测出3个boxes,anchor box还是采用聚类的方法得到9个anchor box,然后3个不同的尺寸特征图各得到3个anchor box。 这样就得到了N ×N ×[3∗(4+1+80)] ,N为格子大小(13*13、26*26、52*52),3为每个格子得到的边界框数量, 4是边界框参数数量(x,y,w,h),1是置信度(包含类别和边界框位置),80是类别数量(这里coco数据集是80类)。
    dc15c8d08efd69014003e733f7459377.png yolo3会利用第82、94、106层的特征图来进行不同尺寸的目标检测。
    82层的图像小(分辨率低),感受野大,可以到检测图像中较大的目标;
    94层的图像中等,感受野中等,可以检测到图像中不大也不小的目标;
    106层的图像大(分辨率高),但感受野相对最小,可以检测到图像中较小的目标。
    所以如果训练过程中,发现某层的输出值是非数,这只是说明在这层没有检测到目标对象,只要三层中至少有一层能输出正常的数字,就是正常的。
    从图上也可以看到,为了能同时学到浅层和深层的特征,上面的82、94层特征图自身经过上采样后还会和早期层的特征图做一些拼接(concat)操作。用论文原话说就是:这样的方法让我们从上采样特征中得到更多有意义的语义信息;从更早期的特征中得到纹理信息(finer-grained information)。

  • 类别预测
    因为每个边界框都采用多标签分类器来预测包含的类别,所以作者 没有使用softmax,而是为每个类别的预测使用了相互独立的逻辑回归分类器。该方法使得yolov3可以训练类像Open Images数据集那么复杂的数据,该数据集有许多包含属性的标签,比如(比如对图像中的一个人进行标注,可以有“女人”和“人”等多个标签)。

yolov3性能对比图表:

02eb463917889391964e568f7b1d0deb.png

总结一下:

  • YOLOv1提出了一个端到端的目标检测模型,输入图片,仅跑一个网络,即可识别出图片中的目标类型和目标的位置。
  • YOLOv1相比其他模型,更快,已经可以达到实时检测的水品;泛化能力更强,即使在自然图片上训练,然后在艺术图片上测试也能有很好的表现。
  • YOLOv1的缺点也很明显:在目标位置的预测上还不够准确;很难检测小目标(比如鸟群);很难泛化到新的或不常见的纵横比图片上;
  • YOLOv2在学习速度、准确度、对小目标的检测、对不同尺度图片的检测上都有提升;
  • YOLOv3采用了更深的网络来提取特征,准确度提升了2%以上,速度下降了,但是仍然比其他模型要高很多;
  • YOLOv3采用了跨尺度预测和FPN( feature pyramid networks)的结构,综合考虑了浅层的特征和深层的特征,使得位置信息和语义信息都能更准确的预测;
  • YOLOv3可以训练类像Open Images那样复杂的数据集,因为作者 没有使用softmax,而是为每个类别的预测使用了相互独立的逻辑回归分类器。

ok,yolo的原理和各版本差异就介绍到这里啦,还想了解更多细节的朋友建议亲自读一读原论文,然后结合之前笔者写的几篇目标检测系列的文章亲自上手操作一下,会有更深的理解。

参考文献:
https://arxiv.org/pdf/1506.02640.pdf
https://arxiv.org/pdf/1612.08242v1.pdf
https://arxiv.org/pdf/1804.02767.pdfyolov3
https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b

手把手教你用深度学习做物体检测(七):YOLOv3介绍的更多相关文章

  1. 手把手教你用深度学习做物体检测(六):YOLOv2介绍

    本文接着上一篇<手把手教你用深度学习做物体检测(五):YOLOv1介绍>文章,介绍YOLOv2在v1上的改进.有些性能度量指标术语看不懂没关系,后续会有通俗易懂的关于性能度量指标的介绍文章 ...

  2. 手把手教你用深度学习做物体检测(五):YOLOv1介绍

    "之前写物体检测系列文章的时候说过,关于YOLO算法,会在后续的文章中介绍,然而,由于YOLO历经3个版本,其论文也有3篇,想全面的讲述清楚还是太难了,本周终于能够抽出时间写一些YOLO算法 ...

  3. 手把手教你搭建深度学习平台——避坑安装theano+CUDA

    python有多混乱我就不多说了.这个混论不仅是指整个python市场混乱,更混乱的还有python的各种附加依赖包.为了一劳永逸解决python的各种依赖包对深度学习造成的影响,本文中采用pytho ...

  4. 深度学习实践-物体检测-faster-RCNN(原理和部分代码说明) 1.tf.image.resize_and_crop(根据比例取出特征层,进行维度变化) 2.tf.slice(数据切片) 3.x.argsort()(对数据进行排列,返回索引值) 4.np.empty(生成空矩阵) 5.np.meshgrid(生成二维数据) 6.np.where(符合条件的索引) 7.tf.gather取值

    1. tf.image.resize_and_crop(net, bbox, 256, [14, 14], name)  # 根据bbox的y1,x1,y2,x2获得net中的位置,将其转换为14*1 ...

  5. #Deep Learning回顾#之基于深度学习的目标检测(阅读小结)

    原文链接:https://www.52ml.net/20287.html 这篇博文主要讲了深度学习在目标检测中的发展. 博文首先介绍了传统的目标检测算法过程: 传统的目标检测一般使用滑动窗口的框架,主 ...

  6. 用深度学习做命名实体识别(二):文本标注工具brat

    本篇文章,将带你一步步的安装文本标注工具brat. brat是一个文本标注工具,可以标注实体,事件.关系.属性等,只支持在linux下安装,其使用需要webserver,官方给出的教程使用的是Apac ...

  7. 基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN,Faster R-CNN

    基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN,Faster R-CNN object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.obj ...

  8. 深度学习课程笔记(七):模仿学习(imitation learning)

    深度学习课程笔记(七):模仿学习(imitation learning) 2017.12.10 本文所涉及到的 模仿学习,则是从给定的展示中进行学习.机器在这个过程中,也和环境进行交互,但是,并没有显 ...

  9. 基于深度学习的病毒检测技术无需沙箱环境,直接将样本文件转换为二维图片,进而应用改造后的卷积神经网络 Inception V4 进行训练和检测

    话题 3: 基于深度学习的二进制恶意样本检测 分享主题:全球正在经历一场由科技驱动的数字化转型,传统技术已经不能适应病毒数量飞速增长的发展态势.而基于沙箱的检测方案无法满足 APT 攻击的检测需求,也 ...

随机推荐

  1. DesignPattern系列__01SingletonResponsibility

    单一职责原则 单一职责原则:一个类应该只有一个原因引起改变,即一个类应该只负责一个业务逻辑. 问题由来:类T负责t1, t2两个职责,当因为t1j对类T修改的时候,可能导致类T出现问题而影响职责t2. ...

  2. [Pulsar系列] 10分钟学会Pulsar消息系统概念

    Apache Pulsar Pulsar是一个支持多租户的.高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理. Pulsar的主要特性如下: Pulsar实例 ...

  3. Java连载11-转义字符&整数型

    一.转义符 1.\'代表单引号:\\代表\; 二.native2ascii.exe JDK中自带的native2ascii.exe命令,可以将文字转换成unicode编码形式 我们使用这个程序尝试一下 ...

  4. LeetCode :2.两数相加 解题报告及算法优化思路

    题目连接:2.两数相加 题意 题目难度标为 中等, 因为题意上有一部分理解难度,以及需要数据结构的链表基础. 还不知道到链表的童鞋可以粗略的看下百度百科或者是翻出数据结构的书看一看,通俗一点的语言来解 ...

  5. 【精选】Markdown 语法汇总

    博客园也能Markdown?美滋滋,Markdown真的是好用QAQ. 本文档按照Markdown各种常用语法类别,以文字描述+演示的方式来展现markdown语法的使用.Markdown 的目标是实 ...

  6. C#使用代理IP发送请求

    https://www.cnblogs.com/benbenfishfish/p/5830149.html   获取可代理的IP https://www.cnblogs.com/ShalenChe/p ...

  7. GIS历史概述与WebGis应用开发技术浅解

    声明:本篇在李晓晖的<杂谈WebGIS>,补充更多的资料说明.基于地图二次开发一直断断续续在做,这里算是补充一下基本功把.其实对于前端,WebGis开发都是api,抄demo,改.GIS深 ...

  8. 【Kubernetes 系列三】Kubernetes 学习文档推荐

    标题 地址 备注 Kubernetes 官方文档 https://kubernetes.io/docs 英文文档,全面 Kubernetes Handbook ttps://jimmysong.io/ ...

  9. 章节十六、3-TestNG方法和类注解

    一.Test Suite(测试套件) 我们通常认为一个testcase就是一个测试方法,但是会有很多的testcase,所以我们不可能把所有的testcase放到同一个测试类中,假如需要测试的页面有1 ...

  10. [AI] 论文笔记 - CVPR2018 Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation

    写在前面 原始视频(30fps) 补帧后的视频(240fps) 本文是博主在做实验的过程中使用到的方法,刚好也做为了本科毕设的翻译文章,现在把它搬运到博客上来,因为觉得这篇文章的思路真的不错. 这篇文 ...