CN110516727B - 基于fpga深度边缘滤波器的高光谱图像分类方法 - Google Patents
基于fpga深度边缘滤波器的高光谱图像分类方法 Download PDFInfo
- Publication number
- CN110516727B CN110516727B CN201910766635.5A CN201910766635A CN110516727B CN 110516727 B CN110516727 B CN 110516727B CN 201910766635 A CN201910766635 A CN 201910766635A CN 110516727 B CN110516727 B CN 110516727B
- Authority
- CN
- China
- Prior art keywords
- hyperspectral image
- image
- hyperspectral
- matrix
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种基于FPGA深度边缘滤波器的高光谱图像分类方法,主要解决现有技术中高光谱图像分类速度慢、功耗高和分类精度低的问题。本发明具体步骤如下:1)输入待分类高光谱图像;2)对待分类高光谱图像进行预处理;3)对预处理后的高光谱图像进行降维操作;4)用深度边缘滤波器进行深度边缘滤波;5)生成训练集和测试集;6)构建高光谱图像分类网络;7)训练高光谱图像分类网络;8)对测试集进行分类。本发明采用深度边缘滤波器,并利用现场可编程门阵列FPGA和OpenCL异构计算框架对测试集进行分类,具有针对高光谱图像分类问题速度快、功耗低和精度高的优点。
Description
技术领域
本发明属于图像处理技术领域,更进一步涉及高光谱图像分类技术领域中的一种基于现场可编程门阵列FPGA(Field-Programmable Gate Array)深度边缘滤波器的高光谱图像分类方法。本发明可用于对高光谱图像中的地物目标进行分类和资源勘探、森林覆盖、灾害监测等领域的地物目标识别。
背景技术
高光谱图像集样本的图像信息与光谱信息于一身,具有波段数多、蕴含信息丰富、光谱分辨率高等特点,高光谱图像包含的信息可以反映样本的大小、形状、体积等外部特征,这些特点决定了高光谱图像在一些需要进行内外部特征检测的任务中独特优势。然而,随着高光谱成像技术的进一步发展和应用程度的不断深入,高光谱图像分类领域依然存在以下一些问题,如高光谱图像蕴含的丰富信息使得对高光谱图像进行表示时占用很大的数据量,这也使得深度学习模型较为复杂,模型在训练过程以及测试过程中速度较慢,且功耗较高。因此,在深度学习中对高性能方法的研究仍然是一个热点。
国网四川省电力公司电力科学研究院在其申请的专利文献“一种高光谱图像分类方法”(专利申请号:201910074026.3,公开号:109816018A)中提出了一种高光谱图像分类方法。该方法首先使用主成分分析算法提取高光谱图像的第一主成分,并作为训练标签,然后将训练标签和高光谱图像原始数据输入卷积神经网络,获取重构数据,最后使用优化的极限学习机算法对重构数据进行分类,获取高光谱图像的分类图。该方法存在的不足之处是,由于该方法使用主成分分析算法提取高光谱图像的第一主成分作为训练标签,所以该方法属于无监督分类学习方法,待分类的高光谱图像没有对应的真实地物分类图,只能依靠待分类高光谱图像中包含的信息对地物进行分类,使得高光谱图像分类准确率偏低。
西安电子科技大学在其申请的专利文献“基于NSCT变换和DCNN的高光谱图像分类方法”(专利申请号:201710449741.9,公开号:107316013A)中提出了一种基于NSCT变换和DCNN的高光谱图像分类方法。该方法首先对待分类的高光谱图像进行PCA降维操作,然后对降维后保留的主分量分别进行三级NSCT变换,保留高频子带系数矩阵,并进行叠加得到立方块,以立方块中每个像素点为中心切成5×5的块生成样本集,最后由样本集生成训练数据集并将训练数据集输入7层的深度卷积神经网络中进行地物的分类。深度卷积神经网络是一种基于像素级的分类网络,可以实现端到端的分类效果。该方法存在的不足之处是,如果深度卷积网络的层数较深,那么模型的参数量就较多,所需要的样本数量自然也比较大,所以模型训练的时间长,对高光谱图像进行分类的速度慢,且功耗较高。
发明内容
本发明的目的是针对上述现有技术的不足,提出了一种基于FPGA深度边缘滤波器的高光谱图像分类方法,本发明利用深度边缘滤波器对高光谱图像进行处理,利用FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,解决了现有技术中高光谱图像分类速度慢、功耗高、精度低的问题。
实现本发明目的的技术思路是:先输入待分类的高光谱图像,对待分类高光谱图像进行预处理,得到预处理后的高光谱图像,对预处理后的高光谱图像进行降维操作,生成引导图像I和高光谱图像P,对高光谱图像P进行深度边缘滤波操作生成高光谱图像Q,对高光谱图像P和Q进行处理生成训练集和测试集,搭建高光谱图像分类网络并设置每层参数,利用训练集训练高光谱图像分类网络,再将测试集输入到训练好的高光谱图像分类网络中,利用FPGA和OpenCL异构计算框架对测试集进行分类,得到分类结果。
本发明的具体步骤如下:
步骤1,输入待分类高光谱图像:
输入一张高宽光谱维尺寸为601×2384×50像素点的待分类高光谱图像,每个像素点属于一种类别的地物,所有像素点的类别总数为21;
步骤2,对待分类高光谱图像进行预处理:
将待分类高光谱图像中像素值大于255的像素点的值设置为0,将像素值在[0,255]范围内的所有的像素点,组成去除异常样本点后的高光谱图像;
在[0,1]之间对去除异常样本点后的高光谱图像中的每个像素值进行归一化操作,得到归一化后的高光谱图像;
对归一化后的高光谱图像进行双线性插值操作,得到尺寸为1202×4768×50的高光谱图像;
步骤3,对预处理后的高光谱图像进行降维操作:
利用主成分分析方法,对预处理后的高光谱图像矩阵进行降维,将第1主成分作为引导图像I;
在预处理后的高光谱图像中任取其中的32个光谱分量得到光谱维度为32的高光谱图像P;
步骤4,用深度边缘滤波器进行深度边缘滤波:
将深度边缘滤波器的滤波半径设置为3,提取高光谱图像P的每个光谱分量为被引导图像;
利用引导图像I对每个被引导图像进行深度边缘滤波操作,得到每个深度边缘滤波后的光谱分量;
将所有深度边缘滤波后的光谱分量组成高光谱图像Q;
步骤5,生成训练集和测试集:
将高光谱图像P和高光谱图像Q中相同空间坐标位置的64个像素值组成8×8的二维矩阵,二维矩阵的类别为待分类高光谱图像中相同空间坐标位置的像素值,高光谱图像P中的其他空间坐标位置做相同的处理,将所有的二维矩阵组成样本集;
从样本集的每一类别中选取2000个二维矩阵,去除其中第0类背景二维矩阵,共选取了40000个二维矩阵,将所有二维矩阵组成高光谱图像分类网络的训练集;
去除样本集中第0类背景二维矩阵,将样本集中所有二维矩阵组成高光谱图像分类网络的测试集;
步骤6,构建高光谱图像分类网络:
搭建一个6层的高光谱图像分类网络,其结构依次为:输入层→第1卷积层→第1最大池化层→第2卷积层→第3卷积层→平均池化层→分类层;
设置高光谱图像分类网络各层参数如下:
将输入层特征映射图总数设置为1个;
将第1卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1;
将第2卷积层的特征映射图总数设置为64,卷积核大小设置为1×1,卷积步长设置为1;
将第3卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1;
将第1最大池化层的下采样滤波器的尺寸均设置为2×2,滤波步长均设置为2;
步骤7,训练高光谱图像分类网络:
将训练集输入到高光谱图像分类网络中,利用梯度下降法,不断更新优化高光谱图像分类网络的参数,直到网络损失函数的值小于0.3,得到训练好的高光谱图像分类网络;
步骤8,对测试集进行分类:
将测试集输入到训练好的高光谱图像分类网络中,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,得到分类结果。
本发明与现有技术相比较,具有以下优点:
第一,由于本发明在对光谱维度为32的高光谱图像P进行处理时,利用深度边缘滤波器对高光谱图像P进行深度边缘滤波,保留了高光谱图像P中的边缘细节信息以及纹理细节信息,克服了现有技术中高光谱图像分类边缘不清晰以及准确率偏低的问题,使得本发明提高了高光谱图像的分类精度。
第二,由于本发明在对训练好的高光谱图像分类网络进行测试时,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,克服了现有技术中高光谱图像分类的速度慢,功耗较高的问题,使得本发明提高了高光谱图像的分类速度,降低了高光谱图像的分类功耗。
附图说明
图1是本发明的流程图;
图2是本发明的仿真图。
具体实施方式
下面结合附图对本发明做进一步的详细描述
参照附图1,对本发明的具体步骤做进一步的详细描述。
步骤1.输入待分类高光谱图像。
输入一张高宽光谱维尺寸为601×2384×50像素点的待分类高光谱图像,每个像素点属于一种类别的地物,所有像素点的类别总数为21。
待分类高光谱图像对应的真实地物分类图的高宽光谱维尺寸为601×2384×1像素点,真实地物分类图中所有像素点的像素值均是[0,20]之间的整数,像素值表示此像素点的类别。
步骤2.对待分类高光谱图像进行预处理。
将待分类高光谱图像中像素值大于255的像素点的值设置为0,将像素值在[0,255]范围内的所有的像素点,组成去除异常样本点后的高光谱图像。
在[0,1]之间对去除异常样本点后的高光谱图像中的每个像素值进行归一化操作,得到归一化后的高光谱图像。
所述归一化操作的具体步骤如下:
第1步,分别求出高光谱图像中每一通道的最大值和最小值。
第2步,高光谱图像中每一通道的所有元素均减去该通道像素最小值,再除以该通道像素最大值减像素最小值,得到归一化后的高光谱图像。
对归一化后的高光谱图像进行双线性插值操作,得到尺寸为1202×4768×50的高光谱图像。
所述双线性插值操作的具体步骤如下:
第1步,高光谱图像进行双线性插值操作前称为源图像,经过双线性插值操作后称为目标图像,求出源图像和目标图像的高度比和宽度比都是0.5。
第2步,对目标图像中的每个通道,将该通道中每个像素坐标值乘上0.5,得到在源图像对应通道中的坐标,求出该通道中距离此坐标最近的源图像中的四个像素点。
第3步,将四个最近像素点的像素值以不同的权重,组合成目标图像中像素点的像素值。
步骤3.对预处理后的高光谱图像进行降维操作。
利用主成分分析方法,对预处理后的高光谱图像矩阵进行降维,将第1主成分作为引导图像I。
所述主成分分析方法的具体步骤如下:
第1步,将高光谱图像矩阵中每个像素点的50维光谱通道,展开成一个1×50的特征矩阵。
第2步,对特征矩阵中的元素按列求平均值,用特征矩阵中的每个元素分别减去该特征矩阵其对应列的均值。
第3步,对特征矩阵中每两列元素求协方差,构造特征矩阵的协方差矩阵。
第4步,利用协方差矩阵的特征方程,求得与特征向量一一对应的所有协方差矩阵的特征值。
第5步,将所有特征值按照从大到小排序,从排序中选择第一个特征值,此特征值对应的特征向量即为特征向量矩阵。
第6步,将高光谱图像矩阵投影到选取的特征向量矩阵上,得到降维后的特征矩阵。
在预处理后的高光谱图像中任取其中的32个光谱分量得到光谱维度为32的高光谱图像P。
步骤4.用深度边缘滤波器进行深度边缘滤波。
将深度边缘滤波器的滤波半径设置为3,提取高光谱图像P的每个光谱分量为被引导图像。
利用引导图像I对每个被引导图像进行深度边缘滤波操作,得到每个深度边缘滤波后的光谱分量。
所述深度边缘滤波操作的具体步骤如下:
第1步,计算每个滤波窗口中待滤波图像的均值meanP、引导图像的均值meanI、引导图像的自相关均值corrI、待滤波图像和引导图像的互相关均值corrIP。
第2步,按照下式,计算每个滤波窗口中引导图像的自相关协方差、待滤波图像和引导图像的互相关协方差:
varI=corrI-meanI×meanI
covIP=corrIP-meanI×meanP
其中,varI表示引导图像的自相关协方差,covIP表示待滤波图像和引导图像的互相关协方差。
第3步,按照下式,计算每个滤波窗口的线性变换参数系数a和b:
a=covIP/(varI+ε)
b=meanP-a×meanI
其中ε是调节滤波器滤波效果的重要参数,可用于防止求得的a过大。
第4步,计算所有滤波窗口参数a的均值meana,参数b的均值meanb。
第5步,按照下式,计算滤波后的输出图像:
Q=meana×I+meanb
其中,Q表示滤波后的输出图像,I表示利用主成分分析方法,对预处理后的高光谱图像矩阵进行降维,由第1主成分表示的引导图像。
将所有深度边缘滤波后的光谱分量组成高光谱图像Q。
步骤5.生成训练集和测试集。
将高光谱图像P和高光谱图像Q中相同空间坐标位置的64个像素值组成8×8的二维矩阵,二维矩阵的类别为待分类高光谱图像中相同空间坐标位置的像素值,高光谱图像P中的其他空间坐标位置做相同的处理,将所有的二维矩阵组成样本集。
所述将高光谱图像P和高光谱图像Q中相同空间坐标位置的64个像素值组成8×8的二维矩阵的具体步骤如下:
第1步,提取光谱维度为32的高光谱图像P中相同空间坐标位置的32个像素值,将光谱维中1至8光谱维的像素值组成8×8二维矩阵中的第1行,9至16光谱维的像素值组成8×8二维矩阵中的第2行,17至24光谱维的像素值组成8×8二维矩阵中的第3行,25至32光谱维的像素值组成8×8二维矩阵中的第4行。
第2步,提取高光谱图像Q中和高光谱图像P中相同空间坐标位置的32个像素值,将光谱维中1至8光谱维的像素值组成8×8二维矩阵中的第5行,9至16光谱维的像素值组成8×8二维矩阵中的第6行,17至24光谱维的像素值组成8×8二维矩阵中的第7行,25至32光谱维的像素值组成8×8二维矩阵中的第8行。
从样本集的每一类别中选取2000个二维矩阵,去除其中第0类背景二维矩阵,共选取了40000个二维矩阵,将所有二维矩阵组成高光谱图像分类网络的训练集。
去除样本集中第0类背景二维矩阵,将样本集中所有二维矩阵组成高光谱图像分类网络的测试集。
步骤6.构建高光谱图像分类网络。
搭建一个6层的高光谱图像分类网络,其结构依次为:输入层→第1卷积层→第1最大池化层→第2卷积层→第3卷积层→平均池化层→分类层。
设置高光谱图像分类网络各层参数如下:
将输入层特征映射图总数设置为1个。
将第1卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1。
将第2卷积层的特征映射图总数设置为64,卷积核大小设置为1×1,卷积步长设置为1。
将第3卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1。
将第1最大池化层的下采样滤波器的尺寸均设置为2×2,滤波步长均设置为2。
步骤7.训练高光谱图像分类网络。
将训练集输入到高光谱图像分类网络中,利用梯度下降法,不断更新优化高光谱图像分类网络的参数,直到网络损失函数的值小于0.3,得到训练好的高光谱图像分类网络。
所述梯度下降法的具体步骤如下:
第1步,计算损失函数对高光谱图像分类网络中每个参数的偏导数值。
第2步,按照下式,对高光谱图像分类网络中的每个参数进行更新:
步骤8.对测试集进行分类。
将测试集输入到训练好的高光谱图像分类网络中,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,得到分类结果。
由于现场可编程门阵列FPGA属于专用集成电路中的一种半定制电路,既解决了全定制集成电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点,本发明利用现场可编程门阵列对训练好的高光谱图像分类网络进行测试时,在两者中取得了权衡,很好的兼顾了专用集成电路的处理速度和控制能力。
现场可编程门阵列FPGA的工作空间被划分为多个工作组,而一个工作组又可被细分为多个工作节点,工作节点是FPGA进行并行加速计算的最小单位,在并行加速计算时,参与并行加速计算的工作节点同时进行高光谱图像的分类任务,以此达到高光谱图像分类时速度快和功耗低的特点。
由于OpenCL是一个异构平台编写程序的框架,OpenCL和CUDA在进行并行加速计算时的工作方式类似,但是CUDA只适用于NVIDIA的显卡,OpenCL的通用性很好,可以适用多种类型的显卡,并且也可以像CUDA一样实现一些复杂计算的异构并行运算。
一个完整的OpenCL程序包括宿主机程序和内核程序,其中宿主机程序是在宿主机(CPU)上运行的,内核程序是在FPGA上运行的,宿主机程序是由宿主机函数组成的,内核程序是由内核函数组成的,一个需要进行并行运算的功能的实现可以用一个内核函数来进行编写,并且一个内核函数对应一个宿主机函数。本发明高光谱图像分类网络中每一层功能的实现均由OpenCL内核函数完成,OpenCL内核函数的运行是在FPGA的工作节点上进行的,在并行加速计算时,参与并行加速计算的工作节点利用同一个OpenCL内核函数运行不同的数据,以此达到高光谱图像分类时速度快和功耗低的优点。
以下结合仿真试验,对本发明的效果作进一步说明:
1.仿真条件:
本发明的仿真实验的硬件平台为:
CPU:Intel Core i7-7700CPU@3.60GHz×8,内存为64G,操作系统为Ubuntu16.04。
GPU:显卡为GTX1060,操作系统为Ubuntu16.04,异构计算框架为CUDA。
FPGA:型号为a10gx,功耗为30w,操作系统为Centos 7.0,异构计算框架为OpenCL。
本发明的仿真实验的软件平台为:Darknet。
2.仿真内容与结果分析:
本发明的仿真实验是采用本发明中的深度边缘滤波方法对降维后光谱维度为32的高光谱图像进行滤波处理,再经过一系列处理生成训练集和测试集,将训练集输入到构建的高光谱图像分类网络进行训练,得到训练好的高光谱图像分类网络,最后将测试集输入到训练好的高光谱图像分类网络中,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,得到分类结果,如图2所示。
图2(a)是本发明的仿真实验的深度边缘滤波前的高光谱图像的可视化图,该图是采用本发明的预处理方法对“IEEE IGARSS 2017”竞赛中高光谱图像分类赛道训练集提供的高光谱图像进行预处理,得到预处理后的高光谱图像,对预处理后的高光谱图像进行可视化操作,得到深度边缘滤波前的高光谱图像的可视化图。所述“IEEE IGARSS 2018”高光谱图像分类赛道是国际电气与电子工程师协会IEEE(Institute of Electrical andElectronics Engineers)在2018年举办的关于高光谱图像处理竞赛中的一个赛道。
图2(b)是本发明的仿真实验的预处理后的高光谱图像对应的真实地物分类图,取自“IEEE IGARSS 2018”竞赛中高光谱图像分类赛道的训练集。图2(b)中灰度值为0的区域表示第0类背景区域,灰度值为1的区域表示第1类健康草区域,灰度值为2的区域表示第2类被压草区域,灰度值为3的区域表示第3类人造草坪区域,灰度值为4的区域表示第4类常绿乔木区域,灰度值为5的区域表示第5类落叶乔木区域,灰度值为6的区域表示第6类裸土区域,灰度值为7的区域表示第7类水区域,灰度值为8的区域表示第8类住宅楼宇区域,灰度值为9的区域表示第9类非住宅楼宇区域,灰度值为10的区域表示第10类道路区域,灰度值为11的区域表示第11类人行道区域,灰度值为12的区域表示第12类人行横道区域,灰度值为13的区域表示第13类主街道区域,灰度值为14的区域表示第14类公路区域,灰度值为15的区域表示第15类铁路区域,灰度值为16的区域表示第16类铺砌的停车场区域,灰度值为17的区域表示第17类未铺砌的停车场区域,灰度值为18的区域表示第18类小汽车区域,灰度值为19的区域表示第19类火车区域,灰度值为20的区域表示第20类体育场区域。
本发明的仿真实验的高光谱图像分类网络是采用本发明方法构建的一个6层的高光谱图像分类网络,并采用本发明的网络训练方法对高光谱图像分类网络进行训练,得到训练好的高光谱图像分类网络,仿真实验的测试集是采用本发明的生成测试集的方法,对预处理后的高光谱图像进行降维,再经过深度边缘滤波等一系列处理生成。
图2(c)是本发明的仿真实验的分类结果图,该图是将测试集输入仿真实验中训练好的高光谱图像分类网络中,分别在中央处理器CPU、图形处理器GPU和现场可编程门阵列FPGA三个硬件平台上对测试集中二维矩阵进行分类,得到高光谱图像的分类结果图。
通过对比真实地物分类图2(b)与本发明的分类结果图2(c),可以看出:本发明方法分类结果较好,分类结果的区域一致性较好,不同类别之间的边缘也非常清晰,且保持了细节信息。本发明利用深度边缘滤波器对高光谱图像进行处理,充分考虑高光谱图像的边缘细节信息和纹理细节信息,同时利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,实现快速低功耗且高精度的高光谱图像分类。
表1测试结果统计表
本发明测试集的测试结果如表1所示。本发明的仿真实验利用测试集在三个平台上进行测试,得到测试集中每个二维矩阵的分类结果,对测试集中所有二维矩阵的分类结果进行统计,并用表1中第2行至第21行和第2列至第21列之间区域的数据表示。表1中第2行至第21行和第2列至第21列之间区域代表的矩阵为R,R是一个n行n列的矩阵,n为需要进行分类的类别总数,R中的每一行为样本的真实类别,每一行的数据总数为该类别的真实样本总数,R中的每一列为样本的预测类别,每一列的数据总数为预测成该类别的样本总数,R中对角线位置的数据为某一类别正确分类的样本个数,R中所有位置的数据总和为所有类别样本总数。在表1中,class_i(0<i<21)表示第i类,类别总数为20,sum表示一行或一列的样本总数,灰色标记的数据为每一类样本被正确分类的数量。
本发明的仿真实验的测试结果用Kappa系数进行评价,Kappa系数是一种衡量分类精度的指标,可以用于一致性检验,也可以用于衡量分类精度,Kappa系数可以根据表1中的统计数据计算,计算公式如下:
其中,po是R中对角线上所有正确分类的样本数量之和除以所有类别样本总数,也就是总体分类精度,pe是对于所有类别中的每一类,先求出其真实样本总数与被预测为此类的样本总数的乘积,再将每一类的乘积进行相加,最后除以样本总数的平方。
根据表1,计算出po为0.95599,pe为0.22626,Kappa系数为0.94312,可知利用本发明方法进行的仿真实验得到了很好的高光谱图像分类效果。
表2各平台测试性能一览表
本发明在三个硬件平台上进行测试的性能对比如表2所示,表2给出了各个平台的功率,测试时间以及测试时的功耗,可知利用FPGA在OpenCL异构计算平台上对测试集进行分类时速度更快、功耗更小。
Claims (7)
1.一种基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,利用深度边缘滤波器对高光谱图像进行处理,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试;该方法具体步骤包括如下:
步骤1,输入待分类高光谱图像:
输入一张高宽光谱维尺寸为601×2384×50像素点的待分类高光谱图像,每个像素点属于一种类别的地物,所有像素点的类别总数为21;
步骤2,对待分类高光谱图像进行预处理:
将待分类高光谱图像中像素值大于255的像素点的值设置为0,将像素值在[0,255]范围内的所有的像素点,组成去除异常样本点后的高光谱图像;
在[0,1]之间对去除异常样本点后的高光谱图像中的每个像素值进行归一化操作,得到归一化后的高光谱图像;
对归一化后的高光谱图像进行双线性插值操作,得到尺寸为1202×4768×50的高光谱图像;
步骤3,对预处理后的高光谱图像进行降维操作:
利用主成分分析方法,对预处理后的高光谱图像矩阵进行降维,将第1主成分作为引导图像I;
在预处理后的高光谱图像中任取其中的32个光谱分量得到光谱维度为32的高光谱图像P;
步骤4,用深度边缘滤波器进行深度边缘滤波:
将深度边缘滤波器的滤波半径设置为3,提取高光谱图像P的每个光谱分量为被引导图像;
利用引导图像I对每个被引导图像进行深度边缘滤波操作,得到每个深度边缘滤波后的光谱分量;
将所有深度边缘滤波后的光谱分量组成高光谱图像Q;
步骤5,生成训练集和测试集:
将高光谱图像P和高光谱图像Q中相同空间坐标位置的64个像素值组成8×8的二维矩阵,二维矩阵的类别为待分类高光谱图像中相同空间坐标位置的像素值,高光谱图像P中的其他空间坐标位置做相同的处理,将所有的二维矩阵组成样本集;
从样本集的每一类别中选取2000个二维矩阵,去除其中第0类背景二维矩阵,共选取了40000个二维矩阵,将所有二维矩阵组成高光谱图像分类网络的训练集;
去除样本集中第0类背景二维矩阵,将样本集中所有二维矩阵组成高光谱图像分类网络的测试集;
步骤6,构建高光谱图像分类网络:
搭建一个6层的高光谱图像分类网络,其结构依次为:输入层→第1卷积层→第1最大池化层→第2卷积层→第3卷积层→平均池化层→分类层;
设置高光谱图像分类网络各层参数如下:
将输入层特征映射图总数设置为1个;
将第1卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1;
将第2卷积层的特征映射图总数设置为64,卷积核大小设置为1×1,卷积步长设置为1;
将第3卷积层的特征映射图总数设置为32,卷积核大小设置为3×3,卷积步长设置为1;
将第1最大池化层的下采样滤波器的尺寸均设置为2×2,滤波步长均设置为2;
步骤7,训练高光谱图像分类网络:
将训练集输入到高光谱图像分类网络中,利用梯度下降法,不断更新优化高光谱图像分类网络的参数,直到网络损失函数的值小于0.3,得到训练好的高光谱图像分类网络;
步骤8,对测试集进行分类:
将测试集输入到训练好的高光谱图像分类网络中,利用现场可编程门阵列FPGA和OpenCL异构计算框架,对训练好的高光谱图像分类网络进行测试,得到分类结果。
2.根据权利要求1所述的基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,步骤2中所述归一化操作的具体步骤如下:
第一步,分别求出高光谱图像中每一通道的最大值和最小值;
第二步,高光谱图像中每一通道的所有元素均减去该通道像素最小值,再除以该通道像素最大值减像素最小值,得到归一化后的高光谱图像。
3.根据权利要求1所述的基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,步骤2中所述双线性插值操作的具体步骤如下:
第一步,高光谱图像进行双线性插值操作前称为源图像,经过双线性插值操作后称为目标图像,求出源图像和目标图像的高度比和宽度比都是0.5;
第二步,对目标图像中的每个通道,将该通道中每个像素坐标值乘上0.5,得到在源图像对应通道中的坐标,求出该通道中距离此坐标最近的源图像中的四个像素点;
第三步,将四个最近像素点的像素值以不同的权重,组合成目标图像中像素点的像素值。
4.根据权利要求1所述的基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,步骤3中所述主成分分析方法的具体步骤如下:
第一步,将高光谱图像矩阵中每个像素点的50维光谱通道,展开成一个1×50的特征矩阵;
第二步,对特征矩阵中的元素按列求平均值,用特征矩阵中的每个元素分别减去该特征矩阵其对应列的均值;
第三步,对特征矩阵中每两列元素求协方差,构造特征矩阵的协方差矩阵;
第四步,利用协方差矩阵的特征方程,求得与特征向量一一对应的所有协方差矩阵的特征值;
第五步,将所有特征值按照从大到小排序,从排序中选择第一个特征值,此特征值对应的特征向量即为特征向量矩阵;
第六步,将高光谱图像矩阵投影到选取的特征向量矩阵上,得到降维后的特征矩阵。
5.根据权利要求1所述的基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,步骤4中所述深度边缘滤波操作的具体步骤如下:
第一步,计算每个滤波窗口中待滤波图像的均值meanP、引导图像的均值meanI、引导图像的自相关均值corrI、待滤波图像和引导图像的互相关均值corrIP;
第二步,按照下式,计算每个滤波窗口中引导图像的自相关协方差、待滤波图像和引导图像的互相关协方差:
varI=corrI-meanI×meanI
covIP=corrIP-meanI×meanP
其中,varI表示引导图像的自相关协方差,covIP表示待滤波图像和引导图像的互相关协方差;
第三步,按照下式,计算每个滤波窗口的线性变换参数系数a和b:
a=covIP/(varI+ε)
b=meanP-a×meanI
其中ε是调节滤波器滤波效果的重要参数,可用于防止求得的a过大;
第四步,计算所有滤波窗口参数a的均值meana,参数b的均值meanb;
第五步,按照下式,计算滤波后的输出图像:
Q=meana×I+meanb
其中,Q表示滤波后的输出图像,I表示利用主成分分析方法,对预处理后的高光谱图像矩阵进行降维,由第1主成分表示的引导图像。
6.根据权利要求1所述的基于FPGA深度边缘滤波器的高光谱图像分类方法,其特征在于,步骤5中将高光谱图像P和高光谱图像Q中相同空间坐标位置的64个像素值组成8×8的二维矩阵的具体步骤如下:
第一步,提取光谱维度为32的高光谱图像P中相同空间坐标位置的32个像素值,将光谱维中1至8光谱维的像素值组成8×8二维矩阵中的第1行,9至16光谱维的像素值组成8×8二维矩阵中的第2行,17至24光谱维的像素值组成8×8二维矩阵中的第3行,25至32光谱维的像素值组成8×8二维矩阵中的第4行;
第二步,提取高光谱图像Q中和高光谱图像P中相同空间坐标位置的32个像素值,将光谱维中1至8光谱维的像素值组成8×8二维矩阵中的第5行,9至16光谱维的像素值组成8×8二维矩阵中的第6行,17至24光谱维的像素值组成8×8二维矩阵中的第7行,25至32光谱维的像素值组成8×8二维矩阵中的第8行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766635.5A CN110516727B (zh) | 2019-08-20 | 2019-08-20 | 基于fpga深度边缘滤波器的高光谱图像分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766635.5A CN110516727B (zh) | 2019-08-20 | 2019-08-20 | 基于fpga深度边缘滤波器的高光谱图像分类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516727A CN110516727A (zh) | 2019-11-29 |
CN110516727B true CN110516727B (zh) | 2022-12-06 |
Family
ID=68626688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910766635.5A Active CN110516727B (zh) | 2019-08-20 | 2019-08-20 | 基于fpga深度边缘滤波器的高光谱图像分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516727B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111310571B (zh) * | 2020-01-17 | 2022-11-22 | 中国科学院长春光学精密机械与物理研究所 | 一种基于空谱维滤波的高光谱图像分类方法及装置 |
CN112016392B (zh) * | 2020-07-17 | 2024-05-28 | 浙江理工大学 | 一种基于高光谱图像的大豆虫害程度的小样本检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128799A1 (zh) * | 2016-01-27 | 2017-08-03 | 深圳大学 | 基于三维Gabor特征选择的高光谱遥感图像分类方法及系统 |
CN108460342A (zh) * | 2018-02-05 | 2018-08-28 | 西安电子科技大学 | 基于卷积网和循环神经网络的高光谱图像分类方法 |
CN109598306A (zh) * | 2018-12-06 | 2019-04-09 | 西安电子科技大学 | 基于srcm和卷积神经网络的高光谱图像分类方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10410353B2 (en) * | 2017-05-18 | 2019-09-10 | Mitsubishi Electric Research Laboratories, Inc. | Multi-label semantic boundary detection system |
-
2019
- 2019-08-20 CN CN201910766635.5A patent/CN110516727B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128799A1 (zh) * | 2016-01-27 | 2017-08-03 | 深圳大学 | 基于三维Gabor特征选择的高光谱遥感图像分类方法及系统 |
CN108460342A (zh) * | 2018-02-05 | 2018-08-28 | 西安电子科技大学 | 基于卷积网和循环神经网络的高光谱图像分类方法 |
CN109598306A (zh) * | 2018-12-06 | 2019-04-09 | 西安电子科技大学 | 基于srcm和卷积神经网络的高光谱图像分类方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110516727A (zh) | 2019-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321963B (zh) | 基于融合多尺度多维空谱特征的高光谱图像分类方法 | |
Hosseinpour et al. | CMGFNet: A deep cross-modal gated fusion network for building extraction from very high-resolution remote sensing images | |
CN107316013B (zh) | 基于nsct变换和dcnn的高光谱图像分类方法 | |
CN105069468B (zh) | 基于脊波和深度卷积网络的高光谱图像分类方法 | |
CN110348399B (zh) | 基于原型学习机制和多维残差网络的高光谱智能分类方法 | |
CN111985543B (zh) | 一种高光谱图像分类模型的构建方法、分类方法及系统 | |
CN108460391B (zh) | 基于生成对抗网络的高光谱图像无监督特征提取方法 | |
CN106529447A (zh) | 一种小样本人脸识别方法 | |
CN102938072B (zh) | 一种基于分块低秩张量分析的高光谱图像降维和分类方法 | |
CN107832797B (zh) | 基于深度融合残差网的多光谱图像分类方法 | |
CN110110596B (zh) | 高光谱图像特征提取、分类模型构建及分类方法 | |
CN107944483B (zh) | 基于双通道dcgan和特征融合的多光谱图像分类方法 | |
CN105913081B (zh) | 基于改进的PCAnet的SAR图像分类方法 | |
CN111639587B (zh) | 基于多尺度谱空卷积神经网络的高光谱图像分类方法 | |
CN106600595A (zh) | 一种基于人工智能算法的人体特征尺寸自动测量方法 | |
CN110533077A (zh) | 用于高光谱图像分类的形状自适应卷积深度神经网络方法 | |
CN109753996B (zh) | 基于三维轻量化深度网络的高光谱图像分类方法 | |
CN112818920B (zh) | 一种双时相高光谱图像空谱联合变化检测方法 | |
CN110852369B (zh) | 联合3d/2d卷积网络和自适应光谱解混的高光谱图像分类方法 | |
CN107944353A (zh) | 基于轮廓波bspp网络的sar图像变化检测方法 | |
CN110516727B (zh) | 基于fpga深度边缘滤波器的高光谱图像分类方法 | |
CN111639697B (zh) | 基于非重复采样与原型网络的高光谱图像分类方法 | |
CN112766283A (zh) | 一种基于多尺度卷积网络的两相流流型识别方法 | |
Li et al. | An object-oriented CNN model based on improved superpixel segmentation for high-resolution remote sensing image classification | |
CN112052758A (zh) | 基于注意力机制和循环神经网络的高光谱图像分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |