基于CNN定点卷积神经网络的摄像头数字识别的设计Verilog代码Quartus仿真
名称:基于CNN定点卷积神经网络的摄像头数字识别的设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
基于CNN定点卷积神经网络的摄像头数字识别
主要功能如下
1、驱动OV7670摄像头,使其能正常采集图像数据
2、将图像数据显示到SPI显示屏中
3、进行图像处理,并使用卷积神经网络进行实时数字识别
4、本代码已在实际硬件验证,可实时识别数字0~9
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
基于CNN定点卷积神经网络的摄像头数字识别
主要功能如下
1、驱动OV7670摄像头,使其能正常采集图像数据
2、将图像数据显示到SPI显示屏中
3、进行图像处理,并使用卷积神经网络进行实时数字识别
4、本代码已在实际硬件验证,可实时识别数字0~9
本代码使用的硬件如下图所示,FPGA型号为EP4CE22F17C6,摄像头为OV7670。显示屏为2.8寸TFT SPI显示屏。


具体FPGA代码介绍如下
1、工程文件

2、程序文件



3、程序编译

4、RTL图

5、管脚分配

整个硬件数据流:摄像头将图像以低频率写入FIFO,然后SDRAM控制器以高频率读取数据。然后FPGA将SDRAM中的数据写入屏幕FIFO。
上板验证视频:
https://www.bilibili.com/video/BV13t98YyEw3/?vd_source=de2ec303d06962114fc8c2919abbcbad
来自摄像头的图片经过SDRAM后,按原样显示在屏幕上,并将图像转换为灰度并降低分辨率的图像输入到神经网络进行识别。当神经网络操作完成后,结果也直接输出到屏幕上。
这是训练神经网络在浅色背景上检测深色数字的项目。 然后使用多种技术将神经网络转换为 Verilog HDL ,以减少 FPGA 上所需的资源并提高处理速度。 整篇文章主要内容如下所示:

识别效果如下所示,显示屏左下角为识别出的文字:


电脑显示数字(手写也可以,要求是浅色背景上检测深色数字(要求是训练集的问题)),通过摄像头采集缓存到SDRAM后在显示屏上显示摄像头数据,然后右下角显示监测到的数字。
FPGA工程位于 ''verilog''文件夹中. 包括摄像头和SPI 显示屏等相关的所有代码。关键的神经网络代码位于''verliog/code/neuroset'' 文件夹中.
部分代码展示:
module test();
parameter SIZE=12;
reg clk;
reg GO;
reg signed [SIZE-1:0] storage [0:783];
reg we_database;
reg [SIZE-1:0] dp_database;
reg [12:0] address_p_database;
reg [9:0] x;
wire [3:0] RESULT;
TOP TOP(
.clk(clk),
.GO(GO),
.RESULT(RESULT),
.we_database(we_database),
.dp_database(dp_database),
.address_p_database(address_p_database-1'b1),
.STOP(STOP)
);
initial begin
clk=0;
address_p_database=0;
x=0;
we_database=1;
#200 GO=1;
end
always #10 clk=~clk;
always @(posedge clk)
begin
if (we_database)
begin
if (address_p_database<=783)
begin
dp_database = storage[address_p_database];
address_p_database=address_p_database+1'b1;
end
else we_database=0;
end
if ((x<=28*28)&&(GO)) x=x+1;
else GO=0;
if (STOP==1)
begin
$display("RESULT: %d",RESULT);
$finish;
end
end
initial
begin
storage[0] = 11'b10011110000; // [0.6171875]
storage[1] = 11'b10011111000; // [0.62109375]
storage[2] = 11'b10100000000; // [0.625]
storage[3] = 11'b10100010000; // [0.6328125]
storage[4] = 11'b10100011000; // [0.63671875]
storage[5] = 11'b10100011000; // [0.63671875]
storage[6] = 11'b10100001000; // [0.62890625]
storage[7] = 11'b10011010000; // [0.6015625]
storage[8] = 11'b10001011000; // [0.54296875]
storage[9] = 11'b01111011000; // [0.48046875]
storage[10] = 11'b01101011000; // [0.41796875]
storage[11] = 11'b01100100000; // [0.390625]
storage[12] = 11'b01100011000; // [0.38671875]
storage[13] = 11'b01101000000; // [0.40625]
storage[14] = 11'b01110000000; // [0.4375]
storage[15] = 11'b10000001000; // [0.50390625]
storage[16] = 11'b10010101000; // [0.58203125]
storage[17] = 11'b10100001000; // [0.62890625]
storage[18] = 11'b10100101000; // [0.64453125]
storage[19] = 11'b10100101000; // [0.64453125]
storage[20] = 11'b10100110000; // [0.6484375]
storage[21] = 11'b10100100000; // [0.640625]
storage[22] = 11'b10100100000; // [0.640625]
storage[23] = 11'b10100011000; // [0.63671875]
storage[24] = 11'b10100010000; // [0.6328125]
storage[25] = 11'b10100001000; // [0.62890625]
storage[26] = 11'b10100000000; // [0.625]
storage[27] = 11'b10011110000; // [0.6171875]
storage[28] = 11'b10011101000; // [0.61328125]
storage[29] = 11'b10011111000; // [0.62109375]
storage[30] = 11'b10100000000; // [0.625]
storage[31] = 11'b10100010000; // [0.6328125]
storage[32] = 11'b10100011000; // [0.63671875]
storage[33] = 11'b10100001000; // [0.62890625]
storage[34] = 11'b10010110000; // [0.5859375]
storage[35] = 11'b01110010000; // [0.4453125]
storage[36] = 11'b01010010000; // [0.3203125]
storage[37] = 11'b01000111000; // [0.27734375]
storage[38] = 11'b01000011000; // [0.26171875]
storage[39] = 11'b01000111000; // [0.27734375]
storage[40] = 11'b01000111000; // [0.27734375]
storage[41] = 11'b01000111000; // [0.27734375]
storage[42] = 11'b01000111000; // [0.27734375]
storage[43] = 11'b01010100000; // [0.328125]
storage[44] = 11'b01110110000; // [0.4609375]
storage[45] =代码文件(付费下载):
![]()
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于CNN定点卷积神经网络的摄像头数字识别的设计Verilog代码Quartus仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm