# YOLOv3

> [YOLOv3: An Incremental Improvement](https://arxiv.org/pdf/1804.02767.pdf)

我们向YOLO展示一些更新！我们做了一大堆小的设计改动来使它变得更好。我们还训练了这个非常棒的新网络。它比上一次稍大，但更准确。不过，还是很快，别担心。在28.2 mAP下，320×320 YOLOv3在22 ms内运行，与SSD一样精确，但速度快三倍。当我们查看旧的.5 IOU mAP检测指标YOLOv3非常好。 它在Titan X上在51毫秒内达到57.9 $$AP\_{50}$$ ，与RetinaNet相比，在198毫秒时达到57.5$$AP\_{50}$$ ，性能相似，但速度提高3.8倍。

## 方法

### Bounding Box Prediction

对于一个目标，我们预测四个值 $$t\_x, t\_y, t\_w, t\_h$$（分别对应网格中心坐标以及宽和高） 来表示目标框：

$$
\begin{aligned} b\_{x} &=\sigma\left(t\_{x}\right)+c\_{x} \ b\_{y} &=\sigma\left(t\_{y}\right)+c\_{y} \ b\_{w} &=p\_{w} e^{t\_{w}} \ b\_{h} &=p\_{h} e^{t\_{h}} \end{aligned}
$$

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz5hX7rTM1yWUaFbVo%2Fimage.png?alt=media\&token=c9f0edad-6ba2-43d1-b0f6-19121464d342)

在训练中，我们使用误差平方和损失。

### Class Prediction

每个框使用多标签分类来预测边界框可能包含的类别。我们不使用softmax，因为我们发现它对于良好的性能是不必要的，相反，我们只使用独立的逻辑分类器。在训练过程中，我们使用二元交叉熵损失进行分类预测。

当我们转移到更复杂的领域时，如开放图像数据集\[ 7 ]，这个公式会有所帮助。在这个数据集中有许多重叠的标签(即女人和人)。使用softmax会强制假设每个盒子都有一个类，而这通常不是这样。多标签方法可以更好地对数据建模。

### Predictions Across Scales

YOLOv3预测3种不同尺度的方框。 我们的系统使用与金字塔网络相似的概念\[8]从这些尺度中提取特征。 从我们的基础特征提取器中，我们添加了几个卷积层。 其中最后一个预测了三维张量编码边界框，对象和类预测。在我们用COCO \[10]进行的实验中，我们预测每个尺度有3个框，因此对于4个边界框偏移预测，1个对象存在预测和80个分类预测，输出张量为 $$N×N×\[3 \*（4 + 1 + 80）]$$ 。

接下来，我们从前面的2个图层中获取特征图，然后将其乘以2×。 我们还从网络中的早期获取了一个功能图，并使用连接将其与我们的上采样功能合并。 这种方法允许我们从上采样的特征中获得更有意义的语义信息，并从早期的特征图中获得更细粒度的信息。 然后，我们再添加一些卷积层来处理这个组合特征映射，并最终预测相似的张量，尽管现在是两倍大小。

我们再次执行相同的设计来预测最终规模的容器。 因此，我们对3rd scale的预测受益于所有先前的计算以及网络早期的细粒度特征。

我们仍然使用k均值聚类来确定我们的bounding box先验。我们只是随便选择了9个clusters和3个scales，然后将clusters平均划分成不同的scales。在COCO数据集上，9个聚类是: $$(10×13),(16×30),(33×23),(30×61),(62×45),(59×119),(116×90),(156×198),(373×326)$$

### Feature Extractor

我们使用一个新的网络进行特征提取。我们的新网络是YOLOv2，Darknet-19中使用的网络和新奇的遗留网络之间的混合方法。 我们的网络使用连续的3×3和1×1卷积层，但现在有一些快捷连接，并且显着更大。

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz7i3P9zVjfEnwQfoE%2Fimage.png?alt=media\&token=3ba83f73-243a-4f20-9641-3944787281ca)

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz7rzvM-4HsP_tpXAU%2Fimage.png?alt=media\&token=e80183d6-f0cc-441b-9b83-88810fb75800)

每个网络都使用相同的设置进行培训，并测试256×256，单一裁剪精度。 运行时间以Titan X在256×256处测量。 因此，Darknet-53有最先进的分类性能，但浮点运算更少，速度更快。 Darknet-53优于ResNet-101，速度提高1.5倍。 Darknet-53与ResNet-152具有相似的性能，速度快2倍。

我们仍然在完整的图像上训练，没有任何硬性的负面挖掘。我们使用多尺度训练，大量的数据扩充，批量标准化，所有标准的东西。

## 性能

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz8aOsV4RP2wWIqZmJ%2Fimage.png?alt=media\&token=4a25bbbe-b51a-4577-87c7-f68b7447c4b3)

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz8gRLDfTq5IIzAHrx%2Fimage.png?alt=media\&token=9ed3e04f-3df8-49c1-9b1c-be15b3636958)

## 尝试了但是没有效果的方法

![](https://1351054059-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LajzPJtwBYkeBMhsYQD%2F-Laz4N8MCF1PLmtNXsyD%2F-Laz8igACmpxHctFjHUJ%2Fimage.png?alt=media\&token=7d45b593-a206-429e-b5cd-f37ce72bbda6)
