位置: IT常识 - 正文

轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI](轨迹评价)

编辑:rootadmin
轨迹误差评估指标 轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI]1. ATE/APE2. RPE3. SLAM 轨迹保存格式3.1 TUM3.2 KITTI4. EVO4.1 评估指标4.2 使用4.2.1 轨迹可视化4.2.2 APE4.2.3 RPE4.3 其他常用命令4.3.1 evo_traj4.4 其他参数

推荐整理分享轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI](轨迹评价),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:轨迹评价,轨迹测量,轨迹误差评估指标有哪些,轨迹分析报告,轨迹测量,轨迹误差评估指什么,轨迹误差评估指什么,轨迹误差评估指标有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

Reference:

高翔,张涛 《视觉SLAM十四讲》视觉SLAM基础:算法精度评价指标(ATE、RPE)

在实际工程中,我们经常需要评估一个算法的估计轨迹与真实轨迹的差异来评价算法的精度。真实轨迹往往通过某些更高精度的系统获得,而估计轨迹则是由待评价的算法计算得到的。考虑一条估计轨迹 Testi,iT_{esti,i}Testi,i​ 和真实轨迹 Tgt,iT_{gt,i}Tgt,i​,其中 i=1,⋅⋅⋅,Ni=1,\cdot\cdot\cdot,Ni=1,⋅⋅⋅,N,那么我们可以定义一些误差指标来描述它们之间的差别。

1. ATE/APE

《视觉SLAM十四讲》上的命名感觉跟 EVO 稍微有一点点区别,比如绝对轨迹误差(Absolute Trajectory Error, ATE): ATEall=1N∑i=1N∥log⁡(Tgt,i−1Testi ,i)∨∥22,\mathrm{ATE}_{\mathrm{all}}=\sqrt{\frac{1}{N} \sum_{i=1}^N\left\|\log \left(T_{\mathrm{gt}, i}^{-1} T_{\text {esti }, i}\right)^{\vee}\right\|_2^2},ATEall​=N1​i=1∑N​​log(Tgt,i−1​Testi ,i​)∨​22​​,这玩意儿应该就是 EVO 中的 绝对位姿误差(Absolute Pose Error, APE),后面这个概念统称 APE。

这个公式实际上是每个位姿李代数的均方根误差(Root-Mean-Squared Error, RMSE)。这种误差可以刻画两条轨迹的旋转和平移误差。同时,也有的地方仅考虑平移误差,从而可以定义绝对平移误差(Absolute Translational Error, ATE): ATEtrans =1N∑i=1N∥trans⁡(Tgt,i−1Test ,i)∥22\mathrm{ATE}_{\text {trans }}=\sqrt{\frac{1}{N} \sum_{i=1}^N\left\|\operatorname{trans}\left(\boldsymbol{T}_{\mathrm{gt}, i}^{-1} \boldsymbol{T}_{\text {est }, i}\right)\right\|_2^2}ATEtrans ​=N1​i=1∑N​​trans(Tgt,i−1​Test ,i​)​22​​其中 trans 表示取括号内部变量的平移部分。因为从整条轨迹上看,旋转出现误差后,随后的轨迹在瓶以上也会出现误差,所以两种指标在实际中都适用。

2. RPE

RPE 定义的是相对的误差。例如,考虑 iii 时刻到 i+Δti+\Delta ti+Δt 时刻的运动,那么相对位姿误差(Relative Pose Error, RPE)可定义为: RPEall =1N−Δt∑i=1N−Δt∥log⁡((Tgt,i−1Tgt,i+Δt))−1(Testi ,i−1Testi ,i+Δt))∨∥22,\mathrm{RPE}_{\text {all }}=\sqrt{\left.\frac{1}{N-\Delta t} \sum_{i=1}^{N-\Delta t} \| \log \left(\left(T_{\mathrm{gt}, i}^{-1} T_{\mathrm{gt}, i+\Delta t}\right)\right)^{-1}\left(T_{\text {esti }, i}^{-1} T_{\text {esti }, i+\Delta t}\right)\right)^{\vee} \|_2^2,}RPEall ​=N−Δt1​i=1∑N−Δt​∥log((Tgt,i−1​Tgt,i+Δt​))−1(Testi ,i−1​Testi ,i+Δt​))∨∥22​,​同样地,也可只取平移部分: RPEtrans =1N−Δt∑i=1N−Δt∥trans⁡((Tgt,i−1Tgt,i+Δt))−1(Testi ,i−1Testi ,i+Δt))∥22\mathrm{RPE}_{\text {trans }}=\sqrt{\left.\frac{1}{N-\Delta t} \sum_{i=1}^{N-\Delta t} \| \operatorname{trans}\left(\left(\boldsymbol{T}_{\mathrm{gt}, i}^{-1} \boldsymbol{T}_{\mathrm{gt}, i+\Delta t}\right)\right)^{-1}\left(T_{\text {esti }, i}^{-1} T_{\text {esti }, i+\Delta t}\right)\right) \|_2^2}RPEtrans ​=N−Δt1​i=1∑N−Δt​∥trans((Tgt,i−1​Tgt,i+Δt​))−1(Testi ,i−1​Testi ,i+Δt​))∥22​​

