YOLOv2——论文整理


YOLO做的是,是将目标检测的包围盒预测和类别预测做成一个统一的过程,更快,效果也不错;但是定位不准,小物体检测效果不佳。

Abstract

  • YOLO9000:先进,实时的目标检测方法,可检测9000多类物体
  • 多尺度训练方法( multi-scale training),相同的YOLOv2模型可以以不同的大小下运行,在速度和精度之间提供了一个简单的折衷。
  • mAP表现更好:67FPS,在VOC 2007上76.8 mAP,在40 FPS,78.6mAP;而且速度更快。
  • 提出了一种联合训练目标检测和分类的方法,使用该方法在COCO目标检测数据集和Imagenet图像分类数据集上,训练出了YOLO9000
  • 可以检测出更多的类别,即使这些类别没有在目标检测的数据集中出现

【多尺度训练的方法可以借鉴,更好的权衡,YOLO9000主要是预测的类别多,对我们的作用似乎不大】

Introduction

  • 目标检测数据集的标注困难,而且价格昂贵
  • 利用已有的分类数据集,来拓展目标检测的范围【分类数据集做检测】。利用对象分类的分层视图,使得可以将不同数据集组合到一起
  • 提出一种联合训练的方法,可以在【检测数据集和分类数据集】上训练目标分类器
  • 用标记的目标检测数据集优化定位精度,利用分类图像来增加其vocabulary和robustness
  • 先将YOLO优化成YOLOv2,再用联合方法训练出YOLO9000

Main improvement

1 Better

1.1 The disadvantages of YOLO

  • 更大的定位误差【相比于FastR-Cnn】
  • 更低的召回率【相对于region proposal-based methods】

所以希望在保持分类准确率的基础上,优化定位误差和召回率。【这里需要补充召回率之类的量化指标】

1.2 Method

  • 计算机视觉更好的效果往往取决于更大的模型或是多模型的整合。
  • 我们想要又准又快,将网络简化使其更容易学习特征而不是把模型变大。
  • 采用了许多方法将性能优化,步骤如下。
    在这里插入图片描述
  1. Batch Normalization:加速收敛,添加到卷积层中,可以提高mAP,去掉dropout还可以防止过拟合
  2. High Resolution Classifier(高分辨率分类器):原本的YOLO是在224 * 224上面训练,然后更改增加为448 * 448用于检测,需要学会检测的同时适应输入分辨率的变化,最后在448*448进行了10个epoch的微调训练
  3. Convolutional With Anchor Boxes:去掉全连接层,用anchorbox预测包围盒。mMP下降,召回率变大。
    YOLO直接通过全连接网络预测包围盒坐标,FastRCnn使用的是 hand-picked priors,他利用region proposal network所在的卷积层预测anchor boxes的偏移和置信度(需要补充anchorbox的基本概念),简化,方便学习。
  4. Dimension Clusters:anchorbox的大小是通过人工设置,最开始选择的priors影响很大。采用kmeans算法自动选择好的priors
  5. Direct location prediction:模型不稳定的问题,预测包围盒的xy坐标。还是直接预测相对的坐标而不是偏移。
  6. Fine-Grained Features:好像是对特征图的一些分辨率进行了操作
  7. Multi-Scale Training:每训练十次,重新选一个输入维度,之后可以通过分辨率与准确率进行权衡。
    效果很好
    在这里插入图片描述

2 Faster

想要又准有更快,YOLO使用的网络架构是基于googlenet,比VGG-16块,但是准确率差了一点。
提出了一种新的网络架构Darknet-19,表现很好,又快又准,训练大概用160epoches。
在这里插入图片描述

3 Stronger

提出了一种对分类和检测数据进行联合训练的机制。
存在的问题是,大多数分类数据集采用的是softmax;来预测类别,不同类别之间是互相排斥的。
解决方法:

  1. 简化地构建分层词汇树,然后预测条件概率
    在这里插入图片描述
    分类是是默认Pr(physical object)=1,
    而目标检测则是预测出Pr(physical object)的数值。
  2. 将数据集与Wordtree结合
  3. 联合训练

conclusion

  • YOLOv2是最先进的,在各种检测数据集上比其他检测系统更快。此外,它可以在各种图像大小下运行,以在速度和精度之间提供平滑的折衷。
  • YOLO9000是一个实时框架,通过联合优化检测和分类,可检测9000多个对象类别。我们使用WordTree合并来自不同来源的数据,并使用我们的联合优化技术在ImageNet和CoCo上同时进行训练。【半监督学习】

更新补充

  1. anchorbox:经过后来的了解学习,anchorbox就是从标注好的包围盒中,找出这些包围盒比较常见的尺寸作为预设的尺寸,然后后面再这个的基础上进行微调。
  2. batch normalization:批标准化,为了使得数据相差不会过大,因为过大的数据容易出现饱和,导致激活函数不敏感

yolo与yolov2预测包围盒的区别的详细了解

  • YOLO利用全连接层直接预测包围盒的坐标和置信度等信息
  • FastRcnn使用RPN网络预测anchorbox的偏移,因为预测层是卷积的,所以可在特征图上进行预测
  • YOLOv2将448大小的照片先变成416【为了将featuremap改成奇数,可以保证物体的中心落在其中心】,每个网格的大小为32 * 32,划分成13 * 13个网格,不仅预测了偏移,还预测了置信度和类别,利用这个方法可以提高召回率

kmeans选取包围盒尺寸

  • 在训练集的包围盒
  • 得到他们的尺寸
  • 然后用kmeans算法,距离定义为1-iou
  • iou的计算,将包围盒的左上角重叠后进行计算,只与大小有关,与位置无关

具体的预测细节

  • RPN预测的公式如下:
    在这里插入图片描述
    在tx=1或是-1时,偏移比较大,导致模型不稳定
  • yolov2采用的方法
    sigmoid函数,要么0,要么1,使得模型更稳定,用 e t e^t et对长宽
    在这里插入图片描述
    在这里插入图片描述

Fine-Grained Features的在了解

这里是像resnet将前面的特征和后面的特征进行拼接,从而获得细粒度信息,具体在代码解读中有说道

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值