发明内容
本发明的目的是针对现有视频监视系统,存在无法自动识别监控目标行为,难以自动跟踪导致误报、漏报的问题,提出一种基于运动行为分析的目标跟踪算法。
为了实现发明目的,采用的技术方案如下:
运动模块检测算法的流程图如图1所示。该算法的实现主要分为三大模块,分别为:目标单元信息提取、目标行为分析提取、基于行为的目标配准。下面分别详细介绍。
数据结构定义:
目标序列{目标单元链表},本发明的归最输出结果。
目标单元{目标位链表,目标运动方向,摩擦系数},一个目标从进入场景到离开场景定义为一个目标单元,其它具体项在后续做详细介绍。
目标位{目标二值掩码,目标彩色外接矩形图像,目标区域,目标中心点,目标颜色统计直方图信息},目标位为目标在特定帧图像中的信息描述,其它目标具体项的意义在后续做详细介绍。
1、目标单元信息提取模块:
该模块又由图像预处理、帧差法提取目标信息图像、自适应阈值法图像二值化处理、目标信息二值图连通域处理提取最大目标、目标单无闭包处理这几个基本的算法思路组成。
由于安防环境下的视频数据大部分为两个极端,一是旧版硬件获取的CIF的视频数据,该类视频数据分辨率只有352×288,而且噪声过大,很难满足后续的处理;二是最新版的高清设备,即高清分辨率的D3(1920×1080),它的分辨率过高致使后期的处理效率过低。因此,在算法处理前期,我们对获取的图像数据进行图像归一化处理,即,首先对图像进行线性插值法归一化,将图像转换到一个统一的尺寸。之后,为了减少噪声干扰,对图像进行灰度均衡化处理,以抑制噪声,突出目标对比度。由于发明中使用的线性插值法和灰度直方图均衡化使用的是传统算法,这里不做解释。
为了消除传统算法在目标提取过程中出现的运算时效性低,本以明使用了相对简单的瞬时帧差法来提取单无目标。同时为了克服瞬时帧差法可能带来的一些弊端,如目标空洞,目标部分信息丢失,本发明从两个方面进行了预防和补救:
一是在提取目标信息二值图时,对帧差灰度图进行基于区域统计的方法进行自适应二值化处理。基于区域统计的自适应阈值法的基本思路为:算法认为,在n×n的自定义区域内,经过帧差处理后的灰度图像素点的灰度值应该服从正态分布,其中干扰点应该位与正态分布的两端,因此,对n×n区域的像素点进行扫描,建立正态分布信息库,从第三个像素点开始,存在以下可能:若当前像素点为i(2<i≤n×n),1、像素点i灰度不满足已经处理的i-1个点的正态分布,则认为它是干扰点,将点i置位;2、像素点i的灰度服从前i-1个点的正态分布,则将点i归放计算列,重新计算正态分布。经过工程实践,以上算法可以较好的获取目标信息点,减少噪声干扰。
二是对二值化信息图进行了最大连通域和闭包运算,最大程度上保证提取目标的完整性。由于连通域和闭包运算为常规算法,这里不做解释。
2、基于行为假设的历史目标更新模块:
由于本发明中使用的目标分割算法为较为简单的瞬时帧差算法,这种算法的优点是运算速度快,但缺点除了上面提到的,还有当目标低速运动时,容易告成目标丢失,本模块的主要任务是结合目标运动的历史信息进行目标行为分析提取,最终实现基于行为分析的目标配准算法,从而克服低速运动目标的目标丢失的问题。同时在目标行为信息提取中,本发明还保存了目标的HSV色彩空间中HS分量彩色直方图信息,利用直方图信息对目标相遇时造成的目标跟踪错误进行纠正。具体的算法步骤请参照具体实施方式,以下对本模块算法步骤中用到的“基于摩擦系数的最大重合面积的目标匹配”,和“智能行为分析假设匹配”两种基础算法。
基于摩擦系数的最大重合面积的目标匹配,基本是目标快速跟踪常用的最大面积重合算法,本发明做了一些改进,主要体现在加入了摩擦系数因子,从一定程序上减小了误判和漏判:本发明将一个目标在特定帧中的信息定义为目标位,目标位的数据结构定义为:目标位{目标二值掩码,目标彩色外接矩形图像,目标区域,目标中心点,目标颜色统计直方图信息}。该目标位的目标二值掩码的大小为其目标外接矩形的大小,二值掩码满足式:
目标区域为该目标在当前帧中的位置,为了减少本发明对内存的要求,目标序列在存储目标位时都只存储目标外接矩形内的数据,保存了目标在原图像中的区域,可以通过区域定位到目标在背景图像中的位置。
目标中心点,该点为目标位的代表点,算法中,判断目标位间的位置关系,及目标位的位置等信息,都是通过该点来判断。令CP为中心点,目标掩码区域Φ,SΦ为掩码面积,目标中心点的计算基于公式:即计算出目标掩码的统计中心。目标单元的所有目标中心点序列组成目标单元的目标轨迹。
目标颜色统计直方图信息,算法中利用目标的色彩信息对目标进行跟踪匹配,算法中提取的是HSV颜色空间中的HS二维统计直方图信息。
设目标单元在第F帧的目标位二值掩码为Φ1,在F+1帧的目标位二值掩码为Φ2,则目标位F与目标位F+1的面积重合ΦAC可以表示为:ΦAC=Φ1∩Φ2,定义重合度DAC,则DAC∈[0,1]。本发明提取基于摩擦系数的自适应最大面积匹配跟踪算法,定义目标在场景内的摩擦系数α,设目标单元中有F个目标单元,目标单元中相邻目标位的重合度序列为DAC(0),DAC(1)...DAC(F),DAC(i)表示第i+1和第i个目标位的重合度,其中0≤i≤F-1,则α=k|DAC(i)-DAC(i-1)|,考虑到视频帧的高度连续性,因此α值的分布满足正态分布,即,设统计窗口长度为n帧,在统计窗口中重合度的均值为E(DAC),方差为D(DAC)=E(DAC-E(DAC)2),任意一帧与其前一帧的重合度与统计窗口重合度均值的摩擦系数应在统计窗口的方差范围内。在以上假设基础上,基于摩擦系数的自适应最大面积匹配法的算法流程描述如下:
输入:历史目标单元,当前目标位
输出:配准成功返回真并更新历史目标单元,否则返回假
第一步,计算历史目标单元最后一个目标位与当前目标位的重合度DAC;
第二步,若历史目标单元的目标位为1,则进入第三步,否则进入第四步;
第三步,若DAC大于初始阈值TD,则认为目标匹配成功,进入第五步,否则进入第六步;
第四步,计算d=|DAC-E(DAC)|,若d2<D(DAC),则认为目标运动满足当前摩擦系数的制约,匹配成功能,进入第五步,否则进入第六步;
第五步,用当前目标位更新历史目标单元,移动统计窗口,更新目标单元摩擦系数均值与方差,返回真。
第六步,返回假。
基于行为分析假设的目标配准算法,该算法是为了减少目标相遇,或目标相离过近而造成的目标合并现象。算法的假设条件是,目标在视频帧中表现出高连续性,从而目标不会出现速度和运动方向的骤变。当当前目标位与历史目标单元通过最大重合面积匹配时,要对目标位和历史目标单元做基于行为分析假设的目标配准,以防止目标相遇或相遇相邻过近时引起的目标错位现象。
算法中使用目标运动方向和目标的颜色特征作为目标的行为信息进行目标配准。以下依次进行说明:
目标运动方向:首先对目标的运动方向进行定义,目标的运动方向是基于目标位的中心点来确定的,关于目标位的中心点之前有做说明,这里我们定义目标的中心点为目标的轨迹点。定义图像坐标系如图2所示,运动目标的方向定义为,相邻两个目标位的轨迹构成的向量与X向方向向量的夹角为目标当前的运动方向,如图2为t时刻运动目标的即时运动方向为角
若目标的第i-1个轨迹点的坐标为(x
i-1,y
i-1),第i个轨迹点的坐标为(x
i,y
i),则令轨迹点i的方向向量为
算法中用方向向量来描述目标的运动方向。基于目标运动方向配准的算法的基本原理为:设目标的方向偏移误差为
同理,由于目标在视频播放时的高度连续性,我们认为目标不会发生方向突变,因此,本发明定义方向偏移误差
在统计窗口n中仍然满足正态分布。算法的具体步骤是:
输入:历史目标单元,当前目标位
输出:配准成功返回真,否则返回假
第一步,计算当前目标位的方向向量
若历史目标单元大长度为1,则进入第二步,否则进入第六步;
第二步,计算
将
与X方向的单位方向向量作点积进行向量方向值量化即:
若统计窗口的方向偏移误差均值
为空,且
其中
为方向偏移误差初始阈值,进入第四步,若
进入第五步,若
非空,进入第三步;
第三步,计算
若统计窗口的方向偏移误差的方差
满足
则进入第四步,否则进入第五步;
第四步,
将当前目标位加入统计窗口中,重新计算当前均值
和方差
返回真。
第五步,返回假。
第六步,令作为统计窗口中的上一目标方向返回真。
目标颜色信息,本发明中将目标的颜色空间由RGB转换了较好分类建模的HSV色彩空间,并提取目标的HS分量进行统计直方图记录,以此来标定目标的颜色信息,对目标进行配准识别,算法基本思路如下:
输入:当前目标位,历史目标位
输出:配准成功返回真,否则返回假
第一步,提取当前目标位的HS统计直方图;
第二步,将当前HS直方图与历史直方图进行基于卡方的对比,得到对比值D;
第三步,若对比值D小于经验阈值T,则认为前后两目标颜色信息一致,进入第四步,否则进入第五步;
第四步,更新历史HS直方图,返回真。
第五步,返回假。
在以上的算法中,分别利用了目标的运动方向和颜色信息进行目标配准,本发明中若这两种算法均配准成功则认为目标基于行为假设的配准成功,若目标运动方向和目标颜色信息有一项配准失败,则认为目标配准失败。
3、基于行为假设的目标创建模块:
该模块分为两部分,一个为目标的行为假设;另一个为新目标单元的创建。
目标的行为假设是为了防止目标在低速运动或其它如光照影响下而造成的目标中间信息丢失,最终使一个目标单元被分裂为多目标单元的情况。算法通过目标行为假设使目标继续向其历史方向按原目标运动速度进行运动,该目标单元最终将出现两种情况而终结目标的行为假设处理:1、检测到目标已经离开场景,这时,删除目标中通过行为假设建立的目标位,并输出目标单元;2、检测到一个确切目标位(相较于通过行为假设而产生的目标位)与之前的假设目标位通过最大面和匹配和行为假设配准,则算法认为对该目标的行为假设为正确假设,将所有的假设目标位置位为确切目标位。
行为假设处理的具体方法描述为:通过目标单元已有的最新目标位信息,目标单元摩擦系数,目标运动方向以进行估计运算最终得出估计目标位。目标位估计只需要确定目标位的区域值即可,这里假设目标的短距离运动为刚性运动,因此目标的二值掩码和目标外接矩形的彩色图像均使用前一个目标位的信息值,即计算出目标位的平移量n,通过矩阵平移运算来得到目标的估计目标位。由于假设目标为刚性物体,因此,相邻目标位的平移量n可以由相邻目标位的任意空间相同点的欧式距离得出,即n=||P
F(i,j)-P
F-1(i,j)||,其中P
F(i,j)为第F帧中目标位的某个像素点P。上式可改写为:
而平移向量
是目标单元目标运动速度和目标运动方向的函数,若目标的最似然估计运动方向向量为
最大似然估计速度为v,则有
本发明,速度v与单位方向向量
的确定方法描述如下:
此处速度可定义为目标位每帧的偏移量,由于目标在预测中被定义为刚性物体,因此以目标的中心点作为参考点来计算目标位的速度是可行的,在统计窗口中,计算目标位中心点的位移均值E(l),及位移标准差SD(l),则有
求随机数α,使得量为
则可定义当前预测帧的位移量为E(L)+α,即v=E(L)+α。
同样的方法和求得目标位的单位运动向量。根据基于行为假设算法的计算,可以得到统计窗口中目标位运动方向偏移误差的均值
和方差
可求得标准差
在标准差的范围内求随机数β,则可有当前预测帧方向偏移误差为
若统计窗口中最新的目标位计算得到的单位方向向量为
结合方向偏移误差可得当前的方向单位向量
新目标单元的创建,当当前帧中检测到的目标位没有与历史目标单元匹配成功,则算法认为该目标位为新进入场景的目标单元,在算法中为此类目标位创建目标单元,并将目标单元插入到历史目标序列中。
具体实施方式
本节对本发明算法的具体流程做一详细的说明。
本发明输入数据源:解码后的视频数据流,要求帧图像的格式为RGB。
输出的结果为目标序列,一个目标从进入场景到离开场景的所有位置序列组成一个目标单元,目标序列指目标单元的序列,目标在特定帧中的位置定义为目标位,目标位组成了目标单元。见附图3所示目标定义。
结束标志为,所处理的视频数据读取帧图像到了末尾。
1、目标单元信息提取模块算法流程:
第一步,获取一幅图像,若获取到视频结束符,则跳转至第六点,否则继续;
第二步,获取帧图像的灰度图,然后对灰度图进行尺寸归一化和灰度直方图均衡化的图像预处理操作,若上一帧图像为空,则保存当前处理后的图像为上一帧图像,跳转至第一步,否则继续;
第三步,对上一帧图像和当前帧图像进行瞬时帧差处理,获得差分灰度图;
第四步,对差分灰度图进行基于自适应阈值的二值化处理,获取目标信息二值图;
第五步,对目标信息二值图进行最大连通域处理和目标闭包处理,提取当前图像中的目标位序列,提取每个目标掩码的统计中心点,将目标位序列输入到下一模块,返回第一步;
第六步,向下一模块发送停止符,终止当年模块。
2、基于行为假设的历史目标更新模块算法流程:
第一步,获取上一模块输出的当前图像中的目标位序列,若获取到结束符,则跳转到第七步,否则继续;
第二步,提取当前图像中的目标位序列中的一个目标位,若目标位序列已经全部处理完成,则跳转至第一步,否则继续;
第三步,提取历史目标序列中的一个目标单元,若历史目标序列已经全部匹配,则跳转至第五步;
第四步,将该目标单元的最新目标位与当前目标位进行基于最大重合面积的匹配,若匹配成功,则进入第五步,否则返回第三步;
第五步,对当前目标单元进行智能行为分析假设匹配,若匹配成功,则更新此目标单元的历史记录,将目标单元的行为假设目标位的状态更改为实际目标位,即假设成功,然后返回第二步,若匹配失败,返回第三步;
第六步,保存该目标等待新目标处理;
第七步,输出停止符;
3、基于行为假设的目标创建模块算法流程:
第一步,获取上一模块没有被更新的历史目标序列,和没有被匹配的目标位,若收到停止符,则跳转至第八步,否则继续;
第二步,从历史目标序列中提取一个目标单元,若当前历史目标序列处理完成,则跳转至第五步;
第三步,对目标序列进行基于行为假设估计的智能轨迹更新处理:根据目标的轨迹方向和轨迹速度信息以及摩擦系数,对目标进行位置更新,若更新后的目标已经处理离开场景的状态,则进入第四步,否则返回第二步;
第四步,删除此目标序列中通过行为假设估计更新的目标位,输出此目标单元,将此目单元从历史目标序列中删除,返回第二步;
第五步,将没有匹配的当前目标位序列创建为新进入场景的目标单元,将其插入历史目标序列中,返回第一步;
第六步,退出算法。
以上算法模块是提到的算法名称,详见以明内容部分的对应模块。