单目视觉标定(1)原理解析
标题:单目视觉标定(1)原理解析
一、相机标定目的
一、相机标定目的
为什么重要?
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。
无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。
标定目的:
第一,要还原摄像头成像的物体在真实世界的位置就需要知道世界中的物体到计算机图像平面是如何变换的,相机标定的目的之一就是为了搞清楚这种变换关系,求解内外参数矩阵。
第二,摄像机的透视投影有个很大的问题——畸变。摄像头标定的另一个目的就是求解畸变系数,然后用于图像矫正。
二、相机标定原理
2.1坐标系转换
二、相机标定原理
2.1四大坐标系转换:
相机标定涉及四大坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。
(1)世界坐标系转换至相机坐标系:
(2)相机坐标系转换至图像坐标系:
(3)图像坐标系转换至像素坐标系:
(4)得出坐标转换最后公式
2.2坐标系旋转与齐次坐标的理解
2.2坐标系旋转与其次坐标的理解:
(5)坐标系旋转原理:
(6)其次坐标理解:
2.3畸变参数影响
2.3畸变参数影响 :
2.2畸变参数
(1)畸变一般可以分为:径向畸变、切向畸变,其他畸变影响相对较小一般不考虑。
ps:畸变是相机本身的固有特性,和相机内参相同。
畸变相当于转换过程中增加了一步:
常见的畸变模型有一阶和二阶畸变模型,还有考虑了切向畸变的四阶和八阶模型。
(2)畸变类型
径向畸变:(桶形畸变和枕形畸变)
产生原因是在相机制造过程中,很难保证镜头的厚度完全均匀,由于制造工艺的原因,通常为这种情况为中间厚、边缘薄,因而光线在远离透镜中心的地方,会发生更大程度的扭曲。
切向畸变:(薄透镜畸变和离心畸变)
切向畸变原因:在于相机在制造过程中,成像平面与透镜平面不平行。
(3)畸变校正函数:一般采用泰勒展开来描述
径向畸变:
切向畸变:
所以得到5个畸变参数:
r 为曲率半径,有 r2=x2+y^2
—x,y 为发生畸变后像点的坐标,也就是我们实际看到的;
—x’,y’ 为畸变矫正,也就是去除畸变后的正确像点坐标;
—k1,k2,k3为径向畸变系数,
对于畸变较小的图像中心区域,主要是k1在起作用;
对于畸变较大的图像边缘区域,主要是k2在起作用;
而对于广角相机,才会用k3去校正相机的畸变。
—p1,p2为切向畸变系数
参考:
四大坐标系变换:
https://blog.csdn.net/qq_36537774/article/details/81604481?
一文图解相机标定:
https://blog.csdn.net/Yong_Qi2015/article/details/108332697?
三维坐标旋转矩阵:
https://blog.csdn.net/Nr0315/article/details/89813587?
齐次坐标的理解:https://www.cnblogs.com/csyisong/archive/2008/12/09/1351372.html
单目视觉标定(1)原理解析相关推荐
- camera (14)---智能手机双摄像头原理解析:RGB +Depth
智能手机双摄像头原理解析:RGB +Depth 智能手机摄像头中:普通彩色相机(RGB) + 深度相机(Depth)的技术原理. 首先来解释一下什么是深度相机吧. 深度相机 顾名思义,深度相机就是可以 ...
- XCP实战系列介绍16-XCP标定过程指令解析
本文框架 1.前言 2. XCP标定过程指令解析 1.前言 前面几篇文章我们介绍了XCP底层原理,配置方法及基于CANape,CANoe或Vehicle SPY进行观测或标定的方法,在本篇中我们将对标 ...
- Opencv外参估计cvFindExtrinsicCameraParams2原理解析(四)
背景介绍 在之前的博文中,已经在外参估计函数cvFindExtrinsicCameraParams2分别进行了单应性方法.DLT方法,单应性矩阵进一步估计旋转平移量做了原理解析.本文对opencv在估 ...
- opencv焦距估计函数cvInitIntrinsicParams2D原理解析
背景介绍 在进行相机标定时,通常会包括内参初始化估计.外参初始化估计,以及非线性优化参数.在opencv中内参数估计主要在cvInitIntrinsicParams2D函数中实现,外参数估计在cvFi ...
- 摄像头Camera标定Calibration原理Theory
摄像头Camera标定Calibration原理Theory cv2.cameraCalibration Pinhole camera calibration calls camera vision ...
- Spark Shuffle原理解析
Spark Shuffle原理解析 一:到底什么是Shuffle? Shuffle中文翻译为"洗牌",需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节 ...
- 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)
2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六) 中, 介绍了 ...
- Tomcat 架构原理解析到架构设计借鉴
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...
- 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...
文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...
最新文章
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- java 请求http get_java http get/post请求
- CSDN博客标题和目录的一点思考
- 【算法分析与设计】证明插入排序的正确性
- HDU——T 1573 X问题
- python 入门基础-Python入门基础
- 产品需求文档:如何撰写一份敏捷的PRD (模板2.0)
- 第一视角:深度学习框架这几年
- wps excel 表格给一列数据添加相同的内容的方法
- android 电话管理
- POJ 3322 Bloxorz I
- c语言程序压缩解压缩文件夹,【转】使用VC++压缩解压缩文件夹
- check the manual that corresponds to your MySQL server
- 简单说 用CSS做一个魔方旋转的效果
- 查看linux服务器的品牌和型号
- 数组对头删除php,php学习 数组课件
- c语言编程的扑克牌游戏,扑克牌加减乘除游戏
- 190327-Matlab清除指定变量之外的所有变量
- C++语法——右值引用、移动构造和赋值、万能引用和转发、move和forward底层实现
- 科学计算机和普通计算器,[财经]普通计算器和科学计算器的区别是什么?手机计算器阵亡是怎么回事? - 南方财富网...