Wanggcong的专栏

先给出两个结论:

(1)找到无穷远平面,可以实现仿射重建

(2)找到绝对二次曲线,可以实现欧式重建

考虑2D的情况:

(1)图像中的两交线<->世界场景中的平行线(这个是预先知道是平行的)

根据1-1对应,交点<->世界场景中的无穷远点。

我们希望图像中两直线也恢复平行!

怎么办?

几何上。如果无穷远点映射不穷远点,那么,一个图像中两条直线平行,映射到另一个图像中去,这两条直线也是平行。(平行是仿射中的概念,平行映射平行,其无穷远交点映射无穷远交点)好吧,既然这样,我们就把我们原来这样“希望”当成仿射变换吧。这种希望<->仿射变换/仿射重建,到底是鸡生蛋还是蛋生鸡,反正互推,我们只需要知道“原来这种想法”有个名字叫仿射吧。仿射变换中,平行保持不变。线段比例保持不变。

代数上。要知道平行是仿射中的概念,这点毋庸置疑!看看仿射中的代数关系吧!在非齐次坐标下,B=kA+T,有限点映射有限点(无穷点只能映射无穷点了,但表示不出来)!看看仿射的齐次坐标吧!Ha=[A |T;0|1],仿射变换,无穷远点映射无穷远点,常规点映射常规点。

怎么恢复?在图像中找到这个该死的无穷远直线!(两个无穷远点).实际上,在仿射意义下,图像那两条直线是平行的,只不过我们不习惯看到“无穷远点”,所以考虑把无穷远点搬回我我们习惯的地方。

(2)图像中的椭圆<->世界场景中的圆。预先知道世界场景只的是圆。(或者图像中的两不垂直的直线<->世界场景中的两垂直直线)(或者图像中拉伸的图像<->世界场景中真实的图像)

我们希望是将图像中的椭圆恢复成圆(或者将图像中不垂直的两直线恢复垂直)(或者将图像中拉伸压缩的图像恢复成原来真实的形状,尺度大小就不要求了,相似就行)

怎么办?

几何上。(括号1中的充分了吗?没有证明)想象一个圆经过线性变换得到仍然是一个圆,各个方向经过同等的拉伸压缩,显然是特殊的仿射变换。如果一个圆经线性变换后形状都不变,各个方向同等拉伸压缩,对于任意形状的图形,我想经过同等拉伸压缩不言而喻。既然如此,解决圆的线性变换问题等同于解决了这个问题。我们知道两个椭圆相交,可以用四个交点。对于不同的圆,看起来最多只有两个交点!真的是两个交点吗?不是的。点击打开链接这里给出了详细的解释。实际上,还有两个交点在无穷远处。虽然是复数而且在无穷远处,看似虚幻缥缈,但是不要因为此而感到困扰。这两个点叫做圆点。我们同时定义经过圆点的二次曲线叫做圆。这样,,定义也体现了任意两个圆都会交于这两个固定的点。这有什么好处呢?好处大得很。回到我们的“希望”上:我们希望恢复图像中的圆,或者说我们寻找一种线性变换,使得圆变换后还是圆。很明显,根据我们对圆的定义,只需经过两个圆点的二次曲线经过线性变换后得到的二次曲线仍然经过两个圆点。

代数上。射影变换8个自由度,相似变换4个自由度。减少4个,其中2个用来确定无穷远直线,2个用来确定两个圆点。

它的两个圆点:

相似变换中,圆点不变:

如果对复数的概念难以接受,考虑它的对偶形式:

即:

现在,这个形式可以接受了吧。是x1^2+x^2=0而且,x3=0(无穷远点嘛)。接着,考虑相似变换下,圆点情况。我们知道,点射影变换所对应对偶二次曲线的协变量:

在相似变换Hs下,圆点没有变化:

同理,另一个也不变。这就是圆点的代数表示。图像上确定了两个圆点,就可以把它搬移到无穷处,这样我们眼睛才会习惯。要知道,人眼习惯于欧式的场景。因此,我们才需要确定无穷远直线,搬移回去,确定圆点,搬移回去。射影的世界,人类看不懂。

两直线夹角会不会变?

一般两直线夹角可写成:

用对偶绝对二次曲线表示:(因为上述式子不是张量,因此不能用于仿射或射影变换中)

注意到,变换下(实际上,绝对二次曲线确定了之后,就是欧式的角度了,当然只有欧式空间才有角度的概念)

但我自信,我能点亮心烛,化解心灵的困惑。

Wanggcong的专栏

相关文章:

你感兴趣的文章:

标签云: