相机模型-Extended Unified Camera Model

相机模型-Extended Unified Camera Model


之前讲到了Unified Camera Model模型,该模型是借助于一个虚拟的单位球来模拟相机的畸变,而本文要讲的Extended Unified Camera Model与它十分相似,只是将单位球变成了椭球,这个椭球在光轴方向上的轴长度为1,而平行于像平面的两个轴为对应的模型参数,具体的如下文所讲。

模型介绍

同样我画了一个简易图用来简单地描述一下这个模型,假设椭球面的方程为 β ( x 2 + y 2 ) + z 2 = 1 \beta(x^2+y^2)+z^2=1 β(x2+y2)+z2=1,对于相机坐标系下一点 P ( x , y , z ) P(x, y, z) P(x,y,z),将其归一化到椭球平面上得到点 P s = ( x β ( x 2 + y 2 ) + z 2 , y β ( x 2 + y 2 ) + z 2 , z β ( x 2 + y 2 ) + z 2 ) P_s=({x \over {\sqrt{\beta(x^2+y^2)+z^2}}}, {y \over {\sqrt{\beta(x^2+y^2)+z^2}}}, {z \over {\sqrt{\beta(x^2+y^2)+z^2}}}) Ps=(β(x2+y2)+z2 x,β(x2+y2)+z2 y,β(x2+y2)+z2 z)同样,可以找到一个以虚拟光心(与原光心只存在光轴上的平移,设平移量为 ξ \xi ξ)为原点的虚拟相机坐标系,那么此时 P s P_s Ps在虚拟相机坐标系下的坐标变为 P s ′ = ( x β ( x 2 + y 2 ) + z 2 , y β ( x 2 + y 2 ) + z 2 , z β ( x 2 + y 2 ) + z 2 + ξ ) P'_s=({x \over {\sqrt{\beta(x^2+y^2)+z^2}}}, {y \over {\sqrt{\beta(x^2+y^2)+z^2}}}, {z \over {\sqrt{\beta(x^2+y^2)+z^2}}}+\xi) Ps=(β(x2+y2)+z2 x,β(x2+y2)+z2 y,β(x2+y2)+z2 z+ξ)投影到像平面中,可以得到归一化到焦平面上的点坐标为 p d = ( x z + ξ β ( x 2 + y 2 ) + z 2 , y z + ξ β ( x 2 + y 2 ) + z 2 , 1 ) p_d=({x\over{z + \xi\sqrt{\beta(x^2+y^2)+z^2}}}, {y\over{z + \xi\sqrt{\beta(x^2+y^2)+z^2}}}, 1) pd=(z+ξβ(x2+y2)+z2 x,z+ξβ(x2+y2)+z2 y,1)
在这里插入图片描述
上述过程就是改模型的投影过程,然后来看一下反投影过程,同样假设在 O P s OP_s OPs上存在一点 P s ′ = ( x d , y d , z ′ ) P_s'=(x_d, y_d, z') Ps=(xd,yd,z),该点投影到归一化焦平面上时与 P s P_s Ps对应的时同一个点,从而可以得到 z ′ + ξ β ( x d 2 + y d 2 ) + z ′ 2 = 1 {z' + \xi\sqrt{\beta(x_d^2+y_d^2)+z'^2}}=1 z+ξβ(xd2+yd2)+z2 =1

syms r xi z b
solve(z + xi * sqrt(z^2 + b * r^2) == 1, z)

z ′ = ξ 1 + β r 2 ( 1 − ξ 2 ) − 1 ξ 2 − 1 z' ={ {\xi \sqrt{1+\beta r^2(1-\xi^2)}-1} \over {\xi^2-1}} z=ξ21ξ1+βr2(1ξ2) 1

投影过程

  1. 设相机坐标系下一点 P c = ( x c , y c , z c ) P_c=(x_c, y_c, z_c) Pc=(xc,yc,zc),将其归一化到椭球面上 P s = ( x s , y s , z s ) = ( x c ρ , y c ρ , z c ρ ) P_s=(x_s, y_s, z_s) = ({{x_c}\over\rho}, {y_c \over \rho}, {{z_c} \over \rho}) Ps=(xs,ys,zs)=(ρxc,ρyc,ρzc),其中 ρ = β ( x c 2 + y c 2 ) + z c 2 \rho={\sqrt{\beta(x_c^2+y_c^2)+z_c^2}} ρ=β(xc2+yc2)+zc2
  2. 转换到虚拟像平面上得到 p = ( x p , y p , 1 ) = ( x s z s + ξ ρ , y s z s + ξ ρ , 1 ) p=(x_p, y_p, 1)=({x_s \over {z_s + \xi \rho}}, {y_s \over {z_s + \xi\rho}}, 1) p=(xp,yp,1)=(zs+ξρxs,zs+ξρys,1)
  3. p p p添加畸变(参考针孔模型加畸变),得到 p d = ( x d , y d , 1 ) p_d=(x_d, y_d, 1) pd=(xd,yd,1),该步骤是可选项。
  4. 得到像素坐标 u = f x x d + c x , v = f y y d + c y u = f_xx_d + cx, v = f_yy_d + cy u=fxxd+cx,v=fyyd+cy

反投影过程

  1. 设图像上某个点 p = (u, v);
  2. 得到归一化焦平面上坐标 p d = ( u − c x f x , u − c y f y , 1 ) p_d=({{u-cx}\over f_x}, {{u-cy}\over f_y},1) pd=(fxucx,fyucy,1).
  3. 进行去畸变处理,可参考针孔相机模型去畸变,得到 p u d = ( x u d , y u d , 1 ) p_ud = (x_{ud}, y_{ud},1) pud=(xud,yud,1)
  4. 转换到相机坐标系下 P c = ( x u d , y u d , ξ 1 + β r 2 ( 1 − ξ 2 ) − 1 ξ 2 − 1 ) P_c = (x_{ud}, y_{ud}, { {\xi \sqrt{1+\beta r^2(1-\xi^2)}-1} \over {\xi^2-1}}) Pc=(xud,yud,ξ21ξ1+βr2(1ξ2) 1),其中, r 2 = x u d 2 + y u d 2 r^2=x_{ud}^2+y_{ud}^2 r2=xud2+yud2
  5. 归一化到椭球面上。

雅可比计算

感兴趣的可以参考之前的一些相机模型中介绍的方法,我实在时不想编辑公式了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值