摄影测量与深度学习

2018-06-25 08:45:23    来源:《测绘学报》2018年6月

摘要:深度学习正逐渐占领与“学习”相关的诸多研究领域,也对摄影测量这门学科造成冲击和促进.

  2 方 法

  2.1 深度学习基本原理

  深度学习是“表示学习(representation learning)”[16]的一种.表示学习的最大特点是不需要设计人工特征.它指计算机根据一套通用规则自动地学习出从输入到输出的最优特征表示的方法.表示学习可用于无监督分类,如自编码器(autoencoder)[17].而在监督学习中,深度学习是表示学习的最佳代表.深度学习通过设定神经元网络层数、每层的参数(随机初始化)、迭代规则等,自动学习调整出最优的参数.这些参数的集合最终构成从输入到输出的特征表示.基本的多层神经元网络称为前馈神经网络(feedforward neural network)[18].

  前馈神经网络或多层感知机(multilayer perceptron,MLP)[19]是一种典型的深度学习模型.前馈网络定义一个映射y=f(x,w),以x 和y 为已知条件,通过学习参数w 的值,得到某个最优的近似函数f∗.因此,前馈是指:仅由w 和f 得到输出y ,而y 不会反作用于模型f.若y 反馈于f ,则称为循环神经网络(recurrentneural network,RNN)[20].RNN 很少应用于图像中,摄影测量中常用的深度学习方法几乎都是MLP.

  MLP由多个函数fi 复合而成:f(x)=fn···(f2 (f1(x))),f1 称为第一层,最后一层称为输出层,函数链的全长n 称为网络的深度.在最后一层上,模型要求fn 的输出接近于给定的标签y;在其他层上,训练数据‹x,y›并未指出应该如何训练,这些层被称为隐藏层.基于深度学习的方法就是采用“表示学习”的策略去主动地学习各层的参数模型而非传统的手工设计.

  当f 作为一个线性模型时,它无法训练诸如XOR等非线性模型[21].因此,在隐藏层中,需要扩展为一个非线性的函数,通常称为激活函数σ。激活的概念来自人类的神经元作用机理:将0看作不激活,1看作激活,则组成一个简单的非线性系统.目前,最常用的激活函数是整流线性单元(rectified linearunit,ReLU)[22],即x′=max(0,x).此时,一个典型的fi 就是一个线性仿射变换再加上一个激活

fi (x,w,b)=σ(wx+b)=max(0,wx+b)

  式中,w 称为权重模板或核函数;b 称为偏置.在加上了这个非线性激活函数后,通过二层或以上的神经元网络就可以学习出XOR 等复杂的非线性模型.

  输出层函数fout 要保证模型的输出y′与其对应的标签y 尽可能一致.在摄影测量中的光束法平差中,通常取p-范式 |y-y′|p 最小(通常p=2),并称之为代价函数.在深度学习中,也称为代价函数,或者损失函数(lossfunction).除了最小化p-范式外,由最大似然估计导出的、给定样本与期望模型间的交叉熵也是常用的代价函数[23].即

