相机小孔成像模子与透视变换

打印 上一主题 下一主题

主题 1073|帖子 1073|积分 3219

0 配景

本文用于记录小孔相机成像的数学模子推导,并讨论特定条件下两个相机之间看到图像的变换关系。
1 小孔成像模子


小孔成像模子如上图所示。物理天下发光点P,经过小孔O投影到物理成像平面,形成像点I’
简易起见,构造虚拟成像平面,虚拟成像平面与物理成像平面关于O原点对称。
像点I’在虚拟成像平面临应的点为I。
为虚拟像平面创建坐标系u-v
相机坐标系z轴垂直指向虚拟相平面,x轴与u轴同向,y轴与v轴同向。
PI之间满足关系                                                         O                               I                                      ⃗                                  =                         λ                         ⋅                                              O                               P                                      ⃗                                       \vec{OI} = \lambda \cdot \vec{OP}                  OI             =λ⋅OP             。再设I的x,y坐标与u,v坐标满足关系:
                                                    [                                                                                                     I                                              x                                                                                                                                                  I                                              y                                                                                                                                                  I                                              z                                                                                                ]                                      =                                       [                                                                                                     s                                              u                                                                                                            0                                                                                                             δ                                              u                                                                                                                                  0                                                                                                             s                                              v                                                                                                                            δ                                              v                                                                                                                                  0                                                                                             0                                                                                                             I                                              z                                                                                                ]                                      ⋅                                       [                                                                                                     I                                              u                                                                                                                                                  I                                              v                                                                                                                                  1                                                                                 ]                                            \begin{bmatrix} I_{x} \\ I_{y} \\ I_{z} \end{bmatrix} = \begin{bmatrix} s_{u} & 0 & \delta u \\ 0 & s_{v} & \delta v \\ 0 & 0 & I_{z} \end{bmatrix} \cdot \begin{bmatrix} I_{u} \\ I_{v} \\ 1 \end{bmatrix}                                    ​Ix​Iy​Iz​​               ​=               ​su​00​0sv​0​δuδvIz​​               ​⋅               ​Iu​Iv​1​               ​
I点像坐标表现                                                        O                               I                                      ⃗                                       \vec{OI}                  OI             ,带入                                                         O                               I                                      ⃗                                  =                         λ                         ⋅                                              O                               P                                      ⃗                                       \vec{OI} = \lambda \cdot \vec{OP}                  OI             =λ⋅OP             ,基于第三维求得                                   λ                              \lambda                  λ,等式双方同时除以常量                                             I                            z                                       I_{z}                  Iz​,得到小孔成像模子的数学表达。
                                                    [                                                                                                     f                                              u                                                                                                            0                                                                                                             b                                              u                                                                                                                                  0                                                                                                             f                                              v                                                                                                                            b                                              v                                                                                                                                  0                                                                                             0                                                                                             1                                                                                 ]                                      ⋅                                       [                                                                                                     I                                              u                                                                                                                                                  I                                              v                                                                                                                                  1                                                                                 ]                                      =                                       1                                           I                                  z                                                 ⋅                                       [                                                                                                     I                                              x                                                                                                                                                  I                                              y                                                                                                                                                  I                                              z                                                                                                ]                                      =                                       1                                           P                                  z                                                 ⋅                                       [                                                                                                     P                                              x                                                                                                                                                  P                                              y                                                                                                                                                  P                                              z                                                                                                ]                                            \begin{bmatrix} f_{u} & 0 & b_{u} \\ 0 & f_{v} & b_{v} \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} I_{u} \\ I_{v} \\ 1 \end{bmatrix} = \frac{1}{I_{z}} \cdot \begin{bmatrix} I_{x} \\ I_{y} \\ I_{z} \end{bmatrix} = \frac{1}{P_{z}} \cdot \begin{bmatrix} P_{x} \\ P_{y} \\ P_{z} \end{bmatrix}                                    ​fu​00​0fv​0​bu​bv​1​               ​⋅               ​Iu​Iv​1​               ​=Iz​1​⋅               ​Ix​Iy​Iz​​               ​=Pz​1​⋅               ​Px​Py​Pz​​               ​
