机器视觉——相机标定(摄像机标定)
文章目录
- 1 摄像机标定
- 1.1 四大坐标系
- 1.2 坐标系转换
- 1.2.1 {world}到{camera}
- 1.2.2 {camera}到{picture}
- 1.2.3 {picture}到{pixel}
- 1.2.3 {world}到{pixel}
- 2 摄像机畸变
- 1.1 径向畸变
- 1.2 切向畸变
- 参考文献
1 摄像机标定
- 摄像机标定目的:建立世界坐标中三维点与像素坐标系中二维点的相关关系。
- 针孔模型:摄像机的线性模型是在理想情况下的成像模型,即光学中的中心投影,我们通常也称为针孔模型。
如果按照实际的投影关系建立坐标系,那么投影坐标和物体坐标的符号总是相反的,考虑起来不太方便,于是在“数学上”把投影平面平移到其关于小孔对称的位置,这样投影坐标和物体坐标符号就相同了,示意图如下:
1.1 四大坐标系
在视觉测量中,需要进行的一个重要预备工作是定义四个坐标系的意义,即世界坐标系、摄像机坐标系 、 图像坐标系、 像素坐标系 。
- {world},{camera},{picture}和{pixel}坐标系的坐标用下标来区分,分别是W,c,p,pix
- {world},{camera},{picture}坐标系单位为长度,一般为mm;{pixel}坐标系单位为像素,一般为pix
- {world}坐标系为世界坐标系,可以任意指定,其他坐标系都有明确的定义
- {camera}坐标系为摄像机坐标系,原点在小孔的位置,z轴与光轴重合,Xc轴和Yc轴分别和投影面两边平行
- {picture}坐标系为图像坐标系,光轴和投影面的交点为原点,Xp轴和Yp轴分别和投影面两边平行
- {pixel}坐标系为像素坐标系,从小孔向投影面方向看,投影面的左上角为原点Opix,uv轴和投影面两边重合
1.2 坐标系转换
1.2.1 {world}到{camera}
设某点在{world}坐标系中的坐标为
,
该点在{camera}坐标系中的坐标为
,
则有
其中R是正交旋转矩阵:
Rx Ry Rz 分别为矩阵沿着对应轴的旋转矩阵
具体推导公式列出一个 其他同理
T是平移矩阵:
为各个方向上的位移偏移量
确定R需要3个参数,确定T需要3个参数,共需6个参数,这6个参数称为摄像机的外部参数。(在单目相机中外参没有多少意义。只有在双目相机中,以另一个摄像头为坐标系,得出的相对另一个摄像头的旋转和平移矩阵才有实际意义)
1.2.2 {camera}到{picture}
设空间点XcX_{c}Xc在{camera}下:Pc=[xc,yc,zc,1]TP_{c}=\left [ x_{c},y_{c},z_{c},1 \right ]^{T}Pc=[xc,yc,zc,1]T,其像点XpX_{p}Xp在{picture}的齐次坐标为Pp=[xp,yp,1]TP_{p}=\left [ x_{p},y_{p},1 \right ]^{T}Pp=[xp,yp,1]T,由图中相似三角形可得,
1.2.3 {picture}到{pixel}
设sxs_{x}sx表示Xpix方向上单位mm的像素数,单位是pix/mm,sys_{y}sy表示Ypix方向上单位mm的像素数,单位是pix/mm,x0x_{0}x0,y0y_{0}y0表示投影平面中心在{pixel}中的坐标,设像素坐标Ppix=[u,v,1]TP_{pix}=[ u,v,1]^{T}Ppix=[u,v,1]T,则有
结合{picture}到{image}的变换,则{camera}到{pixel}的变换矩阵K为
其中,fx=sxf,fy=syff_{x}=s_{x}f,f_{y}=s_{y}ffx=sxf,fy=syf称为相机在u轴和v轴方向上的尺度因子
fx,fy,x0,y0f_{x},f_{y},x_{0},y_{0}fx,fy,x0,y0这4个数叫做摄像机的内部参数,有时把焦距f也当作内部参数。因为这些参数只和摄像机有关系,和具体的摄像场景,和世界坐标系没有关系.fx,fyf_{x},f_{y}fx,fy的物理意义是摄像头感光芯片像素点的在两方向的尺度因子,x0,y0x_{0},y_{0}x0,y0的物理意义是摄像头感光芯片安装时与理论中心的水平与垂直偏移量。
1.2.3 {world}到{pixel}
综上,可得:
最后等式 前一项为相机内参矩阵,后一项为相机外参
2 摄像机畸变
透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。镜头的畸变分为径向畸变和切向畸变两类。径向畸变来自于透镜形状,切向畸变来自于整个摄像机的组装过程。畸变还有其他类型的畸变,但是没有径向畸变、切向畸变显著。
1.1 径向畸变
顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通廉价的镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:
成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:
公式里(x0,y0x_{0},y_{0}x0,y0)是畸变点在成像仪上的原始位置,(x,yx,yx,y)是产生畸变后新的位置,下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。
1.2 切向畸变
切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。畸变模型可以用两个额外的参数p1和p2来描述:
下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线是对称的,说明该镜头在垂直于该方向上有一个旋转角度。
单目摄像机透镜畸变校正需要确定的就是k1,k2,k3,p1,p2这5个参数,如果“鱼眼”现象不明显的话,常常使用k1,k2来校正径向畸变。
参考文献
https://blog.csdn.net/qq_28514991/article/details/88559590
https://blog.csdn.net/baidu_38172402/article/details/81949447
https://blog.csdn.net/u012209626/article/details/46475489
机器视觉——相机标定(摄像机标定)相关推荐
- 机器视觉学习笔记(4)——单目摄像机标定参数说明
机器视觉学习笔记(4)--单目摄像机标定参数说明 标签: 机器视觉 1.针孔摄像机模型 在介绍摄像机标定参数之前,需要先简单说一下针孔摄像机的原理.投影平面到小孔的距离为焦距f,物体到小孔的距离为Z, ...
- 机器视觉-相机标定及畸变矫正
摘要:本文首先介绍了针孔相机模型(线性模型),然后推导四个坐标轴变换的关系,引出R.T.K.D中包含相机的5个内参,6个外参.然后介绍相机畸变的原因以及畸变模型(非线性模型),引出相机的5个畸变参数. ...
- 机器视觉——相机标定
1 机器视觉为什么要做相机标定 机器视觉是采用相机成像来实现对三维场景的测量.定位.重建等过程.是一个利用二维图像进行三维反推的过程,我们所处的世界是三维的,而图像或者照片是二维的,可以把相机认为是一 ...
- matlab相机标定_【显微视界】基于视觉伺服的工业机器人系统研究(摄像机标定、手眼标定、目标单目定位)...
今日光电 有人说,20世纪是电的世纪,21世纪是光的世纪:知光解电,再小的个体都可以被赋能.欢迎来到今日光电! ----与智者为伍 为创新赋能---- 标定技术 常见的机器人视觉伺服中要 ...
- 机器视觉(三):摄像机标定技术
目录: 机器视觉(一):概述 机器视觉(二):机器视觉硬件技术 机器视觉(三):摄像机标定技术
- 计算机视觉(相机标定)-2.1 摄像机标定
计算机视觉(相机标定)- 2.1 摄像机标定 学习前言 一. 摄像机标定是啥?为什么要进行摄像机标定? 二.求MMM 问题一:求解投影矩阵需要多少对应点? 问题二:怎么算? 二.求MMM中的摄像机的内 ...
- (转)OpenCV版本的摄像机标定
摄像机的标定问题是机器视觉领域的入门问题,可以分为传统的摄像机定标方法和摄像机自定标方法.定标的方法有很多中常见的有:Tsai(传统)和张正友(介于传统和自定标)等, 摄像机成像模型和四个坐标系(通用 ...
- scare机器人如何手眼标定_基于视觉伺服的工业机器人系统研究(摄像机标定、手眼标定、目标单目定位)...
击上方"新机器视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 标定技术 常见的机器人视觉伺服中要实现像素坐标与实际坐标的转换,首先 ...
- 相机模型与标定(一)--相机标定概述
以下内容来自: http://baike.baidu.com/link?url=RAjUg33ftcbDDjE_tFKS80p_azC9REyLOzBTbqqSq5iIIXo0sp20NJk28RW- ...
- 计算机视觉:摄像机标定(循序渐进理解到应用)
在开始阅读前,我们首先要知道我们为什么要进行相机标定?开始需要输入什么?最后需要得到什么? 相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以 ...
最新文章
- 【博客】博客资源汇总
- POJ - 3322 Bloxorz I(bfs+状态设计)
- 正在编写推箱子游戏的自动求解程序
- [Git问题解决error: The followin]The following untracked working tree files would be overwritten by merge
- [开发语言]C#项目如何制作安装程序
- 推荐几个非常有用的工具
- 趣谈网络协议学习笔记[计算机网络]
- UE4_BIM替换材质处理流程
- 计算机网络(三)物理层
- Python3+PCAN-USB基于PCAN-Basic二次开发实现上位机功能
- 信号完整性(SI)电源完整性(PI)学习笔记(十五)有损线、上升边退化与材料特性(二)
- lightoj1224 DNA Prefix
- 灰度图像和彩色图像的直方图均衡化(python实现)
- 顺序表的初始化、插入、删除、查找
- BiSET: Bi-directional Selective Encoding with Template for Abstractive Summarization翻译
- ubuntu shell命令划重点
- android 11.0 12.0app应用卸载黑名单
- amtemu v0.9.2怎么用_怎么样用手机玩暗黑2(电脑PC游戏)
- mongodb介绍及基本操作
- 帆船指南-原则-安全第一
热门文章
- html5 遮罩动画,JavaScript仿flash遮罩动画效果
- C语言输出数组中最大最小值及位序
- 新兴视频处理工具VapourSynth压制教程
- 计算机网络技术蘑菇钉周记,2021年蘑菇钉第一周周记范文开学第一周周记精选范文.docx...
- GIS应用技巧之空间插值
- j3服务器维修教程,服务器维修基本技术手册.docx
- 河北省高中会考计算机试题及答案,河北省高中信息技术会考题.doc
- rbw设计_同步调谐可变带通滤波器的设计
- FastReport产品介绍及免费下载地址
- windows11中文语言包|windows11中文汉化包