面向目标检测的卷积神经网络优化方法①

2022-04-30 05:13张志超章隆兵肖俊华
高技术通讯 2022年3期
关键词:浮点池化层数据流

张志超 王 剑 章隆兵 肖俊华

(*计算机体系结构国家重点实验室(中国科学院计算技术研究所) 北京 100190)

(**中国科学院计算技术研究所 北京 100190)

(***中国科学院大学 北京 100049)

(****中国电子科技集团公司第十五研究所 北京 100083)

0 引言

以卷积神经网络(convolution neural network,CNN)为代表的深度学习技术广泛应用于图像分类、目标检测等应用中。遥感影像领域目标检测与识别应用也广泛应用卷积神经网络技术。近年来深度学习的发展经历了由小模型[1]到大模型[2-3]、再由大模型到轻量型模型[4-6]的发展。然而深度卷积神经网络算法存在计算复杂度高、参数存储量大等特点,导致其在星载、机载等功耗受限环境下进行目标检测处理运算时间长、功耗大等问题,并且面向领域应用的算法需要较高的目标检测准确率。现有的卷积神经网络的加速研究包括参数量化[7-10]、轻量型网络结构设计[4-6]、硬件结构设计[11-12]等方法。

基于轻量型网络结构设计[4-6]的方法展现了较高的准确率,在嵌入式处理器上能够达到近实时的处理性能,在图形处理器(graphics processing unit,GPU)平台处理性能高但功耗大。在星载、机载等数据产生终端,存在数据量大、平台处理功耗受限等情况,需要结合现场可编程门阵列(field programmable gate array,FPGA)方法进行浮点精度模型加速设计,提升处理能力。

一般的目标检测模型采用浮点训练推理的方式使用,参数量化[7-9]的方法存在精度降低问题,需要特定的硬件结构支撑量化计算来提升性能,并且对于紧凑小模型的量化收效甚微[10]。通用的基于FPGA 加速浮点CNN 模型[11,13]受限于通用模型复杂度高,基于乘累加的卷积计算方法存在达不到线速吞吐问题,造成加速效果有限,需要突破浮点乘累加造成的线速吞吐瓶颈,提升CNN 加速处理能力。

本文在研究了大量CNN 加速方法后,针对遥感影像广域场景筛选机场目标区域的垂直应用需求,采取面向领域应用定制轻量化CNN 目标检测模型,结合基于数据流调度的FPGA 加速浮点卷积神经网络的方法以及基于乘法矩阵与前向加法链的卷积计算阵列设计,构建软硬件CNN 模型一致性的加速方案,解决了卷积计算中浮点加速线速吞吐的问题,达到了功耗受限条件下实时计算的需求,符合应用要求的高准确率,并且使得软硬件开发去耦合,软件人员能够进一步优化模型以及研究模型的认知不确定性[14]等问题,以提供更可信任的深度学习模型。

1 卷积神经网络模型设计

针对星载、机载等功耗受限数据产生终端进行遥感影像机场目标检测的垂直应用需求,需要在大尺度区域中选出感兴趣区域对目标进行识别,这种热点区域的识别能够显著降低细粒度目标识别的尺度范围,进一步缩小目标识别的运算开销。面向机场目标检测的卷积网络模型,采用基于LeNet-5[1]与Yolo-v2[15]启发的网络骨干结构及目标检测策略设计目标检测网络模型,利用当前的小卷积核紧致模型的运算量低的特点,在解决目标检测识别准确率基础上,尽可能设计小的卷积网络降低模型计算量需求,便于后续的基于FPGA 的处理加速。

1.1 基于CNN 的目标区域筛选算法

针对从大区域遥感影像中筛选机场目标区域的技术需求,分析出机场目标于周围环境特征明显,该问题类似于MNIST 手写数字识别问题。本文受LeNet-5 模型和Yolo-v2 目标检测模型的启发,自定义了一个10 层的轻量型目标识别网络用于筛选机场区域目标,进而降低大区域卫星影像中飞机目标识别的计算量。该目标识别网络的检测层利用了Yolo-v2 的候选款筛选算法,将这10 层卷积的轻量型命名为Conv10_Yolo。该目标区域筛选算法的网络结构如图1 所示,里面包含10 层卷积层和2 层池化层,该卷积网络的输入为128 ×128 像素的3 通道卫星影像,输出为4 ×4 ×30 维的目标检测向量。

图1 基于CNN 的目标区域选择算法网络结构

