Press "Enter" to skip to content

YOLOv2和YOLO9000 - 您只需看一次(物体检测)

在本章节中,回顾了YOLOV2,你只看一次版本2。YOLOv2比YOLOv1有很多改进.YOLO9000也被提议使用WordTree检测超过9000个对像类别.下面是作者非常着名的YOLOv2演示影片:YOLOv1

 

在67帧/秒时,YOLOv2在PASCAL VOC2007上获得76.8%MAP。在40FPS时,YOLOv2获得78.6%MAP,这优于使用Resnet和固态硬盘的更快的R-cnn。凭藉如此好的成绩,YOLOv2于2017年年CVPR发表,被引用超过1000次。 ResNet Faster R-CNN

论文标题是“YOLO9000:更好、更快、更强”。所以,让我们看看它如何变得更好,更快,而且更强!

 

承保范围是什幺?

 

1.1.批量归一化(BN) Batch Normalization (BN)

假设一个情况

此时Hidden Layer 2节点的感受力已经不会对特徵较大的X2感到敏感

 

X1=0.1,X2=0.96

此图模拟一群资料中一个Batch的数据

于是我们在神经网路中的隐藏层和激活函数之间加上规格化层

加入后情况如下

在最基础的标准化程序当中

但是在模型中我们不希望每次标准化的分布都调适成这种情况,因为不具弹性
因此加了最后一道自动调整程序

结论:

BN用于YOLOV2中的所有卷积层。
MAP提高为2%.

1.2.高分辨率分类器

在这边我们比较v1和v2之间训练的差异,v1在阶段1训练的时候是採用224*224的分辨率下去做训练分类网路,然后在阶段2的时候以448*448的分辨率训练检测网路,这会造成一件问题-YOLOv1的捲积层要重新适应新的分辨率同时YOLOv1的网络还要学习检测网络
因此YOLO v2提出了一个方法,在Stage1训练的时候先用低解析度训练160个Epoch然后再用10个Eagch训练网路适应448*448的高解析度,最后再让Stage2以相同解析度训练检测

结论:

经过224×224图像训练后,YOLOv2还使用448×448图像在ImageNet上对分类网络进行了10轮的微调。
MAP增加为4%.

1.3.带锚箱的卷积

 

在这里我们比对过往检测方法,最后传递的网路层以及输出预测方式

YOLO v1参考GoogleNet网路模型,最后加上2层平面层,将结果平滑化再餵到神经网路作预测,最后输出一个S×S×(B∗5+C)维度的张量。

SoftMAX层对锚点进行分类找到需要被检测的前台锚点
回归层对锚点的边框进行回归找到精确度较高的Prosoal边框
接着Prosoal Layer再综合两者产生出多个Prosoal要素图

ROI池化可接受任意尺寸的输入,WARP操作不再需要,这有效避免了物体的形变扭曲,保证了特徵信息的真实性

最后作者决定参考更快-美国有线电视新闻网中的主播挑选候选框的作法,改善V1的準确度

输入改为416*416

结论:

YOLOv2移除所有全连接层并使用锚盒来预测包围盒。
移除一个池化图层以提高输出的分辨率。
并且使用416×416图像来训练检测网络。
并得到13×13的特徵图输出,即32×下采样。
在没有锚盒的情况下,中间模型获得了69.5%的MAP和81%的召回。
使用锚盒,获得了69.2%的MAP和88%的召回。虽然MAP略有下降,但Recall大幅增加。

1.4.维度群集

主播盒的尺寸和比例是预先定义的,没有获得任何先验资讯,就像快速R-cnn中的尺寸和比例一样。
使用标準的基于欧几里德距离的k-Means聚类不够好,因为较大的框比较小的框产生更多的错误。
YOLOv2使用k-Means群集,这会导致良好的IOU分数:

在模型複杂度和高召回率取捨之间,k=5是最佳值。

使用5个锚盒(61.0%)基于的欠条的群集结果与使用9个锚盒(60.9%)的更快的R-cnn的群集结果相似。
使用9个锚盒的基于借条的集群得到为67.2%。

1.5.直接位置预测

YOLOv1没有Constraint预测位置,这使得模型在早期反覆运算时不稳定。预测的边界框可能远离原始网格位置。
YOLOv2使用Logistic Activateσ限制位置边界,使值介于0到1之间:

(Cx,Cy)是GRID的位置,也是当前网格左上角到图像左上角的距离。
(bx,by)是包围盒的位置:(cx,cy)+增量以σ(Tx)和σ(Ty)定义边界,σ函数将约束在(0,1)範围内。
(pw,ph)是从群集中预先得到的锚盒。
(bw,bh)是包围盒空间尺寸:(pw,ph)按(tw,th)缩放。
预测边框的蓝色中心点被约束在蓝色背景的网格内.约束边框位置使得模型更容易学习,且预测更为稳定
因为自然对数e表示“增长的极限”,所以在这边以e为底以Scale放大率为次方,计算出数值的自然放大倍率
与锚盒版本相比,MAP增加5%。

1.6.细粒度要素

卷积层逐渐减小空间维度.随着相应的分辨率降低,检测小物体变得更加困难.

为了抓取细粒度特徵、YOLO v2加入了一层通过图层、将原本26×26的分辨率的要素地图进行特徵重排

13×13特征地图输出足以侦测大型物件。
为了更好地侦测小目标,将前一层的26×26×512特徵图映射成13×13×2048特徵图,然后再与原始的13×13×1024输出层特徵图级联。
最后在新的13×13×3072层上使用卷积滤波器来进行预测。
MAP增加为1%.

1.7.多规模培训

爲了让模型更稳定,所以YOLOv2做了多尺度的训练,而多规模培训让YOLO v2在速度和準确性做出平衡的选择
在训练过程,每隔10个大纪元随机选择一种输入图片大小,然后只需要修改对最后检测层的处理就可以重新训练。
由于YOLOv2的转换层将输入维度下採样32倍,因此新採样的大小为32的倍数
对于每10个批次,随机选择新的图像尺寸。
影像尺寸为{320352,…,608}。
已调整网络大小并继续培训。

1.8.关于渐进式改进的总结

网络在较小尺寸的影像上运行更快.
对于低解析度的YOLOv2、在90 FPS时、MAP与快速R-cnn一样好,后者非常适合于较小的图形处理器。
对于高解析度的YOLOv2,在实时速度获得76.8%的MAP。

对于MS COCO资料集,以下方法中只有YOLOv2可以获得实时表现:

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

 

除了上述修改,网络架构也是影响MAP的一个因素.

 

YOLOv2採用DarkNet-19分类网络进行特征提取:

我们可以看到,DarkNet-19在3×3卷积之间使用1×1卷积来压缩特徵图Channles以降低模型计算量和参数
在SoftMAX层前使用了全球平均池、对每个功能地图内部取平均,每个功能地图变成一个值、10个功能地图就变成一个10维的向量。

而DarkNet-19可以在Accuracy和模型複杂度之间获得良好的平衡:

由于TOP-1和TOP-5错误接近Resnet-50、Darknet-19具有较低的模型複杂度(FLOP)、因此侦测速度(FPS)要快得多。
使用Darknet-19之后,YOLOv2的MAP值没有显着提升,但是计算量却可以减少约33%.

3.YOLO9000 by WordTree(更强)

 

有多个资料集用于分类和侦测.作者有一个想法,“它们能结合在一起吗?”

 

3.1.联合收割机

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注