一种YOLO算法的高能效FPGA加速架构

文档序号:32601696发布日期:2022-12-17 16:19阅读:来源:国知局

技术特征:
1.一种yolo算法的高能效fpga加速架构,其特征在于,包括arm处理器(1)和fpga加速单元(2),arm处理器(1)通过多路dma通道(3)与fpga加速单元(2)相连;所述arm处理器(1)实现处理数据的加载和通过改进非极大值抑制算法获取目标检测结果,fpga加速单元(2)实现yolo算法核心运算的硬件加速;所述fpga加速单元(2)包括yolo计算单元(21)、权重缓冲单元(24)、输入缓冲单元(22)和输出缓冲单元(23),输入缓冲单元(22)和权重缓冲单元(24)的输入端分别通过多路dma通道(3)与arm处理器(1)相连接,输入缓冲单元(22)和权重缓冲单元(24)的输出端均与yolo计算单元(21)的输入端相连接,yolo计算单元(21)的输出端与输出缓冲单元(23)的输入端相连接,输出缓冲单元(23)的输出端通过多路dma通道(3)与arm处理器(1)相连接。2.根据权利要求1所述的yolo算法的高能效fpga加速架构,其特征在于,所述arm处理器(1)分别与摄像头(4)、存储器(5)相连接,arm处理器(1)用于将摄像头(4)获取的图像信息保存在存储器(5)中。3.根据权利要求1或2所述的yolo算法的高能效fpga加速架构,其特征在于,yolov2神经网络采用卷积层参数融合方法进行参数融合,yolov2神经网络采用数据动态定点量化方法对各层输入特征图数据、权重以及偏置参数进行量化;所述输入缓冲单元(22)和输出缓冲单元(23)内部至少包含2个可并行工作的存储器体,存储器体与多路dma通道(3)的dma通道相连接。4.根据权利要求3所述的yolo算法的高能效fpga加速架构,其特征在于,所述yolo计算单元(21)包括卷积运算单元(211)、池化单元(212)和重排序单元(213),所述输入缓冲单元(22)的输出端分别与卷积运算单元(211)、池化单元(212)和重排序单元(213)相连接,权重缓冲单元(24)的输出端与卷积运算单元(211)相连接,卷积运算单元(211)、池化单元(212)和重排序单元(213)的输出端均通过多路选择器(25)与输出缓冲单元(23)的输入端相连接。5.根据权利要求4所述的yolo算法的高能效fpga加速架构,其特征在于,所述yolov2神经网络的卷积层通过时分复用的方法调用卷积计算单元(211);所述yolov2神经网络的卷积层包含卷积核的尺寸分别为1
×
1和3
×
3,卷积计算单元(211)内设有1
×
1卷积核和3
×
3卷积核的计算引擎,卷积层通过选择器选择相应的计算引擎。6.根据权利要求5所述的yolo算法的高能效fpga加速架构,其特征在于,所述卷积运算单元(211)将输入缓冲单元(22)的特征图以及权重缓冲单元(24)的权重参数在输入通道、输出通道的两个维度上进行展开,使用多个相互独立的乘法器对输入的特征图以及权重进行乘法运算,再使用加法器将所得结果相加后通过多路选择器(25)输入到输出缓冲单元(23);所述卷积运算单元(211)通过分块策略从片外读取输入特征图以及对应的权重参数。7.根据权利要求3-6中任一项所述的yolo算法的高能效fpga加速架构,其特征在于,所述池化单元(212)每个时钟周期从输入缓冲单元(22)中读取数据,进行s
×
s次比较之后,将最大值写入输出缓冲单元(23)中,实现多个通道上的池化计算并行处理,其中,s为池化步长;所述重排序单元(213)每次从输入缓冲单元(22)读取1个像素通过多路选择器(25)写入对应的输出缓冲单元(23),将k
×
k邻域内的输入像素输出到k
×
k张的输出特征图相同位置;所述数据动态定点量化方法为对yolov2神经网络进行动态16位定点量化,将float32型数据量化为int16定点数据,再根据yolov2神经网络每个卷积层的参数特点,对各层的输入
特征图、权重参数以及偏置参数进行量化,找到各层参数最优的数据位宽。8.根据权利要求7所述的yolo算法的高能效fpga加速架构,其特征在于,所述卷积层参数融合方法将卷积层与批量归一化层进行融合,将卷积计算与线性变换融合得到新的线性变换则新的卷积核权重为新的偏置参数为其中,w为卷积层的权重参数,b为卷积层的偏置参数,e(x)是输入特征向量x的均值,var(x)是输入特征向量x的方差,γ,β是yolov2神经网络训练阶段的两个缩放因子。9.根据权利要求3-6、8中任一项所述的yolo算法的高能效fpga加速架构,其特征在于,所述多路dma通道(3)包括若干路dma通道,所述权重缓冲单元(24)的输入端通过至少2路dma通道与arm处理器(1)相连接,输入缓冲单元(22)的输入端通过至少2路dma通道与arm处理器(1)相连接,输出缓冲单元(23)的输出端通过至少2路dma通道与arm处理器(1)相连接。10.根据权利要求9所述的yolo算法的高能效fpga加速架构,其特征在于,所述改进非极大值抑制算法的实现方法为:通过真实框和预测框的重叠率来判断是否为多余候选框,如果真实框和预测框的重叠率大于70%,再通过中心坐标距离选择最优的候选框;若同时满足重叠率和中心坐标距离的要求,判断真实框与目标框的长宽比满足小于阈值;所述长宽比其中,w
gt
、h
gt
、w、h分别表示真实框与预测框的宽度与高度;所述中心坐标距离s2={([a.x]-[b.x])2+([a.y]-[b.y])2},其中,a.x、a.y、b.x、b.y分别代表两个检测框的横纵坐标。

技术总结
本发明提出了一种YOLO算法的高能效FPGA加速架构,包括ARM处理器和FPGA加速单元,ARM处理器通过多路DMA通道与FPGA加速单元相连;ARM处理器实现数据的加载并且通过改进非极大值抑制算法获取目标检测结果;FPGA加速单元包括YOLO计算单元、权重缓冲单元、输入缓冲单元和输出缓冲单元,输入缓冲单元和权重缓冲单元的输入端分别通过多路DMA通道与ARM处理器相连接,输入缓冲单元和权重缓冲单元的输出端均与YOLO计算单元的输入端相连接,YOLO计算单元的输出端与输出缓冲单元的输入端相连接,输出缓冲单元的输出端通过多路DMA通道与ARM处理器相连接。本发明将FPGA与深度学习方法结合,不但实现了低功耗、高能效、实时性强的目标检测方法,还具有较高的识别精度。还具有较高的识别精度。还具有较高的识别精度。


技术研发人员:敖天勇 王林 张凯欣 田勇猛 王清桥 付乐 周毅
受保护的技术使用者:河南大学
技术研发日:2022.09.29
技术公布日:2022/12/16
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1