校准相机与玻璃覆盖的棋盘

时间:2013-03-14 20:36:29

标签: computer-vision camera-calibration

我需要找到单个的内在校准参数。为此,我从不同角度拍摄了几张棋盘图案,然后使用校准软件。

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

外在参数会被玻璃扭曲。这是因为我们看到它没有放置棋盘格。但是,如果知道玻璃的厚度和玻璃和空气的折射系数,似乎可以恢复外在参数。

所以,问题是:

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

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

1 个答案:

答案 0 :(得分:2)

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

由于练习的目的是确保目标的平面度而不是其他任何东西,你不妨粘贴与纸张图案相对的一面,避免所有这些麻烦。是的,随着时间的推移,图案会变脏并磨损,需要更换。所以你只需将它刮掉并更换它:印刷棋盘很便宜。

如果由于某种原因,你被困在前面的玻璃上,我建议先做一个由玻璃折射引起的预期光线偏转的背面计算,并检查它是否真的可以测量通过你的设备。假设您正在使用的镜头的标称焦距(mm)以及传感器的物理宽度和像素密度,您可以轻松地在图像中心处理它,假设目标的旋转角度为“极端”。 (比方说,45度)和标称距离。对于第一个近似,您可以将图案建模为玻璃上的“涂漆”,因此忽略第一次折射并仅考虑玻璃对空气。

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

如果你真的想要完成这个练习,我建议在Google Ceres捆绑调整器之上编写求解器,它支持AD,这是很多好事。