Hello! Thanks for creating this amazing repo along with the videos on Youtube for beginners of KITTI odometry datasets. Here I got a question about the projection matrix in calib.txt.
P1 = np.array(calib.loc['P1:']).reshape(3,4)
k1, r1, t1, _, _, _, _ = cv2.decomposeProjectionMatrix(P1)
t1 /= t1[3]
>>> print(k1)
[[718.856 0. 607.1928]
[ 0. 718.856 185.2157]
[ 0. 0. 1. ]]
>>> print(r1)
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
>>> print(t1)
[[ 5.37165719e-001]
[ 1.40649083e-017]
[-4.94065646e-324]
[ 1.00000000e+000]]
Rt = np.hstack([r1, t1[:3]])
P = k1 @ Rt
>>>print(P.round(3))
[[718.856 0. 607.193 386.145]
[ 0. 718.856 185.216 0. ]
[ 0. 0. 1. -0. ]]
>>>print(P1.round(3))
[[ 718.856 0. 607.193 -386.145]
[ 0. 718.856 185.216 0. ]
[ 0. 0. 1. 0. ]]
Thank you so much for your help.