基于背景建模的红外运动目标检测(一)

适用场景

基于背景建模的运动目标检测,其原理主要依赖算法所建立的接近理想背景的模型。
假想一下,如果眼前有一面白墙,突然有个具备一定尺寸的物体闯入视野,假设观察者方位(对应相机摆放位置和视角)固定不动,那么前后场景直接相减得到的差异就是运动目标了。
然而在现实状况下,我们不可能有那么一面理想的白墙。复杂场景:比如你在开始观测的时刻,视野里已经有很多运动的目标,或者你的场景有细琐树叶在飘动。因此,直接把前一帧作为当前帧背景的帧间做差法,得到的效果很差。
图像处理界有背景建模的方法,各种算法无论原理,都是在模拟形成那面白墙。因为各种方法都比较成熟,后来人尽管当工具调用。
背景建模以后,运动目标的提取转为当前帧减去背景帧的问题。
所以,背景建模适用的场景:相机固定情况下,目标具有一定面积的场景。为什么说目标需要具备一定面积呢?考虑到背景建模有时候就是一个概率事件,过小的目标完全有可能淹没在干扰背景里。

干扰因素

背景建模在最理想的情况下,能够通过背景差获得当前新入视野的物体:这些引起场景变化的物体可以是:

  • 我们关注的运动物体;
  • 突然消失的物体;
  • 树叶抖动;
  • 水面波纹;
  • 云层干扰等。

如何在这些干扰因素中准确提取运动目标,就是我们需要研究的课题。

前景图分析

笔者测试视频为较远距离的场景,(车辆大概占据10*10像素左右);背景中有道路、树叶等干扰因素。
在经过背景差处理后,我们得到的是如下所示二值图像,其中,白色区域代表算法认为的运动区域;黑色代表背景区域。
从图中可以看出,所谓的目标区域,其实是白色亮点分布比较集中的区域;在运动建模初期,前景图像并不能很好的区分目标和背景。
基于背景建模的红外运动目标检测(一)
在经过一定时间的背景训练后,前景图的效果似乎会比较理想。
如何在这些离散点中获取目标位置,就是接下来需要考虑的问题了。

关于分割

在图像处理中,经常会提到分割这个词语。个人理解是,将感兴趣的区域,从复杂的数据中提取,就是分割。
在运动目标识别中,运动目标就是被分割出来的对象。
经常用二值图作为分割的导引,为什么呢?
将一幅复杂的图片,变成了非黑即白的两类,直接提取0或者1所对应的区域,我们就能得到ROI(region of interest)。

形态学处理

刚才已经提到,背景差直接得到的是一堆离散点:噪声的分布似乎更加随机;目标就是分布密集的点。所以目标是否可以理解为:分布概率比较高的区域?
这张离散图具备怎样的性质呢?

  • 噪声的分布比较随机,粘连可能性比较小;
  • 目标所在区域亮点分布比较密集,但是存在着不连续的情形。

具备图像基础的基本都会接触形态学操作,这里不做赘述。最常见的有膨胀和腐蚀,其他的诸如开闭操作、顶帽礼帽操作,都是在这两个基础上复合调用的结果。
对于上图,我们可以采取这样的操作:通过很小的核腐蚀,去除分布离散的那些孤立点;通过膨胀操作,将目标非连接区域连接,这样子能降低一个目标被多处标记的可能。
OK,今天就这样了。