本发明涉及遥感影像处理领域,尤其是一种能有效发掘不同模态间的特征交互性、融合质量好、分类精度高的基于多尺度注意力的多传感器遥感影像融合分类方法。
背景技术:
1、遥感技术,是指远距离对被观测对象进行观测,进而获取其多方面信息的技术。通过不同传感器一起对地观测,可以获取具有不同优势的遥感数据,联合使用这些信息,可以获得更准确且全面的结果。在众多遥感数据中,高光谱影像具有十分丰富的光谱信息—从可见光谱到红外光谱,从而可有效地区分高度相同但光谱响应不同的地物(如水体和道路)。然而,对于地物信息复杂的地区,具有相似光谱响应的地物仅通过高光谱影像有时难以区分,且高光谱影像不具有高度信息,不能区分不同高度的同质地物,从而使复杂区域的高光谱影像分类受到挑战。lidar数据由于其独特的成像机制,使得其含有地物的高程信息,使用lidar数据能很好地区分光谱响应相似但高程信息不同的地物,例如,楼房顶部和地面上的草地,但单独使用lidar数据只能区分较大的地物类别,难以实现精细的地物分类。高光谱影像和lidar数据之间具有很好的互补特性,二者的有效结合为获取精细的地物分类结果提供了可能。如何充分地挖掘高光谱影像的光谱和空间信息,提取lidar数据的高程信息,对其进行有效融合,实现优势互补,对于提高对地观测的分类精度具有不可替代的作用。
2、mercier等人于2003年将非线性核函数的支持向量机(svm)引入到遥感影像分类领域。极限学习机算法(elm)也被li等人于2015年引入遥感影像的分类中,并取得了与svm相当的性能效果。但是,这些分类方法的分类精度较低。rasti等人在2017年提出了一种基于稀疏和低秩分解的高光谱影像-lidar数据融合分类方法,利用稀疏性特性捕获图像特征的空间冗余来提高融合特征的空间平滑性,有效解决了融合过程中的休斯现象。不过,由于高光谱影像存在的维度灾难现象,该方法的处理精度也有明显不足。xue等人于2019年提出了一种基于耦合高阶张量分解的高光谱影像-lidar数据的融合模型,通过耦合高阶张量分解技术提取出了更多的潜在特征,在一定程度上克服了上述技术存在的分类精度低和融合过程引起的休斯效应等不足。
3、最近几年间,深度学习由于其强大的特征提取能力而在遥感影像融合分类领域备受关注。基于深度学习的高光谱影像-lidar数据融合分类方法能够从数据本身学习到高级语义特征和不同层次的不同特征。在各种深度学习模型中,卷积神经网络能够使用遥感数据的像素进行卷积,从影像像素中提取特征,这种处理方式更接近人类大脑视觉系统的处理方式。近年来,出现了许多有效的融合分类算法,比如,chen等设计了一种端到端的卷积神经网络网络,将两种源的数据输入到相应的网络进行特征提取,通过全连接层融合后进行分类,充分考虑并利用了高光谱影像的丰富的光谱空间信息;li等提出了三分支卷积神经网络,三个网络分支分别学习光谱、空间和高程特征,并使用复合核的方法融合这些特征,提高了分类精度;zhang等提出了一种信息融合网络,更好地集成了高光谱影像和lidar数据的异构信息;wu等提出了一种基于跨模态重构策略的卷积神经网络,加强了高光谱影像与lidar数据之间的交互;lu等提出了一种新的基于耦合对抗性学习的分类方法,该方法训练耦合对抗性特征学习子网络,然后将子网络学习的低级、中级和高级特征自适应地组合以生成最终准确的分类结果。基于深度学习的方法具有极强的特征提取与表示能力,从而为提高地物的分类精度奠定了基础,但复杂的网络结构也通常会带来较高的计算成本和复杂度。
4、总体来看,从遥感图像的特点出发对不同模态的特征进行协同分析,有利于获取更高质量的融合结果。遗憾的是,现有的基于深度学习的多源遥感影像融合分类方法通常使用单个尺度的影像块作为输入,由于不同的土地覆盖类型受周围不同的分布的影响,使用固定尺度的影像数据块作为网络输入,难以同时满足不同土地覆盖类型的实际需求,进而也难以实现精细土地覆盖分类。使用不同尺度的影像块作为输入则可以提取不同尺度的土地覆盖特征,形成互补的联合特征,为提高分类精度奠定基础。然而,多尺度数据的输入也会面临许多挑战,比如不同尺度对分类绩效的贡献是不相等的,需要对每个尺度对应的权重进行校准。如何在多尺度输入的前提下,对各尺度的重要性进行判断,尚需进一步研究。
技术实现思路
1、本发明是为了解决现有技术所存在的上述技术问题,提供一种能有效发掘不同模态间的多尺度特征交互性、融合质量好、分类精度高的基于多尺度注意力的多传感器遥感影像融合分类方法。
2、本发明的技术解决方案是:一种基于多尺度注意力的多传感器遥感影像融合分类方法,按如下步骤进行:
3、步骤1.建立并初始化用于多传感器遥感影像融合与分类的卷积神经网络nmsaf,所述nmsaf包含1个用于多尺度特征提取的子网络nfeature、1个用于多尺度特征融合的子网络nfusion和1个用于分类的子网络ncls;
4、步骤1.1建立并初始化子网络nfeature,含有8组卷积层,分别为conv1、conv2、conv1_1、conv2_1、conv1_2、conv2_2、conv1_3、conv2_3;
5、所述conv1包含1层卷积操作、1层batchnorm归一化操作和1层激活操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算;
6、所述conv2包含1层卷积操作、1层batchnorm归一化操作和1层激活操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算;
7、所述conv1_1包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
8、所述conv2_1包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
9、所述conv1_2包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
10、所述conv2_2包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
11、所述conv1_3包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
12、所述conv2_3包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层最大池化操作,其中,卷积层中卷积核的大小为3×3,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
13、步骤1.2.建立并初始化子网络nfusion,含有2组自定义模块,分别为lsa、lma;
14、所述lsa模块首先对输入的3组特征张量f1、f2和f3通过展平与线性变换得到3组新的特征张量fx_1、fx_2和fx_3,并将新的特征张量以第一个维度进行拼接,其中,cat(·,·,·)为拼接操作;
15、f=cat(fx_1,fx_2,fx_3)(1)将得到的融合特征f进行全局平均池化在空间上进行压缩:
16、favg=avgpool(f) (2)
17、将得到的特征favg通过全连接层fc(·)放缩成24个通道,使用relu函数进行激活,再通过另一个全连接层fc1(·)将通道数映射为3:
18、fout=fc1(relu(fc(favg))) (3)
19、使用softmax函数得到三个权值,其中fout_1、fout_2和fout_3是fout三个通道维度上的不同特征张量:
20、
21、将三个权值对应乘到三个不同尺度的特征上,得到最终的尺度注意力特征,其中,表示对应元素相乘:
22、
23、所述lma模块将输入的3组特征张量fz、fx、fy分别送入卷积层conv2_q1、卷积层conv2_k1和卷积层conv2_v1中,分别计算得到特征{qz,kz,vz}、qx,kx,vx}和{qy,ky,vy},其中,卷积层conv2_q1、卷积层conv2_k1和卷积层conv2_v1中卷积核的大小为1×1,每个卷积核以1个像素为步长进行卷积运算,根据公式(6)和公式(7)计算模态注意力权值;
24、ωhma=softmax(qzkzt)vx (6)
25、ωlma=softmax(qzkzt)vy (7)
26、将得到的权重矩阵分别优化不同模态的特征,其中,λ1和λ2为两个动态加权系数,初始化为0.5,之后通过网络的学习过程自动训练和更新:
27、fhj=fx·(λ1×ωhma) (8)
28、flj=fy·(λ2×ωlma) (9)最后,通过计算深度融合后的所有特征之和,得到最终的深层联合特征:
29、ff=fhj+flj (10)
30、步骤1.3建立并初始化子网络ncls,含有2组卷积层,为conv3、conv4,以及1组全连接层dense;
31、所述conv3包含1层卷积操作,卷积层中卷积核的大小为1×1,每个卷积核以1个像素为步长进行卷积运算;
32、所述conv4包含1层卷积操作、1层batchnorm归一化操作、1层激活操作和1层平均池化操作,其中,卷积层中卷积核的大小为1×1,每个卷积核以1个像素为步长进行卷积运算,并选用非线性激活函数relu作为激活函数进行运算,池化层以大小为2×2的池化核进行最大池化运算;
33、所述dense1有num个分类单元,并采取softmax作为激活函数,其中,num表示待分类的地物类别总数;
34、步骤2.输入高光谱影像的训练集h、lidar影像的训练集k、人工已标注的像元点坐标集和标签集,对nmsaf进行训练;
35、步骤2.1.根据人工已标注的像元点坐标集,在高光谱影像的训练集h中提取全部具有标签的像元点集合xh={xh,i|i=1,...,m},并在lidar影像的训练集l中提取全部具有标签的像元点集合xl={xl,i|i=1,...,m},其中,xh,i表示xh中的第i个像元点,xl,i表示xl中的第i个像元点,m表示具有标签的像元点总数;
36、步骤2.2.根据公式(9)和公式(10)的定义对xh和xl进行标准化处理,得到和其中,表示标准化后的具有标签的高光谱影像像元点集合,表示的第i个像元点,表示标准化后的具有标签的lidar像元点集合,表示的第i个像元点;
37、
38、
39、步骤2.3.以的每个像元点为中心将h分割成一系列大小为8×8、16×16、24×24的高光谱像元块集合并以的每个像元点为中心将l分割成一系列大小为8×8、16×16、24×24的lidar像元块集合
40、步骤2.4.将和作为融合分类神经网络的训练集,并将训练集中的样本整合为三元组的形式作为网络数据输入,其中,表示训练集中高光谱影像和lidar影像所组成的像元对,且和的空间坐标相同,yi表示和对应的真实类别标签,令迭代次数iter←1,执行步骤2.5至步骤2.8;
41、步骤2.5.采用子网络nfeature提取训练集的特征;
42、步骤2.5.1利用子网络nfeature中conv1层和conv1_1层对高光谱影像的训练集进行特征提取,得到高光谱影像的小尺度特征fh1;
43、步骤2.5.2利用子网络nfeature中conv1层和conv1_2层对高光谱影像的训练集进行特征提取,得到高光谱影像的中尺度特征fh2;
44、步骤2.5.3利用子网络nfeature中conv1层和conv1_3层对高光谱影像的训练集进行特征提取,得到高光谱影像的大尺度特征fh3;
45、步骤2.5.4利用子网络nfeature中conv2层和conv2_1层对lidar的训练集进行特征提取,得到lidar的小尺度特征fl1;
46、步骤2.5.5利用子网络nfusion中conv2层和conv2_2层对lidar的训练集进行特征提取,得到lidar的中尺度特征fl2;
47、步骤2.5.6利用子网络nfusion中conv2层和conv2_3层对lidar的训练集进行特征提取,得到lidar的大尺度特征fl3;
48、步骤2.6.采用子网络nfusion进行多尺度特征融合,进而得到深层特征fm;
49、步骤2.7采用子网络ncls对深层特征进行分类,计算得出分类预测结果trpred;
50、步骤2.8根据公式(13)和公式(14)的定义,将加权的交叉熵作为损失函数;
51、
52、
53、其中,ωj表示第j类的权重,表示像元属于第j类地物的概率,nj表示ground-truth训练样本中第j类地物的数量;
54、步骤2.9若训练集中的所有像元块均已处理完毕,则转入步骤2.10,否则,从训练集中取出一组未处理的像元块,返回步骤2.4;
55、步骤2.10令iter←iter+1,若迭代次数iter>total_iter,则得到了已训练好的卷积神经网络nmsaf,转入步骤3,否则,利用基于随机梯度下降法的反向误差传播算法和预测损失lω-c更新nmsaf的参数,转入步骤2.4重新处理训练集中的所有像元块,所述total_iter表示预设的迭代次数;
56、步骤3输入待测试的高光谱影像h'和lidar影像l',对h'和l'的全部像元进行数据预处理,并采用已完成训练的卷积神经网络nmsaf完成像元分类;
57、步骤3.1.在h'中提取全部像元点组成集合th={th,i|i=1,...,u},在l'中提取全部像元点组成集合tl={tl,i|i=1,...,u},其中,th,i表示th的第i个像元,tl,i表示tl的第i个像元,u表示全部像元的总数;
58、步骤3.2.根据公式(15)和公式(16)的定义对th和tl进行标准化处理,得到和其中,表示标准化后的具有标签的高光谱影像像元点集合,表示的第i个像元点,表示标准化后的具有标签的lidar像元点集合,表示的第i个像元点;
59、
60、
61、步骤3.3.以的每个像元点为中心将h'分割成一系列大小为8×8、16×16、24×24的高光谱像元块集合,组成高光谱影像测试集再并以的每个像元点为中心将l'分割成一系列大小为8×8、16×16、24×24的lidar像元块集合,组成lidar影像测试集
62、步骤3.4.采用子网络nfeature提取待测试的图像特征;
63、步骤3.4.1利用子网络nfeature中conv1层和conv1_1层对高光谱影像的测试集进行特征提取,得到高光谱影像的小尺度特征fh1';
64、步骤3.4.2利用子网络nfeature中conv1层和conv1_2层对高光谱影像的测试集进行特征提取,得到高光谱影像的中尺度特征fh2';
65、步骤3.4.3利用子网络nfeature中conv1层和conv1_3层对高光谱影像的测试集进行特征提取,得到高光谱影像的大尺度特征fh3';
66、步骤3.4.4利用子网络nfeature中conv2层和conv2_1层对lidar的测试集进行特征提取,得到lidar的小尺度特征fl1';
67、步骤3.4.5利用子网络nfeature中conv2层和conv2_2层对lidar的测试集进行特征提取,得到lidar的中尺度特征fl2';
68、步骤3.4.6利用子网络nfeature中conv2层和conv2_3层对lidar的测试集进行特征提取,得到lidar的大尺度特征fl3';
69、步骤3.5.采用子网络nfusion进行多尺度特征融合,进而得到深层特征fm';
70、步骤3.6采用子网络ncls对深层特征fm'进行分类,从而计算得出分类预测结果tepred。
71、与现有技术相比,本发明具有如下两个方面优点:第一,采用三个不同尺度的影像输入,提取到不同尺度的特征,通过尺度注意力来为不同尺度特征重新赋以合适的权值,有效克服了传统方法在特征提取上的不足;第二,考虑到高光谱影像和lidar数据的之间的相互依赖和互补,使用模态注意力模块对联合特征和高光谱影像与lidar特征进行深度融合,利用特征提取过程中获得的特征生成更鲁棒的特征,从而提高分类精度。因此,本发明具有融合质量好、分类精度高、多模态数据交互能力强的特点。实验结果表明,本发明在houston2013和trento两个数据集上的总体精度分别达到了90.56%和98.73%,平均精度分别为91.25%和98.12%,kappa系数分别为89.24%和98.30%,有效提高了地物的分类精度。
1.一种基于多尺度注意力的多传感器遥感影像融合分类方法,其特征在于按如下步骤进行:
