鱼眼相机模型


1鱼眼相机模型

f f f为焦距, θ \theta θ为光线与光轴的夹角, r r r为像点到图像坐标系原点的距离。
则对于针孔相机模型有:
r = f t a n θ r=ftan\theta r=ftanθ
鱼眼相机模型通常有四种
(1)等距投影
r = f . θ r=f.\theta r=f.θ
(2)等立体角投影
r = 2 f . s i n ( θ 2 ) r=2f.sin(\frac{\theta}{2}) r=2f.sin(2θ)
(3)正交投影
r = f . s i n θ r=f.sin\theta r=f.sinθ
(4)体视投影
r = 2 f . t a n ( θ 2 ) r=2f.tan(\frac{\theta}{2}) r=2f.tan(2θ)
对于畸变改正,应用Kannala-Brandt 模型,则上面四种投影方式会得到相同的改正形式,改正后的 θ d \theta_d θd
θ d = k 0 . θ + k 1 . θ 3 + k 2 . θ 5 + k 3 . θ 7 + . . . \theta_d=k_0.\theta+k_1.\theta^3+k_2.\theta^5+k_3.\theta^7+... θd=k0.θ+k1.θ3+k2.θ5+k3.θ7+...
最常用的为等距投影模型。

2鱼眼等距投影坐标计算

假设相机坐标系为 O c X c Y c Z c O_cX_cY_cZ_c OcXcYcZc,图像坐标系为 x o y xoy xoy,物体在相机坐标系下的坐标为 P ( x , y , z ), p 1 P(x,y,z),p_1 Px,y,z),p1(黑色点)为针孔相机投影到图像平面的点, p 2 p_2 p2(红色点)为鱼眼相机等距投影点, r 1 ( o p 1 ) , r 2 ( o p 2 ) r_1(op_1),r_2(op_2) r1(op1),r2(op2)分别为针孔模型、鱼眼模型的像点到图像坐标系原点的距离,P’为P在相机坐标系 O c X c Y c O_cX_cY_c OcXcYc的投影。
(1)解算 θ \theta θ

计算方式1:,则 θ = a r c t a n ( ( x 2 + y 2 ) 0.5 / z ) \theta=arctan((x^2+y^2)^{0.5}/z) θ=arctan((x2+y2)0.5/z)
计算方式2:对xy进行归一化,令 a = x / z , b = y / z , R 2 = a 2 + b 2 , θ = a r c t a n ( R ) a=x/z,b=y/z,R^2=a^2+b^2,\theta=arctan(R) a=x/z,b=y/z,R2=a2+b2,θ=arctan(R)
两种方法等效。
(2)计算图像坐标
对于针孔模型而言,光束是沿直线传播的,即 P , O c , p 1 P,Oc,p1 P,Oc,p1三点共线。所以:有三角形 O c P P ′ O_cPP' OcPP相似于三角形 O c p 1 o O_cp_1o Ocp1o,所以:向量 p ′ O c p'O_c pOc平行于向量 o p 1 op_1 op1,所以:二者与y轴的夹角相等,记为 β \beta β。在相机坐标系中有 s i n ( β ) = a / R sin(\beta)=a/R sin(β)=a/R。在图像坐标系中,有 s i n ( β ) = x 1 / r 1 = x 2 / r 2 sin(\beta)=x_1/r_1=x_2/r_2 sin(β)=x1/r1=x2/r2。所以鱼眼相机的图像坐标:
x 2 = a . r 2 / R y 2 = b . r 2 / R x_2=a.r_2/R\\ y_2=b.r_2/R x2=a.r2/Ry2=b.r2/R
a,b,R可以根据坐标和计算出来,现在的问题是怎么求解 r 2 r_2 r2
针对等距模型而言: r = f . θ r=f.\theta r=f.θ,这里不妨让 f = 1 f=1 f=1,则 r = θ = a r c t a n ( R ) r=\theta=arctan(R) r=θ=arctan(R),所以对于等距模型而言,其畸变改正后的图像坐标为:
x 2 = a . θ d / R y 2 = b . θ d / R x_2=a.\theta_d/R\\ y_2=b.\theta_d/R x2=a.θd/Ry2=b.θd/R
像素坐标系下坐标为:
u = f x ( x 2 + α . y 2 ) + c x v = f y . y 2 + c y u=f_x(x_2+\alpha .y_2)+cx\\ v=f_y.y_2+cy u=fx(x2+α.y2)+cxv=fy.y2+cy
f x , f y f_x,f_y fx,fy为焦距, α \alpha α为扭曲系数(不太理解这里为什么引入这个参数), c x , c y cx,cy cx,cy为像主点坐标。

3鱼眼相机标定

opencv提供了两种模型的标定方法
CMei模型,位于cv::omnidir命名空间中
以及Kannala模型,位于cv::fisheye命名空间。
此外matlab也提供了基于CMei模型的标定方法。
参考:
opencv文档
1
2
球面投影
CMei模型:《Single View Point Omnidirectional Camera Calibration from Planar Grids》
《A generic camera model and calibration method for conventional, wide-angle, and fish-eye lenses》
《车载鱼眼相机自标定研究》–石恬

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值