7 Transformations between images
前面我们学习了4种描述场景中平面上点与像平面上点对应关系的模型(Euclidean, Similarity, Affine and Homography)。现在我们换一种思路,假设有多个相机同时对场景中这一平面进行成像,每个相机像平面上的成像点和场景平面上的点存在一一对应的关系,因此各个相机成像平面上的点也存在一一对应的关系。
如上图所示,假设场景平面上点
w
=
[
u
,
v
,
0
]
T
w=[u,v,0]^T
w=[u,v,0]T在相机1的成像点坐标为
x
1
=
[
x
1
,
y
1
]
T
x_1=[x_1,y_1]^T
x1=[x1,y1]T,在相机2的成像点坐标为
x
2
=
[
x
2
,
y
2
]
T
x_2=[x_2,y_2]^T
x2=[x2,y2]T,则有下述关系:
λ
[
x
1
y
1
1
]
=
[
ϕ
11
ϕ
12
ϕ
13
ϕ
21
ϕ
22
ϕ
23
ϕ
31
ϕ
32
ϕ
33
]
[
x
2
y
2
1
]
(51)
\lambda \left[ \begin{matrix} x_1\\y_1\\1 \end{matrix} \right]= \left[ \begin{matrix} \phi_{11}&\phi_{12}&\phi_{13}\\\phi_{21}&\phi_{22}&\phi_{23}\\\phi_{31}&\phi_{32}&\phi_{33} \end{matrix} \right]\left[ \begin{matrix} x_2\\y_2\\1 \end{matrix} \right]\tag{51}
λ⎣⎡x1y11⎦⎤=⎣⎡ϕ11ϕ21ϕ31ϕ12ϕ22ϕ32ϕ13ϕ23ϕ33⎦⎤⎣⎡x2y21⎦⎤(51)
如上图所示,二维坐标点的3D齐次坐标对应于一条起点在坐标原点的射线。透视变换(homography)作用于一组2D坐标点相当于对由这些2D点对应的射线构成的光锥进行线性变换,包括旋转、缩放和剪切。变换后对应的那组2D坐标点可以像上一组用平面
z
=
1
z=1
z=1截取光锥获取。
如果固定光锥,改为用不同位姿的平面截取光锥,我们可以得到相同的结果。这说明了截取固定光锥这些平面之间可以用透视变换联系起来。总结:不同的相机在光心重合的情况下拍摄得到的图像可以通过透视变换联系起来。这里有一个特殊的例子:一个相机不位移但绕着光心旋转拍摄得到的图像可以通过透视变化联系起来,而且
Φ
\Phi
Φ可表示为:
Φ
=
Λ
Ω
2
Λ
−
1
(52)
\Phi=\Lambda \Omega_2 \Lambda^{-1}\tag{52}
Φ=ΛΩ2Λ−1(52)
式中,
Λ
\Lambda
Λ为Intrinsic matrix,
Ω
2
\Omega_2
Ω2是旋转矩阵。
总结起来,透视变换可以描述下面3种映射关系:
- 场景中平面上的点和对应的像平面上的点;
- 场景中平面上的点在两个不同相机上对应的成像点;
- 相机旋转但不平移时对场景中3D目标所成图像的对应点。
8 Robust learning of transformations
8.1 RANSAC
Random sample consensus or RANSAC is a general method for fitting models to data where the data are corrupted by outliers.
这里介绍RANSAC算法是为了解决两张图像之间的Correspondence问题。在正式提出RANSAC算法前,我们通过一个简单的线性回归问题来介绍RANSAC算法在拟合有异常值的模型时的作用:
如上图所示,我们根据图中的数据点来拟合式(53)描述的线性模型,其中蓝色点为正常,绿色点位异常。同时,上图展示的拟合结果是单纯的线性拟合结果。而下图,展示了应用RANSAC算法得到的拟合结果。
P
(
y
∣
x
)
=
N
o
r
m
y
[
a
x
+
b
,
σ
2
]
(53)
P(y|x)=Norm_y[ax+b,\sigma^2]\tag{53}
P(y∣x)=Normy[ax+b,σ2](53)
RANSAC算法可总结为:通过在不同的最小数据子集多次拟合模型来识别并剔除异常数据来得到较为精确模型。针对线性拟合的例子,算法分为以下几步:
- 从拟合数据集中取样得到最小数据子集。由于两点决定一条直线,故此处最小数据子集中包括两个样本;
- 根据最小数据子集拟合模型并评价拟合质量。评价质量是通过对剩余的样本进行二分类(Inliers或Outliers)完成的,统计得到Inliers样本的数量;
- 重复前两步若干次,最后我们挑选Inliers最多的模型,并且按照这些Inliers重新拟合得到最后的模型。
完成的RANSAC算法为:
- Randomly choose a minimal subset of data.
- Use this subset to estimate the parameters.
- Compute the number of inliers for this model.
- Repeat steps 1-3 a fixed number of times.
- Re-estimate model using inliers from the best fit.
8.2 PEaRL
The Propose, Expand and Re-Learn or PEaRL is a robust method for fitting models in many scenes containing man-made objects are piecewise planar so images of such scenes are related by piecewise homographies.