YOLOV2 YOLO9000阅读笔记

Better

批量归一化

批量归一化使得收敛性得到明显提升,并且不需要其他形式的正则化。通过在YOLO的所有卷积层中添加批量归一化,使得mAP提升了2%,而且可以帮助规范模型,同时可以不使用dropout也不会过拟合。

高分辨率的分类器

YOLOV2中会先在ImageNet上以 448 × 448 448\times 448 448×448的分辨率对分类网络微调10个epoch,这给了网络时间来调整filter,使其在更高分辨率的输入上工作的更好;然后对得到检测结果的网络微调。高分辨率分类网络使得mAP提高了4%.

使用anchor box卷积
  • YOLO使用卷积特征提取器上面的全连接网络预测bounding box的坐标
  • Faster R-CNN使用hand-picked prior预测bounding box,其中RPN只使用卷积层预测anchor box的offset和confidence。由于预测层是卷积的,所以RPN在feature map的每个位置预测offset。由于预测的是offset而不是坐标,所以简化了问题使得网络更容易学习。

本文移除了YOLO的全连接层,使用anchor box预测bounding box。

  • 先是移除了一个池化层,使得网络卷积层的输出更高的分辨率。本文缩小网络,输入图片不再使用 448 × 448 448\times 448 448×448,而是使用 416 × 416 416\times 416 416×416。YOLO的卷积层会将图片降维32倍,所以输出可得的feature map为 13 × 13 13\times 13 13×13
  • 当移动到anchor box时,将类别预测机制和空间位置分开,去为每一个anchor box预测类别和objectness。根据YOLO,objectness预测仍然预测ground truth和proposed box之间的IoU,类别预测时预测存在一个object的情况给定类别的条件概率。

使用anchor box使得精确度有轻微的下降。YOLO每张照片只预测98个box,但是使用anchor box本文模型预测的个数超过1000个。不使用anchor box时模型的mAP为69.5,召回率为81%;使用之后mAP为69.2,召回率为88%。虽然mAP减少了,但是召回率的提高意味着模型还有很大的提升空间。

通过聚类选择尺寸

在YOLO上使用anchor box 时遇到了两个问题,第一个是box的尺寸时手工挑选的,网络可以学习调整合适的box,但是如果为网络选择了更好的先验框,网络可以更容易学习从而预测到好的结果。

本文不再手工选择先验框,而是在bounding box训练集上运行k-means聚类算法自动得到好的先验框。如果使用标准k-means算法使用欧几里得距离,那么大的box会比小的box产生更大的error。所以需要将计算独立于框的大小,以得到更好的IoU。因此距离度量使用:d(box,centroid)=1-IOU(box,centroid).

通过使用不同的k值运行k-means,最后折中模型复杂度和召回率取k=5。由下图可知通过聚类得到的box多是瘦高的。

img

Direct location prediction

YOLO使用anchor box产生的第二个问题是:模型不稳定,尤其是在早期迭代过程中。

//看不懂

多个尺寸训练

由于anchor box的加入,图片分辨率调整到了 416 × 416 416\times 416 416×416,由于网络只使用了卷积层和池化层,所以可以调整其大小。

模型每经过几次迭代就会改变网络,而不是固定输入图片的大小。设定网络每经10个batch就随机选择一个新的图片尺寸。因为模型降维是32的倍数,所以设定的尺寸大小有{320,352,…,608}。将网络的大小重整为这个尺寸再继续训练。

这意味着同样的网络可以预测不同分辨率的检测结果。在低分辨率下作为一个简易的、相对精确的检测器,高分辨率下是一个先进检测器,在VOC 2007上的mAP达到78.6,并且可以高于实时速度运行。

Faster

Darknet-19

提出了一个新的模型作为YOLOv2的基础。主要做法有:

  • 与VGG模型相似主要使用 3 × 3 3\times 3 3×3的filter,并且在每次pooling步骤后使通道数加倍
  • 在NIN之后使用全局平均池化做预测,并使用 1 × 1 1\times 1 1×1的filter压缩 3 × 3 3\times 3 3×3卷积层之间的特征表示
  • 使用batch normalization来稳定训练,加速收敛,并规范模型

