相机模型(针孔模型+畸变模型)
目录
- 1 相机模型
- 1.1 针孔模型
- 1.2 畸变模型
- 1.2.1 径向畸变
- 1.2.2 切向畸变
- 1.3 去畸变
- 1.4 单目相机成像小结
- 2 非常感谢您的阅读!
- 3 期待您加入
1 相机模型
1.1 针孔模型
相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个几何模型就是所谓的相机模型。模型有很多种,其中一种最简单有效的模型称为针孔模型。它描述了一束光线通过针孔之后,在针孔背面投影成像的关系。同时,由于相机镜头上的透镜的存在,会使得光线投影到成像平面的过程中会产生畸变。
所以整个相机成像过程可以用针孔和畸变两个模型来描述。
上面就是简单的针孔相机模型,图中只涉及了像素坐标系和相机坐标系两个。
在相机中,我们最终获得的是一个个的像素信息,这需要在成像平面上对像进行采样和量化。像素坐标系通常的定义方式是:原点 o′ 位于图像的左上角,u 轴向右与 x 轴平行,v轴向下与 y 轴平行。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。这个过程是通过相机内参造成的。
相机坐标系的点P投影到像素坐标系中的P′过程写成矩阵形式:
相应的,相机也会有外参。由于相机在运动,所以 P 的相机坐标应该是它的世界坐标(记为 Pw),根据相机的当前位姿,变换到相机坐标系下的结果。相机的位姿就是由前面一直讨论的欧式变换矩阵来表示。
按着上式从右向左看,实现了世界坐标系下的点经过相机外参T投影到相机坐标系,然后再经过相机内参K投影到像素坐标系。
注意:内参是不变的我们可以提前标定,而外参会随着相机运动发生改变,同时也是 SLAM中待估计的目标,代表着机器人的轨迹。
在SLAM算法中,经常用到的是世界点相机归一化平面上的坐标值。那么这个归一化平面到底是什么呢?
从上图可以看到归一化相机平面其实就是将世界点投影到相机系之后将其相机系下的深度置为1,这时 Pc 可以看成一个二维的齐次坐标,称为归一化坐标。
1.2 畸变模型
为了获得好的成像效果,我们在相机的前方加了透镜。透镜的加入对成像过程中光线传播会产生新的影响:
①是透镜自身的形状对光线传播的影响,
②是在机械组装过程中,透镜和成像平面不可能完全平行
这些都会使得光线穿过透镜投影到成像面时的位置发生变化。
1.2.1 径向畸变
由透镜形状引起的畸变称之为径向畸变。在实际拍摄的照片中,摄像机的透镜往往使得真实环境中的一条直线在图片中变成了曲线。越靠近图像的边缘,这种现象越明显。由于实际加工制作的透镜往往是中心对称的,这使得不规则的畸变通常径向对称。主要分为两大类,桶形畸变和枕形畸变。
1.2.2 切向畸变
在相机的组装过程中由于不能使得透镜和成像面严格平行也会引入切向畸变。
由于上述两种畸变的存在使得我们的成像位置发生了偏移,所以需要进行图像矫正,也就是去畸变。
1.3 去畸变
对于径向畸变,去畸变公式为:
对于切向畸变,去畸变公式为:
非常值得注意的是:畸变是发生在世界点通过透镜投影到相机坐标系这个过程中的,所以去畸变操作是在相机坐标系下进行的,由于我们经常把世界点投影到归一化相机平面,所以我们在归一化相机平面上对图像去畸变!。
因此,我们可以联合径向畸变和切向畸变的矫正模型,对于相机坐标系中的一点 P(X, Y, Z),通过五个畸变系数找到这个点在像素平面上的正确位置。
将纠正后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置。
1.4 单目相机成像小结
①首先,世界坐标系下有一个固定的点 P,世界坐标为 Pw;
②由于相机在运动,它的运动由 R, t 或变换矩阵 T ∈ SE(3) 描述。P 的相机坐标为:P˜c = RPw + t。
③这时的 P˜c 仍有 X, Y, Z 三个量,把它们投影到归一化平面 Z = 1 上,得到 P 的归一化相机坐标:Pc = [X/Z, Y /Z, 1]T;
④对归一化平面上的投影点进行径向畸变和切向畸变纠正;
⑤最后,P 的归一化坐标经过内参后,对应到它的像素坐标:Puv = KPc。
2 非常感谢您的阅读!
有关相机标定的,可以看这篇博文。
视觉成像和位姿表示已经学完,接下来就可以真正进入视觉SLAM算法部分的学习了!
3 期待您加入
也非常期待您能关注我的微信公众号–“过千帆”,里面不仅有技术文章还有我的读书分享,希望您在那里也有收获。我们一起进步。
相机模型(针孔模型+畸变模型)相关推荐
- 针孔相机模型和相机镜头畸变模型
针孔相机模型和相机镜头畸变模型 一.针孔相机模型 图1. 针孔相机模型 针孔相机模型(如图1所示)存在四个坐标系:世界坐标系.摄像机坐标系.图像物理坐标系和图像像素坐标系.假设现实世界的空间点的世界坐 ...
- 从普通相机模型到鱼眼畸变模型--标定与去畸变
目录 普通相机模型 普通成像模型 针孔模型与透镜组: 径向畸变 切向畸变 现代手机摄像头的基本组成 内参矩阵 畸变模型 张氏标定法 鱼眼模型 透镜组 r和f的进一步说明 等距投影模型(OpenCV:: ...
- 相机畸变模型及去畸变计算
透镜 实际成像时,如果小孔过小,则入射光的强度会受到影响,进一步会影响到成像. 另一方面,由于光的波动性,在小孔的边缘上,光将发生衍射,因此,这些光将在像平面上"散播".当小孔变的 ...
- 2.3ORBSLAM3之相机模型与畸变模型
1.简介 主要内容: 1. 对SLAM中常见的相机模型进行介绍,包括针孔相机模型和鱼眼相机模型 2. 对每种相机模型的畸变模型进行介绍 3. 对VSLAM中常见的几种去畸变方法进行介绍 4. 对常见的 ...
- 相机标定(二)之相机畸变模型
一.相机畸变 定义:相机镜头的畸变实际上是光学透镜固有的透视失真的总称. 相机畸变的分类: 1.枕形畸变:又称鞍形形变,视野中边缘区域的放大率远大于光轴中心区域的放大率,常用在远摄镜头中(下图左): ...
- 相机的针孔模型及其内参数,外参数的理解
相机的针孔模型及其内参数,外参数的理解 2019.10.18 FesianXu 文章目录 @[toc] 前言 相机的针孔模型 坐标系的改变 考虑更多因素 总结 更新说明 Reference 前言 在相 ...
- 相机模型与去畸变方法详解
相机与图像模型 一.针孔相机模型 1.1 成像原理 1.2 实际坐标与像素坐标的关系 1.3 如何获得实际坐标 二.畸变相机模型 2.1 两种常见畸变的介绍 2.2 去畸变方法 2.3 示例程序 相机 ...
- 相机标定:相机模型和畸变模型
一.相机标定方案 相机内参标定是确定内参和畸变参数(equidistqant畸变模型)或者(radial tangential模型)的过程. 本文首先介绍SLAM中常用的相机模型和畸变模型,随后介绍我 ...
- 针孔相机投影模型以及畸变模型
Overview 欢迎访问 持续更新:https://cgabc.xyz/posts/ff73e084/ 世界坐标系 到 像素坐标系 世界坐标系中三维点M=[X,Y,Z]TM=[X,Y,Z]^TM=[ ...
- unity 畸变_摄像机成像、畸变模型
一 摄像机成像模型 成像的过程实质上是几个坐标系的转换.首先空间中的一点由世界坐标系转换到摄像机坐标系,然后再将其投影到成像平面(摄像机的CCD),最后再将成像平面上的数据转换到图像平面(最后生成的图 ...
最新文章
- Java并发编程之CountDownLatch、CyclicBarrier和Semaphore
- svn 源码版本控制使用体会
- 关于ASP.NET MVC的业务逻辑验证(validation)
- 参数签名ascii码排序的坑
- Java,JavaFX的流畅设计风格拨动开关
- 深入了解Android蓝牙Bluetooth——《基础篇》
- MVC中获取来自控制器名称与动作的方法
- “error MSB8011” 解决方法
- 快速提取PPT文件里面的视频、音频素材
- 三星老手机com.android,你认识几个?细数三星最经典的手机
- Ubuntu20.04安装qt详细教程
- lcd开机流程图_LCD1602程序代码及显示流程图.doc
- SaaS运营实战:B端与C端的区别在哪?
- 【数模之数据分析-1】
- Linux usb 5. usbip (USB Over IP) 使用实例
- 轻松升级各路硬件,简约时尚的大容量机箱,TT挑战者H6上手
- heapdump file must have .hprof extention
- 2022-06-清华管理学-清华大学-宁向东
- TPTP测试项目的性能
- 一个优秀IT专家的成长历程---献给所有的颓废或即将颓废的人们
热门文章
- 如何用python做计算_如何用Python做些基本的数学运算
- 各个开发工具格式化代码的快捷键
- go模拟android浏览器,模拟浏览器登录操作
- 阿里云 MaxCompute Tunnel Upload 上传典型问题整理
- 全面讲解光纤、光模块、光纤交换机、光模块组网设计与案例
- java目标和规划_java个人职业发展目标规划书(2)
- 实验楼Linux入门:Linux用户管理
- 计算机网络工程用排线架,什么是网络配线架接法 简单学习网络配线架接法图解【详解】...
- 中国科学院大学计算机研究所2019,中科院计算所2019年夏令营名单
- linux审计工具audit,Linux audit安全审计工具