一种基于强聚类损失函数的多种类目标辨识方法及系统转让专利

申请号 : CN202310762241.9

文献号 : CN116503675B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 史琪李猛猛丁大志王绍然赖瑞鑫张晋伟曾董胡悦文明浩

申请人 : 南京理工大学

摘要 :

本发明公开了一种基于强聚类损失函数的多种类目标辨识方法及系统。所述方法为:根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数;加入目标的移位特征,进一步增大不同类别目标的损失值差异;编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算。所述系统包括强聚类损失函数构建、移位特征添加、硬件代码编写、FPGA、硬件层面电路图构建这些模块。本发明聚类效果明显、识别精度高,并且提升了计算效率。

权利要求 :

1.一种基于强聚类损失函数的多种类目标辨识方法,其特征在于,包括以下步骤:步骤1、根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;

步骤2、在步骤1的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异;

步骤3、编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;

步骤4、构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算;

步骤1中所述根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,具体如下:步骤1.1、建立损失函数的输入为CNN模型一个批次中各图片的特征值和标签值,输出是一个批次得到的相对损失值;

步骤1.2、用 表示各目标输入图片经过CNN模型推理得到的种类特征值,用表示各目标输入图片的种类标签值;

步骤1.3、计算两个目标种类特征值之间的欧拉距离 为:

(1)

步骤1.4、构建损失值修正项 :

(2)

步骤1.5、结合交叉熵损失函数,增加加权修正项,得到强聚类损失函数:(3)

其中 和 是指同一批次不同的两个输入目标, 为损失函数所计算的损失值, 是该批次样本数量, 是种类的总数, 是指样本 可能是种类 的概率,超参数 是指不同类别图像的特征的最小距离, 是修正项在整个损失函数中的权重,也是一个超参数。

2.根据权利要求1所述的基于强聚类损失函数的多种类目标辨识方法,其特征在于,步骤2中所述在步骤1的基础上加入目标的移位特征,具体如下:步骤2.1、损失函数的输入为同一批次待识别目标的特征值和标签值,在计算两个目标损失值时,对输入的标签值、特征值进行循环移位,将第一位移到最后一位,原来第二位变成第一位,以此类推循环移位;

步骤2.2、移位后的标签值、特征值再进行损失值的计算,实现特征组合;

步骤2.3、对损失函数的输入值进行持续移位,直至与最初输入相同;

步骤2.4、将不同移位位置的标签值与特征值,通过损失函数计算得到的损失值求和,作为最终的损失函数值。

3.根据权利要求2所述的基于强聚类损失函数的多种类目标辨识方法,其特征在于,步骤3中所述CNN模型的网络结构中包含的网络层有卷积层、池化层、全连接层;

每一层的输入通道数为 ,输入高度为 ,输入宽度为 ,采样核大小为 ,采样区域移动步长为 ,在样本数据外围补0的层数为 ,规定层的输出通道数为 ,得到网络层的输出高度 和输出宽度 :(4)。

4.根据权利要求3所述的基于强聚类损失函数的多种类目标辨识方法,其特征在于,对于卷积层,输出矩阵的每一个数据是卷积核区域内权重和输入矩阵数据的乘积与偏置之和,输入数据 与输出数据 的关系如式(5)所示:(5)

其中 是该输入数据对应的权重数据, 是该输入数据对应的偏置数据;

对于池化层,输出矩阵的每一个数据与采样核区域内的输入数据具有函数关系;对于最大池化层,输出的一个数据元素是输入数据在采样核区域内的最大值;对于最小池化层,输出的一个数据元素是输入数据在采样核区域内的最小值;对于平均池化层,输出的一个数据元素是输入数据在采样核区域内的平均值;

对于全连接层,采用高度、宽度与输入高度、输入宽度相同大小的卷积核,进行一次卷积计算得到,全连接层输出矩阵形状为 。

5.根据权利要求4所述的基于强聚类损失函数的多种类目标辨识方法,其特征在于,步骤3中所述编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中,具体如下:步骤3.1、根据网络层计算原理,在框架中编写每一个网络层的功能代码;

步骤3.2、在网络层计算过程中,根据FPGA上能利用的最大资源,选定一个循环结构进行优化;首先要固定每个网络层循环边界,再在功能代码层面对选定for循环进行流水线展开,实现一个周期内并行地进行多个乘加计算,获得优化代码;

