《YOLOv3: An Incremental Improvement》

发表会议: CVPR 2018

Joseph Redmon Ali Farhadi

University of Washington

Abstract:

我们向YOLO提供一些更新!我们做了一些小的设计更改以使其更好。我们还培训了这个非常好的新网络。它比上次稍大一些,但更准确。尽管如此,不用担心。在 YOLOv3以22.2 mAP运行22 ms,与SSD一样精确,但速度提高了三倍。当我们看看旧的0.5 IOU mAP检测指标YOLOv3是相当不错的。在Titan X上,它在51 ms内达到57.9 AP50,而RetinaNet在198 ms内达到57.5 AP50,性能相似但速度快3.8倍。与往常一样,所有代码都在https://pjreddie.com/yolo/在线。图1.我们从Focal Loss论文中调整这个数据[9]。YOLOv3的运行速度明显快于其他性能相当的检测方法。来自M40或Titan X的时代,他们基本上是相同的GPU。

1. Introduction:

有时你只是打电话一年,你知道吗?今年我没有做很多研究。在Twitter上花了很多时间。与GAN玩了一下。去年我留下了一点点的动力[12] [1];我设法对YOLO进行了一些改进。但是,说实话,没有什么比超级有趣的,只是一小堆变化使它变得更好。我也帮助了其他人的研究。

事实上,这就是今天带给我们的。我们有一个相机准备好的截止日期[4],我们需要引用我对YOLO进行的一些随机更新,但是我们没有一个源。所以准备好技术报告!关于技术报告的好处是他们不需要介绍,你们都知道我们为什么来到这里。因此,这篇介绍的结尾将为本文的其余部分提供路标。首先我们会告诉你YOLOv3的处理方式。然后我们会告诉你我们是怎么做的。我们还会告诉你我们尝试过的一些事情没有奏效。最后,我们将考虑这一切意味着什么。

【论文翻译】YOLOv3: An Incremental Improvement

2. The Deal:

所以这里是与YOLOv3的交易:我们主要从其他人那里获得好点子。我们还培训了一个比其他人更好的新分类网络。我们将从头开始介绍整个系统,以便您能够理解这一切。

2.1. Bounding Box Prediction:

在YOLO9000之后,我们的系统使用维度集群作为锚箱来预测边界框[15]。网络预测每个边界框的4个坐标tx,ty,tw,th。如果单元格通过(cx, cy)从图像的左上角偏移并且边界框具有宽度和高度pw,ph,则预测对应于:

【论文翻译】YOLOv3: An Incremental Improvement

在训练期间,我们使用平方误差损失的总和。如果一些坐标预测的基本事实是 ,我们的梯度是地面真值(从地面实况框计算)减去我们的预测:t 。通过反转上面的方程可以很容易地计算出这个地面真值。

YOLOv3使用逻辑回归预测每个边界框的对象分数。如果先前的边界框比之前的任何其他边界框重叠地面真实对象,则该值应该为1。如果以前的边界框不是最好的,但是确实将地面真值对象重叠了一定的阈值以上,我们忽略了这个预测[17]。我们使用.5的阈值。与[17]不同,我们的系统仅为每个地面真实对象分配一个边界框。如果先前的边界框未分配给地面真实对象,则不会对坐标或类别预测造成损失,只会导致对象。

【论文翻译】YOLOv3: An Incremental Improvement

图2.具有维度先验和位置预测的边界框。我们预测盒子的宽度和高度作为集群质心的偏移量。我们使用sigmoid函数预测箱子相对于滤波器应用位置的中心坐标。这个数据公然从[15]自剽窃。

2.2. Class Prediction:

每个框使用多标签分类预测边界框可能包含的类。我们没有使用softmax,因为我们发现对性能没有必要,相反,我们只是使用独立的逻辑分类器。在训练过程中,我们使用二元交叉熵损失来进行类别预测。

