朱 清,侯恩兵
(1.安徽省基础测绘信息中心,安徽 合肥 230031;2.安徽省智慧城市与地理国情监测重点实验室,安徽 合肥230031)
星载卫星拍摄的原始遥感影像中,大约有50%以上被云层覆盖,而云层的存在遮挡了地表的地理信息,同时也影响了影像的融合、配准等后续处理,因此,对原始卫星遥感影像进行云检测是有必要的[1-2]。一般的,遥感影像包含红、绿、蓝以及红外4个波段,而云在这4个波段中的像素值均为最小值,尤其在蓝色与红外波段中。很多遥感影像云检测方法就是根据该特点分离云层与其他地物[3-4],如将最大类间自适应阈值(Otsu)应用在遥感影像云检测中[5]。该方法能取得较好的结果,但存在误检、漏检的情况,如地表一些高亮反光物体(厂房屋顶、雪山、积雪等)会被误检为云,而一些薄云、小云块则会被漏检。同时,检测阈值也需人为干预,适应能力有一定局限性。
近年来,随着科学技术的发展,人们获得的遥感影像数据分辨率不断提高,深度学习的发展也为人们在遥感影像云检测中的探索提供了一种新的方向。深度学习有着强大的非线性映射能力,能很好地学习到复杂数据中的复杂关系。许多研究者使用支持向量机(SVM)、人工神经网络(ANN)等简单网络结构来进行云检测,随着硬件条件和数据质量的提升,更复杂的模型得以应用。2012年提出的AlexNet卷积神经网络在ILSVRC 2012中大放异彩,获得冠军[6]。2015年,全卷积神经网络在Pascal VOC-2012数据集图像分割上取得了较好的分类结果[7]。卷积神经网络是一种较为常用的深度学习算法,其参数通过梯度下降、反向传播的方式进行调整。经过训练的全卷积神经网络可充分挖掘遥感影像中的特征,完成遥感影像中不同目标的分类[8]。2014年,Goodfellow I[9]等提出生成式对抗网络,其在结构上受零和博弈的影响,由一个生成器和一个判别器组成。生成器和判别器均由不同的深度神经网络构成[10]。
针对传统方法在遥感影像云检测中出现的漏检、误检问题,本文提出了一种基于生成式对抗网络的遥感影像云检测方法。首先,使用原始遥感影像数据与人工分割好的云检测图训练生成器网络,同时使用人工分割好的云检测图训练判别器网络;再将生成器生成的结果交由判别器判断,并将判断结果反馈给生成器网络,使之调整参数直至判别器认为生成器生成结果与人工分割好的云图相差无异,训练结束;最后使用训练好的生成器进行遥感影像的云检测,获得检测结果。
GANs的灵感来源于博弈论中的纳什均衡,由一个生成器和一个判别器构成。生成器的目的是尽量学习数据的真实分布,而判别器的目的则是尽量正确地判断输入数据是真实数据还是来自生成器。为了达到平衡,二者需要不断地对自己进行优化,以提高生成能力和判别能力,其过程就是一个寻找纳什均衡的过程。
GANs的运行方式如图1所示。任意可微分函数均可由GANs的生成器和判别器表示。用可微分函数F和G分别表示判别器和生成器,它们的输入分别是任意真实数据x和随机变量y。G(y)为由G生成的尽量拟合真实数据分布pdata的样本。若判别器的输入来自真实数据,则被标注为1;反之,为0。F的目标是实现对输入数据的二分判别,即数据是否来自真实数据;G的目标是使自己生成的数据与真实数据的分布尽可能保持一致,使得判别器无法判别生成数据的真伪。这个过程使得F和G不断自我优化,直至双方达到一种平衡[11]。
图1 GANs计算流程图
在给定生成器G的情况下,考虑最优化判别器F。与基于Sigmoid的判别模型一样,训练判别器F也是最小化损失函数的过程。具体的,此处损失函数为交叉熵,其表达式为:
式中,x来自于真实数据分布pdata(x);y来自于先验分布py(y);E(*)为计算的期望值。特别的,此处来源于真实数据集的数据被标注为1,来自生成器的数据被标注为0。
给定生成器G,需要通过最小化式(1)得到最优解,在连续空间中,式(1)可写为:
对任意的非零实数m和n,且有a∈[0,1],表达式-mlog(a)-nlog(1-a)在m处得到最小值,因此给m+n定生成器G时,式(2)在处得到最小值,即为判别器最优解。
F(x)代表的是x来源于真实数据而非生成数据,当输入数据来自于真实数据时,F的目标就是使输出概率值F(x)趋近于1,而当输入数据来自于生成数据G(y)时,F的目标就是正确判断数据出处,使得F(G(y))趋近于0,同时G的目标是使其趋近于1。如此,GANs的目标函数可描述为:
在训练时,同一轮参数更新中,一般先对F的参数更新k次再对G的参数更新一次。
全卷积神经网络(FCNN)和卷积神经网络(CNN)都是含有多层网络的神经网络模型,由感知器、BP神经网络发展而来。与CNN的卷积层之后使用全连接层获得固定长度向量进行分类不同,FCNN将全连接层替换为卷积层,利用反卷积的方式对前一层的输出进行上采样操作,恢复至与原图同样的大小,再对每个像素进行分类,得到最后的检测结果。对图像的卷积过程可描述为:
式中,l为卷积层所在的层数;w为卷积核的权重参数;b为偏置;f为激活函数,此处为Relu函数,在保持与Sigmoid相同作用的情况下做到较快收敛,同时减小梯度消失的问题。
本文使用AlexNet作为生成器模型,将其最后的全连接层改为卷积层。具体的AlexNet网络结构如图2所示[12-13]。
图2 AlexNet网络结构图
为了得到更优性能的判别器,本文采用VGG作为判别器。相对于AlexNet,VGG采用了更深的网络结构,能采集到更多的图像特征,在性能上也优于AlexNet,可作为一个“更强大”的判别器来对抗生成器。VGG- 19网络结构如图3所示[12-13]。
为了验证基于生成式对抗网络的遥感影像云检测方法的有效性,将实验结果与参考文献[5]提出的Otsu云检测方法和参考文献[7]提出的FCNN作对比。以GF-1号原始遥感影像作为实验对象,影像1如图4a所示,空间分辨率为2 m,大小为8 856像素 ×8 976像素,云类型为薄云和厚云,地物类型主要为山体;影像2如图4b所示,无云覆盖,主要地物为城市、农田、湖泊,空间分辨率为2 m,大小为8 856像素×8 976像素。
图3 VGG-19网络结构图
图4 GF-1号原始影像
在数据准备阶段,将检测类别分为云和背景,使用GF-1号原始影像数据进行人工标注,并将图片进行切分处理,共得到训练样本2 500片,主要用于模型的训练和检验。实验采用Linux下的Tensorflow机器学习框架,硬件环境为CPU i7处理器、GPU Nvidia 1080 8G内存;使用修改后的AlexNet作为生成器,修改后的VGG作为判别器。将生成器生成结果交由判别器判别,直至判别器认为生成数据来源于人工标志数据而非生成器生成数据为止。本文方法云检测结果如图5a、5d所示,Otsu的云检测结果如图5b、5e所示,FCNN云检测结果如图5c、5f所示。
图5 3种方法云检测效果对比
由图5a、5b可知,本文检测方法和Otsu方法获取结果的云边界清晰,能较好地识别出薄云和厚云;由图5c可知,FCNN方法检测厚云和薄云的效果最好,但边界较模糊,也存在一些漏检现象;由图5e中可知,Otsu方法的检测结果存在误检现象,将高反光物体误检测为云;由图5d、5f可知,本文方法和FCNN方法不存在误检现象,具体对比如表1所示。
表1 3种方法云检测效果对比
由表1可知,相对于Otsu方法和FCNN方法,本文所设计云检测算法在识别率、识别精度上有一定优势,且误检率和漏检率较低。Otsu方法虽能有效检测厚云和薄云,但也存在误检现象,未考虑云本身的形态学特征,因而对一些高亮物体无法进行排除判断。FCNN方法能有效检测厚云和薄云,也避免了误检现象,但存在一定的漏检现象,同时检测的云边缘也不是特别清晰。
通过以上对比分析可知,本文提出的云检测方法效果较好,能较好地学习到云的复杂特征,进而获取较好的检测结果。
本文将GANs应用到遥感影像云检测中,在一定程度上弥补了传统方法未考虑云形态学特征的不足。该方法可用于云区域提取、遥感影像质量控制等方面,其主要优势包括检测精度高、边缘清晰、误检漏检率低,适用于有云和无云图像。下一步工作将探索检测更多的面目标(如水域、农田、矿区等),以扩大本文方法的适用范围,同时进一步优化该方法,获取更高的检测精度。
[1] ZHU Z, Woodcock C E. Object-based Cloud and Cloud Shadow Detection in Landsat Imagery[J]. Remote Sensing of Environment,2012,118(6):83-94
[2] ZHU Z, Woodcock C E. Automated Cloud, Cloud Shadow,and Snow Detection in Multi-temporal Landsat Data: an Algorithm Designed Specifically for Monitoring Land Cover Change [J]. Remote Sensing of Environment,2014(152):217-234
[3] 刘大伟,韩玲,韩晓勇.基于深度学习的高分辨率遥感影像分类研究[J].光学学报,2016,36(4):306-314
[4] 陈洋,范荣双,王竞雪,等.结合相位一致和分水岭变换的高分辨率遥感影像分割方法[J].激光与光电子学进展,2017,54(9):381-386
[5] 高贤君,万幼川,郑顺义,等.航空摄影过程中云的实时自动检测[J].光谱学与光谱分析,2014,34(7):1 909-1 913
[6] Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks[J].International Conference on Neural Information Processing Systems,2012,60(2):1 097-1 105
[7] LONG J, Shelhamer E, Darrell T. Fully Convolutional Networks for Semantic Segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2014,39(4):640
[8] YU Q, GONG P, Clinton N, et al. Object-based Detailed Vegetation Classification with Airborne High Spatial Resolution Remote Sensing Imagery[J]. Photogrammetric Engineering and Remote Sensing,2006,72(7):799-811
[9] Goodfellow I, Pougetabadie J, Mirza M, et al. Generative Adversarial Nets[C]. Advances in Neural Information Processing Systems,2014:2 672-2 680
[10] Heaton J. Ian Goodfellow, Yoshua Bengio, and Aaron Courville:Deep Learning[C]. Genetic Programming and Evolvable Machines,2017:1-3
[11] Bengio Y, Courville A, Vincent P. Representation Learning: a Review and New Perspectives[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2012,35(8):1 798-1 828
[12] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-scale Image Recognition[M]. Computer Science,2014
[13] Deep Learning 回 顾 之 LeNet、AlexNet、GoogLeNet、VGG、ResNet[EB/OL].[2016-08-30].http://www.cnblogs.com/52machinelearning/p/5821591.html