Omnidirectional Camera Davide Scaramuzza

Definition 定义

omnidirectional camera (from omni, meaning all) 广角相机: 在一个水平面有360度视野的相机,或视野能覆盖半个球或近似整个球的相机

Background 背景知识

大多数商业相机可以使用 pinhole 相机模型来描述,使用一个 perspective projection 来建模。但是存在一些高畸变成像设备如广角相机,它们不能使用传统小孔相机模型来描述。 目前存在几种构建广角相机的方法。Dioptric cameras 使用一组 shaped lenses(如鱼眼镜头),可以得到大于180度视野,(稍微多余半球); Catadioptric cameras 则使用一个标准相机和一个 shaped mirror — such as a parabolic, hyperbolic, or elliptical mirror,其在水平面可以提供360度视野,仰角方向大于100度;polydioptric camera 通过组合多个相机来重叠相机视野

1. 广角相机成像原理

广角相机成像步骤与普通相机基本一致, 主要的区别在于镜头聚光的部分, 广角相机为了获得更大的FOV, 有三种镜头聚光方式:

  1. Dioptric cameras: 通过透镜来实现, 主要是折射
  2. Catadioptric cameras: 使用一个标准相机加一个面镜(Shaped mirror)
  3. Polydioptric camera: 通过多个相机重叠视野

广角相机引入了很多模型, 为了防止混乱, 我们先总结一下, 我们通常会讨论两种模型: 相机模型和畸变模型.

2. 相机模型

相机模型指的是相机坐标系到理想图像平面(通常也称为Normalize 平面)的投影模型.

注意: 广义上相机模型包括投影成像, 畸变, 内外参等全部模型, 这里讨论的相机模型仅指的透镜/面镜的投影模型.

2.1 针孔相机模型(Pinhole)

针孔相机模型利用透镜进行聚光成像的相机使用的模型, 该模型非常简单:

2.2 全向模型(Omnidirectional)

全向模型利用面镜(mirror)反射进行成像的相机使用的模型. 该模型带有一个参数 .

首先将相机坐标系的点归一化到半径为1的球面上:

然后再投影到图像平面上

其逆变换推导出来如下:

最后,注意下当E=0 时, 全向模型就退化为了针孔模型.

3. 畸变模型

畸变模型指的理想图像平面到真实图像平面的变换模型, 也就是Normalize平面上的畸变模型.

理想的针孔成像模型确定的坐标变换关系均为线性的,而实际上,现实中使用的相机由于镜头中镜片因为光线的通过产生的不规则的折射,镜头畸变(lens distortion)总是存在的,即根据理想针孔成像模型计算出来的像点坐标与实际坐标存在偏差。

3.1 radtan畸变模型

普通相机畸变通常包括径向畸变和切向畸变, 如下图所示.

径向畸变表式沿半径方向的偏移量, 径向畸变的形成原因是镜头制造工艺不完美,使得镜头形状存在缺陷, 通常又分为桶性畸变和枕形畸变,dr 分别代表 往外偏和往里偏.

径向畸变的数学转换为:

切向畸变又分为薄透镜畸变和离心畸变等,薄透镜畸变则是因为透镜存在一定的细微倾斜造成的;离心畸变的形成原因是镜头是由多个透镜组合而成的,而各个透镜的光轴不在同一条中心线上。切向畸变可以用如下数学表达式来描述:

结合径向和切向畸变, 像平面点的转换关系为:

这就是OpenCV calibration使用的畸变模型, 由于参数过多导致数值求解不稳定, 通常只使用 k1,k2,k3,p1,p2, 其他参数设为0. 简化后的模型就是常用的radtan畸变模型:

3.2 鱼眼畸变模型

鱼眼镜头的畸变模型有很多种:

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

畸变投影模型为:

opencv中的fisheye::calibrate就是用的该畸变模型. 也叫作kannala-brandt模型.

3.3 FOV畸变模型

FOV畸变模型转换关系如下:

