前言

相较于普通的针孔相机,鱼眼相机的能够观测到的范围更广,在一定程度上其实是可以增强视觉的鲁棒性的。针对于鱼眼相机的模型其实有挺多的,也有论文对这些模型进行了评测,但对于本人来说,最熟知的还是针孔模型,如果换到其他的模型的话,可能会丈二摸不着头脑。基于此,希望自己能对这些模型有些通透的理解。

畸变的简单介绍

为了获得好的成像效果,相机的前面会加透镜,透镜的加入会使得光的传播发生变化:首先是透镜自身的形状对光线传播的影响,其次是在组装过程中,透镜和成像平面不可能完全平行,这也会使得光线穿过透镜投影到成像平面时的位置发生变化[1]。这里主要有两种畸变,径向畸变主要是由于透镜的形状引起的,而切向畸变是由于相机在组装过程中由于不能使得透镜和成像平面严格平行引起的。

Extended Unified Camera Model

对与EUCM模型来说,它需要标定6个参数

,其中前四个是相机的内参,后两个是畸变洗漱,具体的可以使用kalibr工具进行标定(由于现在手头上也没有相机,标定的内容先放一边了)。有了这6个参数,就可以计算图像的坐标了。它的模型如下图所示:
  • :相机坐标系坐标
  • :投影平面坐标系坐标(椭球坐标)
  • :归一化平面坐标系坐标(M平面)

根据上面的坐标、内参和畸变系数可以得到他们之间的关系。

相机坐标到像素坐标

归一化平面坐标

其中

,x,y,z都是相机坐标系下的坐标。相较于普通的针孔模型,他的归一化坐标多了一个系数,
都是畸变系数。

像素坐标

有了归一化平面坐标之后,就可以使用内参进行投影了

像素坐标到相机坐标

在实际情况中,从图像中得到特征点,这是他的像素坐标,如何准确的恢复到世界坐标系中也是很很重要的,畸变的影响会导致它最后反投影的点的结果不准确。

椭球面坐标

该坐标可以通过像素坐标进行转换,假设椭球面坐标

,那么它的值为

其中

。归一化平面坐标和椭球面坐标就是z不相同。

相机坐标

这里的恢复就需要用到两帧图像的对应椭球面坐标进行三角化才可以得到相机坐标,椭球面坐标其实就相当于针孔相机去畸变之后的坐标,根据它得到的路标点才是比较准确的。三角化的过程就不叙述了。

总结

粗略看了一下文献[2]中的代码,它主要的改变其实就是将去畸变坐标变成了椭球面中的坐标,用该坐标来进行投影和反投影,计算基本矩阵和本质矩阵,在优化方面,雅克比矩阵也变化了,改变在g2o的代码中。模型的变化应该就是处理的点的变化,不论是像素坐标还是归一化平面坐标,或者是转化为其他坐标,他们都是为了更好的恢复3D点。看了这篇文章和论文让我对畸变模型有了更好的理解。

参考资料

[1]《视觉SLAM十四讲》高翔、张涛等

[2] Liu, Guo, Feng, et al. Accurate and Robust Monocular SLAM with Omnidirectional Cameras[J]. Sensors, 2019, 19(20):4494.

