基于matlab的运动目标检测_基于FPGA的运动目标检测系统设计与实现

该系统结合硬件控制器与图像处理算法,实现运动目标检测。通过将RGB图像转换为YCbCr,使用帧间差分法、中值滤波、膨胀算法等进行目标检测。在SDRAM存储中,利用数据掩码和帧标志解决图像存储问题,确保算法的顺利进行。最终,通过MATLAB仿真和FPGA实现验证了方法的有效性。
摘要由CSDN通过智能技术生成

3aa7a0d5ce45732d6a545eb785b11135.png

系统整体设计方案

本系统将硬件控制器设计,图像处理算法设计两大部分有机地进行结合使之能够完成运动目标检测。在图像存入SDRAM前需要将图像格式由RGB转换为YCbCr。运动目标检测实现系统整体框架如图所示。

fb47e848e392a10d28982ff9b9abe1df.png

图像处理算法及硬件驱动

在SDRAM中存储两帧相邻灰度图像的数据,使用VGA驱动程序将两帧数据同时从SDRAM中取出。使用中值滤波算法将两帧数据分别进行滤波平滑噪声,对图像信息进行差分。差分后的二值化像素群使用膨胀算法拓展边界,稳定检测效果,通过最小包围盒模块确定二值化图像边界,画出包围盒方框。将方框叠加在原图像上并输出即可完成对运动目标的检测。

e36c88a1ffc5e512f0e4f3acf1f6c93c.png

帧间差分法的核心是对两帧相邻图像进行存储,根据数据存储的位置大致可以分为三类,第一类是上一帧图像与下一帧图像分别位于两段不同的存储空间中。第二类是将两帧图像数据交叉存储于同一段存储空间中。第三类是将两帧图像存储于同一存储空间的高低位上如图所示。

26371e187fc5668b84236860db5e3661.png

帧图像存储于同一存储空间示意图

与前两种存储方式相比,将两帧图像数据存储于同一地址存储空间中取出时序更加简单。两帧图像在取出时拥有相同的行场同步信号时序,数据也自然对齐,有利于后续图像算法的进行。

一般地,对于同一地址空间写入两次数据,第一次写入的数据将会被第二次的数据覆盖。为了解决这个问题,一般的存储器都会提供数据掩码功能。通过掩码屏蔽特定位置的数据写入便可防止数据覆盖。SDRAM提供了数据掩码引脚DQM[1:0],DQM真值表如表所示,当DQML引脚为高电平时屏蔽低字节数据的写,当DQMH为高电平时屏蔽高字节数据的写入。

DQM真值表

22cfb804b3349f05bb65870ecc9737e9.png

本设计使用的SDRAM芯片存储数据位宽为16比特。而从摄像头采集的RGB565格式数据为16比特,SDRAM不能同时将两帧RGB图像存储。因此在存入SDRAM前先将RGB格式转换为YCbCr格式并提取亮度分量作为灰度图像,这时图像数据的位宽为8比特可以将两帧图像存于SDRAM高低位中。对于图像数据此时应该存放于高位还是低位可以通过对图像场同步信号的监测来实现。当检测到场同步信号的下降沿时说明本帧显示结束即将开始下一帧显示。因此可以使用帧标志信号,每一帧画面结束时对帧标志信号进行翻转。通过帧标志信号就能够准确的计算本帧数据存放在低位还是高位。SDRAM掩码及帧标志控制关系如表所示。

SDRAM掩码及帧标志控制关系表

3ee8dcb0042013454b0524d4339a2dc0.png

基于灰度的帧间差分法

帧间差分法是通过两帧相邻图像间做差并选取合适的阈值对图像进行二值化从而选取出运动的物体,算法流程,f(x, y)为灰度差分图像,D(x, y)为帧间差分图像,gk(x, y)、gk-1(x, y)为相邻两帧灰度图像,差分阈值为T。

11a3615187a8e619e7606ea90d104888.png

将两帧相邻图像对应像素进行差分并取绝对值获得灰度差分图像,将灰度差分图像与预设阈值作比较,将大于阈值的像素划分为运动物体。基于灰度的帧间差分法Matlab仿真如图所示。

0e36b5309d7a35c6cce04e67cb03334c.png

f5dee100ac5dddbce6be6844975ac032.png

2795bda7bd062b04b2dc61806637ec42.png

算法效果视频测试

dda8fc1d419f72d0f11dda504948823e.png
https://www.zhihu.com/video/1127271578604666880

最后

本设计基于QuartusII开发,需要本设计的整个工程的朋友,关注我的订阅号 硅农 后台回复 视频图像处理,即可获得工程的下载方式。

d498e9ab19b1cf7114ac232133c0b973.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值