论文部分内容阅读
卷积神经网络已被应用于物体检测、图像分割、语义分析等许多领域。在很多现实场景中,在嵌入式环境下应用卷积神经网络的模型进行预测成为一种趋势,因此,需要低延迟和低功率的硬件平台进行支持。现场可编程门阵列(FPGA)凭借其高性能和低功耗的特点,已被广泛应用于卷积神经网络硬件加速的研究中。但是,基于FPGA的硬件加速开发需要大量的FPGA设计经验,因此,本文提出了一种模型映射工具,能够自动生成硬件加速器代码,同时做到自动化软件控制,实现了卷积神经网络到FPGA的自动化映射,减少了开发中的工作量。由于卷积神经网络模型的多样性,模型映射工具中定义了统一的数据格式,将TensorFlow平台生成的模型文件转换成中间表示。基于已有的基本硬件架构,本文进行了优化,设计实现了硬件模板。中间表示一方面用于配置硬件设计模板中的参数,将其实例化;另一方面作为控制软件的输入参数文件,用于内存分配和运行时控制。这样就可以将各种卷积神经网络自动地模型映射到FPGA中。同时,为了验证模型映射工具的实用性,将其应用于实时目标检测系统中,检测其在现实应用场景下的工作情况。本文基于BT1120视频传输协议,通过摄像头设备实时采集图像数据。经过解帧模块以及色彩空间转换模块的处理,作为神经网络的输入数据,并实时显示检测结果,从而来验证模型映射工具的实用性。本文中将几个主流的目标检测模型,包括SSD(Single Shot MultiBox Detector),YOLO(You Only Look Once)以及ResNet(Residual Network)通过模型映射工具映射到FPGA加速器中。实验结果表明,自动化模型映射工具能够保证所有计算结果的正确性,相比于人工实现模型映射的结果,仅增加了3%左右的额外消耗时间。在实时应用测试中,FPGA加速平台采用32位量化设计,并选用SSD模型进行实时检测,每秒可识别15帧的图片,功耗仅为4.6W。因此,本文对自动化模型映射工具的研究能够将不同的卷积神经网络映射到FPGA中,并且实现硬件生成和软件控制自动化,大大降低了FPGA的使用难度,减少了程序员的工作量,缩减了开发周期。