多时相遥感深度学习作物提取方法综述(万字长文)

一、 引言

本人研究的方向是遥感作物分布提取,想基于多时相、深度学习和GEE平台展开研究,现对相关文献进行资料调研。深度学习和遥感原本属于2个研究方向,现在已经有越来越多的研究开始将深度学习算法应用到遥感领域。

  1. 传统遥感研究人员重视遥感数据本身,善于分析作物生长的规律(波段特性、物候特性),基于知识和经验构建算法,注重算法的可解释性
  2. 相较于传统遥感研究人员,人工智能的科研人员更了解深度学习的发展过程和算法,将遥感影像视为普通多通道影像数据进行研究,虽然他们懂得如何去利用大数据和深度学习模型去挖掘数据和标签隐藏的关联,但可能他们对遥感本身这个领域不够了解,缺少对作物生长过程的感性认识,以至于忽视遥感作物提取中的一些关键信息,比如遥感影像的预处理、作物的物候信息、特定波段对作物提取的影响。

image-20230506095407737

现在的人工智能已经进入(知识+数据驱动)可解释的深度学习模型的发展阶段,作物生长机理数据挖掘算法同样重要,下文将结合2个研究领域从如下3个方面陈述发展现状:

  1. 遥感作物提取技术的发展现状
  2. 深度学习算法的发展现状
  3. 基于深度学习算法的多时相遥感作物提取方法现状

二、遥感作物提取技术的发展现状

对于传统的作物遥感提取技术,有许多种方法,我们首先按找如下几种划分方式单独进行陈述:

  1. 数据源(单时相/多时相)
  2. 算法复杂度
  3. 研究对象(像素/对象)
  4. 研究目的(分类/解混)

1. 数据源

按照数据源使用的不同,可以划分为2种:

  • 单时相
  • 多时相/时间序列

单时相

因为计算机算力、影像覆盖程度、影像获取成本的限制,许多研究时基于单时相展开的,因为只有单个时相,所以研究的重点都在分析作物的波段特征(如下图),利用作物在某些波段上的特征并结合下文的一些分类算法提取作物。同时在原始波段的基础上,可以构建一些指数波段进行分析,如归一化植被指数(NDVI)、归一化水体指数(NDWI)等等指数。且已有一些研究构建作物指数去提取特定作物,如油菜籽指数(CI)

多时相/时间序列

现在GEE平台和Sentinel系列卫星数据的免费开放,平台算力问题和数据成本问题得到解决,使得多时相的研究更容易展开。

image-20230506111314826

基于单时相遥感数据的提取方法会出现“同物异谱”和“异物同谱”问题导致作物错分,而多时相遥感影像比单时相具有更丰富的特征信息,在作物识别过程中具有重要意义。相较于单时相,我们可以分析作物的物候生长曲线,因为有多个波段对应个多个生长曲线,为了简化模型,多数研究都是基于EVI或NDVI指数对作物的生长曲线进行分析。对于利用生长曲线提取作物的方法有很多种,例如动态时间规整(DTW)、时间加权动态时间扭曲法(TWDTW)。

【算法探讨】从DTW算法谈股票问题 - 知乎

此处简单介绍一下DTW算法:DTW(Dynamic Time Warping)动态时间规整算法是一种信号匹配技术,它可以在两个不同的时间序列之间进行相似性比较,并计算两个序列之间的距离。DTW 算法的核心思想是将两个时间序列进行对齐,使得它们之间的差异最小,并且在这个过程中可以对序列进行拉伸或压缩,从而更好地匹配。DTW 在信号处理、语音识别、机器学习、遥感等领域都有广泛的应用。我们可以使用DTW算法计算待测时间序列与不同作物时间序列的相似程度,进而得到分类结果

时间序列的预处理

处理雷达遥感影像(SAR1)时间序列时,我们无须考虑时间序列影像缺失问题,但是处理光学遥感影像时处理时间序列时,因为可见光波长较短无法透过云层,会导致影像许多区域被云遮挡,此处就涉及到对光学影像的**去云、插值补全和 滤波(例如S-G滤波)**等操作。此处推荐一个博客基于GEE遥感影像SG滤波

2. 算法复杂程度

按照算法复杂程度,我将遥感作物提取算法划分3个部分。

  • 决策树规则集分类
  • 传统机器学习算法
  • 深度学习算法

2.1 决策树&规则集算法

img