3. SLAM 轨迹保存格式3.1 TUM

TUM 数据集格式:timestamp tx ty tz qx qy qz qw

3.2 KITTI

KITTI 数据集格式:一行 121212 个数据,表示 Pose(R+t),可能还有另一个文件存放 timestamp

4. EVO

使用示例如下:

evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyzevo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz

evo_ape 的默认形式是 -r trans_part,即计算的是这里的 ATE,想要计算 APE,可以使用 -r full。

-r 用法:

-r full:表示同时考虑旋转和平移误差得到的ape,无单位(unit-less);-r trans_part:表示考虑平移部分得到的ape,单位为m;-r rot_part:表示考虑旋转部分得到的ape,无单位(unit-less);-r angle_deg:表示考虑旋转角得到的ape,单位°(deg);-r angle_rad:表示考虑旋转角得到的ape,单位弧度(rad);4.1 评估指标max:表示最大误差;mean:平均误差;median:误差中位数;min:最小误差;rmse:均方根误差;sse:和方差、误差平方和;std:标准差4.2 使用

可以先使用 EVO 仓库中自带的数据尝试

4.2.1 轨迹可视化cd test/dataevo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI](轨迹评价)

其中:

–ref=ground_truth.txt:指明参考轨迹即真实轨迹;–plot或-p:表示画图;–plot_mode xy:表示图像投影在xoy平面上,其余可选参数为:xz,yx,yz,zx,zy,xyz。4.2.2 APE

evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va --plot --plot_mode xz --save_plot ./tra1plot --save_results ./tra1.zip

其中:

-v或–verbose:指明输出文件数据的相关信息;-a或–align:指明对轨迹进行配准;–save_plot ./tra1plot:表示保存生成的图片,./tra1plot 这里写自己保存的地址;–save_results ./tra1.zip:表示保存计算结果,./tra1.zip 这里写自己保存的地址。4.2.3 RPE

evo_rpe tum fr2_desk_groundtruth.txt fr2_desk_ORB.txt -va --plot --plot_mode xyz

4.3 其他常用命令

evo_traj - 用于分析,绘制或导出一个或多个轨迹的工具 evo_res - 用于比较evo_ape或evo_rpe一个或多个结果文件的evo_rpe evo_fig - 用于重新打开序列化图的(实验性)工具(使用–serialize_plot保存) evo_config - 全局设置和配置文件操作的工具

4.3.1 evo_traj

evo_traj 主要是用来画轨迹、输出轨迹文件、转换数据格式等功能。

绘制单个轨迹:

evo_traj euroc ground_truth.csv --plot

绘制多个轨迹:

evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

轨迹尺度缩放 单目相机会存在尺度的不确定性,evo_traj 支持使用 -s或–correct_scale 参数进行Sim(3)上的对齐(旋转、平移与尺度缩放,能非常方便的用于 RTK/GNSS 对轮齿脉冲的标定)

格式转换 如将 EuRoC 转成 TUM 格式,输出为 data.tum:

evo_traj euroc data.csv --save_as_tum

4.4 其他参数–n_to_align n:对齐第一个轨迹前n个姿态。
本文链接地址:https://www.jiuchutong.com/zhishi/290847.html 转载请保留说明!

上一篇:【今日元宵节】祝大家平安健康,团团圆圆! (© Sino Images/Getty Images)(今日元宵节图片)

下一篇:html简洁风格的个人博客网站模板(源码)(html简单例子)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络