2013-03-14 103 views
2

我需要找到一个单一的固有校准参数。要做到这一点,我从不同角度拍几张棋盘图案图像,然后使用校准软件。用玻璃覆盖的棋盘校准摄像机

为了使校准图案尽可能平坦,我将它打印在纸上并用3mm玻璃盖住。显然,图案的图像被玻璃修改,因为它与空气相比具有不同的折射系数。

外在参数将被玻璃扭曲。这是因为棋盘格不在我们看到的位置。但是,如果玻璃的厚度和玻璃和空气的折射系数已知,似乎可以恢复外部参数。

所以,问题是:

  • 可以外部参数来计算,如果是,那么如何? (现在这不是必要的,只是一个有趣的理论问题)
  • 从这些图像获得的固有校准参数是否与通常的校准程序(无盖玻片)相同?

通过使用玻璃,GML Camera Calibration Toolbox(基于OpenCV)报告的校准参数变得更加准确。 (它有什么意义呢?)但是这种方法有一点缺点 - 特别是来自光源的不需要的反射。

+0

看着GML项目网页,我看到一个结果,表明他们在图像中使用2个模式,在1个模式中获得更高的准确性。它表明使用玻璃盖时,结果更好? – 2013-03-14 21:06:43

+0

不建议这样做,但我用玻璃获得的结果给出了较小的再投影误差和较小的估计参数不确定性。 – user502144 2013-03-14 21:15:13

+0

我其实有这样的代码,如果你仍然感兴趣,我可以发布它,我有足够的时间嘿嘿。 – 2013-05-02 06:45:20

回答

2

我推荐你选择一个非常平坦的支持(这是我推荐自己的here)。但是,请原谅我问一个明显的问题,为什么你用玻璃盖住了这个图案?

由于练习的目的是确保目标的平面性,而不是其他任何东西,所以您可能需要粘贴与纸张图案相反的一面,并避免所有这些麻烦。是的,该模式将会变脏并且磨损,需要更换。所以你只需将它刮掉并更换即可:打印棋盘便宜。

如果无论出于何种原因,您都被玻璃挡在前面,我建议首先进行由玻璃折射引起的预期射线偏转的回波计算,并检查它是否实际上您的设备可以衡量。假设您正在使用的镜头的标称焦距(mm)以及传感器的物理宽度和像素密度,假设目标的焦点轴的“极端”旋转角度与焦点轴线成一个“极端”角度(比如45度)和标称距离。首先,您可以将图案建模为“涂在”玻璃上,因此忽略第一次折射并仅考虑玻璃与空气的折射。

如果上述计算表明效果是可测量的(偏差> = 1像素),则需要将玻璃添加到场景模型中,并在束调整阶段解决其参数问题,以及内在和外在因素。首先,我会使用两个参数,厚度和折射系数,并假设两个面都是平面和平行的。它只会使成本函数中角落投影的计算稍微复杂一些,因为您必须考虑射线偏转。 鉴于成本函数的额外复杂性,我肯定会写出模型的代码来使用Automatic Differentiation(AD)。

如果你真的想要通过这个练习,我建议在支持AD的Google Ceres捆绑调整器之上编写求解器,在众多好东西当中。

+0

用玻璃覆盖的原因是它是确保图案完美平坦的最简单方法。但是玻璃似乎会产生非线性变形,使图案上的直线变得不直。尽管这种效应即使在大角度下也几乎不可见,但会影响校准。所以,不幸的是,它不起作用。粘合图案仍然是最好的方法。 – user502144 2013-03-16 10:49:40

+0

是的,我建议将目标的背面粘贴到玻璃板上:平面度问题已解决。 – 2013-03-19 13:52:51