Lec2: Image Formation2.1 Primitives and Transformations2.2 Geometric Image Formation2.3 Photometric Image Formation2.4 Image Sensing PipelineLec3: Structure from Motion3.1 Preliminaries3.2 Two-frame Structure-from-MotionEpipolar GeometryTriangulation3.3 Factorization3.4 Bundle Adjustment
Lec2: Image Formation
2.1 Primitives and Transformations
- 齐次坐标系,以及点线面在齐次坐标系中的表示;
- 一些基本的变换(以各种矩阵的形式)
- 从已有的很多点对之间的对应关系(a set of 2D correspondences),估计出一个最佳的投影矩阵(Homography matrix)
- 每个对应关系得到两个等式约束;
- 一般会有很多点对,将其按照行堆叠得到一个矩阵;
- Direct Linear Transformation
- 奇异值分解(SVD, Singular Value Decomposition),
- 取 的最后一行,也就是 的最后一列,将其再 reshape 成 的大小作为估计的 homography matrix(这个向量所对应的奇异值最小)
2.2 Geometric Image Formation
- 一些投影模型,如小孔模型、透镜模型等
- 从世界坐标系到相机坐标系的变换: , World Coordinates Camera Coordinates
- Calibration Matrix ,相机内部的参数, intrinsics parameters,是将相机坐标系下的点投影到图像坐标系的变换, Camera Coordinates Image Coordinates
- 将这两个变换合并,得到投影变换,将世界坐标系中的点投影到图像平面上:
2.3 Photometric Image Formation
- 渲染模型
- 漫反射和镜面反射,全局光照
- 相机的光圈、透镜,景深,模糊等
2.4 Image Sensing Pipeline
Lec3: Structure from Motion
3.1 Preliminaries
- 相机参数的校准
- 图像特征的检测、提取和匹配
- SIFT(Scale Invariant Feature Transform):为了得到无论图像如何变换,能始终保持稳定的点,从而在不同视角的相机中也可以匹配
- 从一个 Scale 开始,不断用 Gaussian 将其模糊,然后两两作差,直到图像模糊到了一定程度;
- 然后再将图像 Scale 减半,接着重复上述过程;
- 重复上述过程到一定程度,然后在 Difference of Gaussian 的空间中寻找极值点;
- 找到极值点后,将方向划分为一些组,如 36 度为一组分为 10 组,同时画一个圆,统计圆内各个方向的个数,最后将最多(有时也考虑次多)的方向作为 dominant gradient orientation;
- 然后再将 descriptor 旋转使其与 dominant gradient orientation 对齐(?),将其分为很多组(比如 一共16组),每组都有八个方向(每 分成一个方向),得到一个 的向量来描述这个点;
3.2 Two-frame Structure-from-Motion
Epipolar Geometry
- Epipolar Geometry:目标是从图像对应关系(联系上一节,比如使用 SIFT 等得到一系列特征点的对应关系)中重建出 的点
- Essential Matrix : 是约束条件;
- 如果知道 Essential Matrix ,再加上其中一个图像上点,就可以得到其在另一张图像上的对应点;
- 关键是如何得到
- 每一组对应点可以得到一个约束条件,将 组对应点堆叠成一个矩阵,仍然对其进行奇异值分解,取 的最后一行并 resahpe 成 的形状
- 从 中,还能得到两个相机之间平移的方向 :对 奇异值分解,最小的奇异值对应的向量
- 如果相机参数 不知道,只能得到形状而不能得到具体长度等
Triangulation
在已知每个相机的参数 的情况下,可以估计出重建点的坐标(世界坐标系下)
然而,由于 noise 等原因,每个相机重建出来的点都是不一样的,通过 Reprojection Error Minimization 的方法最小化误差:
- 对于第 个相机,将重建的点投影到其图像平面上,计算投影点和观测点的 范数;
- 然后对于所有相机求和,最小化这个损失函数
3.3 Factorization
本节讨论的是一种特殊情况:在有 个相机,并且每个相机都能拍到所有的 个点,而且是 orthographic projection 的情况下,如何获得相机信息,和点的信息?
- 不妨假设世界坐标系在 个点的中心
- 如何描述这 个点的信息: Centered Measurement Matrix ;
- ,其中 Camera Motion ,记录相机信息; Structure 记录点的信息
- 对 进行 SVD 分解:
- ,
- 然而,这样的分解并不唯一: ,然而要满足一些约束条件,从而可以得到
3.4 Bundle Adjustment
- 同时优化相机参数和三维重建点的位置
- 需要一个好的初始化位置,一般选择和其他图片交集 or 特征匹配最多的那个作为起始位置,逐渐添加