相机投影矩阵可正确重投影,但提取的内在值不正确

时间:2019-11-07 00:46:17

标签: computer-vision camera-calibration

我想在图像空间中将3D点转换为2D点。根据hartley和zisserman的《 Multiview Geometry》一书,我们只需要6点即可使用DLT计算相机投影矩阵,而我做到了。使用矩阵,我可以准确地重新投影点。

尽管投影矩阵可以正常工作,但是从中提取的固有参数却无法正常工作,每次都偏离几毫米。

下面是我可以提取的固有参数的示例

10502.9 , -257.128 , 1831.12 

0      ,  10425.8  ,  -390.996

0      ,   0     , 1        

我的相机的传感器尺寸/像素为1.85um,因此使用固有参数计算得出的焦距约为19mm,但根据供应商的规范,其约为16mm。

我想清除一些疑问

  1. 对我的焦距的计算是否正确,为什么固有参数中的某些值是负数?

  2. 6个点真的足以创建相机模型吗?即使我的相机投影矩阵有效,为什么提取的固有参数仍然不正确。

谢谢。

1 个答案:

答案 0 :(得分:0)

您对焦距的计算是一阶近似,因为它忽略了非线性失真。同样,您的结果具有相当大的非对角线值(-257.1,即焦距的〜2.5%),这看起来很可疑。

六分仅是最低要求。通常,您需要执行校准程序,该程序会自动检测并匹配已知几何形状(例如,平面棋盘)的校准目标(也称为“钻机”)上图像中的大量点。这样做具有“最小二乘”意义上的“平均化”误差的效果。校准优化器通常还将使用增强器来(尝试)删除或减轻错误的点检测/匹配(“异常值”)。该过程适合通常包含非线性畸变项的镜头模型。

您可能需要检查this other answer,以获取有关适当过程的更多详细信息。