简记为下式。其中                                    M                              M                  M 为包含                                              f                            u                                  ,                                   b                            u                                  ,                                   f                            v                                  ,                                   b                            v                                       f_{u}, b_{u}, f_{v}, b_{v}                  fu​,bu​,fv​,bv​ 的                                    3                         ×                         3                              3 \times 3                  3×3 矩阵。                                             I                            ⃗                                       \vec{I}                  I              为点                                    I                              I                  I 在虚拟成像平面上的齐次坐标向量。
                                         M                            ⋅                                       I                               ⃗                                      =                                       P                               ⃗                                      /                                       P                               z                                            M \cdot \vec{I} = \vec{P} / P_{z}                     M⋅I              =P              /Pz​
再引入天下坐标系与相机坐标系的相对关系,设相机坐标系在天下坐标系下的旋转矩阵与平移向量为                                   R                              R                  R,                                   T                              T                  T,则小孔成像模子变形为
                                         M                            ⋅                                       I                               ⃗                                      =                            (                            R                            ⋅                                       P                               ⃗                                      +                            T                            )                            /                                       P                               z                               c                                            M \cdot \vec{I} = (R \cdot \vec{P} + T) / P^{c}_{z}                     M⋅I              =(R⋅P              +T)/Pzc​
其中,                                             P                            z                            c                                       P^{c}_{z}                  Pzc​ 仍为                                   P                              P                  P点在相机坐标系下在z轴分量。
相应的,当已知像点坐标,对应物点坐标满足方程
                                                    P                               ⃗                                      =                                       P                               z                               c                                      ⋅                                       R                               T                                      M                                       I                               ⃗                                      −                                       R                               T                                      T                            ,                                       P                               z                               c                                      >                            0                                  \vec{P} = P^{c}_{z} \cdot R^{T} M \vec{I} - R^{T}T, P^{c}_{z} > 0                     P              =Pzc​⋅RTMI              −RTT,Pzc​>0
可见,已知像点坐标,可行物点坐标构成了以相机坐标系原点为起始点,与                                                        O                               I                                      ⃗                                       \vec{OI}                  OI             同向的射线。
2 物点在已知平面条件下的像点物点关系讨论

当已知物点在特定平面下,不是一样平常性地,假设物点在天下坐标系XOY平面中,即物点Z分量为0。此时,特化的小孔成像模子写为
                                         M                            ⋅                                       I                               ⃗                                      =                                       1                                           P                                  z                                  c                                                 ⋅                                       [                                                                                                     r                                              1                                                                                                                            r                                              2                                                                                                            T                                                                                 ]                                      ⋅                                       [                                                                                     X                                                                                                                   Y                                                                                                                   1                                                                                 ]                                      =                                       1                                           P                                  z                                  c                                                 ⋅                            G                            ⋅                                       [                                                                                     X                                                                                                                   Y                                                                                                                   1                                                                                 ]                                            M \cdot \vec{I} = \frac{1}{P^{c}_{z}} \cdot \begin{bmatrix} r_{1} & r_{2} & T \end{bmatrix} \cdot \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} = \frac{1}{P^{c}_{z}} \cdot G \cdot \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix}                     M⋅I              =Pzc​1​⋅[r1​​r2​​T​]⋅               ​XY1​               ​=Pzc​1​⋅G⋅               ​XY1​               ​
其中,                                             r                            1                                       r_{1}                  r1​与                                             r                            2                                       r_{2}                  r2​分别为矩阵                                   R                              R                  R的第1,2列。此时根据像点坐标求解物点坐标方法为
                                                    [                                                                                     X                                                                                                                   Y                                                                                                                   1                                                                                 ]                                      =                                       P                               z                               c                                      ⋅                                       G                                           −                                  1                                                 M                                       I                               ⃗                                            \begin{bmatrix} X \\ Y \\ 1 \end{bmatrix} = P^{c}_{z} \cdot G^{-1} M \vec{I}                                    ​XY1​               ​=Pzc​⋅G−1MI              
这种特殊条件下,假如考虑两个相机模子,对同一物点P,两个像点坐标之间存在关系
                                                    [                                                                                                     I                                              u                                              2                                                                                                                                                  I                                              v                                              2                                                                                                                                  1                                                                                 ]                                      =                                                   P                                  z                                               c                                     1                                                                  P                                  z                                               c                                     2                                                             ⋅                                       M                               2                                           −                                  1                                                            G                               2                                                 G                               1                                           −                                  1                                                            M                               1                                      ⋅                                       [                                                                                                     I                                              u                                              1                                                                                                                                                  I                                              v                                              1                                                                                                                                  1                                                                                 ]                                            \begin{bmatrix} I^{2}_{u} \\ I^{2}_{v} \\ 1 \end{bmatrix} = \frac{P^{c1}_{z}}{P^{c2}_{z}} \cdot M^{-1}_{2} G_{2} G^{-1}_{1} M_{1} \cdot \begin{bmatrix} I^{1}_{u} \\ I^{1}_{v} \\ 1 \end{bmatrix}                                    ​Iu2​Iv2​1​               ​=Pzc2​Pzc1​​⋅M2−1​G2​G1−1​M1​⋅               ​Iu1​Iv1​1​               ​
