首页 > 编程知识 正文

yolo3d,yolov3代码详解

时间:2023-05-05 10:48:04 阅读:27339 作者:2821

yolo系列介绍良文章httpswwcnblogscommakefilepyolov3html ' yolo系列介绍良文章: https://www.cn blogs.com/makefile/p/yolo v3.html

yolov : anincrementalimprovement () ) ) ) ) ) 0

原始标题: yolov 3: anincrementalimprovement

原作者: Joseph Redmon Ali Farhadi

译者: Amusi

YOLO官网: yolo : real-timeobjectdetection

论文链接: https://pj reddie.com/media/files/papers/yolo v3.pdf

YouTube:https://www.YouTube.com/watch? v=MPU2HistivI

知道的话题:如何评价yolov 3: anincrementalimprovement? Amusi是CV初学者,在论文的翻译中使用谷歌,自己进行了逐字检查,还是有模糊的地方。 如果有语法/专业名词的翻译错误,请谅解。 另外,期待您的指正。

为33558www.Sina.com/yolo提供更新! 我们稍微更改了设计,使之更好。 我们也训练了这个非常好的新网络。 虽然比上次(YOLOv2 )稍大,但更准确。 还早着呢,别担心。 在320320 YOLOv3上运行22.2ms、28.2 mAP,虽然像固态硬盘一样准确,但速度快3倍。 用旧的0.5 IOU mAP检测指标,YOLOv3相当不错。 Titan X在51 ms下实现了57.9的AP50,与RetinaNet在198 ms下的57.5 AP50相当,性能相似但速度快3.8倍。 像往常一样,所有代码都是https://pjreddie.com/yolo/

Abstract有时,一年主要只是打电话。 你知道吗? 我今年没有做很多研究。 我在推特上度过了很多时间。 玩了一下GAN。 去年我留下了一点动力[10] [1]; 我设法对YOLO做了一些改进。 但是,确实,没有比这更有趣的了。 只是,小的(bunch )变化只会让它更好。 我也帮别人研究了。

其实,这就是今天给我们带来的。 我们有camera-ready deadline,weneedtocitesomeoftherandomupdatesimadetoyolobutwedon’t have asource。 所以准备技术报告!

技术报告的优点是他们不需要介绍。 我知道我们为什么来这里。 因此,本文的结尾将为本文的其馀部分提供signpost。 我先告诉你YOLOv3的详细情况。 然后我会告诉你我们怎么了。 我也会告诉你我们尝试过的事情不顺利。 最后,我们会考虑这一切意味着什么。

1 Introduction这里是YOLOv3的详细资料。 我们主要从别人那里得到好主意。 我们训练了比别人更好的新分类器网络。 从一开始就介绍整个系统,以便了解所有这些。

2 The Deal

在YOLO9000之后,我们的系统使用维度聚类作为anchor boxes来预测边界框(13 )。 网络针对每个边界框预测四个坐标: tx、ty、tw、th。 单元格偏离图像左上角时(cx; cy ),如果上一个边界框具有宽度、高度pw和ph,则预测对应于:

在训练期间,使用平方误差损失的总和。 如果几个坐标预测的ground truth (原文中使用^符号,但在某个地方附带的代码工具无法使用,所以在这里用)符号代替),我们的坡度将在ground truth (接地轨迹) ground box中计算通过反转上面的方程,可以很容易地计算此地面轨迹。

YOLOv3使用逻辑回归预测每个边界框的对象得分。 如果上一个边界框与ground truth对象比上一个其他边界框重叠,则该值必须为1。 如果以前的边界框不是最佳边界框,但ground truth对象重叠了一定阈值以上,则忽略此预测并遵循[15]。 我们使用阈值0.5。 与[15]不同,我们的系统为每个地面轨迹对象分配一个边界框。 如果未将以前的边界框指定给地面

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神经网络框架进行训练和测试[12]。


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与其他检测系统相比具有显著的优势。也就是说,速度越来越快。

注:这个图只能用Amazing来概括!!!


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上。我想至少我们知道这项技术是非常好的,绝对不会被用来收集您的个人信息,并将其出售给......等等,您是说这就是它的用途?

那么其他大量资助视觉研究的人都是军人,他们从来没有做过任何可怕的事情,例如用新技术杀死很多人哦等等.....

我有很多希望,大多数使用计算机视觉的人都是做的快乐,研究了很多好的应用,比如计算一个国家公园内的斑马数量[11],或者追踪它们在它们周围徘徊时的猫[17]。但是计算机视觉已经被用于可疑的应用,作为研究人员,我们有责任至少考虑我们的工作可能会造成的伤害,并考虑如何减轻它的影响。 我们非常珍惜这个世界。(作者走心了......)

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


创新点 使用金字塔网络用逻辑回归替代softmax作为分类器Darknet-53


不足

速度确实快了,但mAP没有明显提升,特别是IOU > 0.5时。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。