YOLOv3论文翻译

11 篇文章 0 订阅
4 篇文章 0 订阅
YOLOv3在YOLO的基础上进行了改进,提升了准确性并保持了速度。在320×320尺寸下,YOLOv3在22ms内达到28.2mAP,比SSD更准确且速度更快。YOLOv3使用多尺度预测,逻辑斯特回归预测边界框目标分数,多标签分类预测类,以及Darknet-53特征提取网络,其性能与ResNet-152相当但速度更快。
摘要由CSDN通过智能技术生成

资源

论文地址:https://arxiv.org/pdf/1804.02767.pdf
视频:
吴恩达目标检测YOLO入门讲解
文章:
YOLOv3深度解析
一文看懂YOLOv3

代码:
YOLOv3的python代码
c++代码
Python版本的Tensorrt代码
1.Tendort中的
2.github中的
c++版本的Tensorrt代码

摘要

我们为YOLO提供一些更新!我们做了一些小的设计上的改变来使它更好。我们还培训了这个非常棒的新网络。它比上次大了一点,但更准确。不过还是很快的,别担心。在320×320 YOLOv3运行在22毫秒在28.2mAP,像SSD准确度,但是它的三倍的速度。当我们看旧的。5 IOUmAP的时候,检测指标YOLOv3是相当不错的。与RetinaNet的57.5 AP50 (198 ms)相比,它在Titan X上实现57.9 AP50 (51 ms),性能类似,但快3.8倍。

介绍

有时候你会给它打一年电话,你知道吗?我今年没有做很多研究。花了很多时间在Twitter上。和甘斯玩了一会儿。我有去年[12][1]留下的一点动量;我设法对YOLO做了一些改进。但是,说实话,没有什么比超级有趣,只是一些小的改变,使它更好。我也帮助别人做了一些研究。事实上,这就是我们今天来到这里的原因。我们有一个准备好拍摄的最后期限[4],我们需要引用一些随机更新的YOLO,但我们没有一个来源。所以准备好一份技术报告吧!科技报告的伟大之处在于他们不需要介绍,你们都知道我们为什么在这里。因此,这一介绍的结尾将为论文的其余部分指明方向。首先我们要告诉你YOLOv3是怎么回事。然后我们会告诉你怎么做

我们所做的。我们也会告诉你一些我们尝试过但没有成功的事情。最后,我们将考虑这一切意味着什么

解决方案

所以YOLOv3是这样的:我们大部分的想法都是从别人那里学来的。我们还训练了一个新的分类器网络,它比其他的分类器更好。我们将从头开始介绍整个系统,这样您就可以全部理解了。
边界框的预测
按照YOLO9000,我们的系统使用维度集群作为锚盒[15]来预测边界盒。该网络预测每个边界框的4个坐标,分别是tx、ty、tw、th。如果细胞从图像左上角偏移(cx, cy),边界框先验有宽度和高度pw, ph,则预测对应:
bx,by,bw,bh

在训练中,我们使用误差损失的平方和。如果地面真理协调预测tˆ我们的梯度是地面真值(从地面实况框计算)-我们的预测:tˆ−t *。这个地面真值可以很容易地通过反求上面的方程计算出来。
YOLOv3使用逻辑斯特回归预测每一个bounding box的目标物分值。如果bounding box先验比任何其他bounding box先验与真实对象重叠更多,这个预测值应该为1.
类的预测
每个框使用多标签分类来预测边界框可能包含的类。我们没有使用softmax,因为我们发现它对于良好的性能是不必要的,相反,我们只是使用独立的逻辑分类器。在训练过程中,我们使用二元交叉熵损失进行类预测。

这个公式有助于我们移动到更复杂的领域,如开放图像数据集[7]。在这个数据集中有许多重叠的标签(即女人和人)。使用一个softmax强加了一个假设,即每个盒子正好有一个类,但通常不是这样。多标签方法可以更好地对数据建模。
跨尺度预测
YOLOv3预测了三种不同尺度的盒子。我们的系统从这些尺度中提取特征,使用类似于特征金字塔网络[8]的概念。从我们的基本特征提取器,我们添加了几个卷积层。最后一种方法预测了一个三维张量编码的边界框、对象和类预测。在我们使用COCO[10]进行的实验中,我们预测每个刻度上有3个盒子,因此张量是N×N×[3(4 + 1 + 80)],用于4个边界盒偏移量、1个对象预测和80个类预测
接下来,我们从之前的两层中提取特征图,并以2×的倍数对其进行上采样。这种方法允许我们从上采样的特性中获得更有意义的语义信息,并从早期的特性图中获得更细粒度的信息。然后,我们再添加几个卷积层来处理这个组合的特征图,并最终预测出一个类似的张量,尽管现在它的大小是原来的两倍。我们再次执行相同的设计来预测最终规模的盒子。因此,我们对第三尺度的预测受益于所有的先验计算以及网络早期的细粒度特性
我们仍然使用k-means聚类来确定我们的边界框先验。我们只是随意选择了9个集群和3个尺度然后在各个尺度上均匀地划分集群。在COCO数据集上,9个集群是:

