图像处理-opencv-计算机视觉-双目视觉-三维重建-相机标定
立体视觉(三维重建):
步骤:
1. 图像采集
2. 摄像机标定求取内参数与镜头的畸变量
3. 特征提取, 即物体的点、线段、边缘、区域等 特征信息
4. 立体匹配(最重要的步骤), 即建立空间中同一个点在不同图像中的对应关系
5. 三维恢复, 即在立体匹配的基础上计算出视差后再用三角原则进行
6. 后期处理
应用: 恢复战场的三维信息;医学立体成像;移动机器人导航(搭载两个摄像机恢复三维场景完成对目标的检测、定位和识别);
双目立体视觉系统 ---------由一个或两个摄像头在不同位置拍摄某个物体的若干幅图像,通过特定的算法求取待测点在两幅图像中的视差,最后算出此点的空间坐标值。---包括:摄像机参数标定、立体标定与图像校正、立体匹配、三维恢复等几个部分。
摄像机标定----根据给定的摄像机成像模型求取摄像机内外参数和镜头的畸变量的过程。
1)摄影测量标定---Karara和Abdel-Aziz提出的直接线性变换法(1971);Tsai 两步标定法(基于径向约束进行标定);Martins等人研究了双平面模型标定法。
-----摄影测量标定要求摄像机拍摄一个制作精确的标定物。适合室内标定
2) 摄像机自标定---自标定不需要任何标定物--室外标定
摄像机标定原理:通过摄像机在静态场景中的移动所提供的关于内参数的两个约束来计算摄像机的内参数。
两种标定方法有统一的数学模型---针孔相机模型
O为相机中心(投影中心);摄像机的主轴方向与Z轴正方向相同,由于将相机位置放在世界坐标系OXYZ的原点,所以也称为相机坐标系。
(针孔相机模型)
从世界坐标系 Oxyz 的点 Q 到平面图像坐标 Oxy 的 的中心投影 可以表示为:(f是焦距)(相似三角形原理)
(这是三维欧式空间到二维欧式空间的一个映射)
---->
可以表示为矩阵运算的形式:
由于实际情况下,图像平面坐标系的原点o与主点p不重合,如下:
,这样上述公式就得改为:
--->
(相机标定矩阵)
Xc表示在相机坐标系下的空间点
将图像坐标以像素作为单位----由于相机的感光元件是电荷耦合元件(CCD)或金属氧化物半导体。
(CCD相机的标定矩阵)
mx、 my是在x y轴方向上图像坐标单位距离的像素数。
左侧OcXcYcZc为相机坐标系,右侧OwXwYwZw为世界坐标系。
若D1表示世界坐标系中的一点的坐标,而D2为相机坐标系表示的同一点,C表示相机中心在世界坐标系的坐标
R为3X3矩阵----------------------->D2=R(D1-C)
相机参数求取:相机标定过程中需要一个带有精确坐标值的标志点阵的模板(张正友标定算法求取内外参数)
(12x8棋盘格模板)
标定步骤:
1.采集图像 :设置摄像头驱动程序完成初始化,然后对摄像机进行参数设置,设置摄像机的分辨率、窗口模式、曝光、增益等参数。 ----采集>>停止>>读取>>存储>>释放资源
需要在至少三个位置对标定模板进行图像采集 。要么移动标定模板,要么移动摄像机。采集的图片组数越多,标定结果越准确,必须保证每个角点都能被提取。
2.角点提取:>>求出世界坐标系点与图像坐标系点之间的映射关系;求取角点>>用以知道世界坐标系中的点在图像中的精确的位置。
边缘检测:检测和识别出图像中亮度变化剧烈的像素点构成的集合
灰度化( cvCvtColor( ) )>>直方图均衡(cvEqualize( ) )>> 阈值化(cvThreshold( ) )>>边缘提取在像素级别上对棋盘格角点进行提取( cvCanny( ) )>>进一步提高到亚像素级别
(角点提取结果)
3. 内外参数和畸变向量的求取:得到标定板上所有角点在世界坐标系中的位置和图像中角点的亚像素级坐标。
---张正友标定法求取摄像机内外参数>>>BROWN算法求取镜头畸变量>>>求出参数
立体标定与图像校正
左右两相机有两个光心,求取以左光心为原点的坐标系变换到以右光心为原点的坐标系的平移向量T和旋转矩阵R
通过空间中同一点在左右两幅图上的像素坐标的位置关系结合摄像机的标定参数来求取R , T,实现双目立体标定。