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

3D检测笔记:基础坐标系与标注框介绍

目录

  • 二维坐标系
    • 图像坐标系
    • 像素坐标系
  • 三维坐标系
    • 左手系与右手系
      • 判定
      • 特点
    • 相机坐标系
    • 车身/激光雷达坐标系
    • 深度坐标系
    • 东北天(ENU)坐标系
  • 标注框

二维坐标系

图像坐标系

  • 原点: 左上角为原点。
  • 坐标轴:从上到下为y轴,从左到右为x轴。

在这里插入图片描述

像素坐标系

  • 原点:图像左上角(与屏幕坐标系一致)‌。
  • 坐标轴:横轴(u)为列数,纵轴(v)为行数,单位为像素‌。
  • 特点:OpenCV的像素坐标系与传统数学坐标系Y轴方向相反(向下为正)‌。

在这里插入图片描述

三维坐标系

左手系与右手系

判定

 左手系和右手系并不是两个固定的坐标系,而是x,y,z轴的两个组合顺序
判定左手系和右手系的方法也很简单:====

  • 右手大拇指指向Z轴方向,其余四指由X轴指向Y轴;符合这个条件的为右手系。
    在这里插入图片描述
  • 左手大拇指指向Z轴方向,其余四指由X轴指向Y轴;符合这个条件的为左手系。
    在这里插入图片描述

特点

  • 从垂直旋转轴的上方看,右手系逆时针旋转为正,顺时针为负。
    左手系顺时针为正方向,逆时针为负方向。
  • 同为左手系或者右手系的坐标变换是刚体变换,可以用旋转矩阵+平移矩阵表示。

相机坐标系

 相机坐标系是右手系,以镜头主光轴中心为原点,定义为右(x)、下(y)、前(z)
在这里插入图片描述
可以简记为在图像坐标系的基础上加入向前的深度(Z)轴

车身/激光雷达坐标系

 现在最常用的激光雷达/车身的坐标系也是采用右手系,具体定义为:前(X)、左(Y)、上(Z)
在这里插入图片描述

深度坐标系

 深度坐标系(Depth),此坐标系主要被用于通过深度相机采集的数据集, 大多是室内场景点云检测。
 在MMDetection3D中定义如下:
在这里插入图片描述

东北天(ENU)坐标系

 东北天坐标系(ENU)一般用于导航和地理信息系统的局部参考坐标系。
‌ E是East的缩写,表示X轴指向的方向为正东;N是North的缩写,表示Y轴指向的方向为正北;U是Up的缩写,表示Z指向的方向为垂直于水平面向上(天顶),XYZ构成右手坐标系。

标注框

这里采用MMDetection3D的标准来介绍3D标注框:

 在 3D 目标检测中,框 Box 通常表示为:(x, y, z, x_size, y_size, z_size, yaw)。
 其中 (x, y, z) 表示框的位置 ,(x_size, y_size, z_size) 表示框的尺寸,yaw 表示框的朝向角。

MMDetection3D中,以x轴方向为参考方向,定义各个参数的意义为:

  1. 3D 框的尺寸 (x_size, y_size, z_size),按惯例定义为物体 3D 框在朝向角 yaw 角度为 0 时沿着 x, y, z 轴三个方向的长度。
  2. 朝向角Yaw,定义为与参考方向的夹角(0-180°)。在深度坐标系、激光雷达坐标系当中大小的定义与右手系标准相同,即朝向角增大的方向为逆时针,也就是说从x轴到朝向边,逆时针为正,顺时针为负

深度坐标系标准:
在这里插入图片描述
雷达坐标系标准:
在这里插入图片描述
相机坐标系标准(朝向角大小与右手系相反):
在这里插入图片描述

http://www.xdnf.cn/news/18089.html

相关文章:

  • 深层语义知识图谱:提升NLP文本预处理效果的关键技术
  • 【P18 3-10】OpenCV Python—— 鼠标控制,鼠标回调函数(鼠标移动、按下、。。。),鼠标绘制基本图形(直线、圆、矩形)
  • 在 PyCharm Notebook 中安装 YOLO
  • Jupyter 中实现交互式图表:ipywidgets 从入门到部署
  • 短剧小程序系统开发:推动短剧行业规范化与标准化发展
  • 01数据结构-交换排序
  • AWS Neptune:图数据库的强大潜力
  • Spring AI RAG 检索增强 应用
  • BPO(Business Process Optimization,业务流程优化)
  • 决策树(1)
  • 【领码课堂】AI写码不再“盲跑”,方案先行,自动化高效落地
  • 数据挖掘 3.5 支持向量机——边界和正则化
  • 深度理解分布式事务——强一致分布式事务解决方案
  • linux-高级IO(中)
  • LINUX 818 shell:random;for for
  • ReactNative开发实战——React Native开发环境配置指南
  • VS Code Copilot 完整使用教程(含图解)
  • LeetCode热题100--226. 翻转二叉树--简单
  • 我们为什么需要时序数据库?
  • Docker学习--认识Docker
  • 基于nvm安装管理多个node.js版本切换使用(附上详细安装使用图文教程+nvm命令大全)
  • 视觉语言导航(6)——Speaker-Follower模型 数据增强 混合学习 CLIP 3.1后半段
  • Vision Master的C#脚本与opencv联合编程
  • 【低空安全】低空安全简介
  • Springboot项目3种视图(JSP、Thymeleaf、Freemarker)演示
  • TypeScript中的import语法详解
  • qt svg缺失元素, 原因是不支持 rgba
  • Gemini 学习记录:实践与反思
  • 区块链练手项目(持续更新)
  • [优选算法专题二滑动窗口——将x减到0的最小操作数]