CN114359662B - 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法 - Google Patents

一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法 Download PDF

Info

Publication number
CN114359662B
CN114359662B CN202111607019.9A CN202111607019A CN114359662B CN 114359662 B CN114359662 B CN 114359662B CN 202111607019 A CN202111607019 A CN 202111607019A CN 114359662 B CN114359662 B CN 114359662B
Authority
CN
China
Prior art keywords
resolution
network
layer
convolution
low
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
Application number
CN202111607019.9A
Other languages
English (en)
Other versions
CN114359662A (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.)
Jiangsu University
Original Assignee
Jiangsu 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 Jiangsu University filed Critical Jiangsu University
Priority to CN202111607019.9A priority Critical patent/CN114359662B/zh
Publication of CN114359662A publication Critical patent/CN114359662A/zh
Application granted granted Critical
Publication of CN114359662B publication Critical patent/CN114359662B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,包括如下步骤:第一步:卷积神经网络算法模型融合多分辨率,通过YOLO‑V2算法融合多分辨率模型;第二步:使用设置高分辨率的YOLO‑V2模型进行训练;第三步:重组及量化权重参数;第四步:在异构FPGA平台通过硬件和软件实现Multi‑resolution YOLO‑V2算法。本发明提出了多分辨率融合技术,并运用此技术改进了YOLO‑V2算法,在几乎不损失速度的情况下较大的提高了网络的检测能力。

Description

