基于FPGA的三维卷积器制造技术

技术编号:16663163 阅读:31 留言:0更新日期:2017-11-30 12:06
本发明专利技术提出了一种基于FPGA的三维卷积器,用于解决现有技术中存在的输入数据重复载入的技术问题,包括在FPGA中实现的六个模块,其中输入数据存储模块,用于对待处理特征图进行输入缓存;三维卷积核存储模块,用于在FPGA内部以多个二维卷积核的形式存储一个三维卷积核;二维卷积器阵列模块,用于将待处理特征图与三维卷积核卷积后输出;中间数据延迟线模块,用于将指定的二维卷积器卷积结果相加、对相加结果延迟后输出;加法器模块,用于将二维卷积器阵列模块输出和中间数据延迟线输出相加并输出;数据输出控制器模块,用于控制加法器模块多个输出的先后顺序。本发明专利技术能够显著提升三维卷积运算速度,可用于目标跟踪或行为检测等方面。

【技术实现步骤摘要】
基于FPGA的三维卷积器
本专利技术属于视频处理
,涉及一种基于FPGA的三维卷积器,可用于基于FPGA硬件平台的利用卷积神经网络技术进行目标跟踪或人体行为检测的系统中。
技术介绍
随着微电子制造工艺和集成电路设计的进步,现场可编程门阵列(FieldProgrammableGateArray,FPGA)得到了快速发展,因为其资源丰富、设计灵活、功耗低的特点,已经被广泛使用。FPGA实现平台因为其高性能、低功耗、可重配的特点具备广阔的发展前景。FPGA作为可编程标准器件可适用于各种不同的功能,其需要的研发周期较短、开发成本低廉,并且具有很强的灵活性。近年来,基于FPGA的高层次综合工具的发展,极大的降低了FPGA设计的开发难度,使FPGA实现复杂算法更加方便快捷。卷积神经网络作为一类典型的前馈型多层神经网络,能够从大量数据中自动提取复杂特征,进行自主学习,并且对输入图像要求不高,不需要对输入图像进行繁杂的前期预处理。因为卷积神经网络自身特定的网络结构,其识别能力不易受到图像中图形畸变或简单几何变换的影响,对有一些细微变化的识别对象也有较好的识别效果。卷积神经网络多年来一直是多层人工神经网络研究的一个重要方向、研究热点。由于各种硬件平台的出现,二维卷积神经网络模型得到了广泛的发展。为满足视频处理领域的需求,在二维卷积神经网络的基础上,人们又提出了三维卷积神经网络的概念,三维卷积神经网络目前已成功应用于目标跟踪和人体行为检测等方面。三维卷积运算可以一次在多个连续帧中提取更多的信息。然而,这意味着将有更大的计算负担,特别是对于实时性要求高的系统。因此,在运用到三维卷积运算的系统中,如何达到需要的计算速度同时降低功耗已成为主要问题。研究开发人员针对FPGA的三维卷积运算实现提出了多种结构,不同结构对FPGA内部的资源占用情况、数据传输带宽需求等各不相同,各有优劣。这些结构的普遍特征基本都包括输入数据存储模块、二维卷积器阵列模块、加法器模块和数据输出控制器模块。输入数据存储模块接收前级发送来的待处理特征图和三维卷积核,并发送给二维卷积器阵列模块,二维卷积器阵列模块完成多个二维卷积后将卷积结果发送给加法器模块相加,相加结果最终由数据输出控制器模块输出。BrombergerM,BastianP,BergeestJP于2016年在《InternationalSymposiumonBiomedicalImaging》上发表了名为“FPGA-acceleratedRichardson-Lucydeconvolutionfor3Dimagedata”的论文。文中提出了一种基于FPGA的三维卷积运算结构,该结构包括输入数据存储模块、二维卷积器阵列模块、加法器和输出模块。输入数据存储模块接收前级发送来的待处理特征图和三维卷积核并发送给二维卷积器阵列模块,二维卷积器阵列模块以串行形式先后完成多次二维卷积,将每一次的二卷积结果缓存在加法器和输出模块并与前一次二维卷积结果相加,直到完成一次三维卷积后,将结果输出。该结构资源占用少,但并行度不高,且输入数据需要多次载入,增加了对数据源和FPGA之间数据传输带宽的要求,进而使三维卷积运算的整体速度受到限制。
技术实现思路
本专利技术的目的在于克服上述现有技术存在的缺陷,提出了一种基于FPGA的三维卷积器,利用卷积运算数据相关性低的特点,用在FPGA中实现的中间数据延迟线对中间数据进行缓存,避免输入数据的重复载入,实现了所有输入数据仅需要输入一次的特性,用于解决现有计算结构需要多次载入数据的技术问题。为实现上述目的,本专利技术采取的技术方案为:基于FPGA的三维卷积器,包括在FPGA中实现的输入数据存储模块、二维卷积器阵列模块、加法器模块和数据输出控制器模块,其中:输入数据存储模块,用于将多幅待处理特征图缓存在FPGA内部RAM中,并发送。二维卷积器阵列模块,包括多个二维卷积器,用于对多幅待处理特征图与二维卷积核进行卷积,并输出多个卷积结果。加法器模块,包括多个多输入加法器,用于将二维卷积器阵列模块输出的多个卷积结果与中间数据延迟线模块的输出相加并输出。数据输出控制器模块,用于控制加法器模块的多个相加结果输出的先后顺序,并将多个相加结果输出。所述基于FPGA的三维卷积器,还包括三维卷积核存储模块和中间数据延迟线模块,其中:三维卷积核存储模块,用于存储三维卷积核的数值,并将三维卷积核的数值输出给二维卷积器阵列模块。中间数据延迟线模块,包括多条中间数据延迟线,每条中间数据延迟线与一个或多个二维卷积器相连,用于将一个二维卷积器的卷积结果延迟后输出,或将多个二维卷积器的卷积结果相加,并将相加结果延迟后输出。上述基于FPGA的三维卷积器,所述三维卷积核存储模块,其存储三维卷积核的数值,是按照三维卷积核的长度值,将一个三维卷积核以多个二维卷积核的形式进行的。上述基于FPGA的三维卷积器,所述二维卷积器阵列模块,采用全缓存模式,通过循环展开和流水线的运算方法实现对待处理特征图和二维卷积核的二维卷积运算,并将卷积结果输出给中间数据延迟线模块或加法器模块。上述基于FPGA的三维卷积器,所述多个多输入加法器,其中一个多输入加法器与多个二维卷积器相连,用于将多个二维卷积器的卷积结果相加并输出,其余多输入加法器与一条中间数据延迟线和一个或多个二维卷积器相连,用于将一条中间数据延迟线和一个或多个二维卷积器的运算结果相加输出。上述基于FPGA的三维卷积器,所述数据输出控制器模块,其控制加法器模块的多个相加结果输出的先后顺序,是根据各加法器对应的中间数据延迟线上所连二维卷积器的数量不同实现的。本专利技术与现有技术相比,具有以下优点:1、本专利技术由于在二维卷积器阵列模块和加法器模块之间引入了中间数据延迟线模块,使在后几次运算中可能用到的信息能够被保存下来,从而达到所有输入数据只需输入一次的目的,可以在不损失精度和正确性的前提下提高数据输入效率,进而显著提高了三维卷积的运算速度。2、本专利技术由于在二维卷积器阵列模块前引入了三维卷积核存储模块,卷积核数值永久的保存在FPGA内部存储资源中,可以随时输出给二维卷积器阵列模块,提高了计算效率,进一步提高了三维卷积的运算速度。附图说明附图1是本专利技术的整体结构示意图;附图2是本专利技术各功能模块间的连接关系示意图;附图3是本专利技术二维卷积阵列中的二维卷积器结构示意图;附图4是本专利技术测试平台示意图。具体实施方式以下结合附图和具体实施例,对本专利技术作进一步详细说明。如图1所示,基于FPGA的三维卷积器,包括在FPGA中实现的输入数据存储模块1、二维卷积器阵列模块3、加法器模块5和数据输出控制器模块6,其中:输入数据存储模块1,用于将多幅待处理特征图缓存在FPGA内部RAM中,并发送,以3幅待处理特征图为实施例。二维卷积器阵列模块3,包括多个二维卷积器,用于对多幅待处理特征图与二维卷积核进行卷积,并输出多个卷积结果,实施例要求二维卷积器个数为9个。加法器模块5,包括多个多输入加法器,用于将二维卷积器阵列模块输出的多个卷积结果与中间数据延迟线模块的输出相加并输出实施例要求多输入加法器个数为3个。数据输出控制器模块6,用于控制加法器模块的多个相加结果输出的先后顺序,并将多个相加结果输出。还包括在FPGA中实本文档来自技高网
...
基于FPGA的三维卷积器