论文为例,决策树、规则集算法通过分析不同作物样本数据在OSAVI、SIWSI、TCARI指数的时序变化规律(如上图),找到玉米的独特特征,基于OSAVI、SIWSI、TCARI指数构建出T1、T2、T3指标以区分玉米、大豆、花生。

img

基于作物样本在指标T1、T2、T3上的数据分布,划分阈值,分层逐级提取出玉米。

img

这种方法从作物生长规律入手,构建规则集提取作物。模型具有很强的可解释性,算法复杂度低,易拓展,泛化能力强,易大规模制图

[注:此处提到的决策树与机器学习算法中的决策树(如C4.5算法)并不相同。此出的决策树更多是依靠知识和经验构建决策规则,并非通过算法自动构建]

论文链接:2022 Automated soybean mapping based on canopy water content and chlorophyll content using Sentinel-2 images - ScienceDirect

2.2 传统机器学习算法

传统机器学习的方法能够自动建立输入特征和输出结果之间的映射关系,其中应用于分类问题的常用算法有:RF、SVM、BPNN等。多项已有研究表明,随机森林算法(RF)在作物提取领域表现更优。

image-20230506144527276

论文为例,文章基于单时相哨兵2影像进行大豆分布提取研究,对比了多种传统机器学习算法,并对特征进行了优选。上图为文章处理的流程图:首先对遥感数据进行预处理,结合地面作物样本点数据在不同时相的JM距离(可以理解为样本分离度)评选出一个最优时相。下一步是构建用于分类的特征用RF、SVM、BPNN方法进行分类,分类的特征提出3个对比方案:A 原始波段、B 原始波段+植被指数(如下图)、C 特征优选后的特征子集。 文章最终对比了不同特征组合在不同算法上在大豆分布提取上的性能。

image-20230506145724429

image-20230506145622505

对于传统机器学习分类器来说,输入特征空间维度很高时,大部分算法的性能会迅速降低或完全失效的问题。由于每增加一个特征,特征空间的体积就会呈指数级增长,这使得在高维空间中对数据进行有效编码和处理变得极为困难,因为数据变得稀疏且彼此在空间中相距很远。这个问题称为维度爆炸问题

通过此文章,我们可以注意到,采用经典的机器学习算法进行作物分布的提取,在分类算法上很难有突破,研究的重点在于特征工程:如何选择更优用于分类的特征。

输入数据的维度对单时相数据来说:特征可能是原始波段、植被指数、纹理等;对于多时相的数据来说:特征可以是原始波段、指数、也可以是时间序列谐波拟合后的参数和样本分布的百分位数等等。

论文链接2020 Identification and mapping of soybean and maize crops based on Sentinel-2 data

2.3 深度学习算法

深度学习算法与传统机器学习算法手动构建特征分类不同,深度学习模型是端到端的学习,无须构建特征。深度学习模型会在训练的过程中自动挖掘特征并进行分类,是一个完全的“黑箱模型”。我们此时更关注深度学习模型的优化数据本身的质量

单时相

基于深度学习的遥感影像语义分割(进阶版) - 知乎

对于单时相数据来说,作物分布提取属于语义分割问题(如上图),对应的深度学习模型是全卷积网络(Fully Convolutional Network,FCN),其是一种特别设计用来进行像素级别图像分割的卷积神经网络(CNN)。与传统卷积神经网络不同的是,FCN不仅能够提取图像的高层次特征,更能输出与输入图像相同分辨率的像素级别的结果。FCN最早被提出时是基于VGG-16模型在图像分类任务的基础上构建的。它通过在VGG-16模型的最后几个全连接层之后添加卷积层和下采样操作实现了像素级别的特征提取。之后,FCN的架构逐渐改进和扩展,如DeepLab系列、U-net等。

目前常用遥感作物提取领域最常用的模型是 U-net模型

多时相

多时相深度学习作物提取方法是本文研究的【重点】,将在第四章详细介绍。

区别和联系

对于作物提取算法可以进一步划分为2个过程:提取特征 、构建算法进行分类。以上三种算法的联系如下表:

方法 提取特征 分类
决策树&规则集 人工 人工
传统机器学习算法 人工 自动
深度学习算法 自动 自动

3. 研究对象

对于规则集和传统机器学习算法,我们研究的一般的对象都是以像素点为单位。一个像素点即是一个样本,我们提取了作物的时序特征光谱特征,完全忽视了作物的空间特征(纹理特征除外,纹理考虑了部分空间特征)。

img

