计算机视觉 07 Epipolar Geometry
Two-View Stereo(双视图立体)
- 用两个相机解决单一视角的模糊性:Stereo: use 2 calibrated cameras in different views and correspondences
Typical 3D Reconstruction Pipeline
Review: Camera Calibration with a Single Camera
两台相机的设置能否提供更多校准功能?
Camera Calibration 所需:
- 需要校准板
- 准确定位消失点很棘手,并且至少需要两个有限的消失点
Review: Triangulation
问题设置:给定一个 3D 点在两个或多个图像(具有已知相机矩阵)中的投影,找到该点的坐标
两台相机的设置能否为 3D 估计提供更多功能?
Two-view Stereo: Key Idea
考虑相机中心和视觉光线到另一个视图中的投影,而无需明确的 3D 推理
可以校准两台相机
可以找到约束条件,以便更轻松地对应和 3D 重建
如下图:对应的点在固定的线上
Epipolar Geometry(极点几何)
- 假设我们有两台中心为 O、O′ 的相机,基线(baseline)是连接原点的线
- 极点(Epipolar) e、e’ 是基线与图像平面相交的位置,或每个视图中其他相机的投影
考虑一个点 X,它投影到 x 和 x′。由 X、O 和 O′ 形成的平面称为极平面(epipolar plane),有一族平面穿过 O 和 O′
极线(epipolar lines)将极点与X的投影点相连。极线是极平面与图像平面的交点——它们成对出现
Example Configuration #1: Converging Cameras(汇聚相机)
- 极点是有限远的,在图像中可能可见或不可见,同一个三维点的投影见下图:
Example Configuration #2: Parallel to Image Plane(平行于图像平面)
- 极点无限远,极线平行的情况:
Example Configuration #3: Motion Perpendicular to the image plane(垂直于图像平面的运动)
- Epipole与相机的主轴重合:
Essential Matrix & Fundamental Matrix
极点约束(epipolar constraint)
- 数学上描述极点约束:考察一张图像中的单个点 x。与另一张图片中的 x 对应的 x′在哪里?沿对应于 x 的极线 (将 O 与 x 连接的可见光线投影到第二个图像平面)
- 同样,左图中对应于 x′ 的所有点都必须位于对应于 x′ 的极线上
- x 的潜在匹配必须位于匹配的极线上 l′,x’ 的潜在匹配必须位于匹配的极线l上
- 例如下图:左侧图像中的点x所对应的点一定分布在右侧图像中的直线上(epipolar line)
- 每当两个点 x 和 x′ 位于匹配的极线 l 和 l′ 上时,与它们对应的可见光线在空间中相遇,即 x 和 x′ 可以是同一 3D 点 X 的投影。相交点一定投射到极线上,极线上的点不一定投影到交点 x
- 警告:如果 x 和 x′ 满足极点约束,这并不意味着它们必须是同一 3D 点 X 的投影
- 一般来说,由于噪声和不准确的校准,两条光线在空间中不会完美相交
Epipolar Constraint: Calibrated Case(校准情况)
假设相机固有参数已知,并且世界坐标系设置为第一个相机的坐标系。给出投影矩阵K[I | 0] 和 K′[R | t] (内参矩阵),R,t可以表示两相机间的相对关系
可以将投影矩阵和图像点乘以逆校准矩阵,得到归一化图像坐标:其中前者是像素坐标,后者是归一化的像素坐标
将三维点投影至x可得x’ ≌ Rx + t,说明向量x’,Rx和t是线性相关的
这个约束可以使用 triple 积来写:𝒙′ ∙ [𝒕 × 𝑹𝒙] = 0,即给定的三个向量定义的平行六面体的(有符号)体积
将叉乘改为矩阵乘法,设E = [tx] R 可得一个二次型。其中 E 是 Essential 矩阵,表示了两个相机之间平移或旋转的关系
与 x 相关的epipolar line(过 x’ 的epipolar line)的方程:𝒙′.𝑇𝑬𝒙 = 𝒙′.𝑇𝒍′= 𝟎, 𝑤ℎ𝑒𝑟𝑒 𝒍′= 𝑬x
与 x’ 相关的epipolar line(过 x 的epipolar line)的方程:𝒙′.𝑇𝑬𝒙 = 𝒍.𝑇𝒙 = 𝟎, 𝑤ℎ𝑒𝑟𝑒 𝒍 = 𝑬.𝑻𝒙′
进一步推得Ee = 0;E.Te’ = 0,e是极点
𝑬 is singular with a rank of 2:
- [tx]的秩为2
- R的秩为3
𝑬 has 5 degrees of freedom
- 平移矩阵:3个自由度
- 旋转矩阵:3个自由度
- 等比例缩放减少一个自由度
Epipolar Constraint: Uncalibrated Case(未校准的情况)
- 假设两台相机的校准矩阵 K 和 K′ 未知,归一化坐标而言的极点约束是:
- 可以得到如下限制:
内参外参旋转平移,y坐标相同时找对应点扫描线并且计算深度
与 x 相关的epipolar line(过 x’ 的epipolar line)的方程:𝒙′.𝑇F𝒙 = 𝒙′.F𝒍′= 𝟎, 𝑤ℎ𝑒𝑟𝑒 l′= Fx
与 x’ 相关的epipolar line(过 x 的epipolar line)的方程:𝒙′.𝑇F𝒙 = 𝒍.𝑇𝒙 = 𝟎, 𝑤ℎ𝑒𝑟𝑒 𝒍 = F.𝑻𝒙′
进一步推得Fe = 0;F.Te’ = 0,e是极点
F is singular with a rank of 2:
- [tx]的秩为2
- R的秩为3
- K满秩
F has 7 degrees of freedom
- 平移矩阵:3个自由度
- 旋转矩阵:3个自由度
- K:3个自由度
- 等比例缩放减少一个自由度
- Det(F) = 0
Estimating the Fundamental Matrix
- Find correspondences 𝒙 = (𝑥, 𝑦, 1).𝑇 and 𝒙′= (𝑥′, 𝑦′, 1).T,找到两个对应点
Eight-Point Algorithm
- 其中u是一堆配对点。f模长为1时优先约束,U.TU的特征值最小的特征向量为所求
Enforcing the Rank-2 Constraint(实施rank-2约束)
𝑭 needs to be singular/rank 2
SVD decomposition: 𝑀𝑚×𝑛 = 𝑈m×𝑚 ⋅ Σ𝑚×𝑛⋅ 𝑉.T𝑛×n
秩k对M的逼近,找到前k个最大的奇异值
解决方案:取初始估计值的 SVD 并丢弃最小的奇异值
Normalized Eight-Point Algorithm
- 回想一下 x, y, x’ , y’ 是像素坐标。U 的每一列的数量级可能是多少——这会导致数值不稳定
- Normalized Eight-Point Algorithm的流程:
- 在每个图像中,将点集以原点为中心,并对其进行缩放,使原点和点之间的均方距离为 2 像素
- 使用八点算法从归一化点计算 F
- 通过 SVD 分解强制执行 rank-2 约束
- 将基本矩阵转换回原始单位:如果 T 和 T′ 是两个图像中的归一化变换,则原始坐标中的基本矩阵是 T′.TFT
Nonlinear Estimation of the Fundamental Matrix
- 以前的线性方法最小化了点 xi ′ 和外极线 Fxi(或点 xi 和极线 F.Txi ′)之间的平方代数距离之和:
- 非线性方法使几何距离的平方和最小:
Fundamental Matrix and Epipolar Lines
- 另一张图上的点即在l’线上l匹配点
From Epipolar Geometry to Camera Calibration
估计基本矩阵称为 “弱校准”(“weak calibration”)
如果我们知道两台相机的内参矩阵,我们就可以估计基本矩阵:E = K′.TFK,可以通过F计算出E
基本矩阵为我们提供了相机之间的相对旋转和平移,或它们的外部参数
或者,如果内参矩阵已知(或者在实践中,如果内参函数有很好的初始猜测),则可以使用五点算法来估计相对相机姿态
One Application of the Essential Matrix
基本矩阵 E 描述两个相机的相对运动
给定一个估计的 E,我们可以得到相对旋转和平移,即外矩阵
然后我们可以使用内联矩阵和外内联矩阵通过三角剖分(triangulation)计算 3D 位置
从基本矩阵中分解 R、t
- 通过检查正深度约束来确定最后一个:
- 要使 3D 点有效,它必须位于两个摄像头的前面
- 通过使用每种可能的解决方案对点进行三角测量(triangulating)并检查它们的深度,我们可以确定哪种配置是正确的