YOLO(You Only Look Once)论文

近些年,R-CNN等基于深度学习目标检测方法,大大提高了检测精度和检测速度。

例如在Pascal VOC数据集上Faster R-CNN的mAP达到了73.2。而YOLO和SSD在达到较高的检测精度的同时,检测速度都在40FPS以上。这里主要对YOLO做简单介绍。

整个YOLO的网络结构如图,前面20层使用了改进的GoogleNet,得到14×14×1024的tensor,接下来经过4个卷积层分别进行3×3的卷积操作和1×1的降维操作,最后经过两个全连接层后输出为7×7×30的tensor。检测目标就能从7×7×30的tensor中得到。

作者首先取出前面的20层网络,另外再加上一个average-pooling层和一个全连接层,在ImageNet训练集上进行图像分类任务的欲训练,top-5达到88%的准确度。然后将经过图像分类训练的前20层网络加上后面的网络层进行检测任务的训练。

7×7×30 tensor的解释:
其实这里的7×7并不是将输入图像划分为7×7的网格,实际上指经过多个卷积层处理过后的特征map是7×7大小的,而且其中的每个cell是互相有重叠的,但是为了便于直观理解,直接将原始图像用7×7的网格进行划分。可以看到每个cell向量的前5维分别代表了一个检测框的x坐标,y坐标,宽度和高度,检测框中有目标物体的置信度(P(Object) ∗ IOU)。

在论文中每个cell有两个检测框,6到10维向量代表了另外一个检测框的x坐标,y坐标,宽度和高度,检测框中有目标物体的置信度。


cell还剩下20维向量,代表这个cell中的物体属于20个类别的概率值。将cell两个检测框的置信度分别乘以20类别的概率值。




最后得到了7×7×2=98个检测框的20个类别的概率值。

接下来要从候选的检测框中找出最后的目标框:

对每个类别,进行阈值比较、降序排列、对有重叠的候选框使用非极大值抑制(NMS)操作。



最后候选框的最终分数得到最终的类别和分数:

标出检测框:

关于非极大值抑制(NMS):


用bbox_max代表分数最大的候选框,将其与其他候选框bbox_cur进行比较,如果IoU(bbox_max,bbox_cur)>0.5,将候选框bbox_cur的分数置为0。
第一轮循环后,由于橙色框(bbox_max)和绿色框的重叠度大于0.5,所以将绿色候选框的分数置0。

第二轮循环,将剩下的第二大分数的候选框设为bbox_max(图中的蓝色框)

同样的道理,由于蓝色框(bbox_max)和粉色框的重叠度大于0.5,所以将粉色候选框的分数置0。

使用非极大值抑制循环结束后,很多情况下,都只有少数的几个候选框大于0。

关于Intersect over Union (IoU)

关于Yolo v2

后来作者对YOLO进行了改进,公布了YOLO v2,论文
在精度(73.4 mAP on Pascal voc)和速度两个方面都有提高,并且提出了能够检测9000类物体的方法。
具体改进的地方有:

  • 增加了batch normalization
  • 在ImageNet上的预训练使用224×224和448x448两种尺寸的图像。
  • 用Faster-RCNN类似的anchor boxes ,代替7×7grid-cell。
  • 用kmeans方法得到box形状,代替人工选择box形状。
  • 在ImageNet和MS-COCO数据集上进行训练。
  • 提出了能够在分类数据集上训练检测任务的方法。
  • 使用WordTree结合多种不同标签的数据。

参考:
deepsystems.io

