[翻译][YOLOv3: An Incremental Improvement]
YOLOv3:一个增加改进
约瑟夫·雷德曼等
摘 要
我们给YOLO提供了一些更新。我们做了一些小的修改,使它变得更好。我们还训练了这个新网络,它表现的非常好。它比上次要大一点,但是更准确。同时它也足够快,这点不用担心。当320×320时,YOLOv3运行只用22 ms,有28.2 mAP。准确率相当于SSD,当是比它快3倍。当我们看旧的0.5 IOU的mAP检测指标时,YOLOv3的表现相当好。它取得了57.9 AP50,用了51 ms,在Titan X上。与57.5 AP50,用了198 ms的RetinaNet相比,性能相同,但快了3.8倍。
1 引言
有时候你一年只想打个电话而已,知道吗?我今年并没有做太多研究。花了很多时间在推特上。在GAN上也花了一点时间。我去年还有一些动力。我设法给YOLO一些改进。但老实来说,没有比这更有趣的了,只是一些小的改变就让它变得更好。我也给别人的研究帮了一点忙。
事实上,这就是我们今天来到这里的原因。我们有一个相机准备的最后期限,我们需要引用一些我对YOLO的随机更新,但是我们没有来源。所以准备了一份技术报告!
技术报告的好处是他们都不需要介绍,你们都知道我们为什么在这里。所以引言的结尾将为本文剩余的部分指明方向。首先,我们会告诉你YOLOv3的处理是什么。然后,我们会告诉你我们做了什么。我们还会告诉你一些我们尝试过但没有成功的事情。最后,我们将思考这一切意味着什么。
2 处理
这里有一些关于YOLOv3的处理:我们通常能从他人获得好的想法。我们也能训练一个新的分类网络,而且比他们的那个更好。我们会带你从开头浏览整个系统,这样你就可以完全理解它。
2.1 边界框预测
在YOLO9000之后,我们的系统使用维度聚类作为锚框来预测边界框。网络对每个边界框预测了4个坐标:tx,ty,tw,th。如果一个单元格的偏移是从图像的左上角开始为(cx,cy),并且前面的边界框具有宽度和高度pw和ph,那么预测值就对应于:
在训练的期间,我们使用均方误差的和。如果一些坐标预测的真实值是,那么我们的梯度是真实值(从真实框中计算得到)减去预测值:。通过反解上面的等式,我们可以很容易计算出真实值。
YOLOv3从每个边界框中预测一个物体性得分使用逻辑回归。如果边界框先验值与真实物体的重叠程度超过任何其他边界框先验值,那么这个值应该为1。接下来,如果边界框的先验值不是最好,但是与物体真实的重叠区域超过一定阈值,那么我们忽略这个预测值。我们使用的阈值是0.5。不像之前,我们的系统对真实物体只指定一个边界框先验值。如果边界框先验值没有被指定给一个真实物体,那么它不会引起坐标或类别预测的损失,只有物体性损失。
2.2 类别预测
每一个预测类别的边界框都可能包含使用多标签分类。我们并没有使用softmax,因为我们发现它对好的性能没有必要。我们简单的使用独立的逻辑回归分类来代替。在训练中,我们对这些类别预测使用二值交叉熵损失。
当我们转移到更复杂的领域时,比如Open Images数据集时,这个公式很有帮助。在这个数据集中有许多重叠的标签(例如女人和人)。使用softmax强制假设每个边框只有一个类别,但通常情况并非如此。
2.3 预测不同尺度
YOLOv3预测3种不同尺度的边框。我们的系统从这些尺度中提取特征,使用类似特征金字塔网络的概念。从我们的基本特征提取器中,我们添加了几个卷积层。这些最后预测一个3维张量编码的边界框,物体性,和类别值。在我们使用COCO的实验中,我们预测在每个尺度上预测3个边框,所以张量为N×N×[3*(4+1+80)]对应于4个边界框偏移,1个物体性预测,和80个类别值预测。
下一步,我们从前面的两层中间提取特征图,并将其上采样2倍。我们同时从前面的网络中提取特征图,使用连接将它与我们的上采样特征合并。这种方法让我们能从上采样特征和前面特征图中细粒度信息中得到更多有意义的语义信息。随后我们添加一些卷积层来处理这些组合的特征图,最终预测一个类似的张量,虽然现在是它的两倍。
我们再次执行相同的设计来预测边框最终的尺寸。所以我们对第三个尺寸的预测值得益于所有前面计算,以及网络早期的细粒度特征图。
我们仍然使用k均值聚类来确定我们边界框的先验值。我们只是任意选择了9个聚类和3个尺度,然后在各个尺度上均匀的划分这些聚类。在COCO数据集上有9个聚类,如下所示:(10×13),(16×30),(33×23),(30×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)。
表1 Darknet-53
2.4 特征提取
我们使用一个新的网络来执行特征提取。我们新网络是YOLOv2中Darknet-19与新的残差网络之间的混合方法。我们的网络使用连续的3×3和1×1的卷积层,但现在也有一些捷径,并且明显更大。它有53个卷积层,所以我们把它叫做Darknet-53!
这个新的网络比Darknet-19更有强,但同时比ResNet-101或ResNet-152更有效。这里有一些在ImageNet上的结果:
表2 骨干网络对比。各种网络的精确度,十亿次操作,每秒十亿次浮点,和每秒帧率
每个网络都使用相同的设置进行训练,并且在256×256、单裁剪精确度下进行测试。运行时间是在Titan X上以256×256作为输入进行测试的。因此,Darknet-53的性能与最先进的分类器不相上下,但在浮点运算更少,速度更快。Darknet-53比ResNet-101快1.5倍。它与ResNet-152性能类似,并且快2倍。
Darknet-53同时获得了最高的每秒浮点运算测试。这表明网络结构更好的利用GPU,使它对评估更有效,并且更快。这主要因为ResNet层数太多,而且效率不高。
表3 我说真的只是从他们重头开始制作的表格全都偷来了。好吧,YOLOv3已经准备好了。请记住,RetinaNet处理图像的长度大约为3.8倍。YOLOv3比SSD的变种更好,并在AP50指标上是最先进的模型。
2.5 训练
我们仍然在完整的图像上训练,并没有困难的负样本挖掘或其它任何类似的东西。我们使用多尺度训练,很多数据增强,比归一化,这些所有类似的东西。我们使用Darknet神经网络框架进行训练和测试。
3 我们怎么做的
YOLOv3表现的非常好!如表3所示。就COCO上奇怪的平均均值AP指标而言,它与SSD变种不相上下,但要快3倍。不过在这个指标上,它仍远远落后于像RetinaNet这样的其它模型。
但是,当我们看旧的mAP在IOU=0.5(或图中AP50)检测指标时,YOLOv3也很强。它与RetinaNet不相上下,并且远高于SSD的变种。这意味着YOLOv3是非常强的检测器,擅长于为物体生成合适的边框。但是,随着IOU阈值的增加,性能的丢失很明显,这表明YOLOv3在物体边框对齐很困难。
图5 根据这两幅图上的mAP,这里的两个假设探测器是完美的。它们都很完美。完全平等。
过去YOLO在小物体上很困难。但是,现在我们看到了这种趋势的逆转。随着多尺度预测,我们看见YOLOv3有在相对高的APs性能。但是,它在中型和大型物体上的性能相对较差。要弄清真相很需要很多研究。
当我们画出准确率和速度在AP50的测量(如图5)时,我们看到YOLOv3与其它的检测系统相比有明显的优势。那就是我更快更好。
4 我们尝试过但没有用的东西
我们在研究YOLOv3时,尝试了很多东西。大多数都没有用。这里有一些我们记得的尝试。
锚框x,y偏移预测。我们试着使用正常的锚框预测机制,也就是使用线性激活来预测x,y的偏移量作为边框宽度和高度的倍数。我们发现这中方法降低了模型的稳定性,并且不能很好的工作。
线性x,y预测代替逻辑回归。我们尝试使用线性激活直接预测x,y的偏移量,来替代逻辑激活。这导致了mAP上两个点的下降。
焦点损失。我们尝试使用焦点损失。它使我们的mAP下降了大概2个点。YOLOv3可能以及对焦点损失试图解决的问题具有鲁棒性,因为它具有单独的物体性预测值和条件类别预测值。因此对于大多数例子来说,类别预测没有损失吗?还是其它什么?我们不太确定。
双重IOU阈值和真值分配。Faster R-CNN在训练期间使用两个IOU阈值。如果预测值与真实值重叠大于0.7,则这是一个正样本。如果重叠在0.3到0.7,则忽略这个样本。如果小于0.3,则这是一个负样本。我们尝试了相同的策略,但没有取得好的结果。
我们十分喜欢我们现在的方法,它看起来至少在局部最优。这些计算中的一些可能最终产生良好的结果,也许它们只是需要一些调整来稳定训练。
5 这一切意味着什么
YOLOv3是一个良好的检测器。它很快,也很准确。它在COCO平均AP在0.5和0.95 IOU测量上表现的不是很好。但是在老的0.5 IOU检测测量上表现的很好。
为什么我们要改变测量方法?原始的COCO论文中有一个隐语句:“一旦评价服务完成,将添加对评估指标的全面讨论”。 Russakovsky等人的研究表明人类对IOU在0.3和0.5的区分很困难。“训练人类通过视力检测将IOU为0.3的边框从IOU为0.5的边框中区分开来是非常困难的”。如果人类很难辨别两着的区别,那它有多重要呢?
但是也许更好的问题是:“既是有了这些检测器,我们又要去做什么?”许多人在Google和Facebook上做这个研究。我想至少我们知道这项技术应该被很好掌握,并且肯定不会被用来收集你的个人信息,并出售它给...等等,你是说这正是它的用途??哦。
另一个大量资助视觉研究的是军方,它们从没用做过像用新技术杀死很多人这样的事情。哦,等等。。。。。。
我很希望大多数人使用计算机视觉仅仅做一些开心,好的东西,像数一数国家公园里有多少头斑马,或者追踪他们在房子里散步的猫。但是计算机视觉的应用已经受到质疑,作为研究人员,我们至少有责任考虑一下我们的工作可能造成的危害,并想出缓解的方法。我们欠世界太多。
最后,请不要再联系我(因为我最后退出了推特)。
参考资料
1.http://xxx.itp.ac.cn/pdf/1804.02767