具体的Conv10_Yolo 每层的卷积或池化参数配置如表1 所示,初始选用大卷积(4 ×4)来提取特征,利用卷积的步进降低输出维度,中间层主要采用2 ×2 卷积以及3 ×3 卷积进行特征提取,后续层主要采用1 ×1 卷积与2 ×2 卷积进行特征提取,检测输出层采用1 ×1 卷积输出检测目标属性信息。

表1 基于CNN 的目标区域选择算法网络结构

目标检测层采用1 ×1 卷积实现,输出维度为4×4 ×30 的检测向量。该检测层参考了Yolo-v2 的相对坐标检测思路,包含5 个候选框,每个候选款包含6 个目标属性,具体如图2 所示。该检测层输出的坐标为预测的候选款相对中心点坐标,具体坐标解算参考Yolo-v2 的坐标解算。候选框的预设值采用KNN 聚类方法,对训练数据中目标尺寸太小的进行维度聚类得到候选框的预设值,具体值为[1.13,1.92,1.70,2.04,1.99,0.98,2.28,1.73,2.70,2.69],共5 组x、y坐标值。目标检测层卷积输出为相对于候选框的偏移量,目标框的解算按照Yolo-v2的解算思路进行计算。

图2 检测层输出向量维度分解

1.2 模型复杂度分析

该部分分析面向目标区域筛选的卷积神经网络快速识别算法的卷积网络模型参数与计算复杂度。

通用的卷积参数计算如式(1)所示。

其中,IC(input channel)为输入通道大小,OC(output channel)为输出通道大小,k为卷积核尺寸。

卷积层计算乘累加数量如式(2)所示。

其中,OW(output width)为卷积计算输出宽度,OH(output height)为卷积计算输出高度。

卷积层计算的操作数通常有GOPs指标,该指标将卷积乘法和加法分开计算,通常一个包含bias的卷积计算加法数量与乘法数量一致,具体如式(3)所示。

通过计算得出,该模型的权重总大小为1.85 MB,总乘累加操作数为0.044 GMAC,总卷积计算操作数为0.088 GOPs。由此可见,该检测模型为一个深层轻量化的目标检测网络,适于在FPGA 上实现全浮点精度的卷积网络运算加速。

2 基于数据流调度的浮点CNN 加速器设计

在FPGA 上加速目标检测模型,需要解决模型一致性问题,降低应用移植的难度,保持模型检测准确率的一致性。采用基于数据流调度的浮点卷积神经网络加速器设计方法,使得卷积网络的浮点参数权重保持在片上存储,多层卷积网络计算同时以流水线的方式在片上执行,即解决了模型加速与能效比问题,又能符合加速模型与原始模型计算一致性的需求。

2.1 基于数据流调度的卷积神经网络加速总体架构

针对基于卷积神经网络的目标区域筛选算法,设计基于数据流计算的卷积神经网络加速器。Xilinx UltraScale+系列新品的内部物理结构分布为3个超级逻辑区(super logic region,SLR),每个逻辑区覆盖芯片内部的一个Die,整颗芯片由3 颗Die 通过基底层互联。

考虑逻辑分区问题,将整个数据流计算分为3大块。第1 块超级逻辑区(SLR0)覆盖卷积网络的前3 层卷积层计算,即Conv1、Conv2、Conv3 的计算;第2 块超级逻辑区(SLR1)覆盖中间3 层卷积层计算和2 层最大池化层计算,即Conv4、Mp4、Conv5、Mp5、Conv6 的计算;第3 块超级逻辑区(SLR2)覆盖后4 层卷积层计算,即Conv7、Conv8、Conv9 以及Conv10 的计算。

超级逻辑区之间通过Xilinx 堆叠硅片互联(stacked silicon interconnect,SSI)技术互联,在超级逻辑区边缘有特定的专用寄存器进行跨逻辑区通信,基底层有超长线(super long line,SLL)来连接专用传输寄存器。超级逻辑区的内部访存和跨逻辑区通信需求,均通过SLL 互联实现。具体的基于数据流计算的卷积神经网络加速总体架构如图3 所示。

图3 基于数据流计算的CNN 加速总体架构

2.2 基于数据流调度的卷积层设计

