目录

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

1. 定义:

全向相机(Omnidirectional Camera Model)是在水平面上具有360度视野,或具有覆盖半球或(近似)整个球体的视野的相机。

大多数商用相机都可以描述为针孔相机,通过透视投影进行建模。然而,有些投影系统的几何结构无法使用传统针孔模型来描述,因为成像设备引入了非常高的失真。全向相机系统就是其中一种。
(1)屈光照相机(Dioptirc cameras)使用成形透镜的组合(例如鱼眼透镜,图1a),并且可以达到甚至大于180度的视野(即略大于半球)。
(2)折反射相机(Catadioptric cameras)将标准相机与成型镜(如抛物面镜、双曲面镜或椭圆镜)相结合,在水平面上提供360度的视野,在仰角(elevation)上提供100度以上的视野(图1b)。
(3)多折射相机使用多个具有重叠视场的相机(图1c),迄今为止是唯一提供真正全向(球形)视场的相机。

2. scaramuzza多项式模型

直观地说,全向相机的模型比标准透视相机稍微复杂一点。该模型确实应该考虑折反射相机的镜面反射,或者鱼眼相机的镜头折射。
目前有两种全向相机模型标准:
第一种模型称为中央折反射相机的统一投影模型。优点是提出了一个包括所有三种类型的中央折反射相机的模型,即使用双曲镜、抛物面镜或椭圆镜的相机。这个模型是专门为中央折反射相机开发的,但对鱼眼相机无效。
第二种模型将中心折反射相机和鱼眼相机统一在一个通用模型下,也称为泰勒模型。它由Scaramuzza等人在2006年开发,其优点是折反射相机和屈光相机都可以用同一个模型来描述,即一个泰勒多项式。这里讲解的是这种模型,参考论文:A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion。

在图1中显示了折反射相机系统(Catadioptric cameras)的两个参考平面。在屈光情况下,由于没有反射面,u”的符号会颠倒。所有坐标将表示在O放置的坐标系中,z轴与传感器轴对齐。

2.1 模型推导

很容易理解上图中(b)(c)两者存在一个仿射变换:

于是有下面完整的模型表达:

Xc是空间中点在相机坐标系的齐次表示;m表示归一化平面上点的坐标(u’‘, v’');g图像投影函数表示Sensor plane(其实就是相机归一化平面) 和 从视点O到场景点X的向量p之间的关系。


最终,

从完整的OCAM模型可知,上述模型已经包含了畸变过程,我们要标定的参数为[c, d, e, Ou, Ov, a0, a1, a2, …]。

3. 标定原理

在相机标定过程中,多个相机位姿观察到一个平面的标定板(Z = 0)。位姿、观察到的世界点如下表示。

将其带入ocam相机模型得到如下关系:

3.1 求外参


这里重新用 [u, v] 表示 [u’‘, v’'], 归一化平面的图像点坐标。
求解上式,先消去λ。

由第三个公式可以求出 [r21, r22, r11, r12, t1, t2], 又因为 r1 和 r2 正交,也是可以算出 r31 , r32,t3的求解在下一步骤。

3.2 求内参

现在,我们将估计值代入前两个方程,并解出相机的本征参数a0, a1, a2, …, aN描述的图像投影函数g。同时,也计算出每个姿态的未知t3。把所有未知数展开,用一个向量表示。


一开始把A设置为单位阵,t设置为图像中心。通过优化迭代得到最优值。
至此,所有要标定的参数都得到了。

3.3 非线性优化

以上得到的是所有参数的线性解,这在物理上是没有意义的。为了得到更细化的结果,采用最大似然估计方法。假设用不同位姿采集了K张图片,每张图片上有L个角点:

通过LM方法使得上述重投影误差最小,得到所有参数的最优化结果。

4. 感谢您的阅读!

3. 全向相机模型Omnidirectional Camera Model相关推荐

  1. 相机模型-Unified Camera Model

    相机模型-Unified Camera Model 模型介绍 投影过程 反投影过程 雅可比计算 开篇不知道说啥了,直接开始吧. 模型介绍 这个相机模型在其它地方又被叫做 Omnidirectional ...

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

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

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

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

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

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

  5. 2.3ORBSLAM3之相机模型与畸变模型

    1.简介 主要内容: 1. 对SLAM中常见的相机模型进行介绍,包括针孔相机模型和鱼眼相机模型 2. 对每种相机模型的畸变模型进行介绍 3. 对VSLAM中常见的几种去畸变方法进行介绍 4. 对常见的 ...

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

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

  7. 相机标定:相机模型和畸变模型

    一.相机标定方案 相机内参标定是确定内参和畸变参数(equidistqant畸变模型)或者(radial tangential模型)的过程. 本文首先介绍SLAM中常用的相机模型和畸变模型,随后介绍我 ...

  8. OpenGL投影矩阵与相机模型(Set Projection Matrix for Pinhole Camera Model)

    出处:http://oliver.zheng.blog.163.com/blog/static/1424115952013349234838/ (转载自"结冰的雪"百度空间) 目的 ...

  9. 鱼眼相机标定_鱼眼相机模型(二)

    前言 在介绍其他相机模型之前,可以先看一下kalibr支持标定的相机模型(kalibr可以标定的相机模型),这里的相机模型一共有4种,针孔相机模型,全景相机模型,Double sphere相机模型还有 ...

最新文章

  1. CodeGen融合核心关系循环扩展
  2. 简单读!tomcat源码(一)启动与监听
  3. 【Java从0到架构师(2),Java面试问题
  4. Shuttle ESB实现消息推送
  5. 软考-信息系统项目管理师-立项管理
  6. oracle exp执行失败,Oracle EXP-EXP-00091的错误原因及处理方法
  7. hybris impex里忽略某列数据的语法
  8. 系统在iis6上部署
  9. 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
  10. Android方法的概括,Android_Android中startService基本使用方法概述,Android中有两种主要方式使用Ser - phpStudy...
  11. java数组与以逗号分隔开的字符串的相互转换
  12. K近邻模型(k-NN)
  13. 蓝牙要抢ZigBee的地盘?低功耗广域网络笑了
  14. 帆软怎样从mysql里导入数据源_怎样创建数据库?4种流行数据库的创建方法介绍...
  15. 数字信号处理matlab版答案,数字信号处理(MATLAB版)
  16. 事业单位资产管理系统解决方案:国有资产全生命周期管理监管体系
  17. python基础之排列组合以及正则表达式
  18. 看完这篇你还不明白如何解决分布式Session?
  19. Python-教你用requests爬取网易云课堂热门课程。
  20. MySQL8.0超细致下载安装教程

热门文章

  1. python到底是什么东西,python到底是什么语言
  2. 3种方法可以让android手机通过电脑上网
  3. 联想xp怎么打开无线网络连接服务器,ThinkPad如何使用windows网络管理器配置无线网络(XP)...
  4. vue中组件之间传值的六种方式(完整版)
  5. 熊猫卫士因特网安全2007铂金版
  6. mysql还原数据库报错_MySQL数据库还原
  7. dos命令创建(删除)文件(文件夹)的几种常见方式
  8. 6月25日腾讯大规模掉线 旗下游戏全线关闭
  9. getAttribute
  10. java反射类型转换_java反射(转)