《基于MATLAB与FPGA的图像处理教程》LeNet5 链接:https://gitee.com/crazybingo/Book_VIP/tree/master/2_FPGA_Sim/8.2_LeNet5 这是《基于MATLAB与FPGA的图像处理教程》中一个例程,经过MATLAB仿真与FPGA实现,在相关开发板上验证通过。
DigitalRecognition-基于LeNet-5 链接:https://github.com/suisuisi/FPGAandCNN/tree/main/DigitalRecognition 神经网络在浅色背景上检测深色数字的项目,提供详细的设计和视频演示。
AlexNet AlexNet是2012年ImageNet竞赛的冠军模型,其作者是神经网络领域三巨头之一的Hinton和他的学生Alex Krizhevsky(参考:https://blog.csdn.net/sinat_39620217/article/details/131083754) AlexNet与此前的LeNet相比,具有更深的网络结构,包含5层卷积和3层全连接。
alexnet-FPGA and GPU 对 FPGA 和 GPU 上的AlexNet CNN 执行时间的基准测试。 链接:https://github.com/pratikpv/alexnet 该项目除了学习神经网络知识外,也在Xilinx FPGA上运行OpenCL给了详细的参考示例,链接如下: https://gitlab.com/Tango-DNNbench/Tango/tree/master/FPGA
CNN_OPEN & DNN_PUF_FPGA 利用SystemVerilog生成Lenet模型,并在FPGA上进行综合和实现。 链接:https://github.com/renaturation/DNN_PUF_FPGA 该项目是个研究类项目,适合学习和练手。
VGG VGG(Visual Geometry Group)是牛津大学的Karen Simonyan和Andrew Zisserman在挑战2014年的ILSVRC时提出的系列模型。基于模型研究和比赛结果,两人发表了论文《Very Deep Convolutional Networks For Large-Scale Image Recognition》。 链接:https://arxiv.org/abs/1409.1556 VGG的重要意义在于,其研究结果表明增加深度能够提高卷积神经网络的性能。在VGG之后,人们沿着更深层的网络这个方向,取得了一系列新的进展。
vgg16-on-Zynq 链接:https://github.com/flymin/vgg16-on-Zynq 这是Zynq FPGA上实现VGG16网络的开源项目,项目侧重“实验”,适合学习,所有的介绍都是中文的。
FPGA-Accelerator-for-AES-LeNet-VGG16 链接:https://github.com/zhan6841/FPGA-Accelerator-for-AES-LeNet-VGG16 这个是AES-LeNet-VGG16三个项目的集合体,项目没有介绍。 该项目网址:http://www.aoki.ecei.tohoku.ac.jp/crypto/web/cores.html 该网址给了几个比较实用的IP核源码,包括片上毛刺时钟发生器、RSA系列、JWIS2007、AES等,还有一些大家自己去看吧,除了源码和仿真文件外还有一些设计文档。
CNN_VGG19 这个项目实际上不是一个可训练的模型,只是VGG19的重建,用于对输入图像进行预测。链接: https://github.com/romulus0914/CNN_VGG19_verilog https://github.com/18521449/Image-Classification-use-VGG16 https://github.com/PhanQuocLinh/Project_VGG16
总结 在FPGA运行神经网络在前些年是个很热,最近一些敏捷开发像OpenCL、HLS等已经冲淡了不少热度,用纯HDL开发相关项目出现的越来越少了。但是这些小型神经网络项目适合入门相关行业,适合理解相关知识点。以上介绍的项目也是比较经典的项目,每个项目中有很多很多相关的例程。除了LeNet外很少有在FPGA上直接应用的项目了,基本都是实现各个神经网络的核心部分,应用大部分都是基于OpenVINO或者DPU的例子。这部分原因都在于时间和稳定性,后面的案例或者实例相对较少,会以理论项目为基础。