多视图几何入门基础--相机模型与投影变换

本文深入探讨了齐次坐标、坐标变换、相机模型、单应矩阵与常见投影变换等核心概念,详细解析了等距变换、相似变换、仿射变换及射影变换,并介绍了针孔相机模型、透视相机模型以及双视图几何中的对极几何和基础矩阵。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要: 本文来自章国峰_相机模型与投影变换ppt总结,补充了自己的对于多视图几何的一些理解,图来自ppt。

一、 齐次坐标和坐标变换(等距变换;相似变换;仿射变换;射影变换)

1. 齐次坐标:

在原有的坐标上面增加一个维度,新增维度不增加自由度,通常为1
以下对应2维和3维
                    [ x y ] \begin{bmatrix}x \\ y \end{bmatrix} [xy]变为 [ x y 1 ] \begin{bmatrix}x \\ y \\1 \end{bmatrix} xy1 [ x y z ] \begin{bmatrix}x \\ y \\z \end{bmatrix} xyz变为 [ x y z 1 ] \begin{bmatrix}x \\ y \\z \\1 \end{bmatrix} xyz1

A. 齐次坐标可以更好的表示平移和放缩,旋转和平移
使用齐次坐标完成平移和放缩
          [ u ′ v ′ 1 ] = [ s u 0 s u t u 0 s v s v t v 0 0 1 ] [ u v 1 ] = [ s u 0 0 0 s v 0 0 0 1 ] [ 1 0 t u 0 1 t v 0 0 1 ] [ u v 1 ] = S T x \begin{bmatrix}{u}' \\{v}' \\1 \end{bmatrix}=\begin{bmatrix}s_{u} &0 &s_{u}t_{u} \\0 &s_{v} &s_{v}t_{v} \\0 &0 &1 \end{bmatrix} \begin{bmatrix}u \\v \\1 \end{bmatrix}=\begin{bmatrix}s_{u} &0 &0 \\0 &s_{v} &0 \\0 &0 &1 \end{bmatrix} \begin{bmatrix}1 &0 &t_{u} \\0 &1 &t_{v} \\0 &0 &1 \end{bmatrix} \begin{bmatrix}u \\v \\1 \end{bmatrix}= STx uv1=su000sv0sutusvtv1uv1=su000sv0001100010tutv1uv1=STx
使用齐次坐标完成旋转和放缩
[ u ′ v ′ 1 ] = [ c o s ( θ ) − s i n ( θ ) t u s i n ( θ ) c o s ( θ ) t v 0 0 1 ] [ u v 1 ] = [ 1 0 t u 0 1 t v 0 0 1 ] [ c o s ( θ ) − s i n ( θ ) 0 s i n ( θ ) c o s ( θ ) 0 0 0 1 ] [ u v 1 ] = T R x \begin{bmatrix}{u}' \\{v}' \\1 \end{bmatrix}= \begin{bmatrix}cos(\theta) &-sin(\theta) &t_{u} \\sin(\theta) &cos(\theta) &t_{v} \\0 &0 &1 \end{bmatrix} \begin{bmatrix}u \\v \\1 \end{bmatrix}= \begin{bmatrix}1 &0 &t_{u} \\0 &1 &t_{v} \\0 &0 &1 \end{bmatrix} \begin{bmatrix}cos(\theta) &-sin(\theta) &0 \\sin(\theta) &cos(\theta) &0 \\0 &0 &1 \end{bmatrix} \begin{bmatrix}u \\v \\1 \end{bmatrix}= TRx uv1=cos(θ)sin(θ)0sin(θ)cos(θ)0tutv1uv1=100010tutv1cos(θ)sin(θ)0sin(θ)cos(θ)0001uv1=TRx
                           
B. 并且可以用齐次坐标更容易表示点,线,面的关系。可以用两个齐次坐标的点的叉积描述一条直线,两条线的叉积定义一个点(交点)
                            l = p × q l=p \times q l=p×q
                          两点叉积表示线段
                            x = p × q x=p \times q x=p×q
                          在这里插入图片描述
