CN107644393B - 一种基于gpu的丰度估计算法的并行实现方法 - Google Patents

一种基于gpu的丰度估计算法的并行实现方法 Download PDF

Info

Publication number
CN107644393B
CN107644393B CN201710898675.6A CN201710898675A CN107644393B CN 107644393 B CN107644393 B CN 107644393B CN 201710898675 A CN201710898675 A CN 201710898675A CN 107644393 B CN107644393 B CN 107644393B
Authority
CN
China
Prior art keywords
vector
end member
gpu
abundance
data
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.)
Expired - Fee Related
Application number
CN201710898675.6A
Other languages
English (en)
Other versions
CN107644393A (zh
Inventor
宋梅萍
于纯妍
武平
张建祎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian Maritime University
Original Assignee
Dalian Maritime University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dalian Maritime University filed Critical Dalian Maritime University
Priority to CN201710898675.6A priority Critical patent/CN107644393B/zh
Publication of CN107644393A publication Critical patent/CN107644393A/zh
Application granted granted Critical
Publication of CN107644393B publication Critical patent/CN107644393B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于GPU的丰度估计算法的并行实现方法,包括:1、将高光谱混合像元数据H存储至GPU端;2、获取端元向量mi,并将所获取的端元向量mi逐一分配至CPU端的p个并行线程上;3、获得端元向量mi其所对应的正交于向量空间[m1,m2,...,mi‑1]的向量
Figure DDA0001422713750000011
4、获得端元集M所对应的正交基并计算对应的内积值;5、计算像元的光谱向量r在
Figure DDA0001422713750000012
方向上的投影;6、计算各端元mp对应的丰度结果αp,并存储至GPU端。本发明通过GPU并行处理的核函数计算丰度值,且该并行机制比在传统CPU串行机制上运行快得多,大大提高了实时丰度估计的运行效率。

Description

一种基于GPU的丰度估计算法的并行实现方法
技术领域
本发明属于图像处理技术领域,具体为涉及一种面向高光谱图像的丰度值估计方法的GPU并行处理方法,以提高实时高光谱丰度的快速计算。
背景技术
高光谱遥感技术旨在以数十个到数百个连续的精细光谱波段获取地物信息,目前已被广泛地应用于环境、国防、农业以及深空等众多领域。丰度估计作为高光谱技术中最重要的主题之一,其目的是在端元提取完成之后,获得相应端元在每一个混合像元中所占的对应百分比(即丰度值)。传统算法(如最小二乘误差和正交子空间投影)的实现通常涉及大量矩阵求逆和乘法运算过程,使得其在软件运行上较慢,并且在硬件上也难以实现,因此不适用于对实时需求高的应用领域。
发明内容
本发明针对以上问题的提出,而研制一种基于GPU的丰度估计算法的并行实现方法。
本发明的技术手段如下:
一种基于GPU的丰度估计算法的并行实现方法,包括如下步骤:
步骤1、将高光谱混合像元数据H存储至GPU端,所述高光谱数据表示为H={B1,B2,,…Bi,…Bl,},其中Bi=(r1 l,r2 l,…rN l)T,N为像元数目,l为波段数目,r为高光谱数据中的高光谱影像中某个混合像元的光谱向量;
步骤2、自所述高光谱数据中的端元集M中获取每一个端元所对应的端元向量mi同时将第i个端元mi置于端元集M的最后位置,即端元集
Figure BDA0001422713730000011
并基于CPU端的openMp机制,将所获取的端元向量mi逐一分配至CPU端的p个并行线程上;
步骤3、基于p个并行线程,对端元向量mi进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,…,mi-1]的向量即
Figure BDA0001422713730000021
步骤4、获得端元集M所对应的正交基并计算对应的内积值即计算
Figure BDA0001422713730000022
步骤5、计算像元的光谱向量r在
Figure BDA0001422713730000023
方向上的投影即计算
Figure BDA0001422713730000024
以获取每个端元所对应的投影数据并存储至CPU端保存;
步骤6、计算各端元mp对应的丰度结果αp,并存储至GPU端。
进一步的,所述步骤1包括:
步骤11、依次读取高光谱混合像元数据H中第i个波段的所有像元并存储至GPU端,其中1<=i<=l;
步骤12、依次读取第i个端元mi的所有波段值并存储至GPU端,其中1<=i<=p。
进一步的,所述步骤3包括:
步骤31、令第一个端元m1的正交向量为端元向量
Figure BDA0001422713730000025
Figure BDA0001422713730000026
步骤32、基于p个并行线程,依次对端元向量mi对进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,…,mi-1]的向量即m~i,对应的计算公式为
Figure BDA0001422713730000027
步骤33、判断i是否等于p;是则执行步骤5;否则使得i←i+1,并执行步骤32。
进一步的,所述步骤6是指基于OVP算法计算各端元mp的丰度结果αp即基于下述公式计算,所述公式为:丰度结果αp对应的函数
Figure BDA0001422713730000028
与现有技术相比,本发明的有益效果:
为了实现对高光谱图像丰度估计的有效性,本发明提供一种能够在不影响准确性的前提下,高光谱图像丰度估计实时性的并行处理方法,具体的其根据其适用要求为并行度高、高光谱数据量大的特点,基于并行编程模式,从算法逻辑、线程映射模型、数据读取存储传输方式和正确性等方面进行了并行化设计,大大提高了实时丰度估计的运行效率。
附图说明
图1是本发明所述并行方法所对应的核心步骤示意图;
图2是本发明所述实验采用模拟图像数据;
图3是表示模拟图像在5个端元情况下第1个端元在CPU串行平台下对应的丰度情况的灰度图;
图4是表示在本发明所述并行方法下第1个端元对应的丰度情况的灰度图;
图5是表示模拟图像在5个端元情况下第3个端元在CPU串行平台下对应的丰度情况的灰度图;
图6是表示在本发明所述并行方法下第3个端元对应的丰度情况的灰度图;
图7是表示模拟图像在5个端元情况下第5个端元在CPU串行平台下对应的丰度情况的灰度图;
图8是表示在本发明所述并行方法下第5个端元对应的丰度情况的灰度图;
图9本发明所述实验采用真实图像数据;
图10是表示真实图像在5个端元情况下第1个端元在CPU串行平台下对应的丰度情况的灰度图;
图11是表示真实图像在5个端元情况下第1个端元本发明所述并行方法下对应的丰度情况的灰度图;
图12是表示真实图像在5个端元情况下第3个端元在CPU串行平台下对应的丰度情况的灰度图;
图13是表示真实图像在5个端元情况下第3个端元本发明所述并行方法下对应的丰度情况的灰度图;
图14是表示真实图像在5个端元情况下第5个端元在CPU串行平台下对应的丰度情况的灰度图;
图15是表示真实图像在5个端元情况下第5个端元在本发明所述并行方法下对应的丰度情况的灰度图;
图16是表示OVP并行设计在模拟图像上加速比随着端元个数的增加而变化的情况;
图17是表示OVP并行设计在真实图像上加速比随着端元个数的增加而变化的情况;
图18是表示并行OVP、LSE以及LSOSP在模拟图像上端元个数从3到20的比较情况;
图19是表示并行OVP、LSE以及LSOSP在真实图像上端元个数从3到20的比较情况。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示的一种基于GPU的丰度估计算法的并行实现方法,包括如下步骤:
步骤1、将高光谱混合像元数据H存储至GPU端即通过通信函数cudamemcpy将其拷贝到GPU显存中,所述高光谱数据表示为H={B1,B2,,…Bi,…Bl,},其中Bi=(r1 l,2 l,…rN l)T,N为像元数目,l为波段数目,r为高光谱数据中的高光谱影像中某个混合像元的光谱向量;
步骤2、因为施密特正交化(Gram-Schmidt)在处理每个端元互不干涉,为了求解第i个端元即mi,则需要进行下述:即自所述高光谱数据中的端元集M中获取每一个端元所对应的端元向量mi同时将第i个端元mi置于端元集M的最后位置,即端元集
Figure BDA00014227137300000511
并基于CPU端的openMp机制(处理器上编写并行程序的应用编程接口),将所获取的端元向量mi逐一分配至CPU端的p个并行线程上;即使得端元mi分配到第i(1<=i<=p)个并行线程上;
步骤3、基于p个并行线程,对端元向量mi进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,…,mi-1]的向量即m~i
步骤4、从不同的端元开始,不同的端元顺序进行正交化获得端元集M空间上的一组正交基,它代表该向量正交于其它向量扩展空间的分量,则所述端元集M所对应的正交基
Figure BDA0001422713730000051
并计算对应的内积值即计算
Figure BDA0001422713730000052
具体GPU端建立GPU核函数1(Kernel)计算
Figure BDA0001422713730000053
的内积值的步骤为:41、利用Cuda框架下的通信函数cudamemcpy建立GPU与CPU之间的联系,将CPU的数据即
Figure BDA0001422713730000054
通过内存通信拷贝(利用cudaMalloc函数)至GPU显存中;42、利用CPU端的openMp机制给CPU分配p个线程,并行处理
Figure BDA0001422713730000055
内积的结果,将得到的结果放入数组Q中;43、利用通信函数cudamemcpy建立GPU端与CPU端的联系,将计算结果数组Q通过GPU端返回到CPU端,在CPU段利用数组Q’(Q’=Q)保存。
步骤5、计算像元的光谱向量r在
Figure BDA0001422713730000056
方向上的投影即计算
Figure BDA0001422713730000057
以获取每个端元所对应的投影数据并存储至CPU端保存;GPU端建立GPU核函数2计算计算
Figure BDA0001422713730000058
的步骤为:51、利用cudaMalloc函数将数据拷贝到GPU内存中;
52、分配线程数目,设定线程数为图像端元数p与图像大小N之积,即p×N个线程;53、在GPU端的使得每个线程分别计算一个像元r在
Figure BDA0001422713730000059
方向上的投影,并将线程数目分为p组,及GPU端的第i组线程(1<=i<=p)计算的是所有像元在
Figure BDA00014227137300000510
方向上的投影,将投影值存储为C数组的第i个位置,即C=[qi1,q1i2 … qiN];54、将计算结果通过GPU端返回到CPU端,此时结果集中存放着端元个数与图像大小之积个数据,同时在CPU端利用数组C’(C’=C)保存。
步骤6、计算各端元mp对应的丰度结果αp,并存储至GPU端。具体的GPU端建立GPU核函数3计算计算丰度值的步骤为:61、分配线程数目,设定线程数目为图像大小与端元个数之积个线程数目,即p×N;62、利用GPU端每个线程i(0<=i<p×N)计算Q数组和C数组行号和列号对应下标的值的乘积运算qm×cmn,m和n为二维数组的行号和列号;63、每N个线程的计算结果表示第mi(1<=i<=p)个端元的解混结果所对应的丰度fi,将fi进行存储在F数组的第i个位置;64、通过GPU端返回到CPU端,此时结果矩阵F’中存放着各个端元对应的丰度值。
其中,方法所涉及的数据包括:知高光谱混合像元数据表示为H={B1,B2,,…Bi,…Bl,},其中Bi=(r1 l,r2 l,…rN l)T,N为像元数目,l为波段数目。r为高光谱影像中某个混合像元的光谱向量;M为l×p的端元矩阵,p为端元个数,l为高光谱波段数;若端元集M=[m1,m2,…,mp-1,mp],则其中mi=[mi1,mi2,…mil]T,其对应的该空间上的一组正交基为
Figure BDA0001422713730000061
其中
Figure BDA0001422713730000062
利用F数组存储各端元的解混结果F=[f1,f2,…fi…fp],其中fi表示第i个端元的丰度估计值。
进一步的,所述步骤1包括:
步骤11、依次读取高光谱混合像元数据H中第i个波段的所有像元并存储至GPU端,其中1<=i<=l;
步骤12、依次读取第i个端元mi的所有波段值并存储至GPU端,其中1<=i<=p。
进一步的,所述步骤3包括:
步骤31、令第一个端元m1的正交向量为端元向量
Figure BDA0001422713730000063
Figure BDA0001422713730000064
步骤32、基于p个并行线程,依次对端元向量mi对进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,…,mi-1]的向量即
Figure BDA0001422713730000065
对应的计算公式为
Figure BDA0001422713730000071
步骤33、判断i是否等于p;是则执行步骤5;否则使得i增加1即i←i+1,并执行步骤32。
进一步的,所述步骤6是指基于OVP算法计算各端元mp的丰度结果αp即基于下述公式计算,所述公式为:丰度结果αp对应的函数
Figure BDA0001422713730000072
下面以具体的实例进行进一步说明:所述实例主要是在模拟图像以及真实图像上进行验证:
实验平台及实验数据
相关的实验平台搭建:实验机器为ThinkPad T430,硬件配置处理器为Intel(R)Core(TM)i5-2520、4核CPU、主频2.50GHz、内存6GB;显卡信息为NVIDIA NVS 5400M,显卡内存为1664M;软件平台中操作系统为Windows 10,开发环境Visual Studio 2013以及CUDA7.5。
相关的实验数据:本实验采用两组图像数据,其大小分别为350×350和400×400,各有189个波段;模拟图像如图2所示,真实图像如图9所示。
相关的实验条件设定:选择端元个数为依次为10、40和70时,测试OVP算法的CPU串行时间与CUDA+OpenMP并行时间的实验结果,具体如图3—图19,如下:
Figure BDA0001422713730000073
Figure BDA0001422713730000081
选择端元个数为依次为10、40和70时,测试OVP算法并行与LSE以及OSP并行时间的实验结果如下:
Figure BDA0001422713730000082
综上,为了实现对高光谱图像丰度估计的有效性,本发明提供一种能够在不影响准确性的前提下,高光谱图像丰度估计实时性的方法。本发明根据算法并行度高、高光谱数据量大的特点,依据并行思想,从算法逻辑、线程映射模型、数据读取存储传输方式和正确性等方面进行并行化设计,并用模拟高光谱数据以及真实高光谱数据进行了测试,可见在取得较好的丰度估计效果的同时,达到了较高加速比。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (2)

