过滤RANSAC估计的单应性


10

我正在使用RANSAC算法在相机之间拍摄的成对图像之间进行单应性估计,这些相机之间没有任何平移(纯旋转和缩放比例/缩放)。在一半的情况下,它运作良好。正确的输出如下所示:

在此处输入图片说明

红线是经过过滤的对应关系,四边形表示单应性如何扭曲透视图。

但是,有时会发生许多不良情况,例如:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

我已经在RANSAC循环中进行了简单的测试。它制作一个简单的四边形(单位平方),并使用样本变换对其进行变换。然后看变换是否保持其凸性。

但是,仍然会出现一堆凹入的四边形。

您是否知道如何正确测试单应性(如果其表现得“很好”)并滤除错误的解决方案?

我找到了一些代码,他们在其中测试了三个变换点均不是共线的。但这似乎还不够,因为它不会过滤出三角肌和其他“无效”的四边形...

Answers:



4

检查单应性是否正常存在问题。

用于检查正确的单应性的算法可能会使某人感兴趣,因此我将在此处写下:

1)创建具有顶点坐标(在同构坐标中)的四边形ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(w/2,h/2,1.0)D:(w/2,h/2,1.0)

w,h

ABDCC=HC

uv

d1:A+(DA)s=A+usd2:B+(CB)t=B+vt

d1=d2

t=1d[(ByAy)ux(BxAx)uy]

s=1d[(AxBx)vy(AyBy)vx]

s,t(0,1)

s,t(λ,1.0λ)λ=0.01

较旧的问题,已在上述算法中解决:

我在这里发现了问题-具有一定的单应性,该测试可以通过较小的四边形,但不能通过较大的四边形。这就是为什么一些“病态”单应通过的原因。

绿色方块代表原始图片,橙色方块代表原始图片。如您所见,左手是凸形的,但随着源的变大而开始变形:

在此处输入图片说明

最后,甚至更大的源产量也没有转化为四边形:

在此处输入图片说明

(x,y,w)xyw

我已经相应地纠正了算法。


1

x_i \sim Hx_i^'\sum_{j=1\dots n}\|x_j - Hx_j^'\|H^'x^' = H^'x\sum_{j=1\dots n}\|x_j - Hx_j^'\| + \|x_j^' - H^'x\|

请参阅Hartley和Zisserman-《计算机视觉上的多视图几何》第4.2章,尤其是4.2.3和公式(4.8)。


所显示的四边形只是放在那里。我很确定这些信件的契合性,因为它非常适合。我使用了Hartley&Zisserman建议的归一化DLT算法,然后使用了迭代优化和指导匹配。
Libor 2012年

但是单应性的拟合度可能不如第一张照片中的好,因为有两点:在公寓楼的点(可能在同一平面上)和在树上的点(甚至可能不在树上)。他们自己的小组中的同一架飞机)。您确定不是要使用基本矩阵吗?
buq2

线连接了相应的点,我检查了所有的点-对齐图像后,它们都汇合了。当我排除匹配不良的图像对时,会得到一个不错的全景。
Libor

这些图像是使用旋转照相机拍摄的,因此平面似乎有所变化,但是由于照相机绕光学中心旋转,因此我很确定可以估计单应性。我什至可以从中计算焦距和旋转矩阵。但是问题出在别的地方,我必须在我的软件中找到一个怪癖……
Libor 2012年

啊,您没有包含相机之间没有翻译的信息。然后您是对的,单应描述图像之间的转换。
buq2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.