【技术保护点】
基于FPGA的三维卷积器,包括在FPGA中实现的输入数据存储模块、二维卷积器阵列模块、加法器模块和数据输出控制器模块,其中:输入数据存储模块,用于将多幅待处理特征图缓存在FPGA内部RAM中,并发送;二维卷积器阵列模块,包括多个二维卷积器,用于对多幅待处理特征图与二维卷积核进行卷积,并输出多个卷积结果;加法器模块,包括多个多输入加法器,用于将二维卷积器阵列模块输出的多个卷积结果与中间数据延迟线模块的输出相加并输出;数据输出控制器模块,用于控制加法器模块的多个相加结果输出的先后顺序,并将多个相加结果输出;其特征在于:所述基于FPGA的三维卷积器,还包括三维卷积核存储模块和中间数据延迟线模块,其中:三维卷积核存储模块,用于存储三维卷积核的数值,并将三维卷积核的数值输出给二维卷积器阵列模块;中间数据延迟线模块,包括多条中间数据延迟线,每条中间数据延迟线与一个或多个二维卷积器相连,用于将一个二维卷积器的卷积结果延迟后输出,或将多个二维卷积器的卷积结果相加,并将相加结果延迟后输出。

【技术特征摘要】
1.基于FPGA的三维卷积器,包括在FPGA中实现的输入数据存储模块、二维卷积器阵列模块、加法器模块和数据输出控制器模块,其中:输入数据存储模块,用于将多幅待处理特征图缓存在FPGA内部RAM中,并发送;二维卷积器阵列模块,包括多个二维卷积器,用于对多幅待处理特征图与二维卷积核进行卷积,并输出多个卷积结果;加法器模块,包括多个多输入加法器,用于将二维卷积器阵列模块输出的多个卷积结果与中间数据延迟线模块的输出相加并输出;数据输出控制器模块,用于控制加法器模块的多个相加结果输出的先后顺序,并将多个相加结果输出;其特征在于:所述基于FPGA的三维卷积器,还包括三维卷积核存储模块和中间数据延迟线模块,其中:三维卷积核存储模块,用于存储三维卷积核的数值,并将三维卷积核的数值输出给二维卷积器阵列模块;中间数据延迟线模块,包括多条中间数据延迟线,每条中间数据延迟线与一个或多个二维卷积器相连,用于将一个二维卷积器的卷积结果延迟后输出,或将多个二维卷积器的卷积结果相加,并将相加结果延迟后输出。2.根据权利要...

【专利技术属性】
技术研发人员:王海赵伟沈越邵梦君王珂王中正
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利