移动物体检测与跟踪算法的实现
移动物体检测算法已经在带 LCD 的 Intel XScale 270 平台上实现,效果如下图所示。
这个界面是在 Linux 操作系统下利用 QT 库采用 C++开发的。如果在 MicroBlaze 上移
植 Linux 成功的话,可能会出现不能支持 QT 的情况,那我们将舍弃用 QT 做出来的控制界
面,而将图像视频直接显示在 VGA 显示器上。
接下来我将介绍一下实现这个效果我们所采用的算法和程序的流程:
一、算法
1、基于灰度图像的
检测算法
为了完成实时目标检测,需要一系列的操作,所以就需要对目标的特征进行提取,包
括目标的形状和颜色分布。由于人体是非刚性的,外在的障碍物和自身的噪声可能给建立
唯一的模型带来困难。为了减小这些影响我们把摄像头观察点放置在人群的正上方,这样
几乎不会有重叠的现象而且每个目标占用图像的面积很小。
我们采用基于灰度直方图的方法简化目标模型,由于系统只需识别出有物体的存在并
进行跟踪,所以要求的精度不需要很高,因此在该系统只识别人体的大体外形及所处的位
置而忽略身体的细节部分,使算法更加简化。为了突出目标本文采用相邻帧差法去除不变
的部分(比如背景、身体的一些部分),通过分析剩下的部分我们可以定位目标所在的位
置。简单的帧差法并不足以达到检测的精度,这里采用相差后图像的水平和垂直投影完成
检测功能。
下面给出这个算法的过程:
(1) 相邻图像相差后得到 M*N 的图像 I,如图 1 所示。非零的那些像素大部分是头部的
运动边缘,通过对差分图的分析就可以定位运动目标。