YOLOv3论文全文完整理解翻译

前言


    由于毕业需要翻译一篇英文文献。理所当然,我选择了这篇简短的YOLOv3。不得不说翻译这篇文章是一件很愉快的事,因为作者的确是很可爱。前后花了一天多的时间吧,毕竟水平有限,借助了谷歌翻译,也参考了别人的翻译,为了保证其中专有名词翻译的精准,也查了很多资料。其中加入了不少自己的理解,但是理解水平非常有限,现挂在这里,大家一起来找问题吧,如果发现问题,欢迎在下方留言讨论,看到必回复。看YOLO3前建议先看看YOLO2和YOLO1,推荐一个翻译的很好的资源


                                 YOLOv3:一个渐进式的升级

                                                                         约瑟夫·雷德蒙,阿里·法哈迪

                                                                                       华盛顿大学

 

                                                                  摘要

        我们在YOLO上又做出了一些更新!实现了许多可以提升系统性能的小设计,也训练了一个非常棒的新网络。虽然新网络较上一版稍显庞大,但精度也提高了不少。不过,你也不用担心,因为它依旧很快。YOLOv3能在22毫秒内处理完一张320×320的输入图片,并取得28.2mAP的成绩。精度逼近SSD321,但速度却较其快了3倍。对比旧的两个版本,YOLOv3在0.5IOU的检测标准下的表现要优秀很多。另外,与RetinaNet精度57.5 AP50,Titan X上用时198ms的表现相比,YOLOv3精度57.9 AP50,用时却只有51ms。换言之,相近的性能而YOLOv3却要快3.8倍。和往常一样,所有的代码都开源在:https://pjreddie.com/yolo/.

1.引言

        有时候,一年的时间会因为一些“琐事”而消耗殆尽,你有这种感受吧?所以,去年我没做什么研究,而是花了不少时间Twitter上,也玩了一把GANs。然后利用去年仅存的一点精力[1][12],我对YOLO做了点改进。但是,老实说,这并不是什么大手笔,这只是一些可以让YOLO变得更好小更新,另外,我还帮别人做了一点研究。

        事实上,那是我们来这里的原因。我们的文章快交稿了[4],文中引用了我在YOLO中做出的某些更新的内容,但这样的引用来源还不存在,所以就先写个技术报告吧!

        技术报告有个好处,就是它不需要长长 “引言”,我想此时,你们都知道我们为什么要写这个。读到引言的结尾,我相信你们会对文章的结构有所了解。首先我们会向你介绍YOLOv3的更新情况,然后我们会向你们展示我们做的怎么样,然后我们会告诉你们一些失败的尝试,最后我们要说说这次更新到底意味着什么。

                

1 我们改编了Focal Loss论文[9]中的数据,绘制了此图。从图中可见,在性能相近时,Yolov3的运行速度明显快于其他检测模型。所有模型都是运行在M40Titanx上,它们是非常相近的GPU

2.更新

        所以这里就是YOLOv3的更新情况:我们几乎是从其他人那里获得更新的点子。当然我们也训练了一个比其他网络更好的新分类网络。我们将从头向你介绍,期望你能够得到完整的理解。

2.1边界框预测

        同YOLO9000一样,YOLOv3也使用数据集上边框聚类的结果来作为先验边框[15]。网络会为每个边界框预测4个坐标:tx、ty、tw和th。如果目标中心的所在网格与图像左上角的偏移是(cx, cy),并且它对应的先验边界框的宽和高为pw、ph,那么预测值将会由以下式子给出:

                                                                                

 

        在训练期间,我们使用误差平方和损失函数。如果预测坐标的所对应的标注值是 ,那么我们的梯度就是标注值(通过标注框算出)和预测值的差:。标注值可以通过以上式子的逆用而轻易算出。

                                                        

2。带有维度先验和位置预测的边界框。我们预测边框的宽度和高度作为聚类中心的偏移量。我们使用sigmoid函数预测边框相对于滤波器应用位置的中心坐标。这个图明显是从[15]自我抄袭而来的

        YOLOv3通过逻辑回归预测每个边界框的目标分数。如果当前预测的先验边框与标注边框的重合度比之前所有的预测先验边框都要高,那么它的分数就是1。如果当前的边框先验不是最好的,但是它和标注边框对象的重合度超过了设定阈值,与[17]一样,我们将舍弃这个预测。我们使用0.5作为阈值。但与[17]不同的是,YOLOv3只为每个标注对象分配一个先验边框。如果一个先验边框没有分配给一个标注对象,它不会对坐标或者类别的预测带来损失,只会影响目标的置信度。

