探索 KITTI 数据集:自动驾驶汽车的视觉里程计

本文详细介绍了如何利用Python和OpenCV探索KITTI数据集,特别是针对自动驾驶中的视觉里程计任务。内容包括数据集介绍、数据下载、图像序列探索、相机校准、内外矩阵解析及深度估计。通过对投影矩阵的分解和计算,展示了如何恢复3D点的位置并估计深度,从而理解其在视觉里程计中的应用。
摘要由CSDN通过智能技术生成

什么是 KITTI 数据集?

KITTI 是由卡尔斯鲁厄理工学院和芝加哥丰田技术学院开发的自动驾驶数据集。它是计算机视觉研究中使用的图像和 LIDAR 数据的集合,例如立体视觉、光流、视觉里程计、3D 对象检测和 3D 跟踪。

该数据集可在 http://www.cvlibs.net/datasets/kitti/ 免费下载。

在本文中,我们将探讨 KITTI 里程计数据集的用法。KITTI 数据集是用于评估视觉里程计算法性能的基准数据集。它包含从移动车辆记录的立体图像序列的集合,以及车辆运动的相应地面实况数据。

本文将成为 KITTI 视觉里程计系列的第 1 部分。我们首先回顾执行立体深度估计和视觉里程计任务所需的计算机视觉的一些基础知识,并演示如何在 Python 中使用 OpenCV 实现这些原理。

设置数据集

下载我们打算使用的 velodyne 激光数据(https://www.cvlibs.net/datasets/kitti/user_login.php)和灰度数据(https://www.cvlibs.net/datasets/kitti/user_login.php),你必须注册并登录才能下载数据集。

下载数据集后,请在包含两个数据集的文件夹的同一路径中创建一个 python 文件。

使用 Python 代码探索数据集

导入所需的依赖项——OpenCV、matplotlib.pyplot、numpy、pandas、os。

现在我们将看一下从数据集中加载轨迹序列之一的地面实况姿势。

poses = pd.read_csv('../dataset/poses/00.txt', delimiter=' ', header=None)
print('Size of pose dataframe:', poses.shape)
poses.head()
82514cec2c45240e9e236934c2445a60.jpeg

该数据集包含 4541 行和 12 列,其中 4541 是图像帧数,12 是展平 3x4 变换矩阵(外部参数)的结果。该矩阵存储左立体相机相对于全局坐标系的 3x3 旋转矩阵和 3x1 平移向量。

c05a3f7f6bbd3919a7b56e3c1c8ffca7.jpeg

3x4变换矩阵[R|t]存储了相机当前坐标系与相机初始位置坐标系之间的变换。

ec6678b6a1b61cf4d0a98d9128a044ee.jpeg

我们可以通过查看第一个姿势并观察旋转分量是同一的,平移矢量在所有轴上都为零来验证这一点。

first_pose = np.array(poses.iloc[0]).reshape((3,4)).round(2)
second_pose = np.array(poses.iloc[1]).reshape((3,4)).round(2)
print("First pose:\n", first_pose)
print("Second pose:\n",second_pose)
1e871591092776fe771e7c4a572083df.jpeg

现在我们可以存储所有地面实况姿势,因此我们可以使用它作为姿势序列获得轨迹图,还可以访问这个地面实况数组,其中包含相机相对于全局坐标系的所有位置和方向。

ground_truth = np.zeros((len(poses), 3, 4))
for i in range(len(poses)):
    ground_truth[i] = np.array(poses.iloc[i]).reshape((3, 4))
%matplotlib widget

fig = plt.fi
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值