摄像机标定时,知道投影矩阵M小t,怎么求内外参数

原文:http://www.cnblogs.com/Jessica-jie/p/6596450.html标定实例 一.总体原理:摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程。[1]基本的坐标系:世界坐标系;相机坐标系;成像平面坐标系;像素坐标系[2]一般来说,标定的过程分为两个部分:第一步是从世界坐标系转为相机坐标系,这一步是三维点到三维点的转换,包括R,t(相机外参,)等参数;第二部是从相机坐标系转为成像平面坐标系(像素坐标系),这一步是三维点到二维点的转换,包括K(相机内参,)等参数;投影矩阵 : P=K [ R | t ]
是一个3×4矩阵,混合了内参和外参而成。P=K[Rt] 二.基本知识介绍及1、摄像机模型Pinhole Camera模型如下图所示:
是一个小孔成像的模型,其中:
[1]O点表示camera centre,即相机的中心点,也是相机坐标系的中心点;
[2]z轴表示principal axis,即相机的主轴;
[3]q点所在的平面表示image plane,即相机的像平面,也就是图片坐标系所在的二维平面;
[4]O1点表示principal point,即主点,主轴与像平面相交的点;
[5]O点到O1点的距离,也就是右边图中的f,即相机的焦距;
[6]像平面上的x和y坐标轴是与相机坐标系上的X和Y坐标轴互相平行的;
[7]相机坐标系是以X,Y,Z(大写)三个轴组成的且原点在O点,度量值为米(m);
[8]像平面坐标系是以x,y(小写)两个轴组成的且原点在O1点,度量值为米(m);
[9]像素坐标系一般指图片相对坐标系,在这里可以认为和像平面坐标系在一个平面上,不过原点是在图片的角上,而且度量值为像素的个数(pixel); 2、相机坐标系→成像平面坐标系[1]以O点为原点建立摄像机坐标系。点Q(X,Y,Z)为摄像机坐标系空间中的一点,该点被光线投影到图像平面上的q(x,y,f)点。图像平面与光轴z轴垂直,和投影中心距离为f (f是相机的焦距)。按照三角比例关系可以得出:x/f = X/Z
,即 x = fX/Z
y = fY/Z以上将坐标为(X,Y,Z)的Q点映射到投影平面上坐标为(x,y)的q点的过程称作投影变换。上述Q点到q点的变换关系用3*3的矩阵可表示为:q = MQ ,其中
最终得出透视投影变换矩阵为:(1)M称为摄像机的内参数矩阵,单位均为物理尺寸。(X,Y,Z)?(fX/Z,fY/Z)(X,Y,Z)?(fX/Z,fY/Z)通过上面,可以把相机坐标系转换到像图像坐标系的物理单位[即(X,Y,Z)→(x,y)]3、成像平面坐标系→像素坐标系通过下面,可以把像平面坐标系物理单位到像素单位[即→(u,v)] 以图像平面的左上角或左下角为原点建立坐标系。假设像平面坐标系原点位于图像左下角,水平向右为u轴,垂直向上为v轴,均以像素为单位。以图像平面与光轴的交点O1 为原点建立坐标系,水平向右为x轴,垂直向上为y轴。原点O1一般位于图像中心处,O1在以像素为单位的图像坐标系中的坐标为(u0, v0)。像平面坐标系和像素坐标系虽然在同一个平面上,但是原点并不是同一个。设每个像素的物理尺寸大小为 dx * dy (mm) ( 由于单个像素点投影在图像平面上是矩形而不是正方形,因此可能dx != dy),图像平面上某点在成像平面坐标系中的坐标为(x, y),在像素坐标系中的坐标为(u, v),则二者满足如下关系:[即(x, y)→(u, v)]u = x / dx + u0
v = y / dy +
v0用齐次坐标与矩阵形式表示为: 将等式两边都乘以点Q(X,Y,Z)坐标中的Z可得: 将摄像机坐标系中的(1)式代入上式可得:
则右边第一个矩阵和第二个矩阵的乘积亦为摄像机的内参数矩阵(单位为像素),相乘后可得:(2) 和(1)式相比,此内参数矩阵中f/dx, f/dy,
cx/dx+u0, cy/dy+v0
的单位均为像素。令内参数矩阵为K,则上式可写成:
(3)三.相机内参K(与棋盘所在空间的3D几何相关)
在计算机视觉中,摄像机内参数矩阵 其中 f 为摄像机的焦距,单位一般是mm;dx,dy 为像元尺寸;u0,v0 为图像中心。
fx = f/dx, fy = f/dy,分别称为x轴和y轴上的归一化焦距. 为更好的理解,举个实例:现以NiKon D700相机为例进行求解其内参数矩阵:就算大家身边没有这款相机也无所谓,可以在网上百度一下,很方便的就知道其一些参数——
焦距 f = 35mm
最高分辨率:
传感器尺寸:36.0×23.9 mm根据以上定义可以有:u0= 4256/2 = 2128
v0= 2832/2 = 1416
dx = 36.0/4256
dy = 23.9/2832fx = f/dx = 4137.8
fy = f/dy = 4147.3分辨率可以从显示分辨率与图像分辨率两个方向来分类。[1]显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能显示的信息也越多,所以分辨率是个非常重要的性能指标之一。可以把整个图像想象成是一个大型的棋盘,而分辨率的表示方式就是所有经线和纬线交叉点的数目。显示分辨率一定的情况下,显示屏越小图像越清晰,反之,显示屏大小固定时,显示分辨率越高图像越清晰。[2]图像分辨率则是单位英寸中所包含的像素点数,其定义更趋近于分辨率本身的定义。 四.畸变参数(与点集如何畸变的2D几何相关。)采用理想针孔模型,由于通过针孔的光线少,摄像机曝光太慢,在实际使用中均采用透镜,可以使图像生成迅速,但代价是引入了畸变。有两种畸变对投影图像影响较大: 径向畸变和切向畸变。1、径向畸变对某些透镜,光线在远离透镜中心的地方比靠近中心的地方更加弯曲,产生“筒形”或“鱼眼”现象,称为径向畸变。一般来讲,成像仪中心的径向畸变为0,越向边缘移动,畸变越严重。不过径向畸变可以通过下面的泰勒级数展开式来校正:xcorrected = x(1+k1r2+k2r4+k3r6)ycorrected = y(1+k1r2+k2r4+k3r6)这里(x, y)是畸变点在成像仪上的原始位置,r为该点距离成像仪中心的距离,(xcorrected ,ycorrected )是校正后的新位置。对于一般的摄像机校正,通常使用泰勒级数中的前两项k1和k2就够了;对畸变很大的摄像机,比如鱼眼透镜,可以使用第三径向畸变项k32、切向畸变当成像仪被粘贴在摄像机的时候,会存在一定的误差,使得图像平面和透镜不完全平行,从而产生切向畸变。也就是说,如果一个矩形被投影到成像仪上时,可能会变成一个梯形。切向畸变可以通过如下公式来校正:xcorrected = x + [ 2p1y + p2 (r2 + 2x2) ]ycorrected = y + [ 2p2x + p1 (r2 + 2y2) ]这里(x, y)是畸变点在成像仪上的原始位置,r为该点距离成像仪中心的距离,(xcorrected ,ycorrected )是校正后的新位置。
五.摄像机的外参数旋转向量(大小为1×3的矢量或旋转矩阵3×3)和平移向量(tx,ty,tz)。旋转向量:旋转向量是旋转矩阵紧凑的变现形式,旋转向量为1×3的行矢量。 r就是旋转向量,旋转向量的方向是旋转轴 ,旋转向量的模为围绕旋转轴旋转的角度。通过上面的公式,我们就可以求解出旋转矩阵R。同样的已知旋转矩阵,我们也可以通过下面的公式求解得到旋转向量:六.思考 那为什么要做相机标定呢?【1】进行摄像机标定的目的:求出相机的内、外参数,以及畸变参数。【2】标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以校正这种镜头畸变矫正畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。
摄像机标定过程,简单的可以简单的描述为通过标定板,如下图,可以得到n个对应的世界坐标三维点Xi和对应的图像坐标二维点xi,这些三维点到二维点的转换都可以通过上面提到的相机内参K,相机外参和,以及畸变参数,经过一系列的矩阵变换得到。 七.标定内幕过程的分析:1.假设有N个角点和K个棋盘图像(不同位置),需要多少个视场和角点才能提供足够的约束来求解这些参数呢?K个棋盘,可以提供2NK的约束,即2NK的方程。(乘以2是因为每个点都由x和y两个坐标值组成)忽略每次的畸变,那么我们需要求解4个内参数和6K个外参数。(因为对于不同的视场,6个外参数是不同的)那么有解的前提是方程的总数应该大于等于未知参数的总数即2NK&=6K+4,或者写成(N-3)K&=2。为了方便理解,下图是一个3×3大小的棋盘,红色圈标记出了它含有的内角点:如果我们令N=5,K=1,带入到上述不等式,是满足不等式,这就是意味着我们仅需要一个视场和带有5个内角点的棋盘就可以求解出10个参数了。其实不然,为了描述投影视场的所有目标只需要4个点,即一次性在四个方向上延展正方形的边,把它变成任意四边形。因此,无论一个平面上检测到多少个角点,我们只能得到4个有用的角点信息。如上图所示是一个3×3大小的棋盘,有4个内角点。对于每一个视场,我们仅能给出4个有用的角点信息,那么上述的公式中N就约束为4,即公式变为(4-3)K&=2,即K&=2。即要求解10个参数最少需要两个视场。考虑到噪声和数值稳定性要求,对大棋盘需求收集更多的图像。为了得到高质量结果,至少需要10幅7×8或者更大棋盘的图像(而且只在移动棋盘在不同图像中足够大以从视场图像中得到更加丰富的信息)。2.数学是怎么应用于标定的?OpenCV选着那些能够很好工作于平面物体的方法。OpenCV中使用的求解焦距和偏移的算法是基于张的方法,但求解畸变参数则是另外一个基于Brown的方法。(1)首先我们假定求解标定参数时,摄像机没有畸变。对于每一个棋盘视场,我们得到一个前面描述的单应性矩阵H,大小为3×3。将H写成列向量的形式,即H=[h1 h2 h3],每个h是3×1向量,单应性矩阵H是物理变换(旋转、平移)和相机内参数组成。我们的目的就是分解这个H,能够从中分解出这些成分。M是摄像机内参数矩阵,r1,r2是旋转矢量3×1,t是平移矢量,缩放因子s,对应项相等得到如下:
λ=1/s我们知道R=[r1,r2,r3],r3消失,是因为我们另Z=0。R是一个正交阵,即R的转置等于R的逆。正交阵的每个列向量是两两正交且单位化的(即模为1),那么r1和r2是相互正交。正交的含义有两个:两个矢量的点积为0,两个矢量的长度相等。下面我们就用这两个约束来进行求解。我们将r1和r2带入到上述的公式得:令:展开有: 其中M公式如下:(注意:这里的cx、Cy相当于上面的U0、V0)将M带入公式,可以得到矩阵B的通用形式的封闭解:这里重新写一下两个约束:由于B是对称真,那么B可以仅有对角线下半元素或者对角线上半元素表示,即可以有6个元素表示。我们将通用形式展开,并且提取出B成分,那么通用形式可以写成含有旋转成分和含有B成分的6个元素组成的向量的点积(注意:是点积,不是两个矩阵相乘),如下:从上述公式,我们已知单应性矩阵H,那么它其中的每一个元素我们都是已知的,那么上述Bij是我们要求解的值,我们可以组合两个约束为如下的形式:每一个视场我们可以得到形如上面描述的2个公式(上述黄色部分),那么对于K的视场,我们可以得到2K个这样的公式。我们堆积这些方程有:b是要求解未知数矢量大小为6×1,V是2K×6的矩阵,如果K&=2,那么方程有解b=[B11,B12,B22,B13,B23,B33]T。摄像机内参数可以从B矩阵的封闭解中直接得到:外参数(旋转和平移)可以由单应性条件计算得到:上述公式中,λ,M,H,都是求解的得到的作为已知量,(r3=r1×r2,这是因为r1,r2,r3两两正交)。需要小心的是,当我们使用真实的数据求解时,将计算得到的r向量放在一起(R=(r1,r2,r3)),我们并不能得到精确的旋转矩阵R,使得R为正交阵。为了解决这个问题,我们常使用强制的方法,即对R进行奇异值分解,R=UDVT,U,V为正交阵,D为对角阵,如果R是正交阵,那么奇异值分解后的对角阵D是单位阵,那么我们将单位阵I代替对角阵D,进而重构出满足正交条件的R.(2)在前面的工作中,我们总是先忽略透镜畸变,然后求解得到的系统。如果针孔模型是完美的,令(xp,yp)为点的位置,令(xd,yd)为畸变的位置,那么有:通过下面的替换,可以得到没有畸变的标定结果:就像先前描述的那样,上述5个畸变参数:k1,k2,k3,p1,p2,需要3个角点构成的6组方程就可以求解。我们猜测一下,我们通过前面的计算已经求解出相机的内参数:fx,fy,cx,cy,棋盘平面上角点的坐标为世界坐标,其中X,Y我们可以理解为在其平面上的坐标,Z是一个尺度,因为我们知道求解单应性矩阵H,也是一个尺度,所以具体怎么控制,先不用管,我们就可以通过上述公式一求解出xp和yp,xd,yd就是成像仪上角点的真实位置,那么就可以由xp,yp和xd,yd的点对,带入到上述的公式二,求可以求解出5个畸变系数。备注:齐次坐标 就是将一个原本是n维的向量用一个n+1维向量来表示。 许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为x=R*X+t (注:因为习惯的原因,实际使用时一般使用变化矩阵左乘向量)(R 旋转缩放矩阵,t 为平移矩阵,X 为原向量,x 为变换后的向量)。引入齐次坐标的目的主要是合并矩阵运算中的乘法和加法,表示为x=P*X的形式。即它提供了用矩阵运算把二维、三维甚至高维空间中的一个点集从一个坐标系变换到另一个坐标系的有效方法。和上面的计算过程是对应的。相机标定原理介绍(二)所有的相机标定本质:都是在求取内参和外参中所含的参数。基于3D标定物的标定方法使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法。计算机视觉中,经典的3D标定物,棋盘方形格图案,并且提供其中角点的精确坐标。主要流程这一类标定法,主要包括四个步骤:检测每张图片中的棋盘图案的角点;通过使用线性最小二乘法估算相机投影矩阵P;根据P矩阵就解内参矩阵K和外参矩阵R,t;通过非线性优化,提高K,R,t矩阵的精度。除了上述的流程,还有另外一种做法是先通过非线性优化改善相机投影矩阵P,然后获得相机内参和外参。
摄像相机标定到底是啥?标定完成得到的参数有什么用?
今天说一个比较让人头疼的话题-----摄像机标定
为什么说令人头疼呢?因为解释起来与会花费很多的时间。
1.先介绍下摄像机成像原理
一个摄像机可以大致分为三个部分:镜头 、感光元...
相机标定(Camera calibration)原理、步骤
相机标定(Camera calibration)原理、步骤author@jason_ql
http://blog.csdn.net/lql0716
在图像测量过程以及机器视觉应用中,为确定空间物体表...
最详细、最完整的相机标定讲解
张正友标定
相机标定原理
之前写过一篇文章怎么使用Opencv进行相机标定,但没有详叙原理,这里从原理上面入手,分析下标定算法原理。1:相机成像原理
首先了解四个坐标系:
像素平面坐标系(u,v)、像平面坐标系(图像物理坐...
相机标定(1)---初识相机标定 标定的含义,意义
转自: 相机标定(1)---初识相机标定 标定的含义,意义
1:相机标定含义(解决什么是相机标定)
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其...
关于相机标定意义和原理的个人总结
本文是一篇关于相机标定意义和原理的个人总结,包含了OpenCV和Matlab中常用的相机标定函数的注解。
相机标定是机器视觉的基础,标定结果的好坏直接决定了机器视觉的系统精度,作用可见一斑。在这一年...
相机标定原理———标定原理介绍
摄像机CCD在计算机视觉中是对物理三维世界进行重建的一种基本工具,通过三维重建,我们可以通过计算机处理得到的二维图像,来描述,识别,理解外部三维世界。而进行摄像机的标定,是我们通过二维图像认识外部三维...
单目相机标定原理
相机标定的目的是建立像素坐标系和世界坐标系之间的关系。原理是根据摄像机模型,由已知特征点的图像坐标求解摄像机的模型参数,从而可以从图像中恢复出空间点的三维坐标。所要求解的参数包括4个内参数和5个畸变参...
没有更多推荐了,摄像机标定
通常采用如上图所示的小孔成像模型(pinhole camera model)研究摄像机标定问题。
如上图所示,摄像机标定涉及的四大坐标系:
世界坐标系$({X}_w, {Y}_w, {Z}_w)$:原点为$O_w$;
摄像机坐标系$({X}_c, {Y}_c, {Z}_c)$:原点$O_c$为光学中心,通常是小孔(pinhole)的位置;
像平面坐标系/图像物理坐标系$({x}, {y})$:通过光学系统在感光芯片上成像的图像坐标系;
像素坐标系$({u}, {v})$。
在三维图像处理中,标定就是确定摄像机的内外参数(intrinsic and/or extrinsic camera parameters):
内部参数:描述摄像机的内部几何结构和光学特性;
外部参数:描述摄像机坐标系与世界坐标系的关系。
为了从2张或更多的图像中重构环境的三维信息,有必要知道对象的三维环境(世界坐标系)与二维图像之间的关系:
二维]透视投影(perspective projection):已知摄像机的投影矩阵,可近似确定三维点的二维投影。
三维]逆投影(backprojection):若已知图像上的二维点,可确定三维空间中三维点所在的射线。若存在三维点两个或更多的视图(view),其坐标可通过三角测量法(triangulation)确定。
透视投影可以减少场景分析(scene analysis)过程中处理的数据量,逆投影可用于从二维图像的特征中重建三维信息。
真实的摄像机和镜头通常都有成像误差,并不满足小孔成像模型的约束条件。成像误差主要来源于几方面:
成像设备分辨率低,导致空间分辨率低;
大多数镜头不对称,并且会导致畸变;
装配精度不够(比如,图像传感器的中心不在光轴上[optical axis],传感器与镜头不平行);
摄像机硬件和采集硬件之间的计时误差。
摄像机标定可在线或离线完成,可采用自标定(self-calibration)或机器学习的方法。通常的方法是借助标定物:(i)确定摄像机的参数;(ii)确定摄像机坐标系和世界坐标系之间的变换。
一、像素坐标系与像平面坐标系
假定每个像素在$u$轴和$v$轴方向的物理尺寸分别为$\mathrm{d}x$和$\mathrm{d}y$,那么就有:
\begin{equation}
\begin{aligned}
u&={x\over \mathrm{d}x}+u_0\\
v&={y\over \mathrm{d}y}+v_0。
\end{aligned}
\end{equation}
$\mathrm{d}x$、$\mathrm{d}y$表示每个像素在感光芯片上占据的实际大小,通过它建立了像素坐标系和真实尺寸坐标系的联系,$u_0$、$v_0$是像素平面中心。上述公式可以表示为矩阵形式
\begin{equation}
\begin{bmatrix}u\\ v\\ 1\end{bmatrix} =
\begin{bmatrix}
{1\over \mathrm{d}x} & 0 & u_0 \\
0 & {1\over \mathrm{d}y} & v_0 \\
\end{bmatrix}
\begin{bmatrix}x\\ y\\ 1\end{bmatrix},
\label{eq:pixel-vs-image-coordination}
\end{equation}
\begin{equation}
\begin{bmatrix}x\\ y\\ 1\end{bmatrix} =
\begin{bmatrix}
{\mathrm{d}x} & 0 & -u_0\mathrm{d}x \\
0 & {\mathrm{d}y} & -v_0\mathrm{d}y \\
\end{bmatrix}
\begin{bmatrix}u\\ v\\ 1\end{bmatrix}。
\end{equation}
该变换建立了像素与物理尺寸的对应关系。
二、摄像机坐标系与世界坐标系
这两个坐标系的关系可用旋转矩阵$\mathbf R$和平移矩阵$\mathbf t$表示如下:
\begin{equation}
\begin{bmatrix}X_c\\ Y_c\\ Z_c \\ 1\end{bmatrix} =
\begin{bmatrix}
\mathbf R & \mathbf t \\
\mathbf 0^\top & 1
\end{bmatrix}
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix} =
\mathbf L_w
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix}。
\end{equation}
其中,$\mathbf R$为$3\times 3$的矩阵,$\mathbf t$为$3\times 1$的矩阵,$\mathbf 0^\top = [0\; 0\; 0]$。
三、摄像机坐标系与像平面坐标系(成像投影关系)
对线性摄像机模型(针孔模型),可得如下关系($f$为焦距)
\begin{equation}
\frac{x}{f} = \frac{X_c}{Z_c} \\
\frac{y}{f} = \frac{Y_c}{Z_c},
\end{equation}
\begin{equation}
xZ_c = fX_c \\
yZ_c = fY_c,
\end{equation}
同样可以表示为矩阵形式
\begin{equation}
\begin{bmatrix}x\\ y\\ 1\end{bmatrix} =
\begin{bmatrix}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}
\begin{bmatrix}X_c\\ Y_c\\ Z_c\\ 1\end{bmatrix}。
\end{equation}
四、像素坐标系与世界坐标系
根据上述坐标系的关系,可以推导出像素坐标系与世界坐标系的关系
\begin{equation}
\begin{aligned}
\begin{bmatrix}u\\ v\\ 1\end{bmatrix} &=
\begin{bmatrix}
{1\over \mathrm{d}x} & 0 & u_0 \\
0 & {1\over \mathrm{d}y} & v_0 \\
\end{bmatrix}
\begin{bmatrix}
f & 0 & 0 & 0 \\
0 & f & 0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}
\begin{bmatrix}
\mathbf R & \mathbf t \\
\mathbf 0^\top & 1
\end{bmatrix}
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix}\\
&=\begin{bmatrix}
a_x & 0 & u_0 & 0 \\
0 & a_y & v_0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}
\begin{bmatrix}
\mathbf R & \mathbf t \\
\mathbf 0^\top & 1
\end{bmatrix}
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix}
=\mathbf M_1\mathbf M_2\mathbf X_w=\mathbf M\mathbf X_w。
\end{aligned}
\label{eq:pixel-vs-world-coordination}
\end{equation}
$\mathbf M$是$3\times 4$的矩阵,称为投影矩阵;$\mathbf M_1$只与摄像机的内部结构有关,称为摄像机内部参数;$\mathbf M_2$(也就是$\mathbf R$和$\mathbf t$)完全由摄像机相对于世界坐标系的方位决定,称为摄像机外部参数(extrinsic parameter)。已知投影矩阵$\mathbf M$,可以根据空间点的坐标确定求出其在图像中的位置,由于$\mathbf M$不可逆,已知图像中的点,无法唯一确定其空间中的对应位置。
Faugeras标定法
直接线性变换(DLT,direct linear transformation)是将像素点和物体成像几何关系在齐次坐标下写成透视投影矩阵的形式,确定该矩阵的过程称为标定。利用直接线性变换的标定法不考虑相机镜头的非线性畸变。Faugeras标定法是一种直接线性变换标定方法。
公式\eqref{eq:pixel-vs-world-coordination}可以记为如下形式
\begin{equation}
\begin{bmatrix}u\\ v\\ 1\end{bmatrix} =
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix} =
\begin{bmatrix}
m_{11} & m_{12} & m_{13} & m_{14} \\
m_{21} & m_{22} & m_{23} & m_{24} \\
m_{31} & m_{32} & m_{33} & m_{34}
\end{bmatrix}
\begin{bmatrix}X_w\\ Y_w\\ Z_w \\ 1\end{bmatrix},
\end{equation}
\begin{equation}
\begin{aligned}
u &= \frac{m_{11}X_w + m_{12}Y_w + m_{13}Z_w + m_{14}}{m_{31}X_w + m_{32}Y_w + m_{33}Z_w + m_{34}} \\
v &= \frac{m_{21}X_w + m_{22}Y_w + m_{23}Z_w + m_{24}}{m_{31}X_w + m_{32}Y_w + m_{33}Z_w + m_{34}}。
\end{aligned}
\end{equation}
对于无畸变(distortion-free)摄像机模型,标定就是确定参数矩阵$\mathbf M$。将上式转换为线性方程组的形式
\begin{equation}
\begin{aligned}
m_{11}X_w + m_{12}Y_w + m_{13}Z_w + m_{14} - m_{31}uX_w - m_{32}uY_w - m_{33}uZ_w &= m_{34}u\\
m_{21}X_w + m_{22}Y_w + m_{23}Z_w + m_{24} - m_{31}vX_w - m_{32}vY_w - m_{33}vZ_w &= m_{34}v。
\end{aligned}
\end{equation}
令$m_{34}=1$(相当于方程两边都除以$m_{34}$),方程组可记为等价的矩阵形式
\begin{equation}
\mathbf A\mathbf L=\mathbf U,
\end{equation}
\begin{aligned}
\mathbf A &=
\begin{bmatrix}
X_{w1} & Y_{w1} & Z_{w1} & 1 & 0 & 0 & 0 & 0 & -u_1X_{w1} & -u_1Y_{w1} & -u_1Z_{w1} \\
0 & 0 & 0 & 0 & X_{w1} & Y_{w1} & Z_{w1} & 1 & -v_1X_{w1} & -v_1Y_{w1} & -v_1Z_{w1} \\
&&&&&\ldots \\
X_{wn} & Y_{wn} & Z_{wn} & 1 & 0 & 0 & 0 & 0 & -u_nX_{wn} & -u_nY_{wn} & -u_nZ_{wn} \\
0 & 0 & 0 & 0 & X_{wn} & Y_{wn} & Z_{wn} & 1 & -v_nX_{wn} & -v_nY_{wn} & -v_nZ_{wn}
\end{bmatrix}\\
\mathbf L &= \left[m_{11}\;m_{12}\;m_{13}\;m_{14}\;m_{21}\;m_{22}\;m_{23}\;m_{24}\;m_{31}\;m_{32}\;m_{33}\right]^\top \\
\mathbf U &= \left[u_1\;v_1\ldots u_n\;v_n\right]^\top
\end{aligned}
其最小二乘解为
\begin{equation}
\mathbf L=\left(\mathbf A^\top\mathbf A\right)^{-1}\mathbf A^\top\mathbf U。
\label{eq:ls-solution}
\end{equation}
该方程组有11个未知数,意味着使用至少6组点对($n\geq 6$)就可以求解出全部的系数。通过$\mathbf L$得到参数矩阵$\mathbf M$后,可求解摄像机的全部内外参数。
根据\eqref{eq:pixel-vs-world-coordination}可得
\begin{bmatrix}
\mathbf m_1^\top & m_{14} \\
\mathbf m_2^\top & m_{24} \\
\mathbf m_3^\top & 1
\end{bmatrix}
=\begin{bmatrix}
a_x & 0 & u_0 & 0 \\
0 & a_y & v_0 & 0 \\
0 & 0 & 1 & 0
\end{bmatrix}
\begin{bmatrix}
\mathbf r_1^\top & t_{x} \\
\mathbf r_2^\top & t_{y} \\
\mathbf r_3^\top & t_z\\
\mathbf 0^\top
\end{bmatrix},
\begin{equation}
\begin{bmatrix}
\mathbf m_1^\top & m_{14} \\
\mathbf m_2^\top & m_{24} \\
\mathbf m_3^\top & 1
\end{bmatrix}
=\begin{bmatrix}
a_x \mathbf r_1^\top + u_0\mathbf r_3^\top & a_xt_x+u_0t_z\\
a_y \mathbf r_2^\top + v_0\mathbf r_3^\top & a_yt_y+v_0t_z\\
\mathbf r_3^\top & t_z
\end{bmatrix}。
\end{equation}
比较上式两端可知$m_{34}\mathbf m_3=\mathbf r_3$,由于$\mathbf r_3$是正交单位矩阵的第三行,$\|\mathbf r_3\|=1$,那么有$m_{34}=\frac{1}{\|\mathbf m_3\|}$,因此利用$\mathbf M$矩阵可得摄像机内参
\begin{equation}
\begin{aligned}
u_0 & = \left(a_x \mathbf r_1^\top + u_0\mathbf r_3^\top\right)\mathbf r_3
m_{34}^2\mathbf m_1^\top\mathbf m_3\\
v_0 & = \left(a_y \mathbf r_2^\top + v_0\mathbf r_3^\top\right)\mathbf r_3
m_{34}^2\mathbf m_2^\top\mathbf m_3 \\
a_x & = m_{34}^2 \left\|\mathbf m_1\times\mathbf m_3\right\|\\
a_y & = m_{34}^2 \left\|\mathbf m_2\times\mathbf m_3\right\|
\end{aligned},
\end{equation}
以及摄像机的外参
\begin{equation}
\begin{aligned}
\mathbf r_1 &= \frac{m_{34}}{a_x}\left(\mathbf m_1 - u_0\mathbf m_3\right)\\
\mathbf r_2 &= \frac{m_{34}}{a_y}\left(\mathbf m_2 - v_0\mathbf m_3\right)\\
\mathbf r_3 &= m_{34}\mathbf m_3\\
t_x &= \frac{m_{34}}{a_x}\left(m_{14} - u_0\right) \\
t_y &= \frac{m_{34}}{a_y}\left(m_{24} - v_0\right) \\
t_z &= m_{34}
\end{aligned}。
\end{equation}
$\mathbf M$矩阵由4个摄像机内部参数及$\mathbf R$和$\mathbf t$确定。由于$\mathbf R$是正交单位阵,$\mathbf R$和$\mathbf t$的独立变量数为6,因此$\mathbf M$由10个独立变量的矩阵确定。但是$3\times 4$的矩阵$\mathbf M$由11个参数确定,可见这11参数并非相互独立,存在约束关系。在求解的时候并未参数间的约束关系,数据有误差时计算结果有误差,且误差在各参数间的分配也没有按约束关系考虑。实验表明,用上述方法分解出的内外参数有较大的误差。Faugeras等在用\eqref{eq:ls-solution}求解$\mathbf M$时加上了约束条件$\|\mathbf m_3\|=1$,不需要解非线性方程,而且提高了计算精度。
改进的Faugeras标定法
像素畸变问题
由于制造工艺的限制,通常摄像机离散化后的像素不是矩形而是平行四边形,一边平行于$u$轴,另一边与$u$轴夹角为$\theta$,边长为分别为$\mathrm{d}x$和$\mathrm{d}y$,那么公式\eqref{eq:pixel-vs-image-coordination}可改写为
\begin{equation}
\begin{bmatrix}u\\ v\\ 1\end{bmatrix} =
\begin{bmatrix}
{1\over \mathrm{d}x} & -{\cot\theta\over \mathrm{d}y} & u_0 \\
0 & {\sin\theta\over \mathrm{d}y} & v_0 \\
\end{bmatrix}
\begin{bmatrix}x\\ y\\ 1\end{bmatrix}。
\label{eq:pixel-vs-image-coordination2}
\end{equation}
Tsai标定法
实验表明,线性模型不能准确描述成像的几何关系,尤其在使用广角镜头时,远离图像中心处会有较大的畸变。描述非线性畸变可用如下公式
\begin{equation}
\begin{aligned}
\bar{x} &= x + \delta_x(x,y)\\
\bar{y} &= y + \delta_y(x,y)
\end{aligned},
\label{eq:image-mapping-distortion}
\end{equation}
其中,$(\bar x, \bar y)$是小孔线性模型计算出的图像坐标理想值,$(x, y)$是实际图像坐标,$\delta_x$和$\delta_y$是非线性畸变,它与图像点在图中位置相关,可用公式表示为
\begin{equation}
\begin{aligned}
\delta_x(x, y) &= k_1x\left(x^2+y^2\right)+\left(p_1\left(3x^2+y^2\right)+2p_2xy\right)+s_1\left(x^2+y^2\right)\\
\delta_y(x, y) &= k_2y\left(x^2+y^2\right)+\left(p_2\left(3x^2+y^2\right)+2p_1xy\right)+s_2\left(x^2+y^2\right)
\end{aligned}
\end{equation}
上式第一项称为径向畸变,第二项称为离心畸变(decentering),第三项称为薄棱镜畸变(thin prism),$k_1,k_2,p_1,p_2,s_1,s_2$称为非线性畸变参数。通常第一项径向畸变就能足够描述非线性畸变。Tsai指出,考虑非线性畸变需要使用非线性优化算法,引入过多的非线性参数往往不能提高精度,反而引起解的不稳定性。但也有研究表明,引入二三项在使用广角镜头时能提高精度。若只考虑径向畸变,\eqref{eq:image-mapping-distortion}可写为
\begin{equation}
\begin{aligned}
\bar{x} &= x\left(1+k_1r^2\right)\\
\bar{y} &= y\left(1+k_2r^2\right)
\end{aligned},
\end{equation}
其中$r^2=x^2+y^2$,图像边缘处的畸变较大。
Tsai提出的方法很好的解决了只存在径向畸变时的标定问题。Tsai标定法是基于径向排列约束(RAC,radial alignment constraint)的两步标定法。该方法的第一步是利用最小二乘法得到外部参数;第二步求解内部参数,如果摄像机无径向畸变,可由线性方程组求解,若存在径向畸变,可结合非线性优化得到全部参数。
张正友平面标定法
[1]Y. I. Abdel-Aziz and H. M. Karara, “Direct Linear Transformation from Comparator Coordinates into Object Space Coordinates in Close-Range Photogrammetry,” Photogrammetric Engineering & Remote Sensing, vol. 81, no. 2, pp. 103–107, 2015.
[2]马颂德 and 张正友, 计算机视觉:计算理论与算法基础. 科学出版社, 1998.
[3]徐德, 谭民, and 李原, 机器人视觉测量与控制, 2nd ed. 北京: 国防工业出版社, 2011.
[4]O. D. Faugeras and G. Toscani, “The calibration problem for stereo,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 1986, vol. 86, pp. 15–20.
[5]吴福朝, 计算机视觉中的数学方法. 科学出版社, 2008.
[6]R. Y. Tsai, “An efficient and accurate camera calibration technique for 3D machine vision,” in Proc. IEEE Conf. on Computer Vision and Pattern Recognition, 1986.
[7]O. D. Faugeras and G. Toscani, “Camera calibration for 3D computer vision,” in Proceedings of International Workshop on Machine Vision and Machine Intelligence, Tokyo, Japan, 1987.
[8]J. Weng, P. Cohen, and M. Herniou, “Calibration of stereo cameras using a non-linear distortion model [CCD sensory],” in Pattern Recognition, 1990. Proceedings., 10th International Conference on, 1990, vol. 1, pp. 246–253.
[9]R. Y. Tsai, “A versatile camera calibration technique for high-accuracy 3D machine vision metrology using off-the-shelf TV cameras and lenses,” Robotics and Automation, IEEE Journal of, vol. 3, no. 4, pp. 323–344, 1987.
Please enable JavaScript to view the
Powered by
| Copyright 2014 - 2018 by}

我要回帖

更多关于 矩阵M小t 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信