C(补充). 引入齐次坐标后,可以很好的表示以下两种概念(2D下表示):

理想点 [ x 1 x 2 0 ] \begin{bmatrix}x_{1}&x_{2}&0 \end{bmatrix} [x1x20]表示理想点,或者无穷远点。通过引入理想点,我们可以表示两平行直线的交点。
无穷远线:上述理想点的集合,即为无穷远线,用矢量 l = [ 0 0 1 ] T l=\begin{bmatrix}0 &0&1 \end{bmatrix}^{T} l=[001]T表示

D. 向量叉积的矩阵表示
v × x v\times x v×x 表示向量的叉积,与下面这种矩阵乘法等价,所以我们可以用矩阵的线性乘法来表示叉积
                                v × x = [ v ] × x v\times x=[v]_{\times}x v×x=[v]×x
其中 [ v ] × = [ 0 − v z v z v z 0 − v x − v y v x 0 ] [v]_{\times}= \begin{bmatrix}0 &-v_{z} &v_{z} \\v_{z}&0&-v_{x} \\-v_{y}&v_{x}&0\end{bmatrix} [v]×=0vzvyvz0vxvzvx0,其是秩为2的 3 × 3 3\times3 3×3的斜对称矩阵。

2. 几种变换(2D下描述)

A. 等距变换:2D变换有三个自由度,是保距离的
                        [ u ′ v ′ 1 ] = [ R t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}R&t \\0&1\end{bmatrix} \begin{bmatrix} u\\v\\1\end{bmatrix} uv1=[R0t1]uv1
B. 相似变换:2D情况具有四个自由度,保角度(等距变换上,多了放缩因子s)
                        [ u ′ v ′ 1 ] = [ s R t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}sR&t \\0&1\end{bmatrix} \begin{bmatrix} u\\v\\1\end{bmatrix} uv1=[sR0t1]uv1
C. 仿射变换:六自由度,保平行
                      [ u ′ v ′ 1 ] = [ A t 0 1 ] [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}A&t \\0&1\end{bmatrix} \begin{bmatrix} u\\v\\1\end{bmatrix} uv1=[A0t1]uv1
          A = [ a 11 a 12 a 21 a 22 ] = R ( θ ) R ( − ϕ ) S R ( ϕ ) A=\begin{bmatrix}a_{11}&a_{12} \\a_{21}&a_{22}\end{bmatrix}=R(\theta)R(-\phi)SR(\phi) A=[a11a21a12a22]=R(θ)R(ϕ)SR(ϕ)      S = [ s x 0 0 s y ] S=\begin{bmatrix}s_{x}&0 \\0&s_{y}\end{bmatrix} S=[sx00sy]
D. 射影变换:八自由度,保同线性
              [ u ′ v ′ 1 ] = [ A t v b ] = [ u v 1 ] \begin{bmatrix}{u}' \\{v}' \\1\end{bmatrix}=\begin{bmatrix}A&t \\v&b\end{bmatrix}= \begin{bmatrix} u\\v\\1\end{bmatrix} uv1=[Avtb]=uv1           H = [ A t v b ] H=\begin{bmatrix}A&t \\v&b\end{bmatrix} H=[Avtb]

求解射影变换(下面有八个未知数,需要四组点来求解):
        H = [ A t v b ] = [ h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ] H=\begin{bmatrix}A&t \\v&b\end{bmatrix}= \begin{bmatrix}h_{1}&h_{2}&h_{3} \\h_{4}&h_{5}&h_{6} \\h_{7}&h_{8}&h_{9}\end{bmatrix} H=[Avtb]=h1h4h7h2h5h8h3h6h9         x ′ = H x {x}'=Hx x=Hx