QQ图片20180622165025.png

  此外,和平差中的L-M 算法[[24]类似,对于损失函数也要考虑收敛性的问题.故常用的代价函数也包含正则化项

J=L(y,y′)+λϕ(w,b)

  式中,y 为标签;y′为模型的输出;L 为损失函数;J 为总代价函数;ϕ 为正则化函数.

  与光束法平差一样,要设定参数w 和b 的初始化及迭代规则.通过学者们的研究,w 可初始化为随机小数.随机初值经过前馈网络传播后,得到的输出y′显然与标签y 相距甚远.一个直观的想法是通过代价函数来反向逐层调整隐藏层中的参量w 与b.这就是著名的梯度反向传播和链式法则[25].标量的链式法则表达如下

QQ图片20180622165215.png

  式中,z=f(g(x))=f(y).扩展到神经元网络中常用的矢量形式,即z=f(g(x))=f(y),链式法则变为

QQ图片20180622165317.png

  将z 理解为顶层的代价函数J,将x 看作隐藏层中待修正的参量w 和b;则得到z 相对于每个参量的梯度.用高斯-牛顿法解算光束法平差时,其迭代的步骤是x′=x+dx,即直接加上改正数.而在深度学习中,无法直接得到最优的改正数dx.通常的思路是:梯度自身反映了参量该向哪个方向修正,但并不确定具体的修正值;因此,在梯度的基础上,乘以一个很小的学习率λ,作为每次的迭代值

wi =wi+λdwi

  给定足够的训练样本,经过数百次乃至千万次的迭代训练(只要时间足够长),基于前馈神经元网络的深度学习期望得到一组最优参量w 和b,使得代价函数最小.

  以上通过摄影测量中的光束法平差为类比,简单介绍了深度神经元网络的一些本质的概念和方法.

  2.2 深度卷积神经元网络

  2012年,Hinton课题组的一篇论文.基于卷积神经元网络的Imagenet分类.[9]引爆了整个机器学习和人工智能领域,也是至今为止深度学习中引用率最高的论文之一.卷积神经元网络(convolutional neural network,CNN)是一种特殊的前馈神经元网络,指那些至少在网络的某一层中采用卷积运算代替一般矩阵乘法的网络[26].事实上,CNN 与摄影测量的关系也同样密切.在摄影测量中,影像相关是一个入门级的概念,指判别图像间相似度的一种计算方法. 相关(correlation)本质上就是卷积,或者说是卷积的一种变种,都属于线性时不变系统[27].这两个概念的微小差异仅在于是否翻转模板.请注意,在深度学习中,常将相关也写作卷积.

  除了拥有前馈神经元网络的基本特性外,卷积神经元网络包括三个明显的特征:稀疏连接、参数共享、池化.稀疏连接区别于传统神经网络的全连接.传统神经元网络采用矩阵乘法.如m 个像元的图像,n 个输出,则需要m ×n 个参数.然而,图像中兴趣特征可能只存在于图像上的一小块,而非整个图像.这与人眼看物体是一致的,眼睛(连同背后的脑处理机制)往往只专注于那些突出的特征,而选择性地忽略掉背景,称为“局部视野”.如果有k(k≤m)个像元可代表这个特征,那么,只要采用k 个像元的卷积核,就能提取出该特征.同时,卷积操作的计算量仅为k×n.

  参数共享对减少计算量和冗余同样具有积极的意义.以边缘特征提取为例.在深度学习中,系统需要主动去学习某个边缘特征(如水平边缘),得到某个恰当的卷积核w.显然这个卷积核不但对某个图像上方的水平边缘敏感,而且对图像任何地方的水平边缘敏感,甚至对所有的成百上千的输入图像中的水平边缘都敏感.因此,仅需要学习一个卷积核w,就可无数次重复使用,以提取出样本中所有的水平边缘特征.这就体现了卷积(相关)的作用.而在全连接中,一般不采用参数共享策略,因此参数只被使用一次.

  池化是卷积神经元网络中的一个必要组成部分.池化是去冗余的一种手段,指采用某个区域的统计量去简化该区域的神经元网络输出.如在图像某处有一个2×2像素的边缘,而以此为中心的4×4窗口中不存在其他边缘.显然边缘卷积核在边缘处有最大的输出,而在窗口的其他部分输出几乎为0.若认为没有必要将背景区域传递到下层,则可采用一种“最大池化”策略[28],即取4×4窗口中的最大的响应作为该区域的输出,这时输出的大小变成2×2窗口.通常,每次池化都会使得输入图像减小,2×2池化对应图像长宽都缩小一半.

  到目前为止,卷积神经元网络受到广泛研究和巨大推动.从2012年的AlexNet[9]开始,涌现了一批先进的卷积神经元网络架构,如ZFNet[29]、GoogleNet[30]、VGGNet[31]、ResNet[32]等,但CNN 的本质依然是简单优雅的:卷积模板提取特征并激活、池化去除背景、前向传播计算代价、后向传播迭代收敛.图1是一个针对遥感图像的以VGGNet为模板的CNN 实例.样本大小为8×8像素,m 、n 分别代表遥感图像的波段和时相.首先设计卷积核(即边缘、颜色、纹理以及更抽象的待学习特征)的数量,32@8×8 指从8×8的样本中提取32个特征.每一层典型的卷积网络包括3个处理流程:卷积、激活、池化.对于任意一个卷积核,在所有的图像的所有位置进行卷积操作;对于每一个卷积输出标量,选择恰当的激活函数并计算输出;最后根据池化策略,得到本卷积层的输出.图1包括3个卷积层.经过三次池化后,图像的大小已经降低为1×1的像素,此后接2个全连接层,最后一个全连接层也是输出层.诸如图1的看似简单的CNN 有着巨大的威力,在图像分类、物体识别、检索中基本上全面超越了传统的机器学习方法.

卷积神经元网络实例_摄影测量与深度学习_勘测联合网

图1 卷积神经元网络实例

  2.3 深度学习在摄影测量几何方面的应用和展望

  深度学习目前在几何中主要有两类应用.第一类是用于相机定位.将几何定位问题归结为深度学习,首先需要考虑:如何将一个优化问题(同时也是一个回归问题)纳入深度学习框架.2015年,PoseNet[14]第一次将CNN 应用到相机的定位定姿中,可能也是迄今为止唯一较成熟的基于CNN的SLAM 系统,并在2016 年提出基于贝叶斯CNN 的新版本[33].PoseNet采用四元数表达角度,因此参数空间维度为7,即p=[x q].采用二次范式(即最小二乘),损失函数表达为

QQ图片20180622170002.png

  β 为角度和位置参数间的量纲比例.对于一个分类问题,解空间是类别标签.可以为每个类别设定有限的离散标签.然而回归问题的解空间是无限、连续的,因此无法采用SoftMax等判决函数.PoseNet在GoogleNet基础上进行了改进.添加一个2048维度的全连接层,此后再加入一个7维全连接层,最后将SoftMax层移除并替换为以上损失函数.PoseNet利用传统的从运动恢复结构的方法(SfM)得到传感器的位置和姿态,每张图像对应一个位置(即标签).此外,PoseNet也利用了迁移学习,将ImageNet 和Places的训练结果作为初值参与后继训练,并提高了定位精度.目前,定位精度分别为户外2m 和3°,户内0.5m 和5°.距离经典的空中三角测量、SfM 和SLAM 所能达到的精度尚有一定的差距.

  深度学习在几何上的第二个应用是3D 重建.根据2D图像重建3D 场景是摄影测量与计算机视觉共同的本质命题.虽然从2D 到3D 的重建涉及一些图像处理和特征表示知识,但是它仍属于一个几何问题.密集匹配是3D 重建中的关键部分.2016年,Zbontar和LeCun的一篇文章(mc-CNN)[34]是开启深度学习进军立体匹配的代表作.mc-CNN 利用CNN 来学习匹配代价(matchingcost).传统的匹配代价包括亮度绝对值差异、相关系数、欧氏距离、交叉熵等,这些代价往往不是最优的,会受到亮度突变、视差突变、无纹理或重复纹理、镜面反射等影响.而深度学习方法试图通过更复杂的模式学习出对这些不利因素稳健的匹配代价.最终,这篇文章在KITTI和Middlebury 数据集上得到了比绝对亮度差、census和归一化相关系数等匹配代价更低的错误率.此后,用深度学习进行立体匹配成了热门课题.许多学者纷纷提出各类匹配算法,如SGM-Net[35]、DispNetC[36]、Content-CNN[37]等.在KITTI测试集上,前30名几乎都是深度学习算法.自从1982 年Marr创立计算机视觉开始[38],3D几何重建就是计算机视觉的核心.当时的想法过于浪漫:既然有了Marr理论,实现3D重建只需一个夏天.事实上,直到今天这个问题也没有完全解决.虽然计算机视觉已经开辟广阔的研究空间,但该学科的最基本问题依然望而不及.这也解释了利用深度学习进行3D 重建的热度所在.除了利用深度神经元网络学习匹配代价,另外一类方法是采用端到端的策略,即从立体像对直接学习出深度图(视差图).2017 年,Kendall等提出GC-Net[39].其核心思想是:将视差看作图像外的第三维,即处理对象变成3D 张量.然后,由3D卷积学习几何与语义特征,直接得到最优的视差图(即3D 张量中的一个曲面).相对于2D图像的学习,这种3D方法需要更大的显存空间.目前,处理计算机视觉中的自然图像尚且困难,处理大视差的遥感图像目前在微机上还遥不可及.

  虽然深度学习方法在有限的测试集上表现优异,但是并不能说明它的普适性.在短期内,构造性的经典方法,如多视SGM,依然是2D到3D几何重建的主流.而基于端到端的立体匹配方法具有较强的冲击力,伴随更强计算能力的GPU 的普及和更多学者的参与改进,极有可能超越经典方法.

  2.4 深度学习在摄影测量语义方面的应用

  深度学习在遥感图像语义提取方面的应用刚刚起步并逐渐普及.以下将从各类地物语义专题图出发,回顾深度学习的具体应用.

  遥感图像建筑、道路网等地物的提取一直是数十年来的热门课题.虽然经典方法取得一定的效果,但距离实用、市场、商业软件尚有一定的距离.CNN 目前正成为道路网提取的主流方法.文献[35]通过级联式端到端CNN 同时实现了道路网提取及道路中心线提取,与其他方法比较,达到了更高的分类精度.文献[40]通过CNN 结合线积分卷积克服了树木遮蔽、房屋阴影所造成的道路网残缺问题.文献[41]通过非监督学习预处理和空间相关性的应用,利用深度学习极大地提高了复杂城市场景的道路提取精度.文献[42—43]均为使用深度学习的方法进行道路提取并取得了良好的效果.

  建筑物、农作物、水体等专题的提取相对道路而言较少,但预期会有许多相关文献近期发表.文献[44]采用CNN 实现高分辨率多光谱卫星影像的建筑物提取.首先采用AlexNet提取特征,最后的全连接层用于训练SVM 分类器并采用MRF模型精化.作物精细分类是摄影测量与遥感在农业中的重要应用.文献[45]在影像平面上进行2D卷积,在光谱方向上进行1D 卷积,分别提取出影像空间特征和光谱特征,取得了比随机森林和全连接MLP更好的作物分类精度.文献[46]将CNN 用于土地利用分类.文献[47]中也较全面地总结了深度学习在遥感方向的应用.

  上述研究具有一定的积极意义,但目前显然还未实现遥感图像语义专题图的全自动提取.为了从本质上解决该问题,需要考虑两点.

  第一点是恰当的迁移学习方法. 目前ImageNet等庞大的数据库来自大众摄影图像,并不包括鸟瞰航摄图像和卫星遥感图像.照片的标注诸如人、大象或椅子;遥感图像中的标注诸如耕地、建筑、森林等.若直接将这些数据库训练得到的模型,用来进行遥感图像直接分类,就要考虑迁移学习.迁移学习是将A 数据集中训练好的模型,应用在B 数据集上.A 与B 可能是同源的,也可能存在巨大差异.这就要进一步发掘完善的迁移学习机制.以上文献几乎都存在训练集过小的问题,因此应用到其他场景可能错误率显著提高.

  第二点是建立针对遥感图像的开源的、完备的标签数据库.涵盖足够多的地物类别,每个类别包括足够多的样本.这样的数据库是摄影测量与遥感走向“自动化专题制图”的必经之路.然而,实现难度要比千万图像级别的ImageNet更大.首先,由于远距成像的特性,图像受到更多电磁辐射传输的影响.经过大气传播的电磁辐射与地物间的相互作用机理更加复杂,同一标签的样本往往呈现明显的差异.这种差异不但对样本的选取造成不便,而且对深度学习模型的可区分性提出更大的挑战.第二,众包模式并不能完全起作用.普通人可能很好地辨认出诸如猫与狗的区别,因此通过互联网众包能够快速构建一个巨大的标注数据库;但是,小麦和水稻在遥感图像上的差异,则需要专业人员的目视判读.若影像分辨率较低,甚至可能需要实地调查.第三,摄影测量与遥感界的科研模式尚需向开源发展.目前,遥感学界已经开始走向开源模式,希望由公司、政府或科研机构能够在短期内建立的针对遥感图像分类的标签数据库,并实现完全开源.

  有了足够的数据标签库或恰当的迁移学习方法,并借助深度学习的泛化能力,可以预期未来摄影测量与遥感专题制图的精度将比传统的特征分类方法得到明显的改进.

声明:中国勘测联合网登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。