一、鱼眼镜头模型

  鱼眼镜头一般是由十几个不同的透镜组合而成的,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头与普通镜头相比起来拥有了更大的视野范围。下图表示出了鱼眼相机的一般组成结构。最前面的两个镜头发生折射,使入射角减小,其余的镜头相当于一个成像镜头,这种多元件的构造结构使对鱼眼相机的折射关系的分析变得相当复杂。

  研究表明鱼眼相机成像时遵循的模型可以近似为单位球面投影模型。可以将鱼眼相机的成像过程分解成两步:第一步,三维空间点线性地投影到一个球面上,它是一个虚拟的单位球面,它的球心与相机坐标系的原点重合;第二步,单位球面上的点投影到图像平面上,这个过程是非线性的。下图表示出了鱼眼相机的成像过程。

  我们知道,普通相机成像遵循的是针孔相机模型,在成像过程中实际场景中的直线仍被投影为图像平面上的直线。但是鱼眼相机如果按照针孔相机模型成像的话,投影图像会变得非常大,当相机视场角达到180°时,图像甚至会变为无穷大。所以,鱼眼相机的投影模型为了将尽可能大的场景投影到有限的图像平面内,允许了相机畸变的存在。并且由于鱼眼相机的径向畸变非常严重,所以鱼眼相机主要的是考虑径向畸变,而忽略其余类型的畸变。
二、投影函数

  为了将尽可能大的场景投影到有限的图像平面内,鱼眼相机会按照一定的投影函数来设计。根据投影函数的不同,鱼眼相机的设计模型大致能被分为四种:等距投影模型、等立体角投影模型、正交投影模型和体视投影模型。下面的四种鱼眼相机的投影模型反映出了空间中的一点P是如何投影到球面上,然后到图像平面上成像的。
1、等距投影模型

rd=fθ

上述式子中,rd表示鱼眼图像中的点到畸变中心的距离,是鱼眼相机的焦距,是入射光线与鱼眼相机光轴之间的夹角,即入射角。

2、等立体角投影模型

rd=2fsin(θ2)

3、正交投影模型

rd=fsin(θ)

4、体视投影模型

rd=2ftan(θ2)

三、OpenCV中的鱼眼相机模型

  OpenCV中使用的模型是由Kannala提出的一种鱼眼相机的一般近似模型。在等距投影模型的基础上提出来的。下面来详细分析其鱼眼相机模型的提出过程。我们可以将鱼眼相机模型的形式统一以等距投影模型的形式来表示,即

对实际的鱼眼镜头来说,它们不可能精确地按照投影模型来设计,所以为了方便鱼眼相机的标定,Kannala提出了一种鱼眼相机的一般多项式近似模型。通过前面的四个模型,可以发现 θd是θ的奇函数,而且将这些式子按泰勒级数展开,发现 θd可以用θ 的奇次多项式表示,即

为了实际计算的方便,需要确定式中 θd取到的次幂数。Kannala提出取式的前五项即取到的九次方,就给出了足够的自由度来很好地近似各种投影模型。 θd的一次项系数可以为1,于是OpenCV中使用的鱼眼相机模型为:

  上式表示的模型是根据四种鱼眼相机投影模型得出的一种通用鱼眼相机多项式模型。这种模型根据θ能够得到 θd ,即通过无畸变图像中的点能够计算出鱼眼图像中的畸变点。这种模型在OpenCV的鱼眼相机标定方法中是适用的,因为OpenCV借助标定板对鱼眼相机进行标定。从空间点到鱼眼图像上的点的变换过程可用式子表示为:

上面式子中, X表示空间点,Xc表示相机坐标系下对应的空间点, R和t分别是两个坐标系之间的旋转矩阵和平移向量, (u,v)T 表示投影到鱼眼图像上的对应点。OpenCV中对鱼眼相机的标定步骤能够分成四步:(1)初始化内参数;(2)初始化外参数;(3)使用LM算法最小化定位的图像点和投影的图像点之间的投影误差;(4)确定结果。 
————————————————
版权声明:本文为CSDN博主「sylvester0510」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010128736/article/details/52864024

