论文链接:https://arxiv.org/abs/1804.02767
YOLOv3: An Incremental Improvement
Abstract (摘要)
我们提出了一些对YOLO的升级!我们做了一些小的设计修改来使它更好。我们同样训练了该新网络,它的表现非常不错。它比上一个版本大一点但是精度更高。别担心,它仍然足够快。使用320x320的输入时YOLOv3的执行速度为22ms得到mAP为28.2,与SSD精度一样高但是速度快了三倍。如果看老的检测指标——0.5IOU的mAP,YOLOv3表现的也相当出色。在一个Titan X上AP50为57.5执行速度为51ms,Retinanet的AP50为57.5执行速度为198ms,与Retinanet相比精度差不多但是速度快了3.8倍。按照惯例,代码地址:https://pjreddie.com/yolo/。
1. Introduction
你知道吗,有时候你感觉一年都在打电话。今年我们没有做很多的研究。在Twitter上花费了很多时间。尝试了一下GAN网络。我还有一些去年遗留的动力[12][1],我设法对YOLO进行一些改进。但是,老实说,没有非常有趣的东西,只是一系列的小修改使他变的更好。我也帮别人做了一些研究。
实际上,写这篇文章的原因是这样的。我们有一个最终版本的截止时间[4],我们需要引用一些我提出一些对YOLO随机的更新,但是我们没有来源。所以准备好看一篇技术报告吧。
技术报告最棒的一点是不需要对他们进行介绍,你们都知道为什么会用到它。所以在引言的最后我们介绍一下剩余文章的要点。首先我们告诉你在YOLOv3中做了那些处理。然后说明一下我们是怎么做的。同样会说明一些我们尝试过但是没有成功的事情。最后我们思考一下这些意味着什么。
2. The Deal
下面就是我们要在YOLOv3上要做的事情:大部分都是采用的其他人的好办法。我们同样训练了一个比其他网络更好的分类网络。我们将从头开始为你介绍整个系统,可以让你彻底理解它。
2.1. Bounding Box Prediction
与YOLO9000一样,我们使用维度聚类作为锚点框[15]来预测边界框。网络为每个边界框预测四个坐标——tx,ty,tw,th。如果网格单元相对于图片左上角的偏移坐标是(cx,cy),先验框的宽和高是pw,ph,那么对应的预测结果为:
训练时我们使用平方和误差损失。如果真值是
t
^
\widehat{t}
t
,那么我们他梯度就是真值(由真值框计算得到)减去我们的预测值:
t
^
\widehat{t}
t
- t*。该真值可以通过翻转上面的公式很容易的计算出来。
YOLOv3为使用逻辑回归为每个边界框预测一个目标得分。如果一个先验框与真值框物体的重合度比其他所有先验框都大,这个值应该为1。如果一个先验框不是最好的但是与真值框物体的重合度超过了一个阈值,我们会忽略掉该预测结果,与[17]一样。我们使用的阈值是0.5。与[17]不同,我们的系统为每一个真值目标指定一个先验框。如果一个先验框没有指定给任何一个真值目标,它不会算到坐标和类别预测的损失内,只是标记是否有物体。
2.2. Class Prediction
使用多标签分类为每一个框预测可能包含的类。我们没有使用softmax,因为我们发现它对于高精度不是必须的,相反我们仅仅使用了一个独立的逻辑分类器。训练中我们使用了二元交叉熵损失来实现类别预测。
当我们遇到更加复杂的领域例如Open Image Dataset时[7],这个公式会有所帮助。在该数据集中可能会与标签的交叉(例如,女人和人)。使用softmax会假设每个框只有一个类别,而事实并非如此。多标签的方法可以更好的对数据进行建模。
2.3. Predictions Across Scales
YOLOv3预测三种尺度的框。我们的系统使用类似于FPN网络[8]的概念根据这些尺度来提取特征。我们在基础的特征提取器上添加了几个卷积层。最后会预测一个3D的tenor——对边界框、是否有物体、类别预测进行了编码。我们使用COCO做实验时每个尺度预测三个框,因此预测得到的tensor为N x N x [3 * (4 + 1 + 80)],4为边界框偏移,1为物体预测,80为类别预测。
然后我们取前两层的特征图,然后进行2倍上采样。我们还取了网络中更前面的特征图,然后与上采样的特征拼接到一起。这种方法可以使我们从上采样的特征中获取更有意义的语义信息,从前面的特征图中获取更细粒度的信息。然后我们再添加几个卷积层来处理结合后的特征图,最后预测一个类似的tensor,尽管现在大小会是原来的两倍。
我们为最后一个尺度再次执行相同的设计来预测框。因此,我们对第三尺度的预测得益于所有先前的计算以及网络早期的细粒度特征。
我们仍然使用k-均值聚类来确定我们的先验框。我们只是随意选择了9个簇和3个尺度,然后在尺度上均分每个簇。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卷积层,但现在也有一些shortcut连接,网络明显的增大了。它有53个卷积层所以我们称之为。。为。。为。。。。Darknet-53!
新网络比Darknet-19更加强大,并且仍然比Resnet-101和Resnet-152效率更高。
所有的网络使用相同的配置进行训练,并且使用256x256的单尺度进行精度测试。网络使用Titan X运行,大小为256x256。Darknet-53与最先进的分类器一样优秀,但是浮点计算更少速度更快。Darknet53比Resnet101精度更高,速度快1.5倍。Darknet53与Resnet152精度差不多,但是速度快2倍。
每秒浮点计算Darknet53同样达到了最高。这意味着网络结构能够更好的利用GPU,使它评估更高效因此也更快。主要原因是残差网络使网络的层更多,但并不高效。
2.5. Training
我们仍然在完整的图像上训练,没有困难样本挖掘或任何类似的东西。我们使用多尺度训练,大量数据增强,批量标准化,所有标准的东西。我们使用Darknet神经网络框架进行训练和测试[14]。
3. How We Do
YOLOv3相当不错!见表3。在COCO的mAP度量方面,它与SSD变量相当,但快3倍。不过,在这一指标上,它仍然远远落后于其他模型,如RetinaNet。
然而,当我们观察"旧指标"——IOU=0.5(或图表中的AP50)的mAP时,YOLOv3表现非常好。它几乎与Retinanet相当,远高于SSD的变种。这表明YOLOv3是一个非常强大的探测器,擅长为物体生成合适的边界框。但是,随着IOU阈值的增加,精度显著下降,这表明YOLOv3难以使框与对象完全对齐。
在过去,YOLO在小目标检测方面一直表现不好。然而,现在我们看到了这一趋势的逆转。通过新的多尺度预测,我们看到YOLOv3在APs具有相对较高精度。但是,在中型和大型目标上的表现相对较差。需要更多的调查来弄清这一点。
当我们绘制了AP50指标上精度与速度的关系图(见图5)时,我们发现YOLOv3比其他检测系统具有显著的优势。也就是说,它更快更好。
4. Things We Tried That Didn’t Work
我们在研究YOLOv3时尝试了很多东西。很多都没起作用。这是我们能记住的一些尝试。
anchor box的坐标x,y的偏移预测。 我们尝试使用常用的anchor box预测机制,使用一个线性激活函数来预测x,y的偏移预测为框的宽和高的倍数。我们发现该方法降低了模型的稳定性,效果也不好。
使用线性预测x,y替代逻辑预测。 我们尝试使用一个线性激活函数来直接预测x,y的偏移,而不是逻辑激活函数。这是mAP下降了几个点。
Focal loss. 我们尝试使用focal loss。结果mAP下降了2个点。YOLOv3可能对focal loss试图解决的问题已经具有了鲁棒性,因为它有独立的目标预测和条件类别预测。因此对于大部分实例没有类别预测的loss?或其他什么的?我们不能确定。
IOU双阈值和真值分配。 Faster R-CNN在训练时使用了两个IOU阈值。如果预测值与真值的的重叠超过0.7则是一个正样本,[0.3,0.7]之间的会被忽略掉,小于0.3的对于所有的真值目标都为负样本。我们尝试了类似的策略,但是结果并不理想。
我们非常喜欢我们目前的实现方式,它看起来至少处于局部最优。这些技术中的一些可能最终会产生好的结果,也许它们只是需要一些调整来稳定训练。
5. What This All Means
YOLOv3是一个很好的检测器。速度快,精度高。它虽然在COCO上IOU从0.5到0.95的平均AP指标表现并没那么好。但是,在老的指标——0.5上表现非常出色。
为什么我们切换指标呢?COCO最初的论文中有这样一句晦涩的话:“一旦评估服务器完成,将会对评估指标进行全面讨论”。Russakovsky等人报告说,人类很难区分IOU为0.3和0.5的区别!”训练人类用眼睛查找IOU为0.3的边界框,并将其与IOU为0.5的边界框区分开来,这是一件非常困难的事情。”[18]如果人类很难分辨出其中的区别,那么这又有多重要呢?
但也许一个更好的问题是:“既然我们有了这些探测器,我们要用它们做什么?”很多做这项研究的人都在谷歌和Facebook。我想至少我们知道这项技术不会被滥用,肯定不会被用来收集你的个人信息并卖给。。。。等等,你是说这正是它的用途??哦
嗯,其他大量资助视觉研究的人是军队,他们从来没有做过像用新技术杀死很多人这样可怕的事情哦,等等。。。。。
我非常希望大多数使用计算机视觉的人都能用它做一些快乐、有益的事情,比如在国家公园里数数斑马的数量[13],或者在猫在家里闲逛时跟踪它[19]。但是计算机视觉的应用受到很多质疑,作为研究者,我们有责任至少考虑我们的工作可能造成的危害,并想办法减少它的危害。我们欠世界那么多。
最后,不要@我(因为我最终退出了Twitter)。
References
[1] Analogy. Wikipedia, Mar 2018. 1
[2] 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
[3] 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
[4] 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
[5] 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
[6] 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
[7] 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. Open-images: A public dataset for large-scale multi-label and multi-class image classification. Dataset available from https://github.com/openimages, 2017. 2
[8] 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 [9] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollár. Focal loss for dense object detection. arXiv preprint arXiv:1708.02002, 2017. 1, 3, 4
[10] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollár, and C. L. Zitnick. Microsoft coco: Common objects in context. In European conference on computer vision, pages 740–755. Springer, 2014. 2
[11] 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
[12] I. Newton. Philosophiae naturalis principia mathematica. William Dawson & Sons Ltd., London, 1687. 1 [13] 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
[14] J. Redmon. Darknet: Open source neural networks in c. http://pjreddie.com/darknet/, 2013–2016. 3 [15] 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
[16] J. Redmon and A. Farhadi. Yolov3: An incremental improvement. arXiv, 2018. 4 [17] 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
[18] O. Russakovsky, L.-J. Li, and L. Fei-Fei. Best of bothworlds: human-machine collaboration for object annotation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 2121–2131, 2015. 4 [19] M. Scott. Smart camera gimbal bot scanlime:027, Dec 2017.4
[20] 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
[21] C. Szegedy, S. Ioffe, V. Vanhoucke, and A. A. Alemi. Inception-v4, inception-resnet and the impact of residual connections on learning. 2017. 3