YOLO9000 : Better, Faster, Stronger

code: http://pjreddie.com/darknet/yolo/

本文主要有两点:
1)改进YOLO,提出了 YOLOv2,速度快,效果好。67 FPS, YOLOv2 gets 76.8 mAP on VOC 2007;
40 FPS, YOLOv2 gets 78.6mAP
2)将检测和分类训练融合到一起,可以检测没有学习到的类别。

1 Introduction
目标检测算法,我们希望它快,准,识别的物体类别多。CNN网络实现了又快又准,但是在类别数目上比较少。与分类、标签数据库相比较,目标检测的数据库是很有限的。目前大多数检测数据库只有几千到几十万张图像,几十到几百的类别;而分类数据库则有几百万张图像,几千个类别。
我们希望能够检测的物体类别数目可以达到几千个,但是如果手工标记这些目标检测样本的话,工作量会很大。这样的数据库短期来看不会出现。 这里我们提出了一个方法可以利用现有的分类数据库来提升检测系统的检测类别能力。
Our method leverages labeled detection images to learn to precisely localize objects while it uses classification images to increase its vocabulary and robustness。

2 Better
第一版本的 YOLO 和其他检测算法相比较,主要缺点是:定位误差数目比较多,再就是和基于 RPN方法相比较,low recall 相对较低。所以我们的目标是在保持分类精度的同时提升 recall and localization。
我们在参考最近的检测算法文献,采用一系列新的思路。下表列出了改进的地方。

Batch Normalization: 加快收敛,不再需要其他形式的 regularization。在所有的卷积层上加入 Batch Normalization 性能提升了 2%。

High Resolution Classifier:原来的 YOLO 的训练图像尺寸是 224 × 224,这里我们将训练图像放大一倍, 448×448。性能提升了 4%。

Convolutional With Anchor Boxes: YOLO直接在卷积特征提取器上面的全链接层上面预测矩形框的坐标。Faster R-CNN没有直接预测矩形框坐标,Faster R-CNN使用人工挑选的先验知识来预测矩形框。在Faster R-CNN中,RPN只使用卷积层对anchor boxes 预测偏差和置信度。因为预测层是卷积的,所有RPN在特征图上每个位置都预测这些偏差。预测偏差而不是坐标,简化了问题,使得网络更容易学习。
参考 Faster R-CNN,去掉了 全链接层,使用 全卷积网络,用 anchor boxes 来预测 bounding boxes。首先我们去掉了一个池化层,这样提高了卷积网络层输出尺寸,我们也将输入图像的尺寸由448*448 变为416,这么做是为了使我们的特征图有奇数个位置,只有一个中心坐标位置。尤其是大的物体通常位于图像中心,预测这些物体希望只有一个位置而不是四个相邻位置。YOLO卷积层对416尺寸输入图像降采样32倍,得到13*13输出特征图。
当我们使用 anchor boxes ,我们也将类别预测从空间位置中分离出来,不是对每个anchor box 预测 类别和物体置信度。
使用 anchor boxes 我们的精度稍微降低了一些,但是recall 增加了,这使得我们的模型有更大的提升空间。

Dimension Clusters 当我们在YOLO中使用 anchor boxes 时遇到了两个问题:第一个问题就是 box dimensions 是手工选择的。网络虽然可以自己通过学习调整 boxes,但是如果我们选择更好的先验知识,网络的学习会更简单,效果更好。这里我们没有手工选择先验知识,而是使用 K 均值聚类方法自动找到好的先验知识。

Direct location prediction 在YOLO中使用 anchor boxes 时遇到的第二个问题是: model instability,尤其在迭代初期。这种不稳定性主要来自于矩形框坐标的预测。这里我们对位置预测加入了适当的约束,提高了稳定性。在anchor boxes 这一步我们提升了 5%的性能。

Fine-Grained Features YOLO是在 13*13的特征图上进行预测的,这个尺寸对于大的物体是没有问题的,但是针对小目标,这里我们加入一个 a passthrough layer 引入上一层 26*26的卷积特征。将这两层特征综合起来进行预测。

Multi-Scale Training 由于我们的网络只有卷积和池化,所以我们在训练时输入不同尺寸的图像,这使得我们的网络可以在不同输入尺寸图像上都有很好得检测效果。

3 Faster
我们希望YOLOv2的速度足够的快。大多数检测网络使用 VGG-16网络作为特征提取器。VGG-16的效果很好,但是计算量很大。YOLO框架采用类似 Googlenet 网络结构,它的速度要快于 VGG-16,效果要差一些。
在 YOLOv2 中,我们提出了一个新的分类模型 Darknet-19,参考 VGG,我们普遍使用 3*3 卷积滤波器,每个池化层之后我们将 channel 的数量增加一倍。参考 Network in Network,我们采用 global average pooling,采用了 batch normalization 来加速收敛和镇定网络。最终的 Darknet-19 速度比Googlenet 快,效果更好。

Training for classification 我们在 标准的 ImageNet 1000 class classification dataset 进行分类训练。