而面向对象的方法将我们的研究对象从像素转化为对象(田块)。利用聚类算法将影像分割为多个对象(田块)(如上图),以对象为单位进行作物分类。面向对象方法解决在随机森林方法的分类结果出现的“椒盐”现象。引入对象后,我们可以在原有算法基础上添加一些对象的特征用于分类,如对象的面积、周长、形状等等。

GEE中已经提供了一些现成的聚类算法供我们使用,如:

  1. K-means聚类(ee.Clusterer.kmeans())
  2. DBSCAN聚类(ee.Clusterer.dbscan())
  3. Hierarchical Agglomerative Clustering(ee.Clusterer.hierarchical())

4. 研究目的

我们上文提到的分类结果属于硬分类,即分类器对每个像元或样本进行分类并将其分配到特定的类别中。除了硬分类之外,还有软分类。在遥感中,软分类有一个更专业的名词叫:混合像元分解

image-20230506161340841

遥感影像中像元很少是由单一均匀的地表覆盖类组成的,一般都是几种地物的混合体(如上图)。因此影像中像元的光谱特征并不是单一地物的光谱特征,而是几种地物光谱特征的混合反映。混合像元分解方法将每一混合像元进行分解而且求得覆盖类型组分(通常称为端元组分)占像元的百分含量(丰度),使得分类结果更精确。

常用的混合像元分解模型有5种,分别为线性模型,概率模型,几何光学模型,随机几何模型和模糊分析模型,模型的优缺点及其适用性请参考如下论文:

混合像元分解模型综述[J]. 遥感信息, 2003 (3):

混合像元分解及其应用研究[D]. 重庆: 重庆交通大学, 2010

此方向可能是一个相对冷门的研究方向,查到的论文都是多年以前的。

三、深度学习算法的发展现状

梳理完遥感作物提取的发展现状,我们来理一理深度学习算法的发展现状。深度学习中复杂的结构,繁多的模型很容易让我们在学习过程中迷失在细节上。但实际上我们对深度学习大方向去研究,只需要抓住主干就可以,抛弃细枝末节,找到所属自己的细分领域再深入研究。

本章内容参考[《动手学习深度学习》](《动手学深度学习》 — 动手学深度学习 2.0.0 documentation (d2l.ai))和”西瓜书“

1. 神经网络

既然学习要抓住主干,那么深度学习主干的根节点是什么呢?神经网络

神经网络的最基本成分是神经元模型(如下图)。其模拟人类的神经元结构,当某神经元的电位超过阈值,那么它将被激活,产生输出。早期的阈值函数(激活函数)为sgn(x),随着研究不断深入,目前常用的激活函数Sigmoid函数、ReLU函数、Tanh函数等

深度神经网络学习笔记 - 知乎

将多个神经元按照一定的层次结果链接,构成了多层感知机(MLP)和多层神经网络(如下图)。

多层感知机 Multi-Layer Perception Tensorflow实现_zhang-zhan的博客-CSDN博客_multi-layer

什么是多层神经网络? - 知乎

感知机的参数学习规则相对简单,但多层神经网络的参数显然需要更强大的学习算法。误差逆传播(error BackPropagation,BP)算法是目前最成功的神经网络学习算法。

至此我们已经讲完了神经网络的核心,也是当今大多数网络中都可以找到的几个关键原则:

  • 线性和非线性处理单元的交替,通常称为(layers);
  • 使用链式规则(也称为反向传播(backpropagation))一次性调整网络中的全部参数。

神经网络的研究从1995年左右开始停滞不前,直到2005年才稍有起色。 这主要是因为两个原因。 首先,训练网络(在计算上)非常昂贵。 在上个世纪末,随机存取存储器(RAM)非常强大,而计算能力却很弱。 其次,数据集相对较小。 事实上,费舍尔1932年的鸢尾花卉数据集是测试算法有效性的流行工具, 而MNIST数据集的60000个手写数字的数据集被认为是巨大的。 大约2010年开始,那些在计算上看起来不可行的神经网络算法变得热门起来,实际上是以下两点导致的: 其一,随着互联网的公司的出现,为数亿在线用户提供服务,大规模数据集变得触手可及; 另外,廉价又高质量的传感器、廉价的数据存储(克莱德定律)以及廉价计算(摩尔定律)的普及,特别是GPU的普及,使大规模算力唾手可得。

神经网络主要解决分类问题,对于图像分类和时间序列预测问题有些力不从心,于是基于神经网络派生出了2大经典网络:CNNRNN

  • 卷积神经网络(convolutional neural network,CNN)是一类强大的、为处理图像数据而设计的神经网络

  • 循环神经网络(recurrent neural network,RNN)可以更好地处理序列信息。 循环神经网络通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