步骤3.3、在HLS框架内对优化代码进行仿真、综合,再将C转换为VHDL代码,实现RTL级别的设计并生成每个网络层的IP核;

步骤3.4、将训练过程中的模型文件中每一层网络的权重和偏置数据转换成.bin文件,并和待识别的图片一同存放在FPGA的PS端。

6.根据权利要求5所述的基于强聚类损失函数的多种类目标辨识方法,其特征在于,步骤4所述构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算,具体为:步骤4.1、将优化代码生成的IP核导入硬件电路工程设计中,再加入FPGA开发板的Zynq处理器模块;

步骤4.2、对FPGA开发板的Zynq处理器模块进行配置,打开FPGA的PL端与PS端进行数据传输的128位的S_AXI总线,配置计算过程中用到的I/O外围设备,并为专用于内部固化的外设I/O和处理器DDR内存寻址接口设计外部连接;在为不同IP核的输入、输出数据在总线上分配固定范围的地址后,对所有模块进行连线,形成硬件设计电路图;

步骤4.3、对硬件设计电路图添加顶层文件,并生成比特流文件,该比特流文件包含自定义具有网络层功能的IP核、所有模块的设置以及整个系统的整体设计,通过PS端对模块的调用,实现对FPGA的PL端片上资源的并行调用,进而完成CNN模型对目标识别过程中的所有计算过程。

7.一种基于强聚类损失函数的多种类目标辨识系统,其特征在于,该系统用于实现权利要求1至6中任一项所述的基于强聚类损失函数的多种类目标辨识方法,所述系统具体包括强聚类损失函数构建模块、移位特征添加模块、硬件代码编写模块、FPGA、硬件层面电路图构建模块,其中:强聚类损失函数构建模块,用于根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;

移位特征添加模块,用于在强聚类损失函数构建模块的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异;

硬件代码编写模块,用于编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;

硬件层面电路图构建模块,用于构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算。

说明书 :

一种基于强聚类损失函数的多种类目标辨识方法及系统

技术领域

[0001] 本发明涉及雷达目标识别技术领域,特别是一种基于强聚类损失函数的多种类目标辨识方法及系统。

背景技术

[0002] 对空间目标进行有效探测和种类识别,是雷达目标识别领域面临的挑战。随着理论的完善和计算机算力的提升,深度学习逐渐成为高效便捷的识别工具。卷积神经网络(Convolutional Neural Networks, CNN)对图像特征具有很好的识别效果,近年被广泛运用在目标识别领域。神经网络模型通过不断迭代计算待识别目标的损失函数值,得到最贴近标签值的特征值,合适的损失函数可以帮助迭代过程的加速,高效准确地实现聚类过程。另一方面,FPGA作为高度灵活的可编程逻辑电路,可以通过代码灵活地处理各种逻辑指令,集成度高,功耗较低,且体积相比GPU大大减小。
[0003] 近年来,人们对于使用深度学习方法进行目标分类进行了一些研究。文献1(Kim B K, Kang H S, Park S O. Drone classification using convolutional neural networks with merged Doppler images[J]. IEEE Geoscience and Remote Sensing Letters, 2016, 14(1): 38‑42.)对无人机的回波信号时频图以及进行频域处理后的CVD进行合并进行分类,但仅对两种无人机进行分类,种类较少。文献2(Oh B S, Guo X, Wan F, et al. Micro‑Doppler mini‑UAV classification using empirical‑mode decomposition features[J]. IEEE Geoscience and Remote Sensing Letters, 2017, 15(2): 227‑231.)对十一种无人机信号进行经验模式分解,通过对分解得到的本征模函数进行排序,并采用支持向量机进行分类,但对两种无人机分类存在较大偏差,另外九种分类精度也不高。因此需要一种基于强聚类损失函数的卷积神经网络模型针对较多种类目标开展分类问题的研究。在神经网络推理计算过程中,FPGA凭借低功耗、高效率、体积小的优点成为特定环境下进行推理识别过程的最优选择。文献3(Ricci M, Stitic B, Urbinati L, Guglielmo GD, Vasquez JAT, Carloni LP, et al. Machine‑Learning‑Based Microwave Sensing: A Case Study for the Food Industry. IEEE Journal on Emerging and Selected Topics in Circuits and Systems. 2021;11(3):503‑14.)利用神经网络对食品罐子里是否有污染物进行分辨,并在FPGA上搭建检测平台,实现硬件平台上的快速准确识别,但针对的仅是二分类问题,采用的网络模型较为简单,分类效果较好。