4. Unified Projection Model

在鱼眼相机中通常会看到Unified Projection Model或者MEI model, 其实就是Omnidirectional相机模型+radtan畸变模型. 前面提到了Omnidirectional模型涵盖了Pinhole模型, 所以MEI model可以表示鱼眼和非鱼眼相机.

参考:

  1. https://blog.csdn.net/u011178262/article/details/86656153
  2. https://blog.csdn.net/okasy/article/details/90665534#fn4
  3. https://zhuanlan.zhihu.com/p/23090593
  4. https://blog.csdn.net/u010128736/article/details/52864024
  5. Kannala J, Brandt S S. A Generic Camera Model and Calibration Method for Conventional, Wide-Angle, and Fish-Eye Lenses[M]. 2006.
  6. Mei C, Rives P. Single view point omnidirectional camera calibration from planar grids[C]//Proceedings 2007 IEEE International Conference on Robotics and Automation. IEEE, 2007: 3945-3950.
  7. Kneip L, Scaramuzza D, Siegwart R. A novel parametrization of the perspective-three-point problem for a direct computation of absolute camera position and orientation[C]//CVPR 2011. IEEE, 2011: 2969-2976.

Theory 理论

0.1 Central omnidirectional cameras

一个视觉系统是 central 的话,那么 被观测物体的所有入射光线汇交于3D空间的一个点,这个点称为 projection center 或 single effective viewpoint。 A vision system is said to be central when the optical rays to the viewed objects intersect in a single point in 3D called projection center or single effective viewpoint

这个属性我们称之为 single effective viewpoint property。 perspective camera 就是一个 central projection system,因为所有的入射光线交于一点: camera optical center。

所有现代鱼眼相机都是 central,所以他们都满足这个属性 single effective viewpoint property。Central catadioptric cameras 由一个相机+mirror 构建,相机和 mirror 的距离需要选择合适。Baker and Nayar [6] 证明了满足 single viewpoint property 的 mirrors 具有什么数学形式, the class of rotated (swept) conic sections, that is, hyperbolic, parabolic, and elliptical mirrors

为什么 single effective viewpoint 是如此的重要了? 1)it allows the user to generate geometrically correct perspective images from the pictures captured by the omnidirectional camera,When the geometry of the omnidirectional camera is known, that is, when the camera is calibrated, one can precompute this direction for each pixel. 2)Epipolar geometry holds for any central camera, both perspective and omnidirectional,这样就可以应用 Epipolar geometry 相关知识到广角相机的图像中了。

0.2 Omnidirectional camera model and calibration

omnidirectional camera 的建模要比标准的 perspective camera 复杂一些。因为在建模的时候需要考虑: catadioptric camera中的 mirror 反射 或者 fisheye camera 中的 镜头折射问题 the reflection operated by the mirror in the case of a catadioptric camera or the refraction caused by the lens in the case of a fisheye camera 这里我们介绍 omnidirectional vision and robotics 中标准的两个不同投影模型,这两个模型其对应的 Matlab toolboxes 可以直接下载应用,所以被广泛使用。

第一个模型就是 the unified projection model for central catadioptric cameras, Geyer and Daniilidis [7] 在2000年提出的,Barreto and Araujo [8]后来优化了一下。这个模型包括了 catadioptric cameras相机中三类 mirror: cameras using a hyperbolic, parabolic, or elliptical mirror. 这个模型是专门针对 central catadioptric cameras 的,不实用于 fisheye cameras。在文献[9]中分析了使用该模型近似分析鱼眼镜头,精度有限。

第二个模型是 unifies both central catadioptric cameras and fisheye cameras under a general model also known as Taylor model,由 Scaramuzza et al. [10,11]于2006年提出,优势就是使用一个模型( a Taylor polynomial)分析 catadioptric and dioptric cameras

