一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于GPU的高光谱数据滤波快速计算方法、装置和系统与流程

2022-02-22 18:02:23 来源:中国专利 TAG:

基于gpu的高光谱数据滤波快速计算方法、装置和系统
技术领域
1.本发明属于图像处理技术领域,尤其涉及一种基于gpu的高光谱数据滤波 快速计算方法、装置和系统。


背景技术:

2.近年来,随着生活水平的不断提高,人们的环保意识越来越强,再生资源 分类回收利用越来越受重视。在再生资源塑料回收领域,高光谱分类技术具有 非接触式测量和分类准确率高的特点。由于高光谱图像具有图谱合一的特性, 可以进行材质分类,将光谱特性、图像特性、输送线以及气阀相结合,实现自 动化高速分选,提高了材质分类的效率。
3.高光谱相机在采集高光谱数据的时候,由于输送带振动、光源闪烁、物体 滚动、物体表面反光以及相机内部噪声等因素的影响,高光谱数据通常会有噪 声。故在进行数据预处理之前,需要对高光谱数据需要先进行滤波,常用的滤 波方法有:低通滤波,高斯滤波,savitaky-golay(sg)滤波等。sg滤波的优点 在于,在滤除噪声的同时可以确保信号的形状、宽度不变,因此被广泛地运用 于数据平滑去噪场合。由于高光谱数据每个像素维度都有一条光谱曲线,而每 个光谱曲线分类的运算都是重复进行的,导致数据冗余比较大,所以数据处理 的速度就决定了产线的最高运行速度。因此提高光谱冗余数据的处理速度是高 光谱塑料分选产业化的瓶颈。在高光谱数据分析之前需要进行滤波,为了减小 分析的时间,需要对数据滤波运算进行加速,但由于数据冗余较大,现有技术 滤波的效率过低,极大地影响了滤波速度。因而,实有必要设计一种基于gpu 的高光谱数据滤波快速计算方法、装置和系统。


技术实现要素:

