课程答辩
1. 小组分工
- 成员1负责keras和tensorflow的搭建及训练
- 成员2负责ECE-FPGA的练习
2. 基础部分
2.1 keras和tensorflow的搭建及训练
- 利用keras和tensorflow框架实现VGG手写数字识别网络的训练
- 网络训练与测试:使用Keras框架训练一个轻量级的VGG网络,并在MNIST数据集,以及用户数据集对网络进行训练和测试
- 训练结果:联合应用用户训练集部分和MNIST训练集来计算缩减系数。首先设置训练50次,每次训练200个batch_size,学习率0.001,训练结束后,使用mnist测试集进行测试,精确度达97.66;使用用户测试集对已训练好的网络进行测试,精确度可以达到80.39%(+图)
- 可视化训练精确度曲线图,橙色为训练曲线,蓝色为测试曲线(+图)
2.2 ECE-FPGA的练习
- Vivado环境下封装ip核
- 使用Vivado IP集成器创建IPI子系统
- 用Vivado对FPGA设计进行调试
- 在IP集成器环境下使用ILA以及VIO IP进行设计的调试
2.3 基于FPGA视频图像处理
- 基于FPGA/ZYNQ的Mnist手写体识别系统搭建
- 如何实现:
- 通过TensorFlow框架实现VGG手写数字识别网络的训练,获取网络权重参数
- 将获取的参数进行定点化,获取可用于FPGA硬件实现的定点型权重
- 最后硬件实现,在FPGA基于part3视频图像处理框架,添加神经网络模块实现手写数字识别功能,导入定点权重,并添加图像采集、灰度化、显示等模块(+图),生成bit文件并下载到开发板进行测试
3. 综合运用
3.1 基于FPGA/ZYNQ的Mnist手写体识别系统搭建
- 通过TensorFlow框架实现VGG手写数字识别网络的训练,获取网络权重参数
- 将获取的参数进行定点化,获取可用于FPGA硬件实现的定点型权重
- 最后硬件实现,在FPGA基于part3视频图像处理框架,添加神经网络模块实现手写数字识别功能,导入定点权重,并添加图像采集、灰度化、显示等模块(+图),生成bit文件并下载到开发板进行测试
4. 心得体会
4.1 成员1
- 通过本次课程答辩,我深刻理解了FPGA和TensorFlow框架在图像处理和神经网络中的应用。
- 在训练过程中,我学会了如何使用Keras框架进行网络训练,并掌握了如何使用用户数据集和MNIST数据集进行训练和测试。
- 通过定点化处理,我了解了如何将浮点权重转换为定点权重,以便在FPGA上实现硬件加速。
- 在硬件实现过程中,我学会了如何添加图像采集、灰度化、显示等模块,并成功地将网络部署到FPGA上。
4.2 成员2
- 在本次课程答辩中,我深入学习了ECE-FPGA的练习,包括Vivado环境下封装ip核、使用Vivado IP集成器创建IPI子系统、用Vivado对FPGA设计进行调试以及在IP集成器环境下使用ILA以及VIO IP进行设计的调试。
- 我了解了如何在FPGA上实现图像处理和神经网络,并学会了如何将训练好的网络部署到FPGA上。
- 通过本次课程答辩,我掌握了如何在FPGA上实现图像采集、灰度化、显示等模块,并成功地将网络部署到FPGA上。
- 本次课程答辩让我深刻理解了FPGA和TensorFlow框架在图像处理和神经网络中的应用,提高了我的实践能力和技术水平。




