举例说明YOLOv1 输出坐标到原图像素的映射关系

下面用简化的小尺寸图像+具体数值来一步步演示整个映射过程。

一、设定示例基础参数

为了计算方便,我把参数简化(核心逻辑和原论文一致):

  • 原始图像尺寸:宽=420像素,高=420像素(正方形,方便计算)
  • YOLOv1 网格划分:S=7(和论文一致),即 7×7 网格
  • 单个网格尺寸:420/7 = 60像素(每个网格是 60×60 像素)
  • 选取目标网格:第 i=2 行、第 j=3 列的网格(行列从0开始计数)
  • 该网格预测的单个边界框输出值:bx=0.5, by=0.4, bw=0.6, bh=0.5

二、分步计算映射过程

步骤1:计算目标网格的左上角像素坐标

网格行列数决定了其在原图的基础位置:

  • 网格左上角 x 坐标:j × 网格宽度 = 3 × 60 = 180 像素
  • 网格左上角 y 坐标:i × 网格高度 = 2 × 60 = 120 像素
    → 这个网格覆盖原图的区域是:x(180-240)、y(120~180) 像素。
步骤2:映射边界框中心坐标到原图

YOLOv1 输出的 bx/by网格内的相对偏移(0~1),需先转换为网格内像素偏移,再加上网格左上角坐标:

  • 中心x像素偏移(网格内):bx × 网格宽度 = 0.5 × 60 = 30 像素
  • 中心y像素偏移(网格内):by × 网格高度 = 0.4 × 60 = 24 像素

→ 边界框中心在原图的绝对坐标:

  • 中心x:网格左上角x + 网格内x偏移 = 180 + 30 = 210 像素
  • 中心y:网格左上角y + 网格内y偏移 = 120 + 24 = 144 像素
步骤3:映射边界框宽高到原图

YOLOv1 输出的 bw/bh相对于整张图像的比例(0~1),直接乘以原图宽/高即可:

  • 边界框宽度(原图像素):bw × 原图宽度 = 0.6 × 420 = 252 像素
  • 边界框高度(原图像素):bh × 原图高度 = 0.5 × 420 = 210 像素
步骤4:转换为矩形框的左上角/右下角坐标(可视化用)

有了中心坐标和宽高,就能算出绘制矩形框需要的坐标:

  • 左上角x1:中心x - 宽度/2 = 210 - 252/2 = 210 - 126 = 84 像素
  • 左上角y1:中心y - 高度/2 = 144 - 210/2 = 144 - 105 = 39 像素
  • 右下角x2:中心x + 宽度/2 = 210 + 126 = 336 像素
  • 右下角y2:中心y + 高度/2 = 144 + 105 = 249 像素

三、示例结果汇总表

类型 YOLOv1输出值 映射计算过程 原图像素值
网格内x偏移 (bx) 0.5 - -
网格内y偏移 (by) 0.4 - -
相对宽度 (bw) 0.6 - -
相对高度 (bh) 0.5 - -
边界框中心x - 3×60 + 0.5×60 210 像素
边界框中心y - 2×60 + 0.4×60 144 像素
边界框宽度 - 0.6×420 252 像素
边界框高度 - 0.5×420 210 像素
矩形框左上角 (x1,y1) - (210-126, 144-105) (84, 39)
矩形框右下角 (x2,y2) - (210+126, 144+105) (336, 249)

四、可视化理解

你可以想象这张420×420的原图被划成7×7的小格子:

  • 第2行第3列的格子在原图的位置是:横向180-240像素,纵向120~180像素;
  • 预测的边界框中心落在这个格子里:横向偏右50%(30像素)、纵向偏下40%(24像素)的位置;
  • 最终画出的矩形框会从(84,39)到(336,249),覆盖原图的对应区域。

总结

  1. 中心坐标映射:核心是「网格位置(j/i×网格尺寸) + 网格内偏移(bx/by×网格尺寸)」,把相对网格的偏移转为原图绝对像素;
  2. 宽高映射:直接用「相对比例(bw/bh)× 原图宽/高」,把相对比例转为绝对像素;
  3. 坐标转换:中心坐标±宽高/2,即可得到可视化所需的矩形框对角坐标。

这个例子的数值是简化过的,但完全复现了YOLOv1坐标映射的核心逻辑,无论图像尺寸、网格数如何变化,计算方法都完全一致。

相关推荐
AI-Ming4 小时前
Seq2Seq
人工智能
超级学长4 小时前
基于深度学习的软件工程:进展、挑战与机遇
人工智能·深度学习·软件工程
Bonnie3734 小时前
云边端一体化架构:三大组件(云、边、端)的分工与协同逻辑
人工智能·程序人生·云原生·架构·个人开发
gorgeous(๑>؂<๑)4 小时前
【CVPR26-雷涛-陕西科技大学陕西省人工智能联合实验室】SPEGC:基于语义提示增强图聚类的医学图像分割持续测试时自适应
人工智能·科技·机器学习·数据挖掘·聚类
写点什么呢4 小时前
Pytorch学习16_损失函数与反向传播
人工智能·pytorch·python·学习·pycharm
CoderJia程序员甲4 小时前
GitHub 热榜项目 - 日榜(2026-03-21)
人工智能·ai·大模型·github·ai教程
特立独行的猫a4 小时前
ESP32小智AI的WebSocket 调试工具的实现,小智AI后台交互过程揭秘(二、技术原理与实现过程详解 )
人工智能·websocket·网络协议·esp32·调试工具·小智ai
irpywp4 小时前
构建生产级 AI Agent工作流
人工智能·github
月光有害4 小时前
简单理解深度学习中的多种归一化方法
人工智能·深度学习
艾莉丝努力练剑4 小时前
【Linux信号】Linux进程信号(上):信号产生方式和闹钟
linux·运维·服务器·c++·人工智能·ubuntu·云原生