当我们转向更复杂的领域时,这个公式可以帮助开放图像数据集[7]。在这个数据集中有许多重叠的标签(即女性和人物)。使用softmax强加了一个假设,即每个盒子只有一个类别,通常情况并非如此。多标记方法更好地模拟数据。

2.3. Predictions Across Scales:

YOLOv3预测3种不同尺度的盒子。我们的系统使用相似的概念来提取这些尺度的特征,以形成金字塔网络[8]。从我们的基本特征提取器中,我们添加了几个卷积层。其中最后一个预测了三维张量编码边界框,对象和类别预测。在我们的COCO实验中[10],我们预测每个尺度的3个盒子,因此对于4个边界盒子偏移量,1个目标性预测和80个类别预测,张量是N×N×[3*(4+1+80)].

接下来,我们从之前的2个图层中获取特征图并通过2×对其进行上采样。我们还从网络中的较早版本获取功能图,并使用串联将其与我们的上采样功能进行合并。这种方法使我们能够从上采样的特征和早期特征映射的细化信息中获得更有意义的语义信息。然后,我们再添加几个卷积图层来处理这个组合的特征图,并最终预测出一个相似的张量,虽然现在是两倍的大小。

我们再次执行相同的设计来预测最终尺寸的方框。因此,我们对所有先前计算的第3个等级的预测以及网络早期的细化特征都是有益的。

我们仍然使用k-means聚类来确定我们的边界框的先验。我们只是选择了9个簇和3个尺度,然后在整个尺度上均匀分割簇。在COCO数据集上,9个集群是:

2.4. Feature Extractor:

我们使用新的网络来执行特征提取。我们的新网络是用于YOLOv2,Darknet-19的网络和那些新颖的剩余网络的混合方法。我们的网络使用连续的3×3和1×1卷积层,但现在也有一些快捷连接,并且显着更大。它有53个卷积层,所以我们称它为…等待它…暗网-53!这个新网络比Darknet19功能强大得多,但仍比ResNet-101或ResNet-152更有效率。这里有一些ImageNet结果:骨干Top-1 Top-5 Bn Ops BFLOP / s FPS Darknet-19 [15] 74.1 91.8 7.29 1246 171 ResNet-101 [5] 77.1 93.7 19.7 1039 53 ResNet-152 [5] 77.6 93.8 29.4 1090 37 Darknet-53 77.2 93.8 18.7 1457 78表2.骨架的比较。精度,数十亿次操作,每秒亿次浮点运算,以及各种网络的FPS。

【论文翻译】YOLOv3: An Incremental Improvement

表1. Darknet-53。

每个网络都使用相同的设置进行培训,并在256×256上进行单作物精度测试。运行时间在256×256的Titan X上测量。因此Darknet-53与先进的分类器相媲美,但浮点运算更少,速度更快。Darknet-53比ResNet-101和1.5×更快。Darknet-53与ResNet-152具有相似的性能,并且2×速度更快。

Darknet-53也实现了每秒最高的测量浮点运算。这意味着网络结构更好地利用GPU,使其更有效地进行评估,从而更快。这主要是因为ResNets的层数太多,效率不高。

2.5. Training:

我们仍然训练完整的图像,没有硬性负面挖掘或任何东西。我们使用多尺度培训,大量的数据增强,批量规范化,所有标准的东西。我们使用Darknet神经网络框架进行训练和测试[14]。

3. How We Do:

YOLOv3非常好!请参见表3.就COCO奇怪的平均平均AP指标而言,它与SSD变体相当,但3×速度更快。尽管如此,它仍然比像RetinaNet这样的其他模型落后很多。

但是,当我们查看IOU=.5 (或图表中的AP50)的“旧”检测指标时,YOLOv3非常强大。它几乎与RetinaNet相当,并且远高于SSD变体。这表明YOLOv3是一款非常强大的探测器,擅长为对象制作像样的盒子。然而,随着IOU阈值增加,性能下降明显,表明YOLOv3正在努力使盒子与物体完美对齐。

