【KITTI Odometry】视觉里程计/SLAM基准测试全面解析:评估指标、数据集结构、传感器标定与排行榜深度拆解
2026/6/5 1:13:51 网站建设 项目流程

摘要

KITTI Odometry Benchmark 是视觉里程计和 SLAM 领域最权威的户外驾驶场景基准测试,由 Geiger 等人于 2012 年 CVPR 提出。本文从数据集结构(22 条序列、39.2 km、41k 帧)、传感器配置(双目灰度/彩色相机 + Velodyne HDL-64E + OXTS RT 3003 GPS/IMU)、标定流程、评估指标的数学定义(平移误差E trans E_{\text{trans}}Etrans和旋转误差E rot E_{\text{rot}}Erot在 100-800m 子序列上的统计)、以及当前排行榜 TOP 方法(SOFT2 0.53%、V-LOAM 0.54%、LOAM 0.55%)进行完整拆解,帮助研究者正确理解和使用这一基准。


论文:Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite (CVPR 2012)
代码:KITTI Odometry Benchmark


一、为什么需要 KITTI Odometry Benchmark?

2012 年之前,视觉里程计/SLAM 的评估存在几个核心问题:

问题现有数据集的状况
规模太小TUM RGB-D 仅 0.4 km 室内,New College 仅 2.2 km 单序列
缺乏度量指标多数工作仅给出定性轨迹对比,无统一量化标准
传感器单一多为单目或仅 RGB-D,无法对比不同模态的方法
场景受限室内为主,不反映自动驾驶的真实复杂度

KITTI 的核心贡献:22 条户外序列、39.2 km 总里程、多传感器(双目 + LiDAR + GPS/IMU)、统一评估指标、在线排行榜。至今仍是 SLAM 领域最广泛使用的户外基准之一。

二、传感器配置与标定

2.1 硬件平台

采集车为改装的 Volkswagen Passat B6,搭载 8 核 i7 工控机 + RAID 存储,运行 Ubuntu Linux。

传感器型号关键参数
灰度相机 x2PointGrey Flea2 (FL2-14S3M-C)1392x512, 10 Hz, 90x35 deg FOV
彩色相机 x2PointGrey Flea2 (FL2-14S3C-C)1392x512, 10 Hz
LiDARVelodyne HDL-64E64 线, 10 Hz, 100m, >100k 点/帧
GPS/IMUOXTS RT 3003RTK, 开阔地精度 < 5 cm
镜头Edmund Optics 变焦4-8 mm, 快门 < 2 ms

关键安装参数

  • 双目基线:54 cm(同类型相机之间)
  • 灰度-彩色间距:6 cm(最小化色彩差异影响)
  • 相机均安装在车顶支架上,一组在左侧,一组在右侧

图 1:KITTI 采集车传感器安装俯视图 – 四台相机、Velodyne 激光雷达和 GPS/IMU 的空间布局。重点关注 54 cm 的双目基线配置。来源:KITTI 官网,仅供学习

2.2 三级标定流程

图 2:KITTI 三级标定流程与坐标系关系 – Camera-to-Camera(全自动棋盘格)、Velodyne-to-Camera(半自动对应点)、GPS/IMU-to-Velodyne(全自动手眼标定)。重绘自 design skill

Camera-to-Camera(全自动):车库墙壁贴棋盘格,基于梯度信息检测角点,通过最小化重投影误差联合优化内参和外参。

Velodyne-to-Camera(半自动):由于点云与图像的反射率差异大,自动方法精度不足。先用自动方法粗配准,再手动选取少量边缘对应点(点云和图像中均可识别的边),通过 Metropolis-Hastings 采样优化。

GPS/IMU-to-Velodyne(全自动):等价于经典的手眼标定(hand-eye calibration)问题。使用停车场序列中的 ICP 配准获取激光雷达帧间变换,与 GPS/IMU 的运动估计联合求解外参。随机采样 1000 对位姿。

2.3 坐标系定义

坐标系X 轴Y 轴Z 轴用途
相机坐标系里程计评估的基准坐标系
Velodyne 坐标系点云原始坐标
GPS/IMU 坐标系位姿真值来源

