前一篇文章介绍了LeNet和AlexNet是非常适合入门的神经网络,今天稍微进阶一点,复杂一些。
VGG
VGG(Visual Geometry Group)是牛津大学的Karen Simonyan和Andrew Zisserman在挑战2014年的ILSVRC时提出的系列模型。基于模型研究和比赛结果,两人发表了论文《Very Deep Convolutional Networks For Large-Scale Image Recognition》。
VGG的重要意义在于,其研究结果表明增加深度能够提高卷积神经网络的性能。在VGG之后,人们沿着更深层的网络这个方向,取得了一系列新的进展。
vgg16-on-Zynq
https://github.com/flymin/vgg16-on-Zynq
这是 Zynq FPGA 上实现 VGG16 网络的开源项目,项目侧重"实验",适合学习,所有的介绍都是中文的,大家看README就可以了。
PS:CSDN上有篇博文也是这个项目的README,不清楚是不是原作者~
FPGA-Accelerator-for-AES-LeNet-VGG16
https://github.com/zhan6841/FPGA-Accelerator-for-AES-LeNet-VGG16
这个是AES-LeNet-VGG16三个项目的集合体,项目没有介绍,但是不清楚是原作者还是收集的项目,每个项目文件夹下是有相关的设计文档的:
同时,该项目给了一个网址:
该网址给了几个比较实用的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
总结
除了LeNet外很少有在FPGA上直接应用的项目了,基本都是实现各个神经网络的核心部分,应用大部分都是基于OpenVINO或者DPU的例子。这部分原因都在于时间和稳定性,后面的案例或者实例相对较少,会以理论项目为基础。