基于自动设计长短时记忆网络的高光谱图像分类方法

文档序号:26835848发布日期:2021-10-02 09:37阅读:154来源:国知局
基于自动设计长短时记忆网络的高光谱图像分类方法

本发明属于图像处理技术领域,更进一步涉及高光谱图像分类技术领域中的一种基于自动设计长短时记忆网络高光谱图像分类方法。本发明可用于对高光谱图像中的地物目标进行分类,从而为资源勘探、森林覆盖、灾害监测领域的地物目标识别提供依据。

背景技术

近几年来,高光谱图像的应用领域越来越广泛,它具有重要的价值,可以运用到灾害监测、资源勘察等农业、地质和军用方面。高光谱图像每个像素点都是利用数百个高分辨率的连续电磁波谱观测得来的,所以每个像素点蕴含了丰富的光谱信息。丰富的光谱信息使得高光谱图像在分类任务上展现出了巨大的优势。在过去的二十年内,许多传统的机器学习算法,比如随机森林、支撑向量机和K近邻等方法已经应用在高光谱图像分类上,都取得了不错的效果。近年来,基于深度学习的光谱分类器被提出,例如一维卷积神经网络、循环神经网络等广泛应用于高光谱图像分类。然而,随着高光谱成像技术的进一步发展和应用程度的不断深入,高光谱图像分类领域依然存在以下一些问题,如高光谱图像同类像素光谱差异性大而不同类像素特性差异小,传统分类器无法正确判别;另外,近几年随着光谱分辨率的提高,光谱信息量猛增,人工设计的基于深度学习的光谱分类器不能自适用于不同的数据集,从而难以充分利用光谱之间的相关信息,无法提取到光谱中的高辨识性特征,导致分类精度不高。例如:

Lichao Mou等人在其发表的论文“Deep Recurrent Neural Networks for Hyperspectral Image Classification”(《IEEE Transactions on Geoscience&Remote Sensing》,2017,55(7):3639-3655)中提出了一种基于深度循环网络的高光谱图像分类方法。该方法将高光谱图像每一个像素点的谱段信息单独看成一个时序信号,构造基于单个像素点的特征向量,然后利用该特征向量训练循环神经网络,对高光谱图像逐像素点进行分类。循环神经网络不同于传统的前馈神经网络,可以记忆上一层网络的信息并应用于当前层的计算中,擅长处理具有时序关系的序列信号,所以将每个像素点波谱展开成序列信号输入循环神经网络中得到了不错的分类效果。但是,该方法仍然存在的不足之处是,由于深度循环神经网络模型其本身的长时依赖问题,导致网络在训练反向更新时造成梯度消失或梯度爆炸的问题,从而使得网络无法学到高光谱图像光谱之间的潜在特征。

西安电子科技大学在其申请的专利文献“基于长短时记忆网络的高光谱图像分类方法”(专利申请号:201710781812.8,申请公布号:CN 107657271 A)中提出了一种基于长短时记忆网络的高光谱分类方法。该方法首先对高光谱图像进行PCA降维,获取高光谱图像的主成分灰度图并且对灰度图进行形态学滤波。然后利用高光谱图像的形态学特征矩阵构建样本数据的局部空间序列特征。最后构建好的局部空间序列特征矩阵输入到人工设计好的长短时记忆网络中,从而得到分类结果。该方法虽然在一定程度上提高了分类精度,但是,该方法仍然存在的不足之处是,用于分类的长短时记忆网络是人工设计的,需要大量的先验知识,并且网络模型结构是固定的,不能自适用于不同的高光谱图像。



技术实现要素:

本发明的目的是针对上述现有技术的不足,提出了一种基于自动设计的长短时记忆网络的高光谱图像分类方法,用于解决需要人工设计长短时记忆网络中的循环单元需要大量先验知识、网络模型固定无法自适用于不同的高光谱图像的问题。

实现本发明的技术思路是:构建由有向无环图表示的搜索空间,搭建一个用于从搜索空间中生成循环单元的控制器,交替训练控制器和用生成的循环单元搭建的长短时记忆网络获取最终训练好的控制器,从而利用控制器可以自动生成最终的循环单元。本发明提出一种策略损失函数,计算交替训练过程中用生成的循环单元搭建的长短时记忆网络的损失值,通过迭代学习,使控制器不断从搜索空间中生成自适用于不同高光谱图像的循环单元。

