掌桥专利:专业的专利平台
掌桥专利
首页

高光谱图像目标检测方法及装置

文献发布时间:2023-06-19 12:14:58


高光谱图像目标检测方法及装置

技术领域

本申请属于高光谱图像处理技术领域,具体涉及一种高光谱图像目标检测方法及装置。

背景技术

高光谱图像(Hyperspectral Image,光谱分辨率在10l数量级范围内的光谱图像)凭借其光谱分辨率的提高,在不需要任何先验信息的情况下,能够高效地从复杂的图像中分离出背景和噪声,找到特定的目标信息,从而实现无监督型目标检测(又称为异常检测)。

RX算法是目前最常见的高光谱目标检测算法之一,其假设背景与异常目标符合多元高斯分布,通过计算图像的均值和协方差矩阵,并与设定的阈值比较判断是否为异常值,具有较好的检测性能和实时处理效率。但是,在进行算法实现时,实际的高光谱图像存在数据量大、维数高以及数据冗余等问题,其在运行异常检测算法时需要很大的计算量,对计算设备的计算能够提出了很高的要求。

因此,现亟需一种能够快速高效地实现高光谱目标检测的方法。

发明内容

本申请提出一种高光谱图像目标检测方法及装置,通过FPGA器件将复杂的计算过程进行移植,相对于传统的处理器,能够快速高效地进行高光谱图像目标检测。

本申请第一方面实施例提出了一种高光谱图像目标检测方法,所述方法基于FPGA开发板实现,所述方法包括:

获取待检测的高光谱图像,并形成所述高光谱图像的原始矩阵;

调用基于FPGA开发板实现的IP核,采用RX算法对所述高光谱图像矩阵进行计算,获得目标信息结果矩阵;

将所述目标信息结果矩阵与预设的判决阈值进行比较,若所述目标信息结果矩阵大于所述判决阈值,则确定所述目标信息结果矩阵对应的目标信息为所述高光谱图像的目标信息。

可选地,所述调用基于FPGA开发板实现的IP核,采用RX算法对所述高光谱图像矩阵进行计算,获得目标信息结果矩阵,包括:

调用基于FPGA开发板实现的IP核,根据所述原始矩阵计算所述高光谱图像的均值矩阵;

将所述原始矩阵划分为多个子矩阵,基于所有所述子矩阵计算所述高光谱图像的协方差矩阵及所述协方差矩阵的逆矩阵;

根据所述高光谱图像的原始矩阵、所述均值矩阵及所述协方差矩阵的逆矩阵,按照下述公式,计算所述目标信息结果矩阵:

RX=(γ-μ)

其中,RX表示目标信息结果矩阵,γ表示所述高光谱图像的原始矩阵,μ表示所述均值矩阵,(γ-μ)

可选地,调用基于FPGA开发板实现的IP核之前,还包括IP核形成步骤,所述IP核形成步骤包括:

在Vivado开发环境中,利用HLS设计工具,编写基于RX算法的HLS算法程序;

生成所述HLS算法程序对应的寄存器传输级代码,将所述HLS算法程序封装成供调用的IP核。

可选地,所述生成所述HLS算法程序对应的寄存器传输级代码之前,还包括:

根据历史采集的高光谱图像及采用MATLAB基于RX算法对所述历史采集的高光谱图像进行目标检测获得的检测结果,对所述HLS算法程序进行综合仿真,验证所述HLS算法程序的正确性。

可选地,所述生成所述HLS算法程序对应的寄存器传输级代码之前,还包括:

通过数据定点化、数组分割、循环展开及流水线处理的方式对所述HLS算法程序进行优化。

可选地,所述数据定点化包括:

根据所述HLS设计工具提供的定点数据类型,将所述HLS算法程序的C++代码转换成定点式的代码。

可选地,所述数组分割包括:

基于预设的分割规则对所述HLS算法程序的C++代码进行数组元素分割,形成指定块数的子元素,并为每个所述子元素提供数据输入端口和数据输出端口。

可选地,所述循环展开包括:

通过所述HLS设计工具提供的约束操作,对for循环进行展开。

可选地,所述生成所述HLS算法程序对应的寄存器传输级代码,包括:

