Matlab 图像拼接的束调整

Matlab 图像拼接的束调整,matlab,computer-vision,image-stitching,Matlab,Computer Vision,Image Stitching,我正在使用matlab制作简单的图像拼接脚本。我现在有了按顺序排列的图像序列(i0i1i2i3…)的代码。对于每个图像,我提取SIFT描述符并在每个图像对之间进行匹配。(查找I0-I1之间的匹配,然后查找I1-I2…)。我使用ransac计算内联线,并在每一对之间拟合单应性。(H01=>I0-I1)。然后我将图像缝合在一起,I0与I1,然后(I0I1)与I2,依此类推。(我猜是基本的全景制作) 但是,现在我想尝试实现束调整来校正整个图像中的投影误差。我在Szeliski计算机视觉书中读过一些关于

我正在使用matlab制作简单的图像拼接脚本。我现在有了按顺序排列的图像序列(i0i1i2i3…)的代码。对于每个图像,我提取SIFT描述符并在每个图像对之间进行匹配。(查找I0-I1之间的匹配,然后查找I1-I2…)。我使用ransac计算内联线,并在每一对之间拟合单应性。(H01=>I0-I1)。然后我将图像缝合在一起,I0与I1,然后(I0I1)与I2,依此类推。(我猜是基本的全景制作)

但是,现在我想尝试实现束调整来校正整个图像中的投影误差。我在Szeliski计算机视觉书中读过一些关于束调整的内容(但我发现它更多的是关于3D重建中的BA,我不知道如何在2D图像拼接中使用它)。然后我也看了


我不知道从哪里开始,论文使用了更复杂的缝合,所有关于相机模型的讨论都有点混乱,因为我无法将这些讨论与我的简单应用程序联系起来。有人能帮我开始吗?或者告诉我一些更合适的材料,在简单的全景图制作中应用束调整?我需要做的伪代码也会有帮助

我认为您已经尝试了前两个步骤,现在第三个步骤是通过bundler进行细化。我强烈建议您阅读Hartley Zisserman的书,多视图几何,附录6。为基于LM的最小二乘估计提供了清晰的伪代码,用于误差细化


现在针对您的问题,您正在尝试优化单应性以获得更好的匹配。所以你的误差是一个光度误差,类似于x1'Hx2。附录中也提供了这种情况。

从任意(甚至已排序)图像构建全景图一点也不简单。如果您不了解布朗论文中的相机模型,您可能应该使用现有的工具。此外,对于联合单应估计,您不需要束调整,只需使用Levenberg–Marquardt之类的非线性优化即可。谢谢您的回复。当我用RANSAC找到一组一致的内联线时,我使用它们来拟合每个图像对(I1-I2,I2-I3)之间的单应性,并通过Levenberg-Marquardt解决非线性最小二乘问题。这就是使用非线性优化而不是束调整的意思,还是我需要查看优化问题中的所有单应性?顺便说一下,忘了我所说的联合单应性估计。当然,您需要全局参数来共同优化。无论哪种方式,束调整都解决了一个需要视差(平移)的问题(3D重建和相机估计),这是您希望在parnoramas中避免的。所以我建议你解决一个共享的相机(焦距)和旋转。你有没有解决过这个问题?我想知道你是否介意分享你最终使用的方法?我的处境与我实现了成对对应匹配和计算同音字相似,但在解决如何进行束调整细化步骤时遇到了问题。