FPGA平台目标检测网络实现:从Python到硬件部署

版权申诉
0 下载量 181 浏览量 更新于2024-08-11 收藏 690KB PDF 举报
"该资源是一份关于2018.5至2019.1期间,基于FPGA平台实现目标检测网络的开发文档。主要讲述了如何将目标检测模型转化为C++代码,并通过HLS工具在FPGA平台上部署,以实现在公交车摄像头画面中检测人头数量的目标。项目背景涉及智能交通领域,特别是智能公交系统,希望通过FPGA的低成本解决方案进行人头检测。技术路线包括Python端的模型训练,C++端的推理实现,以及硬件端的FPGA部署。文中还提到了从YOLO转向MTCNN网络的原因,以及MTCNN的训练过程。" 本文档详细阐述了一个利用FPGA实现目标检测网络的项目,该项目旨在检测公交车摄像头画面中的人头数量,以估算上下车人数。首先,项目背景介绍了智能交通公司的背景,该公司专注于车联网、物联网、智能公交等领域。公交车上的摄像头数据需要经过目标检测网络处理,而FPGA因其成本优势被选为硬件平台。 技术实现上,项目分为三个阶段:Python端负责网络模型结构的确定和模型训练,产出权重文件;C++端则实现神经网络的预测功能,将Python端的权重应用到C++代码中,用于前向运算,便于后续在FPGA上的部署;硬件端分为ARM和FPGA两部分,ARM负责C++代码的运行,FPGA通过HLS工具转化为IP核,进行实际的运算任务。 在选择网络模型时,最初尝试了YOLO,但由于其计算量大,所需的内存超过了低端FPGA(Xilinx Zynq Z7020)的限制,因此改用了更节省内存的MTCNN。MTCNN由三个连续的网络组成,P-Net生成候选框,R-Net和O-Net进一步优化和识别。训练数据集是根据公交车实际场景标注的,虽然MTCNN的精度相对于YOLO降低了30个点,但更适合项目的硬件限制。 整个项目展示了如何将深度学习模型,如MTCNN,移植到FPGA硬件平台上,以实现低延迟、高效率的目标检测,这在实时监控和智能交通系统中具有重要的应用价值。