通过对所述HLS算法程序添加指导和约束,将所述HLS算法程序的C++代码转换成寄存器传输级代码。

本申请第二方面的实施例提供了一种高光谱图像目标检测装置,所述装置包括:

采集模块,用于获取待检测的高光谱图像,并形成所述高光谱图像的原始矩阵;

FPGA控制模块,用于调用基于FPGA开发板实现的IP核,采用RX算法对所述高光谱图像矩阵进行计算,获得目标信息结果矩阵;以及

将所述目标信息结果矩阵与预设的判决阈值进行比较,若所述目标信息结果矩阵大于所述判决阈值,则确定所述目标信息结果矩阵对应的目标信息为所述高光谱图像的目标信息。

可选地,所述FPGA控制模块包括PYNQ-Z2开发板和分别形成在所述PYNQ-Z2开发板上的可编程逻辑端及处理系统端;

所述可编程逻辑端,用于接收和传输所述高光谱图像的原始矩阵;

所述PYNQ-Z2开发板,用于调用基于FPGA开发板实现的IP核,采用RX算法对所述高光谱图像矩阵进行计算,获得目标信息结果矩阵;以及

将所述目标信息结果矩阵与预设的判决阈值进行比较,若所述目标信息结果矩阵大于所述判决阈值,则确定所述目标信息结果矩阵对应的目标信息为所述高光谱图像的目标信息;

所述处理系统端,用于接收和传输所述目标信息。

本申请实施例中提供的技术方案,至少具有如下技术效果或优点:

本申请实施例提供的高光谱图像目标检测方法,采用FPGA嵌入式系统,调用基于FPGA开发板实现的IP核,采用RX算法对高光谱图像矩阵进行计算,获得目标信息结果矩阵,从而利用FPGA提供强大的并行计算能力以及灵活的器件设计方法,将复杂的计算过程进行移植,利用C++实现了RX算法的硬件加速,相对CPU并行能力更强,与GPU相比功耗更低,可以高效快速地完成高光谱图像目标检测。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。

在附图中:

图1示出了本申请实施例提供的高光谱图像目标检测方法的流程示意图;

图2示出了本申请实施例提供的高光谱图像目标检测方法的形成及优化过程示意图;

图3示出了本申请实施例提供的高光谱图像目标检测装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

为解决上述技术问题,以能够高效快速进行高光谱图像目标检测,本实施例对现有的处理器进行了研究分析,发现:传统处理器本身已无法满足高性能计算应用软件(如MATLAB)的性能需求,导致计算需求和性能之间出现缺口,单纯地提高处理器性能已不能有效加快高光谱图像目标检测的效率,所以,本实施例提出了一种高光谱图像目标检测方法及装置,应用基于FPGA(Field Programmable Gate Array,现场可编程门阵列)开发板实现的IP核,将RX算法进行移植,以能够快速高效地进行高光谱图像目标检测。

下面结合附图来描述根据本申请实施例提出的一种高光谱图像目标检测方法及装置。

如图1所示,本申请实施例提供了一种高光谱图像目标检测方法,该方法基于FPGA开发板实现,包括以下步骤:

步骤S1,获取待检测的高光谱图像,并形成高光谱图像的原始矩阵。

在本实施例中,采集的高光谱图像的原始矩阵中每个数据均为范围从0~255之间的浮点数,高光谱图像可以是一个W行、H列、L个波段的三维矩阵,该三维矩阵将待检测的高光谱图像的所有图像信息与光谱信息集合在一起。为便于并行计算,通常会对高光谱图像的三维矩阵进行预处理,将三维矩阵转换为L×N的二维矩阵,即上述高光谱图像由L个具有N(W×H)个像素点组成的矩阵,其中每一波段向量可记为x。

步骤S2,调用基于FPGA开发板实现的IP核,采用RX算法对高光谱图像矩阵进行计算,获得目标信息结果矩阵。

其中,采用RX算法对高光谱图像矩阵进行计算时,默认高光谱图像的背景信息服从数据空间白化,而且符合多维高斯分布。FPGA为Xilinx设计研发的现场可编程门阵列,FPGA开发板可以但不限于为PYNQ(如PYNQ-Z2)开发板,PYNQ开发板可设有PL(ProgarmmableLogic,可编程逻辑)端与PS(Processing System,处理系统)端,可通过AXI总线协议连接PL端和PS端,实现PL端和PS端之间的通信,以能够实现高性能地址映射通信,保证数据高速传输。

