最近在看三维重建的东西,把看到的东西总结一下。
一、外极几何
已知两个摄像头的光心
O
和O′,
P
为空间中的一点,p和
p′
是点
P
在两个摄像头成的像中的投影。
平面OO′P称为外极平面,显然
p
和p′是
OP
和
OP′
上的,即该5点共面。外极平面
OO′P
与两个相机的视平面相交于线
l
和l′,这两条直线称为外极线。其中
l
是与p′相关的外极线,
l′
是与
p
相关的外极线。且p在
l
上,p′在
l′
上。
O
和O′与相关视平面相交于点
e
和e′,这两个点分别为
O
和O′在对方视平面的投影。如下图所示:
按照上面的定义,假设
p
和p′分别是空间中同一点在两个不同视平面上的像点,则
p′
一定在
l′
上,
p
一定在l上,这就是外极线约束。
如果已经知道相机的参数,那么在重建过程中遇到的问题就是两幅图像之间的关系,外极线约束的主要作用就是限制对应特征点的搜索范围,将对应特征点的搜索限制在极线上。
二、基础矩阵
上面提到的是两幅图像之间的约束关系,这种约束关系使用代数的方式表示出来即为基本矩阵。
假设
M
和M′分别为两个摄像机的参数矩阵,其他同上图所示。则极线
l′
的参数方程为:
P(s)=M+p+sO
其中,
M+
是
M
的广义逆矩阵,于是有,
l′=e′×p′=(M′O)×(M′P(s))=(M′O)×(M′M+p+sM′O)=(M′O)×(M′M+p)=[e+]×M′M+p
记
F=[e+]×M′M+
这里,
F
就表示两幅图像关系的基础矩阵,也是两幅图像极几何关系的代数描述。
由上可知,
l′=Fp,且
p′
一定在
l′
上,则
p′TFp=0
且基础矩阵
F
是一个
3×3的秩为2的矩阵。
一般记基础矩阵
F
为
F=⎡⎣⎢f11f21f31f12f22f32f13f23f33⎤⎦⎥
给一对匹配点
x1(x1,y1)
、
x2(x2,y2)
由上可知
xT1Fx2=0
,由矩阵乘法可知有
三、确定基础矩阵方法
确定基础矩阵的最简单的方法即为8点法。由上可知,存在一对匹配点
x1
,
x2
,当有8对这样的点时如下图所示:
则有如下方程:
另左边矩阵为
A
,右边矩阵为
f
,即
Af=0
优化方法一般使用最小二乘法,即优化
min∑jd(xj1,Fxj1)2+d(xj2,Fxj2)
RANSAN算法可以用来消除错误匹配的的点,找到基础矩阵
F
,算法思想如下:
(1)随机选择8个点;
(2)用这8个点估计基础矩阵
F;
(3)用这个
F
进行验算,计算用
F验算成功的点对数
n
;
重复多次,找到使
n最大的
F
<script type="math/tex" id="MathJax-Element-67">F</script>作为基础矩阵。