YOLO简史

2019 年 3 月 7 日 计算机视觉life

 点“计算机视觉life”关注,置顶更快接收消息!


1、YOLOv1

标题:《You Only Look Once: Unified, Real-Time Object Detection》

时间:2015

出版源:CVPR 2016

主要链接:

  • arXiv:http://arxiv.org/abs/1506.02640

  • github(Official):https://github.com/pjreddie/darknet

YOLO(You Only Look Once: Unified, Real-Time Object Detection)是one-stage detection的开山之作。之前的物体检测方法均是基于先产生候选区再检测的方法,虽然有相对较高的检测准确率,但运行速度较慢。YOLO创造性的将物体检测任务直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一。只需一眼就能知道每张图像中有哪些物体以及物体的位置。

事实上,YOLO也并没有真正的去掉候选区,而是直接将输入图片划分成7x7=49个网格,每个网格预测两个边界框,一共预测49x2=98个边界框。可以近似理解为在输入图片上粗略的选取98个候选区,这98个候选区覆盖了图片的整个区域,进而用回归预测这98个候选框对应的边界框。

YOLO网络借鉴了GoogleNet分类网络结构,不同的是YOLO使用1x1卷积层和3x3卷积层替代inception module。网络结构如下图所示,整个检测网络包括24个卷积层和2个全连接层。其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率值。

YOLO将识别与定位合二为一,结构简便,检测速度快,更快的Fast YOLO可以达到155FPS。相对于RNN系列, YOLO的整个流程中都能看到整张图像的信息,因此它在检测物体时能很好的利用上下文信息,从而不容易在背景上预测出错误的物体信息。同时YOLO可以学习到高度泛化的特征,能将一个域上学到的特征迁移到不同但相关的域上,如在自然图像上做训练的YOLO,在艺术图片上可以得到较好的测试结果。

由于YOLO网格设置比较稀疏,且每个网格只预测2个边界框,其总体预测精度不高,略低于Fast RCNN。其对小物体的检测效果较差,尤其是对密集的小物体表现比较差。

2、YOLOv2

标题:《YOLO9000: Better, Faster, Stronger》

时间:2016

出版源:None

主要链接:

  • arXiv:https://arxiv.org/abs/1612.08242

  • github(Official):https://pjreddie.com/darknet/yolov2/

Better

YOLOv1虽然检测速度快,但在定位方面不够准确,并且召回率较低。为了提升定位准确度,改善召回率,YOLOv2在YOLOv1的基础上提出了几种改进策略,如下图所示,可以看到,一些改进方法能有效提高模型的mAP.

YOLOv2借鉴SSD使用多尺度的特征图做检测,提出pass through层将高分辨率的特征图与低分辨率的特征图联系在一起,从而实现多尺度检测。YOLOv2提取Darknet-19最后一个max pool层的输入,得到26x26x512的特征图。经过1x1x64的卷积以降低特征图的维度,得到26x26x64的特征图,然后经过pass through层的处理变成13x13x256的特征图(抽取原特征图每个2x2的局部区域组成新的channel,即原特征图大小降低4倍,channel增加4倍),再与13x13x1024大小的特征图连接,变成13x13x1280的特征图,最后在这些特征图上做预测。使用Fine-Grained Features,YOLOv2的性能提升了1%.

Faster

YOLO使用的是Googlelent架构,比VGG-16快,YOLO完成一次前向过程只用8.52 billion 运算,而VGG-16要30.69billion,但是YOLO精度稍低于VGG-16。YOLO v2 代表着目前最先进物体检测的水平,在多种监测数据集中都要快过其他检测系统,并可以在速度与精确度上进行权衡。

Stronger

目前的大部分检测模型都会使用主流分类网络(如vgg、resnet)在ImageNet上的预训练模型作为特征提取器,
而这些分类网络大部分都是以小于256x256的图片作为输入进行训练的,低分辨率会影响模型检测能力。YOLOv2将输入图片的分辨率提升至448x448,为了使网络适应新的分辨率,YOLOv2先在ImageNet上以448x448的分辨率对网络进行10个epoch的微调,让网络适应高分辨率的输入。通过使用高分辨率的输入,YOLOv2的mAP提升了约4%。

YOLOv2通过缩减网络,使用416x416的输入,模型下采样的总步长为32,最后得到13x13的特征图,然后对13x13的特征图的每个cell预测5个anchor boxes,对每个anchor box预测边界框的位置信息、置信度和一套分类概率值。使用anchor
boxes之后,YOLOv2可以预测13x13x5=845个边界框,模型的召回率由原来的81%提升到88%,mAP由原来的69.5%降低到69.2%.召回率提升了7%,准确率下降了0.3%。

3、YOLO9000

github:http://pjreddie.com/yolo9000/

YOLO9000是在YOLOv2的基础上提出的一种联合训练方法,可以检测超过9000个类别的模型。YOLOv2混合目标检测数据集和分类数据集,用目标检测数据集及其类别标记信息和位置标注信息训练模型学习预测目标定位和分类,用分类数据集及其类别标记信息进一步扩充模型所能识别的物体类别同时能增强模型鲁棒性。