通常的卷积层计算由卷积乘加计算、批归一化处理以及非线性响应等部分组成。在基于FPGA 的卷积加速设计中,设计一个大的卷积乘加矩阵是卷积计算性能的必要条件。在没有硬核浮点支持的FPGA 中,如何设计一个保持线速处理的乘加矩阵也是一个难点。在基于数据流的FPGA 卷积计算单元里,卷积层的输入调度、权重调度也必须达到卷积计算矩阵的线速输入条件,这样才能避免卷积计算矩阵空转,浪费计算性能。本部分阐述基于数据流的卷积层计算,主要包括卷积层权重输入、权重缓存、卷积输入调度、卷积计算阵列、批归一化处理、非线性响应等部分。具体的基于数据流的卷积层初始化与计算流程如图4 所示,其中权重初始化只在权重缓存初始化的时候运行一次,后续的卷积计算不再需要从动态随机存取存储器(dynamic random access memory,DRAM)中调度缓存数据,降低了存储带宽的开销,可避免卷积计算阵列需要等待权重数据。

图4 卷积层初始化与计算流程

(1)卷积特征图内存表示

卷积输入及输出特征图在内存中维持“H×W×C”的内存分布,卷积输入及输出特征图在数据流中按照“H×W×C”的方式传输,即通道优先(channel first)的方式传输。图像与特征图本质上是一个三维矩阵,图像一般具有RGB三维通道,特征图的通道数为16~2048,如果把图像或者特征图的通道数看成一个像素点的属性,则图像的抽象表示可以维持一个“二维抽象”,具备宽×高的像素点集合,像素的属性个数是可变的。后面的卷积计算就可以基于像素处理,图像或者特征图可以抽象为一个二维的处理过程。

进一步把图像或者特征图的“H×W”个像素平铺,则图像或者特征图可以进一步维持一个“一维抽象”,即“H×W”行像素点,这种表示不仅适合内存的线性存储,也适用于在数据流中传输图像或者特征图。具体的输入图像与特征图的内存表示如图5所示。

图5 卷积层输入图像与特征图的内存表示

后续的计算流程在输入输出上都维持这样的“H×W×C”的内存表示。基于统一的内存表示,多个卷积层计算可以通过先入先出队列(first input first output,FIFO)互联并协同计算,避免中间结果经由内存导入导出,消耗内存带宽,同时也浪费一定量的卷积层计算周期。

(2)卷积层数据流调度

基于数据流的卷积计算要求输入数据及权重都能够达到线速吞吐,这样卷积计算单元的流水周期不会出现空转,计算效率达到最高。基于线速吞吐的数据流调度要求,设计多端口的权重缓存,能够提供处理单元(process element,PE)组权重,每组权重有单指令多数据(single instruction multiple data,SIMD)个权重32 位浮点数;设计多端口卷积输入缓存,能够提供SIMD个32 位浮点数特征图输入;同时引入与卷积输入缓存Stride(卷积滑窗步进)行同等大小的输入FIFO,与卷积输入缓存构成异构“乒乓”缓存,去耦合上个阶段的卷积计算输出调度和本阶段的卷积计算输入调度。输入特征图的输入宽度为上一层PE个数量的32 位浮点数,通过输入FIFO 转换宽度为SIMD个32 位浮点数据。卷积计算单元的输出为PE个32 位浮点数据计算输出。具体的卷积层数据流调度如图6 所示,实现了一组数据计算多个卷积输出,利用了输入数据的局部性。

图6 卷积层数据流调度

(3)卷积层输入缓存设计

卷积层输入缓存与输入FIFO 的大小一致,结构不同,卷积层输入缓存将“H×W×C”的输入特征图转换为卷积核所需的“k×k×C”的输入,通过在多组寄存器滑窗,为卷积计算阵列提供计算卷积所需的线性输入。具体的卷积输入缓存设计如图7 所示。

图7 卷积层输入缓存设计

卷积层输入缓存包括k+Stride行寄存器组,其中k为卷积核大小,Stride为卷积滑窗的步进大小。每行寄存器缓存输入特征图多个通道一行的数据,即“W×C”个数据,W为输入特征图的宽度,IC为输入特征图的通道数。每个寄存器行都可以按照SIMD个浮点数的宽度输出数据,一个像素的多个通道数据按照SIMD的宽度分为b个Block,每个Block 按照顺序放在寄存器行里。由于二维卷积的空间访存特性,需要从多个寄存器行里顺序读取数据,按照卷积核行列计算的要求顺序输出SIMD宽度的输入特征图数据流。

