IPM逆透视变换问题(2):Image --> Ground

本文详细讲解了IPM逆透视变换中,如何从像素坐标通过一系列旋转和变换步骤,最终得到从世界坐标到地面点的转换矩阵。重点介绍了姿态角的处理、消失点的计算以及关键矩阵的推导,适合深入理解相机坐标系和图像投影原理。

IPM逆透视变换问题(2):Image --> Ground

1. 如果前置条件如下:

  1. 坐标系坐标系定义为:世界(右-前-上),相机(右-下-前),像素(右-下);
  2. 旋转角度表示为:绕zzz轴为yawyawyaw偏航角,绕yyy轴为rollrollroll滚转角,绕xxx轴负方向为pitchpitchpitch俯仰角,正负按照右手定则;
  3. 实际上在表达yaw,pitch,rollyaw,pitch,rollyaw,pitch,roll姿态角时默认在(前-左-上)坐标系上进行,因此在表达这些角度时也可以增加一个(前-左-上)坐标系,从乘一次旋转矩阵。

2. 则点从像素坐标系到世界坐标系逆透视变换如下:

世界坐标系(右-前-上)沿着自身ZZZ轴平移hhh,得到TwtT_{wt}Twt:
Twt=[10000100001h0001](1) \begin{aligned} T_{wt} &= \begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&h\\ 0&0&0&1\end{bmatrix} \qquad &(1) \\ \end{aligned} Twt=10000100001000h1(1)

相机的姿态角度(滚转,俯仰,偏航(roll,pitch,yaw)(roll,pitch,yaw)(roll,pitch,yaw)对应在世界坐标系(右前上)是(α=−pitch,β=roll,γ=yaw)(\alpha = -pitch, \beta = roll, \gamma = yaw)(α=pitch,β=roll,γ=yaw),计算消失点时滚转角无影响即roll=0roll=0roll=0,则绕着固定坐标系X,Y,ZX,Y,ZX,Y,Z三个坐标轴旋转后得到的变换矩阵TwrT_{wr}Twr:
Twr=Twz⋅Twy⋅Twx=[cos(γ)−sin(γ)00sin(γ)cos(γ)0000100001][cos(β)0sin⁡(β)00100−sin⁡(β)0cos(β)00001][10000cos⁡(α)−sin⁡(α)00sin⁡(α)cos⁡(α)00001]=[cos(γ)−sin(γ)00sin(γ)cos(γ)0000100001][1000010000100001][10000cos⁡(α)−sin⁡(α)00sin⁡(α)cos⁡(α)00001]=[cos⁡(γ)−sin⁡(γ)cos⁡(α)sin⁡(γ)sin⁡(α)0sin⁡(γ)cos⁡(γ)cos⁡(α)−cos⁡(γ)sin⁡(α)00sin⁡(α)cos⁡(α)00001](2) \begin{aligned} T_{wr} &= T_{wz} \cdot T_{wy} \cdot T_{wx} \\ &= \begin{bmatrix}cos\left(\gamma \right)&-sin\left(\gamma \right)&0&0\\ sin\left(\gamma \right)&cos\left(\gamma \right)&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}cos\left(\beta \right)&0&\sin \left(\beta \right)&0\\ 0&1&0&0\\ -\sin \left(\beta \right)&0&cos\left(\beta \right)&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}1&0&0&0\\ 0&\cos \left(α\right)&-\sin \left(α\right)&0\\ 0&\sin \left(α\right)&\cos \left(α\right)&0\\ 0&0&0&1\end{bmatrix}\\ &= \begin{bmatrix}cos\left(\gamma \right)&-sin\left(\gamma \right)&0&0\\ sin\left(\gamma \right)&cos\left(\gamma \right)&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}1&0&0&0\\ 0&\cos \left(α\right)&-\sin \left(α\right)&0\\ 0&\sin \left(α\right)&\cos \left(α\right)&0\\ 0&0&0&1\end{bmatrix}\\ &= \begin{bmatrix}\cos \left(γ\right)&-\sin \left(γ\right)\cos \left(α\right)&\sin \left(γ\right)\sin \left(α\right)&0\\ \sin \left(γ\right)&\cos \left(γ\right)\cos \left(α\right)&-\cos \left(γ\right)\sin \left(α\right)&0\\ 0&\sin \left(α\right)&\cos \left(α\right)&0\\ 0&0&0&1\end{bmatrix} \qquad &(2) \\ \end{aligned} Twr=TwzTwyTwx=cos(γ)sin(γ)00sin(γ)cos(γ)0000100001cos(β)0sin(β)00100sin(β)0cos(β)0000110000cos(α)sin(α)00sin(α)cos(α)00001=cos(γ)sin(γ)00sin(γ)cos(γ)0000100001100001000010000110000cos(α)sin(α)00sin(α)cos(α)00001=cos(γ)sin(γ)00sin(γ)cos(α)cos(γ)cos(α)sin(α)0sin(γ)sin(α)cos(γ)sin(α)cos(α)00001(2)

