6

我知道棋盘相机校准技术,并且已经实现了它。

如果我有 2 个摄像机查看同一个场景,并且我用棋盘技术同时校准了两个摄像机,我可以计算它们之间的旋转矩阵和平移向量吗?如何?

4

4 回答 4

3

如果你有对应点的3D相机坐标,你可以通过刚体变换计算出最优的旋转矩阵和平移向量

于 2012-04-29T10:57:52.803 回答
2

如果您已经在使用 OpenCV,那么为什么不使用cv::stereoCalibrate.

它返回旋转和平移矩阵。您唯一需要做的就是确保两个相机都能看到校准棋盘。

确切的方法显示在 OpenCV 库提供的 .cpp 示例中(我有 2.2 版本,并且示例默认安装在 /usr/local/share/opencv/samples 中)。

该代码示例名为 stereo_calib.cpp。尽管没有清楚地解释他们在那里做什么(为此,您可能想查看“学习 OpenCV”),但您可以以此为基础。

于 2011-04-19T11:28:31.853 回答
1

如果我理解正确的话,你有两个校准过的相机观察一个共同的场景,你希望恢复它们的空间排列。这是可能的(只要您找到足够的图像对应),但只能达到平移比例的未知因素。也就是说,我们可以恢复旋转(3 个自由度,DOF)和只有平移的方向(2 个 DOF)。这是因为我们无法分辨投影的场景是大摄像机远,还是场景小摄像机近。在文献中,5 DOF 排列被称为相对姿势相对方向(谷歌是你的朋友)。如果您的测量准确且处于大致位置,则 6 点对应可能足以恢复唯一解。一个相对较新的算法正是这样做的。

Nister, D.,“五点相对位姿问题的有效解决方案”,模式分析和机器智能,IEEE Transactions on,第 26 卷,第 6 期,第 756,770 页,2004 年 6 月 doi: 10.1109/TPAMI.2004.17

于 2011-04-07T12:57:16.760 回答
0

更新:

使用Bundler等运动/捆绑调整包中的结构同时求解场景的 3D 位置和相关相机参数。

任何这样的包都需要几个输入:

  1. 您拥有的相机校准。
  2. 相机中兴趣点的 2D 像素位置(使用像 Harris、DoG(SIFT 的第一部分)这样的兴趣点检测)。
  3. 每个摄像机的兴趣点之间的对应关系(使用 SIFT、SURF、SSD 等描述符进行匹配)。

请注意,该解决方案具有一定程度的模糊性。因此,您需要在摄像机之间或场景中的一对对象之间提供距离测量。

原始答案(主要适用于未校准的相机,因为评论请指出):

加州理工学院的这个相机校准工具箱包含解决和可视化内在因素(镜头参数等)和外在因素(拍摄每张照片时相机如何定位)的能力。后者是你感兴趣的。

Hartley and Zisserman 蓝皮书也是一个很好的参考。特别是,您可能想查看关于极线和基本矩阵的章节,该章节在链接上免费在线。

于 2011-04-07T12:41:29.510 回答