应该如何扎实的自学摄影测量学?

应该如何扎实的自学摄影测量学?

题主,以你物理学本科的数学基础来念摄影测量应该可以分分钟把我们虐成渣。你唯一需要的是正确的顺序。请题主注意答案中斜体标出的关键词。

摄影测量的中心问题是从影像来得到影像中成像像素在世界坐标系下的三维坐标和语义属性的过程。需要弄清楚的几个问题是:

1) 如何建立相机和外部世界坐标之间的关系。这里需要两步:1)确定内参数;2)确定外参数。其中内参数用来描述相机在小孔成像过程中的一些重要参数值(焦距、主点、畸变...);外参数用来描述相机怎么摆在外部世界坐标系里(三个旋角组成的旋转矩阵,三个线元素组成的相机中心在世界坐标系的位置)。这个关系在 A)摄影测量的共线方程和 B)几何计算机视觉的投影方程里得以表达,题主当熟悉之。从这里可以衍生的一点是,如果你知道外部世界点坐标,又能在影像上高精度定位出相应的成像点坐标,那么你就可以算出内外参数了,从而完成相机标定。当然,标定方法还有更多变种,但万变不离该宗。题主,此部分建议你阅读武大出版的摄影测量学前几章和《Multiview Geometry in Computer Vision》 (2nd Edition)中的Camera Model这一章。

2) 弄清了相机和外部世界的坐标关系怎么摆,接下来就要考虑怎么通过相片来算世界点坐标了。可能你已经发现,当你的外部世界坐标点在成像的光线上(即相机中心向像点发出的射线)来回窜动的时候,它对应的影像像点坐标是不变的!!这说明从物方点到像点的映射从线到点的对射,一条光线对应一个像点,所以需要加入第二张影像来交会确定出世界点的坐标。这引入了两个问题:1)两个相机之间的几何关系怎么表达?这是用相对定向模型(摄影测量)或者基础矩阵(计算机视觉)来表达的;2)怎么确定某个像点在另一张影像上的同源点(同名点/匹配点)?这个通过影像匹配来获取。 当几何关系被确定之后,通过前方交会就可以算两张影像上的同名点世界点的坐标。题主,此部分建议你阅读摄影测量书籍的相对定向章节和《Multiview Geometry in Computer Vision》 (2nd Edition)中的Epipolar Geometry & Fundamental Matrix这一章。

3) 在2的基础上,要完成一片区域或者一个目标(建筑物、雕塑)的摄影测量,需要多张影像来完成。此时,可在刚才确定的相对定向的基础上进行连续的相对定向,即以某两幅影像相对定向的初始相机坐标系为参考坐标系,不断加入影像进行相对定向并放在第一幅影像表达的初始相机坐标系里面,所以进行完连续相对定向之后的坐标系还是初始的相机坐标系,由于相对定向的过程需要同名像点,所以实际上这个过程之后既得到了相机的姿态(位置、朝向),又得到了一部分用于定向的匹配同名像点在相机坐标系下的三维坐标(结构)。由于在这个过程中相机位置不断变化,形成了motion,所以这个过程在计算机视觉里又称为Structure From Motion(SFM)。把一系列影像都放在某个相机坐标下之后,此时通过少量地面控制点就可以把它与物方世界坐标之间的转换关系解算出来,完成绝对定向。这种思路称之为相对定向-绝对定向法。

除了相对定向-绝对定向法,另一种思路是先选取两张影像做相对定向,然后前方交会出点,利用这些点在第三张影像上的同名点做后方交会得到第三张影像的定向元素,然后用第二张/第三张的前方交会点中第四张影像所有的同名点对第四张影像通过后方交会得到定向元素。依此类推便是后方交会-前方交会法。此部分建议你阅读摄影测量书籍的空三章节和任意关于Structure From Motion 的标准教案。