上述IP(Intellectual Property,知识产权)核是具有知识产权的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时搭积木之用。在这里可以理解为具有数据计算功能的FPGA软件逻辑模块,用于采用RX算法对高光谱图像矩阵进行计算。IP核通常包括三种形式:软核(Soft Core)、硬核(HardCore)和固核(Firm Core)。软核是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。硬核为具体的集成电路版图,经过实际的工艺流片验证,与工艺相关,同时还可针对特定工艺或购买商进行功耗和尺寸上的优化。固核是把在某一种现场可编程逻辑门阵列(FPGA)器件上实现的电路结构编码文件,介于硬核和软核之间,是可综合的、带有布局规则的软核。本实施例的IP核可理解为这里的固核。

于本实施例一具体实施方式中,步骤S2可以包括以下处理:调用基于FPGA开发板实现的IP核,根据原始矩阵计算高光谱图像的均值矩阵;将原始矩阵划分为多个子矩阵,基于所有子矩阵计算高光谱图像的协方差矩阵及协方差矩阵的逆矩阵;根据高光谱图像的原始矩阵、均值矩阵及协方差矩阵的逆矩阵,按照下述公式(1),计算目标信息结果矩阵:

RX=(γ-μ)

其中,RX表示目标信息结果矩阵,γ表示高光谱图像的原始矩阵,μ表示均值矩阵,(γ-μ)

在实际应用中,根据原始矩阵,可以采用下述公式(2)计算高光谱图像的均值矩阵:

其中,μ表示均值矩阵,L表示具有N(W×H)个像素点组成的矩阵的个数,x

在得到上述均值矩阵的基础上,可以用原始矩阵减去均值矩阵得到中间矩阵,进而按照下述公式(3)计算高光谱图像的背景协方差矩阵:

其中,C表示协方差矩阵,μ表示均值矩阵,L表示具有N(W×H)个像素点组成的矩阵的个数,x

具体地,本实施例采用基于FPGA开发板实现的IP核实施RX算法时,鉴于高光谱图像本身数据量较大、计算过程较为繁琐复杂,可以在计算协方差矩阵(即二维矩阵乘法)时,对上述原始矩阵进行分块划分(将原始矩阵划分为多个子矩阵),并且分块的进行矩阵乘法运算。比如,将原始矩阵划分为N个子矩阵,每个子矩阵可以包括m个像素点,每次输入可计算一个块,即计算m个像素点组成的矩阵,并且分块的进行矩阵乘法运算,N×m个像素点计算完成后,在输入下一m个像素点组成的矩阵,进行矩阵相乘,每次计算协方差结果矩阵均为N×N维的矩阵,将每次计算结果叠加更新,即可得到最终的协方差计算结果N×N维自相关矩阵。

在计算出上述协方差矩阵之后,可以采取QRD分解矩阵求逆法计算上述协方差矩阵的逆矩阵,然后再根据上述公式(1),便可计算出目标信息结果矩阵,即异常检测算子,用以进行异常检测。

需要说明的是,上述获得目标信息结果矩阵的方式只是本实施例的一种实施方式,本实施例并不以此为限,只要能通过基于FPGA开发板实现的IP核,采用RX算法获得目标信息结果矩阵即可。

于本实施例另一具体实施方式中,调用基于FPGA开发板实现的IP核之前,还包括IP核形成步骤,IP核形成步骤可以包括以下处理:在Vivado开发环境中,利用HLS设计工具,编写基于RX算法的HLS算法程序;生成HLS算法程序对应的寄存器传输级代码,将HLS算法程序封装成供调用的IP核。

其中,Vivado工具为Xilinx公司的FPGA开发板的开发工具,其可利用HLS(Highlevel Synthesis,高层次设计)工具,对RX算法进行实现。具体地,利用HLS设计工具可以使用软件工具(例如Cyberworkbench)把高级语言(例如C、C++、SystemC)的IP核转换为行为描述语言(如Verilog HDL、VHDL)的IP核,可以通过使用不同的限制文件(如FCNT)来获得不同面积(不同性能)的行为描述模块,而不需要改变高级语言IP核中的内容。寄存器传输级(Register Transfer Level,RTL)代码是一种行为描述语言,可使得算法过程更为简洁方便。