在过去,YOLO用小物体挣扎着。但是,现在我们看到了这种趋势的逆转。随着新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。但是,它在中等和更大尺寸的物体上的表现相对较差。需要更多的调查来了解这一点。

当我们在AP50度量标准上绘制精确度和速度时(见图5),我们看到YOLOv3在其他检测系统上具有显着的优势。也就是说,速度越来越快。

4. Things We Tried That Didn’t Work:

我们在研究YOLOv3时尝试了很多东西。很多都不起作用。这是我们可以记住的东西。

锚盒x,y偏移量预测。我们尝试使用常规锚点框预测机制,您可以使用线性**将x,y偏移量预测为框宽度或高度的倍数。我们发现这种配方降低了模型的稳定性,并且效果不佳。

线性x,y预测而非逻辑。我们尝试使用线性**来直接预测x,y偏移量而不是逻辑**。这导致了MAP的几点下降。

局部损失。我们尝试使用焦点丢失。它降低了我们的平均分2点。 YOLOv3对焦点损失试图解决的问题可能已经很强大,因为它具有单独的对象预测和条件类别预测。因此,对于大多数例子来说,类别预测没有损失?或者其他的东西?我们并不完全确定。

【论文翻译】YOLOv3: An Incremental Improvement

【论文翻译】YOLOv3: An Incremental Improvement

【论文翻译】YOLOv3: An Incremental Improvement

图3.再次根据[9]进行修改,这次显示的速度/准确度在mAP上以0.5 IOU度量进行权衡。你可以告诉YOLOv3是好的,因为它非常高并且在左边很远。你能引用你自己的论文吗?猜猜谁会去尝试,这个人→[16]。哦,我忘记了,我们还提供了YOLOv2中的一个数据加载错误,这得益于2 mAP的帮助。只是偷偷摸摸地在这里摆脱布局。

双IOU阈值和真值分配。更快的RCNN在训练期间使用两个IOU阈值。如果一个预测与.7的基本事实重叠,这是一个正面的例子,[.3-.7]被忽略,所有地面真值对象都小于0.3,这是一个负面的例子。我们尝试了类似的策略,但无法取得好成绩。

我们非常喜欢我们目前的表述,似乎至少在本地最佳状态。有些技术可能最终会产生好的结果,也许他们只是需要一些调整来稳定训练。

5. What This All Means:

YOLOv3是一个很好的检测器。速度很快,很准确。 COCO平均AP介于.5和.95 IOU指标之间的情况并不如此。但是,对于旧的检测度量.5 IOU来说非常好。

为什么我们要改变指标?最初的COCO文件只是有这样一句含糊不清的句子:“一旦评估服务器完成,就会添加对评估指标的全面讨论”。Russakovsky等人报告说,人类很难区分.3与.5的欠条。 “训练人们目视检查一个边界框的IOU为0.3,并将其与IOU 0.5区分开来是非常困难的。”[18]如果人类很难区分这种差异,那么它有多重要?但是也许更好的问题是:“现在我们有了这些探测器,我们要做什么?”很多做这项研究的人都在Google和Facebook上。我想至少我们知道这项技术是非常好的,绝对不会用于收集您的个人信息并将其销售给…等等,您是说这正是它将用于的?哦。

那么其他大量资助视觉研究的人都是军人,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人哦等等… 1我有很多希望,大多数使用计算机视觉的人都是只需做好快乐,好东西,比如计算国家公园里的斑马数量[13],或者追踪他们的猫在它们周围徘徊[19]。但计算机视觉已经成为可疑的用途,作为研究人员,我们有责任至少考虑我们的工作可能造成的损害,并考虑如何减轻这种损害。我们非常珍惜这个世界。

最后,不要@我。 (因为我最终退出Twitter)。

相关文章: