YOLO网络设计学习记录
一、总体概述本文章是 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 times2.网络组件说明网络组件说明组件说明输出维度输入图像原始RGB图像448 × 448 × 3主干网络 (Back-Bone)DarkNet 架构负责特征提取-卷积层输出经过多层卷积和池化后的特征图7 × 7 × 1024全连接层1将特征图展平并映射4096全连接层2输出预测张量7 × 7 × 303. 输出张量解析 (7×7×30)YOLO V1 将图像划分为 7×7 的网格 (Grid)每个网格单元负责预测每个网格预测 B 个边界框每个边界框包含(x, y): 边界框中心坐标相对于网格单元(w, h): 边界框宽度和高度相对于整幅图像obj_score: 该边界框包含目标的置信度每个网格预测 C 个类别的概率总长度: 5B C 30对于YOLO V1B2, C20即 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 的张量同时编码了边界框信息和类别信息端到端训练: 整个网络可以端到端训练无需分阶段处理待解决问题: 视频为后续内容埋下了伏笔——损失函数设计和推理后处理