YOLOv3:一个渐进式改进

Joseph Redmon,Ali Farhadi

​University of Washington

​论文地址:https://arxiv.org/pdf/1804.02767.pdf

​论文提交时间:2018年4月8日

摘要

我们向YOLO提供一些更新! 我们做了一些小的设计更改以使其更好。我们还训练了这个规模较大的新网络。 它比上次更大一点,但更准确。不用担心,它仍然很快。320×320的YOLOv3运行22毫秒可达到28.2 mAP,与SSD一样准确,但速度提高了三倍。当我们查看旧的0.5 IOU mAP检测指标,YOLOv3的表现非常好。它在Titan X上运行51毫秒内达到了57.9AP_{50},相比之下,RetinaNet在198毫秒内达到57.5AP_{50},性能相似,但速度提高了3.8倍。与往常一样,所有代码都在https://pjreddie.com/yolo/上。

1.介绍

你知道吗?有时你只需要打一年电话。今年我没有做很多研究,在Twitter上花了很多时间。玩了一下GAN。全年我留了下了一点动力[12][1];我设法对YOLO做了一些改进。但是,老实说,只是一点改变让它变得更好,没有什么比这更有趣了。我也在其他人的研究上做了一点帮助。

实际上,这就是我们今天来到这里的原因。我们有一个相机就绪截止日期[4],我们需要引用一些我对YOLO进行的随机更新,但我们没有来源。所以准备好进行技术报告!

技术报告的好处是他们不需要介绍,你们都知道我们为什么会在这里。因此,本文的结尾部分将针对本文的其余部分进行标记。 首先,我们将告诉您YOLOv3的处理方式。 然后我们会告诉你我们是怎么做的。 我们还会告诉你一些我们尝试过但不起作用的事情。最后,我们将思考这一切意味着什么。

2.处理方式

YOLOv3的处理方式:我们主要是从其他人那里获得了很好的想法。我们还训练了一个比其他分类器更好的新分类器网络。我们将从头开始带您浏览整个系统,以便您可以全面了解它。

图1.我们从Focal Loss论文[9]中调整了这张图。YOLOv3的运行速度明显快于其他具有可比性能的检测方法。时间数据来自M40或Titan X,它们基本上是相同的GPU。

2.1.边界框预测

在YOLO9000之后,我们的系统使用维度聚类作为anchor boxes来预测边界框[15]。网络预测每个边界框的4个坐标,t_xt_yt_wt_h。如果单元格偏离图像的左上角(c_xc_y),并且前面的边界框具有宽度和高度p_wp_h,则预测对应于:

\begin{array}\ b_x &=& \sigma(t_x)+c_x \\b_y &=& \sigma(t_y)+c_y \\b_w &=& p_w e^{t_w} \\b_h &=& p_h e^{t_h}\end{array}

在训练期间,我们使用平方误差损失的总和。如果某些坐标预测的ground truth是\hat{t}_*,我们的是ground truth值(从ground truth框计算)减去我们的预测:\hat{t}_* - t_*。通过反转上面的等式可以容易地计算该ground truth值。

图2.具有尺寸先验和位置预测的边界框。我们预测框的宽度和高度作为聚类质心的偏移量。我们使用sigmoid函数预测框相对于过滤器的中心坐标。这张图公然自我抄袭[15]。

YOLOv3使用逻辑回归预测每个边界框的对象性得分。如果之前的边界框与ground truth对象重叠超过任何其他边界框,则该值应为1。如果之前的边界框不是最好的但是与ground truth对象重叠超过某个阈值,我们忽略预测,按照[17]。我们使用0.5的阈值。[17]与我们的系统不同,它只为每个ground truth对象分配一个边界框。如果之前的边界框未分配给ground truth对象,则它不会导致坐标或类预测的损失,只会导致对象性的损失。

2.2.类预测

每个框使用多标签分类预测边界框可能包含的类。我们不使用softmax,因为我们发现它不需要良好的性能,而只是使用独立的逻辑分类器。在训练期间,我们使用二元交叉熵损失进行类预测。

当我们迁移到更复杂的领域(如Open Images Dataset)时,此公式会有所帮助。在此数据集中有许多重叠标签(即女人和人)。使用softmax假设每个框只有一个类,而通常不是这种情况。多标签方法可以更好地模拟数据。

2.3.跨尺度预测

YOLOv3预测3种不同尺度的方框。我们的系统使用与金字塔网络相似的概念从这些尺度中提取特征[8]。从我们的基本特征提取器中,我们添加了几个卷积层。最后一个预测了一个3-d张量,这个张量由边界框,对象性和类预测编码。 在我们使用COCO [10]的实验中,我们预测每个尺度有3个框,因此对于4个边界框偏移,1个对象性预测和80个类预测,张量为N×N×[3 *(4 + 1 + 80)]。