实现本发明的具体步骤如下:

步骤1,构建搜索空间。

用由12个带有序号的节点构建一个有向无环图作为搜索空间,每个节点代表tanh、ReLU、sigmoid、identity四个候选模块中的任意一个,每条边从序号小的节点指向序号大的节点,代表数据处理信息的流向。

步骤2,利用循环神经网络搭建一个控制器。

搭建一个由23个时间步构成的循环神经网络,每个时间步都是由输入层,嵌入层,隐藏门限单元循环层,全连接层,Softmax层,输出层组成;设置每个输入层的单元数为1;设置每个嵌入层的单元总数与候选模块数目相等;设置每个隐藏门限循环单元总数设为100;其中,单数时间步对应的全连接层的单元总数与候选模块数目相等,双数时间步对应的全连接层的单元数量为当前输入层时间步数的一半;每个Softmax层使用归一化指数函数;设置每个输出层的单元数目为1。

步骤3,生成训练集和验证集。

将输入的一幅高光谱图像使用归一化方法归一化到[0,1]之间,得到归一化的高光谱图像;从归一化后的高光谱图像的每类地物中随机选取30%的像素点向量组成训练集,从剩余图像中随机选取30%的像素点向量组成验证集,将剩余40%的像素点组成待分类的像素点向量。

步骤4,由搜索空间生成循环单元。

(4a)将零向量输入到控制器中第一个时间步对应的输入层中。

(4b)将控制器前一个时间步输出的选中模块输入到控制器中下一个时间步的输入层中。

(4c)将所有时间步输出的选中模块组成一个循环单元。

步骤5,训练由循环单元搭建的长短时记忆网络。

(5a)将训练集中的每个像素点向量按顺序每50个划分为一个子向量,最后一个子向量长度不足50的用0补足。

(5b)搭建一个长短时记忆网络,该网络的时间步长与子向量的组数相等,每个时间步均由输入层,循环单元层,全连接层,Softmax层组成;将输入层的单元总数设置为50,循环单元层由100个循环单元并列组成;全连接的单元数目与高光谱图像的类别数相等;Softmax层使用归一化指数函数实现。

(5c)将训练集划分的子向量依次输入到长短时记忆网络中,输出每个像素点向量的预测标签,利用交叉熵损失函数计算所有像素点向量的预测标签与其真实标签之间的损失值,再利用梯度下降算法,迭代更新长短时记忆网络的参数,直至交叉熵损失函数收敛,得到训练好的长短时记忆网络。

步骤6,训练控制器。

(6a)将验证集中的每个像素点向量按顺序每50个划分为一个子向量,最后一个子向量长度不足50的用0补足。

(6b)将划分的子向量依次输入训练好的长短时记忆网络NA中,输出像素点向量的预测标签。

(6c)构建策略损失函数L:

L=-Pθ(m)R

其中,Pθ(m)表示计算训练好的长短时记忆网络m在参数θ的控制器中在出现的概率,R表示像素点向量的预测标签与其真实标签的准确率。

(6d)利用策略损失函数计算训练好的长短时记忆网络的损失值。

步骤7,将损失值输入到控制器中,利用梯度下降算法迭代更新控制器的参数,判断策略损失函数是否收敛,若是,得到训练好的控制器后执行步骤8,否则,执行步骤4。

步骤8,利用训练好的控制器从搜索空间中生成循环单元B。

(8a)将一个零向量输入到训练好的控制器中第一个时间步对应的输入层中。

(8b)将训练好的控制器前一个时间步的输出层的结果输入到训练好的控制器中下一个时间步的输入层中。

(8c)将所有时间步输出的选中模块组成一个循环单元B。

步骤9,训练由循环单元B搭建的长短时记忆网络NB。

