论文部分内容阅读
目标检测在人工智能、医疗研究和国防安全等民用和军用领域等都应用广泛,基于深度学习的目标检测算法是利用卷积神经网络CNN(Convolutional Neural Network)提取特征并完成图像分类和定位,精度和速度相较于传统算法都大幅度提升,但卷积神经网络往往存在庞大的参数量和计算量,并且网络层参数和结构多变,这导致目标检测算法很难应用在资源有限、要求高处理速度和低功耗的嵌入式场合。相较于GPU和ASIC嵌入式平台,FPGA具有低成本、可重构、能效比高等优势,本文在FPGA硬件平台上完成基于深度学习的目标检测算法硬件加速实现,主要的研究工作如下:1.本文针对采用的ZYNQ 7100异构硬件平台,结合以CNN为核心的目标检测算法可硬件加速的分析结果,在一定的设计要求下,完成了基于软硬件协同设计思想的研究任务划分和总体架构设计。2.基于总体架构设计,本文借助Roofline模型评估了一系列典型的基于深度学习的目标检测算法在ZYNQ 7100硬件平台实现时能达到的理论性能上限,同时考虑算法检测准确率、模型复杂度等因素,最终选择了最适合部署在该平台上的目标检测算法Mobilenet-SSD。之后分析了Mobilenet-SSD算法的检测原理和网络结构,明确了面向Mobilenet-SSD算法的软硬件任务分配方案。3.同时考虑Mobilenet-SSD网络结构中的标准卷积和深度分离卷积的DW(DepthWise)卷积,采用并行、流水和双缓冲等硬件优化技术设计了可编程逻辑部分的CNN加速器,并基于分块思想利用Roofline模型寻求CNN加速器最佳的分块系数和并行计算系数。为保证Mobilenet-SSD精度无任何损失,CNN加速器处理的数据类型为32bit浮点数。之后在DMA数据传输模式下对CNN加速器进行调用,并完成PS部分的功能实现。4.本文最后在GVI CXZ7100开发板上进行了功能验证和性能测试,测试结果表明本文的设计功能正确,完全满足设计要求。并且在片上功耗仅为8.527W的情况下,CNN加速器的峰值计算性能能达到26.67GOP/S,比不采用CNN加速器而只利用ARM实现加速了110倍左右。与其他相关研究相比,本文的CNN加速器无论是在计算性能上还是检测吞吐量上都具有一定的优势。