【KITTI】Kitti数据集 Tr(旋转平移)矩阵求逆

这篇具有很好参考价值的文章主要介绍了【KITTI】Kitti数据集 Tr(旋转平移)矩阵求逆。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        本节详细介绍KITTI从图像坐标系到激光雷达坐标系的变换原理、过程和代码。

        Kitti数据集的Tr_velo_to_cam矩阵是将激光雷达点云坐标变换到图像坐标系。Tr是一个3x4的矩阵,直接左乘激光雷达坐标即可得到图像坐标系中的坐标。

        Tr可以认为是由旋转矩阵R平移矩阵T组成,即表示为增广矩阵R|T。旋转矩阵R的维度是3x3,T的维度为1x3。将图像坐标系中的坐标变回激光雷达坐标系中需要用到Tr的逆矩阵。Tr逆矩阵求解方法主要有分步求解和直接求解两种。

1 分步求解

        Tr矩阵的变换过程相当于:(1)用R对坐标系进行变换,将原坐标变换到新的坐标系下,R的列向量就是新的坐标系的坐标轴向量;(2)用T对变换后的坐标进行平移,平移尺度由变换后的坐标系决定。

        Tr的逆矩阵相当于反向操作:(1)用R的逆矩阵进行反向变换;(2)对反向变换的坐标进行平移,平移尺度由变换后的坐标系决定,此时变换后的坐标系相当于最原始的坐标系。

        因此,Tr的逆矩阵可以表示为:

        根据上述分析可知,Tr的逆矩阵先通过R的逆矩阵求得反变换坐标系,然后用R^{-1}T来求得平移尺度,加上一个负号进行反向平移即可。

        注意到:用于变换前后坐标系是正交的,那么R一定也是一个正交矩阵。正交矩阵的逆矩阵为其转置矩阵。因此第一种求逆方法如下:

def inverse_rigid_trans(Tr):

    ''' Inverse a rigid body transform matrix (3x4 as [R|t])

        [R'|-R't; 0|1]

    '''

    inv_Tr = np.zeros_like(Tr)  # 3x4

    inv_Tr[0:3, 0:3] = np.transpose(Tr[0:3, 0:3])

    inv_Tr[0:3, 3] = np.dot(-np.transpose(Tr[0:3, 0:3]), Tr[0:3, 3])

    return inv_Tr

2 直接求解

        直接求解是指直接对矩阵进行求逆运算,但是这种运算一般对应方阵。因此,在进行求逆运算时,需要把Tr矩阵增加一行[0, 0, 0, 1],进而变成4x4方阵。方法如下所示:

Tr = np.concatenate((Tr, np.array([0, 0, 0, 1]).reshape(1, 4)))
inv_Tr = np.linalg.inv()

3 结果对比

        假设输入为:

array([[ 7.533745e-03, -9.999714e-01, -6.166020e-04, -4.069766e-03],

       [ 1.480249e-02,  7.280733e-04, -9.998902e-01, -7.631618e-02],

       [ 9.998621e-01,  7.523790e-03,  1.480755e-02, -2.717806e-01]],

      dtype=float32)

        分步求解的结果为:

array([[ 7.5337449e-03,  1.4802490e-02,  9.9986207e-01,  2.7290344e-01],

       [-9.9997139e-01,  7.2807330e-04,  7.5237900e-03, -1.9692658e-03],

       [-6.1660202e-04, -9.9989021e-01,  1.4807550e-02, -7.2285905e-02]],

      dtype=float32)

        直接求解的结果为:

array([[ 7.53374482e-03,  1.48024872e-02,  9.99862035e-01,

         2.72903444e-01],

       [-9.99971472e-01,  7.28073268e-04,  7.52379041e-03,

        -1.96926581e-03],

       [-6.16602039e-04, -9.99890136e-01,  1.48075518e-02,

        -7.22858974e-02],

       [ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,

         1.00000000e+00]])

        通过对比可以看到,直接求解的结果的前三行与分步求解的结果一致。

4 python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python三维点云重建从三维基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。https://blog.csdn.net/suiyingy/category_11740467.htmlhttps://blog.csdn.net/suiyingy/category_11740467.html1、点云格式介绍(已完成)常见点云存储方式有pcd、ply、bin、txt文件。open3d读写pcd和plhttps://blog.csdn.net/suiyingy/article/details/124017716

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。文章来源地址https://www.toymoban.com/news/detail-423063.html

