基于可控多样性生成对抗网络的水环境遥感影像场景分类方法

2023-09-21 01:01周发超高明亚
西北水电 2023年4期
关键词:张量精度分类

赵 涛,彭 峰,周发超,高明亚,刘 超,罗 楠

(1. 水工程智慧建造与管理湖北省重点实验室,湖北 宜昌 443002;2. 湖北省河湖长制办公室,武汉 430064)

0 前 言

遥感影像场景分类技术可以将遥感影像块自动划分为不同的类目,在城市规划、环境监测、土地资源管理等方面均有着较大的应用价值[1],在水库水位库容的应用越来越成熟,并取得了良好的效果[2]。随着人工智能技术的进步,以卷积神经网(Convolutional Neural Network,CNN)为代表的深度模型的分类技术已经成为遥感场景分类方法的标准方法[3-4]。利用CNN可以提取出遥感场景中更高层次的属性信息,并获得远超传统浅层模型的分类精度[5];同时基于CNN结构在场景分类中还可以加入注意力机制、记忆机制来不断提高场景分类精度[6-8]。

CNN等深度模型需要大量的样本来进行训练,然而在实际工作中往往会遇到研究区范围较小或待分类对象数量本身就较少的情况,此时会遇到困难:要么提供极少的样本,分类模型无法得到充分训练,进而无法有效分类;要么将几乎所有需区分的对象加入到样本集,此时已经不需要进行自动分类了[9]。因此,在实际场景分类应用中CNN需要应对小样本的问题[10]。

不同于传统模型,CNN参数量较大,可记住所有的少量样本中所有细节,所以在样本量较少的情况下CNN易于拟合与场景中的特异差异[11-12]。为了提高CNN小样本情况下的表现,目前在遥感和图像识别领域主要采取的手段是利用几何变换方式对样本影像进行一定方向和尺度上的变换来提高样本数量[13],这种方式在有较大的通用数据集上表现较好;基于小波变换的匹配算法较好地解决了在空间分辨率不高的条件下高光谱影像的分类问题[14],但是在样本较少的情况下可能会引发类目混淆的特征被放大的情况[15]。

生成对抗网络(Generative Adversarial Networks,GAN)为解决小样本的问题提供了新的思路。生成对抗网络包含生成器G和辨别器D,通过两个模型的对抗训练,GAN可以识别出样本中的关键特征[16],可以有效的克服过度拟合、噪声和样本交叠等问题的影响,并生成可用于放大(Gugmentation)样本集的影像数据[17-18]。在水环境遥感场景分类领域,GAN得到了较多的关注,在识别关键特征方面,GAN可以有效的处理高维度(如使用高光谱影像)和低样本量之间的关系并发现类目的关键特征[19-20]。在样本集放大方面,Xu等构造了线性指数结构来增强传统的GAN生成高分辨场景影像的能力[21];Ma等实现了基于GAN在线高多样场景样本生成,获得的分类模型精度高于传统几何变换增强的模型[22]。利用GAN进行遥感影像生成,并提高分类精度的关键是提高空间信息的多样性。通过GAN可以提高空间形成更多的空间内容组合,从而避免出现几何变换中常出现的混淆属性被放大的情况[23]。采用逐层放大的近似高斯滤波器对输入影像的积分图像进行卷积操作,获取金字塔影像[24]。

生成对抗网络制造的遥感样本的空间多样性来自于输入的随机串z,此时对于z可能会遇到两个问题:① 随机性降低,部分随机性可能在G神经网前几层别看做噪声处理掉从而丧失一部分随机内容[25];② 不可控性,从随机串到随机空间结构完全由权重来控制,而权重的训练具有随机性,难以确定串的特定位置控制了哪些结构[26]。这此问题直接导致了在利用GAN生成遥感样本的时候陷入两难境地。为保证单个样本质量许引入更多层次结构,这会显著降低空间多样性;为提高空间多样性减少网络层数,反而会降低单个样本质量,使得基于GAN的场景分类方法生成的样本空间多样性有限,且非常难于控制与实验。