一种基于异构FPGA和融合多分辨率的卷积神经网络的实现 方法
技术领域
本发明涉及目标检测领域,具体指的是一种基于异构FPGA平台和融合多分辨率的卷积神经网络的实现方法。
背景技术
卷积神经网络是目前在目标检测领域应用最广泛的网络模型,它是一种深度学习技术,由多层感知机(MLP)演变而来,由于其具有局部区域连接、权值共享的结构特点,且其学习和工作都是端到端进行的,使得卷积神经网络在图像处理领域表现出色;同时卷积神经网络结构灵活,设计者可以根据自己的需要构造出最适合的网络结构,这非常有利于检测任务的实现。
目前常用的硬件平台有CPU、GPU和FPGA。CPU是最传统的方式,但其处理大量数据的性能较差;GPU由于存在大量的并行运算单元,可充分发挥卷积神经网络的并行性,因此计算能力得到了极大的提高。然而GPU功耗非常高,无法应用在低功耗或便携场景。FPGA则可以实现一定的并行计算,且功耗远远低于GPU。
但是由于卷积神经网络庞大的计算量,使得在使用FPGA平台实现卷积神经网络模型时,必须在速度和精度之间做取舍。以YOLO-V2算法为例,在实测中,使用288×288输入分辨率时的速度是输入分辨率为576×576时的1.64倍,mAP却降低12%。
因此,怎样在不损失速度的前提下提高识别精度是一个具有十分重要意义的研究内容。
发明内容
基于上述现有技术的不足,本发明提出了一种基于异构FPGA平台和融合多分辨率的卷积神经网络的实现方法。
本发明的技术方案为:
基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,包括如下步骤:
第一步:卷积神经网络算法模型融合多分辨率,通过YOLO-V2算法融合多分辨率模型;
第二步:使用设置高分辨率的YOLO-V2模型进行训练;
第三步:重组及量化权重参数;
第四步:在异构FPGA平台通过硬件和软件实现Multi-resolution YOLO-V2算法。
进一步,第一步的具体过程为:通过将其passthrough结构设计为从高低分辨率两个网络串连,以增强整体网络的识别能力,融合的高分辨率网络包括9个卷积层、5个池化层和1个重排序层;其中各个卷积层的卷积核大小可以适当增大,以确保在高分辨率网络在低分辨率网络运算至passthrough结构前完成运算。
进一步,高分辨率设计为低分辨率的2倍,高分辨率网络的卷积层数和池化层数适当增减,但是需要保证最终的维度和低分辨率网络是一样的;设计高分辨率网络时,去掉池化层,将前一层的卷积层的步长改为双倍代替。
进一步,第二步的具体过程为:在将目标图片制作为VOC格式数据集后,将网络参数配置为高分辨率,启动训练,直至loss不再下降而mAP不再上升为止,保存最终的权重参数;低分辨率网络也使用该权重参数。
进一步,第三步的具体过程为:
将卷积核参数weight和偏置bias从原权重文件中分离,并与批归一化参数合并,计算公式为:
Figure BDA0003431197670000021
Figure BDA0003431197670000022
其中,Wb为原批标准化权重值,Wc为原卷积计算权重值,B为原批标准化偏置值,μ为原批标准化均值,α为原批标准化标准差;
由于FPGA难以实现浮点数,取而代之的是定点数,采用float-32到fixed-16的精确转换,转换公式如下:
xfixed=int(xfloat×2exp)
其中xfloat为原浮点数,xfixed为定点化后的定点数,int表示取整操作,exp为阶码,每一层的阶码均相同,其最优值通过比较前后的网络的各个参数的参数平方和之差来确定。
进一步,第四步通过硬件实现Multi-resolution YOLO-V2算法的具体过程为:
在FPGA内设计了缩放模块、低分辨率卷积网络、高分辨率卷积网络和总线仲裁模块;
缩放模块用于将输入的高分辨率图片缩小,由于高分辨率设计为低分辨率的2倍,因此只需要将图像奇数行、奇数列的像素点抽取即可;
低分辨率卷积网络中包含卷积层、最大池化层、批归一化层、路由层、和重排序层;将卷积层和批归一化层融合;池化层实现方式则与卷积层类似,只是将内积运算改为判断最大值,公式如下:
Figure BDA0003431197670000031
其中,Yjik表示第j个特征映射区域的池化的输出;Rik表示特征区域,Xjpq表示Rik中(p,q)处的像素值;
利用高层次综合HLS工具实现以上三种层,下面介绍基于HLS的设计方法:
IP模块采用AXI4接口,并将端口定义为一维数据流端口,包括输入特征图数据流、输出特征图数据流、权重数据流和配置数据流;
其中,配置数据流包括输入、输出特征图维度信息,配置数据流则包括当前层的类型;
进一步的,修改基于C语言开发的模型,按照以上思路,利用“case”语句,将各种类型的层区分,但是封装为一个函数;
进一步的,编写仿真模块,通过for循环和参数传递,实现用上述同一个函数构建整完整的YOLO-V2算法;
进一步的,利用HLS工具将C模型转换为Verilog IP,放入FPGA执行,而仿真模块则放入ARM;
路由层和重排序层实质上都是对数据的重新整理,因此在实现时只需改变内存地址和位宽即可;以上,低分辨率网络构建完成;
高分辨率卷积网络的构建,类似低分辨率网络,主要是在FPGA内包含主控模块,负责循环调用卷积IP,完成高分辨率网络的构建;
同时主控模块包含一个使能信号和一组状态信号,当整个网络开始计算时,主控模块接收“start”脉冲信号,然后开始进行高分辨率网络的计算任务,同时将“busy”信号拉高,计算完成后将其清零,同时拉高“done”信号,并将在下一个“start”脉冲信号到来时将其清零;
总线仲裁模块则是为了适应本发明多路AXI总线读取DDR数据的设计,选用了crossbar互联结构。
进一步,crossbar互联结构的具体过程为:
5)采用多AXI接口,支持多AXI从机接口和单AXI主机接口;
6)共享地址通道,独立的多数据通道架构;
7)并行crossbar读和写通道,当发生多读写的时候,可以完全并行,互不干扰;
8)共享的写地址仲裁器,加上一个共享的读地址仲裁器,仲裁器并不会影响吞吐。
进一步,第四步通过软件实现Multi-resolution YOLO-V2算法的具体过程为:
A)获取图像;
B)PS侧做图像预处理;
C)并行运行高、低分辨率网络;
PS侧作为主控单元,在完成图像预处理之后,首先启动高分辨率网络的运行,然后启动缩放模块及低分辨率网络的运行;
低分辨率网络实际上是由PS侧通过控制PL侧循环启动构成的,每启动一次,代表不同的网络层,配置不同的网络参数。PL侧进行卷积、池化、批归一化等运算;
而高分辨率网络则是在收到PS侧启动信号后由PL侧的主控模块控制运行;
高、低分辨率网络并行运行,这样在几乎不损失原低分辨率网络速度的情况下,增加了整体网络的细节特征,即可在后续的运算中提高对目标的检测能力;
D)融合多分辨率网络;
E)输出特征数组;
在融合之后,仍需经过几个卷积层来进一步提取特征,网络最终输出9×9×5×6=2430维包含特征参数的数组,并将其存入DDR内;
F)图像后处理;
PS侧根据输出的数组,计算出每个有效框的中心坐标及长宽值;
计算出每两个框的交并比IOU;并进行进行非极大值抑制NMS:当两个框的交并比过高时,舍弃置信度较低的框;最后将最终得到的有效框在原图上画出,得到最终输出的图。
本发明的有益效果为:
1、本发明提出了多分辨率融合技术,并运用此技术改进了YOLO-V2算法,在几乎不损失速度的情况下较大的提高了网络的检测能力。
2、基于异构FPGA开发平台,实现了Multi-resolution YOLO-V2算法模型,在低功耗的情况下,本装置有着较高的精度。同时克服了实时目标检测系统精度不高和目前主流的基于GPU平台的目标检测系统功耗过大的问题,实现了低功耗便携设备的高精度实时检测。
3、本发明还引入了outstanding技术和乱序操作技术,提升了系统性能。另外,本发明具有通用性,也可用于其他利用FPGA做硬件加速的装置。
附图说明
图1为本发明所述的基于异构FPGA和融合多分辨率的卷积神经网络的实现方法流程图;
图2为本发明所述的融合多分辨率的卷积神经网络—Multi-resolution YOLO-V2结构图;
图3为本发明所述的基于异构FPGA的系统架构图;
图4为本发明所述的系统处理方法流程图;
图5为本发明所述的outstanding设计示意图;
具体实施方式
参阅图1,为本发明实施例基于异构FPGA和融合多分辨率的卷积神经网络的实现方法的流程图。具体实施方式如下:
第一步:卷积神经网络(CNN)算法模型融合多分辨率,本发明实施例以YOLO-V2算法融合多分辨率模型为例叙述。
参阅图2,为融合了多分辨率的YOLO-V2改进模型——Multi-resolution YOLO-V2模型结构图。
通过将其passthrough结构设计为从高低分辨率两个网络串连,以增强整体网络的识别能力。这样做区别于单一使用高分辨率网络的优点是将高分辨率网络设计为passthrough结构的前端网络,高分辨率网络的层数少,总计算量少,并且在实现时可以和低分辨率网络同步进行计算。可以实现在几乎不降低原低分辨率网络识别速度的情况下,提高网络的识别精度。
进一步的,融合的高分辨率网络包括9个卷积层、5个池化层和1个重排序层。其中各个卷积层的卷积核大小可以适当增大,以确保在高分辨率网络在低分辨率网络运算至passthrough结构前完成运算。
进一步的,高分辨率设计为低分辨率的2倍,高分辨率网络的卷积层数和池化层数也可适当增减,但是需要保证最终的维度和低分辨率网络是一样的。
作为可选的,设计高分辨率网络时,可以去掉池化层,将前一层的卷积层的步长改为双倍代替。
第二步:使用设置高分辨率的YOLO-V2模型进行训练。
在将目标图片制作为VOC格式数据集后,将网络参数配置为高分辨率,启动训练,直至loss不再下降而mAP不再上升为止,保存最终的权重参数。
低分辨率网络也可使用该权重参数。
第三步:重组及量化权重参数。
将卷积核参数weight和偏置bias从原权重文件中分离,并与批归一化参数合并。计算公式为:
Figure BDA0003431197670000061
Figure BDA0003431197670000062
其中,Wb为原批标准化权重值,Wc为原卷积计算权重值,B为原批标准化偏置值,μ为原批标准化均值,α为原批标准化标准差。
由于FPGA难以实现浮点数,取而代之的是定点数。在本发明实施例中采用采用float-32到fixed-16的精确转换。转换公式如下:
xfixed=int(xfloat×2exp)
其中exp为阶码,在本发明实施例中每一层的阶码均相同,其最优值通过比较前后的网络的各个参数的参数平方和之差来确定。
第四步:在异构FPGA平台实现Multi-resolution YOLO-V2算法。
参阅图3,在异构FPGA平台实现YOLO-V2检测系统时,会根据运算的特征进行软硬件划分,以充分发挥硬件性能。在本发明实施例中将预处理和后处理放在arm内完成运算。主要的卷积运算、池化运算则放在FPGA内实现。
本发明实施例,在FPGA内设计了缩放模块、低分辨率卷积网络、高分辨率卷积网络和总线仲裁模块。
缩放模块用于将输入的高分辨率图片缩小,由于高分辨率设计为低分辨率的2倍,因此只需要将图像奇数行、奇数列的像素点抽取即可。
低分辨率卷积网络中包含卷积层、最大池化层、批归一化层、路由层、和重排序层。
本发明实施例中将卷积层和批归一化层融合;池化层实现方式则与卷积层类似,只是将内积运算改为判断最大值,公式如下:
Figure BDA0003431197670000063
其中,表示第j个特征映射区域的池化的输出。表示特征区域,表示中(p,q)处的像素值。
在本发明实施例中,利用HLS(高层次综合)工具实现以上三种层。下面介绍基于HLS的设计方法:
IP模块采用AXI4接口,并将端口定义为一维数据流端口,包括输入特征图数据流、输出特征图数据流、权重数据流和配置数据流。
其中,配置数据流包括输入、输出特征图维度信息,配置数据流则包括当前层的类型。
进一步的,修改基于C语言开发的模型。按照以上思路,利用“case”语句,将各种类型的层区分,但是封装为一个函数。
进一步的,编写仿真模块,通过for循环和参数传递,实现用上述同一个函数构建整完整的YOLO-V2算法。
进一步的,即可利用HLS工具将C模型转换为Verilog IP,放入FPGA执行。而仿真模块则放入ARM。
路由层和重排序层实质上都是对数据的重新整理,因此在实现时只需改变内存地址和位宽即可。
以上,低分辨率网络构建完成。
高分辨率卷积网络的构建,类似低分辨率网络,主要特点是在FPGA内包含主控模块,负责循环调用卷积IP,完成高分辨率网络的构建。
同时主控模块包含一个使能信号和一组状态信号,当整个网络开始计算时,主控模块接收“start”脉冲信号,然后开始进行高分辨率网络的计算任务,同时将“busy”信号拉高,计算完成后将其清零,同时拉高“done”信号,并将在下一个“start”脉冲信号到来时将其清零。
总线仲裁模块则是为了适应本发明实施例中多路AXI总线读取DDR数据的设计,选用了crossbar互联结构。其特征在于:
9)采用多AXI接口,支持多AXI从机接口和单AXI主机接口。
10)共享地址通道,独立的多数据通道架构。
11)并行crossbar读和写通道,当发生多读写的时候,可以完全并行,互不干扰。
12)共享的写地址仲裁器,加上一个共享的读地址仲裁器,仲裁器并不会影响吞吐。
参阅图4,为本发明实施例处理方法的流程图,具体实施方式如下:
(1)获取图像
PS侧(处理系统,ARM)通过摄像头采集水稻图像。
(2)PS侧做图像预处理
首先对图像做归一化处理,将输入的RGB图片除以256,使每个像素值在[0,1]区间内。
然后将得到的图像转换为416×416大小,不足处填充常数,填充值为0.5。
将得到的图像存入DDR。
(3)并行运行高、低分辨率网络
PS侧作为主控单元,在完成图像预处理之后,首先启动高分辨率网络的运行,然后启动缩放模块及低分辨率网络的运行。
低分辨率网络实际上是由PS侧通过控制PL侧循环启动构成的,每启动一次,代表不同的网络层,配置不同的网络参数。PL侧进行卷积、池化、批归一化等运算。
而高分辨率网络则是在收到PS侧启动信号后由PL侧的主控模块控制运行。
其特征在于,高、低分辨率网络并行运行,这样在几乎不损失原低分辨率网络速度的情况下,增加了整体网络的细节特征,即可在后续的运算中提高对目标的检测能力。
具体实施方式为:当整个网络开始计算时,PS侧首先向主控模块发送“start”脉冲信号,启动高分辨率网络的计算任务,高分辨率网络主控模块将“busy”信号拉高,计算完成后将其清零,同时拉高“done”信号,并将特征图存入DDR,等待第分辨率网络到达passthrough层,将其融合。
进一步的,在运行高、低分辨率网络时均需要不断从DDR中读写图像及权重数据,本发明实施例引入outstanding技术,消除了读取DDR时的大部分无效延时,从而提高了系统性能。
其特征在于:参阅图5,在读写时均可连续多发命令,而无需等待上一个命令的响应。
具体实施方式为:在总线仲裁模块内设计一个大小为4个最大事务数据包的FIFO,同时计数未处理的命令的个数,若小于4,则可继续接受命令,否则暂停操作,等待命令的响应。
进一步的,作为可选的,可以将AXI总线设计为乱序操作。
其特征在于:返回的数据并不需要严格按照命令的顺序。
具体实施方式为:给每一个传输事务设置唯一的ID,ID应该由主机产生,并且每个事务逐次递加,当一个outstanding周期结束则继续从0开始计数。
(4)融合多分辨率网络
以上,高、低分辨率网络分别得到维度均为9×9的特征参数,本质上是将特征图划分为9×9个格子。在融合时,直接将两者相加即可,这样就可以进一步提高原来的通道数和细节特征。
(5)输出特征数组
在融合之后,仍需经过几个卷积层来进一步提取特征,网络最终输出9×9×5×6=2430维包含特征参数的数组,并将其存入DDR内。
(6)图像后处理
PS侧根据输出的数组,计算出每个有效框(指所有包含物体的框)的中心坐标及长宽值。
计算出每两个框的交并比(IOU)。
并进行进行非极大值抑制(NMS):当两个框的交并比过高时,舍弃置信度较低的框。
最后将最终得到的有效框在原图上画出,得到最终输出的图。

