我正在尝试从 MATLAB 中的一组未校准照片进行 3D 重建。我使用 SIFT 来检测图像之间的特征点和匹配。我想先进行投影重建,然后使用自动校准将其更新为公制。
我知道如何通过计算基本矩阵、相机矩阵和三角测量来估计 2 张图像的 3D 点。现在假设我有 3 个图像,a、b 和 c。我计算图像 a 和 b 的相机矩阵和 3D 点。现在我想通过添加图像 c 来更新结构。我通过使用与图像 c 中的 2D 点匹配的已知 3D 点(从 a 和 b 计算)来估计相机矩阵,因为:
但是,当我重建 b 和 c 之间的 3D 点时,它们不会与来自 a 和 b 的现有 3D 点相加。我假设这是因为我不知道点的正确深度估计(在上面的公式中用s描述)。
使用Sturm 和 Triggs 的分解方法,我可以估计深度并找到结构和运动。但是,为了做到这一点,所有点都必须在所有视图中可见,而我的图像并非如此。如何估计在所有视图中不可见的点的深度?