随着水利遥感定量应用的深入,利用卫星遥感影像提取水体面积、几何形态、水质状况和水体生态环境等信息已在水资源调查、水资源宏观监测、环境保护、自然灾害预报、土地分类等领域得到了应用。水体信息提取对于水资源调查、洪水灾害预测评估、水利规划、环境监测等起着十分重要的作用[27]。随着社会对环境和水利的日益重视,人们对水体信息提取的要求越来越严格。虽然传统的野外测量能够获得高精度的水体信息,但由于地表干涸枯泽、瞬息多变,水资源季节性变化很强,年际变化也很大,且野外测量周期长、费时费力,不适合水资源信息的及时获取和适时监测;而遥感影像成像周期较短,适时性强,并且成像精度日益提高,如果能利用高分辨率影像提取高精度的水体信息,则可以快速、准确、及时地获得水体资源信息,以弥补野外测量的不足[28]。

为了解决上述问题,本文通过引入张量生成器T,构建在空间结构与细节上具有多样性的二维描述张量,实现空间多样性的可控性,然后再通过生成器G将二维描述张量转换为遥感场景影像,并引入UC-Merced和AID两个遥感场景分类数据集来进行对比实验。基于生成对抗网络模型,提出一种可控多样性生成对抗网络的水环境遥感影像场景分类方法(A Controlled Diversity Generative Adversarial Network for Scene Classification of Remote Sensing Images of Water Environment,CD-GAN),以适用于小样本遥感分类场景,为水环境识别与监测提供技术支撑。

1 方法描述

1.1 方法总体过程

针对现有研究中存在的问题,CD-GAN的主要目标就是要生成具备足够空间多样性的样本来促进CNN的训练过程,CD-GAN方法的总体流程如图1所示。

图1 CD-GAN方法的总体流程

如图1所示:对于一个水环境遥感场景分类任务,输入为包含Ncategory个类别的真实训练样本集TR= {tr1,tr2...,trNcategory},其中tri为类目i遥感影像样本的集合。CD-GAN包含3个组成部分:空间张量生成器(Spatial Tensor generator,T)、生成器(Generator,G)和分辨器(Discriminator,D)。T用于随机生成一个空间描述z,G接收一个z来生成伪场景图像G(z)。对于输入图像x,D的决策结果为D(x)(图像x是真实的来自于tri或伪造的G(z)),D和G具有对抗性关系。CD-GAN的目标公式是:

+Ez~p(z)[log(1-D(G(z)))]

(1)

其中E是期望算子,真实影像的分布是p(x),生成器产生的z对应分布为p(z)。通过逐渐优化式(1),G生成的图像越来越逼近真实图像。此时对于一个场景影像类目i对抗模型CD-GAN可以表示为一个生成过程:

CD-GAN(tri)→tgi

(2)

此时CD-GAN具备了发现tri中的关键空间特征,并以随机方式生成一系列影像tdi的能力。迭代应用CD-GAN的训练和生成过程就可以实现对原始样本集TR在空间信息上的增强。本文描述的方法的总体流程如下:

CD-GAN Overall Process Algorithm CG-GAN总体流程(GAN-OP)

Input:TR

Output:Mcnn

Begin

TD=ø;

MCD-GAN=初始化一个CD-GAN模型;

fori=1:Ncategory

利用公式1并使用样本集tri训练MCD-GAN;

利用MCD-GAN的T和G来生成样本tgi;

tdi={tri,tgi};

TD←tdi;

Mcnn=构建一个CNN模型M,使用TD训练M;

returnMcnn;

End

GAN-OP的输入为训练遥感场景样本集TD;对于每一个类目tri,CD-GAN训练并发现样本中的高层次空间特征的组合。T生成的随机张量并利用G将这些张量转换为对应生成样本tgi,此时可以构建构成了一组对应于类别i的增强样本tdi={tri,tgi}。在处理完所有类目之后可以获得多样性增强的训练样本集TD= {td1,td2,…,tdNcategory};利用TD可以训练一个CNN分类模型Mcnn;此时Mcnn具有更加稳定的空间特征识别能力。

