1 理想双目视觉系统
图1
如图1所示为理想双目视觉系统:==两像机成像面共面行对齐,极点处于无限远处==——像点
(x0,y0)对应的极线为
y=y0。
关于极点、极线方面的内容可以参考之前的博客:计算机视觉系列教程1-4:对极几何基本原理图解
取定左相机坐标系为标准系,由相似关系,物点在左成像面的坐标为
[LxLy]=[fZXfZY]
设双目系统的间距为
bx,则双目系统相机位姿关系为
LRT=⎣⎢⎢⎢⎡111−bx001⎦⎥⎥⎥⎤
因此物点在右相机坐标系下为
RX=LRTLX=[X−bxYZ]T,同样由相似原理得
[RxRy]=[fZX−bxfZY]
由于行对齐,因此同一物点在两成像面上形成==立体视差==
d=Lx−Rx=fZbx
所谓立体视差就是同一个物点在两个相机成像面上相点之差。
从而可以从成像面坐标还原三维坐标,并转换为像素尺度:
⎣⎢⎡XYZ⎦⎥⎤=⎣⎢⎡LxdbxLydbxfdbx⎦⎥⎤=⎣⎢⎢⎡(Lu−Lcu)dubx(Lv−Lcv)dubxfudubx⎦⎥⎥⎤
其中
Z即为==图像深度信息==。将上述方程改写为线性形式:
⎣⎢⎢⎢⎡XYZ1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡10000100000bx1−Lcu−LcvfubxRcu−Lcu⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡LuLvdu1⎦⎥⎥⎥⎤⇔LX=QLu
其中
Q称为重投影矩阵,
bxRcu−Lcu表征了两成像平面中心的像素偏差。
2 立体校正
实际应用时并不能直接使用上面的模型,因为没有任何硬件可以真正达到理想双目系统的条件,如图2所示。
图2 实际双目系统
将实际双目系统变换为理想双目系统的过程称为==立体校正==,下面详细阐述==Bouguet立体校正算法==,其核心原理是通过像素平面透视变换,使左右图像重投影误差最小,使双目系统最接近理想状态。
定义左右两相机间的变换关系为
LRT=[R0t1]
通过旋转矩阵
R先将右相机坐标系旋转到与左相机坐标系平行,如图3所示。
图3
此时双目系统平行但不共面,需要构造一个校准矩阵
Rrect将两相机坐标系旋转到同一成像面上,实现共面行对齐校正,如图4所示。
图4 两相机坐标系共同旋转至共面行对齐
设
Rrect=[r1Tr2Tr3T]T,其构造过程如下:
①
r1是旋转后坐标系的
x′相对于原坐标系三个轴的方向余弦
,为保证旋转后两成像面共面,需要将原坐标系
x轴旋转至基线
−t方向,即
r1=∥t∥−t
②
r2、
r3事实上可以任意给出,只需满足右手系
方向即可。一般地,取
⎩⎪⎨⎪⎧r2=∥∥∥−t×[001]T∥∥∥−t×[001]Tr3=r1×r2
使
y′垂直于原光轴方向。
综合上述步骤得到
{RL=RrectRR=RrectRT
接下来进行像素平面的映射。在不考虑畸变的条件下,相机坐标系未旋转时有
u=Kx,旋转后则为
u′=Kx′=KRx,因此旋转前后像素坐标的关系为
u′=KRK−1u=Hu
像素立体校正后,即可使用理想双目系统模型进行场景几何的估计。
总结Bouguet立体校正算法流程:
(1) 基于相机几何信息
R、
t 构造
RL、
RR;
(2) 基于旋转前后像素坐标关系得到单应性矩阵
HL=KRLK−1、
HR=KRRK−1;
(3) 归一化齐次坐标。映射后
u′=[uvw],需归一化为
u′=[u/wv/w1]。
关于单应性矩阵方面的知识可以参考计算机视觉系列教程1-2:单应性矩阵估计
3 实例
🚀 计算机视觉基础教程说明
章号 内容
0 色彩空间与数字成像
1 计算机几何基础
2 图像增强、滤波、金字塔
3 图像特征提取
4 图像特征描述
5 图像特征匹配
6 立体视觉
7 项目实战
🔥 更多精彩专栏:
👇配套代码 · 优质体验 · 系统知识 请关注👇
评论(0)