展开上述关于u_{2}和 v 2 v_{2} v2的等式:
                h 1 u 1 + h 2 u 2 + h 3 − h 7 u 1 u 2 − h 8 v 1 u 2 − h 9 u 2 = 0 h_{1}u_{1}+h_{2}u_{2}+h_{3}-h_{7}u_{1}u_{2}-h_{8}v_{1}u_{2}-h_{9}u_{2}=0 h1u1+h2u2+h3h7u1u2h8v1u2h9u2=0
                h 4 u 1 + h 5 u 2 + h 6 − h 7 u 1 v 2 − h 8 v 1 v 2 − h 9 v 2 = 0 h_{4}u_{1}+h_{5}u_{2}+h_{6}-h_{7}u_{1}v_{2}-h_{8}v_{1}v_{2}-h_{9}v_{2}=0 h4u1+h5u2+h6h7u1v2h8v1v2h9v2=0

改写为:
      A i = ( u 1 v 1 1 0 0 0 − u 1 u 2 − v 1 u 2 − u 2 0 0 0 u 2 v 2 1 u 1 v 2 − v 1 v 2 − v 2 ) A_{i}=\begin{pmatrix}u_{1}&v_{1}&1&0&0&0&-u_{1}u_{2}&-v_{1}u_{2}&-u_{2} \\0&0&0&u_{2}&v_{2}&1&u_{1}v_{2}&-v_{1}v_{2}&-v_{2}\end{pmatrix} Ai=(u10v10100u20v201u1u2u1v2v1u2v1v2u2v2)
      h ∗ = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) h^{*}=\begin{pmatrix}h_{1}&h_{2}&h_{3}&h_{4}&h_{5}&h_{6}&h_{7}&h_{8}&h_{9}\end{pmatrix} h=(h1h2h3h4h5h6h7h8h9)

改写为:            A i h = 0 A_{i}h=0 Aih=0

总结:
在这里插入图片描述

二、 相机模型

1. 针孔相机模型(如下图)

在这里插入图片描述
世界坐标系中的点到针孔相机像平面变换为
                   ( f X f Y Z ) = [ f f 1 ] [ 1 0 1 0 1 0 ] ( X Y Z 1 ) \begin{pmatrix}fX\\fY\\Z\end{pmatrix}=\begin{bmatrix}f\\&f\\&&1\end{bmatrix}\begin{bmatrix}1&&&0\\&1&&0\\&&1&0\end{bmatrix}\begin{pmatrix}X\\Y\\Z\\1\end{pmatrix} fXfYZ=ff1111000XYZ1
                              K K K         [ R ∣ t ] [R|t] [Rt]
   K K K为相机内参矩阵; [ R ∣ t ] [R|t] [Rt]为旋转位移矩阵

由于装调等误差,存在主点的偏移:
                   ( f X / Z + x 0 f Y / Z + x 0 1 ) \begin{pmatrix}fX/Z+x_{0}\\fY/Z+x_{0}\\1\end{pmatrix} fX/Z+x0fY/Z+x01~ ( f X + Z x 0 f Y + Z x 0 Z ) = [ f x 0 0 f y 0 0 1 0 ] ( X Y Z 1 ) \begin{pmatrix}fX+Zx_{0}\\fY+Zx_{0}\\Z\end{pmatrix}=\begin{bmatrix}f&&x_{0}&0\\&f&y_{0}&0\\&&1&0\end{bmatrix}\begin{pmatrix}X\\Y\\Z\\1\end{pmatrix} fX+Zx0fY+Zx0Z=ffx0y01000XYZ1

透视相机模型,其内参矩阵增加了一个扭曲因子s:
                         K = [ f s x 0 f y 0 1 ] K=\begin{bmatrix}f&s&x_{0}\\&f&y_{0}\\&&1\end{bmatrix} K=fsfx0y01

径向畸变:设畸变量为 R ( x , y ) R(x,y) R(x,y),则 R ( x , y ) = ( 1 + k 1 r 2 + k 2 r 4 + . . . ) R(x,y)=(1+k_{1}r^{2}+k_{2}r^{4}+...) R(x,y)=(1+k1r2+k2r4+...)

2. 相机外参(旋转和平移)