上述生成HLS算法程序对应的寄存器传输级代码,可以包括以下处理:通过对HLS算法程序添加指导(directives)和约束(constrains),将HLS算法程序的C++代码转换成寄存器传输级代码,以能够将HLS算法程序封装成供调用的IP核。

于本实施例另一具体实施方式中,在生成HLS算法程序对应的寄存器传输级代码之前,还可以包括以下处理:根据历史采集的高光谱图像及采用MATLAB基于RX算法对历史采集的高光谱图像进行目标检测获得的检测结果,对HLS算法程序进行综合仿真,验证HLS算法程序的正确性。

在实际应用上述IP核进行高光谱目标检测之前,可以先采用历史数据对该IP核使用的HLS算法程序进行验证。具体地,可以采用历史采集的高光谱图像,通过MATLAB基于RX算法对该历史采集的高光谱图像进行目标检测获得检测结果,然后将该历史采集的高光谱图像按照上述步骤通过上述IP核进行高光谱目标检测,并将检测结果与通过MATLAB基于RX算法获得的检测结果进行比较,若两者结果相差较大,则返回求均值矩阵的步骤,进行分析检查,纠正计算过程的错误,直到结果两者结果相同或极为接近,如此,完成对HLS算法程序的综合仿真,从而验证HLS算法程序的正确性。

进一步地,还可以对HLS算法程序进行优化,相应地,生成HLS算法程序对应的寄存器传输级代码之前,还可以包括以下处理:通过数据定点化、数组分割、循环展开及流水线处理的方式对HLS算法程序进行优化。

其中,数据定点化的过程可以包括以下处理:根据HLS设计工具提供的定点数据类型,将HLS算法程序的C++代码转换成定点式的代码。

在本实施例中,HLS设计工具可提供ap_fixed等定点数据类型,便于采用定点进行设计,或者将现有的C/C++编程语言转换成定点数据,用任意精度数据类型均能以更少的资源,获得相同的精度,同时可以运行在更高的时钟频率下。

上述数组分割的过程可以包括以下处理:基于预设的分割规则对HLS算法程序的C++代码进行数组元素分割,形成指定块数的子元素,并为每个子元素提供数据输入端口和数据输出端口。

在本实施例中,可提供block,cyclic和complete三种分割方式。其中,block分割是将数组元素分割为指定块数,然后依次填满每一块。Cyclic分割是先将数组元素分割为指定块数,然后先每块分配一个元素,再每块分配第二个元素,直至分配完所有元素。Complete分割是将将数组元素中的每个元素分配一个寄存器存储数据。可以为分割后的每个子元素提供数据输入端口和数据输出端口,如此,由于数据端口增加,可大幅度提高数据输入和输出的效率。

上述循环展开的过程可以包括以下处理:通过HLS设计工具提供的约束操作,对for循环进行展开。

在本实施例中,HLS可以但不限于提供UNROLL约束操作,可针对for循环进行展开,若每次循环操作彼此独立,可通过对硬件资源的充分利用来并行计算多次循环,提高计算的并行性(代价是以硬件资源换取速度),所以在循环展开系数设置时,可综合考虑资源和算法计算量之间的关系。

上述流水线处理的过程可通过流水线指令实现,该流水线指令可使用循环启动间隔(II)因子来定义两个for循环启动之间的时钟周期数,以缩短循环间的时钟延迟,可将整个循环控制在指定的周期内完成。

步骤S3,将目标信息结果矩阵与预设的判决阈值进行比较,若目标信息结果矩阵大于判决阈值,则确定目标信息结果矩阵对应的目标信息为高光谱图像的目标信息。

分析可得,异常检测算子RX实际上可以看做计算待检测点光谱与背景均值向量之间的马氏距离,所以,可将计算所得的异常检测算子RX与判决阈值λ进行比较,将大于判决阈值λ的异常检测算子RX对应的目标信息判断为异常目标信息,从而依次找到图像中所有异常信息,完成高光谱图像异常检测。

