本发明专利技术涉及到计算机视觉技术领域,尤其涉及到一种基于FPGA实现的卷积神经网络特征解码系统。该系统将CNN网络的特征解码模块也放到FPGA内部进行加速,解决FPGA加速方案中遇到的特征提取和特征解码速率不匹配的问题,所有功能都在FPGA中实现,也就是说加速效果完全取决于FPGA的性能,只要将两个部分的功能实现完全的流水化设计,就能达到FPGA加速效果的最大化。同时因为特征提取的结果不需要再经过DDR缓存,直接在片内进行处理,也降低了CNN网络处理的时延,甚至可以完全脱离处理器实现CNN网络的加速,达到芯片级别的计算加速效果。
【技术实现步骤摘要】
基于FPGA实现的卷积神经网络特征解码系统
本专利技术涉及到计算机视觉
,尤其涉及到一种基于FPGA实现的卷积神经网络特征解码系统。
技术介绍
当前卷积神经网络(CNN)已经被广泛运用于计算机视觉,工业检测,自然语言处理等多个领域。但受限于卷积神经网络的庞大计算量和存储要求,传统的通用处理器早已无法满足其实时性的要求,所以基于图形处理器(GPU),专用集成电路(ASIC)和现场可编程门阵列(FPGA)等硬件平台的CNN加速器纷纷被提出。综合比较这些硬件平台,基于FPGA的CNN加速器具有开发周期短,能效收益高,可重构性高等优点,越来越受到大家关注。一个典型的CNN包含两个部分,特征提取部分和特征解码部分。特征提取部分用于产生图像不同特征的特征图,然后输出包含这些特征的低维向量给到特征解码部分。特征解码部分也可以理解为神经网络解码的过程,基于提取到的低维向量包含的特征信息,完成检测和分类等功能。CNN大部分的计算量都在于特征提取部分的卷积操作,如图1所示,现有的一些FPGA加速器方案都聚焦于加速特征提取部分,而特征解码部分还是要交由上位机或者ARM硬核去处理,所以在一些需要摆脱上位机的应用场景下,芯片选型时只能考虑系统级芯片(SoC),即FPGA+处理器结构。但是因为ARM架构是一个32位的精简指令集(RISV)处理器,所以往往会出现FPGA的计算资源很多,卷积部分加速快,而处理器对于CNN网络的特征解码能力有限的情况,以YoloV3网络为例,网络特征解码包括Sigmoid函数,非极大值抑制(NMS),指数(Exp)函数等,存在大量的浮点数计算,处理器的性能更是会成为网络加速的瓶颈,即FPGA的加速效果受到了处理器的限制,无法完全发挥FPGA的优势以达到最好的加速效果。
技术实现思路
鉴于上述技术问题,本专利技术提供了一种基于FPGA实现的卷积神经网络特征解码系统,该系统将CNN网络的特征解码模块也放到FPGA内部进行加速,解决FPGA加速方案中遇到的特征提取和特征解码速率不匹配的问题。将该特征解码模块放在特征提取的后面,因为整个网络不再分为两个部分,所有功能都在FPGA中实现,也就是说加速效果完全取决于FPGA的性能,只要将两个部分的功能实现完全的流水化设计,就能达到FPGA加速效果的最大化。同时因为特征提取的结果不需要再经过DDR缓存,直接在片内进行处理,也降低了CNN网络处理的时延,甚至可以完全脱离处理器实现CNN网络的加速,达到芯片级别的计算加速效果。一种基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述系统包括有:相互连接的DDR缓存模块和FPGA,所述FPGA中设置有特征提取模块和特征解码模块,所述特征提取模块与所述特征解码模块连接。上述的基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述FPGA中设置有特征提取模块和特征解码模块,所述特征解码模块进一步包括有:函数变换模块、比较模块、非极大值抑制模块,所述函数变换模块、比较模块、非极大值抑制模块依次连接。本专利技术技术方案中,上述的基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述函数变换模块中包括有Sigmoid函数、指数函数。本专利技术技术方案中,上述的基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述比较模块包括有第一比较模块和第二比较模块,所述第一比较模块中设置有第一比较器,所述第二比较模块中设置有片上缓存BRAM和第二比较器。上述技术方案具有如下优点或有益效果:1、解决了加速方案所关心的芯片选型问题。包含ARM处理器的SoC芯片不再是唯一的选项,传统的FPGA芯片也可以摆脱上位机和处理器,完成整个卷积神经网络的计算,所以在成本方面可以有更多的选择空间。2、有效降低单张图片处理的时延。集成了该功能模块后,FPGA与ARM处理器之间不再有数据交互,减少了大量的数据传输。同时特征解码功能不再需要等待所有尺度的特征提取结果,任一尺度结果输出即被该模块处理,相比处理器的方式能够更快输出结果。3、最大化加速效果。不再依赖处理器或者上位机进行特征解码,也就避免了卷积神经网络中特征提取部分和特征解码部分速率不匹配的问题,FPGA的速度不会因为处理器的表现受到限制,而且处理器也不会再和FPGA竞争DDR的带宽,最终能够达到完全芯片级别的加速效果。附图说明通过阅读参照以下附图对非限制性实施例所作的详细描述,本专利技术及其特征、外形和优点将会变得更加明显。在全部附图中相同的标记指示相同的部分。并未可以按照比例绘制附图,重点在于示出本专利技术的主旨。图1是
技术介绍
中使用FPGA进行神经网络加速的方案示意图;图2是本专利技术特征解码方案示意图;图3是YoloV3网络特征解码流程示意图;图4是本专利技术在特征解码效率上的改进示意图;图5是比较模块实现示意图;图6本专利技术具体实施例示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图2~图4所示,本专利技术基于FPGA实现的卷积神经网络特征解码系统,包括有:相互连接的DDR缓存模块和FPGA,FPGA中设置有特征提取模块和特征解码模块,特征提取模块与特征解码模块连接,特征解码模块进一步包括有:函数变换模块、比较模块、非极大值抑制模块,函数变换模块、比较模块、非极大值抑制模块依次连接。在本专利技术技术方案中,函数变换模块中包括有Sigmoid函数、指数函数。在本专利技术技术方案中,比较模块包括有第一比较模块和第二比较模块,所述第一比较模块中设置有第一比较器,所述第二比较模块中设置有片上缓存BRAM和第二比较器。第一比较模块(即比较模块1)内判断所有特征点在已经得到的通道中N(N<K)分类得分最高的类别N1max,然后将所有特征点的N1max存储在第二比较模块(即比较模块2),第一比较模块再进入N个通道的数据得到N2max,通过第二比较模块再得到N1max与N2max的最大值,以此类推,直到特征点的所有的通道都遍历完,即可得到置信度最高的分类。本专利技术以具有代表性的YoloV3网络为例,阐述该模块实现卷积神经网络的过程。如图3所示,神经网络的特征解码包含Sigmoid函数,指数函数,阈值过滤,非极大值抑制和比较模块。YoloV3网络共有3个输出层,分别对应3个尺度的特征提取结果,这3层结果都要经过函数变换和阈值过滤,然后所有满足条件的点再进行NMS操作,最终输出检测结果的类别,置信度和相对位置信息。与ARM处理器处理方式不同,FPGA不属于冯·诺依曼架构,所以特征提取的结果不需要写入DDR,而是直接输入到特征解码模块,基于FPGA可以同时拥有流水线并行和数据并行的特性,本专利技术对该步骤在效率上进行了改本文档来自技高网...
【技术保护点】
1.一种基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述系统包括有:/n相互连接的DDR缓存模块和FPGA,所述FPGA中设置有特征提取模块和特征解码模块,所述特征提取模块与所述特征解码模块连接。/n
【技术特征摘要】
1.一种基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述系统包括有:
相互连接的DDR缓存模块和FPGA,所述FPGA中设置有特征提取模块和特征解码模块,所述特征提取模块与所述特征解码模块连接。
2.根据权利要求1所述的基于FPGA实现的卷积神经网络特征解码系统,其特征在于,所述FPGA中设置有特征提取模块和特征解码模块,所述特征解码模块进一步包括有:函数变换模块、比较模块、非极大值抑制模块,所述函数...
【专利技术属性】
技术研发人员:张子义,翁荣建,荣义然,杨付收,
申请(专利权)人:逢亿科技上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。