- 遥感图像是通过探测地物电磁辐射强度获得的 反映地表各种地物的综合影像,其包含着从可见光 到近红外的几百个窄波段内获取的地物图像,人们 根据典型影像特征,可判断感兴趣的特定遥感目标。 随着遥感技术的提高,遥感图像中目标地物轮廓会 更加清晰,纹理特征更加复杂,空间信息更加丰富。 遥感图像是监测地球表面的一种有效工具。 遥感图 像分类是对研究区地物类型在遥感图像上的各种统 计信息进行特征提取,充分利用获取的特征向量按 照规则对图像上像元进行划分归类,获取地物类型 信息。 遥感图像分类已被广泛用于对地探测及物理学、农业 、环境科学研究等。 遥感图 像包含着复杂的非线性特征,光谱信息之间既具有 互补性,又存在极大的冗余性,这使得遥感数据的处 理存在较大的复杂性,使得特征提取困难,对目标分 类等领域精度的提高有所限制。
遥感图像的传 统的分类方法有监督分类、非监督分类、半监督分类 等,常用的分类方法有神经网络分类、支持向量机分 类、随机森林分类、决策树分类等。 分析得出,支持 向量机等属于浅层结构模型,这些浅层结构模型 的共同点是对于原始的输入信号只经过较少层次的 线性或者非线性处理来达到信号与信息处理的目 的。 但是对于一些复杂的信号,采用浅层的结构模 型其表达能力具有一定的局限性,浅层模型输入和 输出中间是有限的线性或者非线性的变换组合,所以并不能充分的学习到信号中复杂的结构信息, 分类结果不理想,并且,在不做任何的人工特征提取 的条件下将所有的光谱波段作为分类器的输入,将 会出现由于数据高维度而产生的 Hughes 现象,分类 精度也会下降。 高光谱遥感图像数据结构复杂,采用浅层结构 模型对其进行分类具有局限性,从而采用深层结构 对高光谱遥感图像进行分类更为合理。 深度学习是 深度网络结构,是机器学习的一个分支,是通过建立 类似于人脑的分层模型结构,对输入数据逐级提取 底层到高层的特征,从而很好地建立底层信号到高 层语义的映射关系。 深度学习是深层次的神经 网络,能在有限的训练样本下获得较高的分类精 度[,因而在遥感图像分类中比传统神经网络更具 优势,分类效果更好。 目前,一些深度学习模型已经 被应用于遥感图像处理。 2014 年,Chen 针对高光谱 遥感图像非线性特性的特征提取,将栈式自编码网 络应用到高光谱遥感图像分类中 。2015 年,Zhao 等根据高光谱数据在光谱和空间变化下的数据特 性,将深度置信网络应用到高光谱数据的特征学习 和数据分类,有效地解决了由于数据结构复杂和样 本数目有限而引起的问题。Romero 等提出了一 种无监督的卷积神经网络算法,通过采用贪婪分层 无监督训练方式构建一个深度卷积神经网络模型, 并将其运用到遥感图像分析中。
卷积神经网络是深度学习在图像识别中比较常 用的模型,采用局部连接的方式实现特征提取和权 值共享,从而减少了参数的数量,降低运算的复杂 度,主要运用在图像处理领域。 在物体检测和识别 领域,卷积神经网络具有较高的识别率和广泛的实 用性 ,对于图像平移、局部变形和旋转具有不变 性,并且具有良好的容错性、并行处理能力以及 自学能力。 本文基于 Matlab 设计了一种卷积神经 网络,将其用于遥感图像进行特征提取和分类,并通 过实验验证了其可行性。
目前,大部分遥感图像分类方法都是基于浅层 结构,例如支持向量机和逻辑回归分类器(LR)都是 单层结构。 基于深度学习的分类方法包含着两 层或两层以上结构来提取有用的特征,这种设计类 似于模拟从视网膜到皮质的过程,这种深层的架构 在图像分类和目标识别领域中具有广阔的应用前景 。 卷积神经网络的结构与其他深度学习模 型不同,卷积神经网络具有局部连接和权值共享的 特点。 卷积神经网络使用局部连接的方式,能够有 效地提取空间信息,通过共享权值的方式减少参数 的数量。 卷积神经网络是一个多层的神经网络,基 本的网络结构可以分为四个部分:输入层,卷基层, 全连接层和输出层,本文采用的卷积神经网络结构,
输入层可以直接输入原始数据,本研究的输入 数据是经过辐射定标和大气校正的光谱图像,选取 训练样本并进行规则化,保证样本的尺寸统一为 3@ 32 × 32,即每个样本的大小为 32 × 32,包含 3 个 波段。 卷积层是提取样本特征的过程,也叫做特征提 取层,包括卷积和池化两个过程。 卷积的主要作用 是提取输入数据特征,每一个不同的卷积核提取的 特征都不同,卷积核数量越多,提取到的特征越多。 假设有二维离散函数 f(x,y), g(x,y), 那么它们的 卷积定义为 ,
实际上等价于图像和卷积核的卷积操作,即输 入图像与可训练的卷积核进行卷积,然后加一个偏 置,输入到神经元的激活函数,得到卷积输出层。 为 了在保留有用信息的基础上减少运算数量,加快网 络的训练速度,卷积神经网络在卷积过程后面连接 一个池化过程的方式来减少数据量。 池化是根据图 像相对不变的属性,对图像相邻区域的特征信息进 行聚合统计。 池化过程不仅能减小卷积提取的数据 特征维度,同时还能降低网络的拟合过程,改善网络 性能。 每一个池化操作对应的都是前一次的卷积操 作,池化操作中的每个神经元对应卷积中的每一个 N × 1 位置。本研究使用的是最大池化方法,基本原 理是选图像区域的最大值作为该区域池化后的值。
全连接层是多层感知机的隐含层部分。 通常情 况下,后面层的神经元节点都和前一层的每个神经 元节点连接,同一层的神经元节点之间是没有连接 的。 每一层的神经元节点分别通过连接线上的权值 进行前向传播,加权组合得到下一层神经元节点的 输入[28] 。 卷积神经网络的输出层通常是一个分类器,输 出层神经元节点的数目根据具体分类任务来确定 的。 本研究采用的分类器是 SoftMax 分类器,SoftMax 分类器是以多项式分布为模型建模,输出结果 的同时可以根据输出结果转换为分类概率值,适合 对多种互斥的类别进行分类。
光谱传感器提供了详细的光谱信息,提高了区 分各类地物的准确率和分类精度。 此外,随着光谱 技术的进步,光谱传感器提供更为精细的空间分辨 率,为分析图像中的小空间结构提供依据。 为研 究这些空间结构,特征提取是关键的一部分。 2009 年,Plaza 提出基于光谱信息的特征提取系统,随 着成像技术的发展,光谱传感器可以提供更加丰富 的空间 信 息, 促 进 了 遥 感 图 像 分 类 的 发 展 。Tarabalk 发现基于光谱—空间的特征提取方法极大 地改善了分类算法的性能。由于卷积神经网络 结构对图像的各种形式的变形具有高度不变性,因而将卷积神经网络用于遥感图像光谱—空间的特征 提取,不仅能降低因图像变形而引起的误差,同时还 减少了特征提取的时间。 卷积神经网络模型通过不断地反馈调节以调到 最优状态,模型中可以调节的参数有学习率、迭代次 数、卷积层数等。 模型利用 SoftMax 分类器进行分 类,在数据处理过程中,确定学习率为 0. 005,卷积 层数为 3 层。 为减少模型的处理时间,在模型训练 之前,将数据归一化到[ - 1,1]之间。 图 2 用折线图直观地显示了在不同的迭代次数 下图像分类精度的变化情况,最终选取迭代次数为 70 次,作为最佳迭代次数。 由此我们可以得知,迭 代次数的增加在一定的范围内可以提高分类精度, 但超过一定的范围则会导致分类精度的下降,
特征提取在卷积神经网络中是关键的一部分, 按照不同的权重将特征提取出来,通过灰度图可视 化的方式显示。 每一个卷积核可以提取输入信号的 特征,本研究采用的数据大小为 32 × 32,采用 5 × 5 的卷积核,下面以水田特征提取为例,经过数据预处 理后输入卷积网络的水田样本图如图 3 所示。 经过 32 个 5 × 5 卷积核,即提取 32 个特征,得 到第一层卷积后得到的特征提取图如图 4 所示,由 于卷积神经网络模型自身的特点,经过卷积层特征 提取之后,样本图像边缘有虚化现象。
(1)训练样本也称训练区,是指分析者在遥感图像上确定出来的各种地物类型的典型分布区,是监督分类的关键。
(2)训练样本的来源可以是:①实地采集,即通过全球定位系统(GPS)定位,实地记录的样本。②屏幕选择,即在屏幕上数字化每一类别中有代表性的像元或区域,或用户指定一个中心像元后,由机器自动评价并选择与其相似的周边像元。
(3)训练样本选择的一般要求:①样本所含类型应与所区分的类别一致。②训练样本应具有典型性,即同一类别的训练样本是均质的。③训练样本的数量应满足建立判别函数的要求。
(4)训练样本的评价:计算各类别训练样本的光谱特征信息,并通过每个样本的基本统计值(如均值、标准方差、最大值、最小值、方差、协方差矩阵、相关矩阵等),判断样本是否具有典型性和代表性。
(1)多级切割法:又称平行算法,是根据各类别所有训练样本的亮度值范围在多维特征空间中生成对应的特征子空间。像元的类别归属取决于它落入哪个类别的特征子空间。
多级切割算法简明、直观、运算速度快,能将大多数像元划分到一个类别中。
(2)最小距离法:以特征空间中的距离作为分类的依据,根据各像元到训练样本平均值距离的大小来决定其类别。距离有:①绝对值距离;②欧氏距离;③马氏距离。
(3)最近邻域法:算法规则与最小距离分类法相似,都使用距离的远近作为类别归属的依据,只是不使用均值。常见的最近邻域分类法有最近邻分类法和K-最近邻分类法。
(4)最大似然法:判别规则是基于概率的,它首先计算待分类像元对于已知各类别的似然度,然后把该像元分到似然度最大的一类中。
(5)光谱角分类法:也称光谱角填图,是一种光谱匹配技术,它通过估计像元光谱与样本或混合像元中端元成分光谱的相似性来进行分类。
function varargout = main(varargin)
% MAIN MATLAB code for main.fig
% MAIN, by itself, creates a new MAIN or raises the existing
% singleton*.
%
% H = MAIN returns the handle to a new MAIN or the handle to
% the existing singleton*.
%
% MAIN('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in MAIN.M with the given input arguments.
%
% MAIN('Property','Value',...) creates a new MAIN or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before main_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to main_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help main
% Last Modified by GUIDE v2.5 14-Apr-2022 22:27:41
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_OpeningFcn, ...
'gui_OutputFcn', @main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before main is made visible.
function main_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to main (see VARARGIN)
% Choose default command line output for main
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
cla reset;
box on;
set(handles.axes1,'xtick',[]);
set(handles.axes1,'ytick',[]);
cla reset;
box on; %在坐标轴四周加上边框
set(handles.axes2,'xtick',[]);
set(handles.axes2,'ytick',[]);
box on; %在坐标轴四周加上边框
cla reset;
set(handles.axes3,'xtick',[]);
set(handles.axes3,'ytick',[]);
set(handles.edit1,'string','');
set(handles.edit2,'string','');
% UIWAIT makes main wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = main_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global filepath
filepath = uigetdir('*.*','请选择文件夹');%fliepath为文件夹路径
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global filepath
if filepath==0|isequal(filepath,0)|~exist(filepath,'dir')
warndlg('文件夹不存在,请重新选择!','warning');
return;
end
参考文献
【1】吴正文.卷积神经网络在图像分类中的应用研究:成都,2015.26-34.
【2】姜小光. 成像光谱数据的光谱信息特点 及最佳波段选择.干旱区地理, 2000,23(3):
本研究探讨了目前遥感影像分类的研究现状, 指出深度学习是遥感图像分类的主流趋势。 设计了 一种卷积神经网络模型,并将该模型应用到遥感影 像中,以水田样本为例,对该模型提取地物特征进行 分析,结果表明不同的卷积核能提取到不同的特征。 对 Landsat TM5 富锦市遥感影像进行了分类实验及 精度评价,总体精度明显高于支持向量机分类算法, 卷积神经网络在遥感影像分类中的可行性,但是由 于卷积神经网络的网络性质以及参数的选择,导致 线条特征提取不明显,分类边界不够细腻,影响图像 分类效果。
遥感影像智能识别与监测系统(OneDataPro ImagesAI)是一款自主可控的深度学习遥感影像解译软件,支持LIUNX和WINDOWS跨平台运行,实现GPU集群高效并行处理,系统界面简洁,操作便捷。该系统涵盖影像预处理、样本集制作、深度学习模型训练、影像分类识别、分类图标后处理与精度评价、变化监测工具箱等模块,能够实现遥感影像样本集制作、模型训练、智能分类及变化监测等功能,房屋建筑、道路、植被、水体、云雪等典型地物要素的智能识别与提取精度在90%以上。