如何标定三个正交相机?

信息处理 图像处理 matlab 相机校准 matlab-cvst 正交
2022-02-20 08:21:17

我试图找出流动图片中三个相机的 内在参数(焦距、主点和镜头畸变系数)以及外在参数(每个相机相对于参考框架的旋转和平移)。在此处输入图像描述

它们以几乎正交的角度放置在12x12x12 英寸的工作空间周围。有四个步骤:

  1. 两个摄像头同时捕捉棋盘图像
  2. 使用工具箱calib_gui(matlab)分别标定两个相机,得到Calib_Results_left.mat和Calib_Results_right.mat。
  3. 将这两个结果放入 stereo_calib(matlab) 并运行 Calibration
  4. 在另一对相机上重复步骤 1~3

但是,我被困在第3步!没有发现任何对图像不一致错误以下列形式显示:

禁用视图 2 - 原因:发现左右图像不一致(尝试帮助 calib_stereo 获取更多信息)

我检查了图像的顺序,但没有发现问题。我怀疑我的应用程序不是双目校准,因为两个相机之间的交叉角对于立体相机来说太大了!

我只想找出每个相机相对于参考框架的旋转和平移。有人有什么想法吗?

2个回答

使用不对称校准板。比如 OpenCV 中新增的圆形网格。在这里检查您不需要在 gui 中查找对应关系,而是直接运行校准。此外,不要忘记使用获得的姿势的中值初始化优化问题。

要校准多视图设置,我还推荐Multi Camera Self Calibration tool它使用一个简单的激光点,并且更容易校准,尤其是当相机数量增加时。当然要注意同步。

对于成对立体校准,请尝试使用计算机视觉系统工具箱中的Stereo Camera Calibrator 应用程序。它比加州理工学院相机校准工具箱更容易使用。对于初学者,它会自动检测棋盘。