目标检测网络之 YOLOv3

        </h1><div class="clear"></div><div class="postBody">

yolo-idea

本文逐步介绍YOLO v1~v3的设计历程。

YOLOv1基本思想

YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。

yolo-grid-predict

每个格子预测B个bounding box及其置信度(confidence score),以及C个类别概率。bbox信息(x,y,w,h)为物体的中心位置相对格子位置的偏移及宽度和高度,均被归一化.置信度反映是否包含物体以及包含物体情况下位置的准确性,定义为Pr(Object)×IOUtruthpred,其中Pr(Object)∈{0,1}Pr(Object)×IOUpredtruth,其中Pr(Object)∈{0,1}.

优缺点

优点

  • 快速,pipline简单.
  • 背景误检率低。
  • 通用性强。YOLO对于艺术类作品中的物体检测同样适用。它对非自然图像物体的检测率远远高于DPM和RCNN系列检测方法。

但相比RCNN系列物体检测方法,YOLO具有以下缺点:

  • 识别物体位置精准性差。
  • 召回率低。在每个网格中预测固定数量的bbox这种约束方式减少了候选框的数量。

YOLO v.s. Faster R-CNN

  1. 统一网络:
    YOLO没有显示求取region proposal的过程。Faster R-CNN中尽管RPN与fast rcnn共享卷积层,但是在模型训练过程中,需要反复训练RPN网络和fast rcnn网络.
    相对于R-CNN系列的"看两眼"(候选框提取与分类,图示如下),YOLO只需要Look Once.
  2. YOLO统一为一个回归问题
    而R-CNN将检测结果分为两部分求解:物体类别(分类问题),物体位置即bounding box(回归问题)。

R-CNN pipline

Darknet 框架

Darknet 由 C 语言和 CUDA 实现, 对GPU显存利用效率较高(CPU速度差一些, 通过与SSD的Caffe程序对比发现存在CPU较慢,GPU较快的情况). Darknet 对第三方库的依赖较少,且仅使用了少量GNU linux平台C接口,因此很容易移植到其它平台,如Windows或嵌入式设备.
参考Windows 版 Darknet (YOLOv2) 移植, 代码在此.

region层:参数anchors指定kmeans计算出来的anchor box的长宽的绝对值(与网络输入大小相关),num参数为anchor box的数量,
另外还有bias_match,classes,coords等参数.在parser.c代码中的parse_region函数中解析这些参数,并保存在region_layer.num参数保存在l.n变量中;anchors保存在l.biases数组中.region_layer的前向传播中使用for(n = 0; n < l.n; ++n)这样的语句,因此,如果在配置文件中anchors的数量大于num时,仅使用前num个,小于时内存越界.

region层的输入和输出大小与前一层(1x1 conv)的输出大小和网络的输入大小相关.

Detection层: 坐标及类别结果输出层.

yolo层: 指定anchors等信息, 计算loss等. YOLOv3使用三个yolo层作为输出.

upsample层: 上采样层, 进行2倍上采样.

region层和Detection层均是YOLOv2模型所使用的层, upsample层和yolo层在YOLOv3中使用.

鉴于 Darknet 作者率性的代码风格, 将它作为我们自己的开发框架并非是一个好的选择. 可以在我们更为熟悉的Caffe等框架中复现YOLO网络. 这里有一份Caffe版YOLOv3实现(仅部署,不能训练), 另可参照其它框架的可训练代码.


参考

  • YOLO主页
  • YOLOv3: An Incremental Improvement
  • YOLO9000: Better, Faster, Stronger
  • You Only Look Once: Unified, Real-Time Object Detection
原文: https://www.cnblogs.com/makefile/p/YOLOv3.html © 康行天下
分类: 深度学习
标签: 深度学习, 目标检测
<div id="blog_post_info">
好文要顶 关注我 收藏该文

康行天下
关注 - 25
粉丝 - 150