机器视觉——鱼眼相机成像模型相关推荐

  1. 鱼眼相机成像模型学习

    0.前言 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素),这个过程可以用一个几何模型进行描述,其中最简单的一个模型称为针孔模型.之所以说它简单,是因为这是个线性变换:但是实际的相 ...

  2. 鱼眼相机成像模型以及基于OpenCV标定鱼眼镜头(C++)

    opencv系列 文章目录 opencv系列 一.鱼眼镜头模型 二.投影函数 等距投影模型 等立体角投影模型 正交投影模型 体视投影模型 三.OpenCV中的鱼眼相机模型 四.标定(C++)实现 使用 ...

  3. 从零开始一起学习SLAM(8)相机成像模型

    文章目录 小孔成像 纷繁复杂的坐标系 针孔相机成像原理 相机畸变   此文发于公众号:计算机视觉life.   原文链接:从零开始一起学习SLAM | 相机成像模型 上一篇文章<从零开始一起学习 ...

  4. 相机标定(三)-相机成像模型

    >>>文章索引<<< 相机标定(一)-原理及内参.外参 相机标定(二)-畸变校正,张正友标定法 相机标定(三)-相机成像模型 1 人眼&相机结构 1.1 类 ...

  5. 【鱼眼相机模型】鱼眼相机投影模型理解

    一.从普通镜头到鱼眼镜头 如图1所示,普通镜头下的光线依据针孔相机模型进行成像(该部分可参考相机投影关系).但该模型存在一个缺陷:相机视野范围越大,所需的成像平面也越大,当相机视野范围要求在180°时 ...

  6. 相机内参_鱼眼相机标定模型

    Camera Calibration是计算Camera的extrinsic(外参)和 intrinsic(内参)的过程.一旦你标定完成了一个camera,你即可从2维图像中去恢复3维图像.你同样可以在 ...

  7. 相机成像模型、相机内参、外参、以及相机标定

    看了一圈各个平台讲解相机模型.相机标定的文章,很多只是简单罗列几个公式,其中的细节都没说明,本着学习的出发点写下这篇文章,希望能给初学者解惑.本文主要讲解相机模型,一步步推导从世界坐标系到图像坐标系的 ...

  8. 单目相机成像模型——针孔相机模型

    高翔:SLAM十二讲阅读笔记 本节主要注意四个坐标:世界,相机,归一化相机,像素. 针孔相机模型 相机坐标转换成像素坐标,由内参数矩阵决定. 相机位姿决定世界坐标转换成相机坐标:即外参数矩阵 内参数矩 ...

  9. 视觉SLAM学习--相机成像模型及标定

    相机模型1:B站热心网友的视频讲解,比较清楚 链接:https://www.bilibili.com/video/BV1Rh411o7Jb/?spm_id_from=333.788.recommend ...

最新文章

  1. python课程费用-上海Python数据分析课程
  2. 线程和进程的对比之优缺点
  3. 修改mysql表的itemId字段为自增长SQL语句
  4. 导数卷积 (NTT)
  5. Python print 函数- Python零基础入门教程
  6. 金龟子说的openeim
  7. python机器学习-sklearn挖掘乳腺癌细胞(五)
  8. html和css设计网页实例,经典网页设计:30个创意的 CSS 应用案例
  9. 论文检测_免费论文检测系统
  10. 2440 led-管道-控制应用程序详细解释(摘抄+解释部分)
  11. 基于ESXi虚拟服务器搭建
  12. 一文曝光字节跳动薪资职级,资深开发的收入你意想不到~
  13. JS - 判断当前浏览器是不是PC浏览器
  14. overscroll-behavior
  15. 微信小程序-退款业务
  16. android平板外接显示器,iPad平板外接显示器教程 | iPad平板怎么外接显示器_什么值得买...
  17. windows密码破解(哈希破解技术)
  18. 在自建机房给网站做ICP备案
  19. 量子近似优化算法QAOA——解读与代码实现
  20. web项目高并发量网站解决方案

热门文章

  1. 继承基础概念与公有继承
  2. bzoj 4319: cerc2008 Suffix reconstruction(构造)
  3. bzoj 3611: [Heoi2014]大工程(虚树+树形DP)
  4. [debug] 开源项目的本地使用:使用pip安装的函数库不能被anaconda和pycharm使用+visdom使用 +路径问题
  5. Kubernetes部分Volume类型介绍及yaml示例
  6. DataGrid中間隔色的實現
  7. 数组和指针(sizeof两者的关系)
  8. 使用Fraps获取3D程序的FPS
  9. PLC状态机编程第六篇-优化PLC程序生成
  10. 课堂练习--最大子数组和