2.2分类预测

        每个框都会使用多标签分类来预测边框中可能包含的类。我们不再使用softmax,因为我们发现它无助于提升模型的性能,取而代之的是单独的逻辑分类器。在训练过程中,我们用二元交叉熵损失来评价类别预测。

        当我们把YOLOv3用在更复杂的数据集时,比如Open Images数据集[7],上述操作就会有很大的帮助。Open Images中包含了大量重叠的标签(如女性和人),如果使用softmax,它会强加一个假设,即每个框只有一个类别,然而事实常常不是如此。相比之下,多标签分类方法能更好地拟合这些数据。

2.3多尺度预测

        YOLOv3在3中不同尺度上进行预测。我们的系统使用与FPN[8]相似的概念从这些不同尺寸的特征图中提取特征。我们在基础特征提取器中添加了几个卷积层。最后输出一个三维张量来编码边界框、目标置信度和类别预测。在COCO[10]数据集实验中,我们的模型为每种尺度的特征图各预测3个边框,所以得到的张量是N ×N ×[3∗(4+ 1+ 80)],其中包含4个边界框偏移值、1个目标预测置信度以及80种类别的预测概率。

        然后,我们从最低两个尺度(8×8和16×16)的卷积块中的倒数第二个个卷积层得到两种尺度的特征图,并对它们分别进行2倍上采样。再分别从比这两个卷积块更早的卷积块(16×16和32×32)输出中获得两种尺度的特征图,然后分别把两种尺度的高低两种分辨率的特征图级联起来。采用这种方式,能使我们从上采样的特征获得更多的语义信息,也能从较低层特征图中获得细粒度信息。然后,我们添加了一些卷积层来处理这两种(16×16和32×32)组合特征图,并最终预测出一个大小是原先(8×8×[3∗(4+ 1+ 80)]和16×16×[3∗(4+ 1+ 80)])两倍的相似张量。

         我们再次使用同样的设计来预测最后一种尺度(8×8)上的边框。因此,我们在第三种尺度的特征图上的预测将集成在网络之前所有的计算和低层的细粒度特征。

        YOLOv3依旧使用K-Means聚类方法来确定先验边框。在实验中,我们选择了9种先验边框和3种尺寸特征图,然后将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-101ResNet-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数据集那些奇怪的mAP评价指标,YOLOv3的表现与DSSD相当,却要快3倍。但不得不承认,它仍然比像RetinaNet这样的模型要落后许多。

        但是,当我们用以前的评价指标,即IOU=0.5时的mAp(表中的AP50)来评价YOLOv3时,我们发现它是真的强。它几乎可与RetinaNet比肩,且远高于DSSD。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成合适的边框。但是,随着IOU阈值的增加,YOLOv3性能显著下降,这表明YOLOv3在努力的使盒子与物体完美对齐。

3.我真的只是从[9]中窃取了所有这些表,他们花了很长很长很长时间来做这些。 好吧,YOLOv3干的不错。请记住,RetinaNet处理一张图像的时间是YOLOv33.8倍。 YOLOv3SSD要好得多,并且在AP50标准下可以与最先进的模型媲美!

       

3.再次从[9]改编,这次展示0.5 IOU mAP时的速度/准确度的比较。 你可以说YOLOv3很好,因为它非常高而且在左边很远。 你能引用自己的当前文章么?猜猜谁会去尝试,噢,是这家伙![16] 哦,还忘了一件事,我们修复了YOLOv2中在数据加载中的一个漏洞,这好像使模型提高了2 mAP 只是在这里偷偷提一下,这不是重点。

        在过去,YOLO一直在和小物体检测较劲。但是,现在我们可能要改变工作的重心。因为虽然通过新的多尺度预测,YOLOv3已具有相对较高的AP性能。 但是,它在中型和大型物体检测上的性能还相对较差。这可能需要更多的调研和实验才能知道如何去改进这一点。

        当我们基于AP50指标绘制精度与速度的关系时(参见图3)我们看到YOLOv3比起其他检测系统具有显着的优势。也就是说,它更快更好。

