KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角

2023-05-16

根据devkit中的readme.txt和cs_overview.pdf的描述以及根据通过对数据集做的小实验总结的,如果过有错误的地方欢迎指正。

======================================================================

rotation_y 和 alpha 的正负以及他们的关系确实有时感觉有些绕,之前的内容写的可能也有些问题,所以后面的内容可能会有错误,所以可以直接看这一段。这里我说一下角度问题,以及rotation_y 和 alpha的转换公式,如果代码中有需要的可以直接按照公式写。

关于角度的正负

其实这个只要用手性的定则就可以了,如果是右手坐标系,那么你就用右手握住坐标轴,拇指朝向握住的轴的正方向,四指方向就是正的方向。举个例子,camera坐标系是y轴朝下的,rotation_y和alpha是(x,z)平面的角,那么我们用右手握住y轴,大拇指朝下,那么这个时候顺时针就是正角,逆时针就是负角。而我们平时的坐标轴都是z朝上,然后角度是在(x,y)平面上,所以你握住z轴之后,逆时针就是正角,顺时针就是负角

rotation_y 和 alpha 的计算公式

下面这个就是KITTI中roation_y 和 alpha 的转换公式,有需要的童鞋可以直接用。

 

======================================================================

图一 cs_overview.pdf中的描述

图2 readme中的描述

上图为readme.txt对rotation_y和alpha的描述,一开始我以为pdf中的ry角就是rotation_y ,\alpha角和alpha也是一个,但是经过和实际的数据集中角度的对比,发现两者有一些出入

图3 根据实验对比得到的角度

在实际的数据集里面,如果物体向上图那样和camera同时朝向前方,那么rotation_y的值是一个负值,其代表的是物体的Z'轴与平行于相机X轴的直线的夹角,也就是在readme.txt中说的around Y-axis in camera coordinates,图一中的示例说物体的Z'的角度为0,顺时针方向为负数的角度,从实验结果上看正负号是对的,但是ry 和 rotation_y 的角度值却不一样。

\alpha角,从数据集来看,如果像图一中 β 角 在Z轴逆时针方向为正值时,α 角的值为 rotation_y + β 而 图1 中 的计算公式为 ry + β,实际上这两个计算结果并不一样,所以这是比较困惑的一点,因为在readme中举了一个例子:

在这个例子中,说如果物体朝向camera的X轴,rotation_y应该为0,无论它处在X/Z平面中的那个位置,但是图一中的ry角显然不符合这个定义,相反,我觉得ry和rotation_y是一个互余的关系。(看评论感觉这里确实有一点表述问题,rotation_y 表示 绕相机x轴旋转的角度,逆时针转动为负值,顺时针为正值,训练集里面的一些高速公路场景的 rotation_y 的弧度 要么就1.57 要么就 -1.57 ,β 方位角,z轴左侧为正角,右侧为负角, alpha = β + rotation_y ,)

实际上从角度的分析可以看出alpha角实际上是将物体绕着与camera原点的连线转动到camera的Z轴方向后,物体的rotation_y角,如下图

下面我来简单讲一下做的小实验

首先我选择的是tracking训练集的0000文件夹下的数据集,并对立面的数据做了预处理,主要有以下几点处理:

1.把所有的角度从弧度转换为了角度方便观察

2.把所有的图像画上了等分线,这样是为了能够进行后续的推断,实际效果如下

经过这样的分割,可以知道,相机坐标系的原点大概就在最中间那根线的左右,下面我们来通过某些特定帧来验证各个角度的值

实验过程

1.首先来看第一帧图像和标注信息

前面已经说了,我把所有的弧度转换成了角度,可以看到在数据集中alpha和rotation角都是负数,这里面van就是白色面包车,而cyclist就是右边这个骑自行车的大爷,白车和自行车都是朝向左前方,所以rotation_y的值都比比 -90 要小,白车在camera的Z轴的左边,自行车在右边所以beta角一个为正,一个为负

2.现在我们来选择一些特殊角度来看,第55帧

自行车朝向正前方,所以ry为-90,两个都在Z轴的右边,所以beta都为负值,且越靠右越小

3.最能够看出两个角的区别:第140帧到153帧

在这连续的多帧中你会发现两个物体的alpha角并没有发生多大变化,但ry角却一直在改变,从数据集的图片中可以看到在这段期间,白车和自行车实际上一直在一条笔直的道路上前进,而真正转向的是后面的携带有camera的数据采集车。

