YOLOv1 论文演练:YOLO 第一次看到世界的那一天

YOLOv1 架构及其从头开始的 PyTorch 实现的详细演练 YOLOv1 后论文演练:YOLO 第一次看到世界的那一天首先出现在《走向数据科学》上。

来源:走向数据科学

如果我们谈论目标检测,我们可能首先想到的一个模型是 YOLO ——好吧,至少对我来说,这要归功于它在计算机视觉领域的流行。

该模型的第一个版本称为 YOLOv1,于 2015 年在题为“You Only Look Once:统一的实时对象检测”的研究论文中发布[1]。在 YOLOv1 发明之前,用于执行目标检测的最先进算法之一是 R-CNN(基于区域的卷积神经网络),其中它使用多阶段机制来完成任务。它首先采用选择性搜索算法创建区域提议,然后使用基于 CNN 的模型提取所有这些区域内的特征,最后使用 SVM 对检测到的对象进行分类[2]。在这里你可以清楚地想象仅仅对单张图像进行物体检测的过程需要多长时间。

您只需查看一次:统一、实时对象检测”

YOLO 的首要动机是提高速度。事实上,不仅实现了低计算复杂度,而且作者证明他们提出的深度学习模型也能够实现高精度。在撰写本文时,YOLOv13 几天前刚刚发布[3]。但现在我们只谈谈它的始祖,这样你就可以看到这个模型从它问世以来的美丽。本文将讨论 YOLOv1 的工作原理以及如何使用 PyTorch 从头开始构建这个神经网络架构。

YOLOv1 背后的基本理论

小号
图 1. 图像被划分为大小统一的网格单元后的样子。单元 (3, 3) 负责存储有关猫的信息 [4]。
x y w h 目标向量

目标向量

图 2. 图 1 中图像的单元 (3, 3) 的目标向量 [5]。
目标张量
图 3. 每个单元格中的所有目标向量如何串联。整个张量将充当单个图像的基本事实 [5]。

预测向量

预测向量 B C S=7 B=2 #(1) fc