真值轨迹通过 GPS/IMU 获取后,投影到左侧灰度相机坐标系下进行评估。

三、数据集结构

3.1 序列划分

22 条序列分为训练集和测试集:

序列数量真值用途
00-1011 条公开开发调参
11-2111 条保密在线提交评估

总体统计:39.2 km 行驶距离,约 41,000 帧,10 fps 采集频率,包含频繁的回环场景。

3.2 数据格式

数据类型格式大小
灰度图像无损 PNG, 1241x37622 GB
彩色图像无损 PNG65 GB
Velodyne 点云二进制80 GB

3.3 真值格式

每帧一行,12 个浮点数,表示3 × 4 3 \times 43×4变换矩阵[ R ∣ t ] [\mathbf{R} | \mathbf{t}][Rt]的前三行(按行展开):

r11 r12 r13 tx r21 r22 r23 ty r31 r32 r33 tz

对应4 × 4 4 \times 44×4齐次变换矩阵T w ← c ∈ S E ( 3 ) \mathbf{T}_{w \leftarrow c} \in SE(3)TwcSE(3),将相机坐标系下的点变换到世界坐标系。

四、评估指标(核心)

4.1 为什么不用端点误差?

传统的绝对轨迹端点误差(ATE)有严重缺陷:序列前期的旋转误差会在后期被放大为巨大的平移端点误差,使得误差度量高度依赖于轨迹长度和误差发生位置,不同方法难以公平比较。

KITTI 采用 Kummerle 等人提出的相对位姿误差方法,并做了两个关键改进:

  1. 平移和旋转误差分开统计,不合并为单一指标
  2. 在不同轨迹长度和车速下分别评估,揭示方法的失败模式

4.2 误差定义

p ^ ∈ S E ( 3 ) \hat{\mathbf{p}} \in SE(3)p^SE(3)为估计位姿,p ∈ S E ( 3 ) \mathbf{p} \in SE(3)pSE(3)为真值位姿,⊖ \ominus为逆复合算子,∠ [ ⋅ ] \angle[\cdot][]为旋转角提取。

旋转误差(deg/m):

E rot ( F ) = 1 ∣ F ∣ ∑ ( i , j ) ∈ F ∠ ⁣ [ ( p ^ j ⊖ p ^ i ) ⊖ ( p j ⊖ p i ) ] E_{\text{rot}}(\mathcal{F}) = \frac{1}{|\mathcal{F}|} \sum_{(i,j) \in \mathcal{F}} \angle\!\left[(\hat{\mathbf{p}}_j \ominus \hat{\mathbf{p}}_i) \ominus (\mathbf{p}_j \ominus \mathbf{p}_i)\right]Erot(F)=F1(i,j)F[(p^jp^i)(pjpi)]

平移误差(%):

E trans ( F ) = 1 ∣ F ∣ ∑ ( i , j ) ∈ F ∥ ( p ^ j ⊖ p ^ i ) ⊖ ( p j ⊖ p i ) ∥ 2 E_{\text{trans}}(\mathcal{F}) = \frac{1}{|\mathcal{F}|} \sum_{(i,j) \in \mathcal{F}} \left\|(\hat{\mathbf{p}}_j \ominus \hat{\mathbf{p}}_i) \ominus (\mathbf{p}_j \ominus \mathbf{p}_i)\right\|_2Etrans(F)=F1(i,j)F(p^jp^i)(pjpi)2

其中F \mathcal{F}F是帧对( i , j ) (i, j)(i,j)的集合。

4.3 子序列采样策略

评估在所有可能的子序列上进行统计,子序列长度为:

L ∈ { 100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 } meters L \in \{100, 200, 300, 400, 500, 600, 700, 800\} \text{ meters}L{100,200,300,400,500,600,700,800}meters

对每个长度L LL,从轨迹中提取所有起始帧i ii使得( i , j ) (i, j)(i,j)之间的行驶距离恰好为L LL。然后:

  • 计算每个子序列的相对位姿误差
  • 平移误差归一化为距离百分比(%)
  • 旋转误差归一化为 deg/m

