YOLOv3: An Incremental Improvement - 增量改进(arXiv 2018)
- 摘要
- 1. 引言
- 2. 处理
- 2.1 边界框预测
- 2.2 类别预测
- 2.3 跨规模预测
- 2.4 特征提取器
- 2.5 训练
- 3. 我们的做法
- 4. 我们尝试过但没有成功的事情
- 5. 这一切意味着什么
- References
声明:此翻译仅为个人学习记录
文章信息
- 标题:YOLOv3: An Incremental Improvement (arXiv 2018)
- 作者:Joseph Redmon, Ali Farhadi
- 文章链接:https://arxiv.org/pdf/1804.02767.pdf
- 文章代码:https://pjreddie.com/darknet/yolo/
摘要
我们向YOLO提供一些更新!我们做了一些小的设计更改,使它变得更好。我们还训练了这个非常庞大的新网络。它比上次大一点,但更准确。不过还是很快,别担心。在320×320时,YOLOv3在22ms内运行得到28.2mAP,与SSD一样准确,但速度快三倍。当我们看到旧的.5 IOU mAP检测指标YOLOv3是相当好的。在Titan X上,它在51ms内达到57.9 AP50,相比之下,RetinaNet在198毫秒内达到了57.5 AP50,性能相似,但速度快3.8倍。一如既往,所有代码都在线https://pjreddie.com/yolo/.
1. 引言
有时你只是打了一年的电话,你知道吗?今年我没有做很多研究。花了很多时间在推特上。和GANs玩了一会儿。我有一点去年剩下的动力[12][1];我设法对YOLO做了一些改进。但是,老实说,没有什么比这更有趣的了,只是一些小的改变,让它变得更好。我也帮了别人一点忙。
事实上,这就是我们今天来到这里的原因。我们有一个准备好拍照的截止日期[4],我们需要引用我对YOLO的一些随机更新,但我们没有消息来源。所以,为技术报告做好准备吧!
科技报告的伟大之处在于,他们不需要介绍,你们都知道我们为什么来这里。因此,这篇引言的结尾将成为论文其余部分的路标。首先,我们将告诉您YOLOv3的处理内容。然后我们会告诉你我们是怎么做的。我们还会告诉你一些我们尝试过但没有成功的事情。最后,我们将思考这一切意味着什么。
2. 处理
因此,YOLOv3的处理方式是:我们大多从其他人那里获得好主意。我们还训练了一个新的分类器网络,它比其他分类器网络更好。我们将带您从头开始了解整个系统,以便您能够了解所有内容。
图1. 我们根据Focal Loss论文[9]调整了这个数字。YOLOv3的运行速度明显快于其他性能相当的检测方法。无论是M40还是Titan X,它们基本上都是相同的GPU。
2.1 边界框预测
根据YOLO9000,我们的系统使用维度簇作为锚框来预测边界框[15]。网络为每个边界框预测4个坐标,tx,ty,tw,th。如果单元格从图像的左上角偏移(cx,cy),并且边界框先验具有宽度和高度pw,ph,则预测对应于:
在训练过程中,我们使用误差平方和损失。如果某个坐标预测的真值是 t ^ ∗ \hat{t} * t^∗,则我们的梯度是真值(从真值框计算)减去我们的预测: t ^ ∗ − t ∗ \hat{t} *−t* t^∗−t∗。这个真值可以很容易地通过颠倒上面的方程来计算。
YOLOv3使用逻辑回归预测每个边界框的目标性得分。如果边界框先验与真值目标的重叠比任何其他边界框先验都多,则该值应为1。如果边界框先验不是最好的,但确实与真值目标重叠了超过某个阈值,我们将忽略预测,如[17]。我们使用阈值.5。与[17]不同,我们的系统只为每个真值目标分配一个边界框先验。如果边界框先验未指定给真值目标,则不会导致坐标或类预测的损失,只会导致目标性的损失。
图2. 具有维度先验和位置预测的边界框。我们将框的宽度和高度预测为与簇质心的偏移。我们使用sigmoid函数来预测框相对于过滤器应用程序位置的中心坐标。这个数字公然抄袭了[15]。
2.2 类别预测
每个框使用多标签分类来预测边界框可能包含的类。我们没有使用softmax,因为我们发现它对于良好的性能是不必要的,相反,我们只是使用独立的逻辑分类器。在训练过程中,我们使用二进制交叉熵损失进行类预测。
当我们转移到更复杂的领域,如开放图像数据集[7]时,这种公式会有所帮助。在这个数据集中有许多重叠的标签(即女性和个人)。使用softmax强加了这样一种假设,即每个框恰好有一个类,但事实往往并非如此。多标签方法可以更好地对数据进行建模。
2.3 跨规模预测
YOLOv3在3个不同的尺度上预测框。我们的系统使用与特征金字塔网络类似的概念从这些尺度中提取特征[8]。从我们的基本特征提取器中,我们添加了几个卷积层。最后一个预测了一个三维张量,编码边界框、目标性和类预测。在我们使用COCO[10]的实验中,我们在每个尺度上预测3个框,因此对于4个边界框偏移、1个目标性预测和80个类预测,张量为 N × N × [ 3 ∗ ( 4 + 1 + 80 ) ] N×N×[3*(4+1+80)] N×N×[3∗(4+1+80)]。
接下来,我们从前两层中提取特征图,并将其上采样2×。我们还获取了网络早期的特征图,并使用级联将其与上采样的特征合并。这种方法使我们能够从上采样的特征中获得更有意义的语义信息,并从早期的特征图中获得更细粒度的信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测一个类似的张量,尽管现在是它的两倍大。
我们再次执行相同的设计,以预测最终规模的框。因此,我们对第三尺度的预测受益于所有先前的计算以及网络早期的细粒度特征。
我们仍然使用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 特征提取器
我们使用一种新的网络来进行特征提取。我们的新网络是YOLOv2、Darknet-19中使用的网络和新的残差网络之间的混合方法。我们的网络使用连续的3×3和1×1卷积层,但现在也有一些快捷连接,并且明显更大。它有53个卷积层,所以我们称之为……等等……Darknet-53!
表1. Darknet-53。
这个新网络比Darknet-19强大得多,但仍然比ResNet-101或ResNet-152高效。以下是ImageNet的一些结果:
表2. 主干的比较。精确度、数十亿次运算、每秒数十亿次浮点运算,以及各种网络的FPS。
每个网络都使用相同的设置进行训练,并在256×256的单裁剪精度下进行测试。运行时间是在Titan X上以256×256测量的。因此,Darknet-53的性能与最先进的分类器不相上下,但浮点运算更少,速度更快。Darknet-53比ResNet-101好,速度快1.5倍。Darknet-53的性能与ResNet-152相似,速度快2倍。
Darknet-53还实现了每秒最高的浮点运算。这意味着网络结构可以更好地利用GPU,使其评估更高效,从而更快。这主要是因为ResNets的层太多,效率不高。
2.5 训练
我们仍然在完整的图像上训练,没有耗费体力的负面挖掘或任何类似的东西。我们使用多尺度训练、大量数据增强、批量规范化,所有这些都是标准的东西。我们使用Darknet神经网络框架进行训练和测试[14]。
3. 我们的做法
YOLOv3相当不错!见表3。就COCO而言,奇怪的平均AP指标与SSD变体不相上下,但速度快了3倍。不过,在这个指标上,它仍然远远落后于RetinaNet等其他型号。
然而,当我们观察IOU=.5(或图表中的AP50)时mAP的“旧”检测指标时,YOLOv3非常强大。它几乎与RetinaNet不相上下,远高于SSD变体。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成像样的框。然而,随着IOU阈值的增加,性能显著下降,这表明YOLOv3很难使框与目标完全对齐。
过去,YOLO与小物体搏斗。然而,现在我们看到了这一趋势的逆转。通过新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。然而,它在中型和大型物体上的性能相对较差。需要更多的调查才能弄清真相。
当我们在AP50指标上绘制精度与速度的关系图(见图5)时,我们发现YOLOv3比其他检测系统具有显著的优势。也就是说,它更快更好。
4. 我们尝试过但没有成功的事情
在开发YOLOv3时,我们尝试了很多东西。很多都没用。这是我们能记住的东西。
锚框x,y偏移预测。我们尝试使用普通锚框预测机制,通过线性激活将x,y偏移预测为框宽度或高度的倍数。我们发现这种配方降低了模型的稳定性,效果不太好。
线性x,y预测而非逻辑预测。我们尝试使用线性激活来直接预测x,y偏移,而不是逻辑激活。这导致mAP下降了几个点。
焦点损失。我们尝试使用焦点损失。它使我们的mAP下降了大约2个点。YOLOv3可能已经对焦点损失试图解决的问题具有鲁棒性,因为它具有单独的目标性预测和条件类预测。因此,对于大多数例子来说,类预测没有损失?还是什么?我们不能完全确定。
表3. 我真的只是从[9]那里偷了所有这些表格,它们从头开始需要太长时间。好的,YOLOv3做得很好。请记住,RetinaNet处理图像的时间大约是3.8倍。YOLOv3比SSD变体要好得多,在AP50指标上与最先进的型号相当。
图3. 再次改编自[9],这一次在.5 IOU度量的mAP上显示速度/精度折衷。你可以看出YOLOv3很好,因为它很高,而且离左边很远。你能引用你自己的论文吗?猜猜谁来试试,这家伙→ [16] 。哦,我忘了,我们还修复了YOLOv2中的一个数据加载错误,这有2mAP的帮助。只是偷偷把这个放在这里,以免打乱布局。
双重IOU阈值和真值分配。Faster R-CNN在训练中使用两个IOU阈值。如果一个预测与真值重叠了.7,这是一个阳性的例子,而到了[.3−.7],它就会被忽略,对于所有真值目标,它都小于.3,这就是一个阴性的例子。我们尝试了类似的策略,但没有得到好的结果。
我们非常喜欢我们目前的公式,它似乎至少处于局部最优。这些技术中的一些可能最终会产生好的结果,也许它们只需要一些调整来稳定训练。
5. 这一切意味着什么
YOLOv3是一个很好的检测器。它很快,很准确。在COCO的平均AP介于.5和.95 IOU指标之间,它并没有那么好。但它在旧的检测指标.5 IOU上非常好。
我们为什么要切换指标?COCO最初的论文中有这样一句隐晦的话:“一旦评估服务器完成,将添加对评估指标的全面讨论”。Russakovsky等人报告说,人类很难区分0.3和.5的IOU!“训练人类对IOU为0.3的边界框进行视觉检查,并将其与IOU为0.5的边界框区分开来,这令人惊讶地困难。”[18]如果人类很难分辨出区别,这有多重要?
但也许一个更好的问题是:“既然我们有了这些检测器,我们该怎么办?”做这项研究的很多人都在谷歌和脸书。我想至少我们知道这项技术掌握得很好,肯定不会被用来获取你的个人信息并将其出售给……等等,你是说这正是它的用途??哦
其他大量资助视觉研究的人是军方,他们从来没有做过像用新技术杀死很多人这样可怕的事情哦等等…(作者由海军研究办公室和谷歌资助)
我非常希望大多数使用计算机视觉的人只是在用它做一些快乐的好事,比如在国家公园里数斑马的数量[13],或者在猫在家里游荡时跟踪它[19]。但计算机视觉的使用已经受到质疑,作为研究人员,我们有责任至少考虑我们的工作可能造成的危害,并想办法减轻它。我们欠世界这么多。
最后,不要@我。(因为我终于退出了推特)。
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´ar. 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´ar, 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 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
[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