第140帧

第150帧

可以看到实际上是数据采集车进行了向左转弯,所以beta角在越来越小。如果一开始没有理解alpha角的含义,那么从这个里面就能看出 alpha角的含义,alpha角一直90度是因为这条路是笔直的,车也在直着向前开,不管beta角如何,只要把物体沿着与camera的原点进行旋转,旋转到Z轴的方向时,物体朝向与camera的X轴的夹角就是alpha

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角 的相关文章

  • iPhone 旋转和全屏视频

    我遇到了一个奇怪的问题 需要帮助解决 我的应用程序始终以纵向模式运行 我明确希望它是这样的 在应用程序的一处 我有一个 UIWebView 它工作得很好 正如预期的那样 此 Web 视图并非始终显示 而是动态添加到主视图并根据用户操作删除
  • 如何插值旋转?

    我有两个描述旋转的向量 起始旋转 A 和目标旋转 B 我如何最好地通过因子 F 对 A 进行插值以接近 B 当需要插值多个维度时 即产生不需要的旋转 在向量上使用简单的 lerp 不起作用 也许从旋转向量构建四元数并使用Slerp http
  • Three.js 在平面上旋转相机

    我的应用程序中有一个相机 camera new THREE PerspectiveCamera 75 window innerWidth window innerHeight 0 1 1000 camera position z 1 cam
  • 使用 Bash 脚本进行日志轮换

    我有以下问题 我有一个应用程序 它不断地向 stderr 和 stdout 生成输出 该应用程序的输出被捕获在日志文件中 该应用程序被重定向为 gt log txt 我没有任何选项来为此生成适当的日志记录 现在 我有一个 cron 作业 它
  • SVG - 调整以一定角度放置的矩形的大小

    All 我的应用程序中有一个 SVG 矩形 可以通过拖动矩形两侧的结束栏 左和右 来水平拉伸它 矩形可以是 1 调整大小 通过如上所述拉伸 2 拖动 3 并旋转 一切工作正常 但是 一个奇怪的经历是 当我将矩形旋转到接近 90 度 然后尝试
  • 如何快速禁用和启用自动旋转?

    在一般设置中 我允许纵向和横向左 横向右模式 我想关闭横向模式 在 viewController 上我写了这段代码 override func shouldAutorotate gt Bool return false 但是 自动旋转会忽略
  • 如何旋转 SCNBox

    我正在尝试旋转SCNBox我创建使用swipe gestures 例如 当我向右滑动时 该框应旋转 90 度Y axis当我向左滑动时为 90degs 为了实现这一点 我一直在使用节点的SCNAction rotateByX方法来执行旋转动
  • Crm 2011 Outlook 客户端 - 设置有关强制

    我们的客户正在使用 Microsoft CRM 2011 Outlook 客户端 他们有独特的业务需求 他们希望所有使用 Outlook 发送电子邮件的员工都必须强制执行 设置相关内容 很奇怪吧 如果用户在发送电子邮件时忘记设置相关内容 O
  • HTML5 文本画布在文本宽度大于允许的最大宽度时旋转

    朋友们 我发现旋转文本画布对象有点棘手 问题是 我正在绘制一个图形 但有时每个条形的宽度小于该条形的 值 所以我必须将 值 评定为 90 度 在大多数情况下它都会起作用 我正在做以下事情 a function x y text maxWid
  • 具有透明框架和不透明边缘的图例

    设置图例透明度时 plt legend framealpha 0 5 它会影响背景和边缘 如何仅将透明度应用于背景而不应用于边缘 我努力了 plt legend edgecolor 0 0 0 1 facecolor 1 1 1 0 1 我
  • 获取 UIView 的当前角度/旋转/弧度?

    如何获取 UIView 当前的角度 旋转 弧度 你可以这样做 CGFloat radians atan2f yourView transform b yourView transform a CGFloat degrees radians
  • 获取 png 图像的像素的 alpha 值?

    我正在使用以下代码 img imagecreatefrompng image png col imagecolorat img x y alpha col gt gt 24 0x7F 但 alpha 值始终为 127 即使像素位于 x y
  • 在 SVG 中使用变换模拟枢轴旋转

    我在 SVG 中有一个矩形 需要从特定点绕轴旋转 我能想到的最好方法是变换到枢轴的 xy 旋转角度 然后再次变换 问题是第二个变换的 xy 我认为它会在某种程度上采用 cos 和 sin 只是不确定在哪里或为什么 会旋转 90度到 也许我以
  • 当设备方向改变时以编程方式更新约束的正确方法?

    我在用着storyboard and autolayout 并将 IB 中的约束设置为IBOutlet在相应的视图控制器中 我正在阅读几篇关于如何将纵向和横向的约束更新为不同的帖子 但我仍然不确定应该如何执行此操作 我应该设置新的限制吗 v
  • 多 AVL 树旋转

    假设我有一个无序集合 s 3 6 5 1 2 4 并且我需要构造一个 AVL 树 就这么多了 我了解基本的旋转 我在这里达到这一点 5 2 6 1 3 但当我尝试插入 4 时 一切都崩溃了 我得到的最终答案是 左边的 4 But the a
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • jasper 报告 pdf 导出中忽略半透明(半透明)背景色

    问 为什么保存为 PDF 时 Alpha 信息会丢失 Jaspersoft studio 不允许我用 Alpha 指定颜色 因此 我尝试聪明地在着色元素上指定键 并更改代码中的颜色 如下所示 JasperReport jasperRepor
  • 在代码中旋转按钮(或其中的文本)

    我必须通过编码随机旋转按钮 或里面的文本 它是相同的 API级别低于11是否有button setRotate x 好吧 看了一下 答案是 很复杂 您可以使用旧的动画框架旋转按钮 例如像这样 Button button Button fin
  • SASS如何在旋转body时使页面完整的高度和宽度?

    我必须旋转我的身体并做到这一点全高 and 全屏宽度 嗯 我用的是vh公制并且非常适合width但身高还是不太合适 我不得不旋转 90 度但是height and width仍然指相同的方向not rotate PS 我添加了 red以便更
  • C 语言中的 Alpha 混合 2 RGBA 颜色[重复]

    这个问题在这里已经有答案了 可能的重复 如何快速进行阿尔法混合 https stackoverflow com questions 1102692 how to do alpha blend fast 对 2 个 RGBA 整数 颜色进行

