当前位置: 首页 > news >正文

YOLO V1 和 V2笔记

一、YOLO V1

2015 年的 YOLO V1,直接打破了当时 Two-Stage 算法(如 R-CNN)的垄断,核心就是一句话:You Only Look Once(只看一次图,就完成检测)。它把 “分类 + 定位” 两个任务,直接转化成一个回归问题,用一个 CNN 网络端到端输出结果,速度直接冲到 45 FPS,实时检测从此有了新方案。

1. 核心思路:把图片拆成网格,每个网格负责预测目标

V1 会把输入图片(比如 448×448)分成7×7 的网格,每个网格干两件事:预测 2 个边界框(Bounding Box):每个框包含「中心坐标 (x,y)、宽高 (w,h)、置信度 (c)」—— 置信度代表 “这个框里有目标的概率 × 框和真实目标的 IoU”;预测 20 个类别概率(对应 VOC 数据集的 20 类):代表 “这个网格里的目标属于某类的概率”。

最终输出的特征图尺寸是 7×7×30—— 怎么来的?公式:S×S×(B×5 + C),其中 S=7(网格数)、B=2(每个网格预测 2 个框)、C=20(类别数),算下来就是 7×7×(2×5+20)=7×7×30。

2. 网络架构:简化版 GoogLeNet

V1 的网络很简洁,基于 GoogLeNet 修改,去掉了复杂的 Inception 模块,用 24 个卷积层提取特征,最后用 2 个全连接层输出 7×7×30 的结果。整个网络没有多余组件,就是为了 “快”—— 毕竟当时 Two-Stage 算法(如 Fast R-CNN)虽然精度高,但速度只有 15 FPS,V1 直接翻倍还多。

3. 损失函数:针对性解决 “不平衡” 问题

因为检测任务里 “背景区域远多于目标区域”,直接用 MSE 损失会导致 “背景的置信度误差淹没目标的位置误差”。所以 V1 的损失函数做了 3 个关键设计:位置误差加权:对目标的中心坐标 (x,y) 和宽高 (w,h) 误差乘以 λ_coord=5,让模型更关注目标位置的准确性;置信度误差区分:有目标的网格,置信度误差正常算;无目标的网格,置信度误差乘以 λ_noobj=0.5,减少背景对损失的影响;分类误差:只对 “有目标的网格” 计算类别概率误差,无目标的网格不参与。

