做一下多目视觉标定和立体视觉的学习笔记。 双目视觉主要包括相机标定、图片畸变矫正、摄像机校正、图片匹配、3D恢复五个部分。
相机标定的目的有两个。
第一,要还原摄像头成像的物体在真实世界的位置就需要知道世界中的物体到计算机图像平面是如何变换的,相机标定的目的之一就是为了搞清楚这种变换关系,求解内外参数矩阵。 第二,摄像机的透视投影有个很大的问题——畸变。摄像头标定的另一个目的就是求解畸变系数,然后用于图像矫正。
谈到相机标定,我们不得不说起摄相机坐标系、世界坐标系、图像坐标系。
世界坐标系(Xw,Yw,Zw):目标物体位置的参考系。除了无穷远,世界坐标可以根据运算方便与否自由放置,单位为长度单位如mm。。在双目视觉中世界坐标系主要有三个用途:
标定时确定标定物的位置; 作为双目视觉的系统参考系,给出两个摄像机相对世界坐标系的关系,从而求出相机之间的相对关系; 作为重建得到三维坐标的容器,存放重建后的物体的三维坐标。世界坐标系是将看见中物体纳入运算的第一站。 摄像机坐标系(Xc,Yc,Zc):摄像机站在自己角度上衡量的物体的坐标系。摄像机坐标系的原点在摄像机的光心上,z轴与摄像机光轴平行。它是与拍摄物体发生联系的桥头堡,世界坐标系下的物体需先经历刚体变化转到摄像机坐标系,然后在和图像坐标系发生关系。它是图像坐标与世界坐标之间发生关系的纽带,沟通了世界上最远的距离。单位为长度单位如mm。
图像坐标系(x,y):以CCD 图像平面的中心为坐标原点,为了描述成像过程中物体从相机坐标系到图像坐标系的投影透射关系而引入,方便进一步得到像素坐标系下的坐标。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。
像素坐标系(u,v) :以 CCD 图像平面的左上角顶点为原点,为了描述物体成像后的像点在数字图像上(相片)的坐标而引入,是我们真正从相机内读取到的信息所在的坐标系。像素坐标系就是以像素为单位的图像坐标系。
备注:有很多人把图像坐标系和像素坐标系合在一起,称作三大坐标系,也有人分开,称为四大坐标系。
通过上面的三角关系,利用简单的相似三角形知识,就可以得到
T-(xl-xr) : (Z-f) = T : Z ==> Z = f*T/(xl - xr) f为焦距,T为baseline,(xl - xr)为视差,可知求取深度信息只与这三个值有关。
深度与视差成反比例关系,当视差接近0时,微小的视差变化会导致很大的深度变化,当视差较大时,微小的视差变化几乎不会引起很大的深度变化。
本征矩阵E是单几何意义上的,与成像仪无关,它将左摄像机观测到的点P的物理坐标与右摄像机观测到的相同位置的点关联起来。
基础矩阵F则是将一台摄像机的像平面上的点的像素坐标和另一台摄像机像平面上的点关联起来。
step1. 立体相机标定,获取相机系统内外参数
step2. 获取目标点在左右成像平面上的像素坐标 step3. 利用标定参数对像素坐标进行校准undistortPoints step4. 利用重投影矩阵计算目标三维坐标
https://www.cnblogs.com/zyly/p/9366080.html