接下来,我们从前面的2层获取特征图,然后将其上采样2倍。我们还从网络中较早的位置获取了一个特征图,并使用连接将其与我们的上采样特征合并。这种方法允许我们从上采样特征中获取更有意义的语义信息,并从更早的特征图中获得更细粒度的信息。然后我们再添加一些卷积层来处理这个组合特征图,并最终预测出类似的张量,尽管现在是两倍大小。

我们再次执行相同的设计来预测最终比例的方框。因此,我们对第3阶段的预测受益于所有先前的计算以及网络早期的细粒度特征。

我们仍然使用k-means聚类来确定我们的边界框先验。我们只是任意选择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  

这个新网络比Darknet19强大得多,但仍然比ResNet-101或ResNet-152更有效。以下是一些ImageNet结果:

表2.backbone的比较,准确性,数十亿次操作,每秒十亿次浮点计算,以及各种网络的FPS

每个网络都使用相同的设置进行训练,并以256×256的大小,单一裁剪精度进行测试。 运行时间以256×256的大小在Titan X上测量。因此,Darknet-53的性能与最先进的分类器相当,但浮点运算更少,速度更快。 Darknet-53优于ResNet-101,速度提高1.5倍。 Darknet-53具有与ResNet-152类似的性能,速度提高了2倍。

Darknet-53还实现了每秒最高的测量浮点运算。 这意味着网络结构可以更好地利用GPU,从而提高评估效率,从而提高速度。 这主要是因为ResNets的层数太多而且效率不高。

2.5.训练

我们仍然训练完整的图像,没有hard negative mining或任何这些东西。 我们使用多尺度训练,大量数据扩充,批量标准化,所有标准的东西。 我们使用Darknet神经网络框架进行训练和测试[14]。

3.我们如何做

YOLOv3非常棒!参见表3。就COCO而言,奇怪的平均AP指标与SSD变体相当,但速度快3倍。尽管如此,它仍远远落后于RetinaNet等其他模型。

表3.我真的只是从[9]中窃取了所有这些表,他们从头开始做了很长时间。 好的,YOLOv3做得还不错。请记住,RetinaNet处理图像需要3.8倍的时间。YOLOv3比SSD变体要好得多,在AP50指标上与最先进的模型相当。

但是,当我们在IOU = 0.5(或图表中的AP_{50})中查看“旧”的mAP检测度量时,YOLOv3非常强大。它几乎与RetinaNet相当,远远超过SSD变体。这表明YOLOv3是一种非常强大的探测器,擅长为物体产生合适的框。然而,随着IOU阈值的增加,性能显着下降,表明YOLOv3努力使框与物体完美对齐。

过去,YOLO与小物件斗争。但是,现在我们看到了这种趋势的逆转。通过新的多尺度预测,我们看到YOLOv3具有相对较高的AP_S性能。但是,它在中型和大型物体上的性能相对较差。需要更多的探索才能深究这一点。

当我们在AP_{50}指标上绘制准确度与速度的关系时(见图5),我们看到YOLOv3比其他检测系统具有显着的优势。也就是说,它更快更好。

4.我们尝试过但是不起作用的东西

我们在YOLOv3的工作上尝试了很多东西。 很多都行不通。 这是我们能记住的东西。

anchor box的x,y偏移预测。我们尝试使用常规anchor box预测机制,您可以使用线性激活将x,y偏移预测为框宽度或高度的倍数。 我们发现这个公式降低了模型的稳定性并且效果不佳。

线性x,y预测而不是逻辑预测。我们尝试使用线性激活来直接预测x,y偏移而不是逻辑激活。这导致了mAP的几个点下降。

Focal loss。我们尝试使用Focal loss。它将我们的mAP降低了大约2个点。YOLOv3可能已经对Focal loss试图解决的问题具有鲁棒性,因为它具有单独的对象性预测和条件类预测。因此,对于大多数例子,类预测没有损失? 或者其他的东西? 我们并不完全确定。

图3.再次从[9]调整,这次显示mAP的速度/准确度折衷为0.5 IOU度量。 你可以说YOLOv3是好的,因为它非常高并且远在左边。 你能引用自己的论文吗? 猜猜谁会去尝试,这家伙→[16]。 哦,我忘记了,我们还修复了YOLOv2中的数据加载错误,这有点像2 mAP一样。 这里只是偷偷摸摸没有甩掉布局。

双IOU阈值和真值分配。Faster RCNN在训练期间使用两个IOU阈值。 如果一个预测与ground truth重叠了0.7它是一个正例,如果在[0.3-0.7]它被忽略,小于0.3对于所有ground truth对象来说它是一个反面的例子。 我们尝试了类似的策略,但无法取得好成绩。

我们非常喜欢我们目前的公式,它似乎至少在本地最佳。 这些技术中的一些可能最终会产生良好的结果,也许他们只需要一些调整来稳定训练。

5. 这一切意味着什么