+加关注
18
0
<div class="clear"></div>
<div id="post_next_prev"><a href="https://www.cnblogs.com/makefile/p/GAN.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/makefile/p/GAN.html" title="发布于 2018-03-23 11:30">生成式模型之 GAN</a>
<br>
<a href="https://www.cnblogs.com/makefile/p/metrics-mAP.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/makefile/p/metrics-mAP.html" title="发布于 2018-04-02 21:15">目标检测评价指标(mAP)</a>
posted @ 2018-03-24 18:19 康行天下 阅读(128962) 评论(28) 编辑 收藏
</div><!--end: topics 文章、评论容器-->
评论列表
         </div>

#1楼

2018-03-27 15:31

        <a id="a_comment_author_3934846" href="https://home.cnblogs.com/u/1350827/" target="_blank">jiahcen</a></div><div class="feedbackCon">
厉害了。。。
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#2楼

[楼主]

2018-03-27 15:33

        <a id="a_comment_author_3934849" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ jiahcen
。。。我的国
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#3楼

2018-04-03 09:55

        <a id="a_comment_author_3941024" href="https://home.cnblogs.com/u/1214055/" target="_blank">成了</a></div><div class="feedbackCon">
请问YOLOv3最后输出那些尺度的框?
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#4楼

[楼主]

2018-04-03 10:51

        <a id="a_comment_author_3941096" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 成了
应该是所有尺度的框合并后nms,输出score较高的框
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#5楼

2018-07-27 15:19

        <a id="a_comment_author_4030267" href="https://www.cnblogs.com/liuzhongfeng/" target="_blank">liurio</a></div><div class="feedbackCon">
总结的很好啊
支持(0) 反对(0)

https://pic.cnblogs.com/face/861394/20160413212251.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#6楼

2018-10-10 14:22

        <a id="a_comment_author_4085500" href="https://home.cnblogs.com/u/1434051/" target="_blank">JoeJo</a></div><div class="feedbackCon">
文章看过两次,之前是草草看过觉得图文配置特别好容易理解。
今天第二遍,发现内容很细致,很多细节都讲得很清楚,很棒的文章
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#7楼

2018-10-11 10:19

        <a id="a_comment_author_4086348" href="https://home.cnblogs.com/u/1507720/" target="_blank">20181010</a></div><div class="feedbackCon">
很受用
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#8楼

2018-11-07 15:26

        <a id="a_comment_author_4108799" href="https://www.cnblogs.com/defineconst/" target="_blank">咸鱼翻身</a></div><div class="feedbackCon">
卫星影像使用YOLO V3,对原始文件需要拆分吗?
支持(1) 反对(0)

https://pic.cnblogs.com/face/u37018.jpg

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#9楼

[楼主]

2018-11-07 15:33

        <a id="a_comment_author_4108810" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 咸鱼翻身
如果图像大而目标小,是需要对图片进行划分成小图片的
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#10楼

2019-03-10 01:12

        <a id="a_comment_author_4197952" href="https://home.cnblogs.com/u/1360567/" target="_blank">馒头mjtb</a></div><div class="feedbackCon">
请问YOLOv3的3个Scale的检测图(13×13,26×26,52×52)是怎么检测物体的?
如果一张图片有一辆车和一个人,哪个检测图负责检测车?哪个检测图负责检测人?
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#11楼

2019-03-10 01:12

        <a id="a_comment_author_4197953" href="https://home.cnblogs.com/u/1360567/" target="_blank">馒头mjtb</a></div><div class="feedbackCon">
I was wondering which one of the Three Detection Map(13*13, 26*26, 52*52) should responsible for predicting a object(i.e a Car) in a picture?

according to the labeled bonding box size of the car and the anchor size in the [yolo] layer?
If all the detection maps predict the car, how to combine the three output?

支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#12楼

[楼主]

2019-03-10 20:03

        <a id="a_comment_author_4198372" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 馒头mjtb
这里不同尺度的特征图都检测用来检测所有的类别,没有对类别按大小区分,而是对anchor按大小划分到不同的特征,类似FPN与SSD。
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#13楼

2019-03-10 20:14

        <a id="a_comment_author_4198376" href="https://home.cnblogs.com/u/1360567/" target="_blank">馒头mjtb</a></div><div class="feedbackCon">
@ 康行天下
13×13的检测图分配大的anchor,小分辨率的特征图语义信息强;52×52的特征图分配小的anhor,大分辨率的特征图,位置信息强,但是我不明白13×13的检测特征图怎么和52×52的检测特征图合作啊?