多个寄存器组分开存放,可以将卷积输入特征图的输出调度和输入调度分开,除了初始化读入k行输入特征图像素,后续可以按照Stride行补充输入特征图数据。虽然访问的同一个卷积输入缓存,利用多行卷积输入缓存寄存器,由此可以将输入数据与输出数据调取去耦合,避免数据依赖和数据污染,实现无锁的数据输入输出同时调度,满足卷积计算单元SIMD个浮点数据的输出线速调度要求。

(4)卷积层权重缓存设计

针对在片上缓存该层卷积计算所需的全部卷积,并且权重缓存的输出能按照卷积计算阵列“PE×SIMD”的计算模式输出面向多个处理单元(PE)输出每组SIMD个浮点权重数据等要求,设计卷积层权重缓存。

卷积层参数按照式(4)维度顺序进行存放,其中PE为卷积计算单元的处理单元个数,SIMD为每个卷积处理单元输入数据的宽度,每个数据均为32位浮点数据。

卷积权重缓存T的计算如下:

其中,IC为卷积核输入通道数量,OC为卷积核输出通道数量,k为卷积核大小。

卷积层权重缓存具有PE组独立的缓存行,每个行的输出宽度为SIMD个浮点数,由于卷积计算阵列的多个PE输出为输出特征图的一个像素的连续属性,故需要在权重缓存里将卷积权重按照多个PE行寄存器交叉存储,保证输出的PE组权重通过卷积计算阵列计算得到的是连续的输出特征图一个像素内部的连续属性值。具体的存放顺序如图8 所示。

图8 卷积层权重缓存设计

(5)卷积阵列计算单元设计

针对卷积计算高吞吐量的计算需求,设计卷积计算阵列,每个时钟周期能够处理“PE×SIMD”个乘累加计算,其中PE为卷积阵列的行数,SIMD为卷积输入特征图数据的个数,输出为PE个卷积计算输出,PE个浮点数据属于同一个输出特征图像素的连续属性值。

通常卷积计算存在一个乘累加计算矩阵,基于定点数的累加计算,通过高级综合工具调度出来的累加器延迟为1个clk,累加计算可以达到线速吞吐;而基于浮点数的累加计算,通过高级综合工具调度出来的累加器延迟为4 个clk,吞吐达不到线速,严重影响整个卷积计算阵列的吞吐速率。具体的累加器性能分析如图9 所示。

图9 累加器性能分析

考虑浮点累加器调度延迟问题主要在与累加器输出要反馈到累加器输入上,这个延迟决定了累加器的吞吐速率,如果能够打破累加器的后向反馈,则可以使累加器性能达到线速,进而卷积计算阵列达到线速。

由于卷积的累加次数是固定的,且随着每个卷积层参数而累加次数不同。基于数据流的卷积计算阵列支持面向不同的卷积层分别配置卷积计算参数,包括卷积阵列大小、卷积累加的次数,为此设计了一个基于前向累加链的卷积累加器。卷积计算单元的每个PE输出SIMD个数据,通过加法树1 汇集成一个数据输出,通过加法树2、3 分别汇聚k个数累加,后续可以通过个加法器进行后续累加(图10)。基于前向加法链的卷积累加器共需N个加法器,计算公式如式(6)所示,ICF的计算公式如式(7)所示。

图10 基于前向加法链的卷积累加器设计

由于累加矩阵可以在后续完成累加计算,故卷积阵列只需要实现为乘法阵列,具体的基于乘法矩阵与前向加法链的卷积计算阵列如图11 所示,包含3 部分:(1)乘法矩阵,完成“PE×SIMD”个数的乘法运算;(2)加法树矩阵,将SIMD个数汇聚成一个数;(3)加法链,完成同一个卷积计算的累加功能。基于前向加法链的卷积阵列设计,打破了浮点数累加的后向反馈,不依赖于加法器的具体延迟,通过延长流水线的方式达到了卷积计算的线速累加和输出。

图11 基于乘法矩阵与前向加法链的卷积计算阵列

(6)批归一化及非线性响应设计

批归一化及非线性响应均为面向每个处理元素单独处理,比较容易实现并行处理,多个并行处理之间不需要交互数据,具体的批归一化及非线性响应设计如图12 所示。

图12 批归一化与非线性响应流程

批归一化的计算如式(8)所示。

其中,alpha、gamma、mean以及std均为批归一化参数,可以从模型权重中获取。

非线性响应部分支持Leak ReLU 和ReLU 函数,具体的计算公式如式(9)所示,Leak ReLU 的参数alpha一般为0.1,ReLU 的参数alpha为0。

2.3 基于数据流调度的池化层设计

