如何使用KITTI里程表数据集评估单眼视觉里程表结果

问题描述

我正在尝试使用KITTI开放数据集进行深度单眼视觉里程表 我尝试使用此repo

使用此代码将位姿转换为6DoF

def get6DoFPose(self,p):
    pos = np.array([p[3],p[7],p[11]])
    R = np.array([[p[0],p[1],p[2]],[p[4],p[5],p[6]],[p[8],p[9],p[10]]])
    angles = self.rotationMatrixToEulerAngles(R)
    return np.concatenate((pos,angles))

def isRotationMatrix(self,R):
    Rt = np.transpose(R)
    shouldBeIdentity = np.dot(Rt,R)
    I = np.identity(3,dtype=R.dtype)
    n = np.linalg.norm(I - shouldBeIdentity)
    return n < 1e-6

def rotationMatrixToEulerAngles(self,R):
    assert (self.isRotationMatrix(R))
    sy = math.sqrt(R[0,0] * R[0,0] + R[1,0] * R[1,0])
    singular = sy < 1e-6

    if not singular:
        x = math.atan2(R[2,1],R[2,2])
        y = math.atan2(-R[2,0],sy)
        z = math.atan2(R[1,R[0,0])
    else:
        x = math.atan2(-R[1,2],R[1,1])
        y = math.atan2(-R[2,sy)
        z = 0
    return np.array([x,y,z],dtype=np.float32)

模型输出的格式也相同(6DoF)

问题是如何评估6DoF结果,因为此评估工具(kitti-odom-eval)仅支持以下两种格式

# First format: skipping frames are allowed
99 T00 T01 T02 T03 T10 T11 T12 T13 T20 T21 T22 T23 

# Second format: all poses should be included in the file
T00 T01 T02 T03 T10 T11 T12 T13 T20 T21 T22 T23 

解决方法

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

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

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

相关问答

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