YOLOv3:一种逐渐的改进
摘要
我们给YOLO提供一些更新!我们做了一些小的设计更改以使其更好。我们也训练了这个非常好的新网络,它比上一个版本YOLOv2稍大一些,但更准确,并且它仍然很快,所以不用担心。在输入的图片后,YOLOv3能够在22.2 ms的时间完成处理,并且取得28.2 mAP的检测精准度,和SSD的准确度相当,但速度快三倍。当我们用旧的0.5 IOU mAP检测指标时,YOLOv3的准确度也是相当不错的。在Titan X上,YOLOv3在51 ms内实现了57.9的精确度,与RetinaNet在198 ms内的57.5的相当,性能相似但速度快3.8倍。与往常一样,所有代码均在https://pjreddie.com/yolo/。
1 引言
其实有的时候你一年时间主要只是在玩手机,你懂的。所以去年我没有做很多研究,主要用来刷Twitter了,在GAN上花了一些时间。回头一看,我还留着一点点的精力[12] [1];我设法对YOLO进行了一些改进。但是诚然,只改一点点就让模型效果变得更好,没有什么比这个更有意思的了。我还帮助了其他人做了一些研究。
其实,这也是我今天要讲的内容。我们有一个论文要截稿了[4],但是还缺一篇关于YOLO更新内容的文章作为引用来源。所以以下就是我们的技术报告!
关于技术报告的好处是他们不需要简介,你们都知道我们为什么写了这篇论文。引言的最后可以作为你阅读的指引。首先我们会告诉你YOLOv3的更新情况,其次我们会展示更新方法和一些失败的尝试,最后就是对这次更新意义的总结。
2 解决方案
这里是YOLOv3的详细内容:我们主要从其他人那里获得好的想法,还训练了一个比其他人更好的新的分类网络。我们将从头开始介绍整个系统,以便您能够理解这一切。
2.1 边界框预测
和YOLO9000相同,我们的系统使用维度聚类作为锚盒来预测边界框[15]。网络为每个边界框预测4个坐标,,,,。 如果单元格相对于图像的左上角偏移,并且之前的边界框的宽度和高度分别为,,则相应的预测值为:
在训练期间,我们使用误差的平方和作为损失函数。如果对于一些坐标预测的区域置信度是,我们的梯度是区域置信度(由区域边框计算得到)减去我们的预测:。 通过上面的公式变形可以很容易地计算出这个区域置信度的值。
YOLOv3使用逻辑回归为每个边界框预测了一个对象分数。如果先验边界框比其他所有先验边界框和置信区域重叠更多,那么它的对象分数应该为1。如果这个先验边界框不是最好的,但是确实和某个置信区域重叠程度超过了某个阈值,我们会按照[17]忽略这个预测结果。我们的阈值定为0.5。与[17]不同,我们的系统只为每个置信区域的对象分配一个先验边界框。如果先验边界框未分配给置信区域的对象,那么只计算物体预测的损失,而不会对坐标或类别预测造成损失。
2.2 类别预测
每个框使用多标签分类来预测边界框可能包含的类。我们不使用软化极大值,因为我们发现它对于高性能没有必要,相反,我们只是使用独立的逻辑分类器。 在训练过程中,我们使用二元交叉熵损失来进行类别预测。
这个公式有助于我们转向更复杂的领域,如Open Image Dataset[7]。在这个数据集中有许多类别重叠的标签(如女性和人物两个类别)。使用软化极大值会强加了一个假设,即每个框中只有一个类别,但通常情况并非如此。多标签方法更好地给数据建模。
2.3 多尺度预测
YOLOv3预测3种不同尺度的框。我们的系统使用类似金字塔网络[8]的概念来提取这些尺度的特征。我们在基本的特征提取器中,添加了几个卷积层。其中最后一个卷积层预测了一个三维张量来编码边界框、对象和类别预测。在我们使用COCO数据集[10]的实验中,我们每个尺度的预测3个框,所以对于4个边界框偏移量、1个目标性预测和80个类别预测,张量大小为。
接下来,我们从前面的两层中取得特征图,并将其上采样2倍。我们还从更浅层的网络获取特征图,并将其与我们的上采样特征进行串联。这种方法使我们能够从早期特征映射中的上采样特征和更细粒度的信息中获得更有意义的语义信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个相似的、两倍大小的张量。
我们再次执行相同的设计来预测最后一个尺度的方框。因此,我们对第三种尺度的预测将利用所有先前的计算结果,并从浅层网络中获得细粒度的特征。
我们仍然使用K-Means聚类来确定我们的先验边界框。我们只选择了9个聚类和3个尺度,然后在整个尺度上均匀分割聚类。在COCO数据集上得到的9个聚类尺寸是:,,,,,,,,。
2.4 特征提取
我们使用新的网络来实现特征提取。我们的新网络是由用于YOLOv2中的Darknet-19和新颖的残差网络混合而成。我们的网络使用连续的和卷积层,但现在也有一些快捷连接,而且该网络明显更大。它有53个卷积层,所以我们称之为Darknet-53!
这个新网络比Darknet-19功能强大得多,而且比ResNet-101或ResNet-152更有效。以下是一些在ImageNet数据集中测试的结果:
每个网络都使用相同的设置进行训练,并用的数据集进行单精度测试。运行时间是在Titan X上以的输入进行测量的。因此,Darknet-53可与顶级的分类器相媲美,但浮点运算更少,速度更快。Darknet-53比ResNet-101更好,速度快1.5倍。Darknet-53与ResNet-152具有相似的性能,速度提高2倍。
Darknet-53每秒测量到的浮点运算是最多的,这意味着网络结构可以更好地利用GPU,从而使其检测效率更高,速度更快。而ResNet主要是因为层数太多,所以效率不高。
2.5 训练
我们仍然训练完整的图像,没有困难的负样本或者这一类的东西。我们使用多尺度训练,大量的数据参数、批标准化,并且所有的数据都是归一化的。我们使用Darknet神经网络框架进行训练和测试[14]。
3 实验方法
YOLOv3非常好!参见表3。就COCO的mAP指标而言,它与SSD 变体相当,但速度提高了3倍。尽管如此,它仍然比其他的,例如RetinaNet这样的模型落后很多。
然而,YOLOv3在“旧的”IOU=0.5(或者图表中的的指标下)时的mAP表现很好。它几乎与RetinaNet相当,并且远高于SSD变体。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成效果不错的框。然而,当IOU的阈值再增大时,YOLOv3的表现明显变差,这表明YOLOv3不能很完美地框选目标。
以前YOLO在小目标的检测上表现一直不好,然而,现在我们看到了这种趋势的逆转。 随着新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。但是,它在中等和更大尺寸的物体上的表现相对较差。需要更多的研究来达到这个目的。当我们在指标上绘制精确度-速度图时(见图5),我们看到YOLOv3与其他检测系统相比具有显著的优势。也就是说,它又快又好。
4 无效实验
我们在研究YOLOv3时尝试了很多东西。很多都不起作用,下面是一些值得记录的东西。
锚盒偏移预测。我们尝试使用正常锚盒预测机制,也就是使用线性激活函数来预测的偏移,用框的的宽度或高度的倍数来表示。我们发现这种方法降低了模型的稳定性,并且效果不好。
对使用线型激活函数而非逻辑激活函数。我们尝试使用线性激活来直接预测的偏移,而不是逻辑激活。这导致mAP下降了几个点。
焦点损失。我们尝试使用焦点损失的方法。它使得mAP降低了2个点。YOLOv3对焦点损失解决的问题可能已经很稳健了,因为它具有单独的对象预测和条件类别预测。 因此,对于大多数例子来说,类别预测没有损失?或者有其他的原因?我们也不完全确定。
双重IOU阈值和真值分配。Faster R-CNN在训练期间使用两个IOU阈值。如果一个预测与置信区域重叠达到0.7,就判断它是一个正样本;如果介于之间,就忽略它;如果小于0.3,就判断它是一个负样本。我们尝试了类似的策略,但无法取得很高的分数。
我们非常喜欢我们目前的表述,似乎至少处于局部最优状态。有些技术可能最终会产生好的结果,也许他们只是需要一些调整来使训练稳定下来。
5 实验意义
YOLOv3是一个很好的检测器。速度很快,还很准确。COCO平均AP介于0.5和0.95 IOU指标之间的情况并不如此,但是,对于检测度量IOU=0.5来说非常好。
为什么我们要改变指标? 最初的COCO论文只是含有这个含糊的表述:“一旦评估服务器完成,就会添加完整的评估指标的讨论”。Russakovsky等人报告说,人类很难区分IOU是0.3还是0.5。“训练人们目视检查一个IOU值为0.3的边界框,并将它与IOU 0.5区分开来是一件非常困难的事情。”[18]如果人类很难区分这种差异,那么它有多重要?
但是也许更好的问题是:“现在我们有了这些检测器,我们要做什么?”很多做这项研究的人都在Google和Facebook上。我想至少我们知道这项技术是非常好的,绝对不会被用来收集您的个人信息,并将其出售给……等等,您是说这就是它的用途?
那么其他大量资助视觉研究的人都是军人,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人等等……
我强烈希望,大多数使用计算机视觉的人都是做的快乐,研究了很多好的应用,比如计算一个国家公园内的斑马数量[13],或者追踪在他们家周围徘徊的猫[19]。但是计算机视觉已经被用于可疑的应用,作为研究人员,我们有责任至少考虑我们的工作可能会造成的伤害,并考虑如何减轻它的影响。 我们非常珍惜这个世界。
最后,不要@我。(因为我终于退出了Twitter。)
参考文献
- Analogy. Wikipedia, Mar 2018. 1
- M. Everingham, L. Van Gool, C. K. Williams, J. Winn, and A. Zisserman. The pascal visual object classes (voc) challenge. International journal of computer vision, 88(2):303–338, 2010. 6
- C.-Y. Fu, W. Liu, A. Ranga, A. Tyagi, and A. C. Berg. Dssd: Deconvolutional single shot detector. arXiv preprint arXiv:1701.06659, 2017. 3
- D. Gordon, A. Kembhavi, M. Rastegari, J. Redmon, D. Fox, and A. Farhadi. Iqa: Visual question answering in interactive environments. arXiv preprint arXiv:1712.03316, 2017. 1
- K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 770–778, 2016. 3
- J. Huang, V. Rathod, C. Sun, M. Zhu, A. Korattikara, A. Fathi, I. Fischer, Z.Wojna, Y. Song, S. Guadarrama, et al. Speed/accuracy trade-offs for modern convolutional object detectors. 3
- I. Krasin, T. Duerig, N. Alldrin, V. Ferrari, S. Abu-El-Haija, A. Kuznetsova, H. Rom, J. Uijlings, S. Popov, A. Veit, S. Belongie, V. Gomes, A. Gupta, C. Sun, G. Chechik, D. Cai, Z. Feng, D. Narayanan, and K. Murphy. Openimages: A public dataset for large-scale multi-label and multi-class image classification. Dataset available from https://github.com/openimages, 2017. 2
- T.-Y. Lin, P. Dollar, R. Girshick, K. He, B. Hariharan, and S. Belongie. Feature pyramid networks for object detection. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2117–2125, 2017. 2, 3
- T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Doll´ar. Focal loss for dense object detection. arXiv preprint arXiv:1708.02002, 2017. 1, 3, 4
- T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Doll´ar, and C. L. Zitnick. Microsoft coco: Common objects in context. In European conference on computer vision, pages 740–755. Springer, 2014. 2
- W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.- Y. Fu, and A. C. Berg. Ssd: Single shot multibox detector. In European conference on computer vision, pages 21–37. Springer, 2016. 3
- I. Newton. Philosophiae naturalis principia mathematica. William Dawson & Sons Ltd., London, 1687. 1
- J. Parham, J. Crall, C. Stewart, T. Berger-Wolf, and D. Rubenstein. Animal population censusing at scale with citizen science and photographic identification. 2017. 4
- J. Redmon. Darknet: Open source neural networks in c. http://pjreddie.com/darknet/, 2013–2016. 3
- J. Redmon and A. Farhadi. Yolo9000: Better, faster, stronger. In Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on, pages 6517–6525. IEEE, 2017. 1, 2, 3
- J. Redmon and A. Farhadi. Yolov3: An incremental improvement. arXiv, 2018. 4
- S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. arXiv preprint arXiv:1506.01497, 2015. 2
- O. Russakovsky, L.-J. Li, and L. Fei-Fei. Best of both worlds: human-machine collaboration for object annotation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2121–2131, 2015. 4
- M. Scott. Smart camera gimbal bot scanlime:027, Dec 2017. 4
- A. Shrivastava, R. Sukthankar, J. Malik, and A. Gupta. Beyond skip connections: Top-down modulation for object detection. arXiv preprint arXiv:1612.06851, 2016. 3
- C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. 2017. 3