世界坐标系(右前上)相机自身的(右前上)坐标系到相机的变换TwoT_{wo}Two
Two=Twt⋅Twr=[10000100001h0001][cos⁡(γ)−sin⁡(γ)cos⁡(α)sin⁡(γ)sin⁡(α)0sin⁡(γ)cos⁡(γ)cos⁡(α)−cos⁡(γ)sin⁡(α)00sin⁡(α)cos⁡(α)00001]=[cos⁡(γ)−sin⁡(γ)cos⁡(α)sin⁡(γ)sin⁡(α)0sin⁡(γ)cos⁡(γ)cos⁡(α)−cos⁡(γ)sin⁡(α)00sin⁡(α)cos⁡(α)h0001](3) \begin{aligned} T_{wo} &=T_{wt} \cdot T_{wr}\\ &= \begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&h\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}\cos \left(γ\right)&-\sin \left(γ\right)\cos \left(α\right)&\sin \left(γ\right)\sin \left(α\right)&0\\ \sin \left(γ\right)&\cos \left(γ\right)\cos \left(α\right)&-\cos \left(γ\right)\sin \left(α\right)&0\\ 0&\sin \left(α\right)&\cos \left(α\right)&0\\ 0&0&0&1\end{bmatrix}\\ &= \begin{bmatrix}\cos \left(γ\right)&-\sin \left(γ\right)\cos \left(α\right)&\sin \left(γ\right)\sin \left(α\right)&0\\ \sin \left(γ\right)&\cos \left(γ\right)\cos \left(α\right)&-\cos \left(γ\right)\sin \left(α\right)&0\\ 0&\sin \left(α\right)&\cos \left(α\right)&h\\ 0&0&0&1\end{bmatrix} \qquad &(3) \end{aligned} Two=TwtTwr=10000100001000h1cos(γ)sin(γ)00sin(γ)cos(α)cos(γ)cos(α)sin(α)0sin(γ)sin(α)cos(γ)sin(α)cos(α)00001=cos(γ)sin(γ)00sin(γ)cos(α)cos(γ)cos(α)sin(α)0sin(γ)sin(α)cos(γ)sin(α)cos(α)000h1(3)

相机自身的(右前上)坐标系相机坐标系的变换TcoT_{co}Tco
Toc=[1000010000100001][1000010000100001][100000100−1100001]=[100000100−1100001](4) \begin{aligned} T_{oc} &= \begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}1&0&0&0\\ 0&1&0&0\\ 0&0&1&0\\ 0&0&0&1\end{bmatrix} \begin{bmatrix}1&0&0&0\\ 0&0&1&0\\ 0&-1&1&0\\ 0&0&0&1\end{bmatrix}\\ &= \begin{bmatrix}1&0&0&0\\ 0&0&1&0\\ 0&-1&1&0\\ 0&0&0&1\end{bmatrix} \qquad &(4) \end{aligned} Toc=1000010000100001100001000010000110000010011000

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值