Kitti立体姿势在世界坐标系中

问题描述

我目前正在试验 Kitti 立体数据集 (http://www.cvlibs.net/datasets/kitti/eval_odometry.php),目标是找到一个正确的矩阵,将像素投影到世界坐标系中的点。 问题是我不确定 Kitti 数据集中使用哪个坐标系。自述文件说:

每个文件 xx.txt 包含一个 N x 12 的表,其中 N 是 这个序列的帧。第 i 行代表左相机的第 i 个姿势 通过 3x4 变换的坐标系(即 z 指向前方) 矩阵。矩阵以行对齐的顺序存储(第一个条目 对应于第一行),并在第 i 个坐标中取一个点 系统并将其投影到第一个(= 0th)坐标系中。因此,该 平移部分(第 4 列的 3x1 向量)对应于 第 i 帧中相对于第一帧的左相机坐标系 (=第 0)帧。

据我所知,这个矩阵代表一个世界到相机映射,因此我应该取它的逆来从相机 c.s. 投影。到世界 c.s.?

一个问题是我需要世界坐标系的方向不同:-z 指向前方,y 指向上方。

我的代码的当前版本如下所示:

            M = np.reshape(M,(3,4))
            #convert local to global c.s. (?)
            Rc = M[...,:-1]
            tc = M[...,-1]
            R,t = Rc.T,-Rc.T.dot(tc.reshape(-1   ))
            M[...,:-1] = Rc
            M[...,-1] = tc
            #convert to CG c.s.
            
            M[0,1] *= -1.0
            M[1,0] *= -1.0
            M[0,2] *= -1.0
            M[2,0] *= -1.0

            M[1,3]  *= -1
            M[2,3] *= -1```


However,when I reproject pixels between consecutive left frames,the resulting pixels end up far beyond image boundaries.

The functions I use for reprojection work correctly,if the coordinates are given in world coordinate system.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...