Claims (5)

1.基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,其特征在于,包括如下步骤:
第一步:卷积神经网络算法模型融合多分辨率,通过YOLO-V2算法融合多分辨率模型;
第二步:使用设置高分辨率的YOLO-V2模型进行训练;
第三步:重组及量化权重参数;
第三步的具体过程为:
将卷积核参数weight和偏置bias从原权重文件中分离,并与批归一化参数合并,计算公式为:
Figure FDA0004174354020000011
Figure FDA0004174354020000012
其中,Wb为原批标准化权重值,Wc为原卷积计算权重值,B为原批标准化偏置值,μ为原批标准化均值,α为原批标准化标准差;
采用float-32到fixed-16的精确转换,转换公式如下:
xfixed=int(xfloat×2exP)
其中xfloat为原浮点数,xfixed为定点化后的定点数,int表示取整操作,exp为阶码,每一层的阶码均相同,其最优值通过比较前后的网络的各个参数的参数平方和之差来确定;
第四步:在异构FPGA平台通过硬件和软件实现Multi-resolution YOLO-V2算法;
通过硬件实现Multi-resolution YOLO-V2算法的具体过程为:
在FPGA内设计了缩放模块、低分辨率卷积网络、高分辨率卷积网络和总线仲裁模块;
缩放模块用于将输入的高分辨率图片缩小,由于高分辨率设计为低分辨率的2倍,因此将图像奇数行、奇数列的像素点抽取;
低分辨率卷积网络中包含卷积层、池化层、批归一化层、路由层、和重排序层;将卷积层和批归一化层融合;池化层实现方式则与卷积层类似,只是将内积运算改为判断最大值,公式如下:
Figure FDA0004174354020000013
其中,Yjik表示第j个特征映射区域的池化的输出;Rik表示特征区域,Xjpq表示Rik中(p,q)处的像素值;
利用高层次综合HLS工具实现以上三种层:
IP模块采用AXI4接口,并将端口定义为一维数据流端口,包括输入特征图数据流、输出特征图数据流、权重数据流和配置数据流;
其中,配置数据流包括输入、输出特征图维度信息,配置数据流则包括当前层的类型;
修改基于C语言开发的模型,按照以上思路,利用“case”语句,将各种类型的层区分,但是封装为一个函数;
编写仿真模块,通过for循环和参数传递,实现用上述同一个函数构建整完整的YOLO-V2算法;
利用HLS工具将C模型转换为Verilog IP,放入FPGA执行,而仿真模块则放入ARM;
路由层和重排序层实现时只改变内存地址和位宽;以上,低分辨率网络构建完成;
高分辨率卷积网络的构建在FPGA内包含主控模块,负责循环调用卷积IP,完成高分辨率网络的构建;
同时主控模块包含一个使能信号和一组状态信号,当整个网络开始计算时,主控模块接收“start”脉冲信号,然后开始进行高分辨率网络的计算任务,同时将“busy”信号拉高,计算完成后将其清零,同时拉高“done”信号,并将在下一个“start”脉冲信号到来时将其清零;
总线仲裁模块则是为了适应多路AXI总线读取DDR数据的设计,选用了crossbar互联结构;
通过软件实现Multi-resolution YOLO-V2算法的具体过程为:
A)获取图像;
B)PS侧做图像预处理;
C)并行运行高、低分辨率网络;
PS侧作为主控单元,在完成图像预处理之后,首先启动高分辨率网络的运行,然后启动缩放模块及低分辨率网络的运行;
低分辨率网络实际上是由PS侧通过控制PL侧循环启动构成的,每启动一次,代表不同的网络层,配置不同的网络参数,PL侧进行卷积、池化、批归一化运算;
而高分辨率网络则是在收到PS侧启动信号后由PL侧的主控模块控制运行;
D)融合多分辨率网络;
E)输出特征数组;
在融合之后,仍需经过几个卷积层来进一步提取特征,网络最终输出9×9×5×6=2430维包含特征参数的数组,并将其存入DDR内;
F)图像后处理;
PS侧根据输出的数组,计算出每个有效框的中心坐标及长宽值;
计算出每两个框的交并比IOU;并进行非极大值抑制NMS:当两个框的交并比过高时,
舍弃置信度较低的框;最后将最终得到的有效框在原图上画出,得到最终输出的图。
2.根据权利要求1所述的基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,其特征在于,第一步的具体过程为:通过将其passthrough结构设计为从高低分辨率两个网络串连,以增强整体网络的识别能力,融合的高分辨率网络包括9个卷积层、5个池化层和1个重排序层;其中各个卷积层的卷积核大小增大,以确保在高分辨率网络在低分辨率网络运算至passthrough结构前完成运算。
3.根据权利要求2所述的基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,其特征在于,高分辨率设计为低分辨率的2倍,高分辨率网络的卷积层数和池化层数适当增减,但是需要保证最终的维度和低分辨率网络是一样的;设计高分辨率网络时,去掉池化层,将前一层的卷积层的步长改为双倍代替。
4.根据权利要求1所述的基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,其特征在于,第二步的具体过程为:在将目标图片制作为VOC格式数据集后,将网络参数配置为高分辨率,启动训练,直至loss不再下降而mAP不再上升为止,保存最终的权重参数;低分辨率网络也使用该权重参数。
5.根据权利要求1所述的基于异构FPGA和融合多分辨率的卷积神经网络的实现方法,其特征在于,crossbar互联结构的具体过程为:
1)采用多AXI接口,支持多AXI从机接口和单AXI主机接口;
2)共享地址通道,独立的多数据通道架构;
3)并行crossbar读和写通道,当发生多读写的时候,完全并行,互不干扰;
4)共享的写地址仲裁器,加上一个共享的读地址仲裁器,仲裁器并不会影响吞吐。
CN202111607019.9A 2021-12-24 2021-12-24 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法 Active CN114359662B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111607019.9A CN114359662B (zh) 2021-12-24 2021-12-24 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111607019.9A CN114359662B (zh) 2021-12-24 2021-12-24 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法

