【KITTI数据集Odometry序列00-10标定文件中的参数关系解读】

这篇具有很好参考价值的文章主要介绍了【KITTI数据集Odometry序列00-10标定文件中的参数关系解读】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

KITTI数据集Odometry序列00-10标定文件中的参数关系解读

KITTI Odometry数据集是大量研究感知、salm、跟踪学者经常接触的数据集。但是对于新手来说,下载相应数据集进行坐标转换的过程中,往往会碰到对calib、pose文件中诸多矩阵不理解的情况。本人查找相关资料的时候发现,针对KITTI Odometry数据集的参数文件解释很少。因此,本人将学习使用中自己对这块的理解做如下阐述。其中,所讲之处如有错误,欢迎各位批评指正。

一、下载完整的里程计calib文件

我们从官网下载原始数据以后,打开数据中的calib文件此时会发现文件中缺少雷达到camera0的外参Tr内容如下:

kitti00数据集,ubuntu,自动驾驶,人工智能,机器学习
为了补全这个外参数,我们需要将从KITTI官网下载calibration files文件,如图下图所示:

kitti00数据集,ubuntu,自动驾驶,人工智能,机器学习
然后打开下载好的参数文件,此时就会发现其内部的calib文件包含Tr矩阵,如图所示:

kitti00数据集,ubuntu,自动驾驶,人工智能,机器学习
因此,将下载好的calibration files中的calib文件全部替换原始数据中的calib文件,此时便可得到完整的参数文件。

二、calib.txt文件内容解读

我们以00为例,该calib参数文件中一共包含了5个矩阵:其中P0代表0号左边灰度相机、P1代表1号右边灰度相机、P2代表2号左边彩色相机、P3代表3号右边彩色相机,Tr代表velodyne。
对于每个相机i而言,Pi矩阵可以理解为相机i的内参矩阵*相机0相对于相机i的外参矩阵即:

Pi= ∣ f x 0 c x 0 0 f y c y 0 0 0 1 0 ∣ \begin{vmatrix} fx & 0 & cx & 0\\ 0 & fy & cy & 0\\ 0 & 0 & 1 & 0 \end{vmatrix} fx000fy0cxcy1000 * ∣ r 11 r 12 r 13 T x r 21 r 22 r 23 T y r 31 r 32 r 33 T z 0 0 0 1 ∣ \begin{vmatrix} r11 & r12 & r13 & Tx\\ r21 & r22 & r23 & Ty\\ r31 & r32 & r33 & Tz\\ 0 & 0 & 0 & 1 \end{vmatrix} r11r21r310r12r22r320r13r23r330TxTyTz1
对于相机0而言,因为外参矩阵为I,所以相机0的内参矩阵K_cam0=P0(0:3, 0:3);
对于相机1、2、3而言,因为四个相机的安装在统一水平线上,所以相机0相对于他们的外参数旋转矩阵为I,平移矩阵仅相差一个Tx,所以相机1、2、3的矩阵P可以简化为:

Pi= ∣ f x 0 c x 0 0 f y c y 0 0 0 1 0 ∣ \begin{vmatrix} fx & 0 & cx & 0\\ 0 & fy & cy & 0\\ 0 & 0 & 1 & 0 \end{vmatrix} fx000fy0cxcy1000 * ∣ 1 0 0 T x 0 1 0 0 0 0 1 0 0 0 0 1 ∣ \begin{vmatrix} 1 & 0 & 0 & Tx\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1 \end{vmatrix} 100001000010Tx001 = ∣ f x 0 c x f x ∗ T x 0 f y c y 0 0 0 1 0 ∣ \begin{vmatrix} fx & 0 & cx & fx*Tx\\ 0 & fy & cy & 0\\ 0 & 0 & 1 & 0 \end{vmatrix} fx000fy0cxcy1fxTx00
所以相机1、2、3的内参矩阵K_cami=Pi(0:3, 0:3), 相机0相对于他们的外参矩阵Ti= ∣ 1 0 0 P i ( 0 , 3 ) / P i ( 0 , 0 ) 0 1 0 0 0 0 1 0 0 0 0 1 ∣ \begin{vmatrix} 1 & 0 & 0 & Pi(0, 3)/Pi(0, 0)\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1& 0\\ 0 & 0 & 0 & 1 \end{vmatrix} 100001000010Pi(0,3)/Pi(0,0)001
Tr表示雷达velodyne坐标系转换到相机0的变换矩阵。
所以我们利用calib文件得到四个相机内参数、外参数的同时,还可以得到雷达与四个相机之间的外参数即:

Tcami_velo=Ti*Tr

三、真值pose文件解读

