我从KITTI的部分计量学访问了校准文件,其中一个校准文件的内容如下:
P0: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 0.000000000000e+00 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.861448000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 4.538225000000e+01 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 -1.130887000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.779761000000e-03
P3: 7.188560000000e+02 0.000000000000e+00 6.071928000000e+02 -3.372877000000e+02 0.000000000000e+00 7.188560000000e+02 1.852157000000e+02 2.369057000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.915215000000e-03
Tr: 4.276802385584e-04 -9.999672484946e-01 -8.084491683471e-03 -1.198459927713e-02 -7.210626507497e-03 8.081198471645e-03 -9.999413164504e-01 -5.403984729748e-02 9.999738645903e-01 4.859485810390e-04 -7.206933692422e-03 -2.921968648686e-01
我可以得到P0,P1代表单色相机,P2,P3彩色相机。据我所知,相机的常见形状是
fx 0 cx
0 fy cy
0 0 1 .
因此,我无法在每一行和标签Tr
后面的最后一行中找出其余三个参数(我猜用于失真校正)的含义。
在这个职位上也可以找到类似的问题,但对它的答案对我来说仍然不明显。有人能帮我吗?
发布于 2018-05-07 09:52:22
在这些文件中,P1
、P0
等不是摄像机的本质,而是投影矩阵,由以下内容定义
P1=calibration_matrix * [R_1 | T_1]
这意味着它们的尺寸是3*4
。我不太确定对应的定义是上面的定义,还是你必须使用的定义(嗯,这是一个等价的定义,或多或少.)
P1=calibration_matrix*[R_1.transpose() | -R_1.transpose()*T_1]
但我认为,只要读取/显示数据,就可以很容易地检查这一点。
对于Tr
,它是所有相机位置的连接。您有四个摄像头P0, ..., P3
,Tr
有12
元素,所以前三个是P0
的翻译,接下来的三个是P1
的翻译等等。我不确定的是,这些内容是用T_i
还是-R_i.transpose()*T_i
表示的。我认为最安全的方法是尝试通过使用数据来检查这个问题。
至于为什么有四个摄像头P0, ...,P3
,引用他们的纸
这里,i∈{0,1,2,3}是照相机索引,其中0表示左灰度,1表示右灰度,2表示左色,3表示右彩色相机。
我认为这也解释了为什么它们的投影矩阵彼此接近。
发布于 2020-05-08 16:54:19
这些是基线,以米为单位。参考摄像机0。
这篇文章有更多的细节:如何计算基蒂校准矩阵?
https://stackoverflow.com/questions/50210547
复制相似问题