MVG学习笔记(10) --射影变换的初步了解

射影变换的初步了解

  2D射影几何研究的是关于射影平面IP2{\rm IP}^2在所谓射影映射的变换群下保持不变的性质。

定义1  射影映射是把IP2{\rm IP}^2到自身的一种满足下列条件的可逆映射hh:三点x1,x2,x3{\rm x}_1,{\rm x}_2,{\rm x}_3共线当且仅当h(x1),h(x2),h(x3)h({\rm x}_1),h({\rm x}_2),h({\rm x}_3)也共线。

  射影映射组成一个群,因为其逆和复合运算符合群性质。又称为保线变换,射影变换或单应(homography)。下面给出其等价代数定义。

定理1  映射h:IP2IP3h:{\rm IP^2 \rightarrow IP^3}是射影映射的充要条件是:存在一个3×33\times 3非奇异矩阵HH,使得IP2{\rm IP}^2的任何一个用矢量x\rm x表示的点都满足h(x)=Hxh({\rm x})={\rm H}{\rm x}

定理表明射影映射都是以这样一次齐次坐标的线性变换出现,反之这样的映射是射影映射。

  使用x{\rm x}表示IP2{\rm IP}^2中的点,而用Hx{\rm Hx}表示齐次坐标的线性映射。我们证明下面的命题成立,用来不全面证明定理1。

齐次坐标的任何可逆线性变换是射影映射

证明

  令x1,x2{\rm x}_1,{\rm x_2}x3{\rm x}_3都在同一条直线 l{\rm l} 上。因此

lTxi=0,i=1, ,3{\rm l}^T{\rm x}_i=0,i=1,\cdots,3

  令H\rm H是非奇异3×33\times 3的矩阵,又上面式子可以得到

lTH1Hxi=0(HTl)T(Hxi)=0{\rm l^TH^{-1}Hx}_i=0 \rightarrow ({\rm H}^{-T}{\rm l})^T({\rm Hx}_i)=0

  因此点Hxi{\rm Hx}_i都在直线HTl\rm H^{-T}l上。因而该变换保持共线性。

逆命题

  每个射影映射都以这种方式出现。

  给出另一个射影变换(保线变换)的定义。

定义2   射影变换平面射影变换是关于齐次三维矢量的一种线性变换,并可用一个非奇异3×33\times 3矩阵H{\rm H}表示为:

(1)(x1x2x3)=[h11h12h13h21h22h23h31h32h33](x1x2x3)\begin{pmatrix}x^\prime_1\\x^\prime_2\\x^\prime_3\end{pmatrix}=\begin{bmatrix}h_{11}&h_{12}&h_{13}\\h_{21}&h_{22}&h_{23}\\h_{31}&h_{32}&h_{33}\end{bmatrix}\begin{pmatrix}x_1\\x_2\\x_3\end{pmatrix}\tag{1}

  或更简洁表示为x=Hx\rm x^\prime=Hx

  注意,可以通过乘以任意非零比例因子来改变在该等式中出现的矩阵HH而不改变射影变换。 因此,我们说HH是一个齐次矩阵,因为在点的齐次表示中,只有矩阵元素的比例是有意义的。 在HH的九个元素中有八个独立的比率,因此射影变换具有八个*度(减掉一个比例因子)。

  射影变换将每个图形投影为射影等价的图形中,使其所有射影属性保持不变。 在前一篇博文中我们描述的射线模型中,射影变换仅仅是IR3{\rm IR}^3的线性变换。

平面间的映射

  图1给出了定理1的一个例子。

MVG学习笔记(10) --射影变换的初步了解

图1。 中心投影将一个平面上的点映射到另一个平面上的点。 过投影中心作一张与两平面π\piπ\pi^\prime相交的平面,可以看到中心投影也将线映射到线。 由于线被映射到线,因此中心投影是射影的,并且可以通过齐次坐标的线性映射x=Hx\rm x^\prime=Hx来表示。

  沿着通过公共点(投影中心)的射线的投影定义了从一个平面到另一个平面的映射。 很明显,这种点到点的映射保留了直线不变,其中一个平面中的线被映射到另一个平面中的线。

  如果在每个平面中定义坐标系并且以齐次坐标表示点,则中心投影映射可以用x=Hx\rm x^\prime=Hx表示,其中HH是非奇异3×33\times3矩阵。 实际上,如果在两个平面中定义的两个坐标系都是欧氏(直角)坐标系,那么由中心投影定义的映射比一般射影变换更受限制。 它被称为透视映射而不是完全的射影映射,并且可以用具有六个*度的变换来表示。

