Waymo dataset+mmdet3d的坐标系问题

这篇具有很好参考价值的文章主要介绍了Waymo dataset+mmdet3d的坐标系问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mmdet3d 在处理 waymo dataset的时候,3D/2D gt box, point cloud等数据进行了非常多的坐标系转换。本身waymo的坐标系也有不少。
写这篇文章的motivation主要是,自己在处理3D point投影到2D image的过程中产生了两个问题:

  1. 枚举ego centric 3D点投到5个相机的时候,发现覆盖范围是歪的,front camera没有正对前方;别人的方法如CMKD,BEV range都是正的
  2. 使用同样的投影矩阵,将3D gt box的center投到相机时,pixel坐标和waymo给的projected laser label中的坐标不一致。

最后1是因为u,v弄反了,2是因为waym的projected 2d box,是最小的,能够框住所有lidar points in 3D box 的矩形,所以3D 和 2D gt box的center没有对应关系。

现在总结一下waymo dataset的坐标系,以及mmdet3d是如何转换waymo坐标系的。其中最为重要的,还是gt labels前后的坐标变化。

waymo dataset coordinate system

首先得说一下waymo dataset的结构。以training split为例,有700多个tfrecord文件,每个文件对应一个scene,是长度为20s左右的视频,大概有200帧,每帧有lidar和camera的数据,还有gt labels。
一帧对应一个Frame的protobuf类,具体的描述在waymo dataset项目的dataset.proto里。

global frame(coordinate)

对于一个scene,我们首先有一个预设的全局坐标系,global frame坐标系在ego运动之前就设定好了,z轴背对地心,x轴向东,y轴向北。车在global frame里移动,位姿由Frame.pose给出,是一个4x4的转移矩阵T,即齐次坐标下的旋转加位移[R,t]。

vehicle frame(coordinate)

车坐标系,ego-centric的坐标系,原点固定于车的某个点上,x轴向前,y轴向左,z轴向上。可以说,车的位姿,和这个坐标系是绑定的。当要计算不同frame间点的相对关系,我们可以利用Frame.pose,把点都转到global frame下进行计算。注意到,这里的T是vehicle转global的矩阵,用法是 p t g l o b a l = T × p t v e h i c l e , p t v e h i c l e = [ x , y , z , 1 ] T pt_{global}=T\times pt_{vehicle}, pt_{vehicle}=[x,y,z,1]^T ptglobal=T×ptvehicle,ptvehicle=[x,y,z,1]T

sensor frame

vehicle上装了许多sensor,每个sensor的位姿,对于每个scene来说是固定的。类似于frame.pose,每个sensor的位姿,或者说“外参”,都定义在vehicle坐标系下,同样有T=[R,t]。其中位移t在不同帧之间似乎是一致的(仅观察了部分top lidar的t),R有轻微不同。top lidar的转移矩阵(外参)记录在frames[0].context.laser_calibrations[0].extrinsic.transform中,意义为top lidar转移到vehicle坐标系的转移矩阵,其他的sensor类似。
每个sensor的坐标系,其x,y,z轴如下图所示,sensor的位姿定义了其坐标系。
Waymo dataset+mmdet3d的坐标系问题
top lidar和front camera的坐标轴朝向基本和vehicle一致,只是有些位移,那么可以猜测其外参矩阵[R,t]中的R,大概为对角阵,而不同帧之间的外参应该基本相同(常理来说sensor的位置固定)。
比如validation set的scene_id=50(0开始计)的top lidar和front cam的外参如下文章来源地址https://www.toymoban.com/news/detail-479621.html