方便详细一点的解释吗,举一个例子可以吧

支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#14楼

[楼主]

2019-03-10 20:20

        <a id="a_comment_author_4198383" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 馒头mjtb
在anchor分配之后,小目标就由大特征图上进行学习产生了,大目标在小特征图上,这就是一种分工合作啊。
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#15楼

2019-03-10 20:35

        <a id="a_comment_author_4198389" href="https://home.cnblogs.com/u/1360567/" target="_blank">馒头mjtb</a></div><div class="feedbackCon">
@ 康行天下
这样理解对吧:在anchor分配之后,小的目标也可以会被小的特征图学习,可能学习起来比较慢,possibility也会很小,可能都达不到0.25的阈值;大目标大的检测图学习也一样
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#16楼

[楼主]

2019-03-10 20:42

        <a id="a_comment_author_4198391" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 馒头mjtb
嗯,对
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#17楼

2019-04-17 19:12

        <a id="a_comment_author_4233704" href="https://home.cnblogs.com/u/1586532/" target="_blank">Reminding</a></div><div class="feedbackCon">
博主你好,能不能用下你的图片,做ppt使用
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#18楼

[楼主]

2019-04-17 19:15

        <a id="a_comment_author_4233705" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ Reminding
可以,图片也不全是我的
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#19楼

2019-04-17 19:15

        <a id="a_comment_author_4233708" href="https://home.cnblogs.com/u/1586532/" target="_blank">Reminding</a></div><div class="feedbackCon">
@ 康行天下
谢谢!
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#20楼

2019-04-17 20:20

        <a id="a_comment_author_4233766" href="https://home.cnblogs.com/u/1586532/" target="_blank">Reminding</a></div><div class="feedbackCon">
博主你好,还有其他问题请教,不知道方不方便加个微信或qq
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#21楼

2019-07-22 18:30

        <a id="a_comment_author_4306400" href="https://home.cnblogs.com/u/962771/" target="_blank">水翼lv</a></div><div class="feedbackCon">
写得很棒~加油
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#22楼

[楼主]

2019-07-24 09:00

        <a id="a_comment_author_4307527" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 水翼lv
谢谢!
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#23楼

2019-07-25 17:49

        <a id="a_comment_author_4308998" href="https://home.cnblogs.com/u/1301932/" target="_blank">唐康</a></div><div class="feedbackCon">
感觉是最棒的YOLO解读文章了~ 配合着darknet项目源代码和配置文件看的,理解得很透彻。
感谢作者!
支持(0) 反对(0)
     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#24楼

[楼主]

2019-07-30 11:14

        <a id="a_comment_author_4312214" href="https://www.cnblogs.com/makefile/" target="_blank">康行天下</a></div><div class="feedbackCon">
@ 唐康
过誉了!
支持(0) 反对(0)

https://pic.cnblogs.com/face/606386/20161018214555.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#25楼

2019-08-23 15:22

        <a id="a_comment_author_4335028" href="https://www.cnblogs.com/sdu20112013/" target="_blank">core!</a></div><div class="feedbackCon">
算loss的时候confidence score 的groud-truth是怎么算的 某个目标的中心落在了某个cell 相应的confidence的真值就是1 没落在真值就是0?
支持(0) 反对(0)

https://pic.cnblogs.com/face/583030/20181201135834.png

     </div></div><div class="feedbackItem"><div class="feedbackListSubtitle"><div class="feedbackManage">&nbsp;&nbsp;
         </div>

#26楼

2019-08-23 15:47

        <a id="a_comment_author_4335072" href="https://www.cnblogs.com/sdu20112013/" target="_blank">core!</a></div><div class="feedbackCon">
若采用相同的权值,那么不包含物体的格子的confidence值近似为0,变相放大了包含物体的格子的confidence误差在计算网络参数梯度时的影响。为解决这个问题,YOLO 使用