0.3 Unified model for central catadioptric cameras Geyer and Daniilidis 在 2000年那篇经典文献指出:任意的 catadioptric (parabolic, hyperbolic, elliptical) 和标准的 perspective projection 都等同于一个 projective mapping ,该映射将 位于 single viewpoint 一个球上的点 投影到 一个平面内,该平面的 the projection center on the perpendicular to the plane and distant ǫ from the center of the sphere

scene point 和 image point 的投影关系如下: the camera and mirror reference frames differ only by a translation along z 相机坐标系和 mirror 坐标系

1)投影的第一步是将 scene point 投影到 the unit sphere

2)将投影点的坐标变换到一个新坐标系下表示,新坐标系的原点位于

新坐标为

注意这个新坐标系原点的位置不同,对应的mirror( 曲线反射面)类型会不一样。

3)接着将点 投影到 normalized image plane

4)最后通过相机内参数矩阵 K 将点投影到相机图像坐标系

function g −1 is bijective and that its inverse g is given by

上面的映射是将 成像平面上的点映射到 the unit vector Ps in the mirror reference frame

方程(6)可以通过反转方程(3)得到,满足约束: Ps 在单位球上。

方程(6)是 central catadioptric cameras 投影模型的核心。It expresses the relation between the point m on the normalized image plane and the unit vector Ps in the mirror reference frame.

这个模型可以准确用于描述 all central catadioptric cameras (parabolic, hyperbolic, and elliptical mirror) and standard perspective cameras. 将该模型用于鱼眼相机存在精度有限的问题。为了克服这个问题,一个新的统一模型被提出来。

0.4 Unified model for catadioptric and fisheye cameras

该模型 Scaramuzza et al. in 2006 提出来的。它与上面的模型主要区别在于 函数 g 的选择。为了克服针对鱼眼相机参数模型的知识缺乏。作者提出使用 Taylor polynomial, the relation between the normalized image point ˜ m = (x m ,y m ,1) and the unit vector P s in the fisheye (mirror) reference frame can be written as:

0.5 Omnidirectional camera calibration

这里主要介绍三个 开源的 Matlab 标定程序,which differ mainly for the projection model adopted and the type of calibration pattern:

1) The toolbox of Mei 使用棋盘格图像标定,使用 Geyer and Daniilidis 的投影模型,该工具箱特征适用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, and spherical mirrors

2) The toolbox of Barreto 使用直线图像标定,没有使用棋盘格,它也使用 Geyer and Daniilidis 的投影模型,该工具箱特别适用于 parabolic mirrors

3) the toolbox of Scaramuzza 使用棋盘格图像标定,它使用 the unified Taylor model for catadioptric and fisheye cameras,该工具箱适用于 catadioptric cameras using hyperbolic, parabolic, folded mirrors, spherical,and elliptical mirrors.

此外它还使用于市面上大多数鱼眼相机, it works with a wide range of fisheye lenses available on the market — such as Nikon, Sigma, Omnitech-Robotics, and many others — with field of view up to 195 degrees

Application 应用

11