4. V1 的优点快(45 FPS)、简单(端到端)、泛化能力强(对遮挡、小目标外的场景适配好

二、YOLO V2:针对性 “补坑”,更快更强

V2 的核心目标很明确:解决 V1 的精度问题,同时保持速度优势。作者用了 8 项改进,最终把 VOC 2007 数据集的 mAP 从 63.4% 提升到 78.6%,速度还涨到了 67 FPS。下面挑几个 “最关键的改进” 说 ——

1. 基础优化:Batch Norm + 高分辨率训练

这两个小改动,直接让精度提升了 6%,属于 “简单但有效” 的操作:

Batch Norm(批量归一化):去掉 V1 的 Dropout(防止过拟合),每个卷积层后都加 BN—— 让每一层的输入都归一化,训练时收敛更快,还能提升泛化能力,单这一项就涨了 2% mAP;高分辨率微调:V1 训练时先用 224×224 练分类,测试时突然换成 448×448,模型容易 “水土不服”。V2 在训练最后,额外用 448×448 的图微调 10 轮,让模型适应高分辨率输入,又涨了 4% mAP。

2. 核心改进 1:引入 Anchor Box,解决 “框不够用” 的问题

V1 每个网格只预测 2 个框,对重叠目标、特殊比例目标很不友好。V2 直接借鉴 Faster R-CNN 的 Anchor 思想,但做了优化:

用 K-Means 聚类选 Anchor:不是随便预设框,而是对 VOC/COCO 数据集的真实目标框做 K-Means 聚类(距离用 “1-IoU” 计算,避免受框大小影响)

3. 核心改进 2:Directed Location Prediction(直接位置预测),解决 “收敛不稳定”

如果直接预测 Anchor 的偏移量(比如 tx=1 就把框右移 Anchor 宽度),容易导致偏移过大、训练发散。V2 换了个思路:预测 “相对于网格的偏移量”,用 σ 函数把偏移量限制在 0~1 之间 —— 这样每个框只会在当前网格内微调,不会跑太远,训练更稳定。

4. 核心改进 3:融合细粒度特征,解决 “小目标检测差”

V1 的最后一层特征图感受野太大(7×7 网格对应原图 64×64 的区域),小目标的特征早被 “磨平” 了。V2 用了个巧办法:Passthrough 层融合浅层特征

5. 终极优化:Multi-Scale Training(多尺度训练)

V2 的网络全是卷积和池化,没有全连接层 —— 这意味着 “输入图片尺寸可以随便变”!于是作者搞了个骚操作:训练时每 10 轮就随机换一次输入尺寸,从 320×320 到 608×608(步长 32,确保下采样后是整数网格)。这样模型能适应不同大小的目标,泛化能力直接拉满,最终在 608×608 输入下,mAP 冲到 78.6%,速度还能保持 20 FPS。

三、V1 到 V2:改进逻辑总结

从 V1 到 V2,改进思路特别清晰 ——哪里不行补哪里

问题(V1)V2 的解决方案效果
精度低、收敛难Batch Norm + 高分辨率微调mAP+6%
框少、重叠目标检测差聚类 Anchor Box召回率 + 7%
位置预测不稳定相对网格的偏移量预测训练更稳定,定位更准
小目标检测差Passthrough 层融合浅层特征小目标 mAP 提升
泛化能力弱多尺度训练适应不同大小目标

V1 的创新在于 “把检测当回归” 的思路,打开了 One-Stage 的大门;V2 则用工程化的精准改进,把 “速度快但精度低” 的短板补上,让 YOLO 从 “能用” 变成 “好用”。这也为后续 V3-V8 的迭代奠定了基础 —— 比如 V2 的 Anchor 聚类、多尺度训练,直到现在还是 YOLO 系列的核心逻辑。

http://www.dtcms.com/a/491112.html

相关文章:

  • C++ 创建一个窗口采用GDI的方式绘制文字
  • 谷歌网站推广费用建网站域名注册
  • python 网站开发 普及消防证怎么考取需要什么条件
  • 网络层次划分-网络层
  • 做响应式网站应该注意什么问题有自己的域名怎么建设网站
  • ClickHouse 数据更新策略深度解析:突变操作与最佳实践
  • 餐饮商城网站建设网站备案幕布要求
  • Prometheus监控部署
  • php ajax网站开发典型实例 pdfwordpress账号邮箱
  • 栈与队列:数据结构的基石与应用
  • 多态的定义
  • 开设网站的费用在微信怎样搞做微视频网站
  • wordpress禁止游客访问上海市网站seo
  • AI代码生成对CRUD联调流程的重构分析
  • 如何通过优化中药饮片采购流程实现供应链协同?
  • 建站产品网页制作工作怎么样
  • python编程基础知识
  • 使用VSCode SSH插件实现免密码登录远程服务器
  • vscode浏览器启动报错
  • 网站设计制作新参考价格中国企业500强江阴有几家
  • 车载电子电器架构 —— 基于AP定义车载HPC
  • YOLO 目标检测算法:从 v1 到 v2 的技术演进与优化实践
  • Spring Boot 3零基础教程,Spring Boot 日志级别,笔记19
  • iOS混淆与IPA文件加固全流程实战 防止苹果应用被反编译的工程级方案
  • 济宁市网站建设新乡营销网站建设公司哪家好
  • 网站建设方案总结wordpress音频付费插件
  • 解决VMware Workstation Pro 17中Ubuntu 24.04无法复制粘贴
  • 上辽宁建设工程信息网站移动网站建设口碑好
  • 【力扣 SQL 50】聚合函数篇
  • 做网站如何用代码把字体变大云南定制化网站建设