‘壹’ 机器视觉-相机标定
相机标定中所要确定的几何模型参数分为内参和外参两种类型。
求解参数(内参、外参、畸变参数)的过程就称之为相机标定(或摄像机标定)。
机器视觉应用中常用的有两种不同类型的镜头:普通镜头和远心镜头。将摄像机与普通镜头的组合称为针孔摄像机模型(默认为面阵图像传感器),摄像机与远心镜头的组合为远心摄像机模型。
相机内参的作用是确定相机从三维空间到二维图像的投影关系。
对于针孔摄像机模型,该投影是透视投影:
相机内参共有6个参数(f,κ,Sx,Sy,Cx,Cy),其中:
f为焦距;
k为径向畸变量级(k<0为桶形畸变;k>0为枕形畸变);
Sx,Sy为缩放比例因子(对于针孔摄像机表示图像传感器水平和垂直方向相邻像素之间的距离);
Cx,Cy是图像的主点(对于针孔相机表示投影中心在成像平面上的垂直投影,也是径蠢瞎向畸变中心)。
相机外参也称为摄像机位姿的作用是确定相机坐标与世界坐标系之间相对位置关系。
摄像机外参共有6个参数(α,β,γ,Tx,Ty,Tz),其中:
R =R(α,β,γ)是旋转矩阵,分别为绕绕x,y,z轴旋转角度;
T= (Tx,Ty,Tz)是平移向量
从世界坐标系到摄像机坐标系的变换属于刚性变换(由平移和旋转组成),相机坐标Pc与世界坐标Pw的关系可以表述为:Pc= RPw + T
畸变(distortion)是对直线投影(rectilinear projection)的一种偏移。直线投影是场景内的一条直线投影到图片上也保持为一条直线。带哪空畸变就是由于某种原因(如镜头)一条直线投影到图片上不能保持为一条直线了,这是一种光学畸变(optical aberration)。
在视觉测量中,首先需要定义三个坐标系,即 世界坐标系、摄像机坐标系 、 图像坐标系。
目标物体位置的参考系,用来描述三维空间中的物体和相机之间的坐标位置。
以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向,Xc、Yc轴与图像物理坐标系的u、v轴平行。世界坐缓薯标系下的物体需先经历刚体变化转到摄像机坐标系(旋转和平移),然后再和图像坐标系发生关系。
是以图像的左上角为原点的图像坐标系(u,v),以像素为单位。用于指定物体在照片中的位置
张正友相机标定流程
1. 打印棋盘标定纸,附加到一个平坦的表面上;
2. 通过移动相机或者平面拍摄标定板各种角度的图片,一般拍摄20张;
3. 检测图片中的特征点;
4. 计算5个内部参数和所有的外部参数;
5. 通过最小二乘法先行求解径向畸变系数;
6. 通过求最小参数值,优化所有参数;
张正友的平面标定方法是介于传统标定方法和自标定方法之间的一种方法,它既避免了传统方法设备要求高,操作繁琐等缺点,又较自标定方法精度高,符合通用的桌面视觉系统(DVS)的标定要求。该方法的缺点是确定模板上点阵的物理坐标以及图像和模板之间的点的匹配,专业性要求比较高。
‘贰’ 照相机的成像过程中,各参数代表什么
相机的成像过程
相机成像系统中,共有四个坐标系:即世界坐标系、相机坐标系、图像坐标系、像素坐标系。他们之间有如下转化关系:
(3-1)
其中, 为在世界坐标系下一点的物理坐标,为该点对应的在像素坐标系下的像素坐标,为尺度因子。
将矩阵:
(3-2)
称为相机的内参矩阵,内参矩阵取决于相机的内部参数。其中,为像距,,分别表示,方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米),,分别表示相机感光板中心在像素坐标系下的坐标,表示感光板的横边和纵边之间的角度。
将矩阵: 称为相机的外参矩阵,相机坐标系、及其世界坐标系的相对位置,决定了它的取值, 表示旋转矩阵, 表示平移矢量。
‘叁’ 数码相机是怎么成像的
数码相机是集光学、机械、电子一体化的产品。它集成了影像信息的转换、存储和传告旅输等部件,具有数字化存取模式,与电脑交互处理和实时拍摄等特点。
当打开相机的电源开关后,主控程序芯片开始检查整个相机,确定各个部件是否处于可工作状态。如果一切正常,相机将处于待命状态;若某一部分出现故障,LCD屏圆坦上会显示一个错误信息,并使相机完全停止工作。
当你对准拍摄目标,并将快门按下一半时,相机内的微处理器开始工作,以确定对焦距离、快门的速度和光圈的大小。当按下快门后,光学镜头可将光线聚焦到影像传感器上,这种CCD/CMOS半导体器件代替了传统相机中胶卷的位置,它可将捕捉到的景物橘友桐光信号转换为电信号。
此时就得到了对应于拍摄景物的电子图像,由于这时图像文件还是模拟信号,所以还不能被计算机识别,需要通过A/D转换成数字信号,接下来微处理器对数字信号进行压缩,并转换为特定的图像格式,最后以数字信号存在的图像文件会以指定的格式存储到内置存储器中,此时通过LCD可以查看所拍摄到的照片。
‘肆’ 相机标定的内参、外参、畸变参数
摘自知乎 https://zhuanlan.hu.com/p/389653208
成像的过程实质上是几个坐标系的转换。首先空间中的一点由 世界坐标系 转换到 摄像机坐标系 ,然后再将其投影到成像平面 ( 图像物理坐标系 ) ,最后再将成像平面上的数据转换到图像平面 ( 图像像素坐标系 ) 。
在左图中,我们把相机看作是针孔,现实世界中的点P经过相机的光心O,投影到物理成像平面上,变为点P'。
在右图中,对这个模型进行了一个简化,将其看作是一个相似三角形。
下面我们来对这个模型进行建模。
设(O-x-y-z)为相机坐标系,习惯上我们把z轴指向相机前方,x向右,y向下。O为摄像机的 光心 ,也是针孔模型中的针孔。
设真实世界点中的P的坐标为[X,Y,Z] T ,成像的点P'的坐标为[X', Y', Z'] T , 物理成像平面和光心的距离为f(即为焦距)。
根据右图中的三角形相似关系,有:
其中,有负号是因为坐标轴方向,也就表示了成的像是倒立的。
为了表示起来更方便,我们把成像平面从相机的后面对称到前面去,如下图所示。这样,负号就没有了。
在对称后,有:
整理解出P'的坐标:
上面两个式子就描述了 P点与它所成像的坐标关系 ,可以看到,X对应的X'与焦距f有关,与距离Z有关。
映射到成像平面上还不够,我们还需要将这个像给放到像素坐标系内。
我们设在物理成像平面上固定着像素平面o-u-v。
设P'在像素平面坐标系上的坐标是[u, v] T 。
像素坐标系 通常定义方式是:原点o'位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。
我们设像素坐标在u轴上缩放α倍,在v轴上缩放了β倍。同时,原点平移了[c x , c y ] T 。
因此可以得到 P'与像素坐标 的关系:
代入P与P'的关系式可得:
其中,我们用f x ,f y 替换了αf 和 βf。f x ,f y 的单位是像素。
用齐次坐标,把上式写出矩阵的形式:
也可以把Z写到等式左边去,就变成了:
上式中,K即为相机的内参矩阵(Intrinsics)。通常来说,相机的内参在出厂之后就是固定的了。
在上面的推导中,我们用的是P在相机坐标系的坐标(也就是以相机为O点),所以我们应该桐芦先将世界坐标系中的P w 给变换到相局氏带机坐标系中的P。
相机的位姿由旋转矩阵R和平移向量t来描述,因此:
再代入之前的内参的式子,得到:
后面一个等号蕴含了一个齐次坐标到非齐次坐标的转换。其中,R, t为相机的外参(Extrinsics)。
透镜由于制造精度以及组装工核手艺的偏差会引入畸变,导致原始图像的失真。镜头的畸变分为径向畸变和切向畸变两类。
顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通廉价的镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:
成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:
公式里(x0,y0)是畸变点在成像仪上的原始位置,(x,y)是畸变较真后新的位置,下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。
下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线对称的,说明该镜头在垂直于该方向上有一个旋转角度。
径向畸变和切向畸变模型中一共有5个畸变参数,在Opencv中他们被排列成一个5*1的矩阵,依次包含k1、k2、p1、p2、k3,经常被定义为Mat矩阵的形式,如Mat distCoeffs=Mat(1,5,CV_32FC1,Scalar::all(0));这5个参数就是相机标定中需要确定的相机的5个畸变系数。求得这5个参数后,就可以校正由于镜头畸变引起的图像的变形失真,下图显示根据镜头畸变系数校正后的效果: