直接基于旋转R和平移T的立体校准,而不是使用点对应

问题描述 投票:0回答:1

知道两个摄像机在世界坐标(相对于某些已知点)的旋转和平移,我将如何校准我的立体声系统?

在OpenCV中,通常的方法是在两个摄像头前使用校准模式来获得点对应关系。这些点用于stereoCalibrate,它计算旋转矩阵R和平移向量T(和基本矩阵F)。在下一步中,可以使用stereoRectify对两个相机的行对齐图像进行立体校正。 stereoRectify需要RT来计算图像透视变换的单应性,并计算用于将视差转换为深度的Q矩阵。

给出RT在世界坐标系中的情况已经知道(已知是围绕z轴旋转(地板上的天花板或偏航角)和围绕垂直于摄像机视图的轴旋转(俯仰角) ),哪个坐标系应该给stereoRectify?我的意思是有Camera1,Camera2和(或一个)世界坐标系的坐标系。

基本矩阵E的计算可以用R * S来完成,其中ST的斜对称矩阵和F的基本矩阵M_r.inv().t() * E * M_l.inv(),来自Kaehler和Bradski的LearningOpenCV 3(M_r和M_l是左右相机的相机内在函数)分别)。这里关于RT的问题是一样的。是世界坐标中从一个摄像机到另一个摄像机的旋转,例如在一台摄像机的坐标系中?

所涉及的坐标系的草图可以在这里找到:How is the camera coordinate system in OpenCV oriented?,但是我仍然不清楚如何计算RT

opencv camera-calibration coordinate-systems coordinate-transformation stereoscopy
1个回答
1
投票

问题不是很清楚,但......

IIUC你知道两个相机的外在参数,他们的相对姿势,但不是内在的。因此,您仍需要校准相机的内在函数。

了解摄像机的相对姿态只允许您独立校准两个摄像机的内在函数。这是否是您的程序的简化取决于您的特定设置。

请注意,除非您从单独的基于图像的过程推断出您拥有的外在函数,否则您应该很难信任它们的值 - 特别是如果它们是由您的装备的某种CAD模型派生的。原因在于,除非您的相机具有相当低的分辨率,否则像素级精度可能比您的钻机的制造公差要小得多。

© www.soinside.com 2019 - 2024. All rights reserved.