Publications (2)

Publication Number Publication Date
CN114359662A CN114359662A (zh) 2022-04-15
CN114359662B true CN114359662B (zh) 2023-06-13

Family

ID=81102338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111607019.9A Active CN114359662B (zh) 2021-12-24 2021-12-24 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法

Country Status (1)

Country Link
CN (1) CN114359662B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115457363B (zh) * 2022-08-10 2023-08-04 暨南大学 一种图像目标检测方法及系统
CN115049907B (zh) * 2022-08-17 2022-10-28 四川迪晟新达类脑智能技术有限公司 一种基于fpga的yolov4目标检测网络实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11651206B2 (en) * 2018-06-27 2023-05-16 International Business Machines Corporation Multiscale feature representations for object recognition and detection
CN109345449B (zh) * 2018-07-17 2020-11-10 西安交通大学 一种基于融合网络的图像超分辨率及去非均匀模糊方法
CN111368849B (zh) * 2020-05-28 2020-08-28 腾讯科技(深圳)有限公司 图像处理方法、装置、电子设备及存储介质
CN111814675B (zh) * 2020-07-08 2023-09-29 上海雪湖科技有限公司 基于fpga支持动态分辨率的卷积神经网络特征图组装系统

Also Published As

Publication number Publication date
CN114359662A (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
CN109784489B (zh) 基于fpga的卷积神经网络ip核
CN114359662B (zh) 一种基于异构fpga和融合多分辨率的卷积神经网络的实现方法
CN111488983B (zh) 一种基于fpga的轻量级cnn模型计算加速器
CN108470190B (zh) 基于fpga定制脉冲神经网络的图像识别方法
CN110390385B (zh) 一种基于bnrp的可配置并行通用卷积神经网络加速器
CN108681984B (zh) 一种3*3卷积算法的加速电路
CN111967468A (zh) 一种基于fpga的轻量级目标检测神经网络的实现方法
US11989638B2 (en) Convolutional neural network accelerating device and method with input data conversion
WO2019136764A1 (zh) 卷积器及其所应用的人工智能处理装置
CN108537331A (zh) 一种基于异步逻辑的可重构卷积神经网络加速电路
CN111210019B (zh) 一种基于软硬件协同加速的神经网络推断方法
CN113051216B (zh) 一种基于FPGA加速的MobileNet-SSD目标检测装置及方法
CN104881666A (zh) 一种基于fpga的实时二值图像连通域标记实现方法
CN110738308A (zh) 一种神经网络加速器
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
CN117217274B (zh) 向量处理器、神经网络加速器、芯片及电子设备
WO2020046643A1 (en) Method and system for performing parallel computation
CN114461978B (zh) 数据处理方法、装置、电子设备及可读存储介质
US11210105B1 (en) Data transmission between memory and on chip memory of inference engine for machine learning via a single data gathering instruction
US20230259780A1 (en) Neural network sparsification apparatus and method and related product
CN112001492B (zh) 关于二值权重DenseNet模型的混合流水式加速架构及加速方法
CN109710562A (zh) 一种基于selectmap的可配置且高速的fpga配置电路及实现方法
CN114693504B (zh) 一种基于fpga的混合高斯模型的图像处理方法
WO2019136747A1 (zh) 反卷积器及其所应用的人工智能处理装置
Namou et al. Design and Implementation of Optimized Resource Low-Power SoC Multi-Soft-Processor FPGA Hardware Acceleration Architecture for Fast Digital Image Processing

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