(9a)搭建一个长短时记忆网络NB,该网络的时间步长与步骤(5a)中子向量的组数相等,每个时间步均由输入层,循环单元层,全连接层,Softmax层组成;将输入层的单元数设置为50,循环单元层由100个循环单元B并列组成;全连接的单元数目与高光谱图像的类别数相等;Softmax层使用归一化指数函数实现。

(9b)将步骤(5a)划分的子向量依次输入到长短时记忆网络NB中,输出每个像素点向量的预测标签,利用交叉熵损失函数计算所有像素点向量的预测标签与其真实标签之间的损失值,再利用梯度下降算法,迭代更新长短时记忆网络NB的参数,直至交叉熵损失函数收敛,得到训练好的长短时记忆网络NB。

步骤10,对待分类的高光谱图像进行分类。

(10a)将待分类的像素点向量按像素点顺序每50个划分为一个子向量,最后一个子向量长度不足50用0补足。

(10b)将待分类划分的子向量依次输入到训练好的长短时记忆网络NB中,得到像素点向量的预测标签。

本发明与现有技术相比较,具有以下优点:

第一,由于本发明构建由有向无环图表示的搜索空间,搭建一个用于从搜索空间中生成循环单元的控制器,通过交替训练控制器和用生成的循环单元搭建的长短时记忆网络获取最终训练好的控制器,从而利用控制器可以自动生成最终的循环单元,克服了现有技术中人工设计长短时记忆网络中的循环单元需要大量先验知识的问题,利用提出的策略损失函数计算交替训练过程中用生成的循环单元搭建的长短时记忆网络的损失值,通过迭代学习,使控制器从搜索空间中生成自适用于不同高光谱图像的循环单元,使得本发明针对不同的高光谱图像能够自动生成长短时记忆网络中的循环单元,提高了高光谱图像的分类精度。

第二,由于本发明利用了由自动生成的循环单元搭建的长短时记忆网络,可以对输入的光谱信息进行筛选和限制,使得该光谱信息传递下去,克服了现有技术采用递归神经网络时由于长时依赖性造成的梯度消失或者梯度爆炸的缺点,使得本发明具有更充分地利用高光谱图像的光谱序列信息,提高了对高光谱图像分类的准确性。

附图说明

图1是本发明的流程图;

图2是本发明中所搭建的控制器原理图;

图3是本发明的仿真图。

具体实施方式

下面结合附图对本发明做进一步的详细描述

参照图1,对本发明的具体步骤做进一步的详细描述。

步骤1,构建搜索空间。

用由12个带有序号的节点构建一个有向无环图作为搜索空间,每个节点代表tanh、ReLU、sigmoid、identity四个候选模块中的任意一个,每条边从序号小的节点指向序号大的节点,代表数据处理信息的流向。

步骤2,利用循环神经网络搭建一个控制器。

下面结合图2,对搭建的一个控制器做进一步的描述。

本发明的实施例是搭建一个由23个时间步构成的循环神经网络,每个时间步的网络结构均相同。图2中每个时间步都是由输入层,嵌入层,隐藏门限循环单元层,全连接层,Softmax层,输出层组成。其中设置每个输入层的单元数为1。设置每个嵌入层的单元总数与候选模块数目相等;设置每个隐藏门限循环单元总数设为100。设置单数时间步对应的全连接层的单元总数与候选模块数目相等,双数时间步对应的全连接层的单元数量为当前输入层时间步数的一半;每个Softmax层使用归一化指数函数。设置每个输出层的单元数目为1。

步骤3,生成训练集和验证集。

将输入的一幅高光谱图像使用归一化方法归一化到[0,1]之间,得到归一化的高光谱图像。从归一化后的高光谱图像的每类地物中随机选取30%的像素点向量组成训练集,从剩余图像中随机选取30%的像素点向量组成验证集,将剩余40%的像素点组成待分类的像素点向量。

归一化方法的具体步骤如下:

其中,R表示归一化处理后的高光谱图像,I表示归一化处理前的高光谱图像,max(·)和min(·)分别表示取最大值和最小值操作。

步骤4,由搜索空间生成循环单元。

将零向量输入到控制器中第一个时间步对应的输入层中。

将控制器前一个时间步输出的选中模块输入到控制器中下一个时间步的输入层中。