在这里插入图片描述
相机坐标和世界坐标的转换关系为 { X c = R X w + t X w = R ′ X c + t ′ \left\{\begin{matrix}X_{c}=RX_{w}+t \\X_{w}=R^{'}X_{c}+t^{'} \end{matrix}\right. {Xc=RXw+tXw=RXc+t,其中 { R ′ = R − 1 t ′ = − R − 1 t \left\{\begin{matrix}R^{'}=R^{-1} \\t^{'}=-R^{-1}t \end{matrix}\right. {R=R1t=R1t

三、单应矩阵与常见投影变换

1. 单应矩阵

在这里插入图片描述
这里描述了一副图像,经过纯旋转后得到的图像,其中共有的点可以用以上矩阵关系描述,这个矩阵称为单应矩阵,H可以表示为 H = K 2 R K 1 − 1 H=K_{2}RK_{1}^{-1} H=K2RK11。使用点来表示H形成的对应关系,可以是
                 c ( u 2 v 2 1 ) = ( h 1 h 2 h 3 h 4 h 5 h 6 h 7 h 8 h 9 ) ( u 1 v 1 1 ) c\begin{pmatrix}u_{2} \\v_{2} \\1 \end{pmatrix}=\begin{pmatrix}h_{1}&h_{2}&h_{3} \\h_{4}&h_{5}&h_{6} \\h_{7}&h_{8}&h_{9} \end{pmatrix}\begin{pmatrix}u_{1} \\v_{1} \\1 \end{pmatrix} cu2v21=h1h4h7h2h5h8h3h6h9u1v11
其中 ( u 2 v 2 1 ) \begin{pmatrix}u_{2} \\v_{2} \\1 \end{pmatrix} u2v21 ( u 1 v 1 1 ) \begin{pmatrix}u_{1} \\v_{1} \\1 \end{pmatrix} u1v11分别表示第二幅图和第一幅图中对应点的坐标。

2. 平面投影变换

选择一个世界坐标系,使得平面上的点在该坐标系下Z坐标为0,可以推导投影矩阵
     ( x 1 x 2 x 3 ) = ( p 11 p 12 p 13 p 14 p 21 p 22 p 23 p 24 p 31 p 32 p 33 p 34 ) = ( X Y 0 1 ) = ( p 11 p 12 p 14 p 21 p 22 p 24 p 31 p 32 p 34 ) ( X Y 1 ) \begin{pmatrix}x_{1} \\x_{2} \\x_{3} \end{pmatrix}=\begin{pmatrix}p_{11}&p_{12}&p_{13}&p_{14} \\p_{21}&p_{22}&p_{23}&p_{24} \\p_{31}&p_{32}&p_{33}&p_{34} \end{pmatrix}=\begin{pmatrix}X \\Y \\0 \\1 \end{pmatrix}=\begin{pmatrix}p_{11}&p_{12}&p_{14} \\p_{21}&p_{22}&p_{24} \\p_{31}&p_{32}&p_{34} \end{pmatrix}\begin{pmatrix}X \\Y \\1 \end{pmatrix} x1x2x3=p11p21p31p12p22p32p13p23p33p14p24p34=XY01=p11p21p31p12p22p32p14p24p34XY1
这个矩阵描述了三维平面到图像平面的射影变换:
A.使用透视相机时,最常见的一种从世界坐标系到图像平面的变换
B.两平面的映射用该3*3的矩阵表示
C.射影变换通常也称为“单应性映射”
D.H有八个自由度
                

3. 其它变换

弱透视变换:景物平面到相机面坐标是是比例关系
在这里插入图片描述
正交投影:两平面坐标大小相等,符号相反
在这里插入图片描述

四、双视图几何

1. 对极几何

在这里插入图片描述
对极几何是两视图之间满足的关系,指两幅视图上对应的点满足:
               x ′ F x = 0 x^{'}Fx=0 xFx=0
这里的矩阵F,称为基础矩阵(Fundamental matrix)。

2. 求解基础矩阵F

第一次更新:19.11.15 15:50

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值