1.2 CD-GAN的模型结构

与传统的CD-GAN的模型结构包含3个组成部分:张量生成器T, 生成器G和分辨器D。张量生成器T的结构如图2所示。

图2 张量生成器的结构

由图2可知,张量生成器主要负责生成二维的张量z。张量生成器首先构建一组“原子张量”形成原子张量池Tatom。其过程如下:

Atorm Tensor Pool Construction Algorithm 原子张量池构建方法(ATPCA)

Input:Sizeatom,RandMax,RandMax-atom

Output:Tatom

Begin

Tatom= ø;

fori=1:RandMax-Tatom

Matom=生成Sizeatom×Sizeatom的最大值为RandMax随机数矩阵;

Tatom←Matom;

returnTatom;

End

在获得了Tatom之后,T构建张量输出网络随机选取Tatom中的元素加入到输出网络之中,最终对整个输出网络归一化获得输出张量z;这一过程的算法描述如下:

Tensor Generator Output Algorithm 张量生成器输出算法(TGOA)

Input:Sizegrid,RandMax-atom

Output:z

Begin

Grid=建立Sizegrid×Sizegrid的2维数组;

foriin 1:Sizegrid

forjin 1:Sizegrid

Grid[i,j]=在Tatom随机选择1至RandMax-atom之间的一个元素;

z=连接Grid中的所有元素,构建一个二维矩阵;

z=对于z中的所有元素,归一化到0~1;

returnz;

End

每次T调用TGOA将生成一个二维的随机张量z,这个张量将驱动生成器G生成对应的水环境遥感场景影像。在CD-GAN中采用张量生成器T的价值主要体现在两个方面:

(1) 引入足够的空间结构随机性

在已有的基于GAN的水环境场景分类研究中通常可以看到,如果采用传统的基于随机串的方式驱动G生成影像,那么这种随机性可能在G神经网的最初几层被吸收,从而使得G生成的影像集中于有限的几种甚至一种空间结构;而CD-GAN的z相当于直接将结构的随机性引入到G之中,进而直接驱动其生成多样空间结构。

(2) 降低元素内容的随机性与输出噪声

对于一个特定类目的遥感影像场景虽然空间信息多样,但是组成其内容元素通常是有限的几种;如果引入过多的随机内容,一方面过高输入的数据变化范围过多会使得G难于训练;另一方面,G在生成过程中可能会遇到训练中未遇到的随机内容,这些随机内容穿过神经网会产生明显不合理的颜色/纹理组合或者噪声。而CD-GAN的z是由固定范围的原子组成的,这使得它可以在一定程度上规避掉过度的随机元素与噪声元素。

CD-GAN的G负责生成遥感场景影像,其结构如图3所示。生成器G在接收T输出的张量z之后生成对应的场景遥感影像如图3所示。G的结构采用接近U-Net神经网的先编码再反编码两个阶段:

图3 生成器G的结构

(1) 编码阶段

在编码阶段G采用4组图层,每组包含一个卷积层(卷积核大小为5×5,stride为2×2)和一个Batch normalization层;在组和组之间使用LReLU层进行处理。由于引入了带Stride的卷积层,所以每经过组Feature map大小均会降为原来的一半;通过这种么偶是G负逐层的抽取表达z中的空间关系。

(2) 反编码阶段

反编码阶段也采用4组图层,每组图层包含ReLU、Transposed卷积层和Batch normalization层,最终通过Tanh层输出生成结果。编码阶段的各组还会将输出直接连接到对应的反编码阶段,使得在生成过程中可以兼顾空间关系信息和具体细节信息。

CD-GAN的D负责检验遥感场景影像输出结果是否为真,分辨器D负责区分输入的影像来自于真实数据(真)还是模型G的生成数据。通过式(1)描述T、G和D的对抗过程,使得G生成的影像逐步接近于真实的遥感场景。利用G就可以获得所需的遥感影像样本。CD-GAN从训练到输出的方法如下:

CD-GAN Generate samples algorithm CD-GAN生成样本算法(GSA)

Input:tri,Ninitsamples

Output:tgi

Begin