1.一种基于GPU的丰度估计算法的并行实现方法,包括如下步骤:
步骤1、将高光谱混合像元数据H存储至GPU端,所述高光谱混合像元数据表示为H={B1,B2,…Bi,…Bl},其中Bi=(r1 l,r2 l,…rN l)T,N为像元数目,l为波段数目,r为高光谱混合像元数据中的高光谱影像中某个混合像元的光谱向量;
步骤2、自所述高光谱混合像元数据中的端元集M中获取每一个端元所对应的端元向量mi同时将第i个端元mi置于端元集M的最后位置,即使得端元集
Figure FDA00021560233000000110
并基于CPU端的openMp机制,将所获取的端元向量mi逐一分配至CPU端的p个并行线程上;
步骤3、基于p个并行线程,对端元向量mi进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,...,mi-1]的向量即
Figure FDA0002156023300000011
所述步骤3中步骤如下:
步骤31、令第一个端元m1的正交向量为端元向量
Figure FDA0002156023300000012
Figure FDA0002156023300000013
步骤32、基于p个并行线程,依次对端元向量mi进行施密特正交化处理以获得端元向量mi其所对应的正交于向量空间[m1,m2,...,mi-1]的向量即
Figure FDA0002156023300000014
对应的计算公式为
Figure FDA0002156023300000015
步骤33、判断i是否等于p;是则执行步骤4;否则使得i←i+1,并执行步骤32;
步骤4、获得端元集M所对应的正交基并计算对应的内积值即计算
Figure FDA0002156023300000016
步骤5、计算像元的光谱向量r在
Figure FDA0002156023300000017
方向上的投影即计算
Figure FDA0002156023300000018
以获取每个端元所对应的投影数据并存储至CPU端保存;
步骤6、计算各端元mp对应的丰度结果αp,并存储至GPU端;
所述步骤6是指基于OVP算法计算各端元mp的丰度结果αp即基于下述公式计算,所述公式为:丰度结果αp对应的函数
Figure FDA0002156023300000019
2.根据权利要求1所述的并行实现方法,其特征在于所述步骤1包括:
步骤11、依次读取高光谱混合像元数据H中第i个波段的所有像元并存储至GPU端,其中1<=i<=l;
步骤12、依次读取第i个端元mi的所有波段值并存储至GPU端,其中1<=i<=p。
CN201710898675.6A 2017-09-28 2017-09-28 一种基于gpu的丰度估计算法的并行实现方法 Expired - Fee Related CN107644393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710898675.6A CN107644393B (zh) 2017-09-28 2017-09-28 一种基于gpu的丰度估计算法的并行实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710898675.6A CN107644393B (zh) 2017-09-28 2017-09-28 一种基于gpu的丰度估计算法的并行实现方法