KITTI官网下载的odometry里程计ground truth poses文件是以第一帧相机0的位置为原点,发布的各帧相机0的真实姿态变换矩阵。所以我们在利用激光雷达进行定位得到激光雷达位姿后,为了便于和真值进行比对,就需要将其转换到同一坐标系下:
我们先利用雷达和相机0之间的外参数,将相机0的位姿真值进行如下变换,便可得到在第一帧相机0原点下雷达的真实位姿:
aft_pose=pose*Tr
随后再进行如下变换,将坐标原点变换到第一帧雷达原点下,此刻便可得到第一帧雷达原点下雷达的真实位姿,由此便可与雷达slam得到的定位结果进行比对。
final_pose=Tr(-1)*aft_pose文章来源地址https://www.toymoban.com/news/detail-608417.html

到了这里,关于【KITTI数据集Odometry序列00-10标定文件中的参数关系解读】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式

    Open3D——批量将KITTI数据集的.bin文件转换成.pcd点云格式 随着自动驾驶、智能制造等应用的逐渐推广,在处理三维点云数据方面的需求越来越大。而KITTI数据集是一个包含激光雷达、相机、GPS等多种传感器数据的三维视觉数据集,广泛用于计算机视觉领域的研究。 然而KITTI数据

    2024年01月16日
    浏览(31)
  • 相机标定,内参数与外参数

    所谓的相机标定就是将外界世界的坐标信息转化为计算机(自带相机/摄像头)可以理解的“距离”,将世界坐标系转换到相机坐标系。我们可以理解为从一个坐标系转换到另一个坐标系所需要的转换关系就是相机标定。 简单滴说:A=F(B),其中F()就是相机标定要做的工作。 其

    2024年02月09日
    浏览(33)
  • 10:00面试,10:04就出来了 ,问的实在是太...

    从外包出来,没想到竟然死在了另一家厂子··· 自从加入这家公司,每天都在加班,钱倒是给的不少,所以我也就忍了。没想到12月一纸通知,所有人都不许加班,薪资直降30%,顿时有吃不起饭的赶脚。 好在有个兄弟内推我去了一家互联网公司,兴冲冲见面试官,没想到一道

    2024年02月03日
    浏览(57)
  • 10:00面试,10:08就出来了,问的问题有点变态。。。

    从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这下搞的饭都吃不起了。 还在有个朋友内推我去了一家互联网公司

    2024年04月25日
    浏览(23)
  • 10:00面试,10:06就出来了,问的问题有点变态。。。

    从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%,这下搞的饭都吃不起了。 还在有个朋友内推我去了一家互联网公司

    2024年03月19日
    浏览(32)
  • 【双目相机】基于matlab的参数标定2-使用matlab标定

    使用双目相机拍照并分割图片: 【双目相机】基于matlab的参数标定1-使用双目相机拍照 照片拍摄好后,进入matlab标定工具箱,如下图所示。可以使用matlab2020a版本。 进入工具箱以后,选择Add Images。 选择左右相机照片的路径,Size of checkerboard square为棋盘中每一个方格的长度,

    2024年02月15日
    浏览(24)
  • 【KITTI】Kitti数据集 Tr(旋转平移)矩阵求逆

            本节详细介绍KITTI从图像坐标系到激光雷达坐标系的变换原理、过程和代码。         Kitti数据集的Tr_velo_to_cam矩阵是将激光雷达点云坐标变换到图像坐标系。Tr是一个3x4的矩阵,直接左乘激光雷达坐标即可得到图像坐标系中的坐标。         Tr可以认为是由

    2023年04月24日
    浏览(36)
  • 读数据压缩入门笔记10_通用压缩和序列化

    1.2.3.1. 如果今天多云,那么明后两天会下雨的概率是多少? 1.2.5.1. 要使马尔可夫链算法变得实用,就必须要解决内存消耗问题与计算性能问题,即使用最佳链来编码 1.4.3.1. 在PPMZ算法中,对于符号如何去响应匹配,人们尝试了多种类型的上下文 1.4.6.1. 缺点是在进行数据压

    2024年02月16日
    浏览(31)
  • 【笔记&问题解决】激光雷达和相机外部参数标定全流程(livox_camera_calib加载数据问题解决 [#85 Issue] & PCL无法创建KDTree问题解决 [#19 Issue])

    激光雷达:DJI Livox Avia混合固态激光雷达 相机:Intel Realsense D435i深度相机 外参标定是进行多传感器融合的必要前提。 livox_camera_calib 是香港大学MaRS 实验室开发的一款的激光雷达和相机标定的算法。算法分为分为 单场景标定(Single scene calibration) 和 多场景标定(Multi scenes

    2024年02月04日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包