论文部分内容阅读
卷积神经网络是人工智能领域的一个重要研究方向,因其独特的网络结构使其尤其擅长视频图像处理。其通过局部感知和权值共享等特有方法,改善了传统算法在图像处理领域的参数过多等问题。但是由于卷积神经网络的卷积特性,在图像处理过程中仍然需要进行大量的卷积运算,这种海量的运算使得网络运行速度受到严重制约,影响了卷积神经网络在实时、小型嵌入式系统中的应用。因此对卷积神经网络的加速设计也成了研究的热门方向之一。本文从卷积神经网络模型的结构特点出发,结合ZYNQ芯片的ARM+FPGA的异构结构优势,从软件实现和硬件加速两个方面重新分析了卷积神经网络模型在ZYNQ中并行实现的可行性,设计了一种基于ZYNQ平台的卷积神经网络的硬件加速系统,并用该系统实现了基于CIFAR-10数据集的图像分类识别功能。在本系统中为了提高卷积神经网络在ZYNQ平台上的运行速度,本文采用了一种通过ZYNQ的PL端即FPGA,以硬件电路实现卷积神经网络的加速方案。但是,由于ZYNQ平台PL端硬件逻辑资源有限,无法通过硬件电路的方式实现完整的卷积神经网络,因此,仅将卷积运算这部分功能综合到PL端通过硬件电路加速实现。本文详细分析了卷积神经网络的模型结构,给出了模型中关键层实现算法原理、计算公式等。然后使用Vivado工具和Verilog语言设计了图像预处理IP核等,并完成了系统硬件工程的搭建。在完成硬件工程搭建的基础上,参考经典网络模型LeNet-5,针对ZYNQ平台资源有限的特点对设计了一个结构相对简单的卷积神经网络模型。然后使用SDx工具在搭建完成的硬件平台上使用C语言用软件的方式实现了卷积神经网络,并在软件实现卷积神经网络的基础上,对卷积层的软件源码进行了详细分析,从理论层面上找出了限制卷积神经网络运行速度的关键部分即卷积运算模块,并使用SDx工具通过实验验证了理论分析的正确性。接着通过SDx工具针对卷积运算采用流水线化、循环展开、数组分割等加速方法,设计实现了高效的卷积运算IP核,最后使用SDx工具将生成的IP核综合到ZYNQ的PL部分实现了整个卷积神经网络的加速。实验结果表明本文所采用的这种基于ZYNQ的卷积神经网络硬件加速方法可以有效的实现卷积神经网络的硬件加速功能,并且在基于CIFAR-10数据集的应用测试中也表现出了良好的加速性能。