(10×13)(16×30),(33×23),(30×61),(62×45),(59×

(119),(116×90),(156×198),(373×326)。
特征提取
我们使用一个新的网络来进行特征提取。我们的新网络是YOLOv2、Darknet-19中使用的网络和新颖的剩余网络之间的混合方法。我们的网络使用连续的3×3和1×1的卷积层,但现在也有一些快捷连接,而且明显更大。它有53个卷积层。等待…Darknet-53 !
在这里插入图片描述
在这里插入图片描述
这个新的网络比Darknet-19功能强大,而且比ResNet-101或者ResNet-152效率高。
每个网络都使用相同的设置进行训练,并以256×256的单次裁剪精度进行测试。运行时间是在Titan X上以256×256的速度测量的。因此,Darknet-53的性能与最先进的分类器相当,但浮点运算更少,速度更快。Darknet-53比ResNet-101好,并且速度快1.5倍。Darknet-53的性能与ResNet-152相似,并且速度是后者的2倍。

Darknet-53还实现了每秒最高的浮点运算。这意味着网络结构更好地利用GPU,使其更有效地评估,从而更快。这主要是因为ResNets层太多,效率不高
训练
我们仍然训练完整的图像,没有硬负面挖掘或任何东西。我们使用多尺度的训练,大量的数据扩充,批量标准化,所有的标准的东西。我们使用Darknet神经网络框架进行训练和测试

效果如何

YOLOv3很不错!见表3。就COCOs的平均AP度量而言,它与SSD变体相当,但是快了3倍。尽管如此,在这个指标上,它仍然远远落后于RetinaNet等其他模型。
但是,当我们查看IOU= 5(或图中的AP50)处mAP的“旧”检测度量时,YOLOv3非常强大。它几乎与RetinaNet相当和远远高于SSD变异。这表明YOLOv3是一种非常强大的探测器,擅长为对象生成像样的盒子。但是,随着IOU阈值的增加,性能会显著下降,这表明YOLOv3很难使预测框与对象完全对齐。

在过去,YOLO与小物件做斗争。然而,现在我们看到了这一趋势的逆转。通过新的多尺度预测,我们看到YOLOv3具有相对较高的APS性能。但在中、大型对象上的性能相对较差。要弄清这件事的真相,还需要更多的调查。

当我们在AP50度量上绘制精度与速度的关系图时(参见图5),我们看到YOLOv3比其他检测系统有显著的优势。也就是说,它更快更好。

我们尝试但没有作用的工作

我们尝试了许多技巧当我们用YOLOv3时,但是很多没有起作用,下面是我们记得的技巧。
预测Anchor box x, y 的偏移的预测 我们阐释使用普通的Anchor box预测机制,预测x,y偏移,线性激活函数预测w和h,发现这样降低了模型的稳定性,效果不是很好。
线性x,y预测代替Logistic 我们尝试使用线性激活直接预测x,y偏移量,但是会导致mAP性能的下降
Focal损失函数:我们尝试过焦损。我们的地图掉了2个点。YOLOv3可能已经对focal loss试图解决的问题很健壮,因为它有独立的对象预测和条件类预测。因此,对于大多数例子,类预测没有损失?还是什么?我们不能完全确定
双重IOU阈值和真值分配 Faster RCNN使用双重IOU阈值。如果一个预测与地面真实值重叠0.7,它是一个积极的例子,在0.3-0.7之间忽略不计,小于0.3,对于所有地面真实对象来说,它是一个消极的例子。我们尝试了类似的策略,但没有得到好的结果。
我们很喜欢我们目前的模型,至少看起来是局部最优的。这些技术中的一些可能最终会产生良好的结果,也许他们只是需要一些调整来稳定训练。
图示:YOLOv3网络结构
在这里插入图片描述

研究意义

YOLOv3是一个好的目标检测器,快速而且准确。它在COCO中的平局AP在0.5和0.95之间不是很好,但是在老的目标检测度量是非常好的。
为什么我们要改变度量标准呢?最初的COCO论文中只有这样一个隐晦的句子:“一旦评估服务器完成,将添加关于评估指标的完整讨论”。Russakovsky等人报告说,人类很难区分一个0.3的IOU和一个0.5的IOU!

“训练人类在视觉上检查一个IOU为0.3的边界框,并将其与一个IOU为0.5的边界框区分开,这是非常困难的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值