【问题标题】:n camera calibration using opencvn 使用opencv进行相机标定
【发布时间】:2013-09-01 18:18:50
【问题描述】:
我正在构建一个最多使用 12 个摄像头的 3D 跟踪系统。我了解OpenCV函数StereoCalibrate可以找到两个摄像头的相对位置和方向。我需要为 12 台摄像机执行此操作。有没有可以达到预期效果的OpenCV函数或可用的源代码?
我正在使用StereoCalibrate 函数并将其简单地应用于所有成对摄像机的组合。他们是更有效的方法吗?
【问题讨论】:
标签:
algorithm
opencv
image-processing
tracking
camera-calibration
【解决方案1】:
您可能不想成对校准相机。至少在最初,最好相互独立地校准相机位置/姿势,所有这些都相对于场景中的固定参考框架。在你有了这种可行的解决方案后,如果你打算对它们进行立体声,你可以针对特定的对进行改进。
如果没有关于设置几何结构的更多详细信息(例如,相机是否都在看一个共同的主题?),很难给你建议。一般来说:
- 首先逐个校准相机的内在参数可能是个好主意:您可以通过独立于其他相机收集校准目标(例如棋盘)的图像来做到这一点,但在您拥有它们之后到位并且光学器件锁定到它们的最终设置。这样,您只需解决最终相机网络中的外在因素。
- 您很可能需要使用已知几何形状制造的 3D 目标/装备来校准相对姿势。一种相当常见的类型由一组三个以 90 度角相交的平面环组成,上面有棋盘状的标记。
- 或者,您可以使用单个平面目标,并将其旋转已知角度,例如使用转盘。
- 您可能需要运行最终的捆绑调整,同时优化所有参数以最终“收紧”解决方案。查找 Google 的“ceres”求解器,寻找一款出色且免费的求解器。
【讨论】:
-
摄像机放置的目的是让所有摄像机都指向一个位置并完全覆盖舞台。可以调整相机宽度和相机数量以实现此目标。更多信息here。我正在使用谷歌的 ceres 求解器来校准灯具的位置,我从未考虑将它用于相机,我会更详细地研究它。
-