一、核心思路

系统设计采用了低成本的 FPGA 芯片作为系统的核心控制模块,使用Verilog 硬件描述语言在 Quartus II 软件进行设计,采用 OV5640 摄像头完成视频图像的采集,通过大容量存储器件 SDRAM 乒乓操作完成图像数据缓存最后在VGA 显示器上进行视频图像显示,完成视频图像处理平台搭建。 
针对图像采集过程中出现的随机噪声问题,为了保证后续运动目标检测的准确性,在均值滤波,中值滤波和高斯滤波的基础上将双边滤波算法在 FPGA 系统开发平台上进行移植与实现,通过与 MATLAB 联合仿真验证了算法设计的合理性并通过性能指标进行评价。 
对主流的目标检测算法、Meanshift 算法以及 CamShift 算法进行了分析,从各个算法的精度曲线可以观测对应的效率,从无人机的功能需求入手最终选择帧间差分法作为系统的运动目标检测算法,CamShift 算法作为系统的跟踪算法。经过多次测试表明本文研究的算法提高了系统的稳定性、实时性以及运动目标检测与跟踪的准确性,最终在无人机样机上进行实验。 

二、硬件平台设计与仿真

整体逻辑设计分为两个部分,一是对于视频图像的处理,包括图像的采集模块、图像预处理模块、形态学滤波膨胀和腐蚀模块,以及目标追踪位置检测模块;二是 FPGA 对外围设备的控制,包括 CMOS摄像头的配置及通过 SCCB 总线对数据的传输,VGA 控制模块控制视频数据的显示,SDRAM 控制模块控制视频流数据在 SDRAM 中的存储,以达到实时性处理的目的。 
主要逻辑功能设计如下所述: 
(1)在对摄像头上电之后通过 SCCB 协议对摄像头内部的寄存器进行配置,在 DVP 接口模式下,以 RGB565 格式输出,每个行同步信号输出 8bit 数据,低位在前,高位在后; 
(2)将输出图像数据流入图像预处理模块,做图像的色彩空间转换,双边滤波等,对数据进行掩码存入到 SDRAM,根据 VGA 的写数据请求,从 SDRAM 中取出数据,该数据包含前后两帧灰度数据; 
(3)通过窗口内累加,对一个数阈值比较算法的实现,将两个灰度数据作差,若差值大于预设的阈值,则输出 1,否则输出0,通过 VGA 控制模块的行场计数器对框选范围划定边界,然后在位置检测模块的有效信号下进行图像数据在 VGA显示器上的显示; 
(4)由于帧间差分法会产生很多空洞点和细小的噪声点,对得到的二值化图像进行膨胀和腐蚀算法进行处理,从而得到运动目标物体的位置信息。 

Image_input(图像数据产生模块)任务指的是MATLAB 处理的分辨率为640× 480 的数据并按照视频的时序产生激励;在 bilateral_fiter_proc(双边滤波处理模块)对视频图像进行处理;mage_result_check(数据结果校验模块)表示 Modelsim 仿真结果与 MATALAB 计算结果进行比对校验。首先生成测试图像的数据,即 RTL代码读取的图像源数据,部分图像源数据及灰度数据如图 。

接下来将进行图像预处理算法在 FPGA 平台上的实现,通过 CMOS 摄像头采取的图像会有噪声点,因此通过预处理可以进行有效的滤波,为后续的目标识别和追踪创造良好的条件。由于 FPGA 具有并行处理的特点,通过流水线的设计,将从 SDRAM 存储的数据取出后进行硬件加速,数据可以得到实时性的处理。该部分首先完成图像灰度显示测试,然后经过双边滤波显示测试。通过显示的效果选择合适的预处理算法然后搭建目标检测系统。 

博主简介:本团队擅长数据处理、建模仿真、程序设计、论文写作与指导,项目与课题经验交流。
团队博客:kelaboshi.com。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