![]() |
1
1
在回答您的问题之前,让我介绍一些与相机校准相关的一般概念。相机是一种传感器,它捕捉三维世界并将其投射到二维图像中。这是由相机执行的从3D到2D的转换。跟随 OpenCV DOC是一个很好的参考,可以理解这个过程是如何工作的,摄像头参数也是如此。您可以在下面找到详细的Aruco文档 document . 一般来说,主库使用的相机模型是针孔模型。在该模型的简化形式中(不考虑径向畸变),摄像机转换使用以下方程式(来自OpenCV文档)表示:
下图(来自OpenCv文档)说明了整个投影过程:
总之:
哪里:
现在,让我们逐一回答您的问题:
相机校准在Aruco(或任何其他AR库)中很重要,因为您需要了解相机 地图 三维到二维世界,以便您可以在物理世界上投影增强的对象。
相机校准是获取相机参数的过程:内在参数和外在参数。第一个参数通常是固定的,并且取决于相机的物理参数,除非您更改一些参数作为焦点。在这种情况下,你必须重新计算它们。否则,如果你使用的相机焦距固定,那么你只需要计算一次。 第二个取决于世界上的摄像机位置/方向。每次移动相机时,RT矩阵都会发生变化,必须重新计算它们。在这里,当库(如Aruco)变得方便时,因为使用标记,您可以自动获得这些值。 简言之,如果你不计算相机,你就无法将物体投射到物理世界的精确位置上(这对AR来说是必不可少的)。
它不起作用,这类似于使用未校准的相机。
是的,您必须重新计算固有参数,因为在这种情况下焦距会改变。 为消费者应用进行校准的实际方法是什么? 这取决于您的应用程序,但一般来说,您必须提供一些手动重新校准的方法。也有使用一些3D模式自动校准的方法。 |