论文部分内容阅读
随着深度学习技术的飞速发展,基于深度学习的目标检测算法也取得了令人瞩目的成就,甚至达到了实际应用的性能指标。然而,卷积神经网络具有极高的计算复杂度,传统的CPU无法满足实时性需求。于是,GPU作为通用计算单元被用于加速卷积神经网络的训练和测试,但其高能耗不能满足嵌入式应用的需求。FPGA作为可重构逻辑器件,其低功耗的特点使其在边缘端应用部署上具有明显优势。同时,其低延时的特性也使其很适合执行云端流式任务。因此基于FPGA的卷积神经网络加速器设计成为一个研究热点。然而,面向目标检测应用的FPGA加速器研究目前还比较少。本文基于OpenCL异构计算框架,设计了一种可扩展的深度学习目标检测FPGA加速架构。该架构可高效地实现YOLOv2算法的硬件加速,也可适用于其他网络模型,对不同设备也具有很好的迁移性。其中,通过多个内核级联形成的深度流水线能有效缓解带宽压力;三个并行度的设计能满足高计算密集任务的需求;基于折叠行缓存的数据缓存区设计能为架构高吞吐率的实现提供支持。此外,本文基于硬件设计的思想,提出了一系列深度学习目标检测算法的改进方法。其中,对全网络进行的8bit定点数量化,以及对卷积、批量归一化和激活函数进行的层融合技术,极大地缓解了带宽压力;对YOLOv2网络结构进行的合理调整,实现了部分层的并行执行。最后,本文实现了一套完整的设计空间探索流程。通过本文提出的性能、带宽和资源需求理论模型,结合提出方法,能通过理论计算得出本文架构在目标板卡上的峰值性能,为跨设备的快速移植提供了便利。基于提出的YOLOv2 FPGA加速架构,本文完成了面向实时视频流的目标检测系统设计,并在Intel Arria 10 GX1150 FPGA开发板上对YOLOv2多个分辨率输入和Tiny YOLOv2 416 x416输入进行测试。其中YOLOv2 288 x 288输入和Tiny YOLOv2 416x416输入分别达到了35FPS和71FPS的实时速度。与现有目标检测算法FPGA加速方案相比,本文提出的架构有两个优势。一是实现了更高的吞吐率,YOLOv2网络416x416输入实现了566 GOP的峰值性能。二是保持了更高的算法准确度,YOLOv2网络的精度损失在1%以内。