问题描述
我正在尝试使用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 (将#修改为@)