消除平面透视图像的射影失真

  在透视成像下形状会失真(变形)。 例如,在图2中,窗口在图像中不是矩形,尽管原有窗子是。 通常,场景平面上的平行线在图像中不平行,而是收敛到有限点。 我们已经看到平面(或平面的一部分)的中心投影图像通过投影变换与原始平面相关,因此图像是原始的射影失真。 通过计算逆变换并将其应用于图像,可以“撤销”该投影变换。 结果将是一个新的合成图像,其中平面中的物体以其正确的几何形状显示。 这将在图2 a的建筑物的前墙解释。 注意,由于地面和大楼的前墙不在同一平面上,因此必须用于矫正前墙的投影变换与用于地面的投影变换不同。

MVG学习笔记(10) --射影变换的初步了解

图2.消除透视失真。 (a)具有透视失真的原始图像 - 窗口的线明显地收敛于有限点(延长后相交)。(b)合成得到的前墙的正视图。 墙的图像(a)通过射影变换与墙的真实几何形状相关联。 通过将四个成像窗口角点映射到适当大小的矩形顶点来计算逆变换。 由四点对应确定变换。 然后将变换应用于整个图像。 注意,地面图像的部分受到进一步的射影失真。 这也可以通过射影变换来消除。

  首先,选择平面与图像想对应的部分。然后选择图像平面的2D局部坐标和景物的世界坐标,如图1所示。

  设世界与图像平面上一对匹配点x\rm xx\rm x^\prime。 我们在这里使用点的非齐次坐标而不是齐次坐标,因为这些非齐次坐标可以直接从图像和世界平面得到。式(1)的射影变换可以用非齐次形式写成

x=x1x3=h11x+h12y+h13h31x+h32y+h33,y=x2x3=h21x+h22y+h23h31x+h32y+h33x^\prime=\frac{x_1^\prime}{x^\prime_3}=\frac{h_{11}x+h_{12}y+h_{13}}{h_{31}x+h_{32}y+h_{33}},y^\prime=\frac{x_2^\prime}{x^\prime_3}=\frac{h_{21}x+h_{22}y+h_{23}}{h_{31}x+h_{32}y+h_{33}}

  每个点对应关系为HH元素的两个方程,将其乘出简化后是

x(h31x+h32y+h33)=h11x+h12y+h13x^\prime(h_{31}x + h_{32}y + h_{33}) = h_{11}x + h_{12}y + h_{13}

y(h31x+h32y+h33)=h21x+h22y+h23y^\prime(h_{31}x + h_{32}y + h_{33}) = h_{21}x + h_{22}y + h_{23}

  这些方程在HH的元素中是线性的。四点对应在H的元素中导致八个这样的线性方程,这足以求出HH,只差不重要的乘法因子。 唯一的限制是四个点必须处于“一般位置”,这意味着没有三个点是共线的。 然后将以这种方式计算的变换HH的逆应用于整个图像,以消除透视失真对所选平面的影响。 结果如图2 b所示。

  说明:首先,以这种方式计算矫正变换HH不需要知道任何相机的参数或平面的位姿; 第二,并不总是需要知道四点的坐标以消除投影失真。

  射影变换是代表比世界平面的透视成像更多情况的重要映射。 许多其他例子如图3所示。

MVG学习笔记(10) --射影变换的初步了解

图3.在透视图像中射影变换x=Hx\rm x^\prime=Hx的例子。 (a)由世界平面引起的两个图像之间的射影变换(两个射影变换的复合是射影变换); (b)具有相同摄像机中心的两个图像之间的射影变换(例如,摄像机围绕其中心旋转或变焦其焦距); (c)平面图像(建筑物的后墙)与其阴影图像到另一个平面(地平面)之间的射影变换。

直线与二次曲线的变换

直线的变换

  在定理1的证明中指出,如果点xi{\rm x}_i位于线 l\rm l 上,那么变换点x=Hx\rm x^\prime=Hx在射影变换下位于线l=HTl\rm l^\prime=H^{-T}l。 通过这种方式保持了点在线上的性质,因为lTxi=lTH1Hxi{\rm l^{\prime T}x}^\prime_i={\rm l^TH^{-1}Hx}_i。这给出了线的变换规则:在点变换x=Hx\rm x^\prime=Hx下,直线 l\rm l 变换为

