来源:CVer
论文链接:
https://pjreddie.com/media/files/papers/YOLOv3.pdf
知乎话题:https://www.zhihu.com/question/269909535
最近,我们更新了一版新的YOLO,做了一些小的设计更改去优化升级,运行起来非常顺畅。它虽然比上次(YOLOv2)稍大一些,但仍然很快,而且准确率更高。在320×320 YOLOv3运行效果是22.2ms,28.2 mAP,像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/。
在过去的一年里,我设法对YOLO进行了一些改进。但是诚然,只是一些小改良,当然我还帮助了其他人做一些研究。这篇论文中,我们主要做了一个关于YOLO v3的技术报告,文章结尾将会提供其他论文的链接。首先我们会告诉你YOLOv3到底是什么,然后我们是怎么做的,以及我们在尝试过程中的一些失败。最后,我们将进行一个总结。
2.1 Bounding Box Prediction
在YOLO9000之后,我们的系统使用维度聚类(dimension clusters )作为anchor boxes来预测边界框[13]。网络为每个边界框预测4个坐标,tx,ty,tw,th。 如果单元格从图像的左上角偏移(cx; cy),并且之前的边界框具有宽度和高度pw,ph,则预测对应于:
在训练期间,我们使用平方误差损失的总和。如果对于一些坐标预测的ground truth是 (原文中是使用^符号,但这里自带的代码工具打不出来,所以这里我用~符号替代),我们的梯度是ground truth(由ground box计算得到)减去我们的预测: 。 通过反转上面的方程可以很容易地计算出这个ground truth。
YOLOv3使用逻辑回归预测每个边界框(bounding box)的对象分数。 如果先前的边界框比之前的任何其他边界框重叠ground truth对象,则该值应该为1。
如果以前的边界框不是最好的,但是确实将ground truth对象重叠了一定的阈值以上,我们会忽略这个预测,按照[15]进行。
我们使用阈值0.5。与[15]不同,我们的系统只为每个ground truth对象分配一个边界框。如果先前的边界框未分配给grounding box对象,则不会对坐标或类别预测造成损失。
2.2 Class Prediction
每个框使用多标签分类来预测边界框可能包含的类。我们不使用softmax,因为我们发现它对于高性能没有必要,相反,我们只是使用独立的逻辑分类器。 在训练过程中,我们使用二元交叉熵损失来进行类别预测。
这个公式有助于我们转向更复杂的领域,如Open Image Dataset[5]。在这个数据集中有许多重叠的标签(如女性和人物)。使用softmax会强加了一个假设,即每个框中只有一个类别,但通常情况并非如此。多标签方法更好地模拟数据。
2.3 Prediction Across Scales
YOLOv3预测3种不同尺度的框(boxes)。我们的系统使用类似的概念来提取这些尺度的特征,以形成金字塔网络[6]。从我们的基本特征提取器中,我们添加了几个卷积层。其中最后一个预测了3-d张量编码边界框,对象和类别预测。
在我们的COCO实验[8]中,我们预测每个尺度的3个框,所以对于4个边界框偏移量,1个目标性预测和80个类别预测,张量为N×N×[3 *(4 + 1 + 80)]。
接下来,我们从之前的两层中取得特征图(feature map),并将其上采样2倍。我们还从网络中的较早版本获取特征图,并使用element-wise addition将其与我们的上采样特征进行合并。
这种方法使我们能够从早期特征映射中的上采样特征和更细粒度的信息中获得更有意义的语义信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个相似的张量,虽然现在是两倍的大小。
我们再次执行相同的设计来预测最终尺度的方框。因此,我们对第三种尺度的预测将从所有先前的计算中获益,并从早期的网络中获得细粒度的特征。我们仍然使用k-means聚类来确定我们的边界框的先验。
我们只是选择了9个聚类(clusters)和3个尺度(scales),然后在整个尺度上均匀分割聚类。在COCO数据集上,9个聚类是:(10×13);(16×30);(33×23);(30×61);(62×45); (59×119); (116×90); (156×198); (373×326)。
2.4 Feature Extractor
我们使用新的网络来实现特征提取。我们的新网络是用于YOLOv2,Darknet-19中的网络和那些新颖的残差网络的混合方法。我们的网络使用连续的3×3和1×1卷积层,但现在也有一些shotcut连接,该网络明显更大。它有53个卷积层,所以我们称之为....... Darknet-53!
这个新网络比Darknet-19功能强大得多,而且比ResNet-101或ResNet-152更有效。以下是一些ImageNet结果:
每个网络都使用相同的设置进行训练,并以256×256的单精度测试进行测试。运行时间是在Titan X上以256×256进行测量的。因此,Darknet-53可与state-of-the-art的分类器相媲美,但浮点运算更少,速度更快。Darknet-53比ResNet-101更好,速度更快1:5倍。
Darknet-53与ResNet-152具有相似的性能,速度提高2倍。Darknet-53也可以实现每秒最高的测量浮点运算。这意味着网络结构可以更好地利用GPU,从而使其评估效率更高,速度更快。这主要是因为ResNets的层数太多,效率不高。
2.5 Training
我们仍然训练完整的图像,没有hard negative mining or any of that stuff 。我们使用多尺度训练,大量的data augmentation,batch normalization,以及所有标准的东西。我们使用Darknet神经网络框架进行训练和测试[12]。
YOLOv3真的非常优秀!请参见表3。就COCO的mAP指标而言,它与SSD variants相当,但速度提高了3倍。尽管如此,它仍然比像RetinaNet这样的其他模型落后很多。
然而,当我们在IOU = 0.5(或者图表中的AP50)看到mAP的“旧”检测度量时,YOLOv3非常强大。它几乎与RetinaNet相当,并且远高于SSD variants。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成像样的框(boxes)。但是,当IOU阈值增加时,性能会显著下降,这表明YOLOv3很难将这些框与对象完美地对齐。
在过去,YOLO在小目标的检测上表现一直不好。然而,现在我们看到了这种趋势的逆转。 随着新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。
但是,它在中等和更大尺寸的物体上的表现相对较差。需要更多的研究来达到这个目的。当我们在AP50指标上绘制精确度和速度时(见图3),我们看到YOLOv3与其他检测系统相比具有显著的优势。也就是说,速度越来越快。
我们在研究YOLOv3时尝试了很多东西。很多都不起作用。这是我们记得起的一部分。
Anchor box x,y offset predictions。我们尝试使用正常anchor box预测机制,这里你使用线性激活来预测x,y offset作为box的宽度或高度的倍数。我们发现这种方法降低了模型的稳定性,并且效果不佳。
Linear x,y predictions instead of logistic。我们尝试使用线性激活来直接预测x,y offeset 而不是逻辑激活。这导致mAP下降了几个点。
Focal loss。我们尝试使用focal loss。它使得mAp降低了2个点。YOLOv3对focal loss解决的问题可能已经很强大,因为它具有单独的对象预测和条件类别预测。 因此,对于大多数例子来说,类别预测没有损失? 或者其他的东西? 我们并不完全确定。
Dual IOU thresholds and truth assignment 。Faster R-CNN在训练期间使用两个IOU阈值。如果一个预测与ground truth重叠达到0.7,它就像是一个正样本,如果达到0.3-0.7,它被忽略,如果小于0.3,这是一个负样本的例子。我们尝试了类似的策略,但无法取得好成绩。
我们非常喜欢我们目前的表述,似乎至少在局部最佳状态。有些技术可能最终会产生好的结果,也许他们只是需要一些调整来稳定训练。
YOLOv3是一个很好的检测器。速度很快,很准确。虽然它在COCO平均AP介于0.5和0.95 IOU指标之间的表现并没有那么好,但是,对于检测度量0.5 IOU却非常好。为什么我们要改变指标?
最初的COCO论文有这样一句话:“一旦评估服务器完成,就会添加完整的评估指标的讨论”。Russakovsky等人报告说,人类很难区分IOU为0.3还是0.5。“训练人们目视检查一个IOU值为0.3的边界框,并将它与IOU 0.5区分开来是一件非常困难的事情。”[16]如果人类很难区分这种差异,那么它有多重要?
但是也许更好的问题是:“现在我们有了这些检测器(detectors),我们要做什么?”很多做这项研究的人都用在Google和Facebook上。我想至少我们知道这项技术是非常好的,绝对不会被用来收集您的个人信息,并将其出售给......等等,您是说这就是它的用途?其他大量资助视觉研究的人都是军队,他们才不会做例如用新技术杀死很多人这样可怕的事情......吧?
我很希望大多数使用计算机视觉技术的人都是用这项技术来做美好的事,正确的事的,比如计算一个国家公园内的斑马数量[11],或者追踪在它们周围徘徊时的猫[17]。但是计算机视觉已经被用于可疑的应用,作为研究人员,我们有责任至少考虑我们的工作可能会造成的伤害,并考虑如何减轻它的影响。 我们非常珍惜这个世界。(作者走心了......)
最后,不要@我。 (因为我终于退出了Twitter)。
使用金字塔网络
用逻辑回归替代softmax作为分类器
Darknet-53
速度确实快了,但mAP没有明显提升,特别是IOU > 0.5时。
[1] Analogy. Wikipedia, Mar 2018. 1
[2] 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
[3] 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
[4] 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
[5] 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 ithub.com/openimages, 2017. 2
[6] 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
[7] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar.´ Focal loss for dense object detection. arXiv preprint arXiv:1708.02002, 2017. 1, 3, 4
[8] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Com-´ mon objects in context. In European conference on computer vision, pages 740–755. Springer, 2014. 2
[9] 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
[10] I. Newton. Philosophiae naturalis principia mathematica. William Dawson & Sons Ltd., London, 1687. 1
[11] 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
[12] J. Redmon. Darknet: Open source neural networks in c. pjreddie.com/darknet/, 2013–2016. 3
[13] 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
[14] J. Redmon and A. Farhadi. Yolov3: An incremental improvement. arXiv, 2018. 4
[15] 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
[16] 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
[17] M. Scott. Smart camera gimbal bot scanlime:027, Dec 2017.4
[18] 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
[19] C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. 2017. 3