代码之家  ›  专栏  ›  技术社区  ›  Syaiful Nizam Yahya

您需要多久为Aruco进行一次相机校准?

  •  1
  • Syaiful Nizam Yahya  · 技术社区  · 6 年前

    对Aruco进行相机校准有多重要?如果我不校准相机怎么办?如果我使用其他相机的校准数据怎么办?如果相机焦距发生变化,是否需要重新校准?为消费者应用进行校准的实际方法是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   rkachach    6 年前

    在回答您的问题之前,让我介绍一些与相机校准相关的一般概念。相机是一种传感器,它捕捉三维世界并将其投射到二维图像中。这是由相机执行的从3D到2D的转换。跟随 OpenCV DOC是一个很好的参考,可以理解这个过程是如何工作的,摄像头参数也是如此。您可以在下面找到详细的Aruco文档 document .

    一般来说,主库使用的相机模型是针孔模型。在该模型的简化形式中(不考虑径向畸变),摄像机转换使用以下方程式(来自OpenCV文档)表示:

    enter image description here

    下图(来自OpenCv文档)说明了整个投影过程:

    enter image description here

    总之:

    P_im = K・R・T ・P_world
    

    哪里:

    • 帕米姆 :图像中的二维点
    • :来自世界的三维点
    • K 是照相机吗 本征 矩阵(这取决于相机镜头参数。每次改变相机焦距,例如焦距 外汇 FY 矩阵变化的值)
    • R T 是吗? 外张力 相机的。它们分别代表相机的旋转和平移矩阵。这些基本上是表示3D世界中相机位置/方向的矩阵。

    现在,让我们逐一回答您的问题:

    对Aruco进行相机校准有多重要?

    相机校准在Aruco(或任何其他AR库)中很重要,因为您需要了解相机 地图 三维到二维世界,以便您可以在物理世界上投影增强的对象。

    如果我不校准相机怎么办?

    相机校准是获取相机参数的过程:内在参数和外在参数。第一个参数通常是固定的,并且取决于相机的物理参数,除非您更改一些参数作为焦点。在这种情况下,你必须重新计算它们。否则,如果你使用的相机焦距固定,那么你只需要计算一次。

    第二个取决于世界上的摄像机位置/方向。每次移动相机时,RT矩阵都会发生变化,必须重新计算它们。在这里,当库(如Aruco)变得方便时,因为使用标记,您可以自动获得这些值。

    简言之,如果你不计算相机,你就无法将物体投射到物理世界的精确位置上(这对AR来说是必不可少的)。

    如果我使用其他相机的校准数据怎么办?

    它不起作用,这类似于使用未校准的相机。

    如果相机焦距发生变化,是否需要重新校准?

    是的,您必须重新计算固有参数,因为在这种情况下焦距会改变。

    为消费者应用进行校准的实际方法是什么?

    这取决于您的应用程序,但一般来说,您必须提供一些手动重新校准的方法。也有使用一些3D模式自动校准的方法。