Publications (2)

Publication Number Publication Date
CN107644393A CN107644393A (zh) 2018-01-30
CN107644393B true CN107644393B (zh) 2020-03-06

Family

ID=61114098

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710898675.6A Expired - Fee Related CN107644393B (zh) 2017-09-28 2017-09-28 一种基于gpu的丰度估计算法的并行实现方法

Country Status (1)

Country Link
CN (1) CN107644393B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108765259B (zh) * 2018-05-15 2021-01-15 大连海事大学 一种基于gpu的高光谱图像ratgp和rosp并行优化方法
CN108765382B (zh) * 2018-05-15 2022-06-24 大连海事大学 基于gpu的丰度估计并行计算方法
CN109727280B (zh) * 2019-01-25 2023-03-24 黑龙江科技大学 一种基于正交基的高光谱图像丰度估计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030299A (zh) * 2007-03-29 2007-09-05 复旦大学 一种基于数据空间正交基的遥感图像混合像元分解方法
CN103854263A (zh) * 2014-03-27 2014-06-11 湖州师范学院 一种基于正交约束投影解混模型的消噪解混算法
CN104463224A (zh) * 2014-12-24 2015-03-25 武汉大学 基于丰度显著性分析的高光谱图像解混方法及系统
CN106788714A (zh) * 2016-12-05 2017-05-31 重庆工商大学 一种基于光学计算的稀疏解混方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030299A (zh) * 2007-03-29 2007-09-05 复旦大学 一种基于数据空间正交基的遥感图像混合像元分解方法
CN103854263A (zh) * 2014-03-27 2014-06-11 湖州师范学院 一种基于正交约束投影解混模型的消噪解混算法
CN104463224A (zh) * 2014-12-24 2015-03-25 武汉大学 基于丰度显著性分析的高光谱图像解混方法及系统
CN106788714A (zh) * 2016-12-05 2017-05-31 重庆工商大学 一种基于光学计算的稀疏解混方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Gram-Schmidt orthogonal vector projection for hyperspectral unmixing;Meiping Song;《2014 IEEE Geoscience and Remote Sensing Symposium》;20141106;第2934-2937页 *
Real-time orthogonal vector projection algorithm based on GPU;Meiping Song;《2016 Progress in Electromagnetic Research Symposium》;20161110;第4326-4329页 *
Recursive Geometric Simplex Growing Analysis for Finding Endmembers in Hyperspectral Imagery;Chein-I Chang;《IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing》;20160728;第296-308页 *
基于GPU的高光谱图像混合像元分解并行优化研究;叶舜;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140715(第7期);第I140-491页 *
基于有效端元集的双线性解混模型;宋梅萍 等;《光谱学与光谱分析》;20140131;第34卷(第1期);第196-200页 *
基于正交投影理论的端元提取算法;肖霄;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160715(第7期);第I140-341页 *
用于光谱解混的正交向量投影算法;宋梅萍 等;《光谱学与光谱分析》;20151231;第35卷(第12期);第3465-3470页 *
高光谱遥感影像处理与地质应用若干关键问题研究;王茂芝;《中国博士学位论文全文数据库 基础科学辑》;20150415(第4期);第A011-43页 *