Training for detection 对于检测问题,我们稍微调整了一下网络结构。

训练参数具体设置参考文献。

4 Stronger
这里我们提出了一个机制可以联合训练分类和检测数据。这一步主要是增加了网络的检测类别数目。9000类就是这么来的。简单的来说就是利用分类数据库来增加检测的类别数目。因为分类数据库里有很多标定的类别。当然这里面也有一些具体问题需要解决的。

总结

YOLO v2 代表着目前最先进物体检测的水平,在多种监测数据集中都要快过其他检测系统,并可以在速度与精确度上进行权衡。

YOLO 9000 的网络结构允许实时地检测超过9000种物体分类,这归功于它能同时优化检测与分类功能。使用WordTree来混合来自不同的资源的训练数据,并使用联合优化技术同时在ImageNet和COCO数据集上进行训练,YOLO9000进一步缩小了监测数据集与识别数据集之间的大小代沟。

文章还提出了WordTree,数据集混合训练,多尺寸训练等全新的训练方法。

目标检测 - YOLO9000 : Better, Faster, Stronger相关推荐

  1. 【目标检测 论文精读】……YOLO-V2 YOLO9000 ……(YOLO9000: Better, Faster, Stronger)

    文章目录 1.YOLO-V1回顾 2.Abstract(摘要) 3.Introduction(引言) 4.Better(更准) (1)Batch Normalization.(BN,批归一) (2)H ...

  2. 目标检测经典论文——YOLOV2论文翻译:YOLO9000: Better, Faster, Stronger(YOLO9000:更好、更快、更强)

    YOLO9000: Better, Faster, Stronger YOLO9000:更好.更快.更强 Joseph Redmon*†, Ali Farhadi*† University of Wa ...

  3. 深度学习论文阅读目标检测篇(五)中文版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> 摘要 1.引言 2. 更好 3. 更快 4. 更强 5. 结 ...

  4. 深度学习论文阅读目标检测篇(五)中英对照版:YOLOv2《 YOLO9000: Better, Faster, Stronger》

    深度学习论文阅读目标检测篇(五)中文版:YOLOv2< YOLO9000: Better, Faster, Stronger> Abstract 摘要 1. Introduction 1. ...

  5. YOLO9000, Better, Faster, Stronger论文翻译——中英文对照

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  6. 论文阅读笔记:YOLO9000: Better,Faster,Stronger

    论文阅读笔记:YOLO9000: Better,Faster,Stronger 本文主要包含如下内容:   论文地址   参考博客 论文阅读笔记YOLO9000 BetterFasterStronge ...

  7. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  8. YOLO9000, Better, Faster, Stronger论文翻译——中文版

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com ...

  9. 【YOLOv2原文+翻译】YOLO9000: Better, Faster, Stronger

    最近新出了YOLOV4,我系统的从V1开始整理出稿,传送门: [YOLOv1原文+翻译]You Only Look Once Unified, Real-Time Object Detection [ ...

最新文章

  1. plotly可视化绘制嵌入式子图
  2. Nature封面:人类还在看提词器,AI的辩论能力却出现了重大进展
  3. 一篇关于java变量定义的文章
  4. 20145202马超 2016-2017-2 《Java程序设计》第一次实验
  5. java考题_Java考题知识点
  6. linux yum命令作用,YUM命令使用示例
  7. 前端学习(2636):文件缺失
  8. C++(STL):14--- forward_list比list更高效的容器
  9. pku 3683 Priest John's Busiest Day 2-sat判断有误解+输出可行解
  10. 3DSMAX制作超时空未来动画场景-3D建模场景模型教程
  11. python数字雨_用Python实现黑客帝国代码雨效果(3种方式)
  12. 基于SpringBoot的网页版进销存-2.0版本
  13. [从零开始A31S]之安装虚拟机以及下载ubuntu
  14. 【COS】函数使用技巧
  15. 游戏开发中的坑之十一 代码改变灯光的cullingmask
  16. was mutated while being enumerated
  17. 西门子工控机触摸屏维修IPC677D平板式PC机
  18. 【文章】夏至——郭敬明
  19. linux backtrack函数,Linux调用backtrack函数打印程序崩溃时的调用堆栈
  20. 此次告别ed2k链接文件下载烦恼

热门文章

  1. Tensorflow杂记
  2. Nat. Mach. Intell. | 少量数据的生成式分子设计
  3. 基于RDKit探索DrugBank
  4. python使用matplotlib, seaborn画图时候的数据加载
  5. 计算机原理 对口单招,对口单招计算机原理计算专题练习-20210622114415.pdf-原创力文档...
  6. 类型数据合并去重 mysql_MySQL基础知识 数据类型和数据表管理
  7. 75分钟入门微生物组数据分析和结果解读—刘永鑫(合肥,2021年6月23日)
  8. QIIME 2教程. 10数据导出Exporting data(2020.11)
  9. Science背靠背: NLR受体介导植物抗病反应新机制
  10. 中国肠道大会 | 3天日程,220+报告,肠道新知一次听够!