快速理解YOLO目标检测的更多相关文章

  1. Python实现YOLO目标检测

    作者:R语言和Python学堂 链接:https://www.jianshu.com/p/35cfc959b37c 1. 什么是目标检测? YOLO目标检测的一个示例 啥是目标检测? 拿上图 (用YO ...

  2. CNN之yolo目标检测算法笔记

    本文并不是详细介绍yolo工作原理以及改进发展的文章,只用做作者本人回想与提纲. 1.yolo是什么 输入一张图片,输出图片中检测到的目标和位置(目标的边框) yolo名字含义:you only lo ...

  3. Keras+Yolo 目标检测

    参考:https://www.cnblogs.com/tensorflownews/p/8922359.html Github:https://github.com/qqwweee/keras-yol ...

  4. TensorFlow + Keras 实战 YOLO v3 目标检测图文并茂教程

    运行步骤 1.从 YOLO 官网下载 YOLOv3 权重 wget https://pjreddie.com/media/files/yolov3.weights 下载过程如图: 2.转换 Darkn ...

  5. 第三十六节,目标检测之yolo源码解析

    在一个月前,我就已经介绍了yolo目标检测的原理,后来也把tensorflow实现代码仔细看了一遍.但是由于这个暑假事情比较大,就一直搁浅了下来,趁今天有时间,就把源码解析一下.关于yolo目标检测的 ...

  6. [炼丹术]YOLOv5目标检测学习总结

    Yolov5目标检测训练模型学习总结 一.YOLOv5介绍 YOLOv5是一系列在 COCO 数据集上预训练的对象检测架构和模型,代表Ultralytics 对未来视觉 AI 方法的开源研究,结合了在 ...

  7. 理解 YOLO

    YOLO: 1. YOLO的网络结构 YOLO v1 network (没看懂论文上的下图,看下面这个表一目了然了) 24层的卷积层,开始用前面20层来training, 图片是224x224的,然后 ...

  8. 使用Caffe完成图像目标检测 和 caffe 全卷积网络

    一.[用Python学习Caffe]2. 使用Caffe完成图像目标检测 标签: pythoncaffe深度学习目标检测ssd 2017-06-22 22:08 207人阅读 评论(0) 收藏 举报 ...

  9. 目标检测中常提到的IoU和mAP究竟是什么?

    看完这篇就懂了. IoU intersect over union,中文:交并比.指目标预测框和真实框的交集和并集的比例. mAP mean average precision.是指每个类别的平均查准 ...

随机推荐

  1. [技术翻译]使用Nuxt生成静态网站

    本周再来翻译一些技术文章,本次预计翻译三篇文章如下: 04.[译]使用Nuxt生成静态网站(Generate Static Websites with Nuxt) 05.[译]Web网页内容是如何影响 ...

  2. Jenkins2构建pipeline流水线

    流水线有两种方式: 1.脚本式流水线 2.声明式流水线 构建流水线的简单示例: 脚本式流水线 node ('master'){ stage("Source"){ //从Git仓库中 ...

  3. Notepad++中安装json格式化插件

    在线工具固然好,一旦没网就凉凉 Notepad++编辑器中提供了 json 数据格式化显示的插件 安装插件过程如下: 注意: 安装过程需要联网状态 插件安装过程会自动退出程序,等待几秒钟后插件安装完成 ...

  4. BigInteger&BigDecimal类

    BigInteger类 当需要处理超过 long 数值范围的大整数时,java.math 包中的 BigInteger 类提供任意精度的整数运算. 构造方式 //构造方法,将BigInteger的十进 ...

  5. 记录我的 python 学习历程-Day12 生成器/推导式/内置函数Ⅰ

    一.生成器 初识生成器 生成器的本质就是迭代器,在python社区中,大多数时候都把迭代器和生成器是做同一个概念. 唯一的不同就是: 迭代器都是Python给你提供的已经写好的工具或者通过数据转化得来 ...

  6. 你知道Java中的CopyOnWriteArrayList吗?

    CopyOnWrite CopyOnWrite是什么? CopyOnWriteArrayList源码分享? CopyOnWriteArrayList使用场景? CopyOnWriteArrayList ...

  7. A*算法知识讲解

  8. 构造分组背包(CF)

    Ivan is a student at Berland State University (BSU). There are n days in Berland week, and each of t ...

  9. 如何编写Robot Framework测试用例1---(基本格式篇)

    引子 我们使用符合Robot Framework规范的一种表格语法来编写测试用例.用例一般会是下面这个样子 这样的表格存储到一个文件中,就是一组测试用例.RF支持多种格式,如HTML,TSV,纯文本等 ...

  10. Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)

    0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...