摘要
行人和车辆目标的识别是在自动驾驶过程中的重要一环,识别的准确性和时效性直接决定自动驾驶的可行性。近年来,神经网络算法有效解决了行人和车辆目标的识别精度问题。但是,日渐复杂的网络结构限制了算法执行的时效性。YoloV4Tiny神经网络是一种多目标识别的轻量级网络结构,它利用CNN直接产生分类结果和位置坐标,具有其他深度学习算法难以企及的处理速度。在部署算法时,设计了一种FPGA加速器,利用FPGA并行处理的特点加速神经网络算法的前向推理过程。 该神经网络加速器使用PCIE高速接口传输FPGA和上位机之间的数据。由于FPGA更擅长整型运算且片上资源有限,为了便于将算法部署到开发板上,需要将在GPU上训练好的权重数据从32比特的浮点数据量化成为8比特的定点数据。经过pytorch量化工具处理之后,可以将神经网络的参数量从22.5M压缩至5.7M,缩小了近4倍。同时,考虑到神经网络加速器的通用性以及对网络模型的兼容性,通过研究神经网络基础算子的特点,使用RTL设计并实现基础算子的硬件形式,主要包括Conv_3x3,Conv_1x1,split,maxpool,upsample等算子。通过设计精简指令集,配合上位机,完成对各算子的计算启动、状态监测以及参数传输,从而在FPGA上实现并行处理神经网络算法,进而提高该算法的处理速度。 通过实验证明,在赛灵思V-7690t开发板上对Yolov4Tiny的前向推理可以达到43帧每秒,处理效果比专用的GPUJetsonnano和JetsonXavier的效果要好。在较低功耗下可以显著提高网络的处理速度和网络的识别效率。