2026/6/16 3:29:53
网站建设
项目流程
一、总体概述
本文章是 YOLO V1 系列教程的续集,专注于深入讲解 YOLO V1 的网络架构设计。展示了从输入图像到最终预测输出的完整数据流,并提出了训练阶段和推理阶段两个核心问题,为后续更深入的内容做铺垫。
二、核心内容详解
1. YOLO V1 网络架构概览
Input Image (448x448x3) ↓ Back-Bone: DarkNet Architecture ↓ Convolution Output (7x7x1024) ↓ Fully Connected Layer (4096) ↓ Fully Connected Layer → Output Tensor (7x7x30) ↓ Prediction: (x, y, w, h, obj_score) × B times + class_probability × C times
2.网络组件说明
网络组件说明| 组件 | 说明 | 输出维度 |
| 输入图像 | 原始RGB图像 | 448 × 448 × 3 |
| 主干网络 (Back-Bone) | DarkNet 架构,负责特征提取 | - |
| 卷积层输出 | 经过多层卷积和池化后的特征图 | 7 × 7 × 1024 |
| 全连接层1 | 将特征图展平并映射 | 4096 |
| 全连接层2 | 输出预测张量 | 7 × 7 × 30 |
3. 输出张量解析 (7×7×30)
YOLO V1 将图像划分为 7×7 的网格 (Grid),每个网格单元负责预测:
- (x, y): 边界框中心坐标(相对于网格单元)
- (w, h): 边界框宽度和高度(相对于整幅图像)
- obj_score: 该边界框包含目标的置信度
- 每个网格预测 C 个类别的概率
- 总长度: 5B + C = 30(对于YOLO V1,B=2, C=20,即 PASCAL VOC 数据集)
4. 网络架构特点
- 简单卷积网络: 包含 Maxpool 层和 LeakyReLU 激活函数
- 线性层: 后跟线性层和预测张量
- 端到端: 从原始图像直接输出检测结果
三、两个核心问题
问题1: 训练阶段 (Training Phase)
- 如何建立 7×7×30 的输出与输入图像标签之间的联系,以计算损失函数?
- 需要将网络输出与 Ground Truth 边界框进行匹配
- 设计合适的损失函数来优化边界框坐标、置信度和类别概率
问题2: 推理阶段 (Inference Phase)
- 如何从 7×7×30 的输出中获得最终的边界框和类别概率?
- 需要对输出张量进行解码
- 应用非极大值抑制 (NMS) 去除冗余检测框
- 生成最终的检测结果
四、核心要点总结
- DarkNet 主干网络: YOLO V1 使用 DarkNet 作为特征提取器,这是其独特之处
- 网格预测机制: 将图像划分为 7×7 网格,每个网格负责预测局部区域内的目标
- 输出张量设计: 7×7×30 的张量同时编码了边界框信息和类别信息
- 端到端训练: 整个网络可以端到端训练,无需分阶段处理
- 待解决问题: 视频为后续内容埋下了伏笔——损失函数设计和推理后处理