文章目录[隐藏]
我只是翻译或转载文献,截屏论文图片,记录下阅读记录。如有侵权,请联系删帖。
原标题: YOLOv3: An Incremental Improvement
原作者: Joseph Redmon, Ali Farhadi
YOLO官网:YOLO: Real-Time Object Detectionhttps://pjreddie.com/darknet/yolo/论文链接(arxiv地址在后面):https://pjreddie.com/media/files/papers/YOLOv3.pdfhttps://pjreddie.com/media/files/papers/YOLOv3.pdfhttps://arxiv.org/abs/1804.02767https://arxiv.org/abs/1804.02767-------------------------------------------------------正文开始----------------------------------------------------------
Abstract
我们给YOLO提供一些更新! 我们做了一些小的设计更改以使其更好。 我们也训练了这个非常好的新网络。它比上次(YOLOv2)稍大一些,但更准确。它仍然很快,所以不用担心。在320×320 YOLOv3运行22.2ms,28.2 mAP,像SSD一样准确,但速度快三倍。 当我们看看以老的0.5 IOU mAP检测指标时,YOLOv3是相当不错的。 在Titan X上,它在51 ms内实现了57.9的AP50,与RetinaNet在198 ms内的57.5 AP50相当,性能相似但速度快3.8倍。与往常一样,所有代码均在YOLO: Real-Time Object Detection
1 Introduction
有时候,一年你主要只是在打电话,你知道吗?今年我没有做很多研究。我在Twitter上花了很多时间。玩了一下GAN。去年我留下了一点点的动力;我设法对YOLO进行了一些改进。但是诚然,没有什么比这超级有趣的了,只是一小堆(bunch)改变使它变得更好。我也帮助了其他人的做一些研究。
其实,这就是今天带给我们的。我们有一个camera-ready deadline ,我们需要引用一些对YOLO任意的更新,但我们没有资源 。所以为技术报告做准备!
关于技术报告的好处是他们不需要介绍,你们都知道我们为什么来到这里。因此,这篇介绍性文章的结尾将为本文的其余部分提供signpost。首先我们会告诉你YOLOv3的详细内容。然后我们会告诉你我们是怎么做的。我们还会告诉你我们尝试过的一些没有奏效的事情。最后,我们将考虑这一切意味着什么。
2 The Deal
这里是YOLOv3的详细内容:我们主要从其他人那里获得好点子。我们也训练了一个比其他人更好的新分类器网络。我们将从头开始介绍整个系统,以便您能够理解这一切。
2.1 Bounding Box Prediction
在YOLO9000之后,我们的系统使用维度聚类(dimension clusters )作为anchor boxes来预测边界框。网络为每个边界框预测4个坐标,tx,ty,tw,th。 如果单元格从图像的左上角偏移(cx; cy),并且之前的边界框具有宽度和高度pw,ph,则预测对应于:
在训练期间,我们使用平方误差损失的总和。如果对于一些坐标预测的ground truth是 ,我们的梯度是ground truth(由ground box计算得到)减去我们的预测: 。 通过反转上面的方程可以很容易地计算出这个ground truth。
YOLOv3使用逻辑回归预测每个边界框(bounding box)的对象分数。 如果先前的边界框比之前的任何其他边界框重叠ground truth对象,则该值应该为1。如果以前的边界框不是最好的,但是确实将ground truth对象重叠了一定的阈值以上,我们会忽略这个预测,按照进行。我们使用阈值0.5。与[不同,我们的系统只为每个ground truth对象分配一个边界框。如果先前的边界框未分配给grounding box对象,则不会对坐标或类别预测造成损失。
2.2 Class Prediction
每个框使用多标签分类来预测边界框可能包含的类。我们不使用softmax,因为我们发现它对于高性能没有必要,相反,我们只是使用独立的逻辑分类器。 在训练过程中,我们使用二元交叉熵损失来进行类别预测。
这个公式有助于我们转向更复杂的领域,如Open Image Dataset[5]。在这个数据集中有许多重叠的标签(如女性和人物)。使用softmax会强加了一个假设,即每个框中只有一个类别,但通常情况并非如此。多标签方法更好地模拟数据。
2.3 Prediction Across Scales
YOLOv3预测3种不同尺度的框(boxes)。我们的系统使用类似的概念来提取这些尺度的特征,以形成金字塔网络[6]。从我们的基本特征提取器中,我们添加了几个卷积层。其中最后一个预测了3-d张量编码边界框,对象和类别预测。在我们的COCO实验[8]中,我们预测每个尺度的3个框,所以对于4个边界框偏移量,1个目标性预测和80个类别预测,张量为N×N×[3 *(4 + 1 + 80)]。
接下来,我们从之前的两层中取得特征图(feature map),并将其上采样2倍。我们还从网络中的较早版本获取特征图,并使用element-wise addition将其与我们的上采样特征进行合并。这种方法使我们能够从早期特征映射中的上采样特征和更细粒度的信息中获得更有意义的语义信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个相似的张量,虽然现在是两倍的大小。
我们再次执行相同的设计来预测最终尺度的方框。因此,我们对第三种尺度的预测将从所有先前的计算中获益,并从早期的网络中获得细粒度的特征。
我们仍然使用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 Feature Extractor
我们使用新的网络来实现特征提取。我们的新网络是用于YOLOv2,Darknet-19中的网络和那些新颖的残差网络的混合方法。我们的网络使用连续的3×3和1×1卷积层,但现在也有一些shotcut连接,该网络明显更大。它有53个卷积层,所以我们称之为....... Darknet-53
这个新网络比Darknet-19功能强大得多,而且比ResNet-101或ResNet-152更有效。以下是一些ImageNet结果:
每个网络都使用相同的设置进行训练,并以256×256的单精度测试进行测试。运行时间是在Titan X上以256×256进行测量的。因此,Darknet-53可与state-of-the-art的分类器相媲美,但浮点运算更少,速度更快。Darknet-53比ResNet-101更好,速度更快1:5倍。 Darknet-53与ResNet-152具有相似的性能,速度提高2倍。
Darknet-53也可以实现每秒最高的测量浮点运算。这意味着网络结构可以更好地利用GPU,从而使其评估效率更高,速度更快。这主要是因为ResNets的层数太多,效率不高。
2.5 Training
我们仍然训练完整的图像,没有hard negative mining or any of that stuff 。我们使用多尺度训练,大量的data augmentation,batch normalization,以及所有标准的东西。我们使用Darknet神经网络框架进行训练和测试。
3 How We Do
YOLOv3非常好!请参见表3。就COCO的mAP指标而言,它与SSD variants相当,但速度提高了3倍。尽管如此,它仍然比像RetinaNet这样的其他模型落后很多。
然而,当我们在IOU = 0.5(或者图表中的AP50)看到mAP的“旧”检测度量时,YOLOv3非常强大。它几乎与RetinaNet相当,并且远高于SSD variants。这表明YOLOv3是一个非常强大的检测器,擅长为目标生成像样的框(boxes)。However, performance drops significantly as the IOU threshold increases indicating YOLOv3 struggles to get the boxes perfectly aligned with the object。
在过去,YOLO在小目标的检测上表现一直不好。然而,现在我们看到了这种趋势的逆转。 随着新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。但是,它在中等和更大尺寸的物体上的表现相对较差。需要更多的研究来达到这个目的。当我们在AP50指标上绘制精确度和速度时(见图3),我们看到YOLOv3与其他检测系统相比具有显著的优势。也就是说,速度越来越快。
4 Things We Tried That Didn’t Work
我们在研究YOLOv3时尝试了很多东西。很多都不起作用。这是我们可以记住的东西。
Anchor box x,y offset predictions。我们尝试使用正常anchor box预测机制,这里你使用线性激活来预测x,y offset作为box的宽度或高度的倍数。我们发现这种方法降低了模型的稳定性,并且效果不佳。
Linear x,y predictions instead of logistic。我们尝试使用线性激活来直接预测x,y offeset 而不是逻辑激活。这导致mAP下降了几个点。
Focal loss。我们尝试使用focal loss。它使得mAp降低了2个点。YOLOv3对focal loss解决的问题可能已经很强大,因为它具有单独的对象预测和条件类别预测。 因此,对于大多数例子来说,类别预测没有损失? 或者其他的东西? 我们并不完全确定。
Dual IOU thresholds and truth assignment 。Faster R-CNN在训练期间使用两个IOU阈值。如果一个预测与ground truth重叠达到0.7,它就像是一个正样本,如果达到0.3-0.7,它被忽略,如果小于0.3,这是一个负样本的例子。我们尝试了类似的策略,但无法取得好成绩。
我们非常喜欢我们目前的表述,似乎至少在局部最佳状态。有些技术可能最终会产生好的结果,也许他们只是需要一些调整来稳定训练。
5 What This All Means
YOLOv3是一个很好的检测器。速度很快,很准确。COCO平均AP介于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上。我想至少我们知道这项技术是非常好的,绝对不会被用来收集您的个人信息,并将其出售给......等等,您是说这就是它的用途?
那么其他大量资助视觉研究的人都是军人,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人哦等等.....
我有很多希望,大多数使用计算机视觉的人都是做的快乐,研究了很多好的应用,比如计算一个国家公园内的斑马数量,或者追踪它们在它们周围徘徊时的猫[17]。但是计算机视觉已经被用于可疑的应用,作为研究人员,我们有责任至少考虑我们的工作可能会造成的伤害,并考虑如何减轻它的影响。 我们非常珍惜这个世界。(作者走心了......)
最后,不要@我。 (因为我终于退出了Twitter)。
Rebuttal(反证;辩驳)
我们要感谢Reddit的评论者、实验室的同事、电子邮件的发送者,以及走廊里传来的呼喊,感谢他们可爱的、衷心的话语。如果你像我一样,正在评估ICCV然后我们知道你可能有37个其他文件你可以阅读,你会总是推迟到最后一周,然后有一些传说的邮件你你真的应该如何完成这些评论除它不会外完全清楚他们所说的,也许他们的未来?无论如何,如果没有你们过去所做的工作,这篇论文也不会成为现在的样子但只是往前一点,而不是一直往前到现在。就算你发了推特,我也不知道。只是歌词。
2号评论者Dan Grossman坚持认为我在这里指出我们的图表有两个非零起源,而不是一个。你完全正确,丹,因为这看起来比承认我们都在这里为2-3%的地图战斗要好得多。但这里是要求的图表。我也加入了FPS,因为我们在FPS上绘图时看起来非常棒。
4号评论者JudasAdventus在Reddit上写道:“有趣的阅读,但反对MSCOCO指标的论据似乎有点弱。”我就知道你会背叛我,犹大。你知道当你在做一个项目,结果很好,所以你必须找到一些方法来证明你所做的实际上很酷?我就是想这么做,我抨击了COCO的指标。但既然我已经在这座山上立了标杆,我还不如死在山上。
看这里的事情,MAP似乎已经有点被玩坏了,所以一个updatetoit应该可以解决一些问题,至少证明为什么更新版本在某些方面更好。我反对的最重要的一点就是缺乏正当的理由。对于PASCALVOC,借据阈值“被故意设置得很低,以解释地面真实数据中边界框的不准确性”[2]。COCO比VOC有更好的标签吗?这是绝对可能的,因为COCO有分割掩码,也许标签更值得信任,因此我们不担心不准确性。但同样,我的问题是缺乏正当的理由。
COCO指标强调更好的边界框,但这个强调一定意味着它不强调其他东西,在这种情况下,分类准确性。有充分的理由去考虑更多吗?精确的边框比更好的分类更重要?一个分类错误的例子比一个稍微移动的边界框要明显得多。
mAP已经搞砸了,因为所有重要的是每个类的排序。例如,如果你的测试集只有这两幅图像,那么根据mAP,产生这些结果的两个检测器也一样好:
这mAP的问题显然是过于夸张,但我想我的新retconned点是人们之间的这种明显的差异在“现实世界”的关心和我们目前的指标,我认为如果我们要想出新的指标我们应该关注这些差异。而且,它已经是平均精度了,我们怎么叫COCO度规,平均平均精度吗?
这里有一个提议,人们真正关心的是给定一个图像和一个检测器,检测器在图像中找到和分类物体的效果如何。去掉每个类别的AP,只做全局平均精度怎么样?或者对每张图像进行AP计算并求平均值?
盒子是愚蠢的,虽然我可能是面具的忠实信徒,但我不能让YOLO学习他们。
创新点
- 使用金字塔网络
- 用逻辑回归替代softmax作为分类器
- Darknet-53
不足
速度确实快了,但mAP没有明显提升,特别是IOU > 0.5时。
版权声明:本文为CSDN博主「zhangty1998」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42614745/article/details/121757541
暂无评论