YOLOv2 和 YOLO9000 论文演练:更好、更快、更强

从 YOLOv1 到 YOLOv2:先验框、k-means、Darknet-19、直通层等 YOLOv2 和 YOLO9000 论文演练:更好、更快、更强首先出现在《走向数据科学》上。

来源:走向数据科学

— 这是作者为介绍 YOLOv2 和 YOLO9000 的论文选择的雄心勃勃的标题。论文本身的标题是“YOLO9000: Better, Faster, Stronger”[1],发表于 2016 年 12 月。这篇论文的主要焦点确实是创建 YOLO9000。但让我们把事情说清楚。尽管论文的标题是这样,但该研究中提出的模型被称为 YOLOv2。 YOLO9000 这个名称是他们提出的算法,专门用于检测超过 9000 个对象类别,该算法构建在 YOLOv2 架构之上。

在本文中,我将重点介绍 YOLOv2 的工作原理以及如何使用 PyTorch 从头开始实现该架构。我还将谈谈作者如何最终得到 YOLO9000。

从 YOLOv1 到 YOLOv2

顾名思义,YOLOv2 是 YOLOv1 的进步。因此,为了理解 YOLOv2,我建议您在阅读本文之前阅读我之前关于 YOLOv1 [2] 及其损失函数 [3] 的文章。

作者在YOLOv1上提出了两个主要问题:第一,定位误差较高,或者换句话说,模型做出的边界框预测不太准确。其次,召回率低,这是模型无法检测图像中所有对象的情况。为了解决上述问题,作者对 YOLOv1 进行了很多修改,总的来说,他们所做的修改如图 1 所示。我们将在后续小节中一一讨论这些修改。

批量归一化

更好的微调

锚框和全卷积网络

先验框聚类和约束预测

如果您熟悉 K-means,我们通常使用欧几里得距离来测量数据点和质心之间的距离。但在这里,作者专门针对这种情况创建了一个新的距离度量,其中他们使用了边界框和簇质心之间的 IOU 的补集。有关详细信息,请参阅下面的等式。

结束