【问题标题】:Circular Motion of calibrated camera with given degree给定度数的校准相机圆周运动
【发布时间】:2013-02-11 02:31:21
【问题描述】:

根据这个项目 (carving a dinosaur),我想创建一个数据集,其中包含从一个对象拍摄的 36 张图像,并估计适当的相机投影矩阵。

因此,我为具有三个棋盘图案的第一张图像校准了一次相机(外在/内在),现在我想根据我拍摄的 36 张图像添加圆周运动(大约 10 度)以获得类似于此处所示的效果:

我的相机是静止的,而拍摄对象每张图像都旋转了 10 度。

我如何实现这一目标?手动创建旋转矩阵并将其添加到我的相机投影矩阵中是否正确?

感谢您的建议

【问题讨论】:

    标签: camera computer-vision camera-calibration calibration


    【解决方案1】:

    修改旋转矩阵是不够的,你需要改变相机的位置。在运动问题的结构中,假设场景是静态的,而相机是移动的。您可以考虑这种情况,因为只有关系移动很重要。

    设外在相机矩阵为 A = R[I | -C],其中 C 是全局坐标系中相机中心的位置,R 是从全局坐标系到相机坐标系的旋转。设 Ra 表示在全局框架中绕垂直轴旋转角度 alpha。它可以写成 (cos(alpha),-sin(alpha),0;sin(alpha),cos(alpha),0;0,0,1)。然后所需的相机矩阵可以计算为 A2 = R2[I | -C2],其中 R2 = R * transpose(Ra) 和 C2 = Ra * C。

    但是,在使用这种方法时,您应该确保两件事。首先,全局框架的垂直轴必须对应于现实世界的垂直方向。其次,全局框架的原点必须位于相机中心旋转的轴上。后者可以通过将对象置于全局框架的原点来实现。

    如果角度测量不准确或全局框架没有很好地居中,则计算的外在矩阵也可能不准确。在这种情况下,它可以用作运动算法对结构的初始估计。另一种选择是为每一帧校准相机,而不仅仅是第一帧。

    【讨论】:

    • 谢谢。出于稳定性考虑,我已经考虑过为每一帧校准相机。你知道有什么工具可以做到这一点吗? GML 工具箱似乎会为每一帧使用一个旋转棋盘图案产生非常不稳定的结果。
    • 您使用的是最新版本的 GML Toolbox,不是吗?我使用这个工具箱进行内在相机校准,结果非常好。您也可以尝试 MRPT camera-calib 或 Camera Calibration Toolbox for Matlab。
    • 我可以建议使用从不同点拍摄的棋盘图像以及旋转棋盘的图像。结果可能会更好,因为在仅使用旋转棋盘的图像时可能没有足够的信息来恢复内在参数。
    • 正确。我也在考虑这个问题,现在它产生了更好的结果。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-10-21
    • 2017-01-09
    • 2011-01-30
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    相关资源
    最近更新 更多