嵌入式多目标跟踪(下)
接上篇
差分后直接得到的图像包含噪点,会影响真实目标的 判断,在本设计中对差分图像经过了腐蚀和膨胀两个形态学 处理。腐蚀和膨胀均为3x3大小的检测窗口,按顺序扫描差 分图像,示意图如图6。腐蚀的目的是去除孤立的运动像素 点或块,在3x3画面中,检测到任何一个没有被标记的像素 点,则全部去掉标记。膨胀是为了增强运动目标的连通性, 与腐蚀相反,检测到任意一个标记点,则全部标记。
在图像周边检测区域内,设置等间隔的扫描线,只有 运动的物体会被扫描到,并根据扫描线的数量和扫描到的运 动像素点位置,确定目标进入画面的位置和轮廓大小,同时 给出发现目标的标志信号,启动下一级粒子滤波算法对已有 目标的跟踪。
5.2 目标选择
红外遥控信号如图7所示。 按下红外遥控器按键后, 红外遥控器向DE2-115板上的IR接收器发送红外遥控信号。 FPGA对IR接收器收到的信号进行解码处理。默认状态为空 闲状态,当IR DATA在空闲状态,出现230000个低电平,进 入Guidance状态。Guidance状态下,出现210000个低电平, 进入数据解码状态。当检测到低电平时,计数清零;检测到 高电平时开始计数,一旦计数到20000,则将比特位数加1。 高电平数若超过41500,则判断该比特位是1。反之,比特位 为0。比特位数共32位,高八位是次八位的反码,用于检验
图7 红外遥控
图8 基于粒子滤波的多目标跟踪硬件结构设计
数据的正确性。
5.3 基于粒子滤波的多目标跟踪算法
基于粒子滤波的多目标跟踪硬件结构设计如图8所示。 首先,介绍对于单一运动目标通过粒子滤波算法,实现运动 目标跟踪的流程。
初始化,将计算目标与各粒子的颜色直方图的RAM清 零。进入自动检测模块,一旦检测到运动物体,将物体的中心位置与目标框的长宽输入到目标颜色直方图统计模块。
将RGB信号转化为HSV颜色空间中的H分量,以H分量 为目标的特征,统计目标H分量出现的次数,生成目标颜色 直方图统计模块。H分量在0-360间变化,将H分量的值作为 RAM地址,每出现一个H分量,将其对应的RAM地址中的内 容读出,然后加一,再写入该地址,完成第一帧目标H分量 直方图统计。第 一 帧 统 计 完 目 标 直 方 图 后 , 在 目 标 周 围 撒 随 机 粒 子。第二帧统计随机粒子直方图,统计完成后,将每个粒子 与目标粒子的对应地址内的数据相乘后开根号再相加,获得 随机粒子的权重。找到权重最大的粒子,输出该粒子的中心 点,作为目标中心点。
设置权重阈值,将每一个粒子的权重与阈值比较,若 小于该阈值,说明该粒子是目标的可能性非常小,下一帧的 随机粒子预测中删除该粒子,并将上述的最大权重粒子的中 心位置赋给该随机粒子,这一过程称为粒子重采样。同时, 统计需要重采样的粒子个数,若需要重采样的粒子大于所设 置的阈值,则说明目标已丢失,跟踪框消失,字幕提示Lost 字样。反之,重采样粒子小于阈值,系统判定目标仍在画面 中,将权重最大的粒子中心作为跟踪框中心,再根据自动 检测输出的跟踪框长宽,画出跟踪框,字幕显示Tracking字 样。设置的重采样粒子阈值越大,系统判断目标丢失的可能 性越大。当目标处于跟踪状态时,在目标周围撒随机粒子; 当目标处于丢失状态时,全屏撒随机粒子,等待目标再次从 画面中任意位置出现。
根据所设计的粒子滤波模块导出QXP文件,生成对应 的IP核。在工程中添加QXP文件,通过.v文件将QXP文件中 输入输出端与工程中的模块连接起来,实现IP核的调用。编 译后生成的网表里,该模块只显示输入输出管脚,而无具体 的数字时序逻辑电路实现,但其能完成原先设计的数字电路 功能。系统中的其它运动目标可调用设计生成的粒子滤波 模块,实现基于粒子滤波的多目标跟踪硬件结构设计。在 FPGA片内资源允许的情况下,可复用多个粒子滤波模块, 实现任意数量的目标跟踪。
6 设计特点
6.1 基于边缘检测与帧间差分的运动目标检测
使用边缘检测保留物体轮廓,减少图像原始信息,减 少光照和阴影的干扰,并通过腐蚀和膨胀形态学处理,进一步提高帧间差分对运动目标判断的准确性。帧间差分法计算
简单,适合在FPGA上实现。由于本设计中只需要检测刚进 入画面的目标,所以帧间差分区域限定在画面周边区域,节 约FPGA的片内资源。
6.2 基于粒子滤波的改进目标跟踪算法
在FPGA上实现粒子滤波算法,增加了粒子直方图权重 阈值比较与重采样粒子个数阈值比较。通过阈值比较,可以 判断目标跟踪与丢失状态。当目标正在跟踪时,只需在目标 周围产生随机粒子;当目标丢失时,在全屏范围内产生随机 粒子,若目标从屏幕中任意位置再次出现时,可以快速捕捉 到目标所在位置,继续跟踪目标。
6.3 目标跟踪模块的可复用性
生成基于粒子滤波的目标跟踪算法的IP核,并对每一 个目标都调用该IP核,实现目标跟踪模块的复用。IP核的生 成与调用,不仅体现了目标跟踪模块的可复用性,而且体现 了目标数目的可扩展性。只要在FPGA片内资源允许的情况 下,可以增加需要跟踪的目标的数目。借助FPGA的并行运 算机制,对多个目标同时进行粒子滤波处理,实现多目标跟 踪。
6.4 友好的人机交互界面
在VGA显示器上显示多目标检测与跟踪结果,使用不 同颜色的跟踪框与字幕,区分不同目标。将字幕与各目标当 前的跟踪状态同步,实时显示各目标的跟踪状态。
7 总结
友晶科技的DE2-115开发板,提供了视频输入输出接 口,板载的Altera公司Cyclone IV系列FPG A芯片与片外的 SDRAM为视频处理提供了强大的处理能力和存储空间,是 非常出色的FPGA多媒体教学与开发平台。
通过四个月的学习,不仅研究了运动目标检测与多目 标跟踪的理论知识,而且将其应用到FPGA。加深了对FPGA 逻辑、时序、实时操作、并行机制等概念的理解,并通过实 践掌握了状态机、流水线操作、FPGA IP核使用、设计、调 用与Signal Tap II的使用。
在完成设计的过程中,通过查阅文献、与组员以及指 导老师积极讨论与沟通,解决了许多技术难题,培养了自学 精神、动手能力与团队合作意识。
最后,再次感谢Altera与友晶科技提供了这次FPGA学
习、展示与交流的机会。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)