目标检测网络之 YOLOv3相关推荐

  1. yolov3为什么对大目标检测不好_【目标检测简史】进击的YOLOv3,目标检测网络的巅峰之作...

    YOLOv3的前世今生 2013年,R-CNN横空出世,目标检测DL世代大幕拉开. 各路豪杰快速迭代,陆续有了SPP,fast,faster版本,至R-FCN,速度与精度齐飞,区域推荐类网络大放异彩. ...

  2. 计算机视觉算法——目标检测网络总结

    计算机视觉算法--目标检测网络总结 计算机视觉算法--目标检测网络总结 1. RCNN系列 1.1 RCNN 1.1.1 关键知识点--网络结构及特点 1.1.2 关键知识点--RCNN存在的问题 1 ...

  3. 深度学习目标检测网络汇总对比,挺好的

    深度学习目标检测网络汇总对比 本文总阅读量次 欢迎star我的博客 2019-01-03 参考 :https://medium.com/@jonathan_hui/object-detection-s ...

  4. 从R-CNN到Faster-RCNN再到YOLOV5,目标检测网络发展概述

    R-CNN R-CNN由Ross Girshick于2014年提出,R-CNN首先通过选择性搜索算法Selective Search从一组对象候选框中选择可能出现的对象框,然后将这些选择出来的对象框中 ...

  5. 目标检测网络中的Backbone,Neck和Head - 以YOLOv4为例

    目标检测网络中的Backbone,Neck和Head - 以YOLOv4为例 目标检测网络中常见到的三个概念: Backbone:在不同图像细粒度上聚合并形成图像特征的卷积神经网络: Neck:一系列 ...

  6. 一种投影法的点云目标检测网络

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 本文来源于早期的一篇基于投影法的三维目标检测文章<An Euler-Region-Pr ...

  7. 丢弃Transformer!旷视和西安交大提出基于FCN的端到端目标检测网络

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文作者:王剑锋  | 编辑:Amusi https://zhuanlan.zhihu.com ...

  8. 两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud

    本文介绍一篇两阶段的3D目标检测网络:SIENet. 这里重点是理解本文提出的 Hybrid-Paradigm Region Proposal Network 和 Spatial Informatio ...

  9. 详解两阶段3D目标检测网络 Voxel R-CNN:Towards High Performance Voxel-based 3D Object Detection

    本文介绍一篇两阶段的3D目标检测网络:Voxel R-CNN,论文已收录于AAAI 2021. 这里重点是理解本文提出的 Voxel RoI pooling. 论文链接为:https://arxiv. ...

最新文章

  1. 听妈妈的话-07年感动的延续
  2. Docker: Failed to get D-Bus connection: No connection to service
  3. Java 调用 Kotlin
  4. set删除一个元素时间复杂度_set/map接口及其实现类
  5. python读取txt文件并批量写入不同的excel
  6. 译:C#面向对象的基本概念 (Basic C# OOP Concept) 第二部分(封装,抽象,继承)...
  7. 15 设置系统分词器
  8. Linux中防火墙端口查看,开启与关闭
  9. 应用悄悄拿走你的隐私做了什么?只需30秒这个AI给你答案
  10. 基于JavaScript技术完成单击事件完成显示和隐藏
  11. Linux---字符设备驱动程序设计
  12. acrobat professional的安装版本
  13. 怎么从零基础学计算机打字,新手学电脑打字 0基础打字快速上手教程
  14. M2Det 论文阅读心得[目标检测领域]
  15. Matlab/yalmip工具编写自动驾驶模型预测控制(MPC)代码
  16. 条码打印软件如何制作二维码
  17. css样式代码的基本格式
  18. Android 屏蔽Menu键
  19. 快进来看看!!!C语言——扫雷小游戏(递归展开无雷区)
  20. centos中startup.sh启动服务脚本

热门文章

  1. java中bio_java中bio是什么
  2. 【老保姆教程】:Tesseract-OCR图片文字识别
  3. B树代码实现--C++
  4. 2021中国农业银行(浙江省分信息科技岗)春招笔试编程题(待更)
  5. uniapp公众号微信支付
  6. Hooks(钩子)监听消息的方法
  7. reverse方法(自己实现)
  8. 【菜鸟教程】Dubbo基础入门下——Dubbo的入门案例
  9. java 图像合成加相框_合成走进相框人物照片效果的PS教程
  10. 一元多项式的加法详解