相机模型-鱼眼模型/Omnidirectional Camera(1)相关推荐

  1. 相机模型-鱼眼模型(fisheye camera model)

    鱼眼相机模型 (fisheye camera model) 模型介绍 等距投影 等立体角投影 正交投影 体视投影 线性投影 Kannala-Brandt 模型 去畸变过程 投影过程 反投影过程 雅可比 ...

  2. 相机模型-鱼眼模型/鱼眼镜头标定基本原理及实现(2)

    问题: 1 广角/超广角与鱼眼摄像机,角度界限 2 畸变模型中radtan畸变模型与鱼眼畸变模型在小于150范围是否都时能适用.   (同数据,拟合模型不同,,参数结果不同,不欠拟合和过拟合就可) 3 ...

  3. 相机模型 Omnidirectional Camera(全方位摄像机)

    1 相关概念 相机标定 针孔相机 径向畸变 全方位视觉 相机参数(内参,外参) 内参数矩阵 运动结构 极线几何学 2 定义 全向相机是在水平面上具有360度视野,或具有覆盖半球或(近似)整个球体的视野 ...

  4. 3. 全向相机模型Omnidirectional Camera Model

    目录 1. 定义: 2. scaramuzza多项式模型 2.1 模型推导 3. 标定原理 3.1 求外参 3.2 求内参 3.3 非线性优化 4. 感谢您的阅读! 1. 定义: 全向相机(Omnid ...

  5. 相机模型--Catadioptric Omnidirectional Camera

    Catadioptric Omnidirectional Camera CVPR97 Abstract 摘要 传统相机具有有限的视野(limited fields of view)使其在视觉应用中受到 ...

  6. 相机模型之鱼眼模型(Equidistant)

    相机模型之鱼眼相机模型(Equidistant/Kannala-Brandt) 文章目录 相机模型之鱼眼相机模型(Equidistant/Kannala-Brandt) 前言 Equidistant投 ...

  7. SLAM 中常用的相机模型畸变模型总结

    文章目录 Overview Camera models Pinhole omnidirectional Distortion models Equidistant (EQUI) Radtan FOV ...

  8. OpenCV全向相机校准Omnidirectional Camera Calibration

    OpenCV全向相机校准 全向相机校准 前言 单相机校准 立体校准 图像校正 立体声重建 全向相机校准 前言 本教程将介绍全向摄像机校准模块的以下部分: 校准单个摄像机. 校准一对立体声摄像机. 校正 ...

  9. 相机的针孔模型及其内参数,外参数的理解

    相机的针孔模型及其内参数,外参数的理解 2019.10.18 FesianXu 文章目录 @[toc] 前言 相机的针孔模型 坐标系的改变 考虑更多因素 总结 更新说明 Reference 前言 在相 ...

  10. [计算机视觉] (三)相机的针孔成像模型

    目录 1 概述 2 归一化成像平面坐标系和相机坐标系的转换 3 归一化成像平面坐标系和物理成像坐标系的转换 4 世界坐标系和相机坐标系的转换 4.1 刚体运动 4.2 坐标系转换(坐标映射) 4.3 ...

最新文章

  1. 常见计算机英语,常见计算机英语词汇
  2. Scrapy框架的学习(5.scarpy实现翻页爬虫,以及scrapy.Request的相关参数介绍)
  3. 权限基本操作:实体类和dao
  4. Java官方相关资源文件的获取教程
  5. 最长回文子串和回文链表
  6. LoadRunner常见问题分析
  7. Java编码与乱码问题
  8. 对于纯Java项目,JVM 各个类加载器的加载目标是什么?
  9. IllegalStateException: Error reading delta file hdfs://xxx/spark/xx/state/0/11/1.delta
  10. 转载 : JSP取得绝对路径
  11. Python爬虫入门之使用Redis+Flask维护动态代理池
  12. python静态递归函数_python—递归函数
  13. 探索 Rust 异步简化编程
  14. 第一次作业 四班05
  15. 服务价格实惠的Andr​​oid游戏开发公司
  16. SecureCRT软件安装
  17. 关于神经网络的输出神经元个数的思考
  18. 必应(bing)广告的费用是多少?bing搜索广告推广简介
  19. 【Python】多进程 AttributeError: Can‘t pickle local object
  20. Git分支管理及命名规范

热门文章

  1. Proxmox VE 配置 朵拉云 桌面虚拟化
  2. 您未被授权查看该页; HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝。
  3. 与班尼特·胡迪一起攻破浮空城 (HZNU-2264)
  4. 计网考点 无线局域网
  5. 企业级和个人苹果帐号AppleId申请
  6. 一文带你全面了解什么是颠覆时代的Web3.0未来互联网
  7. 双系统安装 Ubuntu 18.04 以及删除双系统中的 Ubuntu 的方法
  8. js判断浏览器是pc端还是手机端
  9. 百度迟到移动互联网:寻入口级产品 文化成挑战
  10. UI自动化之分层思想pom模式