一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像目标检测方法及系统

2022-12-09 23:19:01 来源:中国专利 TAG:
1.本发明涉及机器视觉
技术领域
:,更具体地,涉及一种图像目标检测方法及系统。
背景技术
::2.图像处理是信息时代的一项关键技术,它为电子系统提供了感知、分析和塑造世界的能力。传统的图像处理技术主要集中在某些数学算法或特征描述符上,自本世纪初以来,受生物启发的深度神经网络(dnn)获得广泛青睐。作为机器视觉领域的基本方向之一,目标检测技术经过几十年的发展,已获得大量成熟且完善的研究成果。3.当前的图像目标检测方法主要是通过神经网络进行深度学习,用于目标检测的神经网络算法领域近年来产生了较多标志性的网络,具有代表性的yolo系列算法就在测试速度和准确率两个重要指标上均展现了良好的成效。而目前对深度学习进行加速的计算平台绝大多数是采用gpu,虽然能够实现实时处理,但同时也存在着功耗高和资源利用率低的弊端。对于大尺寸的图像目标检测处理,yolo系列算法需要使用更多层数的卷积层进行特征提取,随着网络深度的增加,需要逐步提取中层次特征以及高层次综合特征,每一尺寸的特征提取需要的卷积层数达到了三层甚至更高的层数,因此目前的目标检测的神经网络算法难以满足一些实际场合(如网络边缘和移动应用场景)低成本与低功耗的需求。技术实现要素:4.本发明为克服上述现有技术中用于图像目标检测的神经网络算法计算成本高、功耗高的缺陷,提供一种图像目标检测方法及系统。5.为解决上述技术问题,本发明的技术方案如下:6.一种图像目标检测方法,包括以下步骤:7.s1、构建用于图像目标检测的第一网络模型、第二网络模型和第三网络模型;所述第一网络模型、第二网络模型和第三网络模型中包括特征提取模块、特征融合模块和输出模块;其中,所述第一网络模型和第二网络模型中的特征提取模块均包含轻量型特征提取主干网;所述第二网络模型中的特征提取模块在所述轻量型特征提取主干网上引入瓶颈结构,所述第三网络模型中的特征提取模块和特征融合模块采用fpn结构;8.s2、根据所述第一网络模型、第二网络模型和第三网络模型分别生成相应的数字集成电路ip核,然后将所述数字集成电路ip核搭载在硬件系统上;9.s3、获取待进行目标检测的图像并对其进行预处理,根据所述图像的规格调用所述硬件系统上适配的数字集成电路ip核执行图像目标检测运算,输出得到目标检测结果。10.进一步地,本发明还提出了一种图像目标检测系统,应用于上述技术方案提出的图像目标检测方法。图像目标检测系统包括搭载有数字集成电路ip核的硬件系统,用于对输入的图像进行图像目标检测;所述数字集成电路ip核中包括基于第一网络模型、第二网络模型和第三网络模型中任一模型的经过数字电路连接设计的计算模块;其中,所述第一网络模型和第二网络模型中的特征提取模块均包含轻量型特征提取主干网;所述第二网络模型中的特征提取模块在所述轻量型特征提取主干网上引入瓶颈结构,所述第三网络模型中的特征提取模块和特征融合模块采用fpn结构。11.与现有技术相比,本发明技术方案的有益效果是:本发明通过构建轻量化的用于图像目标检测的网络模型,针对软件算法部分进行加速优化,并将其移植到低功耗低成本的异构平台加速设备上,以降低图像目标检测的神经网络算法计算成本及功耗;本发明还通过对硬件设计方式实现计算加速,在资源受限的嵌入式开发板上实现低计算成本、低功耗的实时目标检测。附图说明12.图1为本发明的图像目标检测方法的流程图。13.图2为本发明的第一网络模型lite-1的架构图。14.图3为本发明的第二网络模型lite-2的架构图。15.图4为本发明的第三网络模型lite-3的架构图。16.图5为实施例1中第一网络模型与第二网络模型的性能对比图。17.图6为实施例1中第一网络模型和第二网络模型的速度与精度对比图。18.图7为实施例2中目标检测系统软硬件整体设计的流程图。19.图8为实施例2中软件控制程序设计流程图。20.图9为实施例2中硬件系统的架构图。21.图10为实施例2中arm fpga的异构计算平台的内部资源分布架构图。22.图11~图13为实施例2中纯软件平台与搭载第三网络模型的异构平台的检测结果对比图。23.图14为实施例3中基于hls和网口访问设计的硬件系统的整体架构及设计流程图。24.图15为实施例3中目标检测硬件系统的综合电路结构。25.图16为实施例3中pl逻辑运算顶层设计与外部存储ddr的连接示意图。26.图17为实施例3中目标检测硬件加速ip核内部功能模块及其连接关系示意图。27.图18为实施例3中目标检测硬件加速ip核内部结构及其和与外部ip核的连接示意图。具体实施方式28.附图仅用于示例性说明,不能理解为对本专利的限制;29.对于本领域技术人员来说,附图中某些公知结构及其说明的可能的省略是可以理解的。30.下面结合附图和实施例对本发明的技术方案做进一步的说明。31.实施例132.本实施例提出一种图像目标检测方法,如图1所示,为本实施例的图像目标检测方法的流程图。33.本实施例提出的图像目标检测方法中,包括以下步骤:34.s1、构建用于图像目标检测的第一网络模型lite-1、第二网络模型lite-2和第三网络模型lite-3。35.s2、将所述第一网络模型、第二网络模型和第三网络模型分别通过hls工具设计相应的计算模块并生成ip核,然后将所述ip核经过设计后搭载在硬件系统上。36.s3、获取待进行目标检测的图像并对其进行预处理,根据所述图像的规格调用所述硬件系统上适配的运算ip核执行图像目标检测,输出得到目标检测结果。37.本实施例中,所述第一网络模型和第二网络模型中的特征提取模块均包含轻量型特征提取主干网;所述第二网络模型中的特征提取模块在所述轻量型特征提取主干网上引入瓶颈结构,所述第三网络模型中的特征提取模块和特征融合模块采用fpn结构。38.在一具体实施例中,所述第一网络模型为经过网络压缩的yolov2神经网络,所述第二网络模型为引入瓶颈结构的yolov2神经网络,所述第三网络模型为采用fpn结构的yolov4神经网络。如图2~4所示,分别为第一网络模型、第二网络模型和第三网络模型的架构图。39.传统的yolov2神经网络对于图片的特征提取操作主要由darknet-19网络实现,同时又使用了route与reorg两种层操作,将网络前端从高分辨率特征图提取的中低层次特征与网络后端从低分辨率特征图提取综合的高层次特征结合,大大降低网络迭代过程中出现的特征损失,保证了快速识别下的识别精度。40.在一可选实施例中,第一网络模型、第二网络模型中的轻量型特征提取主干网中包括若干特征提取卷积层,其中所有分辨率尺寸的特征提取卷积层压缩为1层。41.在一具体实施例中,对传统的yolov2进行压缩,具体地,采用层级裁剪方式的神经网络压缩方法,对基础网络yolov2进行改进。经过层级神经网络裁剪后得到的第一网络模型中,所有分辨率尺寸的特征提取卷积层均精简为一层,极大程度地减少了网络参数量以及计算复杂度,大大缩短了图片从特征提取、降维变尺寸到特征整合以及分类定位过程的时间消耗。42.在一具体实施例中,第一网络模型的网络架构参数如下表1所示。其中,b为boundingbox数量,c则表示可检测的目标类别数。43.表1第一网络模型的网络架构参数44.[0045][0046]在一可选实施例中,第二网络模型是在第一网络模型的基础上引入bottleneck结构(瓶颈结构)替代其网络中用于特征提取的标准卷积层得到的。[0047]bottleneck结构是一种沙漏型结构,当前主要通过叠加1×1与3×3卷积层实现。为了实现相同的特征提取结果,bottleneck结构所需参数远远小于标准卷积结构。例如,输入特征图是26×26×64(长×宽×通道数),通过一层32通道数的3×3卷积(通道降维)和128通道的1×1卷积(通道升维/恢复)调节特征图的通道数,可以实现不同通道的特征信息的交互。[0048]在一具体实施例中,第二网络模型的架构图如图3所示,除了第一层卷积本身输入维度较低,仅为3,且在特征提取的同时起到感受野的作用而没有变化之外,第二网络模型将第一网络模型中用于特征提取的标准卷积层均以三层卷积的bottleneck结构代替。[0049]本实施例的第二网络模型中,在每次特征提取时,都首先经过一层1×1的单核卷积进行降维,维度降低为输入特征图维度的一半,降低了后续卷积的计算复杂度;经过降维后的特征图进行3×3的卷积运算实现特征提取,该层卷积的输入输出维度保持不变,再一次使得其参数低于标准卷积;而最后一步则由一层单核卷积实现升维,使输出维度达到预期要求,即bottleneck输入维度的两倍,升维过程中实现了特征的整合,使提取的特征得以延伸到正常深度,保证了充足的特征信息。如下表2所示,为本实施例的第二网络模型的网络架构参数。其中,b为boundingbox数量,c则表示可检测的目标类别数。[0050]表2第二网络模型的网络架构参数[0051][0052]在一具体实施过程中,对第一网络模型(lite-1)和第二网络模型(lite-2)的软件算法性能进行验证。对两种优化网络的性能验证结果及对比如下表3及图5所示。[0053]表3轻量化改进网络性能对比[0054][0055]由上表3及图5可知,本实施例的lite-1和lite-2都在网络性能得到相同方向的改变:识别精度下降,损失函数升高,推理速度大大提高。经过两次优化后的lite-2识别速度达到了111.5张图片/秒,近乎于改进前的两倍;而识别精度(map)仍然能达到62.4%,虽然精度相较yolov2有了一定的下降,但仍然属于较高水平的识别能力。[0056]为了更直观地观察对比本实施例lite-1和lite-2的网络性能,将lite-1和lite-2与当前流行one-stage(单阶段)网络进行了对比,如图6所示,为目标检测网络速度与精度对比图。由图可知,本实施例的lite-2具有远超其他网络的速度,接近yolov2原网络的2倍,更是yolo网络的3.4倍之多。因此更适合于布置在资源与功耗受限的硬件系统上,以达到预期效果。[0057]在一可选实施例中,所述第三网络模型中的fpn结构包含一个自底向上的特征提取路径和一个自顶向下的特征融合路径;所述特征提取模块设置在所述特征提取路径上对尺寸递减的特征图进行特征提取和抽样,所述特征融合模块设置在所述特征融合路径上对尺寸递增的特征图进行特征融合。[0058]进一步地,在一可选实施例中,所述特征提取模块包括conv基本卷积单元和resblock残差单元;所述输出模块包括多个并行的输出端结构,用于生成对应尺寸的特征图解码信息以实现目标预测;所述输出端结构至少包括依次连接的特征图通道数调整层、归一化层、非线性转换层和特征整合层;所述输出模块通过将多个所述输出端结构输出的所述特征图解码信息进行融合判断得到最终目标检测结果。其中,resblock残差单元是构成残差神经网络的基础模块;conv基本卷积单元可以采用标准卷积或深度可分离卷积实现,其随后跟随两个常规操作,分别是依次连接的bn批归一化操作、leakyrelu激活函数。[0059]在一具体实施例中,第三网络模型基于yolov4网络进行网络模型改进得到,其中,所述特征提取模块包括conv基本卷积单元和resblock残差单元,且所述特征提取模块采用fpn结构的从底向上的路径;所述特征融合模块采用fpn结构的从顶向下的路径;所述输出模块由基础卷积层与3×3卷积层组成。[0060]第三网络模型的网络架构如图4所示,第三网络模型中的特征提取模块负责从输入图像中提取出丰富的特征信息,针对梯度消失问题通过复制基础层的特征图后发送到下一个阶段,实现分离基础层的特征映射图。第三网络模型将梯度的变化从头到尾地集成到特征图中,从而使得模型架构在保证原优势的基础上达到简洁轻量化。[0061]中间部分主要用来融合不同尺寸特征图的特征信息。lite-3网络采用的是fpn(特征金字塔网络)结构。fpn是一个基于自底向上的特征金字塔概念设计的特征提取器用于提升准确率和速度,不同于yolov4中使用的空间金字塔池化网络和路径聚合网络,本实施例的fpn结构包含一个自底向上的特征提取路径和一个自顶向下的特征融合路径。其中从底向上的路径是一个常见的利用卷积网络提取特征的过程,向上的过程中,空间解析度逐步减小,在检测到了更高维度的结构后,每一层的语义信息得以增加。[0062]网络末端输出部分由基础卷积(conv bn leakyrelu)与3×3conv组合而成。主要采用3×3进行特征整合,1×1的卷积进行通道数的调整,网络输出端由两个卷积层、一个激活函数层构成。多个输出端结构分别用于生成对应的多个二进制文件,即多种不同比例尺寸的特征图来进行后续的图片预测,也是网络中一种解码过程。网络末端的两个卷积操作(conv bn leakyrelu 3×3conv)虽然在网络中占比最少,但是能进一步降低网络参数,是该轻量化网络模型的核心内容之一。[0063]本实施例中,通过构建轻量化的用于图像目标检测的网络模型,针对软件算法部分进行加速优化,并将其移植到低功耗低成本的异构平台加速设备上,以降低图像目标检测的神经网络算法计算成本及功耗。[0064]实施例2[0065]本实施例在实施例1提出的图像目标检测方法的基础上作出改进。[0066]本实施例采用的工具或软件是为清楚地说明本发明所作的举例,并非是对本发明的实施方式的限定。[0067]针对s2步骤将通过hls工具设计相应的计算模块生成ip核,并移植到硬件系统上的过程中,其步骤包括:[0068]s2.1、根据所述第一网络模型、第二网络模型和/或第三网络模型,利用hls工具分别进行fpga硬件电路设计,在完成硬件电路设计后综合成hdl级的数字集成电路ip核;在vivado软件中导入生成的数字集成电路ip核并构建相应的fpga工程,创建顶层文件以及添加计算资源约束后进行综合仿真,最终生成目标检测硬件电路的比特流文件,并导出到sdk软件中。[0069]s2.2、在sdk中进行软件部分设计,根据所述比特流文件进行系统环境配置,包括创建计算资源支持包并建立应用工程进行功能开发与测试,生成.elf格式的可执行文件。[0070]s2.3、将所述比特流文件和所述可执行文件下载到板载芯片上,得到用于图像目标检测的硬件系统。[0071]如图7所示,为本实施例中目标检测系统软硬件整体设计的流程图。[0072]利用上述步骤将比特流文件和可执行文件下载到开发板芯片上,得到的用于图像目标检测的硬件系统为经过软硬件加速优化的设备。[0073]其中,软件部分程序设计主要用于产生控制信号,以控制数据计算端(fpga端)进行数据计算与传输处理工作。软件控制程序设计的流程图如图8所示,主要包括初始化网络,对图像数据处理,启动与调用硬件ip核以及显示结果的操作。而fpga端主要负责卷积与采样模块的计算。本实施例基于hls工具对fpga端的卷积与采样操作进行数据16位定点量化、循环分块与展开、流水线设计、输入输出通道并行以及乒乓缓存机制,通过以上优化设计实现卷积以及采样计算的加速。[0074]进一步地,在一可选实施例中,硬件系统包括用于数据传输以及分配流程的状态控制端、用于卷积与采样计算的功能运算端,以及用于负责数据的读写以及时序逻辑控制的数据总线。如图9所示,为本实施例的硬件系统的架构图。本实施例的状态控制端采用arm,功能运算端采用fpga,数据总线采用axi总线。[0075]所述fpga端包括用于加速网络计算的卷积ip核和采样ip核,其中包含了数据加载、尺度变换、计算以及传输等功能。[0076]在一具体实施例中,卷积ip核主要负责第三网络模型中的3×3与1×1的卷积计算。采样ip核主要用于第三网络模型中上采样与下采样的计算。如图10所示,为本实施例的arm fpga的异构计算平台的内部资源分布架构图。其中,本发明实施例基于fpga实现目标检测系统的硬件加速ip核。而本实施例在该硬件加速ip核中,其包含数据输入模块、数据输出模块、输入输出缓存模块、权重缓存模块,以及,目标检测计算模块;其中目标检测计算模块包括卷积ip核和采样ip核。所述采样ip核还包括用于执行第一网络模型、第二网络模型或第三网络模型中上采样与下采样计算的采样计算模块,所述卷积ip核还包括用于执行第一网络模型、第二网络模型或第三网络模型的卷积计算模块。[0077]在启动fpga端中所有ip核进行计算加速前,arm端根据当前网络模型的结构信息通过axi总线对其进行初始化配置,输入数据模块将输入的图片数据与权重数据按照地址分别存入相应的缓存中;卷积计算模块和/或采样计算模块调用缓存中的数据工作,生成卷积和/或采样结果后按照地址分别存入相应的缓存中;数据输出模块按照地址将缓存中的结果通过axi总线输出到片外ddr存储器中;当所有数据完成输出后,所述ip核通过axi总线输出停止信号,暂停或结束设备运行。[0078]在一具体实施例中,将第三网络模型(lite-3,(n=6))通过hls工具设计相应的计算模块并生成ip核,然后将所述ip核经过设计后搭载在硬件系统上,构建fpga arm异构平台。在hls以及vivado工具上选中型号为xc7z020clg400-1的板卡文件进行综合仿真,对lite-3(n=6)目标检测网络进行综合后,得到评估的资源结果包括:lut查找表资源消耗为84%;bram片上存储资源消耗57%;ff触发器消耗为50%;dsp资源消耗为71%。[0079]pynq-z2开发板兼具双核arm处理器与fpga架构,芯片设计xilinx公司采用了28nm的工艺流程,基于芯片工艺这里设置系统时钟频率为100mhz。通过vivado软件搭建基于lite-3(n=6)的目标检测系统,通过仿真综合得到功耗评估结果,其中芯片所需动态功耗与静态功耗分别约为2.162w与0.172w,系统总功耗约为2.334w,对比其他系统实现平台有显著的低功耗优势。[0080]进一步地,对基于现有的纯软件计算方式与本具体实施例中所使用fpga arm异构平台进行加速后的目标检测系统的检测速度和精确度分别进行了对比分析。[0081]在检测速度方面,将本实施例的基于fpga arm计算加速的目标检测模型与现有的使用纯软件计算方式的目标检测系统进行对比。基于cpu并采用dev-c 工具进行开发,用c语言搭建lite-3网络并进行图片检测,采用的权重与本实施例所设计的硬件系统相同。基于cpu的纯软件算法的预测结果,将处理完的相应输出和异构平台输出相比验证其正确性,处理一帧图像所需平均时间约为8.865s。[0082]fpga arm异构平台的实现是通过在ps端多次调用pl端的ip核,其中arm主频为650mhz,fpga主频为100mhz。采用上述硬件优化后的lite-3(n=6)网络对图片进行预测,统计预测一帧图像的平均时间。由于算力的限制,权重是直接使用预训练好的权重文件(数据集为voc2007 voc2012 coco)。实验单张图像的预测结果,在fpga arm异构平台上的平均检测时间达到了777.674ms,平均加速比达到了11.4倍。[0083]在图片识别的精确度方面,由于在fpga arm异构平台上采用了16位的定点量化为求其速度方面的突破,于是得到的识别效果与传统深度学习框架下的识别精确度有略微差异。为了单独比较检测精度的变化,本实施例的纯软件平台采用基于pytorch深度学习框架搭建lite-3(n=6)卷积神经网络进行目标检测,检测结果对比图如图11~13所示。其中,图11(a)、图12(a)、图13(a)、分别为纯软件平台的检测结果,图11(b)、图12(b)、图13(b)分别为异构平台的检测结果。[0084]图11中,纯软件平台检测结果为:car:97%、bicycle:94%、dog:92%,异构平台检测结果为:car:96%、bicycle:92%、dog:93%。图12中,纯软件平台检测结果为:car:96%、horse:76%、dog:97%,异构平台检测结果为:person:100%、horse:74%、dog:97%。图13给出了多物体图像目标识别的结果,可以看出,相比少数不重叠物体的预测,在目标多而重叠的图像目标检测中,异构平台的定点量化会带来少许的误差,但总体识别精度仍然较高,误差也在可以接受的范围之内。[0085]综上所述,从检测结果上可以看出,采用本实施例的异构平台加速的目标检测系统处理结果中的目标框相较原始基于纯软件的目标框位置稍有所偏移,检测目标的精确度略有所降低,但是整体上检测效果与量化前的一致。[0086]如下表4所示,本实施例对比了软件平台与异构平台上的综合性能参数,其中软件平台的主频为1.80ghz,运行内存8gb,异构平台采用的主频为650 100mhz,内存为512mb,运行lite-3(n=6)网络时,通过观察功率和时间耗费可以看出arm fpga平台在处理图片时具备低功耗的特点,近似cpu处理器功耗的五分之一,在处理时间方面,通过硬件加速后使得检测一张图片的时间约为0.778s,相比不使用深度学习架构的软件平台加速了11.4倍。[0087]表4lite-3(n=6)在纯cpu软件平台与异构平台性能比较[0088][0089]综上所述,在速度和精确度上,本实施例的设计均保持良好的识别效果,并在速度上优化更为明显,通过调用硬件模块加速卷积采样等网络中的基本运算大大加快运算时间,同时也保证了量化后的网络在硬件加速后依然拥有良好的识别精确度。[0090]实施例3[0091]本实施例在实施例1提出的图像目标检测方法的基础上作出改进。[0092]针对s2步骤将通过hls工具设计相应的计算模块生成ip核,并移植到硬件设备上的过程中,其步骤包括:[0093]s2.1、利用hls工具设计所述第一网络模型、第二网络模型和第三网络模型的计算模块并进行验证,封装为独立的运算ip核。[0094]s2.2、在vivado平台上对各个运算ip核进行搭建与连接仿真,生成硬件配置文件。[0095]s2.3、通过以太网连接开发板,在jupyternotebook平台导入vivado平台提供的所述硬件配置文件,通过python设计数据导入、图像预处理、参数设置、后处理以及特征提取功能的调用程序,整合完成用于图像目标检测的硬件设备。[0096]如图14所示,为本实施例中基于hls和网口访问设计的硬件系统的整体架构及设计流程图。[0097]本实施例中,通过vivadohls工具的c/c 编程功能设计神经网络的计算模块,生成运算ip核。随后在vivado2019.1平台对硬件系统进行布线设计,最后利用pynq系统自带的jupyternotebook对硬件进行功能模块和资源的调用,形成具有完整功能的目标检测系统。[0098]本实施例设计通过网口连接浏览器,通过浏览器可以打开jupyternotebook工具,直接对网络模型进行设计调整,无需烧录网络训练参数至sd卡中。[0099]进一步地,本实施例的硬件系统包括用于执行图像目标检测的功能运算端fpga,以及用于存储权重、图片数据的片外ddr存储器。如图15所示,为本实施例的目标检测硬件系统的综合电路结构图。[0100]本实施例中,所述fpga端包括计算模块、时序控制模块、逻辑控制模块和传输协议模块;其中,所述计算模块包含所述第一网络模型、第二网络模型和/或第三网络模型的数字集成电路ip核,数字集成电路ip核中包括数据加载单元、卷积单元、池化单元、重整单元、输出单元,以及若干存储块。所述传输协议模块通过以太网从片外存储器获取图像数据与权重数据并传输至计算模块。[0101]本实施例中的fpga端主要通过逻辑控制板块实现对整个板块的控制与协调,而通过传输协议部分从ddr存储器获取权重、图片等数据,然后在本实施例设计的第一网络模型、第二网络模型和/或第三网络模型中进行特征提取与降维等计算操作,运算过程的时序与复位等时钟相关工作与时序控制模块息息相关。[0102]pl逻辑运算顶层设计与外部存储ddr的连接示意图如图16所示。本实施例中的属于pl部分的计算模块主要基于hls平台实现。所述计算模块对输入的图像数据与权重数据分别通过不同的数据加载单元进行接收,并将图像数据储存在4个存储块,将权重数据储存在2个存储块。卷积单元从相应的存储块中提取所需的图像数据与权重数据对不同尺寸的图像进行特征提取或对特征图进行卷积运算,并在网络迭代过程中与池化单元进行交互,实现特征降维。[0103]在卷积单元和池化单元工作过程中,通过重整单元对对特征图进行尺寸及维度调整,最后卷积单元将包含图像待检测目标分类与定位信息的数据结果传输至输出单元,由输出单元通过两个存储块对检测结果进行存储以及输出。[0104]进一步地,本实施例的卷积单元运算过程包括:[0105]1)在单一通道对输入特征图与对应卷积核运算得到特征值,使卷积核从特征图起始位置遍历整个图像,得到新的特征图;[0106]2)对输入特征图重复第一步操作,遍历所有通道,并将对应位置的特征值累加,形成完整可用的单通道输出特征图;[0107]3)对卷积核重复以上两步操作,遍历全部卷积核,得到完整的多通道输出特征图。[0108]由于输入的特征信息与权重信息为多维变量,无法迅速地被计算机提取与传输,因此需要预先将其展开为一维变量。[0109]此外,为充分利用fpga端的并行运算优势,本实施例将一维输入特征信息切割为四份,同时实现4路并行的乘法与累加运算,大大加快卷积单元的运行速度。[0110]进一步地,本实施例中使用数组形式对所述卷积单元和所述池化单元产生的数据进行存储,并将所述数组进行完全分割,为每个数组元素分配一个寄存器进行数据存储。[0111]本实施例考虑到hls设计的卷积和池化模块中使用了大量的数组(array)进行数据的存储,且每一个数组都存储了大量数据信息。fpga通常使用bram来存储hls设计中的数组,而bram最多只有两个读数据口,极大地限制了大规模数据的传输速率。[0112]一个数组的数据通常存放在一个bram中,保持至多两个口的数据交流。而经过数组分割后,该数组的数据可由多个bram存储,因此数据对外传输接口增多,吞吐量增大。本实施例对数组的分割均采用complete(完全分割)方式,每个数组元素分配一个寄存器存储,耗费了大量的板上资源,与此同时也最大程度地提高了运算效率。[0113]进一步地,本实施例中的池化单元为灵活配置参数的最大池化层,参数包括:输入数据input、输出数据output、池化尺寸kernel_size、池化步长kernel_stride、输出通道数tm、输出特征高度h,和输出特征宽度w。其中,池化操作不改变所处理的特征数据的通道数,而只改变特征图的尺寸,尺寸的改变主要取决于kernel_size与kernel_stride两参数。[0114]进一步地,本实施例中的卷积单元和池化单元中使用循环展开技术与流水线技术对层内卷积与池化循环进行并行优化。[0115]其中,卷积单元与池化单元的输入特征图是三维变量(长度、宽度、通道数),且每一层的计算结果都会直接影响下一层的结果,因此层间的计算不可同时进行。但特征图的不同位置、不同通道之间没有计算上的依赖关系,相互之间不会影响计算结果,同时不同卷积核之间也存在并行性,因此可以使用循环展开(unroll)技术与流水线(pipeline)技术对层内卷积与池化循环进行并行优化,提高运算效率。[0116]根据unroll与pipeline指令的区别,在一可选实施例中,对循环次数适中且固定的循环如数据加载,数组赋值或值变换等,进行unroll操作,以最大化并行运算。而对于循环嵌套以及循环次数较多,同时又受外界输入影响而循环历程不固定的情况,如卷积计算和池化计算等,可选地使用pipeline操作,在资源可用的情况下尽量提高数据处理的并行性,实现以一定的运算资源换取更高效的运算效率。[0117]本实施例中,对于网络计算加速部分优化的贡献在于流水线技术以及循环展开和数组分割技术的使用,能够最大程度地提高了运算效率,同时保持低计算成本及功耗。[0118]进一步地,针对s2步骤中,经过设计、封装后的第一网络模型、第二网络模型和/或第三网络模型被制作成ip核,具有高效的卷积神经网络计算能力。[0119]如图17所示,为本实施例目标检测硬件加速ip核内部功能模块及其连接关系示意图。[0120]本实施例中,ip核通过五个axi4协议端口接收来自ps端ddr所存的数据,一个axi4协议端口接收控制指令,同时还具备专门的时钟接收端口与系统复位端口。在目标检测系统运行过程中,ip核负责特征提取与分类定位数据的整合。首先,通过接收端口加载权重数据以及ps预处理后的图片数据,在卷积运算部分进行特征提取,随着特征不断迭代,卷积部分与池化部分进行数据交替,实现特征图尺寸与通道的变换,直至运算结束得到包含原图片待检测目标分类与预测位置的数据,通过五个axi端口传送回ps部分进行后续的处理加工。[0121]此外,还需要系统接口控制ip核实现开发板ps部分与pl部分的信息交互,以及ps端对pl端的指令控制与参数配置;以及通过axi互联ip核与axi智能连接ip核实现处理系统与fpga硬件板块的具体功能连接;通过系统复位ip与时钟ip为系统提供统一时钟信号与复位操作。[0122]如图18所示,为本实施例中目标检测pl端的fpga硬件系统所需要的目标检测硬件加速ip核,根据功能需求对以上模块进行布线以及互联的内部结构及其与外部ip核的连接示意图。经过布线后的ip核功能整合在一起,通过多种形式的连线资源相互配合与协调,实现了对目标检测网络大规模计算的硬件加速方式的板上资源布置。将此设计经过vivado的比特流生成(generatebitstream)功能导出比特流(bitstream)文件,其中包含本文对pl硬件部分设计对应于pynq-z2开发板的布置信息,以供上位机通过ps控制pl部分进行计算操作。[0123]进一步地,s2步骤中,通过jupyternotebook连接方式的系统操作方式首先需要通过网线连接上位机,进行以太网连接,随后通过pynq-z2开发板的ip地址连接入其专属jupyternotebook界面,将包含overlay与ip设计的bitstream文件、包含参数配置信息的hwh文件以及包含ip信息的tcl脚本文件上传到开发板内存中,之后进行python语言的编写,实现对开发板硬件功能模块的调用以及整合。[0124]在一可选实施例中,硬件系统运行时包括以下步骤:[0125](1)数据导入:导入比特流文件,读取所述硬件配置文件,并为即将使用的权重、图像、偏置数据申请内存。[0126](2)图像预处理:利用python语言的numpy函数库,对读取的图片数据进行加工与重组,将任意尺寸的图片按比例缩放为预设的尺寸大小后储存为数组;并将用于储存图片数据的数组由三维空间变量压缩为一维变量,同时进行数值变换,将浮点数变换为硬件可计算的16位无符号整型数。[0127](3)搭建网络及参数设置:基于所述第一网络模型、第二网络模型和第三网络模型中各模块进行硬件层次调用以及网络运行所需的参数设置,所述参数包括层数、层类型、特征图输入输出尺寸以及硬件资源地址信息。[0128](4)特征提取:根据所述第一网络模型、第二网络模型和第三网络模型以及设置的参数对预处理图片的卷积与池化操作,得到图像待检测目标分类与定位信息。[0129](5)图像后处理:对图像待检测目标分类与定位信息的数据结果进行分析,消除重合度较高的冗余预测框;根据图像待检测目标分类与定位信息,计算预测框的预测值,并根据所述预测值进行修正,得到检测目标的精确定位,并在图像中显示检测框。[0130]在具体实施过程中,采用了基于arm fpga异构平台(zynq开发板,核心芯片为xc7z020芯片),基于以太网网络连接实现zynq开发板与上位机(pc:个人计算机)的连接,对开发板进行功能/数据的控制与调用,通过调用所述硬件系统执行图像目标检测,即可输出得到目标检测结果,且本实施例中的检测结果直接显示在jupyter平台上。[0131]在一具体实施过程中,选用pynq-z2开发板作为fpga硬件计算加速的设备平台,利用板上arm(即cpu)进行数据传输控制。本实施例通过unroll与pipeline技术实行循环展开与流水线操作,将循环展开,以增加资源占用为代价大幅度提高并行计算能力。如下表5为unroll与pipeline操作对运行速度的影响测试结果。其中,ff为触发器(flipflop),lut为查找表(look-up-table)。[0132]表5unroll与pipeline操作对运行速度的影响测试结果[0133][0134]由上表可知,循环优化后的硬件资源,除bram外的占用率均出现明显增加,说明循环展开与流水线操作需要更多的计算资源来支撑,而本身数据的读取和存储方式未发生变动,因此bram存储模块并未增加。[0135]为了增加硬件系统的数据吞吐量,本文优化了数组接口。通过array_partition技术将装载数据的大尺寸数组拆分,从硬件角度来看,是将单个的双口bram替换为了大量承载单元素数据的寄存器,以此增加数据的传输接口,提高并行度。如下表6为数组接口优化的验证测试结果。[0136]表6数组接口优化的验证测试结果[0137][0138]由上表可知,经过array_partition技术的数组分割优化后,bram的使用量略微下降,触发器使用量则上升。本实施例将一维与二维数组进行彻底分割,数据装载方式从bram转换为寄存器(register),bram利用率(资源消耗)会较大幅度下降;但对于三维甚至四维数组如特征图数据(三维:宽度,高度,通道数)、权重数据(四维:输入通道,宽度,高度,输出通道)等,难以利用寄存器对高维数据进行高效存储。因此,考虑到通常低成本边缘设备的板上资源有限,本实施例采取部分分割方式,对其中某一维度或两个维度进行完整分割,这时的数据装载方式则从单个bram扩展为多个bram存储。同时可以看到,虽然数组优化后的资源利用率整体反而有所下降,但是将循环优化与数组优化综合之后,系统的资源利用率呈现出极大的增长,查找表(lut)的利用率提升。[0139]经过以上对各优化方案的测试与验证后,以下将对系统整体进行性能与功能测试。首先,通过xilinx的功耗估计器xpe(xilinxpowerestimator)对本实施例lite-1的功耗进行估计,实现根据系统设计方案的资源利用、逻辑使用情况以及时钟频率等信息进行预估。经实验仿真验证得知,本实施例的硬件系统预估总功耗为2.447w,其中动态功耗为2.272w,约占93%,而静态下的功耗为0.176w,占总功耗的7%,可以满足低功耗的应用场景。动态功耗中,可以看到pynq的arm处理器等架构模块(ps7)占了1.284w,消耗功率最多。除此之外,硬件加速系统各模块功耗由大到小依次为:信号刷新(15%)、时钟与混合时钟(11%)、组合逻辑(9%)、dsp计算(5%)、bram访存(2%)。[0140]本实施例整体数据结果显示,本实施例采用lite-1搭载硬件系统上实现单幅检测所需的时间为2.6秒,其中fpga计算时间1.2秒,arm对图片预处理(尺寸变换、维度重整等)耗时0.3秒,以及图片后处理(nms非极大值抑制、确定检测框等)耗时1.1秒。与其它平台性能对比结果如表7所示。[0141]表7各平台资源性能比较及仿真结果[0142][0143]由上表可知,同样的卷积神经网络模型,在本实施例所用gpu上检测速度最快,可以达到0.018秒/帧,但是其功耗也是巨大的,高达218w。为了供应足够的内存资源以及功率消耗,geforcertx2080ti平台的体积、功耗较大,不适于低功耗、低成本的移动应用场景;而pynq-z2嵌入式平台自身的双核处理器arm-a9的功率消耗极低,仅需1.28w,但受限于计算资源与并行能力,其对单幅图片进行目标检测需要154秒,计算效率低导致时效性较差;而本发明设计采用低功耗fpga数字硬件电路方式对目标检测系统进行加速,同时利用了arm和fpga的优势,使得系统整体功耗为2.447w,相比于大型gpu功耗减少98.8%,单帧图像处理时间为2.6秒,相比于arm-a9速度提高了59倍,兼顾了低功耗与快速的优点。[0144]实施例4[0145]本实施例提出一种图像目标检测系统,应用实施例1、2或3所述的图像目标检测方法。[0146]本实施例提出的图像目标检测系统中,包括搭载有数字集成电路ip核的硬件系统,用于对输入的图像进行图像目标检测。[0147]所述数字集成电路ip核中包括基于第一网络模型、第二网络模型和第三网络模型中任一模型的经过数字电路连接设计的计算模块。[0148]本实施例中,所述第一网络模型、第二网络模型和第三网络模型中包括特征提取模块、特征融合模块和输出模块;其中,所述第一网络模型和第二网络模型中的特征提取模块均包含轻量型特征提取主干网;所述第二网络模型中的特征提取模块在所述轻量型特征提取主干网上引入瓶颈结构,所述第三网络模型中的特征提取模块和特征融合模块采用fpn结构。[0149]可选地,所述轻量型特征提取主干网中包括若干特征提取卷积层,其中所有分辨率尺寸的特征提取卷积层压缩为1层。[0150]可选地,第三网络模型中的fpn结构包含一个自底向上的特征提取路径和一个自顶向下的特征融合路径;所述特征提取模块设置在所述特征提取路径上对尺寸递减的特征图进行特征提取和抽样,所述特征融合模块设置在所述特征融合路径上对尺寸递增的特征图进行特征融合。[0151]进一步地,所述特征提取模块包括conv基本卷积单元和resblock残差单元;所述输出模块包括多个并行的输出端结构,用于生成对应尺寸的特征图解码信息以实现目标预测;所述输出端结构至少包括依次连接的特征图通道数调整层、归一化层、非线性转换层和特征整合层;所述输出模块通过将多个所述输出端结构输出的所述特征图解码信息进行融合判断得到最终目标检测结果。[0152]在一具体实施过程中,所述硬件系统根据所述第一网络模型、第二网络模型和第三网络模型,利用hls工具分别进行fpga硬件电路设计,在完成硬件电路设计后综合成hdl级的硬件ip核,在vivado软件中导入生成的硬件ip核构建fpga工程,创建顶层文件以及添加板级约束后进行综合仿真,最终生成比特流文件,并导出到sdk软件中。然后在sdk中进行软件部分设计,创建板级支持包并建立应用工程进行软件的开发与测试,生成为.elf格式的可执行文件。最后将所述比特流文件和所述可执行文件下载到开发板芯片上,得到用于图像目标检测的硬件系统。[0153]在另一具体实施过程中,所述硬件系统利用hls工具设计所述第一网络模型、第二网络模型和第三网络模型的计算模块并进行验证,封装为独立的运算ip核,然后在vivado平台上对各个运算ip核进行搭建与连接仿真,生成硬件配置文件。最后通过以太网连接开发板,在jupyternotebook平台导入vivado平台提供的所述硬件配置文件,通过python设计数据导入、图像预处理、参数设置、后处理以及特征提取功能的调用程序,整合完成用于图像目标检测的硬件系统。[0154]在另一具体实施过程中,基于pynq-z2开发板,在fpga arm异构平台上对第一网络模型、第二网络模型或第三网络模型lite-1/2/3进行硬件加速。基于hls软件对权重以及输入输出都采用16位定点量化,循环展开,循环分块,流水线,乒乓缓冲机制以及输入输出通道并行的优化方法对ip核进行优化以适用于硬件的实现。在vivado软件中开发搭建系统工程,其中包括vivadohls生成的两个加速ip核、zynq核是系统的ps端,负责整个系统的调度、axi总线部分用于负责数据的读写以及时钟控制部分负责系统的时序逻辑。最终通过串口或网口两种形式实现上位机对开发板的控制,完成低计算成本、低功耗的目标检测功能。[0155]显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献