lidar2vehicle = np.array(frames[0].context.laser_calibrations[0].extrinsic.transform).reshape(4,4)
print(lidar2frame)
[[ 0.99991058  0.01128794  0.0071704   4.07      ]
 [-0.01139378  0.99982415  0.01489488  0.        ]
 [-0.00700101 -0.01497524

到了这里,关于Waymo dataset+mmdet3d的坐标系问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nuscenes——实现世界坐标3D点投影到像素坐标系中

    首先在 mmdetection3d/tools/data_converter/nuscenes_converter.py 中, get_2d_boxes() 可以直接从nuscenes原始sample数据中获取已标注的3D box信息,因此该函数就可以实现整体投影过程。 投影原理 投影过程分为以下几步: 世界坐标系 —— Ego坐标系(自身) 这里需要世界坐标系原点变换到自身的

    2024年02月11日
    浏览(46)
  • 3D开发学习之笛卡尔坐标系

    作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?   2D笛卡尔坐标系具有以下特点: 1.2D笛卡尔坐标系都具有一个原点,原点坐标为(0,0); 2.2D笛卡尔坐标系都有两条过原点向两边无限延伸的直线,称之为轴;   2D笛卡尔坐标系轴的方向可以是如下形

    2024年02月10日
    浏览(58)
  • matplotlib 齐次坐标系 绘制旋转 3D 立体

    齐次坐标系描述了刚体的坐标系、位置,而且还提供了一套相对旋转、相对移动、绝对旋转、绝对移动的方法,用来绘制旋转的 3D 立体是再好不过的选择 将笛卡尔坐标系的三个轴记为 ,将任意的齐次坐标系记为 我们使用这样一个矩阵来描述 坐标系与 坐标系之间的关系:

    2024年02月09日
    浏览(38)
  • wpf 3d 坐标系和基本三角形复习

    wpf 3d 坐标系的描述见此,  WPF 3d坐标系和基本三角形_wpf 坐标系_bcbobo21cn的博客-CSDN博客     X轴正向向右,Y轴正向向上;Z轴,正向是从屏幕里边出来,负向是往屏幕里边去;坐标原点是在呈现区域的中心;  画一个三角形如下;         看摄像机属性,摄像机是在呈现区域

    2024年02月13日
    浏览(34)
  • unity和3d坐标系以及和ue的比较

    unity和ue都采用左手坐标系 在3d软件中,大多数软件都用红色代表x轴,绿色代表y轴,蓝色代表z轴。 不同的是 : 在unity中X轴代表右方,Y轴代表上方,Z轴代表前方; 在ue中X轴代表前方,Y轴代表右方,Z轴代表上方; 缩放 :根据自身缩放,不受坐标系影响, (移动和旋转则分

    2024年02月11日
    浏览(39)
  • Android OpenGL ES 学习(九) – 坐标系统和实现3D效果

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投影 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用 VBO、VAO 和 EBO/IBO 优化程序 Android OpenG

    2024年01月25日
    浏览(44)
  • 笔记:立体视觉涉及的相机模型、参数、3D坐标系、内外参计算等

    3D视觉、SLAM、自动驾驶算法经常会碰到多传感器标定、数据对齐的问题,比如下面这个图(CADCD): 图1 上面就包含了7个camera,每个camera的位姿不同,采集到的数据也不同,怎么通过这些数据重建3D场景就需要用到对齐。 下图是human3.6的采集环境配置图: 关于这一块的知识点

    2024年04月24日
    浏览(55)
  • global mapper手动添加网格线平面直角坐标系及简易3D地形演示

    在网格配置中,如下图,可以设置背景网格间距大小。但是在卫星图中,由于是灰色的线条,难以被识别出来,尤其是在需要判读格子内距离时带来不便。例如上图中的灰色线条就不容易判读。 添加其他图层后更变的不容易识别。 可以利用线工具重新绘制网格,达到显眼醒

    2024年02月05日
    浏览(41)
  • 【超图】SuperMap iClient3D for WebGL/WebGPU —— 坐标系&位置 —— Cartesian2

    作者:taco         说到关于地理必然逃不开位置的关系。借用百度百科的内容来说 地理学(geography) ,是研究地球表层 空间地理 要素或者地理综合体 空间分布规律 、时间演变过程和 区域 特征的一门学科。 所以 位置坐标系 必然逃不掉了。那么在SuperMap iClient3D for Web

    2024年01月16日
    浏览(52)
  • 【CSS3】CSS3 3D 转换 ① ( CSS3 3D 转换简介 | 3D 物体与 2D 物体区别 | 3D 空间坐标系 | 常用的 3D 转换属性 | 3D 位移转换语法 | 代码示例 )

    3D 显示的物体 与 平面 2D 显示的物体有明显的不同 , 3D 显示效果有 近大远小 的 特点 ; 元素的 2D 的 转换效果 有 平移 , 旋转 , 缩放 效果 , 同样有对应的 3D 转换效果 ; 2D 平面坐标系 中 , 只有 x 轴 和 y 轴 ; 3D 空间坐标系 比 2D 平面坐标系 多了一个 Z 轴 ; x 轴 : 水平向右 ; 左侧是

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包