英语原文共 6 页
YOLOv3: 增量改进
约瑟夫·雷德蒙,阿里·法哈迪
华盛顿大学
摘要
38
36
G
YOLOv3
RetinaNet-50 RetinaNet-101
Method mAP time
34
F
32
E
[B] SSD321 28.0
[C] DSSD321 28.0
[D] R-FCN 29.9
[E] SSD513 31.2
[F] DSSD513 33.2
[G] FPN FRCN 36.2
RetinaNet-50-500 32.5
30
D
RetinaNet-101-500 34.4
RetinaNet-101-800 37.8
28 B C
YOLOv3-320
YOLOv3-416 YOLOv3-608
61
85
85
125
156
172
73
90
198
28.2 22
31.0 29
33.0 51
我们向YOLO提供一些更新! 我们做了一些小小的设计上的改变来优化它。我们还训练了这个非常棒的新网络。比上次的稍微大一点,但更准确。不过速度仍然很快,不用担心。在320times;320的YOLOv3运行了22 ms,28.2mAP,准确率和SSD一样,但速度提升了3倍。当我们看老版的.5 IOU mAP检测指标时,YOLOv3是相当不错的。它在Titan X上能达到51 ms,57.9AP50,与在
COCO AP
RetinaNet上198ms达到57.5 AP50相比,性能相似,但
times;
是速度快了3.8倍。和往常一样,所有代码都在https://pjreddie.com/yolo/.
介绍
你们呼唤它一年了,知道吗? 今年我没有做太多研究。花了很多时间在Twitter上。玩了一下GAN。去年我留下了一点点的动力[12] [1]; 我设法对YOLO做一些改进。但,坦白来讲,最有趣的事情,就是通过很多很小的改变来优化它。我还帮别人做了一些研究。
事实上,促成这篇文章的原因是这样的。我们的截稿日期快到了,我们需要引用一些我过去对YOLO的随机更新,但我们没有材料。所以准备一份技术报告吧!
技术报告最棒的事情就是我们不需要简介,所以你
50 100 150 200 250
inference time (ms)
图1. 我们从Focal Loss [9]的论文里拿了这张图 . 在相同的性能下YOLOv3跑得比其他检测方法快得多得多。时间数据来自M40 或者 Titan X, ,他们基本上是相同的GPU。
boxes[15]。网络预测每个bounding box的4个坐标, tx, ty,
tw, th。如果cell是从图像左上角偏移(cx, cy) ,以及该cell
对应的bounding box prior的宽度为pw,高度为 ph,然后,这些预测对应于:
bx = sigma;(tx) cx by = sigma;(ty) cy
bw = pw etw
bh = pheth
懂 的,为什么会有这篇东西。那么,在这个引言的最后会阐述这篇文章。首先我们会告诉你YOLOv3是怎么
回事。然后我们会告诉你我们是怎么做的。我们还会告诉你一些我们尝试过的不管用的东西。最后,我们将思考这一切的意义。
2.做法
YOLOv3的真相: 我们主要从别人那里获得好点子。我们也训练了一个比其他人更好的新分类器网络。我们会从头到尾讲解整个系统,以便你能完全理解。
Bounding Box 预测
在YOLO9000之后,我们的系统使用维度聚类(dimension clusters )作为anchor boxes来预测bounding 在训练过程中,我们使用误差平方和损失函数 。
如果某些坐标预测的ground truth 是,我们的梯度是
ground truth的值 (由ground truth box计算得到) 减去我们
的预测: . 通过反转上面的方程可以很容易地计算
出这个ground truth。
YOLOv3用逻辑回归从每个bounding box里预测了
是物体的得分。如果这个bounding box prior比其他任何bounding box prior的物体得分都要高,那它的值应该是1。如果bounding box prior并不是最佳的,但是确实在多个阈值上与一个ground truth物体重合,我们就忽略这个预测,按照[17]。我们使用0.5的阈值。不像[17]我们的系统对每一个ground truth只分配一个bounding box prior。如果一个bounding box没被分配到
1
cx 下一步,我们获取前两层的特征图并将其升采样2倍。我们还取一个网络早期的特征图,并用元素加法把它合并进我们的升采样特征里。该方法使我们能够从 升采样特征里得到更多含义丰富的语义信息,还有从早
pw
bw
p
h bh
sigma;(ty)
sigma;(tx)
bx=sigma;(tx) cx
b =sigma;(t ) c
y
y y
bw=pwetw
b =p eth
h h
c 期特征图里得到更多细粒度信息。然后我们加多了几层
y 卷积网络来处理这个合成的特征图,并最终预测一个相
似的张量,虽然模型大小翻了一倍。
我们把同样的设计在最终尺寸预测框上再执行了一遍。因此,我们对第三尺度的预测得益于所有的prior计算和早期网络细粒度特征。
我们还使用k-means聚类来决定我们的bounding box prior。我们只是随意地排序了选定的9个聚类和3个尺度,然后均分每个聚类到各个尺度上。在COCO数据集这9个聚类是:(10 times; 13), (16 times; 30), (33 times; 23), (30 times; 61),(62 times; 45), (59 times;119),(116 times; 90),(156 times; 198),(373
图 2. 带维度先验的Bounding Boxes和位置预测。我们从聚类中心预测边框的宽度和高度当作offset。我们预测边框的中心坐标,中心坐标与用sigmoid函数的滤波器的位置有关。这张图公然从[15]中自我抄袭。
一个ground truth对象上,它会导致一个坐标或类预测没有loss,只是说明有物体。
类预测
用多标签的分类法,每个边框预测bounding box可能包含的类别。我们不用softmax因为我们发现它不能提高性能,相反,我们只是使用了独立的逻辑分类器。在训练期间,我们使用了双向交叉熵损失函数(binary cross-entropy loss)作类别预测。
当我们移动到更复杂的域,这个方法会有所帮助,比如OpenImage数据集 [7]。在这个数据集中有很多相互重叠的标签(例如:女人和人). 利用softmax限制假设在每个框中正好有一个类别,通常并不符合情况。多标签方法能更好地模型化这类数据。
多尺度预测
YOLOv3在3个不同的尺度上预测物体框。 我们的系统用一个与特征金字塔网络 [8]类似的概念从这些尺度上提取出特征。在基础特征提取器上我们添加了几个卷积层。最后一层预测一个三维张量来编码bounding box,有没有物体,和类别预测。以我们在COCO [10] 上的经验,我们在每个尺度预测3个框,因此张量为 , 对应为4个bounding box的offset,1为预测物体,还有80个类预测。
times;326).
特征抽取
我们用一个新网络来做特征提取的工作。我们的新网络是用在YOLOv2里的Darknet-19和新奇的残差网络这类东西的混合。我们的网络用了连续的3x3和1x1的卷积层,但是同时也有一些跨层连接,网络明显更大了。
它有53层卷积,所以我们叫它...叫它Darknet-53!
Type Filters Size Output
Convolutional |
32 |
3 times; 3 |
256 times; 256 |
|
Convolutional |
64 |
3 times; 3 / 2 |
128 times; 128 |
|
Convolutional |
32 |
1 times; 1 |
||
1times; |
Convolutional Residual |
64 |
3 times; 3 |
128 times; 128 |
Convolutional |
128 |
3 times; 3 / 2 |
64 times; 64 |
|
Convolutional |
64 |
1 times; 1 |
||
2times; |
Convolutional Residual |
128 |
3 times; 3 |
64 times; 64 |
Convolutional |
256 |
3 times; 3 / 2 |
32 times; 32 |
|
Convolutional |
128 |
1 times; 1 |
||
8times; |
Convolutional Residual |
256 |
3 times; 3 |
32 times; 32 |
Convolutional |
512 |
3 times; 3 / 2 |
16 times; 16 |
|
lt;
资料编号:[3820] |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。