池化层的输入一般为上一层的卷积计算输出,池化层的输出为下一层卷积计算的输入。基于数据流调度的池化层计算流程包括池化层输入调度以及池化层计算单元两部分。池化层计算的并行数PE与上一层卷积计算的PE保持一致。每个阶段的数据流均为PE个浮点数据。输入特征图与输出特征图仍然维持“H×W×C”的数据抽象,便于后续通过流数据接口输出给下一个卷积计算层。具体的池化层计算流程如图13 所示。

图13 池化层计算流程

(1)池化层计算单元设计

根据卷积模型计算的需要,本部分池化层的设计只支持最大值池化功能。池化层计算单元输入为PE个卷积计算输出,通过与池化层的中间结果寄存器进行比较,如果比中间结果寄存器数据值大,则更新中间结果寄存器的存储值。经过一定次数的迭代,最终从中间结果寄存器输出到输出寄存器。具体的池化层计算单元如图14 所示。

图14 池化层计算单元

(2)池化层中间结果缓存设计

池化层中间结果缓存面向池化层的数据调度和中间结果缓存以及最终的池化输出,需要设计一个面向输入数据流的池化计算缓存。输出调度不能中断池化单元的正常计算流程,并且输入与输出同时维持统一的特征图数据流格式。

池化计算一般为“k×k”的二维计算,而输入特征图数据是按照“H×W×C”的统一数据流格式输出的,这就需要设计一个多行缓存,能够无缝切换不同行的池化计算中间结果,且无需更改输入数据的“通道优先”的格式。

具体的池化层包含PE组缓存行,每行缓存有Pool_Dim个缓存块,每个缓存块有PE_Blocks个中间结果寄存器(见图15)。PE_Blocks的计算如式(10)所示。计算不同行的池化过程,需要切换池化层的中间缓存,使得中间结果能够存储在合适的位置,PE行池化数据并行处理,处理完后输出,宽度为PE个浮点数据流。

图15 池化层中间结果缓存

3 实验结果和分析

3.1 加速器性能设计与分析

由于该加速器采用了基于数据流调度的多层卷积网络协同加速的模式构建长流水线,获得性能提升,因此每一个卷积模块的配置,即PE、SIMD的选值,影响该层的计算能力。同时多层的计算能力要相匹配,使得多层的处理能力大致相当而又避免过大的处理核由于流水线吞吐的限制,发挥不出应有的性能。本部分通过分析模型计算硬件预估性能,结合HLS 高级综合资源占用分析,选取性能最高的Conv10_Yolo 卷积加速器配置进行分阶段设计,以适应FPGA 芯片的分超级逻辑区放置资源。

Conv10_Yolo_FPS 2902 卷积网络加速器配置如表2 所示,基于高级语言综合(HLS)设计的处理速度达到了2902.56 fps,基于HLS 设计的硬件卷积处理资源性能达到了279.056 GFLOPS。

表2 Conv10_Yolo_FPS 2902 卷积网络加速器配置

3.2 CNN 加速器资源占用与功耗分析

Conv10_Yolo 卷积网络加速器使用HLS 形成处理核IP 以及Vivado 板卡仿真结合的方式获得最终可执行的比特流,Vivado _HLS 版本为2019.1。由于加速器核过大,超出了一个逻辑分区的可用资源总量,导致Vivado 后续的综合实现的时序不能收敛,需要对加速器核进行切分,分成3 个独立的IP核分别进行仿真分析,具体的资源占用对比如图16所示。3 个阶段的IP 资源占用均不超过一个逻辑分区的资源总量,其中资源占用最多的是Step1 的DSP 资源,达到了77%,各个阶段IP 资源平均占用不超过52%,有利于后续的综合实现时序收敛。

图16 IP 核资源占用分析

Vivado 版本为2019.1,基于Vivado 仿真工具的Conv10_Yolo 卷积网络加速器资源占用分析如表3所示。资源占用量最高的为DSP 资源,达到了55.92%,限制了加速器规模进一步扩大,具体的资源占比柱状图如图17 所示。

表3 基于Vivado 的Conv10_Yolo_FPS 2902 卷积网络加速器资源占用表

图17 加速器资源占用分析

基于Vivado 仿真工具的Conv10_Yolo 卷积网络加速器功耗分析如表4 所示,功耗为19.078 W。

表4 基于Vivado 的Conv10_Yolo_FPS 2902 卷积网络加速器功耗分析

3.3 模型训练与性能结果

