前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >目标检测 - YOLO9000 : Better, Faster, Stronger

目标检测 - YOLO9000 : Better, Faster, Stronger

作者头像
用户1148525
发布2019-05-26 12:18:00
3750
发布2019-05-26 12:18:00
举报

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,数据集混合训练,多尺寸训练等全新的训练方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年02月09日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档