初始化T,G和D模型

//1.预训练阶段

使用ATPCA算法建立原子张量池;

trainx=使用TGOA算法建立Ninitsamples张量;

trainy=随机从tri中选择Ninitsamples个不相同的影像;

将trainx和trainy作为G的输入和输出进行训练;

//2.训练阶段

foriin 4:1

temp=对tri进行1/i的重采样;

将T的输出作为G的输入并以temp真实影像对CD-GAN进行训练;

//3.输出阶段

testx=使用TGOA算法建立与tri样本数量一样的张量;

tgi=将testx作为G的输入生成遥感影像;

returntgi;

End

GSA算法分为3个阶段:

(1) 预训练阶段

在CD-GAN中,由于G的层数较多且遥感场景数据通常较为复杂,在神经网初始化的情况下远远达不到能够生成影像的地步。该阶段的目标是通过使用一定数量的张量z到输出影像的样本使得G可以初步的达到生成影像的功能,能够与D持续对抗进行整体训练。

(2) 训练阶段

在训练阶段并不是一开始就使用完整的tri的内容,而是使用tri的重采样的样本进行训练,使得整个训练过程可以开始专注于整体的空间结构(更易于训练),随后在上一轮基础上逐步关注细节训练,直到CD-GAN能够适应完整分辨率的tri内容为止。

(3) 输出阶段

利用TGOA算法生成张量,并利用G转换为对应的生成影像集合tgi。利用GSA算法可以实现基于CD-GAN的样本生成,此时由于引入了T可以达到更加丰富的空间多样性。

2 实 验

2.1 算法实现和实验数据集

本研究使用Python 3.8实现了CD-GAN所有算法;深度学习部分使用Keras实现,图像访问与处理使用Scikit-image开发包。为了深度的对比算法的遥感场景分类能力,对如下方法进行比对:

(1) CNN

单纯使用CNN进行样本的学习并进行分类;

(2) CNN+GT

对于样本使用几何变换(Geometric transformation,GT)进行 90°、180°、270°旋转,左右和上下翻转共5种变换来增加样本数量,并使用CNN来进行学习和分类;

(3) Diversity-GAN

多样性生成对抗网络(Diversity Generative Adversarial Networks , Diversity-GAN)使用自增长的GAN神经网进行遥感分类,该GAN的特点是利用一个随机串来驱动GAN生成遥感影像进而增强CNN的分类能力;

(4) MARTA-GAN

多层特征匹配的生成对抗网络(Multiple-layer feature-matching generative adversarial networks)使用GAN抽取遥感影像的关键特征,并基于该特征来训练浅层模型达到分类的目标;

(5) CD-GAN

此方法为本文提出的方法对于测试数据集,本文分别使用UC-Merced和AID两个著名的数据集来进行训练。所有算法均在一台i7-10700F 32G/GTX 1070 8G的计算机运行并测试,由于显存的空间所限两个数据集的影像均缩放到256×256大小进行测试。为了测试在样本不足情况下各个模型的分类能力,两个数据集分别选取10、20、30、40和50的样本作为训练样本,剩余的样本作为测试样本进行5次精度评价,并使用总体精度(Overall accuracy, OA)作为评价指标。

2.2 CD-GAN方法生成的遥感场景内容

在输入40个样本的情况下,CD-GAN的GSA方法生成的典型水环境遥感影像样本如图4所示。

从图4可以看出,CD-GAN生成的水环境场景影像存在明显的空间结构差异与整体的内容差异。CD-GAN生成的场景影像中一些人工建筑物的边界并不直(CD-GAN没有引入衡量建筑物边界是否直的评价函数),但是CD-GAN的最主要目标是生产出可以提升分类精度的样本,这些样本具备以下特征:

(1) 明显的空间结构差异

无论是UC-Merced和AID数据集,生成样本的方向、关键对象的位置均可以在较大范围内变化。

(2) 整体内容的差异

一些生成的水环境样本在整体内容上,如颜色、组成物方面也可以体现出明显的变化。

(3) 细节上的变化

