opencv fisheye calibration(鱼眼相机校正)

fisheye_calibration

小孔成像模型(理想相机成像模型)

请参考下面的文章
理想相机成像模型

fisheye model 相机模型

fisheye model opencv 里使用的鱼眼成像模型。

  1. 等距投射模型
    在这里插入图片描述
    P点射过来的光线,按照这个模型会成像到上图P’点。但是实际上由于畸变,他不是成像到P’点,而是这一点附近。可以用P’点的多项式展开来近似。

  2. 鱼眼成像模型为什么会增大视场角?
    几种模型的视场角

  3. 从Z 轴俯视看成像模型如下,可看出rd 和rc的关系,以及xd,yd 与rc 的关系。
    在这里插入图片描述

  4. 由小孔成像影射几何以及上面的等距模型可以把fisheye model 抽象成下面的模型。从上到下依次是公式1-公式7.
    在这里插入图片描述

  5. 理想相机模型VS鱼眼相机模型
    在这里插入图片描述

内参校正的原理

输入:一堆世界坐标系下的3D 坐标点,和相应的这些棋盘坐标点经过相机成像之后的2D像素坐标点。
输出:内参(9个)( f x , f y , c x , c y , k 0 , k 1 , k 2 , k 3 , α f_x,f_y,c_x,c_y,k_0,k_1,k_2,k_3,\alpha fx,fy,cxcyk0,k1,k2,k3,α), 外参(6 个)( r v e c , t v e c rvec,tvec rvec,tvec)

  • 问题域描述:

  • 已知: u i , v i ⇐ ⇒ X i , Y i , Z i u_i,v_i \Leftarrow\Rightarrow X_i,Y_i,Z_i ui,viXi,Yi,Zi, i = [ 1 ⋯ N ] i=[1 \cdots N] i=[1N] 共N组数据对,

  • 求:求解内参和外参,内参( f x , f y , c x , c y , k 0 , k 1 , k 2 , k 3 f_x,f_y,c_x,c_y,k_0,k_1,k_2,k_3 fx,fy,cxcyk0,k1,k2,k3), 外参( r v e c , t v e c rvec,tvec rvec,tvec)

  • 求解方法:这类问题如何求解请参考另一篇博文。
    可以认为自变量是待求的参数(15个),因变量是 u , v u,v u,v, 导数是 u , v u,v u,v分别对15 个参数的偏导 ∂ u ∂ f x \partial u \over \partial f_x fxu, ∂ u ∂ f y \partial u \over \partial f_y fyu, ∂ u ∂ c x ⋯ {\partial u \over \partial c_x} \cdots cxu

calibration过程

在这里插入图片描述

对这个过程简单分析

  1. 第一步初始化内参(finalParam.init()), 不需要过多分析。初始化的值对最终的结果影响很小, 我尝试修改初始化的内参,对最终的结果影响很小。
  2. 第二步,计算外参(CalibrateExtrinsics())
  3. 第三步,优化内参加外参(Optimization)。
  4. CalibrateExtrinsics() 函数会循环对每一张输入的图片做一次InitExtrinsics() 和ComputeExtrinsicRefine(), 这里的ComputeExtrinsicRefine() 只会根据当前图像的棋盘点(比如8X5=40个点)对外参进行refine. 这一步对外参的估算是在固定的初始化内参的情况下进行的。内参不变。
  5. Optimization,是针对所有图像的所有点进行的优化,同时对内参和外参都进行了优化。优化的方法使用的是牛顿-- 拉夫逊方法 (Newton-Raphson method)
  6. 具体每个函数的详细分析, 请参专门对每个函数分析的文章。
  • InitExtrinsics函数分析
  • 协方差矩阵的 几何意义
  • ComputeHomography函数分析
  • ComputeExtrinsicRefine函数分析
  • projectPoints函数分析
  • Optimization分析

参考文章

  1. 鱼眼成像几种模型
  2. 理想相机成像模型
  3. 几种模型的视场角
  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值