为ArUco进行相机校准有多重要?如果我不校准相机怎么办?如果我使用其他摄像机的校准数据怎么办?如果相机焦距发生变化,是否需要重新校准?针对消费者应用进行校准的实际方法是什么?
答案 0 :(得分:1)
在回答您的问题之前,让我介绍一些与相机校准有关的一般概念。相机是捕捉3D世界并将其投影为2D图像的传感器。这是相机执行的从3D到2D的转换。紧随OpenCV文档之后,可以很好地了解此过程的工作原理以及其中涉及的相机参数。您可以在以下document中找到详细的AruCo文档。
通常,主库使用的相机模型是针孔模型。在此模型的简化形式(不考虑径向变形)中,使用以下公式(来自OpenCV docs)表示摄像机的变换:
以下图片(来自OpenCV doc)说明了整个投影过程:
总结:
P_im = K・R・T ・P_world
位置:
现在,让我们一一解答您的问题:
为ArUco进行相机校准有多重要?
相机校准在ArUco(或任何其他AR库)中很重要,因为您需要了解相机如何将3d映射到2d世界,以便将增强对象投影到物理世界上。 / p>
如果我不校准相机怎么办?
相机校准是获取相机参数的过程:内在和外在参数。第一个通常是固定的,并且取决于相机的物理参数,除非您更改某些参数作为焦点(例如)。在这种情况下,您必须重新计算它们。否则,如果您使用具有固定焦距的相机,则只需计算一次即可。
第二个取决于相机在世界上的位置/方向。每次移动摄像机时,RT矩阵都会改变,因此您必须重新计算它们。在这里,当使用ArUco之类的库时,因为使用了标记,您可以自动获得这些值。
简而言之,如果不计算相机,您将无法在物理世界上的确切位置上投影对象(这对AR至关重要)。
如果我使用其他摄像机的校准数据怎么办?
它将不起作用,这类似于使用未经校准的相机。
如果相机对焦发生变化,是否需要重新校准?
是的,您必须重新计算固有参数,因为在这种情况下焦距会发生变化。
为消费者应用进行校准的实际方法是什么?
这取决于您的应用程序,但是通常您必须提供一些手动重新校准的方法。还有使用某些3D图案进行自动校准的方法。