他们分别对应深度学习的2大研究领域:计算机视觉自然语言处理

2. 卷积神经网络CNN

对于图像数据,每个样本都由一个二维像素网格组成, 每个像素可能是一个(黑白)或者多个数值(彩色图像),取决于是黑白还是彩色图像。 我们可以通过将图像数据展平成一维向量,将数据送入一个全连接的多层感知机中进行分类,但是我们忽略了每个图像的空间结构信息,并且这种做法会导致全连接的多层感知机的参数特别多。我们需要一种专用于图像的神经网络。

**卷积神经网络(convolutional neural network,CNN)**是一类强大的、为处理图像数据而设计的神经网络。 基于卷积神经网络架构的模型在计算机视觉领域中已经占主导地位,当今几乎所有的图像识别、目标检测或语义分割相关的学术竞赛和商业应用都以这种方法为基础。

卷积神经网络引入了卷积层和池化(汇聚)层。卷积层基于卷积运算提取图像的空间特征(如下图1),池化层计算汇聚窗口中所有元素的最大值或平均值缩减特征图的大小(如下图2)。

在这里插入图片描述

CNN的网络非常多,这里我们只介绍第一个和最常用的一个模型。LeNet和ResNet

LeNet

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ryQjDytB-1683601932005)(null)]

最早的CNN网络名为LeNet。每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均汇聚层。每个卷积层使用5×5卷积核和一个sigmoid激活函数。这些层将输入映射到多个二维特征输出,通常同时增加通道的数量。第一卷积层有6个输出通道,而第二个卷积层有16个输出通道。每个2×2池操作(步幅2)通过空间下采样将维数减少4倍。卷积的输出形状由批量大小、通道数、高度、宽度决定。

ResNet

在1989年LeNet提出后,卷积神经网络在计算机视觉和机器学习领域中很有名气。但卷积神经网络并没有主导这些领域。这是因为虽然LeNet在小数据集上取得了很好的效果,但是在更大、更真实的数据集上训练卷积神经网络的性能和可行性还有待研究。2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。之后几年里,许多有名的网络被创造出来:VGG、NiN、GoogLeNet、ResNet、DenseNet等等等。在这里我只介绍最常用的残差网络(ResNet)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRvKtnD5-1683601931850)(null)]

​ 一个正常块(左图)和一个残差块(右图)

ResNet提出了有名的残差块结构:如上图所示,假设我们的原始输入为x,而希望学出的理想映射为f(x)(作为图上上方激活函数的输入)。左图虚线框中的部分需要直接拟合出该映射f(x),而右图虚线框中的部分则需要拟合出残差映射f(x)-x。 残差映射在现实中往往更容易优化。 右图是ResNet的基础架构–残差块(residual block)。 在残差块中,输入可通过跨层数据线路更快地向前传播。

每个模块有4个卷积层(不包括恒等映射的1×1卷积层)。 加上第一个7×7卷积层和最后一个全连接层,共有18层。 因此,这种模型通常被称为ResNet-18。

2.1 全卷积网络FCN

人工智能中图像分类、目标检测、语义分割和实例分割等任务是什么? - 知乎

上文提到的LeNet和ResNet解决的都是基本的图像分类问题(如上图),除此之外还有语义分割、目标检测、对象分割等细分领域。基于遥感图像的作物分布提取属于语义分割领域,所以我们对此部分展开来讲。

语义分割是对图像中的每个像素分类。 全卷积网络(fully convolutional network,FCN)采用卷积神经网络实现了从图像像素到像素类别的变换。 与图像分类或目标检测的卷积神经网络不同,全卷积网络将中间层特征图的高和宽变换回输入图像的尺寸:这是通过引入的转置卷积(transposed convolution)实现的。 因此,输出的类别预测与输入图像在像素级别上具有一一对应关系:通道维的输出即该位置对应像素的类别预测。

提出的网络有:

  1. FCN (Fully Convolutional Networks)
  2. SegNet
  3. U-Net
  4. DeepLabICNet
  5. PSPNet

因为U-Net在遥感领域中更为常用,所以此处详细介绍U-Net

语义分割网络 U-Net 详解