简记为
                                                    [                                                                                                     I                                              u                                              2                                                                                                                                                  I                                              v                                              2                                                                                                                                  1                                                                                 ]                                      =                                                   P                                  z                                               c                                     1                                                                  P                                  z                                               c                                     2                                                             ⋅                            H                            ⋅                                       [                                                                                                     I                                              u                                              1                                                                                                                                                  I                                              v                                              1                                                                                                                                  1                                                                                 ]                                            \begin{bmatrix} I^{2}_{u} \\ I^{2}_{v} \\ 1 \end{bmatrix} = \frac{P^{c1}_{z}}{P^{c2}_{z}} \cdot H \cdot \begin{bmatrix} I^{1}_{u} \\ I^{1}_{v} \\ 1 \end{bmatrix}                                    ​Iu2​Iv2​1​               ​=Pzc2​Pzc1​​⋅H⋅               ​Iu1​Iv1​1​               ​
考虑第三维分量,可以求得系数项                                             P                            z                                       c                               1                                            /                                   P                            z                                       c                               2                                                 P^{c1}_{z}/P^{c2}_{z}                  Pzc1​/Pzc2​,整理为以下公式
                                                    [                                                                                                     t                                              1                                                                                                                                                  t                                              2                                                                                                                                                  t                                              3                                                                                                ]                                      =                            H                            ⋅                                       [                                                                                                     I                                              u                                              1                                                                                                                                                  I                                              v                                              1                                                                                                                                  1                                                                                 ]                                                          [                                                                                                     I                                              u                                              2                                                                                                                                                  I                                              v                                              2                                                                                                                                  1                                                                                 ]                                      =                                       1                                           t                                  3                                                 ⋅                                       [                                                                                                     t                                              1                                                                                                                                                  t                                              2                                                                                                                                                  t                                              3                                                                                                ]                                            \begin{bmatrix} t_{1} \\ t_{2} \\ t_{3} \end{bmatrix} = H \cdot \begin{bmatrix} I^{1}_{u} \\ I^{1}_{v} \\ 1 \end{bmatrix} \\ \begin{bmatrix} I^{2}_{u} \\ I^{2}_{v} \\ 1 \end{bmatrix} = \frac{1}{t_{3}} \cdot \begin{bmatrix} t_{1} \\ t_{2} \\ t_{3} \end{bmatrix}                                    ​t1​t2​t3​​               ​=H⋅               ​Iu1​Iv1​1​               ​               ​Iu2​Iv2​1​               ​=t3​1​⋅               ​t1​t2​t3​​               ​
综上所述,当已知物点P在天下坐标系XOY平面上时,两个相机下物点P的像点坐标之间满足透视变换关系,这个关系由透视变换矩阵                                   H                              H                  H唯一确定。
3                                    H                              H                  H矩阵的标定

本节讨论2形貌的特殊条件下,                                   H                              H                  H矩阵的求解问题。将                                   H                              H                  H写作
                                         H                            =                                       [                                                                                                     h                                              11                                                                                                                            h                                              12                                                                                                                            h                                              13                                                                                                                                                  h                                              21                                                                                                                            h                                              22                                                                                                                            h                                              23                                                                                                                                                  h                                              31                                                                                                                            h                                              32                                                                                                                            h                                              33                                                                                                ]                                            H = \begin{bmatrix} h_{11} & h_{12} & h_{13} \\ h_{21} & h_{22} & h_{23} \\ h_{31} & h_{32} & h_{33} \end{bmatrix}                     H=               ​h11​h21​h31​​h12​h22​h32​​h13​h23​h33​​               ​