从像素坐标到相机坐标_鱼眼相机模型EUCM(一)相关推荐

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

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

  2. java鱼眼相机标定_鱼眼相机标定方法及标定装置制造方法

    鱼眼相机标定方法及标定装置制造方法 [专利摘要]本发明公开了一种鱼眼相机标定方法及标定装置,包括:建立所述鱼眼相机的成像模型:从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的坐标,参考所述 ...

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

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

  4. matlab相机标定_综述 | 相机标定方法

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相 ...

  5. java相机开发_控制相机  |  Android 开发者  |  Android Developers

    在本课程中,我们将讨论如何使用框架 API 直接控制相机硬件. 与从已有相机应用请求照片或视频相比,直接控制设备相机所需要的代码要多得多.不过,如果您要开发专门的相机应用或者与您的应用界面完全集成的应 ...

  6. ios相机内存_爱相机 - 从此告别「内存不足」 #iOS #Android

    原标题:爱相机 - 从此告别「内存不足」 #iOS #Android 五一小长假刚结束,世界那么大,你都到哪里去看啦?是否用相机留下了许多旅途中的美好记忆呢.美好终归美好,相信你也遇到过,正当自己满心 ...

  7. KannalaBrandt8鱼眼相机模型

    1. 鱼眼相机 鱼眼相机镜头是由十几个不同的透镜组合而成,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头拥有更大的视野范围.下图为鱼眼相机的组成结构: 与针孔相机 ...

  8. VS2019+OpenCV4.5 鱼眼相机图像畸变矫正

    一.鱼眼相机概述 鱼眼镜头是定焦镜头中的一种视野范围很大的镜头,它视角范围通常大于等于180度.鱼眼相机虽然能获得较大的视角范围,但是其拍摄的图像存在较大的畸变,为了后续任务的需要,往往需要对原始图像 ...

  9. 一文尽览 | 计算机视觉中的鱼眼相机模型及环视感知任务汇总!

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心技术交流群 后台回复[ECCV2022]获取ECCV2022所有自动驾驶方向论文! 论文 ...

最新文章

  1. docker逃逸漏洞复现 cve-2019-5736
  2. 【Linux】ubuntu下词典软件Goldendict介绍(可屏幕取词)和StarDict(星际译王)的安装...
  3. 【linux系统】maven安装
  4. JNI与底层调用-1
  5. java同时输出多个数字_java从命令行接收多个数字,求和之后输出结果
  6. Linux C函数之文件及目录函数
  7. Java设计模式学习总结(8)——结构型模式之桥接模式
  8. centos7上使用chrony自动同步时间
  9. http://blog.csdn.net/flyingscv/archive/2008/05/03/2371153.aspx
  10. 如何在PDF文件中快速查找关键字,这个方法后悔没早点知道
  11. 修改win10更新服务器,修改win10更新服务器地址
  12. android 4.4 zygote 开机速度,一种安卓系统快速开机的方法及装置的制造方法
  13. http://www.csee.wvu.edu/~xinl/source.html 突然发现无法登陆,现备份内容以便后续查询
  14. 计算机无法获取正常的ip地址,无法获取ip地址,教您电脑无法获取ip地址的解决方法...
  15. Flutter高仿微信-第57篇-添加好友
  16. Request method ‘GET‘ not supported 405错误辨析总结
  17. 50、ubuntu18.0420.04+CUDA11.1+cudnn11.3+TensorRT7.2/8.6+Deepsteam5.1+vulkan环境搭建和YOLO5部署
  18. 敏涵·精致遮暇乳打造“新国妆”专场 致力新锐品牌强势“出圈”
  19. 基于FPGA的DDS设计
  20. Qt项目实战之网络电子白板-安晓辉-专题视频课程

热门文章

  1. [转].NET 开源项目 Polly 介绍
  2. SQL SERVER两种分页的存储过程介绍
  3. C语言试题五十七之假定输入的字符串中只包含字母和*号。请编写函数function,它的功能是:删除字符串中所有*号。在编写函数时,不得使用c语言提供的字符串函数。
  4. LeetCode之Intersection of Two Arrays
  5. C++之char*,const char*和string的相互转换
  6. import 别名_Python基础找茬系列09--import和from-import的引用区别
  7. java idea 模块_idea 多模块项目依赖父工程class找不到问题的方法
  8. design短语的用法总结_design的意思、用法、搭配和例句
  9. k8s 手动恢复redis 集群_二进制手动部署k8s-1.14高可用集群(二、集群部署)
  10. 这个让人看跪了的设计!实力证明,数学才是世界的最终boss!