我正在处理其他数据集(无kitti),但需要将其转换为kitti数据集格式。我不明白如何在kitti中计算校准矩阵。示例:
来自calib.txt的摄像机2(P2)校准矩阵:
[718.856 0 607.1928 -386.1448]
[ 0 718.856 185.2157 0 ]
[ 0 0 1 0 ]
我知道
[718.856 0 607.1928]
[ 0 718.856 185.2157]
[ 0 0 1 ]
-是K-相机固有的。但是最后一列是什么意思?
我建议,这是从第0个摄像头开始的偏移,以像素为单位。 从kitti sensor setup中,我知道凸轮2从凸轮0向X轴偏移0.06m。 Camera像素大小为4.65um。但是
0.06[m] / (4.65 * 10^(-6)[m]) != 386.1448 [pixels]
那么最后一列是什么意思?以及如何像在kitti中一样计算校准矩阵。
答案 0 :(得分:2)
根据Kitti网站-http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d上提供的文件calib_cam_to_cam.txt(calib_time:09-Jan-2012 14:00:15),上述矩阵适用于 Camera 01(P_rect_01)< / strong>。正如论文《视觉遇见机器人:Andreas Geiger,Philip Lenz,Christoph Stiller和Raquel Urtasun的KITTI数据集(第IV B部分-摄像机校准),第i摄像机的投影矩阵->
其中,bx是基线,以米为单位。 Kitti网站上显示的传感器设置-http://www.cvlibs.net/datasets/kitti/setup.php表示凸轮3与凸轮2之间的基线为0.54m,凸轮0与凸轮2之间,以及凸轮1与凸轮3之间的基线为0.06m。 现在-fu * bx / fu = -386.1448 / 718.856〜= -0.537165〜= -0.54( B 3-2- B 2-0 + < strong> B P(i)rect = [[fu 0 cx -fu*bx],
[0 fv cy 0],
[0 0 1 0]]