U-Net是一种基于Encoder-Decoder结构的CNN模型,最初被设计用于生物医学图像中的分割问题。U-Net的关键特点是它有一条直接连接编码器和解码器之间的跨层通道,可以帮助模型捕获更多的空间信息,从而提高分割准确性。U-Net的结构可以分为两部分:

  1. 编码器:U-Net的编码器部分类似于标准的CNN结构,由一系列卷积层和池化层交替组成,用于提取图像特征并缩小其空间尺寸。
  2. 解码器:U-Net的解码器部分包括一组与编码器所使用的层相对应的上采样层和卷积层,用于从编码器提取的特征中恢复原始图像的空间尺寸。与其他的语义分割网络不同,U-Net还采用了跨层连接,将编码器与解码器之间的特征图像进行级联,以帮助模型更好地捕获空间信息,并提高分割准确性。

3. 循环神经网络RNN

通过普通的神经网络,我们可以对特征向量进行分类;通过CNN,我们可以提取图像的特征并进行分类;结合FCN网络,我们可以实现更复杂的语义分隔任务。

../_images/ftse100.png

上图是近30年的富时100指数变化曲线,我们如何通过算法去预测股票的变化呢?

在经典的机器学习算法中,自回归模型、马尔可夫模型等模型都可以解决序列预测问题

其实用简单的神经网络可以进行时间序列的预测,但是结果并不好。我们截取一个时间步输入神经网络,使用时间序列的下一步作为模型的输出。训练的神经网络可以实现单步预测,但多步预测会出现误差累积导致结果远远偏离真实值(如下图)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csNJ5V2D-1683601932207)(null)]

由此,有人创造了专用于处理时间序列的循环卷积网络(RNN)。RNN的核心思想是当前时间步隐藏变量由当前时间步的输入 与前一个时间步的隐藏变量一起计算

传统的单隐藏层的多层感知机公式如下,隐藏层输出 H \rm H H:
H = ϕ ( X W x h + b h ) \rm H = \phi(\rm X\rm W_{xh}+\rm b_h) H=ϕ(XWxh+bh)
与多层感知机不同的是, 有隐状态的循环神经网络保存了前一个时间步的隐藏变量 H t − 1 \rm H_{t-1} Ht1, 并引入了一个新的权重参数 W h h \rm W_{hh} Whh,当前隐藏层的输出 H t \rm H_t Ht:
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) \rm H_t = \phi(\rm X_t\rm W_{xh}+\rm H_{t-1}\rm W_{hh}+\rm b_h) Ht=ϕ(XtWxh+Ht1Whh+bh)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wu2zOZp0-1683601931957)(null)]

上图就是RNN网络的基础结构。其模型的输出是 Y t + 1 \rm Y_{t+1} Yt+1,即时间序列的下一个预测值。上图是最简单的RNN结构,目前已经提出多种有效的RNN网络,使用最广泛的2个网络 即门控循环单元(gated recurrent units,GRU)和 长短期记忆网络(long short-term memory,LSTM)。此处我们只研究更为复杂一点的LSTM网络。

3.1 长短期记忆网络LSTM

在这里插入图片描述
i t = σ ( W x i x t + W h i h t − 1 + W c i ∘ c t − 1 + b i ) f t = σ ( W x f x t + W h f h t − 1 + W c f ∘ c t − 1 + b f ) c t = f t ∘ c t − 1 + i t ∘ tanh ⁡ ( W x c x t + W h c h t − 1 + b c ) o t = σ ( W x o x t + W h o h t − 1 + W c o ∘ c t + b o ) h t = o t ∘ tanh ⁡ ( c t ) \mathcal i_t = \sigma(W_{\mathcal x\mathcal i}\mathcal x_t +W_{\mathcal h\mathcal i}\mathcal h_{t-1}+W_{\mathcal c\mathcal i}\circ \mathcal c_{t-1}+ \mathcal b_\mathcal i) \\ \mathcal f_t = \sigma(W_{\mathcal x\mathcal f}\mathcal x_t +W_{\mathcal h\mathcal f}\mathcal h_{t-1}+W_{\mathcal c\mathcal f}\circ \mathcal c_{t-1}+ \mathcal b_\mathcal f) \\ \mathcal c_t = \mathcal f_t\circ \mathcal c _{t-1}+\mathcal i_t \circ \tanh(W_{xc}\mathcal x_t+W_{hc}\mathcal h_{t-1}+\mathcal b_c) \\ \mathcal o_t= \sigma(W_{xo}\mathcal x_t+W_{ho}\mathcal h_{t-1}+W_{co}\circ \mathcal c_t +\mathcal b_o)\\ \mathcal h_t = \mathcal o_t \circ \tanh(\mathcal c_t) it=σ(Wxixt+Whih

猜你喜欢

转载自blog.csdn.net/weixin_41099712/article/details/130576065