YOLO9000根据各个类别之间的从属关系建立一种树结WordTree, 将COCO数据集和ImageNet数据集组织起来。生成的WordTree模型如下图所示:

YOLO9000使用WordTree混合目标检测数据集和分类数据集,并在其上进行联合训练,使之能实时检测出超过9000个类别的物体,其强大令人赞叹不已。YOLO9000尤其对动物的识别效果很好,但是对衣服或者设备等类别的识别效果不是很好,可能的原因是与目标检测数据集中的数据偏向有关。

4、YOLOv3

标题:《YOLOv3: An Incremental Improvement》

时间:2018

出版源:None

主要链接:

  • arXiv:https://arxiv.org/abs/1804.02767

  • github(Official):https://github.com/pjreddie/darknet

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

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

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

5、结束语

从YOLOv1到YOLOv2再到YOLO9000、YOLOv3, YOLO经历三代变革,YOLOv1创造性的将识别与定位合二为一,YOLOv2提升了定位的准确度,改善了召回率,YOLO9000是一种联合训练方法可以检测超过9000个类别的模型,YOLOV3有两点重大改进,即使用残差模型和使用FPN架构实现多尺度检测。YOLO是一种优秀的目标检测算法,在发展过程中在保持速度优势的同时,不断改进网络结构,同时汲取其它优秀的目标检测算法的各种trick,先后引入了anchor box机制和FPN实现多尺度检测等,提高了检测的速度和准确度。

推荐阅读

原来CNN是这样提取图像特征的。。。

语义分割如何「拉关系」?

这可能是「多模态机器学习」最通俗易懂的介绍

算力限制场景下的目标检测实战浅谈

开源 | 用深度学习让你的照片变得美丽

面试时让你手推公式不在害怕 | 线性回归

深度学习在计算机视觉各项任务中的应用

干货 | 深入理解深度学习中的激活函数

何恺明组又出神作!最新论文提出全景分割新方法

Android手机移植TensorFlow,实现物体识别、行人检测、图像风格迁移

没有人工标注,如何实现互联网图像中的像素级语义识别?

详解如何将TensorFlow训练的模型移植到安卓手机

有趣又有料:任意操控静态图片中人的眼球

深度学习+几何结构:1+1>2?

欢迎关注公众号:计算机视觉life,一起探索计算机视觉新世界~

好文!给个好看啦~  

登录查看更多
26

相关内容

Yolo算法,其全称是You Only Look Once: Unified, Real-Time Object Detection,You Only Look Once说的是只需要一次CNN运算,Unified指的是这是一个统一的框架,提供end-to-end的预测,而Real-Time体现是Yolo算法速度快。
最新《Deepfakes:创造与检测》2020综述论文,36页pdf
专知会员服务
60+阅读 · 2020年5月15日
专知会员服务
153+阅读 · 2020年4月21日
【CVPR2020-谷歌】多目标(车辆)跟踪与检测框架 RetinaTrack
专知会员服务
43+阅读 · 2020年4月10日
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
理解 YOLO 目标检测
AI研习社
19+阅读 · 2018年11月5日
一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
七月在线实验室
11+阅读 · 2018年7月18日
从YOLOv1到YOLOv3,目标检测的进化之路
AI100
9+阅读 · 2018年6月4日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
Fast R-CNN
数据挖掘入门与实战
3+阅读 · 2018年4月20日
论文 | YOLO(You Only Look Once)目标检测
七月在线实验室
14+阅读 · 2017年12月12日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
3D-LaneNet: end-to-end 3D multiple lane detection
Arxiv
7+阅读 · 2018年11月26日
Arxiv
5+阅读 · 2018年4月17日
Arxiv
8+阅读 · 2018年4月8日
Arxiv
11+阅读 · 2018年4月8日
VIP会员
相关VIP内容
最新《Deepfakes:创造与检测》2020综述论文,36页pdf
专知会员服务
60+阅读 · 2020年5月15日
专知会员服务
153+阅读 · 2020年4月21日
【CVPR2020-谷歌】多目标(车辆)跟踪与检测框架 RetinaTrack
专知会员服务
43+阅读 · 2020年4月10日
相关资讯
进化历程详解:YOLOv1到YOLOv3
极市平台
31+阅读 · 2019年8月27日
理解 YOLO 目标检测
AI研习社
19+阅读 · 2018年11月5日
一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
七月在线实验室
11+阅读 · 2018年7月18日
从YOLOv1到YOLOv3,目标检测的进化之路
AI100
9+阅读 · 2018年6月4日
Faster R-CNN
数据挖掘入门与实战
4+阅读 · 2018年4月20日
Fast R-CNN
数据挖掘入门与实战
3+阅读 · 2018年4月20日
论文 | YOLO(You Only Look Once)目标检测
七月在线实验室
14+阅读 · 2017年12月12日
Top
微信扫码咨询专知VIP会员