Also Published As

Publication number Publication date
CN107644393A (zh) 2018-01-30

Similar Documents

Publication Publication Date Title
Yuan et al. Factorization-based texture segmentation
US20210158023A1 (en) System and Method for Generating Image Landmarks
CN107525588B (zh) 一种基于gpu的双相机光谱成像系统的快速重构方法
US20190139191A1 (en) Image processing methods and image processing devices
CN109522902B (zh) 空-时特征表示的提取
CN111860398B (zh) 遥感图像目标检测方法、系统及终端设备
CN107644393B (zh) 一种基于gpu的丰度估计算法的并行实现方法
US9171226B2 (en) Image matching using subspace-based discrete transform encoded local binary patterns
CN109583509B (zh) 数据生成方法、装置及电子设备
CN104318243B (zh) 基于稀疏表示和空谱拉普拉斯图的高光谱数据降维方法
CN111274999B (zh) 数据处理、图像处理方法、装置及电子设备
CN107590811B (zh) 基于场景分割的风景图像处理方法、装置及计算设备
Quan et al. Deep generative matching network for optical and SAR image registration
CN110148103A (zh) 基于联合优化的高光谱和多光谱图像融合方法、计算机可读存储介质、电子设备
CN109242796A (zh) 文字图像处理方法、装置、电子设备和计算机存储介质
CN102651132A (zh) 一种基于交叉视觉皮质模型的医学图像配准方法
US20240153103A1 (en) Tracking-based motion deblurring via coded exposure
CN111179270A (zh) 基于注意力机制的图像共分割方法和装置
CN112529068A (zh) 一种多视图图像分类方法、系统、计算机设备和存储介质
CN116052025A (zh) 一种基于孪生网络的无人机视频图像小目标跟踪方法
CN108520532B (zh) 识别视频中物体运动方向的方法及装置
CN108805811B (zh) 一种基于非凸二次规划的自然图像智能拼图方法及系统
CN117037244A (zh) 人脸安全检测方法、装置、计算机设备和存储介质
US9594955B2 (en) Modified wallis filter for improving the local contrast of GIS related images
CN106570911B (zh) 一种基于daisy描述子的脸部卡通画合成方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200306

Termination date: 20210928