YOLOv3: An Incremental Improvement

mac2024-05-29  37

YOLOv3: An Incremental Improvement

摘要

(1)比V2体积更大,精度更高,但是速度仍有保障 (2)输入320*320的图片后,v3能在22ms内处理完成,并取得28.2mAP,精度和SSD相当,但速度快上3倍。

介绍
更新
2.1边框预测

V3用逻辑回归预测每个边界框的objective score。如果当前预测的边界框比之前的更好的与ground truth对象重合,那他的分数就是1,如果当前的预测不是最好的但是和ground truth重合到了一定的阈值以上,神经网络会忽略这个预测。我们使用的阈值是0.5. 我们的系统只为每个ground truth分配一个边界框。如果先验的边界框并没有分配给相应的对象,那他只是检测错了对象,而不会对坐标和分类预测造成影响 (是否逻辑回归网络,将预测出的边框中的张量送进分类网络)

2.2分类预测

每个边界框都会使用多标记分类来预测框中可能包含的类别。 不使用softmax,而是用单独的逻辑分类器,因为我们发现前者对于网络性能提升并没有什么用,在训练过程中使用二元交叉熵损失来预测类别,有助于我们把YOLO用于更加复杂的领域(例如数据集中包含大量重叠的标签)

2.3 跨尺度预测

yolov3预测三种不同尺寸的边框,系统使用和特征金字塔类似的概念从这个尺寸中提取特征。 在基本提取器中增加几个卷积层,并用最后的卷积层预测一个三维张量编码的tensor,边界框,框中目标,和分类预测。 tensor:N*N[3*(4+1+80)],三个边界框,4个坐标参数,一个目标预测,以及80种分类预测。 接着从前两个图层中得到特征图,并对他进行2次上采样,再从网络更早的图层中得到特征图,把高低两种分辨率的特征图连接到一起。(这样做能使我们找到早期特征映射中的上采样特征和细粒度特征,并获得更有意义的语义信息) 之后我们再添加几个卷积层来处理这个特征映射组合,并最终预测出一个相似的,大小是原先两倍的张量。用同样的网络设计来预测边界框的最终尺寸。(这个过程其实也有助于分类预测,因为我们可以从早期图像中筛选出更精细的特征) v3使用的先验边框聚类方法和v2一样使用k-means,我们使用9(k)个聚类和3种尺寸(大,中,小,每种尺寸有3个anchor)。

2.4 特征提取

v3用了一个新的网络来提取特征,融合v2,Darknet-19,以及其他新型残差网络,由连续的3*3和1*1卷积层组合而成,当然其中也添加了一些 shortcut connection,整体体量也更大,因为有53个卷积层,称为 Darknet-53,Darknet53在精度上可以与最先进的分类器相比,同时浮点数运算更少,速度更快,它可以实现每秒最高的测量浮点运算,可以更好的利用GPU。 每个网络都使用相同的设置进行训练,并以256*256进行测试

2.5 训练

我们使用多尺度的训练,大量的数据扩充,批量标准化。我们使用 Darknet 神经网络框架用于训练和测试。

3 我们做的怎么样

当IOU=0.5时,v3非常强,它几乎与RetinaNet相当,远高于SSD的变体,但是随着阈值的增加,性能会显著下降,这表明,V3很难使边框与对象完全对齐

在过去YOLO一直致力于对小型对象进行检测,随着新的多尺寸预测功能上线,YOLOv3将具备更高的APS性能,但是它目前在中等尺寸或大尺寸物体上的表现还相对较差。

4 失败的事情

anchor box坐标的偏移预测,比如利用线性激活将坐标x,y的偏移程度预测为边界框宽度或高度的倍数,但我们发现这种做法降低了模型的稳定性,且效果不佳。 用线性方法预测x, y而不是用逻辑的方法,这降低了mAP的成绩。 我们尝试使用Focal loss,他使我们的mAP降低了2点 双IOU阈值和真值分配,如果预测的边框与ground truth重合的比例>=0.7,为正样例,>=0.3&&<=0.7 忽略,<=0.3那就是个负面的结果,我们尝试了这种方法,效果不好。

待看: 二元交叉熵损失 残差网络

参考: YOLO v3论文理解

最新回复(0)