发明内容

[0004] 本发明的目的在于提供一种基于强聚类损失函数的多种类目标辨识方法及系统,根据卷积神经网络模型提取散射模型微多普勒频率中不同目标特性,并利用FPGA硬件资源提升计算效率,从而在低功耗硬件平台上达到更准确的分类效果。
[0005] 实现本发明目的的技术解决方案为:一种基于强聚类损失函数的多种类目标辨识方法,包括以下步骤:
[0006] 步骤1、根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;
[0007] 步骤2、在步骤1的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异;
[0008] 步骤3、编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;
[0009] 步骤4、构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算。
[0010] 一种基于强聚类损失函数的多种类目标辨识系统,该系统用于实现所述的基于强聚类损失函数的多种类目标辨识方法,所述系统具体包括强聚类损失函数构建模块、移位特征添加模块、硬件代码编写模块、FPGA、硬件层面电路图构建模块,其中:
[0011] 强聚类损失函数构建模块,用于根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;
[0012] 移位特征添加模块,用于在强聚类损失函数构建模块的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异;
[0013] 硬件代码编写模块,用于编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;
[0014] 硬件层面电路图构建模块,用于构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算。
[0015] 本发明与现有技术相比,其显著优点为:(1)基于不同目标的标签值与特征值的特点,加入移位过程筛选同种类目标的相同特征,进行提高损失函数聚类功能的设计;(2)通过自定义IP核实现Tensorflow框架下网络层函数的计算功能,并进行计算过程的并行加速,优化过程高效易懂,便于快速理解FPGA硬件结构;(3)自定义IP核与Zynq处理器之间利用AXI总线进行传输,结合片上资源的合理安排,在Xilinx公司的FPGA硬件平台上实现神经网络的分类功能,与传统方法相比,分类精度更高,聚类效果更明显,整体功耗更低。

附图说明

[0016] 图1是本发明中无人机目标的运动过程示意图。
[0017] 图2是本发明中待分类的九种无人机目标简化模型示意图。
[0018] 图3是传统交叉熵损失函数的聚类效果图。
[0019] 图4是本发明中使用自定义损失函数的聚类效果图。
[0020] 图5是本发明中构建卷积层IP核的示意图。
[0021] 图6是本发明中构建池化层IP核的示意图。
[0022] 图7是本发明中整体硬件设计示意图。

具体实施方式