随机推荐

  • OpenLTE开源代码结构解析(一)

    跟踪了一个在将开源组织 OpenLTE xff08 将4G通信网络LTE开源 xff09 xff0c 现将自己梳理整理的一些文档Post出来 xff0c 请有相同兴趣的朋友指点 xff1a 一 xff0c 系统介绍 OpenLTE是一位Mo
  • OpenLTE开源代码结构解析(二)

    对eNodeB的一些配置以及代码结构进行说明 xff0c 如下 xff1a 一 xff0c eNodeB配置结构 控制进程 xff08 传递eNB配置命令 xff09 eNB按照配置进程的配置命令工作 1 xff0c 在一个Tab窗口运行L
  • java.sql.SQLException: ORA-28000: the account is locked

    java sql SQLException ORA 28000 the account is locked 原创 2017年04月25日 17 25 10 标签 xff1a oracle 密码 958 1 现象 xff1a 项目启动时报了
  • 程序猿就是用来改变世界的

    先来一个自我介绍 xff0c 我是一个大三的老学姐 xff0c 专业是软件工程 说真的 xff0c 高考完当我知道我的录取专业是软件工程 xff0c 我一脸懵 xff0c 我什么时候填了这个专业 但是我现在想告诉你 xff0c 这是一个很神
  • DMA周期挪用(cycle-steal)

    周期挪用是指利用CPU不访问 存储器的那些周期来实现DMA操作 xff0c 此时DMA可以使用总线而不用通知CPU也不会妨碍CPU的工作 周期挪用并不减慢CPU的操作 xff0c 但可能需要复杂的时序电路 xff0c 而且 数据传送过程是不
  • 【软件笔记------Orcad Capture CIS 17.2/pads vx2.7】------ orcad&pads PCB设计简要教程

    目录 一 Orcad原理图库1 库添加1 1 新建库1 2 添加库 2 库编辑2 1 元件添加2 2 多PART元件添加2 3属性编辑 3 注意事项 二 原理图1 快捷键2 快捷图标3 选择过滤器4 插入图片5 栅格6 自动编号7 封装分配
  • 《飞控介绍》

    飞控 xff1a 即为导航飞控系统 xff0c 也叫自驾仪 物体运动的三个轴 xff08 多旋翼 xff09 俯视多旋翼时 xff1a 与中心纵向的轴叫做纵轴 xff08 x轴 xff09 与中心横向的轴叫做横轴 xff08 y轴 xff0
  • docker镜像仓库

    前言 镜像 xff0c 可以理解为将应用程序和运行环境打包成 应用模板 xff0c 是容器的上层抽象 容器是镜像的运行实例 xff0c 启动时传入相应的参数 xff0c 即可运行应用程序 二者的关系类似于代码中的 类和对象 要以容器的方式运
  • 杂谈我的IT梦

    误打误撞进入IT 我个人认为我还有是属于能说会道的 xff0c 比较善于与人沟通 xff0c 表达能力也可以 xff0c 所以当初我准备选的专业是医药营销 xff0c 因为那个时候根据我的分析 xff0c 医药是个很可观的赚钱领域 xff0
  • Ubuntu更新sudo apt update库报错

    sudo apt update报错 evyn 64 ubuntu sudo apt update E 文件 list 第 1 行的记录格式有误 etc apt sources list d ros latest list Suite E 无
  • 孤立森林(Isolation Forest)从原理到实践

    异常检测 离群点是在给定数据集中 xff0c 与其他数据点显著不同的数据点 异常检测是找出数据中离群点 和大多数数据点显著不同的数据点 的过程 离群点 真实世界中的大型数据集的模式可能非常复杂 xff0c 很难通过查看数据就发现其模式 这就
  • 一个C++程序员的学习经历

    正在上网的时候有这个念头的 xff0c 所以急急忙忙找了一些学习编程的高人的感想 xff1a 我开始学VC时就是自己一个人在啃 xff0c 也没什么人指导 xff0c 当时没有条件上网 xff0c 资料特别少 xff0c 在书店里随便买本书
  • Mac mini 2018 win10 外接显卡终极教程

    Mac mini 2018 win10 外接N卡应该算是最简单了 但是有些小问题 xff0c 比如说总是需要插拔雷电3的线材 xff0c 对于强迫症或者偏执来说总是感觉不爽 一种解决方案是用refind 启动方法 xff0c 将refind
  • Layui上传系列之二(多文件分块上传优化实现)

    接下来 xff0c 就要实现layui的uploader分块上传了 xff0c 在官网上没有提到分块上传 xff0c 倒是有一个多文件选择后 xff0c 显示文件列表的例子 目录 现状分析 我的做法 功能优化 上代码了 现状分析 对于我们能
  • tigervnc+noVNC远程使用RViz

    写在前面 遇到了远程桌面访问ubuntu系统并使用RViz的需要 xff0c 试了常用的vnc4server xff0c 在没有外接显示器的情况下 xff0c vnc4server需要虚拟一个显示器出来 xff0c 虚拟显示器可以使用Xvf
  • VINS-Mono融合轮式编码器和GPS(三):后端优化

    VINS Mono融合轮式编码器和GPS xff08 三 xff09 xff1a 后端优化 开篇介绍理论目标函数IMU约束1 残差2 优化变量3 Jacobian4 协方差 实践配合代码查看 开篇 项目地址VINS GPS Wheel xf
  • ROS-Gazebo (一):关于Gazebo无法加载模型,长时间卡在开始界面的问题解决方法

    在使用ROS Gazebo的过程中首先遇到的问题就是长时间加载不出模型 来 通常的解决方法是 从官方模型库下载号所有的基本模型 然后解压到 gazebo models文件夹里面就可以了 具体的下载地址和详细的操作方式可以 百度或者谷歌 34
  • 用SST89E516RD自制51单片机仿真器

    原文网址 xff1a http www1 eccn com tech06 te074653 asp 用SST89E516RD自制51单片机仿真器 文 xff0f 吴汉清 单片机实验和开发中最重要的一个环节就是程序的调试 xff0c 在业余条
  • Latex (一) 安装和环境变量的设置

    一 安装 Tex有很多不同的版本 xff0c 很多人喜欢用ctex xff0c 但是最推荐是官方版本Texlive 搜了很多资料 xff0c 一般windows的话 xff0c 可以将Tex live 43 Tex studio作为标配 x
  • KITTI 数据集 参数—— tracking devkit中的rotation_y和alpha角

    根据devkit中的readme txt和cs overview pdf的描述以及根据通过对数据集做的小实验总结的 xff0c 如果过有错误的地方欢迎指正 61 61 61 61 61 61 61 61 61 61 61 61 61 61