通过以上的方法解算的过程中误差会不断积累和传播,为了提高精度,在最后会进行整体的再一次优化,优化的目标可以是最小化重投影误差。由于成像模型里的旋转矩阵是高度非线性的,这个优化问题是非线性优化问题,需要通过迭代来完成。通过迭代来优化的过程自然涉及到迭代过程中的更新步长和更新方向(梯度)的问题,迭代步长和更新方向的确定用到了介于牛顿法(二阶梯度)和标准梯度下降(一阶梯度)之间的LM算法来完成,我们称这个过程叫光束法平差。当然这里的优化也可以是完成几张连续定向后就进行一次整体平差,以免太多的连续定向后的模型所算的定向值误差太大,以至超出了光束法平差所采用的二阶梯度下降优化方法可以容忍的初值误差范围(这类方法初值需要在真值附近,否则容易出现数值问题)。

从平差理论来讲,光束法平差中的观测方程是l=f(cam_par, 3DP_XYZ),其中cam_par是待解的相机外方位元素,3DP_XYZ是像点对应的世界点坐标(三维),l是观测的同名点坐标。然而,这个等式关系没有顾及系统误差(相机畸变参数)和粗差(错误匹配点),所以,还需要通过合理的假设加入相机参数模型和探测粗差。【系统误差模型设置是否正确需要通过相关性分析和统计测试检查,如果存在高度相关且统计检查显著度不明显的参数,则会被移除】 这些构成了平差中的函数模型,统计模型(对误差分布建模)则通过方差-协方差(线性化观测方程)导出。在求解的每一次迭代中,根据构建的法方程求解参数平差值和改正数,然后进行新的线性化和求解迭代。迭代达到最大预设次数或者更改量阈值之后,则停止迭代。之后可以进行内外精度检验。这一部分请参看Photogrammetric Computer Vision书目的参数估计章节和光束法平差章节内容。

4) 至此,你完成了把多幅影像对应的相机放到外部世界坐标系里,并在此过程中得到了一部分用于定向的匹配像点的3D坐标(稀疏定向点点云)。下一步就是密集地恢复深度,密集地测出影像上的点位坐标。以前我们叫立体匹配、多视立体匹配,现在匹配算法进步了,能逐像素匹配,我们干脆就叫它密集匹配了(Dense Matching)。其过程如下:

此部分建议阅读Semi Global Matching论文:http://elib.dlr.de/55367/1/Stereo_Processing-Hirschmüller.pdf

5) 干完这步,你可以开心的获取:

此部分见数字摄影测量标准教程

6) 走到这里,你发现我们做的还是几何问题。那么我怎么圆开头吹得牛呢?属性在哪里呢?属性要通过模式分类来算。输入值是影像(可加入深度)(或特征),输出值是类别,中间过程用监督学习下的分类器来完成。(摄影测量与遥感领域的分类等同于计算机视觉的语义分割,但他们不需要重视混合像元的问题)或者用非监督学习压缩数据获取好的表达,然后用监督学习得到分类器。如果用上我们辛辛苦苦通过1-5步得到的深度值,那我们依靠的就是马尔提出的视觉问题框架,通过深度值为跳板来解决视觉问题。分类这个问题还是现在进行时,有许多方法提出,有许多坑还需要填。这部分建议题主了解一些机器学习的基础,何为判别式模型、生成式模型?然后在每种模型里挑一类基础的进行了解,看他们怎么应用到影像分类。近期的研究成果题主应该关心深度学习方法,一方面关心是否可以采用一些补充训练的手段将在公开数据集如Imagenet等上面的网络(如VGG,google-inception 网络等)迁移到摄影测量与遥感影像分类中来;另一方面也可关心如何构建适合的深度神经网络(毕竟摄影测量和遥感影像的分辨率比较固定,不同目标的尺度变化范围相对要小一些)来训练有限的摄影测量和遥感分类数据集。

7) 航空影像的分类解决好了,可能还是土地的覆盖分类,土地的利用类别呢?国土资源的管理、地图的制作依靠的是土地的利用类别(荒地可能是荒地,也可能是闲置的商业用地,这区别太大了)。解决这个可以通过加入先验,联合已有的GIS数据进行基于影像的动态更新。这部分建议多听报告,多看实际应用,配合阅读论文。

最后,欢迎题主入坑摄影测量。