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

射影变换的初步了解

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

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

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

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

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

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

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

证明

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

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

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

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

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

逆命题

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

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

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

(1) ( x 1 ′ x 2 ′ x 3 ′ ) = [ h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 h 33 ] ( x 1 x 2 x 3 ) \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} x1x2x3=h11h21h31h12h22h32h13h23h33x1x2x3(1)

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

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

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

平面间的映射

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

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

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

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

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

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

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

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

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

x ′ = x 1 ′ x 3 ′ = h 11 x + h 12 y + h 13 h 31 x + h 32 y + h 33 , y ′ = x 2 ′ x 3 ′ = h 21 x + h 22 y + h 23 h 31 x + h 32 y + h 33 x^\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}} x=x3x1=h31x+h32y+h33h11x+h12y+h13,y=x3x2=h31x+h32y+h33h21x+h22y+h23

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

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

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

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

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

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

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

直线与二次曲线的变换

直线的变换

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

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

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

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

二次曲线的变换

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

x T C x = x ′ T [ H − 1 ] T C H − 1 x ′ = x ′ T H − T C H − 1 x ′ \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=xT[H1]TCH1x=xTHTCH1x

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

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

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

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

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

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

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

  所以我们可以得到

l T C ∗ l = ( H T l ) T C ∗ H T l ′ = l ′ T H C ∗ H T l ′ = l ′ T C ′ ∗ l ′ \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} lTCl=(HTl)TCHTl=lTHCHTl=lTCl

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

博文内容总结和概览

知识

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

定理

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuYunTan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值