4.失败的尝试

        我们在实现YOLOv3的过程中尝试了很多东西,但是很多都失败了,以下是我们还记得的一些失败的尝试。

        “锚盒”x,y偏移预测。我们尝试使用常见的“锚盒”机制,通过使用线性激活将x,y的偏移预测为边框宽度或高度的倍数。但我们发现这种做法降低了模型的稳定性而且效果不佳。

        线性x,y预测而不是逻辑预测。我们尝试使用线性激活来直接预测x,y的偏移,而不是使用逻辑激活。这降低了mAP成绩。

        focal loss。我们尝试使用focal loss,但它大概吃掉了我们2个点的mAP。 这可能是因为具有单独的对象预测和条件类别预测的YOLOv3对于focal loss试图解决的问题已经具有相当的鲁棒性。是对于大多数例子,类别预测没有损失?还是其他什么原因?我们并不完全确定。

        双IOU阈值和真值分配。在训练期间,Faster- R-CNN用了两个IOU阈值,如果预测的边框与标注边框的重合度不低于0.7,那判定它为正样本。如果在0.3-0.7之间,则忽略。如果低于0.3,就判定它为负样本。我们也尝试了这种方法,但最终的效果并不好。

        我们非常喜爱我们现在的模型,它至少已经是目前的最佳状态。上述的有些技术可能会使我们的模型更好,但我们可能还需要对他们做一些调整。

5.更新的意义

        YOLOv3是一个很棒的检测器,它由准又快。虽然它在COCO数据集上,0.3和0.95IOU下的平均AP并不好,但在旧的0.5 IOU的检测指标下,它还是非常不错的。

        那我们改变指标干嘛?最初的COCO论文里也只有这样一句模棱两可的话:评估完成,就会生成完整的评估结果。但是Russakovsky等曾经指出,人类很难区分0.3与0.5的IOU的边框!“训练人类用肉眼区分0.3和0.5IOU的边框是一件超级难的事”[18]。既然人类都难以分辨,那这个指标有多重要?

         也许有个更好的问题值得我们探讨“我们用它来干什么”许多从事这项研究的人都在Google和Facebook,我想至少我们知道这个技术是掌握在好人手里,绝对不会把它用来收集你的个人信息然后卖给……等等,你究竟想用它来干嘛!!噢。

        另外军方也在计算机视觉研究上投入了大量资金,他们从来没有做过任何可怕的事情,比如用新技术杀死很多人……噢,等等

        我非常希望大多数使用计算机视觉技术的人,只是用它来做着快乐的、幸福的事情,比如数数国家公园里斑马的数量[13],  或者追踪在他们家里游荡的猫[19]。但是现在计算机视觉技术被用到一些可疑的地方。作为研究人员,我们至少有责任思考自己的工作可能的危害,并考虑如何减轻。我们欠这个世界太多太多。

        最后,不要@我,我已逃离Twitter。

 

参考文献

  1. Analogy. Wikipedia, Mar 2018. 1
  2. M. Everingham, L. Van Gool, C. K. Williams, J. Winn, andA.   Zisserman. The pascal visual object classes (voc) chal-lenge. 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 learn-ing for image recognition. In Proceedings of the IEEE con-ference 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. 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, andS.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. Ra-manan, P. Doll´ar, and C. L. Zitnick. Microsoft coco: Com-mon 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. 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 improve-ment. arXiv, 2018. 4
  17. S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: To-wards real-time object detection with region proposal net-works. arXiv preprint arXiv:1506.01497, 2015. 2
  18. 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. Shrivastava, R. Sukthankar, J. Malik, and A. Gupta. Be-yond skip connections: Top-down modulation for object de-tection. 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

参考:


http://www.cnblogs.com/nowgood/p/Hardexamplemining.html

https://www.cnblogs.com/skyfsm/p/8453498.html

https://zhuanlan.zhihu.com/p/35023499

https://github.com/SnailTyan/deep-learning-papers-translation

https://blog.csdn.net/weixin_42273095/article/details/81699352

发布了28 篇原创文章 · 获赞 34 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/sinat_35907936/article/details/90447297