YOLO系列文章阅读--yolov3

Introduction

什么都没说。

The deal

先说明YOLOv3大多是从别人那里获得想法然后融合。然后训练了一个新的不错的分类网络。

Bouding Box Prediction

继承YOLO9000,我们的系统使用维度集群作为anchor boxes来预测边界框。网络为每个边界框预测4个坐标,tx, ty, tw, th。如果单元格从图像左上角偏移(cx, cy),并且边界框先验的宽度和高度pw, ph,那么预测对应于:
YOLO系列文章阅读--yolov3_第1张图片
YOLOv3使用逻辑回归预测每个边界框的对象性评分。如果边界框先验与一个ground truth对象重叠的比例大于任何其他边界框先验,则该值应为1。但如果bounding box的先验不是最好的,但确实与一个ground truth对象重叠超过某个我们忽略预测阈值,就继续用。
我们的系统只为每个ground truth对象分配一个边界框。如果一个边界框先验没有被分配给一个ground truth对象,它不会导致坐标或类预测的损失,只会导致对象性的损失。 (这里就是说了下损失函数的考虑)

Class Prediction

不使用softmax,因为我们发现它对于良好的性能是不必要的,相反,我们简单地使用独立的逻辑分类器。在训练过程中,我们使用二元交叉熵损失进行类预测。这样我们在有些复杂数据集时会比较好,例如OPEN IMAGE DATASET,有许多重叠的标签(即女人和人)。使用softmax会假定每个框只包含一个类,但事实往往并非如此。多标签方法可以更好地对数据进行建模。

Predictions Across Scale 跨尺度预测

YOLOv3在3个不同的尺度上预测box。我们的系统使用类似特征金字塔网络的概念从这些尺度中提取特征。从我们的基本特征提取器中,我们添加了几个卷积层。最后一个预测了三维张量编码边界框、对象性和类预测。
接下来我们从之前的2层提取特征图,上采样2倍。我们还从网络的早期提取一个特征图,并使用concat连接将其与我们的上采样特征合并。该方法允许我们从上采样的特征中获得更多有意义的语义信息,并从早期的特征图中获得更细粒度的信息。然后我们添加更多的卷积层来处理这个组合特征映射,并最终预测一个相似的张量,尽管现在是两倍大。

Feature Extractor

我们使用一种新的网络来进行特征提取。是YOLOv2的Darknet-19中使用的网络和新奇的残余网络的混合方法。我们的网络使用连续的3 × 3和1 × 1卷积层,但现在也有一些捷径连接,而且明显更大。它有53个卷积层,称为Darknet-53!
YOLO系列文章阅读--yolov3_第2张图片

Things We Tried That Didn’t Work

Anchor box x,y offset prediction (锚框的xy的偏移预测)

我们尝试使用普通的anchor box预测机制,即使用线性激活将x、y偏移量预测为框宽或高的来计算。我们发现这种方法降低了模型的稳定性,并不能很好地工作。

Linear x, y predictions instead of logistic(线性预测而不是逻辑预测)

使用线性激活来直接预测x, y偏移量,而不是逻辑激活。这导致了mAP的下降。

Focal loss

它让我们的mAP下降了2点。YOLOv3可能已经是鲁棒的问题,焦点损失试图解决,因为它有独立的目标预测和条件类预测。因此,对于大多数例子来说,类预测没有损失?还是什么?我们不能完全确定。

Dual IOU thresholds and truth assignment

Faster RCNN在训练期间使用两个IOU阈值。如果一个预测与基础事实重叠0.7,它就是一个肯定的例子,重叠【0.3-0.7】它被忽略,对于所有的基础真理对象小于0.3的是一个否定的例子。我们尝试了类似的策略,但没有得到很好的结果。

你可能感兴趣的:(深度学习,人工智能)