author@jason_ql(lql0716)
http://blog.csdn.net/lql0716css
在图像测量过程以及机器视觉应用中,为肯定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须创建相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须经过实验与计算才能获得,这个求解参数的过程就称之为相机标定(或摄像机标定)。不管是在图像测量或者机器视觉应用中,相机参数的标定都是很是关键的环节,其标定结果的精度及算法的稳定性直接影响相机工做产生结果的准确性。所以,作好相机标定是作好后续工做的前提,提升标定精度是科研工做的重点所在。html
经常使用术语
内参矩阵: Intrinsic Matrix
焦距: Focal Length
主点: Principal Point
径向畸变: Radial Distortion
切向畸变: Tangential Distortion
旋转矩阵: Rotation Matrices
平移向量: Translation Vectors
平均重投影偏差: Mean Reprojection Error
重投影偏差: Reprojection Errors
重投影点: Reprojected Pointspython
世界坐标系(world coordinate)
(xw,yw,zw) ,也称为测量坐标系,是一个三维直角坐标系,以其为基准能够描述相机和待测物体的空间位置。世界坐标系的位置能够根据实际状况自由肯定。算法
相机坐标系(camera coordinate)
(xc,yc,zc) ,也是一个三维直角坐标系,原点位于镜头光心处,x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。apache
其中
图1:
app
像素坐标系(pixel coordinate)
如图1,像素坐标系
像素坐标系中坐标轴的单位是像素(整数)
。机器学习
像素坐标系不利于坐标变换,所以须要创建图像坐标系
其坐标轴的单位一般为毫米(mm)
,原点是相机光轴与相面的交点(称为主点),即图像的中心点,
图像坐标系转换为像素坐标系学习
其中,
图2:
如图,空间任意一点
该过程为透视投影,以下矩阵表示:
其中,
其中,
αx=f/dX 、αy=f/dY ,称为u 、v 轴的尺度因子,M1 称为相机的内部参数矩阵,M2 称为相机的外部参数矩阵,M 称为投影矩阵。
畸变参数(distortion parameters)
畸变(distortion)
是对直线投影(rectilinear projection)的一种偏移。简单来讲直线投影是场景内的一条直线投影到图片上也保持为一条直线。
畸变简单来讲就是一条直线投影到图片上不能保持为一条直线了,这是一种
光学畸变(optical aberration)
,可能因为摄像机镜头的缘由。
畸变通常能够分为:径向畸变、切向畸变
一、径向畸变来自于透镜形状
二、切向畸变来自于整个摄像机的组装过程畸变还有其余类型的畸变,可是没有径向畸变、切向畸变显著
畸变图示
径向畸变
实际摄像机的透镜老是在成像仪的边缘产生显著的畸变,这种现象来源于“筒形”或“鱼眼”的影响。
以下图,光线在原理透镜中心的地方比靠近中心的地方更加弯曲。对于经常使用的普通透镜来讲,这种现象更加严重。筒形畸变在便宜的网络摄像机中很是厉害,但在高端摄像机中不明显,由于这些透镜系统作了不少消除径向畸变的工做。
对于径向畸变,成像仪中心(光学中心)的畸变为0,随着向边缘移动,畸变愈来愈严重。
径向畸变包括:枕形畸变、桶形畸变
切向畸变
切向畸变是因为透镜制造上的缺陷使得透镜自己与图像平面不平行而产生的。
切向畸变可分为:薄透镜畸变、离心畸变
切向畸变图示:
如下公式由泰勒展式得出,在opencv中
也即:
实际计算过程当中,若是考虑太多高阶的畸变参数,会致使标定求解的不稳定。
张正友的方法只考虑了径向畸变,没有考虑切向畸变
模型:
理想状况下(没有畸变)图片的像素坐标为:
(u,v)
真实的像素坐标为:
(u¯,v¯)
真实坐标与理想坐标的关系式(泰勒展开):
(x,y) and(x¯,y¯) are the ideal (distortion-free) and real (distorted) normalized image coordinates.
x¯=x+x[k1(x2+y2)+k2(x2+y2)2]
y¯=y+y[k1(x2+y2)+k2(x2+y2)2]
其中
k1 ,k2 是径向畸变系数(coefficients of the radial distortion)。像素坐标表示为:
u¯=u+(u−u0)[k1(x2+y2)+k2(x2+y2)2]
v¯=v+(v−v0)[k1(x2+y2)+k2(x2+y2)2]
即:
[(u−u0)(x2+y2)(v−v0)(x2+y2)(u−u0)(x2+y2)2(v−v0)(x2+y2)][k1k2]=[u¯−uv¯−v]
一、打印一张棋盘格,把它贴在一个平面上,做为标定物。
二、经过调整标定物或摄像机的方向,为标定物拍摄一些不一样方向的照片。
三、从照片中提取棋盘格角点。
四、估算理想无畸变的状况下,五个内参和六个外参。
五、应用最小二乘法估算实际存在径向畸变下的畸变系数。
六、极大似然法,优化估计,提高估计精度。
相关文章
《学习opencv》