0

我正在构建一个使用多达12台摄像机的3D跟踪系统。我明白OpenCV功能StereoCalibrate可以找到两个摄像头的相对位置和方向。我需要为12台摄像机做这个。是否有OpenCV功能或可用的源代码可以达到预期的效果?n使用opencv进行摄像机标定

我正在使用StereoCalibrate函数,并将其应用于所有摄像机组合。他们更有效率吗?

回答

1

您可能不想成对校准摄像机。至少最初最好是相对于场景中的固定参考帧相互独立地校准相机位置/姿势。在你有了这种可行的解决方案之后,如果你打算对它们进行立体声处理,你可以对它进行细化处理。

如果没有关于设置几何体的更多细节,很难给出建议(例如,相机是否都在寻找共同的主题?)。一般来说:

  • 这可能是校准内部参数的相机按相机首先是一个好主意:你可以做,通过收集校准目标的图像(例如棋盘),为每个摄像机独立于其他,但是在将它们放置到位并且光学器件锁定到最终设置后。这样你只需要解决最终摄像机网络中的外部因素。
  • 您很可能需要使用已知几何体制造的3D目标/装备来校准相对姿势。一种相当常见的类型包括一组三个以90度角彼此相交的平面环,其上具有棋盘状标记。
  • 或者,您可以使用单个平面目标,并按已知角度旋转它,例如使用转盘。
  • 您可能需要运行最终捆绑调整,并将所有参数一起优化,以便最终“拧紧”解决方案。查找谷歌的“ceres”求解器,这是一款优秀且免费的求解器。
+0

相机放置的目标是让所有相机指向一个位置并完全覆盖一个舞台。照相机的宽度和照相机的数量可以调整以实现此目标。更多信息[here](http://stackoverflow.com/questions/18493487/infrared-led-tracking-using-opencv-to-track-x-y-z-positions)。我正在使用Google的ceres解算器来校准灯具的位置,我从未考虑将它用于相机,我会更详细地研究它。 – andre

+0

是的,打包是一条路。参见例如着名的Matrix电影的“子弹头”设置。例如:http://www.videofoundry.co.nz/ianman/laboratory/research/freezeframe_swoops.php –