Alioth2000 / PYNQ-Z2-traffic-signs-recognition

搭建卷积神经网络并利用FPGA加速实现交通标志识别

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Traffic Signs Recognition Based on PYNQ-Z2

在PYNQ开发板上搭建卷积神经网络实现交通标志识别

本项目为2020年新工科联盟-Xilinx暑期学校(Summer School)项目

项目简介

项目主要实现方式为在ZYNQ的PL端部署了基于HLS开发的卷积加速器和池化加速器,再在PS端利用Python编程实现对加速器的调用,完成交通标志的识别。模型在Tensorflow下采用德国交通标志数据集(GTSRB)进行训练,最终精度达到97%。

文件目录

  1. HLS: 包含了卷积加速器和池化加速器的的C语言代码。因为全连接层可以看作一种特殊卷积层并借助卷积加速器进行加速,因此未包含单独的全连接层加速器。
  2. Train: 包含了训练所用的Python代码和最终模型的参数文件。所采用的数据集链接为:http://benchmark.ini.rub.de/?section=gtsrb&subsection=dataset
  3. jupyter_notebooks: 此文件夹内包含上传到PYNQ开发板上的Python代码文件和模型参数bin文件等。文件上传到开发板后可以在Jupyter Notebook中运行‘Traffic-Signs-Recognition.ipynb’文件进行测试,也可以直接运行‘Traffic-signs-recognition.py’进行测试。

运行环境

  • 开发板: PYNQ-Z2 (ZYNQ XC7Z020-1CLG400C)
  • 固件版本: V2.5
  • Vivado版本: 2018.3
  • Vivado HLS版本: 2018.3
  • TensorFlow版本; 1.14
  • 训练环境: macOS 10.15.6

性能参数

  • 识别种类: 43种
  • 识别精度: 97% (在GTSRB下)
  • 识别速度: 0.5s左右 (速度异常,还需改进)

About

搭建卷积神经网络并利用FPGA加速实现交通标志识别

License:MIT License


Languages

Language:Tcl 52.5%Language:Python 33.2%Language:Jupyter Notebook 7.3%Language:C++ 7.0%