基于开源Google Earth 卫星影像数据,本文收集了全球多个国家多时相的机场影像作为训练数据,采用人工标注的方式在机场图片中获得机场目标标注信息,总共标注了506 张128 ×128 像素尺寸的分辨率8 m 左右的机场目标标注数据集。基于该数据集展开机场目标筛选实验。

实验FPGA 硬件采用Xilinx VCU 1525 开发板卡进行性能测试,在FPGA 平台上达到了2802.08 fps 的处理速率,折合有效的吞吐量为247.496 GFLOPS,机场目标识别平均准确率达到97.59%。具体的测试结果如图18 和图19 所示,其中灰色框为目标真实值,黑色框为检测结果,图示结果显示检测机场的准确率较高,达到了应用的需求。

图18 机场目标识别结果1

图19 机场目标识别结果2

3.4 与GPU 处理卷积计算性能对比

实验硬件配置为E5-2650-v4 CPU 以及Nvidia Titan X GPU,软件配置为Ubuntu14.04,Cuda 版本为9.0.176,TensorFlow 版本为1.5.1,Keras 版本为2.2.4。训练参数Batch 为16,迭代次数为20 000 次,IOU阈值设置为0.3,框的概率阈值设置为0.3。基于GPU 平台测试机场目标识别能力,平均准确率达到97.59%,基于GPU 的处理速度为126.01 fps。通过FPGA 平台和GPU 平台分别对Conv10_Yolo 卷积网络加速器进行性能测试,结果如表5 所示,该设计在FPGA 平台上达到了2802.08 fps 的处理速率,处理速度达到了GPU 的22 倍,功耗低于GPU 处理平台。与大模型[15-16]相比,该设计处理速度更快,能耗更低。

表5 与GPU 处理卷积计算性能对比

3.5 与通用FPGA 加速卷积计算性能对比

本文将Conv10_Yolo的性能与之前的工作对比,本文提出的Conv10_Yolo 加速器吞吐量达到了247.49 GFLOPS。文献[12,17]的工作采用了基于硬核浮点计算单元的Intel Arria 10 器件,吞吐量较高,除了采用浮点硬核加速的工作,本文方法的运算吞吐量达到了最高值,为247.49 GFLOPS;运算效能也达到了最高值,为12.97 GFLOPS/W。相对于文献[11]、文献[18]、文献[19]、文献[20]的工作,本文方法使用更少的DSP 资源达到了更高的运算吞吐量,有效解决了浮点卷积加速的线速瓶颈。实验数据表明,基于乘法矩阵与前向加法链的卷积计算阵列设计,解决了浮点卷积乘累加造成的线速吞吐瓶颈,提升了浮点卷积网络加速的处理速度与能效比,满足了星载、机载等功耗受限条件下进行高准确率目标检测的功耗、加速吞吐量等要求。

表6 相关FPGA 浮点加速卷积网络工作对比

4 结论

本文面向遥感影像机场目标识别应用,定制了一个轻量化的目标检测网络,提出了基于乘法矩阵与前向加法链的卷积计算阵列设计,解决了卷积加速的乘累加线速吞吐计算瓶颈。并通过基于FPGA的数据流调度技术,对该检测网络的浮点模型进行加速,达到了功耗受限环境下实时高准确率的计算需求,同时解耦合了软硬件协同加速的开发流程,降低了应用开发人员利用FPGA 进行加速计算的门槛。通过在Xilinx VCU 1525 开发板上构建实现了浮点卷积目标检测网络,在机场目标区域检测应用中平均准确率为97.59%,目标检测处理速度为2802 fps,功耗为19.07 W,运算性能为247.49 GFLOPS。实验结果表明,该方案达到了应用需求的高准确率,解决了浮点卷积加速的线速吞吐难点,计算吞吐量以及计算能效比达到了最优,同时功耗满足应用环境的需求。下一步可以就相关场景的细粒度目标识别加速问题进行研究。

猜你喜欢
浮点池化层数据流
LEO星座增强GNSS PPP模糊度浮点解与固定解性能评估
卷积神经网络模型研究分析*
汽车维修数据流基础(上)
基于卷积神经网络的纸币分类与点钞
汽车维修数据流基础(下)
基于深度学习卷积神经网络的人体行为识别研究
基于Simulink浮点模型和定点模型的问题研究
基于浮点DSP的铁路FSK信号检测
基于数据流特性的MPTCP数据流调度算法研究
基于全卷积神经网络的SAR图像目标分类*