给定一组                                   {                         (                                   I                            u                            1                                  ,                                   I                            v                            1                                  )                         ,                         (                                   I                            u                            2                                  ,                                   I                            v                            2                                  )                         }                              \{(I^{1}_{u}, I^{1}_{v}),(I^{2}_{u},I^{2}_{v})\}                  {(Iu1​,Iv1​),(Iu2​,Iv2​)}坐标对,则对任一对坐标对,求解的                                   H                              H                  H应满足束缚
                                                    [                                                                                                     I                                              u                                              2                                                                                                                                                  I                                              v                                              2                                                                                                                                  1                                                                                 ]                                      =                                       1                                                        h                                     31                                                           I                                     u                                     1                                              +                                               h                                     32                                                           I                                     v                                     1                                              +                                               h                                     33                                                             ⋅                            H                            ⋅                                       [                                                                                                     I                                              u                                              1                                                                                                                                                  I                                              v                                              1                                                                                                                                  1                                                                                 ]                                            \begin{bmatrix} I^{2}_{u} \\ I^{2}_{v} \\ 1 \end{bmatrix} = \frac{1}{h_{31}I^{1}_{u}+h_{32}I^{1}_{v}+h_{33}} \cdot H \cdot \begin{bmatrix} I^{1}_{u} \\ I^{1}_{v} \\ 1 \end{bmatrix}                                    ​Iu2​Iv2​1​               ​=h31​Iu1​+h32​Iv1​+h33​1​⋅H⋅               ​Iu1​Iv1​1​               ​
设                                             H                            0                                       H_{0}                  H0​满足上述束缚,轻易验证,任意                                   H                         =                         s                         ⋅                                   H                            0                                  ,                         s                         ≠                         0                              H = s \cdot H_{0}, s \neq 0                  H=s⋅H0​,s=0均满足上述束缚。
即满足束缚的                                   H                              H                  H有无穷多个,它们之间只差一个缩放系数。而我们只必要求解一个即可。
简朴起见,取                                             h                            33                                  =                         1                              h_{33}=1                  h33​=1。则对于一个点对,我们有方程
                                                    [                                                                                                     I                                              u                                              1                                                                                                                            I                                              v                                              1                                                                                                            1                                                                                             0                                                                                             0                                                                                             0                                                                                                             −                                                               I                                                 u                                                 2                                                                               I                                                 u                                                 1                                                                                                                                            −                                                               I                                                 u                                                 2                                                                               I                                                 v                                                 1                                                                                                                                            −                                                               I                                                 u                                                 2                                                                                                                                                  0                                                                                             0                                                                                             0                                                                                                             I                                              u                                              1                                                                                                                            I                                              v                                              1                                                                                                            1                                                                                                             −                                                               I                                                 v                                                 2                                                                               I                                                 u                                                 1                                                                                                                                            −                                                               I                                                 v                                                 2                                                                               I                                                 v                                                 1                                                                                                                                            −                                                               I                                                 u                                                 v                                                                                                                ]                                      ⋅                                       [                                                                                                     h                                              11                                                                                                                                                  h                                              12                                                                                                                                                  h                                              13                                                                                                                                                  h                                              21                                                                                                                                                  h                                              22                                                                                                                                                  h                                              23                                                                                                                                                  h                                              31                                                                                                                                                  h                                              32                                                                                                                                  1                                                                                 ]                                      =                                       0                               ⃗                                            \begin{bmatrix} I^{1}_{u} & I^{1}_{v} & 1 & 0 & 0 & 0 & -I^{2}_{u}I^{1}_{u} & -I^{2}_{u}I^{1}_{v} & -I^{2}_{u} \\ 0 & 0 & 0 & I^{1}_{u} & I^{1}_{v} & 1 & -I^{2}_{v}I^{1}_{u} & -I^{2}_{v}I^{1}_{v} & -I^{v}_{u} \end{bmatrix} \cdot \begin{bmatrix} h_{11} \\ h_{12} \\ h_{13} \\ h_{21} \\ h_{22} \\ h_{23} \\ h_{31} \\ h_{32} \\ 1 \\ \end{bmatrix} = \vec{0}                     [Iu1​0​Iv1​0​10​0Iu1​​0Iv1​​01​−Iu2​Iu1​−Iv2​Iu1​​−Iu2​Iv1​−Iv2​Iv1​​−Iu2​−Iuv​​]⋅               ​h11​h12​h13​h21​h22​h23​h31​h32​1​               ​=0              
可见一个点对提供了关于                                   H                              H                  H元素的两个线性方程。
最少4个点对,即可求解得到                                   H                              H                  H。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表