4.本发明的目的在于提供一种基于gpu的高光谱数据滤波快速计算方法、装 置和系统,旨在解决现有技术中高光谱数据滤波处理效率低下,影响高光谱数 据分析,无法满足用户需求的技术问题。
5.为实现上述目的,本发明实施例提供一种基于gpu的高光谱数据滤波快速 计算方法,包括gpu,所述方法包括获取高光谱数据,加载高光谱数据至gpu; 调用核函数,结合sg滤波算法进行数据平滑去噪,执行多线程的并行运算,进 行高光谱数据的滤波;根据并行运算结果,获得高光谱数据滤波结果。
6.可选地,所述调用核函数,结合sg滤波算法进行数据平滑去噪,执行多线 程的并行运算,进行高光谱数据的滤波的步骤,具体包括:
7.获取高光谱图像数据每个像素维度的光谱曲线的数据,基于sg滤波算法, 对于单个光谱曲线里滑动窗口的最小二乘法拟合运算,计算像素为w*h个的高 光谱图像数据,获取高光谱数据的滤波结果;
8.调用核函数,进行块内线程规约,执行多线程并行滤波,并将并行滤波结 果传回至cpu。
9.可选地,所述获取光谱曲线的数据,基于sg滤波算法,对于单个光谱曲线 里滑动窗口的最小二乘法拟合运算,计算像素为w*h个的高光谱图像数据,获 取高光谱数据的滤波结果的步骤,具体包括:
10.根据光谱曲线的数据,选取在光谱曲线上窗口内的多个点;
11.基于sg滤波算法,对高光谱数据中的光谱曲线中的每一个点进行平滑计算, 遍历曲线后得到一条光滑的光谱曲线。
12.可选地,所述基于sg滤波算法,对高光谱数据中的光谱曲线中的每一个点 进行平滑计算,遍历曲线后得到一条光滑的光谱曲线的步骤,具体包括:
13.选取光谱曲线上的五个点,基于以下公式一,对高光谱数据进行平滑计算:
[0014][0015]
其中,y为反射率,n为曲线上的点。
[0016]
可选地,所述调用核函数,进行块内线程规约,执行多线程并行滤波,并 将并行滤波结果传回至cpu的步骤,包括:
[0017]
根据高光谱图像数据,确定核函数要执行的线程数量;
[0018]
通过调用核函数,配置grid与block的参数,使线程为w*h个线程的并行 滤波,执行多线程的并行滤波;
[0019]
获取并行运算高光谱数据的滤波结果,将该滤波结果返送至cpu。
[0020]
可选地,所述通过调用核函数,配置grid与block的参数,使线程为w*h 个线程的并行滤波,执行多线程的并行滤波的步骤,具体包括:
[0021]
将grid内的block设置为三维的参数,其坐标对应设置为(blockidx.x, blockidx.y,blockidx.z),并基于以下公式七将grid与高光谱数据相对应 匹配,配置对应参数;
[0022][0023]
将block内的thread设置为三维的参数,其坐标对应设置为{threadidx.x, threadidx.y,threadidx.z},并基于以下公式八将block与高光谱数据相对 应匹配,配置对应参数:
[0024][0025]
将核函数内的波段索引代入所述公式一,执行并行运算对高光谱数据进行 滤波。
[0026]
一种基于gpu的高光谱数据滤波快速计算装置,包括:
[0027]
高光谱数据加载模块,获取高光谱数据,加载高光谱数据至gpu;
[0028]
并行运算模块,调用核函数,结合sg滤波算法进行数据平滑去噪,执行多 线程的并行运算,进行高光谱数据的滤波;
[0029]
数据返送模块,根据并行运算结果,获得高光谱数据滤波结果。
[0030]
一种基于gpu的高光谱数据滤波快速计算系统,包括高光谱相机和gpu,其 中,所述高光谱相机获取高光谱数据并加载高光谱数据至所述gpu;所述gpu调 用核函数,结合sg滤波算法进行数据平滑去噪,执行多线程的并行运算,进行 高光谱数据的滤波;并根据并行运算结果,获得高光谱数据滤波结果。
[0031]
一种计算机设备,所述计算机设备用于运行程序,其中,所述程序运行时 执行基于gpu的高光谱数据滤波快速计算方法。
[0032]
一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述 程序执行基于gpu的高光谱数据滤波快速计算方法。
[0033]
本发明实施例提供的基于gpu的高光谱数据滤波快速计算方法中的上述一 个或多个技术方案至少具有如下技术效果之一:
[0034]
本发明通过将高光谱数据加载高光谱数据至gpu中,结合gpu和sg滤波算 法,通过并行运算的方式,将sg滤波算法与gpu硬件相互配合进行优化,通过 配置gpu的数据,实现了多线程的并行运算,极大地提高了高光谱数据滤波的 运算速度,高效率地处理高光谱数据的滤波,克服了因高光谱数据的高冗余性 而计算速度慢的缺点,显著地提高了高光谱数据预处理的运算速度。
附图说明
[0035]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅 仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳 动性的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1为本发明实施例提供的基于gpu的高光谱数据滤波快速计算方法的流 程示意图;
[0037]
图2为本发明实施例提供的多线程并行运算的流程示意图;
[0038]
图3为本发明实施例提供的sg滤波算法应用于高光谱数据的流程示意图;
[0039]
图4为本发明实施例提供的核函数调用的流程示意图;
[0040]
图5为本发明实施例提供的核函数参数配置的流程示意图;
[0041]
图6为本发明实施例提供的基于gpu的高光谱数据滤波快速计算装置的示 意图;
[0042]
图7为本发明实施例提供的计算机设备的结构框图。
具体实施方式
[0043]
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术 之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当 清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中, 省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节 妨碍本技术的描述。
[0044]
应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括
”ꢀ
指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个 或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
[0045]
还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是 指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这 些组合。
[0046]
如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以 依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。 类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下 文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或 事件]”或“响应于检测到[所描述条件或事件]”。
[0047]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第 二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0048]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着 在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特 点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一 些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必 然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除 非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的 变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0049]
在本发明的一个实施例中,如图1所示,提供一种基于gpu的高光谱数据 滤波快速计算方法,包括gpu,所述方法包括:
[0050]
步骤s100:获取高光谱数据,加载高光谱数据至gpu;
[0051]
步骤s200:调用核函数,结合sg滤波算法进行数据平滑去噪,执行多线程 的并行运算,进行高光谱数据的滤波;
[0052]
步骤s300:根据并行运算结果,获得高光谱数据滤波结果。
[0053]
具体地,高光谱相机在采集高光谱数据的时候,由于输送带振动、光源闪 烁、物体滚动、物体表面反光以及相机内部噪声等因素的影响,高光谱数据通 常会有噪声。故在进行数据预处理之前,需要对高光谱数据需要先进行滤波, 常用的滤波方法有:低通滤波,高斯滤波,savitaky-golay(sg)滤波等。sg滤 波的优点在于,在滤除噪声的同时可以确保信号的形状、宽度不变,因此被广 泛地运用于数据平滑去噪场合;本发明通过将高光谱数据加载高光谱数据至gpu 中,结合gpu和sg滤波算法,通过并行运算的方式,将sg滤波算法与gpu硬 件相互配合进行优化,通过配置gpu的数据,实现了多线程的并行运算,极大 地提高了高光谱数据滤波的运算速度,克服了因高光谱数据的高冗余性而计算 速度慢的缺点,高效率地处理高光谱数据的滤波,显著地提高了高光谱数据预 处理的运算速度。
[0054]
在本发明的另一个实施例中,如图2所示,所述调用核函数,结合sg滤波 算法进行
数据平滑去噪,执行多线程的并行运算,进行高光谱数据的滤波的步 骤,具体包括:
[0055]
步骤s210:获取光谱曲线的数据,基于sg滤波算法,对于单个光谱曲线里 滑动窗口的最小二乘法拟合运算,计算像素为w*h个的高光谱图像数据,获取 高光谱数据的滤波结果;
[0056]
具体地,在本步骤中,savitaky-gloay滤波通常简称sg滤波,在时域内通 过对窗口内的数据进行加权滤波,基于局部区域多项式最小二乘法拟合。进一 步地,将光谱曲线即时域内一系列连续等间距点,光谱曲线的横坐标为波长, 纵坐标为反射率,可得光谱曲线的函数表达式为:y(i)=f(λi)i∈[0,2n 1],其中, λ为波长,y为该波段下的反射率,2n 1为该光谱曲线的滤段数量。
[0057]
在该光谱曲线中进行间隔采样,h为采样间隔,则h=λ
i 1-λi,定义一个变换 将采样间隔h代入变换,则:
[0058]
进一步地,为了对离散的点进行滤波,使用多项式对离散的点进行拟合, 该多项式为:y(t)=a0 a1t

