OMSCS-CV课程笔记07-Multiple Views
这个系列是Gatech OMSCS 计算机视觉课程(CS 6476: Computer Vision)的同步课程笔记。课程内容涉及图像处理以及传统计算机视觉的相关理论和方法,本节主要介绍多视图几何的相关内容。
Image to Image Projections
在正式介绍多视图几何的相关内容前我们首先来考虑一下平面上的几何变换。平面上的几何变换可以分为平移变换(translation)、刚体(欧式)变换(Euclidean transform)、相似变换(similarity transform)以及仿射变换(affine transform),而它们都可以看做是投影变换(projective transform)的特例。

通过齐次坐标可以把这些变换写成通用的形式:
其中矩阵
Translation
最基本的平面变换是平移变换,它的单应矩阵形式为:

显然在平移变换前后物体的夹角、长度、面积、朝向等几何量都保持不变。
Euclidean Transform
在平移变换的基础上加入旋转就得到了刚体变换,对应的单应矩阵形式为:

显然物体的朝向在变换后会发生改变,但夹角、长度、面积保持不变。
Similarity Transform
如果允许对平移变换后的物体进行缩放就得到了相似变换,它的单应矩阵为:

相似变换后的物体只能保证夹角大小不变,物体的面积和长度则会按照相似比例变化。
Affine Transform
进一步放宽约束条件可以得到仿射变换:

仿射变换可以保证平行的直线经过变换后仍然保持平行。
Projective Transform
最后,利用齐次坐标的归一化性质可以投影变换的但应矩阵:

投影变换只能保证直线在变换后仍保持直线,但不能保证平行的直线变换后保持平行。
我们把前面介绍的这几种变换的性质进行汇总,可以得到如下的表格:

Homographies and Mosaics
图像上的齐次坐标实际上可以从三维空间进行理解。此时多出来的一维

利用齐次坐标的几何意义可以实现图像平面到图像平面的变换。假设空间中存在2个具有相同成像中心的图像平面PP1和PP2,我们想要计算两个图像平面的变换关系。对于空间中的点P可以做一条成像中心C到P点的连线与图像平面分别交于P1和P2两点,如下图所示:

不难发现实际上我们不需要考虑两个平面的空间关系,只需要知道投影点的坐标变换关系就可以实现PP1和PP2之间的转换。
Panorama
图像平面变换的一个典型应用是获得全景图(panorama)。我们可以利用图像平面的变换将不同角度拍摄的图像变换到一个固定的角度,从而获得更大的视野。

全景图拼接的本质是把不同的成像平面变换到一个给定的平面上,从而得到空间点在该平面上的投影。因此这样的过程需要保证不同图像的成像中心是同一点,同时视野的角度需要小于180°,否则会产生一些扭曲的问题。

Homography
图像平面到图像平面的变换可以利用投影变换的单应矩阵
由于单应矩阵
3D Planes
使用单应矩阵来描述图像平面变换的另一个好处在于我们可以任意空间平面到图像平面的投影。假设空间中的点分布于某个平面上,对应的平面方程为:
我们将平面方程带入到投影过程得到:
由于
上式说明当空间中的点位于同一平面上时,我们只需要一个
Image Rectification
我们可以把图像看做空间中的一个平面,这样利用单应矩阵就可以完成对图像的矫正(rectification)。

图像矫正的一个常见应用是把透视投影矫正为正交投影,使原本相交于灭点的平行直线在投影后仍保持平行,这样方便我们在矫正后的图像上进行处理。


Image Warping
使用单应矩阵进行图像变换时需要注意的是我们实际上是对变换后的图像进行处理。具体来说对于变换后图像

在大多数情况下原始图像上对应点的坐标都不是整数,因此我们需要通过插值的方式来计算像素值。实践中往往会利用双线性插值来进行计算:

Projective Geometry
Point and Line Duality
对于二维平面,我们可以利用齐次坐标来表示直线方程:
其中向量
如果把齐次坐标看成是经过原点的射线,那么平面直线同样可以理解为经过原点的平面与成像平面的交线。此时直线向量

利用对偶性可以方便地计算平面上的直线方程。假设图像平面上存在两个点
从空间中来看通过

类似地,假设图像上存在两条直线

上面的分析说明在投影空间下直线与点是相互对偶的,利用叉积运算可以方便地求解直线方程和直线交点。


Ideal Points and Lines
当齐次坐标的最后一维为0时,坐标向量

类似地,当直线向量的最后一维为0时,直线向量

Essential Matrix
在Epipolar Geometry一节中我们介绍过双目相机的对极约束。空间点


几何意义之外,对极约束在代数上也具有非常优雅的形式。假设空间中存在两个成像中心

在等式两端同时叉乘
然后再同时点乘
我们把向量叉乘改写成矩阵乘法的形式:
令
其中矩阵
利用基本矩阵还可以从代数角度证明平行放置的双目相机空间点的投影一定在同一水平直线上。由于此时没有相对旋转,旋转矩阵

我们把旋转和平移带入到本质矩阵的计算公式,得到退化的本质矩阵:
假设
也就是说同一点投影后在两个成像平面上一定具有相同的y坐标,即位于同一条水平直线上。
Fundamental Matrix
本质矩阵给出了成像平面上的对极约束。回忆相机的投影过程,相机矩阵可以分解为内参矩阵和外参矩阵:
其中
我们把
其中矩阵
Rank of Fundamental Matrix
基本矩阵的一个重要性质是矩阵的秩为2。假设有如下图所示的成像环境,

同时,在两个成像上的投影点可以利用单应矩阵进行变换:
由于极线
联立两个极线方程得到:
上式说明基本矩阵
Solving F
我们可以利用图像平面上的对极约束来求解基本矩阵
重新整理成关于
对于1组对应点可以建立1个线性方程。由于基本矩阵
八点法的缺陷在于没有考虑基本矩阵自身的约束。前面介绍过基本矩阵的秩为2,而八点法计算出来的结果对秩是没有约束的,因此需要对八点法的计算结果进行修正。我们可以利用SVD来实现这样的约束,假设八点法的计算结果为
在大多数情况下
我们可以把它的最小对角元
重建后的基本矩阵