龙空技术网

目标检测算法YOLO2比YOLO1的改进

AI火箭营 643

前言:

如今咱们对“yolo2算法”大体比较关切,看官们都需要知道一些“yolo2算法”的相关知识。那么小编也在网摘上收集了一些有关“yolo2算法””的相关资讯,希望我们能喜欢,小伙伴们快快来了解一下吧!

YOLO9000(YOLO2的改进版本),比YOLO有不少改进,并且有“更好,更快,更强”之称谓,那么到底更好在哪?更快在哪?更强在哪?本文抽丝剥茧,一一予以给出。

本文的背景论文是:

《YOLO9000:Better,Faster,Stronger》。

YOLOv2

在67 FPS,YOLOv2在PASCAL VOC 2007上获得76.8%的mAP。在40 FPS时,YOLOv2获得78.6%mAP,这比使用ResNet和SSD 更快的R-CNN更好。凭借如此优异的成绩,YOLOv2于2017年CVPR发布并获得超过1000次引用。

YOLOv2

YOLO9000是如何实现“更好,更快,更强 ”:

1. YOLOv2改进并且超过YOLOv1(更好)

2. YOLOv2使用Darknet-19(更快)

3. YOLO9000 by WordTree(更强)

YOLOv2比YOLOv1改进的若干技巧(更好)

1、批归一化(BN)

在前边的文章专门阐述过《批归一化Batch Normalization的原理及算法

BN用于YOLOv2中的所有卷积层mAP提高2%

2、高分辨率分类器

经过224×224图像训练后,YOLOv2还使用448×448图像对ImageNet上的10个epochs的分类网络进行微调mAP增加4%

3、与锚箱(Anchor Boxes)的卷积

· YOLOv2删除所有完全连接的图层,并使用锚框来预测边界框。

· 移除一个池化层以提高输出分辨率。

· 416×416图像用于训练检测网络。

· 并且获得13×13特征图输出,即32×下采样。

· 没有锚箱,中间模型的mAP达到69.5%,召回率为81%。

· 使用锚箱,获得69.2%的mAP和88%的召回率。虽然mAP略有下降,但召回量大幅增加。

4、Dimension Clusters

· 锚箱Anchor box的大小和比例是预先定义的,没有获得任何先验信息,就像Faster R-CNN中的那样。

· 使用标准的基于欧几里德距离的k-means聚类是不够好的,因为较大的盒子比较小的盒子产生更多的误差

· YOLOv2使用k-means聚类,这可以获得良好的IOU分数:

· k = 5是最佳值,在模型复杂度和高召回率之间具有良好的权衡。

具有不同数量的锚箱的不同IOU聚类方法

· 基于IOU的聚类具有5个锚箱(61.0%)具有与Faster R-CNN中9个锚箱(60.9%)的聚类相似的结果。

· 基于IOU的9个锚箱聚类得到67.2%。

5、直接位置预测

· YOLOv1对位置预测没有约束,这使得模型在早期迭代时不稳定。预测的边界框可以远离原始网格位置。

· YOLOv2使用逻辑激活σ来限制位置,这使得值落在0到1之间:

约束边界框预测

· (cx,cy)是网格的位置。

· (bx,by)是边界框的位置:(cx,cy)+ delta由σ(tx)和σ(ty)限定。

· (pw,ph)是从聚类中获得的锚盒。

· (bw,bh)是边界框尺寸:(pw,ph)按(tw,th)缩放。

· 锚箱版本mAP增加5%。

6、细粒度的功能

· 13×13特征图输出足以检测大对象。

· 为了很好地检测小物体,将早期图层的26×26×512特征图映射到13×13×2048特征图,然后与原始的13×13特征图连接进行检测。

· 实现了mAP增加1%。

7、多尺寸训练

· 对于每10批次,随机选择新的图像尺寸。

· 图像尺寸为{320,352,...,608}。

· 网络已调整大小并继续训练。

8、比YOLO2改进摘要

增量改进

· 网络在较小尺寸的图像上运行得更快。

· 对于低分辨率的YOLOv2,在90 FPS时,mAP与Fast R-CNN一样好,非常适合较小的GPU。

· 对于高分辨率YOLOv2,实时速度获得76.8%mAP。

PASCAL VOC 2007数据集

对于MS COCO数据集,只有YOLOv2可以在以下方法中获得实时性能:

Microsoft COCO数据集

YOLOv2使用Darknet-19(更快)

除上述修改外,网络架构也是影响mAP的一个因素。

YOLOv2中使用Darknet-19分类网络进行特征提取:

Darknet-19分类网络

我们可以看到Darknet-19有许多1×1的卷积来减少参数的数量。

Darknet-19可以在准确性和模型复杂性之间取得良好的均衡:

1000个类的ImageNet分类结果

由于TopNet 1和Top-5错误接近ResNet-50,因此Darknet-19具有较低的模型复杂度(FLOP),因此检测速度更快(FPS)。

使用WordTree的YOLO9000(更强)

有多个数据集用于分类和检测。作者有一个想法,“他们可以结合在一起吗?”

1、结合

COCO和ImageNet

· 微软COCO:100k图像,80个类,检测标签,类更像是“狗”或“船”。

· ImageNet:1300万张图像,22k类,分类标签,类别更具体,如“诺福克梗”,“约克夏犬”或“贝德灵顿犬”。

· 像“狗”和“诺福克梗”这样的类并不相互排斥。

我们不能通过添加更多类来直接组合它们,如下所示:

我们不能这样组合

要结合使用,可以使用WordTree:

WordTree

如上所示,WordTree有一个分层树,用于将类和子类关联在一起。简而言之,基于树的WordTree是基于基于图形的WordNet构建的,它通过可视化ImageNet中的名词并选择WordNet中的较短路径。

例如:“Norfolk terrier”也被标记为“狗”和“哺乳动物”。

如果网络看到“狗”的图像但不确定它是哪种类型,它仍将基于条件概率以高置信度预测为“狗”。

最后有9418个类。

2、YOLO9000训练

· 使用3个先验而不是5来限制输出大小。

· 对于检测图像,损失像正常一样地反向传播。

· 对于分类图像,只有分类损失在标签的相应级别或之上才反向传播。

3、YOLO9000结果

· 获得19.7%的mAP。

YOLO9000结果

MS COCO没有那么多ground-truth类别(框多),而ImageNet有类别,但没有那么多ground-truth框。现在YOLO9000提供了一种将它们组合在一起的方法。

标签: #yolo2算法