[0023] 本发明一种基于强聚类损失函数的多种类目标辨识实现方法,包括以下步骤:
[0024] 步骤1、根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;通过增大不同种类目标的损失值的差异,实现更明显的聚类效果;
[0025] 步骤2、在步骤1的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异,从而实现多种类目标分类精度的提升;
[0026] 步骤3、编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;
[0027] 步骤4、构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS(处理系统)端和PL(可编程逻辑)端联合生成比特流,实现CNN模型在FPGA上的运算。
[0028] 作为一种具体实施例,步骤1中所述根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,建立一种两个阶段的损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加,从而实现识别精度的提高,具体如下:
[0029] 步骤1.1、建立损失函数的输入为CNN模型一个批次中各图片的特征值和标签值,输出是一个批次得到的相对损失值;
[0030] 步骤1.2、用 表示各目标输入图片经过CNN模型推理得到的种类特征值,用表示各目标输入图片的种类标签值;
[0031] 步骤1.3、计算两个目标种类特征值之间的欧拉距离 为:
[0032] (1)
[0033] 步骤1.4、构建损失值修正项 :
[0034] (2)
[0035] 步骤1.5、结合分类问题传统使用的交叉熵损失函数,增加加权修正项,得到强聚类损失函数:
[0036] (3)
[0037] 其中 和 是指同一批次不同的两个输入目标, 为损失函数所计算的损失值,是该批次样本数量, 是种类的总数, 是指样本 可能是种类 的概率,超参数是指不同类别图像的特征的最小距离, 是修正项在整个损失函数中的权重,也是一个超参数。
[0038] 根据式(1)(3),本发明可构建在神经网络训练过程中明显增加聚类效果的损失~函数,并通过迭代计算,获得分类精度更高的网络模型。
[0039] 作为一种具体实施例,步骤2中所述在步骤1的基础上加入目标的移位特征,使得损失值差异进一步增大,从而实现多种类目标分类精度的提升,具体如下:
[0040] 步骤2.1、损失函数的输入为同一批次待识别目标的特征值和标签值,在式(1)计算两个目标损失值时,对输入的标签值、特征值进行循环移位,将第一位移到最后一位,原来第二位变成第一位,以此类推循环移位;
[0041] 步骤2.2、移位后的标签值、特征值再进行损失值的计算,实现特征组合;
[0042] 步骤2.3、对损失函数的输入值进行持续移位,直至与最初输入相同;
[0043] 步骤2.4、将不同移位位置的标签值与特征值,通过损失函数计算得到的损失值求和,作为最终的损失函数值。通过对不同种类目标在不同组合下的特征的学习,增大不同种类目标特征值之间的距离,缩小同一种类目标特征值之间的距离,从而达到增强聚类的效果,提高对多种类目标分类的准确率。
[0044] 作为一种具体实施例,步骤3中所述CNN模型的网络结构中包含的网络层有卷积层、池化层、全连接层;
[0045] 每一层的输入通道数为 ,输入高度为 ,输入宽度为 ,采样核大小为 ,采样区域移动步长为 ,在样本数据外围补0的层数为 ,规定层的输出通道数为 ,得到网络层的输出高度 和输出宽度 :
[0046] (4)
[0047] 作为一种具体实施例,对于卷积层,输出矩阵的每一个数据是卷积核区域内权重和输入矩阵数据的乘积与偏置之和,输入数据 与输出数据 的关系如式(5)所示:
[0048] (5)
[0049] 其中 是该输入数据对应的权重数据, 是该输入数据对应的偏置数据;
[0050] 对于池化层,输出矩阵的每一个数据与采样核区域内的输入数据具有函数关系;对于最大池化层,输出的一个数据元素是输入数据在采样核区域内的最大值;对于最小池化层,输出的一个数据元素是输入数据在采样核区域内的最小值;对于平均池化层,输出的一个数据元素是输入数据在采样核区域内的平均值;
[0051] 对于全连接层,采用高度、宽度与输入高度、输入宽度相同大小的卷积核,进行一次卷积计算得到,全连接层输出矩阵形状为 。
[0052] 作为一种具体实施例,步骤3中所述编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中,具体如下:
[0053] 步骤3.1、根据网络层计算原理,在框架中编写每一个网络层的功能代码;
[0054] 步骤3.2、在网络层计算过程中,由于要进行多次乘加计算,存在多个嵌套的for循环结构,若采用顺序进行的方式进行循环,会导致计算时间过长,同时FPGA上的资源利用率较低。为了提高计算效率,根据FPGA上能利用的最大资源,选定一个循环结构进行优化;首先要固定每个网络层循环边界,再在功能代码层面对选定for循环进行流水线展开,实现一个周期内并行地进行多个乘加计算,获得优化代码,从而提高计算效率;
[0055] 步骤3.3、在HLS框架内对优化代码进行仿真、综合,再将C转换为VHDL代码,实现RTL级别的设计并生成每个网络层的IP核;本发明基于HLS pragma优化指令,极大的减少网络层中对数据的计算时间,从而提高卷积神经网络对目标的识别效率;
[0056] 步骤3.4、将训练过程中的模型文件中每一层网络的权重和偏置数据转换成.bin文件,并和待识别的图片一同存放在FPGA的PS端。
[0057] 作为一种具体实施例,步骤4所述构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算,具体为:
[0058] 步骤4.1、将优化代码生成的IP核导入硬件电路工程设计中,再加入FPGA开发板的Zynq处理器模块;
[0059] 步骤4.2、对FPGA开发板的Zynq处理器模块进行配置,打开FPGA的PL端与PS端进行数据传输的128位的S_AXI总线,配置计算过程中用到的I/O外围设备,并为专用于内部固化的外设I/O和处理器DDR内存寻址接口设计外部连接;在为不同IP核的输入、输出数据在总线上分配固定范围的地址后,对所有模块进行连线,形成硬件设计电路图;
[0060] 步骤4.3、对硬件设计电路图添加顶层文件,并生成比特流文件,该比特流文件包含自定义具有网络层功能的IP核、所有模块的设置以及整个系统的整体设计,通过PS端对模块的调用,实现对FPGA的PL端片上资源的并行调用,进而完成CNN模型对目标识别过程中的所有计算过程。
[0061] 本发明采用Vivado框架进行开发,利用FPGA的PS端对PL端片上资源进行调用,通过自定义模块实现网络层计算功能。最后输入待识别目标的数据,按照网络结构进行顺序计算,实现CNN在FPGA上的高效运算。
[0062] 本发明还提供一种基于强聚类损失函数的多种类目标辨识系统,该系统用于实现所述的基于强聚类损失函数的多种类目标辨识方法,所述系统具体包括强聚类损失函数构建模块、移位特征添加模块、硬件代码编写模块、FPGA、硬件层面电路图构建模块,其中:
[0063] 强聚类损失函数构建模块,用于根据同一批次待识别目标标签的特征值和标签值特点,构建强聚类损失函数,使得随着迭代次数的增加,不同类别目标之间得到损失函数结果的差距增加;
[0064] 移位特征添加模块,用于在强聚类损失函数构建模块的基础上加入目标的移位特征,进一步增大不同类别目标的损失值差异;
[0065] 硬件代码编写模块,用于编写CNN模型的网络层硬件代码并进行并行加速,生成的RTL级代码结合网络权重数据、偏置数据迁移到FPGA中;
[0066] 硬件层面电路图构建模块,用于构建硬件层面电路图,对RTL级代码生成的IP核和Zynq处理器部署硬件设计,PS端和PL端联合生成比特流,实现CNN模型在FPGA上的运算。
[0067] 下面结合附图及具体实施例对本发明作进一步详细描述。
[0068] 实施例1
[0069] 本实施例提供一种基于强聚类损失函数的多种类目标辨识实现方法,并应用于实际分类问题。以无人机目标为例,无人机目标的运动过程示意图如图1所示,图1中描述了无人机模型运动过程中,叶片端点主散射点由 运动到 的过程。运动时间为 ,叶片自旋频率为 ,初始时刻叶片中心原点为 ,旋转角度为 ,距离向量为 ,方位角为 ,俯仰角为 ;运动结束后叶片中心原点运动到 ,旋转角度为 ,
位移为 ,距离向量 ,其中 是 到 之间的距离向
量。待分类的九种无人机目标简化模型如图2所示,步骤如下:
[0070] 步骤1、根据待识别目标标签的特征值和标签值特点,设计训练过程中损失值的计算公式,通过增大不同种类目标的损失值的差异,实现更明显的聚类效果;
[0071] 本实施例中的损失函数的输入为CNN一个批次中各图片的特征值和标签值,输出是一个批次得到的相对损失值。 为各图片的特征值, 为各图片的标签值,首先通过二者计算出两个目标特征值之间的欧拉距离 ,再构建损失值的修正项,最后结合分类问题传统使用的交叉熵损失函数,增加加权后的修正项,得到新的损失函数。
[0072] 步骤2、在步骤1的基础上加入目标特征值的移位,使得损失值差异进一步增大,从而实现多种类目标分类精度的提升;
[0073] 损失函数的输入为同一批次九种类无人机目标的特征值和标签值,在计算损失值时,对输入的九位标签值、特征值进行循环移位,将第一位移到第九位,原来第二位变成第一位,以此类推。移位后的标签值、特征值再进行损失值的计算,达到特征组合的效果。对损失函数的输入值进行持续移位,直至与最初输入相同。将不同移位位置的标签值与特征值通过损失公式计算得到的值求和,作为最终的损失函数值。通过对九种类无人机目标在不同组合下的特征的学习,增大不同种类无人机目标计算结果之间的距离,拉近同种类无人机的计算结果,提高对多种类无人机目标的聚类效果以及分类准确率。
[0074] 根据以上方法,本实施例可构建聚类效果明显增加的损失函数,并在训练过程中进行迭代计算,即可获得分类精度更高的网络模型。图3、图4是增强聚类效果的损失函数与传统交叉熵损失函数的聚类效果对比图。
[0075] 步骤3、编写模型网络层的硬件代码并进行并行加速,生成的RTL级代码结合网络模型权重数据、偏置数据迁移到FPGA中;
[0076] 本发明实施对象为卷积神经网络,网络结构中包含的网络层有:卷积层、池化层、全连接层。根据网络层计算原理,在HLS框架中编写每一个网络层的硬件代码。在网络层计算过程中,由于要进行多次乘加计算,存在多个嵌套的for循环结构,若采用顺序进行的方式进行循环计算,会导致推理时间过长,同时FPGA上的资源利用率较低。为了提高计算效率,根据FPGA上能利用的最大资源,选定一个或几个循环结构进行优化。首先要固定每个网络层循环边界,再在功能代码层面对选定for循环进行流水线展开,实现一个周期内并行地进行多个乘加计算,获得优化代码,从而提高计算效率。
[0077] 后续在HLS框架内对优化代码进行仿真、综合,再将C转换为VHDL代码,实现RTL级别的设计并生成每个网络层的IP核,图5是生成的卷积层IP核,图6是生成的池化层的IP核,图5、图6中,s_axi_AXILiteS是指将使用的S_AXI总线端口集成为一个AXI4‑Lite接口,ap_clk是IP核的时钟控制端口,ap_rst_n是IP核的复位控制端口,m_axi_gmem是PS端的DDR和PL端的BRAM互相交换内存数据的端口,interrupt是IP核的中断控制端口。本发明基于HLS pragma优化指令,极大的减少网络层中对数据的计算时间,从而提高卷积神经网络对目标的识别效率。
[0078] 进一步地,步骤4所描述的对RTL级代码生成的IP核和Zynq处理器部署连线构建硬件层面电路图。PS端和PL端联合生成比特流,实现CNN在FPGA上的运算,构建硬件电路设计的过程具体如下:
[0079] ①将优化代码生成的IP核导入硬件电路工程设计中,再加入FPGA开发板的Zynq处理器模块;
[0080] ②对FPGA开发板的Zynq处理器模块进行配置,打开FPGA的PL端与PS端进行数据传输的128位的S_AXI总线,配置计算过程中用到的I/O外围设备,并为专用于内部固化的外设I/O和处理器DDR内存寻址接口设计外部连接。在为不同IP核的输入、输出数据在总线上分配固定范围的地址后,将Zynq处理器与AXI Interconnect进行连接,使得数据通过存储器映射进行传输,再连接自定义IP核对数据进行计算,得到的数据经过AXI SmartConnect进行在DDR上的读写,再传回处理器进行下一步计算操作。最后为上述所有模块加入时钟信号和复位信号的控制,对所有模块进行连线,如图7所示,形成硬件设计电路图。
[0081] ③对硬件设计电路图添加顶层文件,并生成比特流文件。该文件包含自定义具有网络层功能的IP核、所有模块的设置以及整个系统的整体设计,通过PS端对模块的调用,实现对FPGA的PL端片上资源的并行调用,进而完成卷积神经网络对目标识别过程中的所有计算过程。
[0082] 本发明采用Vivado框架进行开发,利用FPGA的PS端对PL端片上资源进行调用,通过自定义模块实现网络层计算功能。最后输入待识别无人机目标的数据,通过硬件网络结构得到推理结果,实现CNN在FPGA上的高效运算。
[0083] 实施例2
[0084] 针对空间无人机目标的种类多,分类精度较低,聚类效果差等问题,且传统根据雷达回波数据对目标种类进行辨识的方法所需时间较长,不适合广泛推广使用。因此将本发明基于强聚类损失函数的多种类目标辨识实现方法应用于九种无人机分类问题。
[0085] 本实施例研究对象是九种不同类型的无人机,其中单旋翼、四旋翼、六旋翼无人机各三种,相同旋翼数量的不同种类无人机在机翼形状、大小上存在明显区别。无人机均沿x轴放置,旋翼与z轴垂直并沿z轴旋转,雷达中心频率为10GHz,雷达俯仰角 ,扫角间隔为 ,扫角个数为6个;雷达方位角 ,扫角间隔为 ,扫角个数为7个;无人机旋翼旋转角度从 到 ,角度个数为36001个,旋翼自旋频率 ,扫角间隔为 ,扫角个数为16个。脉冲重复频率 ,观测时间 。通过对此条件下多种无人机进行电磁仿真得到的雷达RCS回波数据进行时频分析,得到多种类无人机的时频图作为数据集,借助强聚类损失函数进行计算,得到较高的分类精度。
[0086] 可以看到,基于强聚类损失函数的卷积神经网络识别效果明显优于普通网络识别结果。将优化后神经网络迁移至FPGA硬件平台上实现,与CPU相比,节省推理时间;与GPU相比,降低功耗,设备体积也大大减小。