死磕YOLO系列,YOLOv1 的大脑、躯干和手脚

本文详细介绍了YOLOv1目标检测算法,从大脑(为何能检测目标)、躯干(网络结构)和手脚(训练过程)三个方面展开。YOLO采用单阶段检测,通过神经网络直接预测物体边界框和类别,通过Cell预测BBox和Confidence,以渔网捕获物体的方式进行检测。文章还讨论了YOLO的训练策略和损失函数,包括预训练、目标检测训练以及损失计算的细节。最后,指出了YOLO的局限性和后续学习路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章:
死磕YOLO系列,YOLOv2的自我修养
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。

在这里插入图片描述
这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。

之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。

YOLOv1 的论文地址:https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Redmon_You_Only_Look_CVPR_2016_paper.pdf

建议没有看过原论文的都应该好好看看。

在这里插入图片描述

YOLO 预测时,很简单。

1.缩放输入的图片
2.将图片送入到卷积神经网络中进行预测
3.通过预测的结果进行置信度的阈值处理,得到最终的结果。

本文围绕:

  1. YOLO 为什么能检测目标?
  2. YOLO 长什么样子?
  3. YOLO 如何训练?

三大问题来详细展开,为此我类比为 YOLO 的大脑、躯干和手脚。

1. 大脑,为什么能检测目标?

YOLO 是 One-Stage (单阶段) 检测算法,它只需要看图片一次,就可以预测图片中所有的物体边框。

我个人有一个形象的比喻,那就是撒渔网。

一个渔网撒下去,所有的鱼儿都要捕获。

在这里插入图片描述

而实际上,YOLO 真的有类似渔网的操作。

YOLO 把一张图片划分成了 SxS 个格子。

这里的 S 不固定,可以根据实际情况由开发者自主决定。

在这里插入图片描述
论文中,S 取值为 7,所以整张图片被分割成 7*7=49 个格子(Cell)。

这些格子像不像渔网的网眼呢?

那么,这些 Cell 是干什么用的呢?为什么要设置这么多的 Cell ?

这些 Cell 每个 Cell 都会预测 B 个 bbox。在论文中 B 取值为 2。

所以,一张图片经 YOLO 跑一遍,就会产生 98 个 bbox。

在这里插入图片描述
有同学可能会思考:

这么多 bbox,比目标的个数还要多,怎么选择呢?

以上面的图片为例:

在这里插入图片描述
图片中有狗、自行车、汽车 3 个目标,但是预测到的 bbox 有 98 个之多,最终肯定只能从 98 个 bbox 中选择 3 个。

那么,怎么操作呢?

分 2 步走。

第一步,有选择的响应 cell。

总共有 49 个 cell,但是并不是每一个 cell 的预测都有意义,我们需要找出有意义的 cell。

那么哪些 cell 算是有意义呢?

先来看看一个叫做 Confidence 可信度的概念。

每个 Cell 预测 B 个 bbox,还有每个 bbox 对应的 Confidence。

Confidence 公式定义如下:
C o n f i d e n c e = P r ( O b j ) ∗ I O U p r e d t r u t h Confidence = Pr(Obj)*IOU_{pred}^{truth} Con

### YOLOYOLOv8的特征差异及改进 #### 性能提升 YOLOv8相较于早期版本的YOLO,在多个方面实现了显著优化。YOLO最初在PASCAL VOC 2007上的表现已经显示出其作为实时检测系统的潜力,能够有效减少Fast R-CNN中的背景误报误差[^1]。而到了YOLOv8,模型不仅继承了这一优势,而且通过架构调整进一步提升了整体精度速度。 #### 架构变化 YOLOv8引入了一系列创新性的网络结构改良措施,这些改动旨在解决之前版本中存在的局限性并增强泛化能力。例如,在处理小型物体识别效率低下问题上有所改善;对于像瓶子、羊以及电视/显示器这样的细粒度分类项,YOLO曾表现出明显的劣势,得分低于竞品约8%-10%[^3]。相比之下,YOLOv8针对此类挑战进行了针对性强化训练技术革新,使得它在这类任务上的准确性得到了明显提高。 #### 部署便捷性 除了算法层面的进步外,YOLOv8还特别注重用户体验与实际应用环境下的易用性兼容性。官方文档提供了详细的指南来帮助开发者轻松部署该模型至NVIDIA Jetson设备等边缘计算平台之上[^2]。这种便利性极大地降低了开发门槛,让更多的研究者个人爱好者可以参与到计算机视觉项目当中去。 ```python import torch from ultralytics import YOLO model = YOLO('yolov8n.pt') # 加载预训练权重文件 results = model.predict(source='path/to/image', save=True) # 对图像进行预测并将结果保存下来 ```
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

frank909

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值