amtm。
[0059]
由于该光谱曲线共有2n 1个滤段数量,2n 1个点的每个点的拟合误差可 记为公式二:
[0060][0061]
根据最小二乘法的原则,需要寻找一套最合适的系数ai,使得rj的和εn最小, 即以下公式三:
[0062][0063]
当时,εn上式有最小值,化简后可得公式四:
[0064][0065]
当n=2,m=3时,代入公式四可得公式五:
[0066]
[0067]
进一步地,得到a0、a1、a2、a3,令t=0、
±
1、
±
2,则t0=0,t1=1,t2=2,t-1
=-1, t-2
=-2,带入公式二可以得到公式六:
[0068][0069]
公式六是对5个点的数据进行平滑,当数据点的数量大于5时,可以用sg 滤波算法进行滤波。sg滤波也叫滑动窗口平滑滤波,当滑动窗口大小为5时, 在曲线上取窗口内的5个点y
i-2
,y
i-1
,yi,y
i 1
,y
i 2
,代入公式六中进行拟 合来代替yi。依次滑动窗口,遍历完曲线,就可以实现对整条曲线的sg滤波。
[0070]
进步一地,由公式六可知,当窗口遍历并替代第一个点和第二个点时,可 以用(a)和(b)得到,当窗口遍历并替代最后两个点时,可以用(d)和(e) 得到,当窗口遍历并替代其余的中间点时,为对称考虑用公式(c)计算,最终 sg滤波中所有的点,即以下公式一:
[0071][0072]
应理解,同样的推算方法可以得到三点一次、五点一次和七点一次的平滑 参数矩阵,三种不同参数的滤波效果如图x所示,多种不同参数的sg平滑滤波 算法均可的实现对光谱曲线的滤波。在本发明实施例中,采用五点三次sg滤波。
[0073]
步骤s220:调用核函数,进行块内线程规约,执行多线程并行滤波,并将 并行滤波结果传回至cpu。
[0074]
具体地,在本步骤中,通过五点三次sg滤波算法的公式推导可得,sg滤波 器可以理解为一个基于滑动窗口的最小二乘法拟合,在本实施例中,选用为滑 动窗口的大小为5的3次多项式拟合,即每个点的数据可以用邻近5个点的3 次多项式进行拟合。所述高光谱图像数据大小为(w,h,λ),一个高光谱图 像数据有w*h个像素,每个像素里包括一条光谱曲
线,且每一条光谱曲线都要 进行sg滤波。
[0075]
在本发明的另一个实施例中,如图3所示,所述获取光谱曲线的数据,基 于sg滤波算法,对于单个光谱曲线里滑动窗口的最小二乘法拟合运算,计算像 素为w*h个的高光谱图像数据,获取高光谱数据的滤波结果的步骤,具体包括:
[0076]
步骤s211:根据光谱曲线的数据,选取在光谱曲线上窗口内的多个点。具 体地,在本步骤中,采用五点三次的sg滤波算法,故sg滤波的滑动窗口大小 为五,选择位于滑动窗口内的五点进行滤波。
[0077]
步骤s212:基于sg滤波算法,根据以下公式一对高光谱数据中的光谱曲线 中的每一个点进行平滑计算,遍历曲线后得到一条光滑的光谱曲线:
[0078][0079]
其中,y为反射率,n为曲线上的点;
[0080]
具体地,本步骤中,通过将光谱曲线上的每一点代入至所述公式一中,经 过遍历后,获得一条光滑的光谱曲线,完成sg滤波,在滤除噪声的同时可以确 保信号的形状、宽度不变,保持的数据平滑。
[0081]
在本发明的另一个实施例中,如图4所示,所述调用核函数,进行块内线 程规约,执行多线程并行滤波,并将并行滤波结果传回至cpu的步骤,包括:
[0082]
步骤s221:根据高光谱图像数据,确定核函数要执行的线程数量;
[0083]
具体地,在本步骤中,通过获取所述高光谱数据,根据高光谱图像数据的 大小,确认核函数所需的线程数量,以满足高光谱数据滤波的并行运算。
[0084]
步骤s222:通过调用核函数,配置grid与block的参数,使线程为w*h个 线程的并行滤波,执行多线程的并行滤波;
[0085]
具体地,gpu主要由多个sm(streaming multiprocessor)组成,每一个sm包括:特殊运算单元(sfu)、共享内存(shared memory)、寄存器文件(registerfile)和调度器(warp scheduler)。每个sm根据gpu架构的不同,拥有不同数 量的cuda core。cuda core是gpu最基本的处理单元,gpu的指令和任务都是 在cuda core上运行,gpu并行运算就是多个cuda core的并行运算。
[0086]
在本步骤中,由在搭载于gpu上的cuda运算平台通过调用核函数来执行并 行计算。核函数是在device上线程中并行执行的函数,在调用核函数时,通过 配置grid,block的参数来指定核函数要执行的线程数量,这样就可以用多线 程来实现并行运算。gpu的
device里一个cuda并行程序会被许多个thread来 执行;其中,多个thread会组成一个block,同一个block中的thread可以同 步;多个block则会再构成grid。
[0087]
由于cuda中可以创建的线程数量跟gpu的计算能力有关。在本发明实施例 中,所述gpu优选为jetson xavier nx或其他同类型cpu。由于具有体积小和 功率低的特点,适用于作为高光谱的数据处理的控制系统。
[0088]
步骤s223:获取并行运算高光谱数据的滤波结果,将该滤波结果返送至cpu。
[0089]
在本发明的另一个实施例中,如图5所示,所述通过调用核函数,配置grid 与block的参数,使线程为w*h个线程的并行滤波,执行多线程的并行滤波的 步骤,具体包括:
[0090]
步骤s2221:将grid内的block设置为三维的参数,其坐标对应设置为 (blockidx.x,blockidx.y,blockidx.z),并基于以下公式七将grid与高 光谱数据相对应匹配,配置对应参数:
[0091][0092]
具体地,在本步骤中,高光谱的图像数据中每个像素内光谱曲线的滤波都 可以进行并行运算,通过配置grid的参数,就可以实现w*h个线程的并行滤波。
[0093]
步骤s2222:将block内的thread设置为三维的参数,其坐标对应设置为 {threadidx.x,threadidx.y,threadidx.z},并基于以下公式八将block与 高光谱数据相对应匹配,配置对应参数:
[0094][0095]
步骤s2223:将核函数内的波段索引代入所述公式一,执行并行运算对高光 谱数据进行滤波,threadidx.x=i,其中,i为波段索引。在本步骤中,通过cuda 中各个线程都有其各自的波段索引,随着grid和block的划分方式的不同而变 化。通过将波段索引i代入所述公式一,实现多个线程并行滤波,显著地提高 了高光谱数据的滤波速度。
[0096]
本发明还提供一种基于gpu的高光谱数据滤波快速计算装置,如图6所示, 包括高光谱数据加载模块、并行运算模块和数据返送模块。
[0097]
其中,所述高光谱数据加载模块用于获取高光谱数据,加载高光谱数据至 gpu;
[0098]
所述并行运算模块用于调用核函数,结合sg滤波算法进行数据平滑去噪, 执行多线程的并行运算,进行高光谱数据的滤波;
[0099]
所述数据返送模块用于根据并行运算结果,获得高光谱数据滤波结果。
[0100]
在本发明的另一个实施例中,所述并行运算模块还用于:
[0101]
获取高光谱图像数据每个像素维度的光谱曲线的数据,基于sg滤波算法, 对于单个光谱曲线里滑动窗口的最小二乘法拟合运算,计算像素为w*h个的高 光谱图像数据,获取高光谱数据的滤波结果;
[0102]
调用核函数,进行块内线程规约,执行多线程并行滤波,并将并行滤波结 果传回
至cpu。
[0103]
在本发明的另一个实施例中,所述并行运算模块还用于:
[0104]
根据光谱曲线的数据,选取在光谱曲线上窗口内的五个点;
[0105]
基于sg滤波算法,根据公式一对高光谱数据中的光谱曲线中的每一个点进 行平滑计算,遍历曲线后得到一条光滑的光谱曲线。
[0106]
在本发明的另一个实施例中,所述并行运算模块还用于:
[0107]
根据高光谱图像数据,确定核函数要执行的线程数量;
[0108]
通过调用核函数,配置grid与block的参数,使线程为w*h个线程的并行 滤波,执行多线程的并行滤波;
[0109]
获取并行运算高光谱数据的滤波结果,将该滤波结果返送至cpu
[0110]
在本发明的另一个实施例中,所述并行运算模块还用于:
[0111]
将grid内的block设置为三维的参数,其坐标对应设置为(blockidx.x, blockidx.y,blockidx.z),并基于公式七将grid与高光谱数据相对应匹配, 配置对应参数;
[0112]
将block内的thread设置为三维的参数,其坐标对应设置为{threadidx.x, threadidx.y,threadidx.z},并基于公式八将block与高光谱数据相对应匹 配,配置对应参数;
[0113]
将核函数内的波段索引代入所述公式一,执行并行运算对高光谱数据进行 滤波。
[0114]
在本发明的另一个实施例中,还提供一种基于gpu的高光谱数据滤波快速 计算系统,包括高光谱相机和gpu,其中,所述高光谱相机获取高光谱数据并 加载高光谱数据至所述gpu;所述gpu调用核函数,结合sg滤波算法进行数 据平滑去噪,执行多线程的并行运算,进行高光谱数据的滤波;并根据并行运 算结果,获得高光谱数据滤波结果。
[0115]
在本发明的另一个实施例中,还提供一种计算机设备,包括一个或多个处 理器、存储器;以及一个或多个程序,其中一个或多个程序被存储到存储器中, 并且被配置成由一个或多个处理器执行,所述程序包括用于执行基于gpu的高 光谱数据滤波快速计算方法的控制指令。
[0116]
所述计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设 备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。 其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储 器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和 计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运 行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。 该计算机程序被处理器执行时以实现机器人一拖多的抓取方法。该计算机设备 的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可 以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球 或触控板,还可以是外接的键盘、触控板或鼠标等。
[0117]
在本发明的另一个实施例中,本发明还提供一种计算机可读存储介质,其 上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于gpu的高 光谱数据滤波快速计算方法的步骤。
[0118]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可
以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于 一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述 各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、 存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。 非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom (eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机 存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种 形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、 双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线 动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0119]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献