基于FPGA:运动目标检测(VGA显示,原理图+源码+硬件选择) |
您所在的位置:网站首页 › verilog图像识别 › 基于FPGA:运动目标检测(VGA显示,原理图+源码+硬件选择) |
目录
一、先看效果二、硬件选择三、目标追踪帧差法原理四、rgb2yuv灰度化处理(可参考正点原子说明书)五、差分处理模块六、腐蚀和膨胀形态学滤波七、包围盒处理八、板子原理图及源码工程获取
一、先看效果
话不多说,先上视频看效果。 基于FPGA:运动目标检测 二、硬件选择开发板Altera:EP4CE10F17C8 摄像头:OV5640 缓存数据:SDRAM 板子是自己制作的 根据帧差法的实现流程,设计的双端口SDRAM控制器,一侧读写端口用做帧缓存,另一个端口用来缓存视频流,如图所示。 从公式中(1)可以看到:由于FPGA不善于处理浮点数;这里完成了浮点数向定点数的转换;各个系数均扩大256倍,最后在计算完之后除以256,如公式(2)。 Y = 0.299 R + 0.587 G + 0.114 B U = - 0.1687 R - 0.3313 G + 0.5 B + 128 (1) V = 0.5 R - 0.4187 G - 0.0813 B + 128 Y=(77*R+150*G+29*B)»8; U =(-43R-85G+128B+128*256)»8 (2) V=(128R-107G-21B+128*256)»8 在Verlog里面,使用组合逻辑不能直接按上述公式(2)在计算,不然组合逻辑延时太大,导致时序不收敛,这里就需要添加寄存器来切割流水线;利用FPGA 并行处理的特点加速计算。这里分三级流水线处理:第一级流水线计算所有乘法; 第二级流水线计算所有加法,把正的和负的分开进行加法;第三级流水线计算最终的和,若为负数取0。输入到输岀有三个clock的时延仿真波形如下图所示: 差分处理模块主要含有gary_shfit和 Diff_frame两个模块,对应图1的延时一帧和差分处理方框;摄像头数据一路数据写入sdram写口1侧,做为帧缓存,另一路是当前的图像数据,通过场信号控制延时从sdram 读口1侧读数据,这样,如下所示,sdr_rd为sdram读信号。 //延时读sdram控制 reg rd_en; always@ (posedge clk or negedge resetb) begin if ( !resetb) rd_en matrix_p21, matrix_p22, matrix_p23} |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |