原作者论文地址https://pjreddie.com/media/files/papers/YOLOv3.pdf
机翻+自己部分修改如下
YOLOv3: An Incremental Improvement
Joseph Redmon, Ali Farhadi
University of Washington
摘要
我们给YOLO做了一些更新!我们为了使它更完善,在设计上做了一些小改变。我们也通过训练这个新网络使它功能更强。它比上次大了一点,但是更精确了。不必担心,它的速度依旧很快。以28.2mAP在320×320的YOLOv3中运行只需要22ms,与SSD一样准确但是速度快了三倍。当我们将YOLOv3与之前的5 IOU mAP检测指标相比时,可以看到YOLOv3的性能是相当不错的。在Titan X上,它在51 ms内实现了57.9的AP50,与RetinaNet在198 ms内的57.5 AP50相当,性能相似但速度快了三倍。像往常一样,所有的代码都在https://pjreddie.com/yolo/.上。
1.介绍
你知道吗?有时候一年来你只是在打电话。今年我没有把所有的时间都放在做大量的研究上,而是在推特上花了很多时间。研究了一下GAN。去年我产生了一点动力,我想给YOLO做一些改进。诚然,没有什么比只用一点点改变就能使YOLO的性能变得更好这件事更有意思了。我也帮助其他人做了一些研究。事实上,这就是如今带给我们的。我们有一个准备好拍摄的最后期限,我们需要引用一些随机更新的YOLO,但我们没有数据来源。所以准备好做一份技术报告吧!技术报告最好的就是并不需要介绍,大家都知道我为什么这么做。所以在这个介绍的最后,我将会给出这篇文章的剩余内容。首先我们会告诉你YOLOv3的详细内容。然后我们会告诉你我们是怎么做的。我们还会告诉你我们尝试过的一些没有奏效的事情。最后,我们将把目光放在这一切意味着什么。
2.论述
接下来要说的是YOLOv3的详细内容:我们常从其他人那里获得好点子。我也训练了一个比其他任何网络都要好的新分类器。为了方便你完全理解,我们将从零开始带你了解整个系统。

图1 我们从损失函数的文章中稍作改编。YOLOv3运行速度明显快于其他性能相当的检测方法。无论是M40还是Titan X,它们基本上是同一个GPU。
2.1边界框的预测
按照YOLO9000,我们的系统使用维度集群作为锚盒来预测边界。该网络预测每个边界框的4个坐标,分别是tx、ty、tw、th。如果细胞从图像左上角偏移(cx, cy),边界框先验有宽度和高度pw, ph,则预测对应:

在训练中,我们使用误差损失的平方和。如果某些坐标预测的标准值是 t*,我们的梯度是标准值(从标准值框计算)减去我们的预测:t-t。 这个标准值可以很容易地通过反求上面的方程计算出来。YOLOv3使用逻辑回归预测每个边界框的对象分数。 如果边界框先验比任何其他边界框先验与标准值重叠更多,则该值应该为1。如果以前的边界框不是最好的,但是确实将标准值对象重叠了一定的阈值以上,我们会忽略这个预测,按照[17]进行。我们使用阈值0.5。与[17]不同,我们的系统只为每个标准值对象分配一个边界框。客观来说,如果一个边界盒先验没有分配给一个标准值对象,它不会导致坐标或类预测的损失。

图2 带有尺寸先验和位置预测的边界框。我们预测盒子的宽度和高度是由聚类中心的偏移量决定的。我们使用sigmoid函数来预测盒子的中心坐标相对于过滤器应用程序的位置。这个数字明显是借鉴了[15]。
2.2类的预测
每个框使用多标签分类来预测边界框可能包含的类。我们没有使用softmax,因为我们发现它对于高性能没有必要,相反,我们只是使用独立的逻辑分类器。在训练过程中,我们使用二元交叉熵损失来进行类别预测。这个公式有助于我们移动到更复杂的领域,如开放图像数据集[7]。在这个数据集中有许多重叠的标签(如女性和人物)。使用softmax会强加了一个假设,即每个框中只有一个类别,但通常情况并非如此。多标签方法更好地对数据建模。
2.3跨尺度预测
YOLOv3预测3种不同尺度的框(boxes)。我们的系统使用类似的概念来提取这些尺度的特征,以形成金字塔网络[6]。从我们的基本特征提取器中,我们添加了几个卷积层。其中最后一个预测了3-d张量编码边界框,对象和类别预测。在我们的COCO实验[8]中,我们预测每个尺度的3个框,所以对于4个边界框偏移量,1个目标性预测和80个类别预测,张量为N×N×[3 *(4 + 1 + 80)]。
接下来,我们从之前的两层中取得特征图(feature map),并将其上采样2倍。我们还从网络的早期获取一个功能图,并使用连接将其与我们的上采样功能合并。这种方法使我们能够从早期特征映射中的上采样特征和更细粒度的信息中获得更有意义的语义信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个类似的张量,尽管现在它的大小是原来的两倍。
我们再次执行相同的设计来预测最终尺度的方框。因此,我们对第三种尺度的预测将从所有先前的计算中获益,并从早期的网络中获得细粒度的特征。
我们仍然使用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特征提取器
我们使用新的网络来实现特征提取。我们的新网络是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神经网络框架进行训练和测试[12]。
3.我们怎么做的
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.我们尝试过却失败的事情
我们在研究YOLOv3时尝试了很多东西。很多都不起作用。这是我们可以记住的东西。
锚盒x,y偏移预测。我们尝试使用正常锚盒预测机制,这里你能使用线性激活来预测x,y 偏移作为边框的宽度或高度的倍数。我们发现这种方法降低了模型的稳定性,并且效果不佳。
线性的x,y预测,而不是逻辑推理。我们尝试使用线性激活来直接预测x,y 偏移而不是逻辑激活。这导致mAP下降了几个点。
焦损失。我们尝试使用焦损失。它使得mAp降低了2个点。YOLOv3对焦损失解决的问题可能已经很强大,因为它具有单独的对象预测和条件类别预测。因此,对于大多数例子,类预测没有损失?或者其他的东西?我们并不完全确定。

