具体实施方式
图1是本发明的基于视频监控的背景建模和更新系统。基于视频监控的背景建模和更新系统包括采集模块110、运动检测模块120、背景建模和更新模块130、参数设置模块140、存储器150和处理器160。
采集模块110获取视频监控设备监视场景的图像信息。运动检测模块120对监视场景进行运动检测进而得到图像中的运动目标,因此通过运动检测模块120后可以得到静止区域即除运动目标之外的其它区域。背景建模和更新模块130对视频监控场景背景建模和更新。参数设置模块140设置视频监控系统参数,以便背景建模和更新。系统参数可以包括直方图容量、统计单元的大小、邻域参数、直方图波峰阈值、高斯混合模型中高斯分布数量最大值。
存储器150存储视频监控系统中的程序,并且存储相关图像信息。处理器160执行存储器150中的程序,控制视频监控系统各模块的操作,执行视频监控系统中的算数和逻辑运算。
图1仅仅是为了解释本发明并不意味着对本发明进行限制。
图2是本发明的基于视频监控的背景建模和更新流程图。
步骤210采集视频监控设备监视场景的当前帧图像。步骤220根据监视场景的图像信息对监视场景进行运动检测,目的是排除运动目标对系统背景建模和更新造成影响。
常用的运动检测方法有帧差法和光流场法。帧差法是将采集到的当前帧图像灰度值与前一帧图像灰度值相减,然后对该差分图像进行膨胀处理和连通域分析,得到包含运动区域的矩形,则该矩形部分为运动发生区域。光流场法根据相邻帧图像之间像素匹配后的位置变化来判断每个像素是否为运动像素。匹配上的像素位置如果出现了明显变化,那么该像素为运动像素,所有运动像素集合为运动发生区域。
步骤220后即得到视频图像中的静止区域后,继续执行步骤230即对视频图像中静止区域内的每个统计单元做直方图统计,进而得到每个统计单元灰度值变化情况。该统计单元的大小由参数设置模块140设定,具体地该统计单元的大小根据监控区域的实际大小以及背景建模的精度来确定。最小的统计单元是一维统计单元即一个像素。假设参数设置模块140设置的统计单元大小为3*3,因此将视频图像分为若干个3*3大小的统计单元。此时该3*3大小的统计单元是最小的视频图像统计单位,该统计单元中每个像素的灰度值都为该统计单元的灰度值。直方图统计的是该统计单元的灰度值变化情况,而并不对统计单元中每个像素的灰度值做统计。
统计单元直方图的横坐标是该统计单元的灰度值,纵坐标是次数或频率。因此统计单元直方图体现的是统计单元不同灰度值出现次数或频率。直方图波峰体现的是统计单元某灰度值出现次数最多或频率最高。本说明书采用纵坐标为次数的直方图对统计单元灰度值变化情况进行统计,纵坐标为频率的直方图统计原理与纵坐标为次数的直方图统计原理相同。
统计单元直方图统计的是最近一段时间内该统计单元的灰度值变化情况。实际操作时需要将时间换算为图像的帧数,假设系统设定的时间段为Ts,视频的帧率为Fs,那么图像的帧数Is=Ts.Fs。举例说明,假设最近一段时间内某统计单元出现灰度值50的次数为5次,出现灰度值60的次数为8次,出现灰度值70的次数为20次,出现灰度值80的次数为9次……,将所有这些点连接起来组成的连续图像即为该统计单元灰度变化直方图。因此统计单元直方图得到的是该统计单元灰度值变化情况,该统计单元直方图的波峰是该统计单元出现某灰度值次数最多,也就是说统计单元直方图中波峰对应的灰度值与该统计单元的背景灰度值最为接近。
每个统计单元灰度值通过队列的方式存储,该队列按照时间的先后顺序记录最近一段时间内该统计单元的灰度值。当该队列存储的灰度值数量超过系统设定的直方图容量时,根据先进先出原理将最先进入队列的灰度值去掉,将当前灰度值放入队列,进而得到最近一段时间最新的该统计单元灰度值变化情况。
接下来根据统计单元直方图判定该统计单元灰度值是否稳定,具体的判定方法通过步骤240和步骤250实现。步骤240计算每个统计单元直方图的波峰及波峰邻域(该波峰邻域将在下面内容中得到阐述)对应次数之和,与该统计单元直方图所有次数总和的比值。具体计算方法可以采用波峰及波峰邻域与其相应横坐标组成的封闭区域面积,与该直方图波形与其相应横坐标组成的封闭区域面积的比值。计算该比值的目的是为了进一步判断该统计单元的灰度值是否长时间处于某一灰度值状态,进而判断该统计单元的灰度值是否稳定。
以下阐述限定波峰邻域范围的一个具体实施例。
波峰邻域由参数设置模块140通过设置邻域参数设定,波峰邻域是波峰与邻域参数之差对应灰度值以及波峰与邻域参数之和对应灰度值之间的区域。该邻域参数是波峰对应灰度值分别与该波峰相邻两侧对应灰度值差值的绝对值。举例说明,如果某统计单元直方图波峰对应的灰度值是60,系统设定的邻域参数是2,则该波峰邻域是除灰度值60之外的灰度值58和灰度值62之间的区域。因此该统计单元直方图统计的是大于等于58与小于等于62之间灰度值出现次数。因此步骤240所述比值可以通过计算直方图中灰度值大于等于58与灰度值小于等于62之间的波形与相应横坐标组成的封闭区域面积,与该直方图波形与相应横坐标组成的封闭区域面积相比求得。
步骤250判断步骤240得到的比值是否大于或等于直方图波峰阈值。如果该比值小于直方图波峰阈值,则说明该统计单元的灰度值不稳定,也就是说该统计单元的灰度值变化频繁。举例说明,如某统计单元属于监视区域内一不停摇动树枝,此时该统计单元的灰度值不稳定。由于统计单元的灰度值在不稳定情况下不能做背景建模或更新,因此不能对该属于不停摇动树枝的统计单元做背景建模或背景更新,执行步骤210采集下一帧视频图像。
如果步骤240得到的比值大于或等于直方图波峰阈值,则说明该统计单元的灰度值稳定。在统计单元灰度值稳定的情况下对该统计单元背景建模或背景更新,具体方法是用该统计单元直方图中波峰对应灰度值初始化或更新高斯混合模型。原因是统计单元直方图中波峰对应的灰度值是该统计单元出现频率最高的灰度值,也就是说波峰对应的灰度值与统计单元背景灰度值最接近,因此将直方图波峰对应的灰度值初始化或更新高斯混合模型。
在统计单元灰度值稳定的情况下,执行步骤260判断该统计单元是否已经背景建模。具体判断方法是通过存储在存储矩阵上的标识位进行判断,如果该统计单元对应的存储矩阵标识位都为“0”,则说明该统计单元没有背景建模,否则说明该统计单元已经背景建模。
如果该统计单元没有背景建模,则执行步骤261即对该统计单元背景建模,具体背景建模方法是用该统计单元直方图中波峰对应灰度值初始化高斯混合模型。
下面详细阐述如何用统计单元直方图中波峰对应灰度值初始化高斯混合模型。
公式(1)是高斯混合模型公式,高斯混合模型的横坐标和纵坐标与直方图的横坐标和纵坐标相同,即高斯混合模型的横坐标是灰度值纵坐标是次数或频率,本说明书的高斯混合模型纵坐标采用次数。
在统计单元高斯混合模型中,P(X)是统计单元的灰度值概率分布,X是统计单元的灰度值。K是高斯混合模型中高斯分布的数量。ωi是第i高斯分布的权重,通过计算该第i高斯分布样本数量与高斯混合模型中总样本数量的比值求得。ui是第i高斯分布的灰度值均值。∑i是第i高斯分布的协方差矩阵。ηi是第i高斯概率密度函数,ηi通过公式(2)表示,
其中n是样本的维数。
初始化高斯混合模型是将统计单元直方图中波峰对应灰度值代入高斯混合模型中。初始化后的高斯混合模型只有一个高斯分布,K=1。只有一个高斯分布的高斯混合模型总样本数量即为该高斯分布样本数量,因此该高斯分布样本数量占总样本数量的比重为100%,ω1=1。
u1为高斯混合模型中高斯分布的灰度值均值。在背景建模过程中,u1为统计单元直方图波峰对应的灰度值。协方差∑1通过均值u1得到,即将u1值代入协方差公式得到∑1。
将u1,∑1代入公式(2)得到η1,再将K=1,ω1=1,η1代入公式(1)得到P(X),此时初始化高斯混合模型完成。在本发明中,初始化后的高斯混合模型体现的是统计单元背景灰度值变化情况。通常取初始化后的高斯混合模型中波峰对应的灰度值为统计单元的背景灰度值,也可以取波峰及其邻域对应的灰度值均值作为统计单元的背景灰度值。
如果该统计单元已经背景建模则需要再判断该统计单元是否需要背景更新,具体地是通过判断该统计单元灰度值变化是否达到背景更新阈值来实现。判断该统计单元灰度值变化是否达到背景更新阈值,可以通过判定该统计单元直方图中波峰对应灰度值与该统计单元背景灰度值(该背景灰度值将在以下内容中得到阐述)差值的绝对值是否大于或等于背景更新阈值。具体判定过程是通过步骤270和步骤280实现。
步骤270计算统计单元直方图中波峰对应灰度值与其背景灰度值的差值绝对值,步骤280判断步骤270得到的差值绝对值是否大于或等于背景更新阈值。如果该差值绝对值小于背景更新阈值,说明该统计单元直方图中波峰对应灰度值与该统计单元的背景灰度值差别微弱,因此不需要进行背景更新,继续执行步骤210采集下一帧视频图像。
如果步骤270得到的差值绝对值大于或等于背景更新阈值,则说明该统计单元直方图中波峰对应灰度值与该统计单元背景灰度值差别较大,执行步骤290即对该统计单元做背景更新。背景更新完成后再继续执行步骤210采集下一帧视频图像。背景更新方法是用该统计单元直方图中波峰对应灰度值更新高斯混合模型。原因是统计单元直方图的波峰体现的是该统计单元出现频率最高的灰度值,在统计单元直方图中波峰对应的灰度值与统计单元背景灰度值最接近。
下面对统计单元背景灰度值做解释。
如果当前统计单元已经背景建模但尚未背景更新,则该统计单元背景灰度值是指通过背景建模得到的高斯混合模型中高斯分布波峰对应的灰度值。如果当前统计单元已经背景更新,则该统计单元背景灰度值是指前次背景更新得到的高斯混合模型中权重(ωi值)最大的高斯分布波峰对应的灰度值。
下面分别针对五种不同情况阐述如何对统计单元做背景更新。
第一种情况是统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中每个高斯分布波峰对应灰度值的差值绝对值均大于或等于聚类阈值,且此时是该统计单元背景建模后的第一次背景更新。
统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中每个高斯分布的波峰对应灰度值的差值绝对值均大于或等于聚类阈值,说明该统计单元直方图中波峰对应灰度值与背景更新前高斯混合模型中所有高斯分布的灰度值均差别较大。因此需要将该统计单元直方图中波峰对应灰度值,作为更新后高斯混合模型的一个独立分布。则更新后的高斯分布数量比更新前的高斯分布数量多一个,此时K等于更新前的高斯分布数量加1。
因为此时是统计单元背景建模后的第一次背景更新,背景建模得到的高斯混合模型的高斯分布数量为1,同时又将该统计单元直方图中波峰对应灰度值作为更新后高斯混合模型的一个独立分布,因此更新后的高斯混合模型具有两个独立分布,k=2。其中一个独立分布是背景建模得到的高斯混合模型中的高斯分布,另一个独立分布是只具有一个新增加样本的分布。更新后的高斯混合模型总样本数量为背景建模得到的高斯分布样本数量加1。由于此时第一独立分布即高斯分布样本数量未变,ω1为背景建模得到的高斯分布样本数量与该背景建模得到的高斯分布样本数量加1的比值。由于此时第二独立分布样本数量为1,ω2为1与背景建模得到的高斯分布样本数量加1的比值。
u1为背景更新后高斯混合模型中第一高斯分布灰度值均值,由于背景更新后该高斯分布未发生变化,因此u1为背景建模得到的高斯分布灰度值均值,该均值的计算方法是在背景建模得到的高斯分布中对每个灰度值出现次数与该高斯分布总次数的比值与该灰度值做乘积,再对该所有乘积的结果求和。该高斯分布总次数是背景建模得到的高斯分布中所有灰度值出现次数和。u2为第二独立分布中新增加样本的灰度值,该灰度值为统计单元直方图中波峰对应灰度值。协方差∑通过均值u得到,即将u1和u2分别代入协方差公式得到∑1和∑2。此时将u1和∑1代入公式(2)得到η1,将u2和∑2代入公式(2)得到η2。再将k=2,ω1、η1、ω2、η2代入公式(1)得到P(X),进而得到最新的高斯混合模型。此时该统计单元第一次背景更新完成。
第二种情况是统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中每个高斯分布波峰对应灰度值的差值绝对值均大于或等于聚类阈值,且此时是该统计单元已经经过若干次背景更新后的又一次背景更新。
经过若干次背景更新后假设该统计单元此次背景更新前的高斯混合模型具有m个独立的高斯分布。根据第一种情况所述,当统计单元直方图中波峰对应灰度值,与背景更新前每个高斯分布的波峰对应灰度值的差值绝对值均大于或等于聚类阈值时,K等于更新前的高斯分布数量加1,因此此时K=m+1。其中m个独立分布是更新前高斯混合模型的高斯分布,1个独立分布是只具有一个新增加样本的分布。
更新后的高斯混合模型总样本数量为更新前的高斯混合模型总样本数量加1。由于此时第1到第m高斯分布的样本数量未变,则ω1……ωm分别是更新前高斯混合模型中相应高斯分布的样本数量与更新前高斯混合模型总样本数量加1的比值。由于此时第m+1样本数量为1,则ωm+1是1与更新前高斯混合模型总样本数量加1的比值。
u1……um为背景更新后高斯混合模型中相应高斯分布灰度值均值,由于第1到第m高斯分布在背景更新后与背景更新前未发生变化,因此u1……um分别是背景更新前相应高斯分布灰度值均值。该均值的计算方法是,在背景更新前相应高斯分布中对每个灰度值出现次数与总次数的比值与相应灰度值做乘积,再对该所有乘积的结果求和。该总次数是背景更新前相应高斯分布中所有灰度值出现次数和。um+1为独立分布中具有一个新增加样本的灰度值,该灰度值为该统计单元直方图中波峰对应灰度值。
协方差∑通过均值u得到,即将u1……um+1分别代入协方差公式得到∑1……∑m+1。此时将u1……um+1以及∑1......∑m+1分别代入公式(2)得到η1......ηm+1。再将k=m+1,ω1......ωm+1以及η1......ηm+1代入公式(1)得到P(X),进而得到最新的高斯混合模型。此时统计单元又一次背景更新完成。
第三种情况是统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中至少一个高斯分布波峰对应灰度值的差值绝对值小于聚类阈值,且此时是该统计单元在背景建模后第一次背景更新。
统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中至少一个高斯分布波峰对应灰度值的差值绝对值小于聚类阈值,说明该统计单元直方图中波峰对应灰度值与背景更新前某个或某些高斯分布的灰度值差别较小,用该统计单元直方图中波峰对应灰度值更新最小差值绝对值对应的高斯分布。此时K为背景更新前高斯混合模型的高斯分布数量。
因为背景建模得到的高斯混合模型的高斯分布数量为1,k=1。只有一个高斯分布的高斯混合模型总样本数量即为该高斯分布样本数量,因此该高斯分布样本数量占总样本数量的比重为100%,ω1=1。
背景更新后高斯混合模型中高斯分布增加1个样本,因此更新后高斯分布样本数量等于背景建模得到的高斯分布样本数量加1。u1值为背景更新后该高斯分布灰度值均值,该均值的计算方法是用更新后的高斯分布中对每个灰度值出现次数与总次数的比值与该灰度值做乘积,再对该所有乘积的结果求和。根据背景更新后的高斯分布出现次数比背景建模得到的高斯分布次数多1次,以及除与新增加样本具有相同灰度值的样本之外其它样本灰度值出现次数并未发生变化,可以得到均值u1的计算方法。具体地u1可以通过以下方法求得,首先计算背景建模得到的高斯分布中每个灰度值出现次数与总次数加1的比值与相应灰度值做乘积,再计算1与背景建模得到的高斯分布总次数加1的比值与新增加样本灰度值做乘积,最后将所有乘积的结果做和进而得到均值u1。
协方差∑通过均值u得到,即将u1代入协方差公式得到∑1,再将u1和∑1代入公式(2)得到η1。最后将k=1,ω1、η1代入公式(1)得到P(X),进而得到最新的高斯混合模型。此时该统计单元第一次背景更新完成。
第四种情况是统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中至少一个高斯分布波峰对应灰度值的差值绝对值小于聚类阈值,且此时是该统计单元已经经过若干次背景更新后的又一次背景更新。
经过若干次背景更新后假设该统计单元此次背景更新前的高斯混合模型具有m个独立的高斯分布。根据第三种情况所述,当统计单元直方图中波峰对应灰度值,与背景更新前高斯混合模型中至少一个高斯分布波峰对应灰度值的差值绝对值小于聚类阈值时,K等于更新前的高斯分布数量,因此K=m。
将统计单元直方图中波峰对应灰度值,与背景更新前的高斯混合模型中每个高斯分布波峰对应灰度值相减,更新最小差值绝对值对应的高斯分布。假设更新前高斯混合模型中第n高斯分布波峰对应灰度值与统计单元直方图中波峰对应灰度值差值绝对值最小,则用该统计单元直方图中波峰对应灰度值更新该第n高斯分布。更新后的高斯混合模型中第n高斯分布的样本数量比更新前的高斯混合模型中相应高斯分布的样本数量多1个,其它高斯分布的样本数量不变。
更新后的高斯混合模型总样本数量为更新前的高斯混合模型总样本数量加1。因此此时ωn为更新前高斯混合模型中第n高斯分布样本数量加1与更新前高斯混合模型总样本数量加1的比值。除ωn外其它ω1……ωm分别为更新前高斯混合模型中相应高斯分布的样本数量与更新前高斯混合模型总样本数量加1的比值。
由于ui是更新后高斯混合模型中第i高斯分布的灰度值均值,因此un为更新后该第n高斯分布中每个灰度值出现次数与该高斯分布总次数的比值与对应灰度值乘积后再对所有乘积求和。具体地un可以通过以下方法求得,首先计算更新前的该第n高斯分布中每个灰度值出现次数与更新前该第n高斯分布总次数加1的比值与对应灰度值乘积,再计算1与更新前的该第n高斯分布总次数加1的比值与新增加样本灰度值乘积,最后将所有乘积的结果做和进而得到un。除un外其它u1……um计算方法相同,以um为例加以说明,首先计算更新前的第m高斯分布中每个灰度值出现次数与更新前的第m高斯分布总次数加1的比值与对应灰度值做乘积,再对所有乘积求和进而得到um,通过该方法可以得到u1……um。
协方差∑通过均值u得到,即将u1……um、un分别代入协方差公式得到∑1……∑m、∑n。此时将u1……um、un以及∑1……∑m、∑n分别代入公式(2)得到η1......ηm、ηn。再将k=m,ω1……ωm、ωn以及η1......ηm、ηn代入公式(1)得到P(X),进而得到最新的高斯混合模型。此时该统计单元又一次背景更新完成。
第五种情况是统计单元更新前的高斯混合模型中高斯分布数量已经达到系统设定的高斯分布数量最大值。
此时将统计单元直方图中波峰对应灰度值,与更新前的高斯混合模型中每个高斯分布波峰对应灰度值相减,更新最小差值绝对值对应的高斯分布。假设更新前的高斯混合模型有m个高斯分布,第n高斯分布波峰对应灰度值与统计单元直方图中波峰对应灰度值差值绝对值最小,因此用该统计单元直方图中波峰对应灰度值更新该第n高斯分布。更新后的高斯混合模型的高斯分布数量仍为m个,K=m。
更新后的高斯混合模型总样本数量为更新前的高斯混合模型总样本数量加1。更新后的高斯混合模型中第n高斯分布的样本数量比更新前的高斯混合模型中相应高斯分布的样本数量多1个,其它高斯分布的样本数量保持不变。因此此时ωn为更新前高斯混合模型中第n高斯分布样本数量加1与更新前高斯混合模型总样本数量加1的比值。除ωn外其它ω1……ωm分别为更新前高斯混合模型中相应高斯分布的样本数量与更新前高斯混合模型总样本数量加1的比值。
un为更新后该第n高斯分布中每个灰度值出现次数与该高斯分布总次数的比值与对应灰度值乘积后再对所有乘积求和。具体地un可以通过以下方法求得,首先计算更新前的该第n高斯分布中每个灰度值出现次数与更新前该第n高斯分布总次数加1的比值与对应灰度值乘积,再计算1与更新前该第n高斯分布总次数加1的比值与新增加样本灰度值乘积,最后将所有乘积的结果做和进而得到un。除un外其它u1……um计算方法相同,以um为例加以说明,首先计算更新前第m高斯分布中每个灰度值出现次数与更新前第m高斯分布总次数加1的比值与对应灰度值做乘积,再对所有乘积求和进而得到um,通过该方法可以得到u1……um。
协方差∑通过均值u得到,即将u1……um、un分别代入协方差公式得到∑1……∑m、∑n。此时将u1……um、un以及∑1……∑m、∑n分别代入公式(2)得到η1......ηm、ηn。再将k=m,ω1……ωm、ωn以及η1......ηm、ηn代入公式(1)得到P(X),进而得到最新的高斯混合模型。此时高斯混合模型更新完成。
无论在哪种情况下对统计单元背景更新,得到的高斯混合模型体现的都是统计单元背景灰度值变化情况。通常取更新后的高斯混合模型中权重最大的高斯分布波峰对应的灰度值作为统计单元的背景灰度值,也可以取权重最大的高斯分布中波峰及其邻域对应灰度值均值作为统计单元的背景灰度值。
显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。