l=HTl\rm l^\prime=H^{- T}l

  或者可以写lT=lTH1\rm l^{\prime T}=l^TH^{-1}

  注意线和点变换的根本区别。 点根据HH变换,而线(作为行向量)根据H1H^{-1}变换。 这可以用“协变”或“逆变”行为来解释。 有人说,点变换是逆变,线变换是协变

二次曲线的变换

  我们知道在前面博文讲述二次曲线和对偶二次曲线时,说过点在二次曲线上的方程xTCx=0x^TCx=0,那么射影变换中,即在点变换x=Hx\rm x^\prime=Hx下,该式变为:

xTCx=xT[H1]TCH1x=xTHTCH1x\begin{aligned}\rm x^TCx&=\rm x^{\prime T}[H^{-1}]^TCH^{-1}x^\prime\\&=\rm x^{\prime T}H^{-T}CH^{-1}x^\prime\end{aligned}

  这是二次形式xTCx\rm x^{\prime T}C^\prime x^\prime,其中C=HTCH1\rm C^\prime=H^{-T}CH^{-1}。 这给出了二次曲线的变换规则:

结论1  在点变换x=Hx\rm x^\prime=Hx下,二次曲线C\rm C变换为C=HTCH1\rm C^\prime=H^{-T}CH^{-1}

H1\rm H^{-1}在方程中,所以二次曲线变换称为协变

结论2  在点变换x=Hx\rm x^\prime=Hx下,对偶二次曲线C\rm C^*变换为C=HCHT\rm C^{\prime*}=HC^*H^{T}

  我们知道在前面博文讲述二次曲线和对偶二次曲线时,说过对偶二次曲线的方程lTCl=0\rm l^TC^*l=0

  在点变换x=Hx\rm x^\prime=Hx下,我们得到l=HTl\rm l^\prime=H^{-T}l,可以得到:

l=HTl\rm l=H^Tl^\prime

  所以我们可以得到

lTCl=(HTl)TCHTl=lTHCHTl=lTCl\begin{aligned}\rm l^TC^*l&=\rm (H^Tl)^TC^*H^Tl^\prime\\&=\rm l^{\prime T}HC^*H^Tl^\prime \\&=\rm l^{\prime T}C^{\prime*}l^\prime\end{aligned}

  所以C=HCHT\rm C^{\prime*}=HC^*H^T

博文内容总结和概览

知识

概念 定义
射影映射(保线变换,射影变换或单应(homography)) 射影映射是把IP2{\rm IP}^2到自身的一种满足下列条件的可逆映射hh:三点x1,x2,x3{\rm x}_1,{\rm x}_2,{\rm x}_3共线当且仅当h(x1),h(x2),h(x3)h({\rm x}_1),h({\rm x}_2),h({\rm x}_3)也共线。
射影变换另一定义 平面射影变换是关于齐次三维矢量的一种线性变换,并可用一个非奇异3×33\times 3矩阵H{\rm H}表示为x=Hx\rm x^\prime=Hx
平面间映射 点对点映射且保持直线不变。若是两平面建立都是欧氏直角坐标系,则为透视映射。
消除透视失真 简单使用四个对应点关系求解出HH,然后将逆变换应用到失真图像中以消除射影失真。
直线的变换 如果点xi{\rm x}_i位于线 l\rm l 上,那么变换点x=Hx\rm x^\prime=Hx在射影变换下位于线l=HTl\rm l^\prime=H^{-T}llT=lTH1\rm l^{\prime T}=l^TH^{-1}
二次曲线变换 在点变换x=Hx\rm x^\prime=Hx下,二次曲线C\rm C变换为C=HTCH1\rm C^\prime=H^{-T}CH^{-1}
对偶二次曲线变换 在点变换x=Hx\rm x^\prime=Hx下,对偶二次曲线C\rm C^*变换为C=HCHT\rm C^{\prime*}=HC^*H^{T}

定理

概念 内容
射影映射等价代数定义 映射h:IP2IP3h:{\rm IP^2 \rightarrow IP^3}是射影映射的充要条件是:存在一个3×33\times 3非奇异矩阵HH,使得IP2{\rm IP}^2的任何一个用矢量x\rm x表示的点都满足h(x)=Hxh({\rm x})={\rm H}{\rm x}