表3 我真的只是从[9]借鉴了这些表,他们花了这么长时间从零开始。YOLOv3做得很好。记住,视网膜网需要3.8倍的时间来处理图像。YOLOv3比SSD变种要好得多,可与AP50标准上的最先进型号相媲美。

图3 再次改编自[9],这一次显示速度/精度权衡在0.5 IOU mAP指标的度量。你可以说YOLOv3很好,因为它很高而且在左边很远。你能举出你自己的论文吗?猜猜谁会去尝试,这个家伙→[16]。哦,我忘记了,我们还修复了YOLOv2中的一个数据加载错误,这得益于2 mAP。偷偷把这个弄进来,免得打乱布局。
双重IOU阈值和真值分配。快速区域卷积神经网络在训练期间使用两个IOU阈值。如果一个预测与标准值重叠达到0.7,它就像是一个正样本,如果达到0.3-0.7,它被忽略,如果小于0.3,这是一个负样本的例子。我们尝试了类似的策略,但并没能得到好的结果。
我们非常喜欢我们目前的表述,似乎至少在局部最佳状态。有些技术可能最终会产生好的结果,也许他们只是需要一些调整来稳定训练。
5.这一切意味着什么
YOLOv3是一个很好的检测器。速度很快,很准确。COCO mAP 介于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上。我想至少我们知道这项技术是非常好的,绝对不会被用来收集您的个人信息,并将其出售给......等等,您是说这就是它的用途?
那么其他大量资助视觉研究的人都是军人,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人哦等等.....
我非常希望大多数使用计算机视觉的人都能使用它做一些快乐的事情,研究了很多好的应用,比如在国家公园[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. 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. Dollar. ´ 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. Dollar, 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] 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又名Dan Grossman (lol blinding的作者)坚持认为我在这里指出我们的图表不是一个而是两个非零起点。你是绝对正确的,丹,那是因为它看起来比承认我们都在这里为2-3%的地图而战要好得多。但这里是所请求的图形。我还加入了一个FPS,因为当我们在FPS上绘图时,我们看起来就像超级棒。
Reddit上的评论者#4,又名JudasAdventus,写道:“读起来很有趣,但是反对MSCOCO指标的论据似乎有点站不住。”我早就知道你会出卖我的,犹大。你知道当你在做一个项目的时候,结果只会是好的,所以你必须找出一些方法来证明你做的事情实际上是很酷的?我基本上是在尝试这么做,然后我对COCO指标进行了一些抨击。但既然我已经在这座山上竖起了木桩,我宁可死在上面。
事情是这样的,地图已经坏了,所以对它的更新可能会解决一些问题,或者至少说明为什么更新的版本在某种程度上更好。我最不喜欢的一点就是缺乏正当性。对于PASCAL VOC, IOU阈值被“故意设置得很低,以反映地面真实数据中边界框的不准确性”。COCO的标签是否比VOC更好?这是绝对可能的,因为COCO有分割掩码,也许标签更值得信赖,因此我们不担心不准确。但是,我的问题是缺乏正当的理由。
COCO度量强调更好的边界框,但是这种强调必须意味着它去强调其他东西,在这种情况下,就是分类的准确性。是否有充分的理由认为更精确的边界框比更好的分类更重要?一个未分类的示例比一个稍微移动的边界框要明显得多。
mAP已经搞砸了,因为所有重要的是每个类的等级排序。例如,如果你的测试集只有这两幅图像,那么根据mAP,两个产生这些结果的检测器是一样好的:
<v:shape id="图片_x0020_5" o:spid="_x0000_i1025" type="#_x0000_t75" style="width:313.8pt;height:219pt;visibility:visible;
mso-wrap-style:square"><v:imagedata src="file:///C:/Users/HP/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png" o:title=""></v:imagedata></v:shape>
图5 根据这两幅图像的映射,这两个假设的探测器是完美的。他们都是完美的。完全相同的
这地图的问题显然是过于夸张,但我想我的新连接点是人们之间的这种明显的差异在“现实世界”的关心和我们目前的指标,我认为如果我们要想出新的指标我们应该关注这些差异。还有,它已经是平均精度了,我们甚至称它为COCO度规,平均平均精度是多少?
这里有一个建议,人们真正关心的是给定一个图像和一个探测器,探测器将如何发现和分类图像中的物体。去掉每个类的AP,只做一个全局平均精度怎么样?或者对每幅图像进行AP计算并求平均值?
无论如何,盒子都是愚蠢的,我可能更相信masks,除非我不能让YOLO学习它们。