yolo3 点

1Backbone骨干网络 Darknet-53

1.1 为什么YOLOv3要求输入尺寸是32的倍数

YOLO v3使用Darknet-53 作为backbone,其特征提取过程包含5次stride=2的下采样

输入图像 → 卷积+下采样 → 特征图尺寸变化

416 × 416

↓ ÷2 (第1次)

208 × 208

↓ ÷2 (第2次)

104 × 104

↓ ÷2 (第3次)

52 × 52

↓ ÷2 (第4次)

26 × 26

↓ ÷2 (第5次)

13 × 13 ← 最深特征图

5次下采样 = 缩小 2⁵ = 32 倍

特征图尺寸必须是整数:

  • 若输入 415×415 :415 ÷ 32 = 12.968 ❌ 不是整数

  • 若输入 416×416 :416 ÷ 32 = 13 ✅ 整数

5次下采样导致总stride=32,为保证特征图尺寸为整数且多尺度特征能正确融合,输入必须是32的倍数。

1.2关键点回顾

  1. 卷积:小窗口(卷积核)在图像上滑动,提取局部特征(边缘,纹理)
  2. stride(步长):控制移动距离,每次移动一格/两格
  3. 下采样:缩小特征图,把高分辨率特征图变成低分辨率的过程-->增大感受野,减小计算量,提取高级特征。
  4. 卷积(Conv) ──┬── 提取特征(边缘→纹理→部件→物体)

    └── 参数stride控制 ──┬── stride=1: 保持尺寸

    └── stride=2: 下采样(尺寸÷2)

    多次下采样后

    特征图变小,通道变多

    总下采样倍数 = 2^n

    输入尺寸必须是其倍数(YOLO中是32)
  5. 卷积是"看"图像的方式,stride是"看"的步长,stride=2的卷积就是"跳着看"同时"记要点"(下采样),YOLO v3跳了5次(2⁵=32),所以输入必须是32的倍数才能整除。

1.3 为啥要更换这个网络?

1.3.1原因1:解决梯度消失,能训练更深网络

生活化类比理解什么是残差连接

普通网络(无残差):

发件人 → 中转站1 → 中转站2 → ... → 中转站N → 收件人

每个中转站必须"重新打包"记住全部信息

中转站越多,包裹越容易丢/错(梯度消失)

残差网络(有残差连接):

发件人 ─→ 中转站1 ─→ 中转站2 ─→ ... ─→ 收件人

↓ ↑

└────────────────────────┘

开设"直达专线"

每个中转站只需要记住"和原包裹的差异"

即使中转站出错,还有原包裹保底

数学表达:

普通层要学的: H(x) = 复杂的映射(很难学)
残差层要学的: F(x) = H(x) - x (残差,即"变化量")
实际输出: y = F(x) + x = H(x)

学"变化量"比学"完整映射"容易得多!

残差连接直观理解:

1.3.2 原因2:更强的特征提取能力

检测任务需要两种特征:

├── 深层特征(13×13):大感受野,知道"这是猫"(语义信息)

└── 浅层特征(52×52):小感受野,知道"猫耳朵在这里"(位置信息)

Darknet-53:

├── 53层深度 → 深层语义极强(比19层理解更抽象的"物体概念")

└── 残差结构 → 保留更多细节信息(跳跃连接像"记忆通道")

实际效果 :在ImageNet分类上,Darknet-53和ResNet-152精度相当,但速度快2倍


2 YOLO v3网络结构

52*52*255 这一路 既发挥了深层网络的语义特化抽象的特征,也发挥了浅层网络细粒度像素级别的,边缘转角和结构信息的底层特征,通过这个结构就可以实现多尺度的特征融合和不同尺度物体的预测

YOLOv3损失函数

相关推荐
lifallen1 小时前
从零推导 Deep Agent 模式
人工智能·语言模型
XMAIPC_Robot2 小时前
基于RK3588 ARM+FPGA的电火花数控系统设计与测试(三)
运维·arm开发·人工智能·fpga开发·边缘计算
前端架构师2 小时前
我不是狐狸,我是那Harness Engineering
人工智能
俞凡2 小时前
CLAUDE.md 完全指南
人工智能
码路高手2 小时前
Trae-Agent中的设计模式应用
人工智能·架构
百慕大三角2 小时前
pi-mono sdk中文文档
人工智能·ai编程
码路高手2 小时前
Trae-Agent中的Evaluation架构分析
人工智能·架构
lifallen2 小时前
从零推导 Plan-Execute (计划-执行) Agent
人工智能·语言模型
junior_Xin2 小时前
机器学习深度学习beginning2
深度学习