2014-07-07 9 views
2

我正在使用matlab制作简单的图像拼接脚本。我现在有了一些代码,它们按照有序的图像序列(I0 I1 I2 I3 ...)。对于每幅图像,我提取SIFT描述符并在每个图像对之间进行匹配。 (找到I0-I1和I1-I2 ...之间的匹配项)。我使用ransac来找出内点并在每对之间进行适合的Homography。 (H01 => I0-I1)。然后我将图像拼接在一起,I0与I1然后(I0I1)到I2等。 (我猜测基本全景)。图像拼接的束调整

但是,现在我想尝试执行束调整以纠正整个图像中的投影错误。我已经阅读了关于Szeliski计算机视觉书中的束调整的一些内容(但是我发现它更多地涉及3D重建中的BA,我不知道如何在2D图像拼接中使用它)。然后我也看了this paper

我不确定从哪里开始,论文使用的是更复杂的拼接,关于相机模型的所有讨论都有点令人困惑,因为我无法将这些讨论与我的简单应用程序相关联。有人可以帮助我开始使用吗?或者指向一些更适合在简单全景制作中应用光束调整的材料?我需要做的伪代码也是有帮助的。

+0

构建arbirary(即使排序)图像的照片并不简单。如果你不理解布朗论文中的相机模型,你应该使用现有的工具。另外,对于联合单应性估计,您不需要进行束调整,只需使用像Levenberg-Marquardt这样的非线性优化。 – DrPepperJo

+0

感谢您的回复。当我用RANSAC找到一组一致的内点时,我用它们来拟合每个图像对(I1-I2,I2-I3)之间的单应性,我通过Levenberg-Marquardt解决了非线性最小二乘问题。这是你使用非线性优化而不是捆绑调整的意思,还是我需要查看优化问题中的所有单应性? – krunarsson

+0

实际上,忘记我对联合单应性估计所说的话。你当然需要全局参数来共同优化。无论哪种方式,捆绑调整解决了需要视差(翻译)的问题(三维重建和相机估计),这是您想要在parnoramas中避免的问题。所以我建议你解决共享相机(焦距)和旋转。 – DrPepperJo

回答

2

我想你已经尝试了前两步,现在第三步是通过捆绑器进行改进。我强烈建议您阅读Hartley Zisserman的书籍“多视图几何”,附录6.提供清晰的伪代码,用于基于LM的最小平方估计以提高误差。

现在为您的问题,您正在尝试改进单应性以获得更好的匹配。所以你的错误是一个光度误差,类似于x1'Hx2。这个案例也在附录中提供。