到了这里,关于【KITTI】Kitti数据集 Tr(旋转平移)矩阵求逆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • (一)KITTI数据集用于3D目标检测

    KITTI 是德国卡尔斯鲁厄科技学院和丰田芝加哥研究院开源的数据集,最早发布于 2012 年 03 月 20 号。 对应的论文Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite发表在 CVPR2012 上。 KITTI 数据集搜集自德国 卡尔斯鲁厄 市,包括市区/郊区/高速公路等交通场景。采集于 2011 年

    2024年02月10日
    浏览(36)
  • ORB_SLAM2运行KITTI数据集

            在前文我们已经安装运行了ORB_SLAM2,下载和编译(包括报错)在文章: ORB_SLAM2下载编译及运行EuRoC数据集_浅梦语11的博客-CSDN博客_euroc数据集下载         并且我们使用运行了EuRoC数据集。今天利用框架运行KITTI数据集。         注意 :如果没有运行成功EuRoC数据

    2024年02月08日
    浏览(26)
  • 使用KITTI数据集的激光雷达数据(数据预处理+数据集制作+训练)

    目录 1.前言 2. 数据集简介 2.1采集区域 2.2采集平台 3. 激光雷达数据位置 4. 激光雷达数据标签含义 5. 数据预处理与训练 5.1配置openpcdet 5.2数据预处理 5.2.1数据集目录整理 5.2.2数据集格式转化 5.3训练 做激光雷达感知相关工作离不开数据集,激光雷达数据标注价格较高,可选的开

    2024年02月09日
    浏览(34)
  • 【KITTI数据集Odometry序列00-10标定文件中的参数关系解读】

    KITTI Odometry数据集是大量研究感知、salm、跟踪学者经常接触的数据集。但是对于新手来说,下载相应数据集进行坐标转换的过程中,往往会碰到对calib、pose文件中诸多矩阵不理解的情况。本人查找相关资料的时候发现,针对KITTI Odometry数据集的参数文件解释很少。因此,本人

    2024年02月15日
    浏览(25)
  • KITTI数据集raw_data下载(用chrome浏览器)

    KITTI是广泛用于自动驾驶领域评估的数据集之一,但是该数据集的数据很难下载。官方提供的下载方式是下载下图中的scripts,然后运行文件夹中的脚本,但是国内连接不上。科学上网只能在chrome浏览器上(网上教程很多哈),一个一个的去官网地址下载实在太麻烦了,因此写

    2024年02月15日
    浏览(35)
  • OpenPCDet系列 | 7.1 KITTI数据集测试流程predicted_boxes预测

    测试流程的结构图如下所示: generate_predicted_boxes函数 一开始的数据传入为: 首先对于各类预测的特征图进行重新reshape处理,将anchor那一维度进行拼接操作,比如:(16, 248, 216, 42) - (16, 321408, 7)。但是这里需要注意。 特征预测的box信息是基于anchor的一个偏移,也就是编码后的

    2024年02月06日
    浏览(30)
  • 3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

    本文介绍在3D目标检测中,理解和使用KITTI 数据集,包括KITTI 的基本情况、下载数据集、标签格式解析、3D框可视化、点云转图像、画BEV鸟瞰图等,并配有实现代码。 目录  1、KITTI数据集3D框可视化 2、KITTI 3D数据集 3、下载数据集 4、标签格式 5、标定参数解析 6、点云数据--投

    2024年02月09日
    浏览(32)
  • 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换

    由于在平时总是或多或少的遇到平移旋转的问题,每次都是现查资料,然后查了忘,忘了继续查,这次弄明白之后干脆写一篇文章,给人方便同时于己方便,后续如有扩充或变动也方便添加。 假设有两个向量 a 1 = ( x 1 , y 1 , z 1 ) a_1 = (x_1, y_1, z_1) a 1 ​ = ( x 1 ​ , y 1 ​ , z 1 ​

    2024年02月03日
    浏览(67)
  • 3D检测数据集 DAIR-V2X-V 转为Kitti格式 | 可视化

    本文分享在DAIR-V2X-V数据集中,将标签转为Kitti格式,并可视化3D检测效果。 DAIR-V2X包括不同类型的数据集: DAIR-V2X-I DAIR-V2X-V DAIR-V2X-C V2X-Seq-SPD V2X-Seq-TFD DAIR-V2X-C-Example: google_drive_link V2X-Seq-SPD-Example: google_drive_link V2X-Seq-TFD-Example: google_drive_link 本文选择DAIR-V2X-V作为示例。 1、下

    2024年02月03日
    浏览(34)
  • webgl-矩阵、旋转、平移、缩放 glMatrix组件

    引入新组建glMatrix glMatrix.js /*! @fileoverview gl-matrix - High performance matrix and vector operations @author Brandon Jones @author Colin MacKenzie IV @version 3.4.3 Copyright (c) 2015-2021, Brandon Jones, Colin MacKenzie IV. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation f

    2024年02月10日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包