三角化即在不同的位置观测同一个三维点P(x, y, z),已知在不同位置处观察到的三维点的二维投影点X1(x1, y1), X2(x2, y2),利用三角关系,恢复出三维点的深度信息z。
由于噪声的影响,这两条直线往往无法相交。则有
s
1
x
1
=
s
2
R
x
2
+
t
s_{1} \boldsymbol{x}_{1}=s_{2} \boldsymbol{R} \boldsymbol{x}_{2}+\boldsymbol{t}
s1x1=s2Rx2+t
其中R、t已知,为了求解s1、s2,可以分开求解,先左乘x^1,由于其与x1内积为0,则有
s
1
x
1
∧
x
1
=
0
=
s
2
x
1
∧
R
x
2
+
x
1
∧
t
.
s_{1} \boldsymbol{x}_{1}^{\wedge} \boldsymbol{x}_{1}=0=s_{2} \boldsymbol{x}_{1}^{\wedge} \boldsymbol{R} \boldsymbol{x}_{2}+\boldsymbol{x}_{1}^{\wedge} \boldsymbol{t} .
s1x1∧x1=0=s2x1∧Rx2+x1∧t.
便可求出s2.
注:若无平移,即t为0,纯旋转无法产生三角形,便无法进行三角化。同时,如果平移距离较小,则改变一个小角度都可能导致深度的大幅改变,因此而平移太小,则三角化精度不够,而平移过大则容易导致匹配失败——这就是三角化的矛盾。
因此,为了增加三角化的精度,可以提高特征点的提取精度,也就是提高图像分辨率,但是会加大计算量;或者增大平移量,但是容易导致图像变化过大,进而导致匹配难度的增加,导致匹配失败。