YOLOv3是一个很好的探测器。它很快,很准确。它在0.5和0.95 IOU指标之间对COCO的平均AP不怎么好。但它对0.5 IOU的旧检测指标非常好。

我们为什么要切换度量标准?最初的COCO论文只有一句含蓄的话:“一旦评估服务器完成,将添加对评估指标的完整讨论”。Russakovsky等人报告说,人类很难区分0.3和0.5的IOU!“训练人类目视检查一个IOU为0.3的边界框,并将其与IOU为0.5的边界框区分开来,是非常困难的。”[18]如果人类很难分辨出两者之间的区别,那有多重要?

但也许一个更好的问题是:“现在我们拥有它们,我们将如何处理这些探测器?”很多从事这项研究的人都在谷歌和Facebook上。我想至少我们知道技术掌握得很好,绝对不会用来收集你的个人信息并把它卖给....等等,你说这正是它将用于什么?哦。

那么大量资助视觉研究的人是军队,他们从来没有做过任何可怕的事情,就像用新技术杀死很多人一样等等.....

作者由海军研究办公室和谷歌办公室资助。

我非常希望大多数使用计算机视觉的人只是在做一些快乐,好的东西,比如计算一个国家公园里的斑马数量[13],或跟踪他们在家里徘徊的猫[19] 。但是计算机视觉已经被用于质疑,作为研究人员,我们有责任至少考虑我们的工作可能造成的伤害并考虑减轻它的方法。我们欠世界的那么多。

最后,不要@我。 (因为我最终退出了Twitter)。

参考

[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. Openimages: 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\acute ar. Focal loss for dense object detection. arXiv preprintarXiv:1708.02002, 2017. 1, 3, 4

[10] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Doll\acute 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

图4.零轴图表可能在智力上更诚实…我们仍然可以用变量来让自己看起来很好!

反驳

我们要感谢Reddit评论员,同事,电子邮件,并在走廊里传递呐喊,感谢他们可爱而真诚的话语。如果你像我一样正在审查ICCV,那么我们知道你可能还有其他37篇论文,你可能会一直推迟到上周,然后邮件给你该领域的一些传说关于你应该如何完成这些评论除非不完全清楚他们说的是什么,也许他们来自未来? 无论如何,如果没有你过去自己在过去所做的所有工作,而且只是进一步前进,而不是一直到现在为止,这篇论文将不会成为它将要成为的东西。如果你发推文,我也不知道。只是说。

评论家#2 AKA Dan Grossman(lol blinding谁这样做)坚持我在这里指出我们的图表只有两个非零来源。Dan,你是绝对正确的,那是因为它看起来比承认自己更好,我们都只是在这里争夺超过2-3%的mAP。但这是请求的图表。我也用FPS投了一个,因为当我们在FPS上进行投影时,我们看起来像是超级好。

评论家#4 AKA JudasAdventus在Reddit上写道“娱乐性阅读,但反对MSCOCO指标的观点似乎有点弱”。 好吧,我一直都知道你会成为那个让我犹豫不决的人。你知道当你在一个项目上工作时它是如何出来的,所以你必须找出一些方法来证明你的实际操作是非常酷的吗?我基本上是在努力做到这一点,而且我对COCO指标有点猛烈抨击。 但是现在我已经把这座小山盯上了,我也可能死在它上面。

看到这里的东西,mAP已经有点破坏,所以对它的更新应该可以解决它的一些问题,或者至少证明为什么更新的版本在某种程度上更好。而我认为最重要的是缺乏理由。对于PASCAL VOC,IOU阈值“故意设置为低,以解释ground truth数据中边界框的不准确性”[2]。COCO的标签比VOC好吗? 这绝对是可能的,因为COCO有分段掩码,标签可能更值得信赖,因此我们并不担心不准确。但我的问题同样是缺乏理由。

COCO指标强调更好的边界框,但强调必须意味着它不再强调其他东西,在这种情况下强调的是分类准确性。是否有充分的理由认为更精确的边界框比更好的分类更重要? 错误分类的示例比稍微移位的边界框更明显。

mAP已经被搞砸了,因为重要的是每个类的排序。例如,如果你的测试集只有这两个图像,那么根据mAP,产生这些结果的两个探测器就是好的:

图5.根据这两个图像的mAP,这两个假设探测器是完美的。它们都很完美。完全相同。

现在这显然是对mAP问题的过度夸大,但我想我的新观点是,“现实世界”中人们关心的内容和我认为的当前指标之间存在明显的差异。要想出新的指标,我们应该关注这些差异。还有,平均mAP,它已经意味着平均精度,我们甚至称之为COCO指标?

这是一个提议,人们真正关心的是图像和探测器,探测器在图像中找到并分类对象的能力如何。如何摆脱每个类的AP并实现全局平均精度? 或者对每个图像进行AP计算并对其进行平均?

无论如何,框都是笨的,我可能是masks的真正信徒,除非我不能让YOLO学习它们。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容