即便是一些样本在空间结构和方向上近似,但是其细节,如水环境周围道路宽窄、水环境组成内容有所不同。

得益于T的引入可以大范围的变化输入到G,以上的结果展示了CD-GAN一个关键的特性:空间结构、空间内容上的多样性,这些多样性可以进一步丰富样本集的内容,达到提高CNN分类精度的目的。

2.3 5种方法精度的对比

5种方法精度的对比如表1所示。从表1可以看出,无论较少的10个样本还是较多的50个样本,CD-GAN均取得了5种方法中最高的分类精度。对于UC-Merced数据集在50个样本时达到了95.0±0.4的分类精度,对于AID数据集达到了92.1±0.6的分类精度。基于样本数量和精度,5种方法的对比如图5所示。

表1 5种方法的精度对比

图5 5种方法的精度对比

从图5可以看出,对于两种数据集5种方法的趋势基本比较一致;对于CNN水环境在样本量较少的情况下分类精度较低,随着样本数量的提升精度快速提高;由于AID数据集的数量比UC-Merced的大得多(空间多样性也更高,更难进行分类),所以在40个水环境样本的时候AID的数据集的分类精度要高于UC-Merced数据集的精度。对于CNN+GT,虽然几何变换可以提高样本数量,但是这种模式与GAN系列方法区别是单纯的几何变换可能会导致存在混淆的样本经过一模一样的变化混淆仍然存在,甚至加大,所以CNN+GT相较CNN精度提升并不明显;对于Diversity-GAN,其引入了随机串来驱动样本的多样性,精度提升较为明显;而MARTA-GAN侧重于发现样本的空间特征信息,所以精度反而会比普通CNN低。CD-GAN同Diversity-GAN的目标是一致的,也就是生成更具空间多样性的样本,CD-GAN引入了张量生成器T,可控的输出多样的空间结构,这使得CD-GAN在空间多样性上明显优于Diversity-GAN,尤其是在水环境样本量较小的情况下,这种优势更加明显。

3 结 论

利用CNN等深度模型进行水环境遥感场景分类可以获得较高分类质量,但是海量而高质量的样本集是训练深度模型的关键,相对单一和低质量的样本并不能满足训练CNN的需要。在实际中往往会遇到难于收集足够的样本的应用场景,因此利用小样本训练CNN模型非常重要。本文提出了一种基于可控多样性生成对抗网络的水环境遥感影像场景分类方法,该方法具有以下特点:

(1) 利用生成样本来提高空间信息的多样性。CD-GAN通过G生成的样本加入到原始样本集中,从实验中可以看出在空间信息的结构、内容和细节上,生成的样本均可以出现随机的多种内容组合,可以丰富原始样本集的空间内容,从而使得分类模型更容易的总结特定类目的空间特征,提高CNN分类能力。

(2) 结构可控的多样性。与传统GAN方法引入随机串来驱动G的生成行为不同,CD-GAN利用张量生成器T生成二维的张量通过一个神经网将二维的张量转换为影像,可直接将多样性引入到空间结构上,而不是寄希望于复杂的训练过程识别串中的空间随机性;这使得CD-GAN生成的样本更加直接的产生空间上的多样性,实验结果验证这一模式比直接使用随机串的Diversity-GAN更具优势。

在水环境样本量本身较少、样本收集成本巨大、研究区域较小等典型的应用场景下,CD-GAN可以明显增强水环境原始样本集中的空间信息内容,获得较高的分类精度。CD-GAN能够利用高分辨率影像提取高精度的水体信息,可以快速、准确、及时地获得水体资源信息,以弥补野外测量的不足,在水环境样本量较少的应用环境中具有较高应用价值。

猜你喜欢
张量精度分类
分类算一算
偶数阶张量core逆的性质和应用
四元数张量方程A*NX=B 的通解
分类讨论求坐标
基于DSPIC33F微处理器的采集精度的提高
数据分析中的分类讨论
教你一招:数的分类
扩散张量成像MRI 在CO中毒后迟发脑病中的应用
GPS/GLONASS/BDS组合PPP精度分析
改进的Goldschmidt双精度浮点除法器