发明内容
本发明提供背景更新方法和装置,以提高背景图像的可靠性。
本发明的技术方案是这样实现的:
一种背景更新方法,包括:
接收视频序列图像,对于该帧图像中的每个像素点,计算该像素点的像素值与当前背景帧中该像素点的像素值的差值,并计算该像素点的像素值概率密度;
根据所述差值和概率密度更新当前背景帧。
所述计算该像素点的像素值概率密度为:
计算
其中,j为当前像素点在当前帧视频序列图像中的序号,k为当前接收图像在整个视频序列中的帧序号,Pk(j)为第k帧视频序列图像中第j个像素点的像素值的概率密度,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Ik-i(j)为第k-i帧视频序列图像中第j个像素点的像素值,N为预设正整数。
所述更新当前背景帧包括:
判断所述差值大于预设第一阈值和所述概率密度小于预设第二阈值是否同时成立,若是,不更新当前背景帧中该像素点的像素值,否则,根据视频序列图像中的该像素点和当前背景帧中的该像素点的像素值更新当前背景帧中的该像素点的像素值
所述更新当前背景帧中的该像素点的像素值为:
计算Bk(j)=(1-α)Bk-1(j)+αIk(j)
其中,j为当前像素点在当前帧视频序列图像中的序号,k为当前接收图像在整个视频序列中的帧序号,Bk-1(j)为当前背景帧中第j个像素点的像素值,Bk(j)为更新后的背景帧中第j个像素点的像素值,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,α为预设常数。
所述背景帧包括短期背景帧和长期背景帧,
所述计算该像素点的像素值与当前背景帧中该像素点的像素值的差值为:
计算该像素点的像素值与当前短期背景帧中该像素点的像素值的第一差值,计算该像素点的像素值与当前长期背景帧中该像素点的像素值的第二差值;
根据所述差值和概率密度更新当前背景帧为:根据所述第一差值、第二差值和概率密度更新当前背景帧。
所述更新当前背景帧包括:
判断所述第一差值大于预设第一阈值、所述第二差值大于预设第三阈值和所述概率密度小于预设第二阈值是否同时成立,若是,不更新当前短期和长期背景帧中该像素点的像素值,否则,根据视频序列图像中的该像素点和当前短期背景帧中的该像素点的像素值更新当前短期背景帧中的该像素点的像素值,根据视频序列图像中的该像素点和当前长期背景帧中的该像素点的像素值更新当前长期背景帧中的该像素点的像素值。
所述更新当前短期背景帧中的该像素点的像素值为:
计算Bsk(j)=(1-αs)Bs(k-1)(j)+αsIk(j);
所述更新当前长期背景帧中的该像素点的像素值为:
计算Blk(j)=(1-αl)Bl(k-1)(j)+αlIk(j);
其中,j为当前像素点在当前帧视频序列图像中的序号,k为当前接收图像在整个视频序列中的帧序号,Bs(k-1)(j)为当前短期背景帧中第j个像素点的像素值,Bsk(j)为更新后的短期背景帧中第j个像素点的像素值,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Blk-1(j)为当前长期背景帧中第j个像素点的像素值,Blk(j)为更新后的长期背景帧中第j个像素点的像素值,αs、αl为预设常数,且αs>αl。
预先设置一个背景更新持续帧长,
所述根据所述差值和概率密度更新当前背景帧之后进一步包括:发现当前视频序列图像帧的背景更新完成,判断当前视频序列图像的帧序号加1所得值是否小于所述背景更新持续帧长,若是,停止更新背景帧;否则,继续更新背景帧。
一种背景更新装置,包括:
差值计算模块,对每帧视频序列图像中的每个像素点,计算该像素点的像素值与当前背景帧中该像素点的像素值的差值,将该差值发送给背景更新模块;
概率密度计算模块,对每帧视频序列图像中的每个像素点,计算该像素点的像素值概率密度,将该概率密度发送给背景更新模块;
背景更新模块,根据接收到的差值和概率密度更新当前背景帧。
所述差值计算模块包括:短期差值计算模块和长期差值计算模块,其中:
短期差值计算模块,对每帧视频序列图像中的每个像素点,计算该像素点的像素值与当前短期背景帧中该像素点的像素值的第一差值,将该第一差值发送给背景更新模块;
长期差值更新模块,对每帧视频序列图像中的每个像素点,计算该像素点的像素值与当前长期背景帧中该像素点的像素值的第二差值,将该第二差值发送给背景更新模块。
背景更新模块包括:背景更新判决模块、短期背景更新模块和长期背景更新模块,其中:
背景更新判决模块,根据短期差值计算模块发来的第一差值、长期差值更新模块发来的第二差值和概率密度计算模块发来的概率密度,确定是否需要进行背景更新,若需要,分别向短期背景更新模块和长期背景更新模块发送更新指示;
短期背景更新模块,接收更新指示,根据当前帧视频序列图像更新当前短期背景帧;
长期背景更新模块,接收更新指示,根据当前帧视频序列图像更新当前长期背景帧。
与现有技术相比,本发明在更新背景帧时,不仅考虑视频序列图像与背景帧的像素值之差,且考虑了像素点的像素值概率密度,从而提高了背景帧的可靠性。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明实施例一提供的在视频监控系统的运动检测过程中更新背景图像的流程图,如图1所示,其具体步骤如下:
步骤101:预先设置背景更新持续帧长K。
K为正整数,通常100≤K≤500。
步骤102:将视频序列中的第一帧图像作为初始背景帧B1。
对于视频序列中的第k(k≥2)帧图像Ik中的每个像素点j(j为正整数且1≤j≤J,J为每帧图像中的像素总数),分别进行如下步骤:
步骤103:计算dk(j)=Ik(j)-Bk-1(j)。
其中,dk(j)为第k帧视频序列图像中第j个像素点与当前背景帧Bk-1中第j个像素点的像素值之差,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Bk-1(j)为当前背景帧中第j个像素点的像素值。
dk(j)的值越小,则表示第k帧视频序列图像中的像素点j越有可能为背景点;dk(j)的值越大,则表示第k帧视频序列图像中的像素点j越有可能为前景点。
步骤104:计算
其中,Pk(j)为第k帧视频序列图像中第j个像素点的像素值的概率密度,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Ik-i(j)为第k-i帧视频序列图像中第j个像素点的像素值,N为预设正整数,通常8≤N≤32,σ为预设常数,通常16≤σ≤128。
Pk(j)的值越大,说明第k帧视频序列图像中第j个像素点的像素值与前N-1帧视频序列图像中第j个像素点的像素值差异越小,即表示像素点j在连续N帧中的像素值变化越小,则像素点j越有可能为一个静止点;Pk(j)的值越小,则表示像素点j在连续N帧中的像素值变化越大,则像素点j越有可能为一个运动点。
步骤105:判断dk(j)>d0和Pk(j)<P0是否同时成立,若是,执行步骤107;否则,执行步骤106。
其中,d0、P0可根据经验设定。
步骤106:根据第k帧视频序列图像中的像素点j的像素值更新当前背景帧中的像素点j的像素值。
可通过以下公式更新当前背景帧Bk-1中的像素点j:
Bk(j)=(1-α)Bk-1(j)+αIk(j)
其中,Bk-1(j)为当前背景帧中第j个像素点的像素值,Bk(j)为更新后的背景帧中第j个像素点的像素值,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,α为预设常数,通常0.001≤α≤0.5。
步骤107:判断j<J是否成立,若是,执行步骤108;否则,执行步骤109。
步骤108:令j=j+1,返回步骤103。
步骤109:确定对第k帧视频序列图像的背景更新完成,判断k+1<K是否成立,若是,执行步骤110;否则,执行步骤111。
步骤110:令k=k+1,j=1,返回步骤103。
步骤111:确定整个背景更新过程结束,以背景帧Bk作为最终背景帧。
从上述实施例可以看出,对于视频序列图像中的每个像素点,只有在该像素点的像素值与背景帧中该像素点的像素值之差大于预设第一阈值,且该像素点的像素值在最近连续N帧中的概率密度小于预设第二阈值时,才确认背景帧中的该像素点不需要进行背景更新,否则,确认该像素点需要进行背景更新,即:只有一个像素点即为前景点又为运动点时,才不需要进行背景更新,这样就提高了背景更新的可靠性。
图2为本发明实施例二提供的在视频监控系统的运动检测过程中更新背景图像的流程图,如图2所示,其具体步骤如下:
步骤201:预先设置背景更新持续帧长K。
K为正整数,通常100≤K≤500。
步骤202:将视频序列中的第一帧图像作为初始短期背景帧BS1和初始长期背景帧BL1。
对视频序列中的第k(k≥N,N为预设正整数且N<K)帧图像中的每个像素点j(j为正整数且1≤j≤J,J为每帧图像中的像素总数),分别进行如下步骤:
步骤203:计算dsk(j)=Ik(j)-Bs(k-1)(j)和dlk(j)=Ik(j)-Blk-1(j)。
其中,dsk(j)为第k帧视频序列图像中第j个像素点与当前短期背景帧Bs(k-1)中第j个像素点的像素值之差,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Bs(k-1)(j)为当前短期背景帧中第j个像素点的像素值;dlk(j)为第k帧视频序列图像中第j个像素点与当前长期背景帧Blk-1中第j个像素点的像素值之差,Blk-1(j)为当前长期背景帧中第j个像素点的像素值。
dsk(j)和dlk(j)的值越小,则表示第k帧视频序列图像中的像素点j越有可能为背景点;dsk(j)和dlk(j)的值越大,则表示第k帧视频序列图像中的像素点j越有可能为前景点。
步骤204:计算
其中,Pk(j)为第k帧视频序列图像中第j个像素点的像素值的概率密度,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,Ik-i(j)为第k-i帧视频序列图像中第j个像素点的像素值,N为预设正整数,通常8≤N≤32,σ为预设常数,通常16≤σ≤128。
Pk(j)的值越大,说明第k帧视频序列图像中第j个像素点的像素值与前N-1帧视频序列图像中第j个像素点的像素值差异越小,即表示像素点j在连续N帧中的像素值变化越小,则像素点j越有可能为一个静止点;Pk(j)的值越小,则表示像素点j在连续N帧中的像素值变化越大,则像素点j越有可能为一个运动点。
步骤205:判断dsk(j)>dS0、dlk(j)>dL0和Pk(j)<P0是否同时成立,若是,执行步骤207;否则,执行步骤206。
其中,dS0、dL0、P0可根据经验设定。
步骤206:根据第k帧视频序列图像中的像素点j的像素值更新当前短期和长期背景帧中的像素点j的像素值。
可通过以下公式更新当前短期背景帧Bs(k-1)中的像素点j的像素值:
Bsk(j)=(1-αs)Bs(k-1)(j)+αsIk(j)
其中,Bs(k-1)(j)为当前短期背景帧中第j个像素点的像素值,Bsk(j)为更新后的短期背景帧中第j个像素点的像素值,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,αs为预设常数,通常0.1≤αs≤0.5。
可通过以下公式更新当前长期背景帧Blk-1中的像素点j的像素值:
Blk(j)=(1-αl)Blk-1(j)+αlIk(j)
其中,Blk-1(j)为当前长期背景帧中第j个像素点的像素值,Blk(j)为更新后的长期背景帧中第j个像素点的像素值,Ik(j)为第k帧视频序列图像中第j个像素点的像素值,αl为预设常数,通常0.001≤αl≤0.1。
可见,更新短期背景帧和长期背景帧的公式相同,区别只在于α的取值不同,更新短期背景帧时,α=αs,其取值较大,更新长期背景帧时,α=αl,其取值较小。
步骤207:判断j<J是否成立,若是,执行步骤208;否则,执行步骤209。
步骤208:令j=j+1,返回步骤203。
步骤209:确定对第k帧视频序列图像的背景更新完成,判断k+1<K是否成立,若是,执行步骤210;否则,执行步骤211。
步骤210:令k=k+1,j=1,返回步骤203。
步骤211:确定整个背景更新过程结束,以Bsk、Blk分别作为最终的短期、长期背景帧。
图3为本发明实施例提供的背景更新装置的组成图,如图3所示,其主要包括:视频序列接收模块31、差值计算模块32、概率密度计算模块33和背景更新模块34,其中:
视频序列接收模块31:接收视频序列,将视频序列中的第一帧图像发送给背景更新模块34,将视频序列中的第二帧及以后的图像发送给差值计算模块32、概率密度计算模块33和背景更新模块34。
差值计算模块32:接收视频序列接收模块31发来的视频序列图像帧,从背景更新模块34获取当前背景帧,对视频序列接收模块31发来的图像帧中的每个像素点,计算该像素点的像素值与当前背景帧中该像素点的像素值的差值,将该差值发送给背景更新模块34。
概率密度计算模块33:对视频序列接收模块31发来的图像帧中的每个像素点,计算该像素点的像素值概率密度,将该概率密度发送给背景更新模块34。
背景更新模块34:接收视频序列接收模块31发来的第一帧视频序列图像,将该帧图像作为初始背景帧;根据差值计算模块32发来的差值、概率密度计算模块33发来的概率密度以及视频序列接收模块31发来的当前帧视频序列图像更新当前背景帧。
在实际应用中,如图4所示,差值计算模块32可包括:短期差值计算模块321和长期差值计算模块322,其中:
短期差值计算模块321:接收视频序列接收模块31发来的视频序列图像帧,从背景更新模块34获取当前短期背景帧,对视频序列接收模块31发来的图像帧中的每个像素点,计算该像素点的像素值Ik(j)与当前短期背景帧中该像素点的像素值Bs(k-1)(j)的第一差值dsk(j),将该第一差值dsk(j)发送给背景更新模块34。
长期差值更新模块322:接收视频序列接收模块31发来的视频序列图像帧,从背景更新模块34获取当前长期背景帧,对视频序列接收模块31发来的图像帧中的每个像素点,计算该像素点的像素值Ik(j)与当前长期背景帧中该像素点的像素值Blk-1(j)的第二差值dlk(j),将该第二差值dlk(j)发送给背景更新模块34。
同时,背景更新模块34可包括:背景更新判决模块341、短期背景更新模块342和长期背景更新模块343,其中:
背景更新判决模块341:判断短期差值计算模块321发来的第一差值dsk(j)大于预设第一阈值dS0、长期差值更新模块322发来的第二差值dlk(j)大于预设第三阈值dL0和概率密度计算模块33发来的概率密度Pk(j)小于预设第二阈值P0是否同时成立,若不成立,分别向短期背景更新模块342和长期背景更新模块343发送更新指示。
短期背景更新模块342:接收视频序列接收模块31发来的第一帧视频序列图像,将该帧图像作为初始短期背景帧;接收视频序列接收模块31发来的第二帧及以后视频序列图像,接收背景更新判决模块341发来的更新指示,根据当前视频序列图像帧中的当前像素点的像素值Ik(j)和当前短期背景帧中的当前像素点的像素值Bs(k-1)(j)更新当前短期背景帧。
长期背景更新模块343:接收视频序列接收模块31发来的第一帧视频序列图像,将该帧图像作为初始长期背景帧;接收视频序列接收模块31发来的第二帧及以后视频序列图像,接收背景更新判决模块341发来的更新指示,根据当前视频序列图像帧中当前像素点的像素值Ik(j)和当前长期背景帧中当前像素点的像素值Blk-1(j)更新当前长期背景帧。
以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。