具有给定度数的校准相机的圆周运动

时间:2013-02-25 20:11:27

标签: camera computer-vision camera-calibration calibration

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

因此我用三个棋盘图案校准了我的相机一次(外在/内在)第一张图像,现在我想根据我拍摄的36幅图像添加圆周运动(粗糙10度)以获得这里显示的内容:

camera poses

我的相机是静态的,而拍摄的物体每张图像旋转10度。

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

感谢您的建议

1 个答案:

答案 0 :(得分:2)

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

让外在相机矩阵为A = R [I | -C],其中C是全局帧中摄像机中心的位置,R是从全局帧到摄像机帧的旋转。设Ra表示全局框架中关于垂直轴的角度α的旋转。它可以写成(cos(alpha), - sin(alpha),0; sin(alpha),cos(alpha),0; 0,0,1)。然后可以将所需的相机矩阵计算为A2 = R2 [I | -C 2],其中R 2 = R *转置(Ra)且C2 = Ra * C.

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

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