具体地,可使用Vivado的ISE功能模块,配置PS端和PL端,调用上述IP核,生成bit流文件并下载到FPGA开发板上。然后将预处理后的高光谱矩阵数据流(上述二维矩阵)传输到PL端,PL端将接收到的数据不断送入计算单元IP核中进行计算,计算结果可通过DDR4(即Double Data Rate SDRAM,双倍速率同步动态随机存取内存)传输到PS端,从而完成异常检测过程。

如图2所示,本实施例提供的高光谱图像目标检测方法的形成及优化过程如下:先获取捕捉到的高光谱图像,然后对该高光谱图像进行预处理,将其转化为二维矩阵,然后先通过MATLAB基于RX算法进行高光谱图像目标检测,即通过MATLAB依次计算上述二维矩阵的均值矩阵、协方差矩阵及异常检测算子,然后将该异常检测算子与判决阈值λ进行比较,从而获得异常目标信息RX1。之后,再通过基于FPGA开发板实现的IP核采用RX算法进行高光谱图像目标检测,即在上述二维矩阵的基础上,先输入矩阵分块划分,然后基于划分好的块矩阵进行矩阵相乘叠加更新,从而计算协方差矩阵,然后再通过QRD分解矩阵求逆得到上述协方差矩阵的逆矩阵,并采用上述HLS算法程序并行计算,以获得异常检测算子,同样将该异常检测算子与判决阈值λ进行比较,从而获得异常目标信息RX2,可以将异常目标信息RX2与异常目标信息RX1进行结果比较,若相同,则说明上述HLS算法程序正确可靠,可以综合生成PTL代码及对应的IP核,并进行PL端和PS端的接口连接,然后下载bit流文件将上述HLS算法程序移植到FPGA开发板上,通过调用IP核,便可执行该HLS算法程序,进行高光谱图像目标检测及结果显示。其中,在并行计算时还可以通过数据定点化、数组分割、循环展开及流水线处理的方式对并行计算过程进行优化。

本实施例提供的高光谱图像目标检测方法,采用FPGA嵌入式系统,调用基于FPGA开发板实现的IP核,采用RX算法对高光谱图像矩阵进行计算,获得目标信息结果矩阵,从而利用FPGA提供强大的并行计算能力以及灵活的器件设计方法,将复杂的计算过程进行移植,利用C++实现了RX算法的硬件加速,相对CPU并行能力更强,与GPU相比功耗更低,可以高效快速地完成高光谱图像目标检测。

基于上述高光谱图像目标检测相同的构思,本实施例还提供一种高光谱图像目标检测装置,如图3所示,该装置可以包括采集模块和FPGA控制模块,其中:

采集模块,用于获取待检测的高光谱图像,并形成高光谱图像的原始矩阵;

FPGA控制模块,用于调用基于FPGA开发板实现的IP核,采用RX算法对高光谱图像矩阵进行计算,获得目标信息结果矩阵;以及

将目标信息结果矩阵与预设的判决阈值进行比较,若目标信息结果矩阵大于判决阈值,则确定目标信息结果矩阵对应的目标信息为高光谱图像的目标信息。

本实施例提供的高光谱图像目标检测装置,可以实现上述高光谱图像目标检测方法,故至少可以实现上述高光谱图像目标检测方法能够实现的有益效果,在此不再赘述。

于本实施例一具体实施方式中,FPGA控制模块包括PYNQ-Z2开发板和分别形成在PYNQ-Z2开发板上的可编程逻辑(PL)端及处理系统(PS)端;

可编程逻辑端,用于接收和传输高光谱图像的原始矩阵;

PYNQ-Z2开发板,用于调用基于FPGA开发板实现的IP核,采用RX算法对高光谱图像矩阵进行计算,获得目标信息结果矩阵;以及

将目标信息结果矩阵与预设的判决阈值进行比较,若目标信息结果矩阵大于判决阈值,则确定目标信息结果矩阵对应的目标信息为高光谱图像的目标信息;

处理系统端,用于接收和传输目标信息。

应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 高光谱遥感图像水下目标检测方法、装置及计算机设备
  • 高光谱图像的目标检测方法、装置、设备及存储介质
技术分类

06120113227580