最终排名指标 =所有长度上平移误差的平均值

全长轨迹

提取所有 100m 子序列

提取所有 200m 子序列

...

提取所有 800m 子序列

计算每个子序列的 E_trans 和 E_rot

按长度分组平均

按车速分组平均

排名指标:所有长度的 E_trans 总平均

4.4 为什么选择 100-800m?

这个范围覆盖了自动驾驶中最关键的尺度:

  • 100m:交叉路口通过、停车场导航
  • 400m:城市街区级定位
  • 800m:长走廊/高速公路段

短于 100m 的子序列噪声太大(GPS 真值精度限制);长于 800m 的子序列数量太少,统计意义不足。

五、排行榜分析

5.1 TOP 方法(截至 2026 年)

排名方法平移 (%)旋转 (deg/m)传感器回环
1SOFT20.530.0009双目
2V-LOAM0.540.0013双目+激光
3LOAM0.550.0013激光
4TVL-SLAM+0.560.0015双目+激光
5Traj-LIO0.570.0015激光

5.2 关键观察

激光雷达方法主导排行榜:TOP 5 中 4 个使用了激光雷达。纯视觉方法(SOFT2)能排第一说明在 KITTI 的特定场景下,精心设计的双目视觉里程计可以与激光方法竞争。

回环不是必要条件:TOP 5 中的 SOFT2、TVL-SLAM+、Traj-LIO 均不使用回环检测。这说明在 KITTI 的评估尺度(100-800m 子序列)下,里程计精度比回环修正更重要。

单目方法差距明显:纯单目方法通常排在中下游,主要受限于尺度漂移问题。

5.3 提交限制

自更新后,KITTI 仅接受有重大创新且将在同行评审会议/期刊发表的方法提交。小改动和学生练习不允许提交到主排行榜。

图 3:KITTI Odometry 基准测试场景示例 – 涵盖城市、住宅区、高速公路等多种驾驶环境。来源:KITTI 官网,仅供学习

六、使用实践要点

6.1 常见错误

常见错误正确做法
在序列 00-10 上报告测试结果00-10 是训练集,应在 11-21 上评估或明确标注为训练集结果
仅报告端点 ATE应报告 KITTI 官方指标(平移 % + 旋转 deg/m)
手动标注回环禁止手动干预,必须全自动
不同序列用不同参数所有序列必须使用同一套参数

6.2 本地评估

KITTI 提供 C++/MATLAB 开发套件(devkit),核心评估逻辑:

  1. 读取预测的N × 12 N \times 12N×12位姿文件
  2. 对每个子序列长度L LL,遍历所有起始帧
  3. 计算相对位姿误差的平移和旋转分量
  4. 按长度和速度分组统计平均值

图 4:KITTI Odometry 评估指标计算流程 – 从位姿文件到最终排名分数的完整数据路径。重点关注子序列采样和分组平均策略。重绘自 design skill

小结

KITTI Odometry Benchmark 的设计哲学

  1. 相对误差优于绝对误差– 通过在固定长度子序列上计算相对位姿误差,消除了误差累积的位置依赖性,使不同方法的比较更加公平。

  2. 分离平移与旋转– 不合并为单一指标,允许研究者独立分析两种误差来源。这在实践中很重要:旋转误差影响方向判断,平移误差影响距离估计。

  3. 多尺度评估– 100-800m 的子序列长度覆盖了从局部到中尺度的定位需求,同时按车速分组的统计揭示了方法在不同运动条件下的表现。

局限性:KITTI 的场景以结构化道路为主,缺乏极端天气(雨雪雾)、夜间、高动态场景。GPS/IMU 真值在隧道和高楼峡谷中精度下降。10 fps 的帧率对于高速运动场景偏低。

个人判断:尽管 KITTI 已有 14 年历史,其评估方法论(子序列相对误差 + 多尺度统计)至今仍是最合理的里程计评估框架之一。新出的数据集(如 Hilti、4Seasons、TartanAir)在场景多样性上有所超越,但在评估方法上大多沿用了 KITTI 的核心思想。理解 KITTI 的评估指标设计是正确使用任何 VIO/SLAM 基准的前提。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询