基于FPGA:运动目标检测(补充仿真结果,可用毕设)

一、接上一篇

     开发设计直接看这篇:基于FPGA:运动目标检测(原理图+源码+硬件选择,可用毕设) 这里补充一下仿真结果,不少朋友反应,论文没有仿真结果不好做。
     完整源码工程在这里下载:基于FPGA的运动目标检测(硬件+原理图+源码+仿真+设计文档) 同样,私信我可以半价,因为可以去掉平台手续费。

二、进入正文(帧差法Modelsim仿真)

     搭建一个视频流Modelsim仿真,需要模拟一个视频时序,用来验证算法,并有效的利用Matlab工具把静态图片“打散”保存到txt文本里,供Modesim读取,然后通过Matalb“复现”处理后的文本。
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第1张图片

     Test0.bmp 测试图片,matlab 产生的 rgb txt数据文本,
     image_r_data.txt image_g_data.txt image_b_data.txt
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第2张图片

     Test1.bmp 测试图片
     image_r_data_o.txt image_g_data_o.txt image_b_data_o.txt
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第3张图片

     Verilog实现侦查法,经过modelsim仿真得到,运行smy_image_show.m
     data_r_out.txt data_g_out.txt data_b_out.txt
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第4张图片

Rgb2yuv 仿真波形,话不多说,看公式

基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第5张图片

Diff_frame 模块仿真波形:data_next - data_cur 得到的结果如post_img_Bit 当8’d130-8’D16
大于 设定阈值 15 则认为时目标区域,设置为255

基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第6张图片

腐蚀和膨胀仿真波形,如下得到的是*p11,p12 9个像素数据为3x3 图像模板,通过行缓存设计(缓存了2行图像数据),黄线后第3行,得到完整的3x3 图像模板
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第7张图片

Find_box 模块仿真波形,灰度帧差法的得到二值图像,然后设计包围盒得到上下左右 4点像素坐标,框出目标区域。
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第8张图片

数据采集模块:

基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第9张图片

为了直观的看到行场信号,模拟摄像头时序,一帧数据缩小为4行数据,如下图所示:
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第10张图片

如下图所示,实现输出RGB565格式时,连续两个像素时钟的8bit数据的拼接成16bit的数据
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第11张图片

I2C控制时序模块:

基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第12张图片
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第13张图片
                                                                                 I2C时序仿真图

使用的I2C系统时钟为100MHz,由系统时钟分频可以得到i2c_sclk时钟是100KHz,但是其并不能直接作为Verilog设计的驱动时钟,所以这里使用使能时钟实现。i2c_capture_en在高电平中间点采样,i2c_transfer_en在低电平中间点传输数据,I2C配置的数据在第一个字节写入的是8’H42为写时序的摄像头ID地址,而寄存器地址数据会在第二个字节开始写入,然后寄存器数据的写入在第三个字节中进行。由于响应位ACK的存在,每发送完一个字节需要9个时钟周期。

二、VGA模块:
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第14张图片
基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第15张图片

基于FPGA:运动目标检测(补充仿真结果,可用毕设)_第16张图片

图2.17 I2C时序仿真图
如图2.17所示,I2C时序Modelsim仿真结果。本文设计使用的I2C系统时钟为100MHz,由系统时钟分频可以得到i2c_sclk时钟是100KHz,但是其并不能直接作为Verilog设计的驱动时钟,所以这里使用使能时钟实现。i2c_capture_en在高电平中间点采样,i2c_transfer_en在低电平中间点传输数据,I2C配置的数据在第一个字节写入的是8’H42为写时序的摄像头ID地址,而寄存器地址数据会在第二个字节开始写入,然后寄存器数据的写入在第三个字节中进行。由于响应位ACK的存在,每发送完一个字节需要9个时钟周期。

注:需要无水印图片可私信我。

你可能感兴趣的:(FPGA,FPGA,运动目标检测,仿真,altera)