发明内容
本发明为了克服现有技术中存在的不足,所要解决的技术问题为:提供一种基于视频码流码书模型的动态目标检测方法;为了解决上述技术问题,本发明采用的技术方案为:基于视频码流码书模型的动态目标检测方法,包括如下步骤:
步骤一:根据编码块采用不同的编码方式分别建立帧内预测和帧间预测两种类型码字;定义码书:
定义块大小为4x4,定义u为视频训练序列中YUV颜色空间下不同时刻的块集合为:u={b1,b2,...,bN};
其中bt(t=1,...,N)是第t次采样得到的4x4块YUV残差向量;
该4x4块的码书为:l={c1,c2,...,cL},l中有L个码字,对于每个码字ci,i=1,2,...L,包含一个YUV残差向量vi=(Yi,Ui,Vi)和一个8元组auvi;
帧内预测块的码书8元组包括以下元素:
4x4块亮度残差经DCT变换后DC系数的最大值和最小值,色度残差最大值和最小值,所属宏块类型,帧内预测模式,码字出现的频率,码字出现的最大时间间隔;
帧间预测块的码书8元组包括以下元素:
4x4块亮度残差经DCT变换后DC系数的最大值和最小值,所属宏块类型,所属子宏块类型,水平运动矢量和垂直运动矢量,码字出现的频率,码字出现的最大时间间隔;
步骤二:对码书背景进行建模,得到背景模型;
将整幅图像每个4x4块的码书置空,码书集置为空集,将码字计数归零;
对训练帧编码码流进行读取,训练帧编码码流进行部分解码:
如果4x4块采用帧内预测编码则执行如下步骤:
(1)解码得到所属宏块类型,预测模式,量化参数,亮度残差DC系数值,色度残差值;
(2)计算帧内预测模式匹配度MIpm;
(3)计算帧内亮度残差DC系数范围度CYIDC;
(4)计算帧内色度残差范围度CUVI;
(5)对比该4x4块的所有帧内预测块码书中的所***字,判断是否匹配;判断为匹配则对原来的码字进行更新操作,不匹配则创建新的码字;
如果4x4块采用帧间预测编码则执行如下步骤:
(1)解码得到所属宏块类型,子宏块类型,运动矢量,量化参数,亮度残差DC系数值;
(2)计算帧间宏块划分匹配度MPpm;
(3)计算帧间亮度残差DC系数范围度CYPDC;
(4)计算帧间运动矢量范围度;
(5)对比该4x4块的所有帧间预测块码书中的所***字,判断是否匹配;判断为匹配则对原来的码字进行更新操作,不匹配则创建新的码字;
依照上述步骤对建模的视频帧进行训练,并根据每个码字的最大时间间隔inm和码字运动矢量进行修正,修正后对每个码字的最大时间间隔inm做出判断,判断每个码字是否属于背景模型的码书;
步骤三:检测动态目标;
通过分析视频码流编码块与背景码字是否匹配的方法进行检测,目标检测时通过视频当前帧中每个编码块和背景模型中对应的码书进行比较,采用当前帧与背景模型相减的方法,对比每一帧中每一个4x4块,若与背景模型码书中的码字匹配,则判断为背景点,并使用当前编码块对匹配码字进行更新;
如果不满足匹配条件则判断为前景目标。
本发明相对于现有技术具备的有益效果为:本发明充分利用编码块像素之间的相关性,且不需要对视频码流完全解码,避免了在解码过程中重构和环路滤波等耗时的操作;本发明通过对视频码流进行部分解码,得到编码块的所属宏块类型、预测模式、量化参数、运动矢量残差和像素残差等信息,根据上述信息建立码书模型;此方法利用编码块像素之间的相关性,可去除单一像素的伪目标,提高了检测精度;利用编码块残差信息进行码书建模和码字更新,避免因光照变化出现检测精度不高的问题;避免了解码过程中整数IDCT变换、反量化、重构和环路滤波等耗时的操作,可以实现动态目标的实时处理,提高了动态目标检测的效率。
具体实施方式
下面结合实施例详细说明本发明的技术方案:本发明充分利用视频码流中编码块的所属宏块类型、预测模式、量化参数、运动矢量残差和像素残差等信息,码书模型基于编码块上述信息建立,通过分析视频码流编码块与背景码字是否匹配进行动态目标检测。
假定视频码流采用视频压缩标准为H.264,像素块大小为4x4;在视频编码码流中,对于帧内预测编码块而言,4x4块所属宏块类型、帧内预测模式、量化参数和像素残差分布情况CBP都会写入码流,通过上述信息建立帧内预测码书;对于帧间编码前向预测编码块而言,4x4块所属宏块类型、子宏块类型、量化参数、运动矢量残差和像素残差分布情况CBP都会写入码流,通过上述信息建立帧间预测码书。
对于动态目标而言,4x4像素块如果是帧内预测块,其预测模式和像素残差会明显改变,通过判断和背景码书匹配程度,可较准确检测出目标;4x4像素块如果是帧间预测块,其运动矢量和像素残差会明显改变,通过判断和背景码书匹配程度,可较准确检测出目标。
本发明具体的检测步骤如下:
一、码书定义和初始化:
定义块大小为4x4,定义u为视频训练序列中YUV颜色空间下不同时刻的块集合u={b1,b2,...,bN},其中bt(t=1,...,N)是第t次采样得到的4x4块YUV残差向量。该4x4块的码书为1={c1,c2,...,cL},l中有L个码字,对于每个码字ci,i=1,2,...L,包含一个YUV残差向量Vi=(Yi,Ui,Vi)和一个8元组auvi。
4x4块采用帧内预测编码:
auvm=<Ymaxt,Ymint,UVmaxt,UVmint,MTYt,PMt,ft,int>,其中Ymaxt表示该4x4块亮度残差经DCT变换后DC系数的最大值,Ymint表示该4x4块亮度残差经DCT变换后DC系数的最小值,UVmaxt表示该4x4块色度残差最大值,UVmint表示该4x4块色度残差的最小值,MTYt表示该4x4块所属宏块类型,PMt表示该4x4块帧内预测模式,ft表示该码字出现的频率,int表示码字出现的最大时间间隔。
4x4块采用帧间预测编码:
auvm=<Ymaxt,Ymint,MTYt,STYt,MVxt,MVvt,ft,int>,其中Ymaxt表示该4x4块亮度残差经DCT变换后DC系数的最大值,Ymint表示该4x4块亮度残差经DCT变换后DC系数的最小值,MTYt表示该4x4块所属宏块类型,STYt表示该4x4块所属子宏块类型,MVxt表示该码字水平运动矢量,MVyt表示该码字垂直运动矢量,ft表示该码字出现的频率,int表示码字出现的最大时间间隔。
二、码书构建条件计算:
1.帧内预测块码书构建条件:
第一个条件是帧内预测模式匹配度MIpm计算:
当MTYt=0时,如果PMt=PMi,帧内预测模式匹配度MIpm=1,否则MIpm=0;
当0<MTYt<25时,MTY1t=MTYt%4,MTY1i=MTYi%4,如果MTY1t=MTY1i,帧内预测模式匹配度MIpm=1,否则MIpm=0。
当MTYt=25时,如果MTYt=MTYi,帧内预测模式匹配度MIpm=1,否则MIpm=0。
第二个条件是帧内亮度残差DC系数范围度CYIDC的计算:
帧内亮度残差DC系数范围度:
其中YL=αYi,YH=min(βYi,Yi/α),α<1,β>1。
其中,Yi是经过归一化的值(通过量化参数),α与β的取值与帧内预测模式匹配度MIpm相关:
当MIpm=1时,α取较小值,β取较大值;
当MIpm=0时,α取较大值,β取较小值;α、β初始值可通过场景不同进行调整。
第三个条件是帧内色度残差范围度的计算:
帧内色度残差范围度:
其中UVL=αUVi,UVH=min(βUVi,UVi/α),α<1,β>1。
其中,UVi是色度U和色度V经过归一化的绝对值的最大值(通过量化参数),α与β的取值与帧内预测模式匹配度MIpm相关:
当MIpm=1时,α取较小值,β取较大值;
当MIpm=0时,α取较大值,β取较小值;α、β初始值可通过场景不同进行调整。
2.帧间预测块码书构建条件:
第一个条件是帧间宏块划分匹配度MPpm计算:
当MTYt宏块类型为跳跃宏块(SKIP块),MTYi所属宏块类型为SKIP块或MTYi=0,帧间宏块划分匹配度MPpm=1;否则MPpm=0。
当MTYt=0时,MTYi所属宏块类型为SKIP块或MTYi=0,帧间宏块划分匹配度MPpm=1;MTYi=1或MTYi=2,帧间宏块划分匹配度MPpm=0.5;否则MPpm=0。
当MTYt=1或MTYt=2时,如果MTYt=MTYi,帧间宏块划分匹配度MPpm=1;MTYi=0时,帧间宏块划分匹配度MPpm=0.5;否则MPpm=0。
当MTYt=3时,如果MTYt=MTYi,帧间宏块划分匹配度MPpm=1;MTYi=3或MTYi=4时,帧间宏块划分匹配度MPpm=0.5;否则MPpm=0。
当MTYt=4时,如果MTYt=MTYi且STYt=STYi,帧间宏块划分匹配度MPPm=1;MTYi=4且STYt与MTYi不相等时,帧间宏块划分匹配度MPpm=0.5;否则MPpm=0。
第二个条件是帧间亮度残差DC系数范围度CYPDC的计算:
帧间亮度残差DC系数范围度:
其中YL=αYi,YH=min(βYi,Yi/α),α<1,β>1。
其中,Yi是经过归一化的值(通过量化参数),α与β的取值与帧间宏块划分匹配度MPpm相关:
当MPpm取值较大时,α取较小值,β取较大值;
当MPpm取值较小时,α取较大值,β取较小值;α、β初始值可通过场景不同进行调整。
第三个条件是帧间运动矢量范围度的计算:
帧间运动矢量范围度:
其中MVxH=γMVxi,γ<1。
其中γ取值与帧间宏块划分匹配度MPpm相关,MPpm取值较大时,γ取较大值;MPpm取值较小时,γ取较小值。γ初始值可通过场景不同进行调整。
三、码书背景建模过程:
首先将整幅图像每个4x4块的码书置空,Cbook置为空集,将码字计数L归零。
读取训练帧编码码流,训练帧编码码流进行部分解码:
如果4x4块采用帧内预测编码,解码得到所属宏块类型,预测模式,量化参数,亮度残差DC系数值,色度残差值;
如果4x4块采用帧间预测编码,解码得到所属宏块类型,子宏块类型,运动矢量,量化参数,亮度残差DC系数值。
对于新输入的4x4块bt,如果采用帧内预测编码,需要对比该4x4块的所有帧内预测块码书lI={ci|1<i<L}中的所***字判断是否匹配;
首先计算帧内预测模式匹配度,根据帧内预测模式匹配度调整亮度残差DC系数范围度的参数和色度残差范围度的参数,参数确定后计算亮度残差DC系数范围度和色度残差范围度,根据结果判断是否匹配;
如果不匹配,则不属于该码书中的任何码字,需要重新建立新的码字则L=L+1,并创建新码字CL;
如果码字匹配,则需要对原来的码字进行更新操作,假设新来的4x4块与码字cm匹配成功,那么将对cm做如下操作:
Ymaxm=max{Ymaxm,Yt},Yminm=min{Yminm,Yt},UVmaxm=max{UVmaxm,|UVt|},UVminm=min{UVminm,|UVt|},fm=fm+1,更新inm。
对于新输入的4x4块bt,如果采用帧间预测编码,需要对比该4x4块的所有帧间预测块码书lI={ci|1<i<L}中的所***字判断是否匹配;
首先计算帧间宏块划分匹配度,根据帧间宏块划分匹配度调整亮度残差DC系数范围度的参数α、β和帧间运动矢量范围度的参数γ,参数确定后计算亮度残差DC系数范围度和色度残差范围度,根据结果判断是否匹配;
如果不匹配,则不属于该码书中的任何码字,需要重新建立新的码字则L=L+1,并创建新码字CL;
如果码字匹配,则需要对原来的码字进行更新操作,假设新来的4x4块与码字cm匹配成功,那么将对cm做如下操作:
Ymaxm=max{Ymaxm,Yt},Yminm=min{Yminm,Yt},MVxm=max{MVxm,|MVxt|},MVym=min{MVym,|MVyt|},fm=fm+1,更新inm。
依照上述步骤对需要建模的视频帧进行训练,训练结束后还应该对生成的码字进行修正,原因是在训练过程中同样会出现动态目标,这样的训练机制会将前景动态目标作为背景码字保存。
根据每个码字的最大时间间隔inm和码字运动矢量进行修正,对每个码字的最大时间间隔inm做如下判断:
对于inm的值大于阀值的码字予以精简,阀值Tn通常设为N/2,其中N为训练总帧数,如果inm>N/2,则该码字不属于背景模型的码书;如果|MVmx|>MVTHx或|MVmy|>MVTHy,则该码字不属于背景模型的码书。
四、动态目标检测:
运动目标检测采用当前帧与背景码字是否匹配的方法进行检测:对比每一帧中每一个4x4块,若与背景模型码书中的码字匹配,则判断为背景点,并对相应的码字进行更新,若不匹配则判别为动态目标。
以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利保护范围。