将所有时间步输出的选中模块组成一个循环单元。

步骤5,训练由循环单元搭建的长短时记忆网络。

将训练集中的每个像素点向量按顺序每50个划分为一个子向量,最后一个子向量长度不足50的用0补足。

搭建一个长短时记忆网络,该网络的时间步长与子向量的组数相等,每个时间步均由输入层,循环单元层,全连接层,Softmax层组成。将输入层的单元数设置为50,循环单元层由100个循环单元并列组成;全连接的单元数目与高光谱图像的类别数相等;Softmax层使用归一化指数函数实现。

将训练集划分的子向量依次输入到长短时记忆网络中,输出每个像素点向量的预测标签,利用交叉熵损失函数计算所有像素点向量的预测标签与其真实标签之间的损失值,再利用梯度下降算法,迭代更新长短时记忆网络的参数,直至交叉熵损失函数收敛,得到训练好的长短时记忆网络。

所述交叉熵损失函数:

其中:L表示训练集中所有像素点向量的预测标签与真实标签之间的损失值,h表示训练集中像素点向量的总数,∑表示求和操作,yg表示训练集中第g个像素点向量的真实标签,ln表示以自然常数e为底的对数操作,fg表示长短时记忆网络对训练集中第g个像素点向量输出的预测标签。

步骤6,训练控制器。

将验证集中的每个像素点向量按顺序每50个划分为一个子向量,最后一个子向量长度不足50的用0补足。

将划分的子向量依次输入训练好的长短时记忆网络NA中,输出像素点向量的预测标签。

构建策略损失函数L如下:

L=-Pθ(m)R

其中,Pθ(m)表示计算训练好的长短时记忆网络m在参数θ的控制器中在出现的概率,R表示像素点向量的预测标签与其真实标签的准确率。

所述计算准确率的具体步骤如下:

其中,acc表示输出像素点向量的预测标签与其真实标签的准确率,num为预测正确的像素点向量个数,h为验证集中像素点向量的总数。

利用策略损失函数计算训练好的长短时记忆网络的损失值。

步骤7,将损失值输入到控制器中,利用梯度下降算法迭代更新控制器的参数,判断策略损失函数是否收敛,若是,得到训练好的控制器后执行步骤8,否则,执行步骤4。

步骤8,利用训练好的控制器从搜索空间中生成循环单元B。

将一个零向量输入到训练好的控制器中第一个时间步对应的输入层中。

将训练好的控制器前一个时间步的输出层的结果输入到训练好的控制器中下一个时间步的输入层中。

将所有时间步输出的选中模块组成一个循环单元B。

步骤9,训练由循环单元B搭建的长短时记忆网络NB。

搭建一个长短时记忆网络NB,该网络的时间步长与步骤5中子向量的组数相等,每个时间步均由输入层,循环单元层,全连接层,Softmax层组成;将输入层的单元数设置为50,循环单元层由100个循环单元B并列组成。全连接的单元数目与高光谱图像的类别数相等;Softmax层使用归一化指数函数实现。

将步骤5划分的子向量依次输入到长短时记忆网络NB中,输出每个像素点向量的预测标签,利用交叉熵损失函数计算所有像素点向量的预测标签与其真实标签之间的损失值,再利用梯度下降算法,迭代更新长短时记忆网络NB的参数,直至交叉熵损失函数收敛,得到训练好的长短时记忆网络NB。

步骤10,对待分类的高光谱图像进行分类。

将待分类的像素点向量按像素点顺序每50个划分为一个子向量,最后一个子向量长度不足50用0补足。

将待分类划分的子向量依次输入到训练好的长短时记忆网络NB中,得到像素点向量的预测标签。

下面结合仿真实验对本发明的效果做进一步的说明:

1.仿真实验条件:

本发明的仿真实验的硬件平台为:处理器为Intel i7 5930k CPU,主频为3.5GHz,内存16GB。

本发明的仿真实验的软件平台为:Windows 10操作系统和python 3.7。

本发明仿真实验所使用的输入图像为印第安松树Indian Pines高光谱图像,该高光谱数据采集自美国印第安纳州西北部印第安遥感试验区,成像时间为1992年6月,图像大小为145×145×200个像素,图像共包含220个波段和16类地物,图像格式为mat。

