此文章为本人学习FPGA的总结与教程,在pynq板上实现lenet检测手写数字,并总结出具体的实现方式和步骤,分为以下几个部分
1.Lenet简介
2.通过vivado HLS实现LeNet
3.在jupyter notebook上使用完成的LeNet ip
4.使用USB摄像头作为LeNet ip的输入
由于本人能力不足,文中出现错误希望指出。
(1)LeNet简介
LeNet是一个最经典的卷积神经网络,是Yann LeCun在1998年设计并提出的。Lenet的网络结构规模较小,但包含了卷积层、池化层、全连接层,他们构成了现在卷积神经网络(Convolutional Neural Networks, CNN)的基本组件。LeNet 是几种神经网络的统称,模型输入为灰度图像,输出其中的手写数字
本次在pynq上实现的lenet网络为28x28输入,到6个5x5的卷积核,输出6x24x24的特征图(feature map),再到最大池化层(2x2size)输出6x12x12的特征图,输入到16个6x5x5的卷积核,输出16x8x8的特征图,再到最大池化层(2x2size)输出16x4x4的特征图,最后经过三个全连接输出(120,84,10)。