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

YOLO系列模型疑问

YOLO模型V1版本

1、论文里提到bounding box的(x,y)值表示什么意思呢?

原论文:

Each bounding box consists of 5 predictions: x, y, w, h, and confidence. The (x, y) coordinates represent the center of the box relative to the bounds of the grid cell. 

意思好像是x和y是相对于网格(grid cell)的位置,我的理解:

①网格(grid cell):指的是将图像先resize为448x448后再划分为7x7,形成的49个网格。

②相对于网格的什么地方:相对于网格的左上角的位置

③bounding box指的是什么:用于计算待预测物体位置的信息,因为x、y、w、h并不是物体在原始图像中的真实坐标及大小。

④怎么计算x、y、w、h:模型经过训练后直接预测得到。 

 2、模型如何直接预测得到bounding box中的x、y、w、h?

2.1、训练阶段要学习如何拟合x、y、w、h:

①、图片中每个物体都被标记了一个矩形框,所以我们有该矩形框的左上角坐标和中心点坐标。

②、我们已经把图片resize并划分为7x7的网格了,知道每个网格的左上角的x和y坐标,同时也知道每个网格的长和宽包含的坐标个数。

③、物体的真实矩形框的中心坐标(X_m,Y_m)肯定落在划分的7x7的网格中的某一个中,比如网格:G,它的左上角坐标为(X_g,Y_g)

④、可以用②和③的信息得到(X_m,Y_m)到(X_g,Y_g)的偏移量(也就是训练时要拟合的回归值,而在预测阶段就是要预测的bounding box中的x、y值),

⑤、在训练时知道每个gred对应的(n个)bounding box的长和宽,同时也有图像的大小(448x448),那就知道了训练时要拟合的相对w和相对h,在预测阶段也是预测相对的w和相对的h。

2.2、预测阶段得到偏移量(x,y)和相对宽高(w、h)的逻辑是什么?

抽象一点说:

        在训练阶段送给网络的数据是(49x2)个bounding box框内的图像数据(这种说法严格来说是不准确的),分别抽取其范围内的特征,用这些特征和模型不断更新的权重参数进行计算(不断调整误差、减少损失),最终确定了模型的参数, 这些参数即可以给出(网格或网格对应的2个bounding box)包含物体的置信度,也可以给出模型认为(或预测)的物体的中心位置应该离该网格左上角的偏移位置、以及该网格对应的bounding box应该缩放的比例,同时也会给出该网格或其对应的2个bounding box分别属于20个物体类别的概率。

简单一点说:就是先使用模型的提取特征的层(卷积层)提取特征(该特征包含的信息比较多,可解释性比较差,说不清到底是什么),在后面的任务层(全连接层)也有保存好的模型参数,使用这些参数和卷积得到特征进行计算,就得到了前述的三种信息(boundingbox 应该有的偏移量及缩放量、存在物体的置信度、属于哪类物体的概率)。

不知道理解的对不对,希望大佬们多多指教。

相关文章:

  • python:__set_name__使用
  • Algoriddim djay Pro Ai for Mac:AI引领,混音新篇章
  • windows 下nginx常用命令
  • 本地图片先压缩,再上传
  • 中国电子学会(CEIT)2023年09月真题C语言软件编程等级考试四级(含详细解析答案)
  • 【Shell】sed编辑器实例
  • 上下文视觉提示实现zero-shot分割检测及多visual-prompt改造
  • SpringBoot中如何在服务器进行校验?
  • 基于51单片机的盆栽自动浇花系统
  • STM32F103 标准库介绍及PWM波控制LED亮度
  • CnosDB:深入理解时序数据质量函数
  • MFC GDI 绘图模式、映射模式、画笔、笔、字体
  • 题解:CF859C Pie Rules
  • tcpdump源码分析
  • Python数据分析实验四:数据分析综合应用开发
  • hexo+github搭建个人博客
  • Asm.js的简单介绍
  • C++类中的特殊成员函数
  • Codepen 每日精选(2018-3-25)
  • Git同步原始仓库到Fork仓库中
  • Javascript 原型链
  • JSDuck 与 AngularJS 融合技巧
  • node.js
  • Redux系列x:源码分析
  • unity如何实现一个固定宽度的orthagraphic相机
  • 成为一名优秀的Developer的书单
  • - 概述 - 《设计模式(极简c++版)》
  • 高度不固定时垂直居中
  • 跨域
  • 实现简单的正则表达式引擎
  • 微信小程序:实现悬浮返回和分享按钮
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一道闭包题引发的思考
  • 中文输入法与React文本输入框的问题与解决方案
  • 第二十章:异步和文件I/O.(二十三)
  • ‌JavaScript 数据类型转换
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $ git push -u origin master 推送到远程库出错
  • (k8s)kubernetes集群基于Containerd部署
  • (二)Linux——Linux常用指令
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (简单) HDU 2612 Find a way,BFS。
  • (剑指Offer)面试题34:丑数
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (十三)MipMap
  • (一)SvelteKit教程:hello world
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)linux下的时间函数使用
  • (自适应手机端)行业协会机构网站模板
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net 6.0--通用帮助类--FileHelper