2.仿真内容与结果分析:

本发明仿真实验是采用本发明和两个现有技术(支撑向量机SVM分类方法、深度循环神经网络DRNN分类方法)分别对输入的印第安松树Indian Pines高光谱图像进行分类,获得分类结果图。

在仿真实验中,采用的两个现有技术是指:

现有技术支撑向量机SVM分类方法是指,Melgani等人在“Classification of hyperspectral remote sensing images with support vector machines,IEEE Trans.Geosci.Remote Sens.,vol.42,no.8,pp.1778–1790,Aug.2004”中提出的高光谱图像分类方法,简称支撑向量机SVM分类方法。

现有技术深度循环神经网络DRNN分类方法是指,Mou Lichao等人在“Deep Recurrent Neural Networks for Hyperspectral Image Classification,IEEE Transactions on Geoscience&Remote Sensing,55(7):3639-3655,2017”中提出的高光谱图像分类方法,简称深度循环神经网络DRNN分类方法。。

图3为本发明的仿真图,其中,图3(a)为由高光谱图像波段中第50个,第27个和第17个波段构成的伪彩色图像。图3(b)为输入的高光谱图像印第安松树Indian Pines的真实地物分布图,其大小为145×145个像素。图3(c)为采用现有技术支撑向量机SVM分类方法,对印第安松树Indian Pines高光谱图像进行分类的结果图。图3(d)为采用现有技术深度循环神经网络DRNN分类方法,对印第安松树Indian Pines高光谱图像进行分类的结果图。图3(e)为利用本发明的方法,对印第安松树Indian Pines高光谱图像进行分类的结果图。

由图3(c)可以看出,现有技术的支撑向量机SVM分类结果噪点较多,边缘平滑性不好,主要因为该方法不能充分提取高光谱图像像元的光谱特征,从而无法很好利用高光谱图像像元的光谱信息,使得分类准确性不高。

由图3(d)可以看出,现有技术的深度循环神经网络DRNN分类结果与本发明分类结果相比,噪点较多且边缘平滑性不好,主要因为该方法使用的递归神经网络是由人工搭建的,并不充分适应于该高光谱图像,导致分类准确性不高。

由图3(e)可以看出,本发明的分类结果相比于支撑向量机SVM的分类结果和深度循环神经网络DRNN方法的分类结果,其噪点较少,且具有较好的区域一致性和边缘平滑性,证明本发明的分类效果优于前两种现有技术分类方法,分类效果较理想。

为了对本发明的仿真实验结果进行评价,利用两个评价指标(总精度OA、平均精度AA)分别对分类结果进行评价。利用下式,以像素为基本单位,分别计算本发明和两个现有技术的高光谱图像分类结果的总体分类精度OA和平均分类精度AA:

将图3(c)、3(d)、3(e)中以每个像素点为基本单位,利用下述的16类地物的分类精度的计算公式,分别计算16类地物的分类精度,总精度OA,平均精度AA,将所有计算结果绘制成表1。

表1.仿真实验中本发明和各现有技术分类结果的定量分析表

结合表1可以看出,本发明的总体分类精度OA为85.0%,平均分类精度AA为87.2%,这两个指标均高于2种现有技术方法,证明本发明可以得到更高的高光谱图像分类精度。

以上仿真实验表明:本发明构建由有向无环图表示的搜索空间,搭建一个用于从搜索空间中生成循环单元的控制器,通过交替训练控制器和用生成的循环单元搭建的长短时记忆网络获取最终训练好的控制器,从而利用控制器可以自动生成最终的循环单元,解决了现有技术中人工设计长短时记忆网络中的循环单元需要大量先验知识的问题,利用提出的策略损失函数计算交替训练过程中用生成的循环单元搭建的长短时记忆网络的损失值,通过迭代学习,使控制器从搜索空间中生成自适用于不同高光谱图像的循环单元,使得本发明针对不同的高光谱图像能够自动生成长短时记忆网络中的循环单元,提高了高光谱图像的分类精度,是一种非常实用的高光谱图像分类方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1