模型结构(19个卷积层 5个最大池化层)

img

该模型在处理一张图片时只需要55.8亿次操作,并且在ImageNet上实现了72.9%的top-1准确率和91.2%的top-5准确率。

分类训练
  • 在标准的Image net1000类别分类数据集上训练,初始学习率为0.1,多项式衰减率为4,衰减权重为0.0005,动量为0.9
  • 训练时使用标准的数据增强技巧,包括随即裁剪 旋转 饱和度和曝光转换等
  • 在对 224 × 224 224\times 224 224×224的图像进行初步训练后,将网络微调大更大的尺寸(448)。为了微调,使用上述的参数训练10个epoch并以0.001的学习速率开始。
  • 在更高分辨率下,网络实现了76.5%的top-1精度和93.3%的top-5精度
检测训练
  • 网络修改:
    • 移除最后一个卷积
    • 添加3个 3 × 3 3\times 3 3×3的卷积层,每个包含1024个filter
    • 最后添加一个 1 × 1 1\times 1 1×1的卷积输出检测结果
  • 对于VOC预测5个box,每个有5个坐标值和20个类别,所以有125个filter
  • 为了使用细粒度特征,从最后的 3 × 3 × 512 3\times 3\times 512 3×3×512层到倒数第二层添加了一个直通层

前面都是YOLOV2相关的内容 接下来内容是YOLO9000


Stronger

最具创新点的地方是提出了层级分类的思想,为了简化问题构造了一个分层树WordTree,将具有包含关系的类别用树节点表示,如terrier->dog->animal,这三个类别经构建后在一条路径上。

为了用WordTree进行分类,我们预测每个节点的条件概率,即给定synset后这个synset下每个下义词的概率。如果要计算一个节点的绝对概率,那么就沿着树一直到根节点将途径的每个节点的条件概率相乘。

img

使用ImageNet(1000个类别)训练Darknet-19模型来验证这个方法,在构建wordtree的过程中由于需要添加中间节点将类别空间从1000扩大到了1369。训练时ground truth标签沿着树向上传播,即如果一个图片被标记为“Norfolk terrier”,那么它也会被标记为“dog”和“mammal”。为了计算条件概率模型预测了1369维的向量值并且对包含相同概念的近义词的sysnset计算softmax。

img

使用wodTree可以用一种合理的方式将多个数据集组合起来。因此可以对分类和检测的联合模型进行训练。

  • 当网络遇到一个检测图象时,就像平常一样反向传播loss。对于分类损失,只反向传播对应等级或者对应等级以上的标签。
  • 当网络遇到分类图像时,只反向传播分类损失。

使用这种联合训练,YOLO9000使用COCO中的检测数据学习寻找图像中的目标物体,并使用ImageNet中的数据学习对多种多样的目标物体分类。

还需学习

  • 直通图

    摘自博客https://blog.csdn.net/qq_40755643/article/details/90295824

    直通层是将前面一层的26*26的特征图和本层13*13的特征图进行连接,与ResNet网络的shortcut类似,以前面更高分辨率的特征图为输入,然后将其连接到后面的低分辨率特征图上。
    在13*13的特征图上做预测,虽然对于大目标已经足够了,但对小目标不一定足够好,这里合并前面大一点的特征图可以有效的检测小目标。

    具体操作:对于26*26*512的特征图,经passthrough层处理之后就变成了13*13*2048的新特征图(特征图大小变为1/4,而通道数变为以前的4倍),然后与后面的13*13*1024特征图连接在一起形成13*13*3072的特征图,最后在该特征图上卷积做预测。

    注:passthrough layer,具体来说就是特征重排(不涉及到参数学习),前面26 * 26 * 512的特征图使用按行和按列隔行采样的方法,就可以得到4个新的特征图,维度都是13 * 13 * 512,然后做concat操作,得到13 * 13 * 2048的特征图。

  • direct location prediction小节还需学习,主要是计算方法

在这里插入图片描述
懂了吗?答:还没有全懂

  • 该篇论文细节很多,目前不能很好的将各个部分组织起来,理解也不到位
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值