我正在尝试从同一相机拍摄的两张图像中重建 3D 点的真实坐标。相机未校准,但运动(平移和旋转)是已知的。简而言之:
要求:
- 无需校准
除了图像点对应之外的额外约束:
- 已知的相机平移和旋转
- 在所有视图中使用相同的相机
我知道,仅从图像点对应关系来看,一个场景只能被重建到一个投影变换。通过更多的约束,可以进行仿射或相似性重建。就我而言,我需要进行相似性重建。
鉴于上述限制,相似性重建是否可能?如果可能的话,我应该怎么做?
我试图从几个角度来解决这个问题。由于我数学不流利,所以我尽量使用opencv。
findFundamentalMat()
从这两个图像中,希望以某种方式提取两个相机矩阵,然后triangulatePoints()
。你可能已经猜到了,我被困在了中间,无法从基本矩阵中获取相机矩阵。教科书“计算机视觉中的多视图几何”(Hartley 和 Zisserman 着)给出了一个表达式(第 256 页,结果 9.14),它根据基本矩阵和极点之一来表达相机矩阵。但是,在不知道相机的内在参数(要求:无需校准)的情况下,我不知道如何获得对极。
我还尝试将我的问题视为立体声系统并使用 opencv 的
stereo***
功能。但是它们似乎都需要人工干预来校准,这违反了我的要求。
所以,这就是我今天在这里提出这个问题的原因。关键仍然是,考虑到这些额外的限制,相似性重建是否可能?我不够聪明,无法理解那里的丰富知识,也无法提出自己的解决方案。任何帮助表示赞赏。