本项目提供了一套使用Matlab开发的卷积神经网络(CNN)代码,专注于实现高效且准确的图像分类功能。
该项目旨在利用FPGA技术实现一个经过训练的卷积神经网络(CNN)来进行图像分类任务。项目采用CIFAR-10数据集作为训练样本,并借助深度学习中的CNN模型对输入图像进行类别划分。设计包含了六个层次:滑动窗口卷积、ReLU激活函数应用、最大池化操作、将特征图展平为一维向量以供全连接层处理,以及最终的Softmax分类器。
具体而言,在实现过程中使用了若干卷积核/过滤器来从输入图像中提取有用的视觉信息。该方法支持灰度或彩色图像作为输入数据源。项目所用到的主要工具有:Xilinx Vivado v17.4(用于FPGA设计)、Matlab R2018a(辅助参考和结果对比)。编程语言方面,选择了Verilog HDL以完成硬件描述任务。
截至目前为止,已经完成了以下几项工作:
- 对于FPGA及其相关资源、Vivado 17.4以及Matlab R2018a的基本操作有了初步掌握。
- 使用Vivado 17.4开发了一些基础的Verilog模块,如矩阵乘法器、通用多路复用器(MUX)、卷积运算单元、ReLU激活函数和最大池化功能等。
- 利用了Matlab R2018a创建了一系列辅助性矩阵操作程序,用于参考目的及结果验证之需。
此外,在初始阶段主要处理灰度图像(通过在Matlab中将彩色图片转换为灰度格式)。接下来的工作重点在于进一步完善上述基础模块,并开始着手构建整个CNN架构。