基于h.264压缩域运动对象实时分割方法

文档序号:7967419阅读:137来源:国知局
专利名称:基于h.264压缩域运动对象实时分割方法
技术领域
本发明涉及到一种基于H.264压缩域运动对象实时分割方法,特别是与现有方法截然不同的是,免除了对压缩视频的完全解码,仅通过熵解码提取出的运动矢量用作分割所需的运动特征,因此计算量大大减少。而且它不受限于静止背景的视频序列,对于具有运动背景或者静止背景的视频序列,都能快速可靠地分割出运动对象。由于该方法只使用了运动矢量场信息,因此它同样可适用于MPEG压缩域的运动对象分割。
背景技术
运动对象分割是诸如视频索引与检索、智能视频监控、视频编辑和人脸识别等众多基于内容的多媒体应用所必需的一个前提条件。自从MPEG-4提出基于内容的视频编码,有关运动对象分割的研究大多集中在象素域,而基于压缩域的运动对象分割直至近年来才开始引起关注。在压缩域内进行运动对象分割,与象素域内的分割方法相比更适合于实际应用的需要。尤其是实际应用中的大多数视频序列已经压缩为某种格式,直接在此压缩域内进行运动对象分割,可免除对压缩视频进行完全解码;而且,在压缩域内需要处理的数据量要比象素域少很多,因此计算量大大减少;加之,从压缩视频中仅通过熵解码提取出的运动矢量和DCT系数,可直接用作分割所需的运动特征和纹理特征。因此,从压缩域分割运动对象具有快速的特点,可解决传统的象素域分割方法难于满足实时性分割的要求,适合于众多的具有实时性要求的应用场合。
目前,压缩域运动对象分割方法虽已有人提出,但基本上是针对MPEG-2压缩域的,H.264是最新的视频编码标准,相比于MPEG-2编码效率提高了一倍,目前越来越多的应用都在转向采用H.264来取代MPEG-2,但至今在H.264压缩域内进行运动对象分割的研究甚少。与MPEG压缩域相比,H.264压缩域中I帧的DCT系数不能直接用作分割的纹理特征,因为它们是在块的空间预测残差上进行变换的,而不是在原始块上进行变换。因此,在H.264域进行运动对象分割可直接使用的特征只有运动矢量信息。目前在H.264域,只有Zeng等提出了一种基于块的MRF模型从稀疏运动矢量场中分割运动对象的方法,根据各个块运动矢量的幅值赋予各个块不同类型的标记,通过最大化MRF的后验概率标记出属于运动对象的块。但是,这种方法只适用于静态背景的视频序列,而且分割的准确度不高,计算量也较大。

发明内容
本发明的目的是提供一种基于H.264压缩域运动对象实时分割方法,分割所用的唯一信息是从H.264压缩视频中提取出的基于4×4块均匀采样的运动矢量场。本方法可免除对压缩视频的完全解码,使用熵解码提取出的运动矢量作为分割所需的运动特征,因此计算量大大减少,以达到实时运动对象分割的目的。
为达到上述的目的,本发明的构思是如图1所示,对输入的H.264压缩视频流提取运动矢量并归一化,然后进行迭代后向投影,获得可显著增强运动信息的累积运动矢量场。再进行全局运动补偿并且按照运动相似性将累积运动矢量场分割成多个区域,然后用一个匹配矩阵表示当前帧的分割区域和前一帧运动对象在当前帧投影的相关性,基于这个匹配矩阵将运动对象分割出来。
根据上述构思,本发明的技术方案是一种基于H.264压缩域的运动对象实时分割方法,其特征在于对连续多帧的运动矢量场归一化并进行迭代后向投影,获得累积运动矢量场;然后对累积运动矢量场进行全局运动补偿,同时采用快速的统计区域生长算法按照运动相似性将其分割成多个区域;利用上述两方面结果,采用本发明提出的基于匹配矩阵的运动对象分割方法分割出运动对象,其中可有效地在视频序列中进行对象的跟踪与更新、对象的合并与分裂、对象的出现与消失等多种情况;其步骤是a.运动矢量场归一化从H.264视频中提取出运动矢量场并进行时域和空域上的归一化;b.累积运动矢量场利用连续多帧的运动矢量场进行迭代后向投影来获得更加可靠的累积运动矢量场;c.全局运动补偿在累积运动矢量场上进行全局运动估计后进行补偿以获得各4×4块的残差;d.区域分割采用统计区域生长方法将累积运动矢量场分割成多个具有相似运动的区域;e.对象分割采用基于匹配矩阵的分割方法将运动对象分割出来。上述的运动矢量场归一化的步骤是(1)时域归一化将当前帧的运动矢量除以当前帧与参考帧的间隔帧数,即时域距离;(2)空域归一化将凡尺寸大于4×4的各个宏块运动矢量直接赋给该宏块所覆盖的所有4×4块。
上述的累积运动矢量场的步骤是(1)利用当前帧之后若干帧的运动矢量场,对相邻帧的运动矢量场进行后向投影,就是通过对各投影块的运动矢量乘以不同的比例因子后相加得到当前块的投影运动矢量,比例因子的选定方法为如果重叠区域的总面积大于当前块面积的一半,则各投影块的比例因子取为该投影块与当前块的相重叠的面积除以所有投影块与当前块重叠区域的总面积;否则,各投影块的比例因子取为其重叠面积与当前块面积之比;(2)从后帧开始迭代累积以获得当前帧的累积运动矢量场;上述的全局运动补偿的步骤是(1)采用6参数的仿射运动模型估算全局运动矢量场;①模型参数初始化设m=(m1,m2,m3,m4,m5,m6)是全局运动模型的参数矢量,模型参数m(0)初始化为m(0)=101NΣi=1Nmvxi011NΣj=1NmvyiT;]]>②剔除局外点首先计算当前帧中心坐标为(xi,yi)的第i个块在前一帧的估计中心坐标(xi′,yi′)xi′yi′=m1m2m4m5xiyi+m3m6,]]>则预测运动矢量((xi′-xi),(yi′-yi))和原始累积运动矢量(mvxi,mvyi)的偏差(exi,eyi)计算为exi=xi′-xi-mvxieyi=yi′-yi-mvyi,]]>使用这个式子计算出每个4×4块的预测偏差(exi,eyi),最后计算出偏差幅度平方和(exi2+eyi2)的直方图,然后剔除直方图中那些偏差幅度平方和大于25%的运动矢量;③模型参数更新使用前面步骤中保留下来的运动矢量和Newton-Raphson方法来更新模型参数,第l步迭代中新的模型参数矢量m(l)定义如下m(l)=m(l-1)-H-1b,这里Hessian矩阵H和梯度矢量b计算如下
H=Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1000000Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1]]>b=Σi∈RxiexiΣi∈RyiexiΣi∈RexiΣi∈RxieyiΣi∈RyieyiΣi∈ReyiT]]>这里R代表保留下来的块的集合;④结束条件重复步骤②和③最多5次,而且以下两个条件之一如果被满足的话也提前结束迭代(i)计算m(l)和在摄像机静止情况下的全局运动向量mstatic=[1 0 0 0 1 0]T的差值,如果对于每一个参数分量,这个差值小于0.01,就判断为属于摄像机静止的情况,结束迭代;(ii)计算m(l)和m(l-1)的差值,如果这个差值的参数分量m3和m6小于0.01,而且其它参数分量小于0.0001,则迭代结束;⑤将得到的全局运动模型参数矢量m代入xi′yi′=m1m2m4m5xiyi+m3m6,]]>求出前一帧的估计坐标(xi′,yi′),最后得到全局运动矢量场((xi′-xi),(yi′-yi));(2)计算全局运动矢量场与累积运动矢量场中各4×4块的残差。
上述的区域分割是采用统计区域生长算法将累积运动矢量场分划成多个具有相似运动的区域,步骤如下(1)计算四邻域内任意相邻块组的运动差异性度量;(2)所有相邻块组按照运动差异性度量从小到大的次序进行排序;(3)将运动差异性度量最小的相邻块组合并,以此处开始区域生长过程,在每次区域生长时,当前两个块组分别属于相邻的两个区域,则判断这两个区域是否合并的条件是这两个区域的平均运动矢量之差是否小于阈值条件Δ(R)=SR22Q|R|(min(SR,|R|)log(1+|R|)+2log6wh),]]>其中SR表示运动矢量的动态范围,|R|表示区域包含的运动矢量数目,wh表示运动矢量场的尺寸,参数Q用来控制运动矢量场的分割程度,就样就可以将运动矢量场适度地分割成若干具有相似运动的区域;(4)计算每个分割区域在全局运动补偿后的平均残差;(5)区分最可靠的背景区域和其它对象所在的区域,在面积大于整个运动矢量场10%的若干分割区域中选择平均残差最小的区域作为可靠的背景区域,标记为R0t,剩下的区域作为运动对象可能存在的区域Rit;最后对当前帧所分割的M个对象区域和1个背景区域分别标记,分割结果记为Lregt。
上述的对象分割是利用前一帧,t-1时刻,已经获得的运动对象分割结果,来判断当前帧,t时刻,各个分割区域是否与前一帧的某个对象匹配,以此构造匹配矩阵;基于匹配矩阵判断对象的跟踪与更新、对象的合并、对象的分裂、新对象的出现、旧对象的消失等情况,最终获得当前帧的若干运动对象;其步骤是(1)采用后向投影方法获得前一帧,t-1时刻,各个对象在当前帧t时刻的投影区域,先将前一帧的N个运动对象Ojt-1和1个背景对象O0t-1标记出来,然后采用后向投影的方法获得前一帧各个对象在当前帧的投影区域。就是利用当前帧累积运动矢量场中任意块的坐标和其对应的累积运动矢量的差求出这个块在前一帧中的匹配位置,然后将前一帧匹配位置上的块对象投影到当前帧并逐个标记出来,记为Lprogt;(2)构造矩阵CMt,它表示分割区域与对象投影相互重叠的面积;构造矩阵CMRt,它表示每个分割区域落在各个对象投影内的比例;构造矩阵CMCt,它表示每个对象投影落在各个分割区域内的比例;根据标记图象Lregt和Lprojt,构造3个M+1行N+1列的矩阵CMt,CMRt,CMCt。其中矩阵CMt中的任意元素CMt(i,j)取值为在Lregt中标记为i且在Lprojt标记为j的象素数目,即分割区域Lregt与对象投影Lprojt相互重叠的面积。而矩阵CMRt(i,j)定义为CMRt第i行的各个元素是分割区域Rit落在各个对象投影内的比例;矩阵CMCt(i,j)定义为CMCt第j列的各个元素是对象Ojt-1的投影落在各个分割区域内的比例;
(3)构造矩阵CMMt,它表示当前帧分割区域和对象投影之间的关联程度,矩阵CMMt记录了CMRt和CMCt所反映的Lregt和Lprojt之间的相关信息;CMMt首先置为M+1行、N+1列的零矩阵;接着对CMRt进行行扫描找到每一行最大值所在的位置,对CMMt中相应位置处的元素值加1;然后对CMCt进行列扫描找到每一列最大值所在的位置,对CMMt中相应位置处的元素值加2;生成的矩阵CMMt的纵坐标依次表示为当前帧背景区域R0t和运动区域Rit(i=1,2,L M),横坐标依次表示为前一帧背景对象O0t-1和运动对象Ojt-1(j=1,2,L,N),矩阵中各元素的可能取值为0,1,2,3;CMMt中任意不为0的元素CMMt(i,j)表明了分割区域Rit与对象Ojt-1存在一定的相关性,具体而言①CMMt(i,j)=1,表明分割区域Rit在很大程度上属于前一帧对象Ojt-1;②CMMt(i,j)=2,表明前一帧对象Ojt-1在很大程度上包含在分割区域Rit中;③CMMt(i,j)=3,同时包含了上述两种情况,表明Rit和Ojt-1具有极强的相关性;需要进一步比较,如果CMRt(i,j)>CMCt(i,j),则CMMt(i,j)=1;否则,CMMt(i,j)=2;最后生成的CMMt取值范围为0,1,2;(4)基于匹配矩阵CMMt对单个对象的跟踪与更新、新对象出现、对象的合并、对象的分裂以及对象的消失五类情况进行对象分割;通过矩阵CMMt可以有效地建立起分割区域与运动对象的关联关系,它能够以一种统一的方式有效地处理以下五种情况①单个对象跟踪与更新(1→1);②新对象出现(0→1);③对象的合并(m→1);④对象的分裂(1→m);⑤对象的消失(1→0)。
本发明与现有技术相比较,具有如下的突出特点和优点本发明提供的基于压缩域的实时运动对象分割方法,是基于H.264视频流,即与现有方法截然不同的是现有的压缩域视频对象分割方法主要适用于MPEG域,而本发明不仅适用于H.264压缩域,同样适用于MPEG压缩域。而且本发明不受限于静止背景的视频序列,不论对于具有运动背景或者静止背景的视频序列,都能快速可靠地分割出运动对象。此外本发明提出的匹配矩阵分割运动对象的方法,几乎能够对视频对象运动的各种情况作出实时分割,因此分割对象的效果很好,具有很强的适用性。


图1是本发明的基于匹配矩阵的H.264压缩域运动对象实时分割方法的程序框图。
图2是图1中运动矢量场归一化和累积运动矢量场的结构框图。
图3是图1中全局运动补偿和区域分割的结构框图。
图4是图1中对象分割的结构框图。
图5是对序列Coastguard中各个典型帧(第4、37、61、208帧)运动对象分割结果的图示。
图6是对序列Mobile中各个典型帧(第4、43、109、160帧)运动对象分割结果的图示。
具体实施例方式
本发明的一个实施例子结合附图详述如下本发明基于匹配矩阵的H.264压缩域运动对象实时分割方法是按图1所示程序框图,在CPU为3.0GHz、内存512M的PC测试平台上编程实现,图5和图6示出仿真测试结果。
参见图1,本发明基于匹配矩阵的H.264压缩域运动对象实时分割方法,通过运动矢量场的归一化和累积增强了显著的运动信息,然后对累积运动矢量场进行全局运动补偿,采用统计区域生长算法和基于匹配矩阵的运动对象分割方法来分割区域和运动对象,具有算法简单,对象分割速度快,分割效果好的特点。
其步骤是(1)运动矢量场归一化从H.264视频中提取出运动矢量场并进行时域和空域上归一化;(2)累积运动矢量场利用连续多帧的运动矢量场进行迭代后向投影来获得更加可靠的累积运动矢量场;(3)全局运动补偿在累积运动矢量场上进行全局运动估计后进行补偿以获得各4×4块的残差;(4)区域分割采用统计区域生长方法将累积运动矢量场分割成多个具有相似运动的区域;(5)对象分割采用基于匹配矩阵的分割算法将运动对象分割出来。
上述步骤(1)的运动矢量场归一化的过程如下①时域归一化将当前帧的运动矢量除以当前帧与参考帧的间隔帧数,即时域距离;②空域归一化将凡尺寸大于4×4的各个宏块运动矢量直接赋给该宏块所覆盖的所有4×4块。
上述步骤(2)的累积运动矢量场的过程如下①利用当前帧之后若干帧的运动矢量场,对相邻帧的运动矢量场进行后向投影;②从后帧开始迭代累积以获得当前帧的累积运动矢量场。
上述步骤(3)的全局运动补偿的过程如下①采用6参数的仿射运动模型估算全局运动矢量场;②计算出各4×4块经全局运动补偿后的残差。
上述步骤(4)的区域分割的过程如下①计算四邻域内任意相邻块组的运动差异性度量;②所有相邻块组按照运动差异性度量从小到大的次序进行排序;③将运动差异性度量最小的相邻块组合并,以此处开始区域生长过程;④计算每个分割区域在全局运动补偿后的平均残差;⑤区分最可靠的背景区域和其它对象所在的区域。
上述步骤(5)的对象分割的过程如下①采用后向投影方法获得前一帧各个对象在当前帧的投影区域;②构造矩阵CMt,它表示分割区域与投影对象相互重叠的面积;构造矩阵CMRt,它表示每个分割区域落在各个对象投影内的比例;构造矩阵CMCt,它表示每个对象投影落在各个分割区域内的比例;③构造矩阵CMMt,它表示当前帧分割区域和对象投影之间的关联程度;④基于匹配矩阵CMMt对单个对象跟踪与更新、新对象出现、对象的合并、对象的分裂以及对象的消失等五类情况进行对象分割。
下面对本实施例子结合总框图(图1)的五个步骤给予进一步详细说明a.运动矢量场归一化如图2所示,将当前帧的运动矢量除以当前帧与参考帧的间隔帧数得到时域上的归一化,将当前帧中尺寸大于4×4的块的运动矢量直接赋给该块所覆盖的所有4×4块获得空域上的归一化。
b.累积运动矢量场如图2所示,先利用当前帧之后若干帧的运动矢量场,对相邻帧的运动矢量场进行后向投影。就是通过对各投影块的运动矢量乘以不同的比例因子后相加得到当前块的投影运动矢量,比例因子的选定方法为如果重叠区域的总面积大于当前块面积的一半,则各投影块的比例因子取为该投影块与当前块的相重叠的面积除以所有投影块与当前块重叠区域的总面积;否则,各投影块的比例因子取为其重叠面积与当前块面积之比。然后从后帧开始迭代累积以获得当前帧的累积运动矢量场。
c.全局运动补偿如图3所示,采用6参数的仿射运动模型估算全局运动矢量场,利用它与累积运动矢量场之差就可获得累积运动矢量场任意块经全局运动补偿后的残差。其步骤是(1)采用6参数的仿射运动模型估算全局运动矢量场①模型参数初始化设m=(m1,m2,m3,m4,m5,m6)是全局运动模型的参数矢量,模型参数m(0)初始化为m(0)=101NΣi=1Nmvxi011NΣi=1NmvyiT;]]>②剔除局外点首先计算当前帧中心坐标为(xi,yi)的第i个块在前一帧的估计中心坐标(xi′,yi′)xi′yi′=m1m2m4m5xiyi+m3m6,]]>则预测运动矢量((xi′-xi),(yi′-yi))和原始累积运动矢量(mvxi,mvyi)的偏差(exi,eyi)计算为exi=xi′-xi-mvxieyi=yi′-yi-mvyi.]]>使用这个式子计算出每个4×4块的预测偏差(exi,eyi),最后计算出偏差幅度的平方和(exi2+eyi2)的直方图,然后剔除直方图中那些偏差幅度平方和大于25%的运动矢量。
③模型参数更新使用前面步骤中保留下来的运动矢量和Newton-Raphson方法来更新模型参数。第l步迭代中新的模型参数矢量m(l)定义如下m(l)=m(l-1)-H-1b,这里Hessian矩阵H和梯度矢量b计算如下H=Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1000000Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1]]>b=Σi∈RxiexiΣi∈RyiexiΣi∈RexiΣi∈RxieyiΣi∈RyieyiΣi∈ReyiT]]>这里R代表保留下来的块的集合。
④结束条件重复步骤②和③最多5次,而且以下两个条件之一如果被满足的话也提前结束迭代(i)计算m(l)和在摄像机静止情况下的全局运动向量mstatic=[1 0 0 0 1 0]T的差值,如果对于每一个参数分量,这个差值小于0.01,就判断为属于摄像机静止的情况,结束迭代;(ii)计算m(l)和m(l-1)的差值,如果这个差值的参数分量m3和m6小于0.01,而且其它参数分量小于0.0001,则迭代结束。
⑤将得到的全局运动模型参数矢量m代入xi′yi′=m1m2m4m5xiyi+m3m6,]]>求出前一帧的估计坐标(xi′,yi′),最后得到全局运动矢量场((xi′-xi),(yi′-yi))。
(2)计算全局运动矢量场与累积运动矢量场中各4×4块的残差。
d.区域分割
如图3所示,本发明采用统计区域生长算法实现对累积运动矢量场的区域分割。步骤详述如下(1)计算四邻域内任意相邻块组的运动差异性度量;(2)所有相邻块组按照运动差异性度量从小到大的次序进行排序;(3)将运动差异性度量最小的相邻块组合并,以此处开始区域生长过程。在每次区域生长时,当前两个块组分别属于相邻的两个区域,则判断这两个区域是否合并的条件是这两个区域的平均运动矢量之差是否小于阈值条件Δ(R)=SR22Q|R|(min(SR,|R|)log(1+|R|)+2log6wh),]]>其中SR表示运动矢量的动态范围,|R|表示区域包含的运动矢量数目,wh表示运动矢量场的尺寸,参数Q用来控制运动矢量场的分割程度,就样就可以将运动矢量场适度地分割成若干具有相似运动的区域;(4)计算每个分割区域在全局运动补偿后的平均残差;(5)区分最可靠的背景区域和其它对象所在的区域。在面积大于整个运动矢量场10%的若干分割区域中选择平均残差最小的区域作为可靠的背景区域,标记为R0t,剩下的区域作为运动对象可能存在的区域Rit。最后对当前帧所分割的M个对象区域和1个背景区域分别标记,分割结果记为Lregt。
e.对象分割如图4所示,先通过计算找到在相邻两帧中匹配的块,再将前一帧的运动对象投影至当前帧并标记为对象投影,然后利用当前帧对象投影和分割区域的相关性构造3个M+1行N+1列的矩阵CMt,CMRt,CMCt。再由矩阵CMRt和CMCt生成匹配矩阵CMMt,基于这个匹配矩阵对五类不同的运动对象情况作出分割。步骤详述如下(1)采用后向投影方法获得前一帧,t-1时刻,各个对象在当前帧t时刻的投影区域。先将前一帧的N个运动对象Ojt-1和1个背景对象O0t-1标记出来,然后采用后向投影的方法获得前一帧各个对象在当前帧的投影区域。就是利用当前帧累积运动矢量场中任意块的坐标和其对应的累积运动矢量的差求出这个块在前一帧中的匹配位置,然后将前一帧匹配位置上的块对象投影到当前帧并逐个标记出来,记为Lprojt。
(2)构造矩阵CMt,它表示分割区域与对象投影相互重叠的面积;构造矩阵CMRt,它表示每个分割区域落在各个对象投影内的比例;构造矩阵CMCt,它表示每个对象投影落在各个分割区域内的比例。根据标记图象Lregt和Lprojt,构造3个M+1行N+1列的矩阵CMt,CMRt,CMCt。其中矩阵CMt中的任意元素CMt(i,j)取值为在Lregt中标记为i且在Lprojt标记为j的象素数目,即分割区域Lregt与对象投影Lprojt相互重叠的面积。而矩阵CMRt(i,j)定义为CMRt第i行的各个元素是分割区域Rit落在各个对象投影内的比例;矩阵CMCt(i,j)定义为CMCt第j列的各个元素是对象Ojt-1的投影落在各个分割区域内的比例。
(3)构造矩阵CMMt,它表示当前帧分割区域和对象投影之间的关联程度。矩阵CMMt记录了CMRt和CMCt所反映的Lregt和Lprojt之间的相关信息。CMMt首先置为M+1行N+1列的零矩阵;接着对CMRt进行行扫描找到每一行最大值所在的位置,对CMMt中相应位置处的元素值加1;然后对CMCt进行列扫描找到每一列最大值所在的位置,对CMMt中相应位置处的元素值加2。生成的矩阵CMMt的纵坐标依次表示为当前帧背景区域R0t和运动区域Rit(i=1,2,L M),横坐标依次表示为前一帧背景对象O0t-1和运动对象Ojt-1(j=1,2,L,N),矩阵中各元素的可能取值为0,1,2,3。CMMt中任意不为0的元素CMMt(i,j)表明了分割区域Rit与对象Ojt-1存在一定的相关性,具体而言①CMMt(i,j)=1,表明分割区域Rit在很大程度上属于前一帧对象Ojt-1;②CMMt(i,j)=2,表明前一帧对象Ojt-1在很大程度上包含在分割区域Rit中;③CMMt(i,j)=3,同时包含了上述两种情况,表明Rit和Ojt-1具有极强的相关性。需要进一步比较,如果CMRt(i,j)>CMCt(i,j),则CMMt(i,j)=1;否则,CMMt(i,j)=2。最后生成的CMMt取值范围为0,1,2。
(4)基于匹配矩阵CMMt对单个对象的跟踪与更新、新对象出现、对象的合并、对象的分裂以及对象的消失五类情况进行对象分割。通过矩阵CMMt可以有效地建立起分割区域与运动对象的关联关系,它能够以一种统一的方式有效地处理以下五种情况①单个对象跟踪与更新(1→1)如果CMMt的第i行只有一个非零元素CMMt(i,j),而且第j列也只有这一个非零元素CMMt(i,j),那么表明分割区域Rit只与对象Ojt-1存在相关性,根据CMMt(i,j)的取值采取不同的策略如果CMMt(i,j)=2,采取更新策略,用当前帧的分割区域来表示更新后的对象,即Ojt=Rit.]]>如果CMMt(i,j)=1,一般采取对象跟踪的策略,即用前一帧对象的投影来表示当前帧的对象,即Ojt=Proj(Ojt-1);]]>另外,如果分割区域Rit同时还满足阈值条件|Rit|>Ts,]]>且ERit>αER0t,]]>其中Ts=64,α=1.5,|Rit|表示区域Rit所包含的运动矢量数目,ERit表示区域Rit的平均残差,ER0t表示背景的平均残差;则认为Rit是一个可靠的运动区域,可用来表示当前帧的运动对象,即Ojt=Rit.]]>②新对象出现(0→1)如果CMMt的第i行只有一个非零元素且位于第1列,值为1,表明该分割区域Rit在前一帧还是背景对象O0t-1,并不属于已有的任何运动对象。如果Rit同时满足上面①中的阈值条件,则可认为Rit是一个新出现的运动对象,记为OM+1t=Rit.]]>上述①和②两种情况下,CMMt某行的非零元素个数都为1。如果CMMt的第i行存在多个非零元素,则表明分割区域Rit可能与多个对象存在相关性。在这种情况下,只需要将前一帧的对象投影到当前帧作为当前帧的运动对象,实现对象的跟踪,即Ojt=Proj(Ojt-1).]]>③对象的合并(m→1)如果CMMt的第i行上除第1列外有2个以上的元素取值为2,表明前一帧中2个以上的对象在很大程度上包含在新的分割区域Rit中,则Rit表示了这些对象合并后的新对象,记为OM+1t=Rit.]]>在这种情况下,分割区域Rit往往包含了2个或2个以上具有十分相似的运动且在空间相互邻接的对象,则它们在当前帧作为一个新的合并对象而被分割出来。
④对象的分裂(1→m)如果CMMt的第j列中有2个以上的元素取值为1,则表明前一帧对象Ojt-1在当前帧分裂成多个分割区域Rs1t,Rs2tL,Rsmt。即使这些区域在空间上并不邻接,在当前帧的分割中,仍然认为这些分割区域属于同一个对象,直到这些具有相同对象标记却在空间相互不邻接的多个分割区域在随后的若干帧中表现出不同的运动,则对这些分割区域赋予不同的对象标记,记为Osit=Rsit,]]>以实现真正的对象分裂。
⑤对象的消失(1→0)如果CMMt的第j列只有1个非零元素且位于第1行,值为2,表明前一帧对象Ojt-1的投影落在当前帧的背景区域R0t,则认为Ojt-1在当前帧消失。
如上所述已经能够有效地处理在视频序列的运动对象分割过程中可能出现的5种情况。但当场景发生较大变化时,连续多帧都对所有对象采取了跟踪的策略,即都是上一帧各个对象的投影,表明当前帧各个分割区域与前一帧各个运动对象的相关性很弱,因此将按照情况②来判断是否有新对象出现,需要重新检测运动对象。
以下给出输入视频格式为352×288的CIF时的实例,采用JM8.6版本的H.264编码器对MPEG-4标准测试序列进行编码,作为测试用的H.264压缩视频。H.264编码器的配置如下Baseline Profile,IPPP,每30帧插入1个I帧,3个参考帧,运动估计的搜索范围为[-32,32],量化参数为30,编码帧数为300帧。在实验中,我们采取每隔3帧(运动矢量累积过程中使用的帧数)计算一次累积运动矢量场的做法,总共获得了100帧累积运动矢量场来测试本文提出的运动对象分割算法的性能。先从当前帧由累积运动矢量场得到区域分割结果,然后将前一帧运动对象投影到当前帧,基于这两个结果采用基于匹配矩阵的分割方法将运动对象分割出来。
采用典型的标准测试序列Coastguard和Mobile作为输入视频进行测试,实验结果分别如图5和图6所示。两图中第1列为当前帧的原始图象,第2列为当前帧由累积运动矢量场分割所得的区域分割结果,第3列为前一帧运动对象的在当前帧的投影区域,第4列为当前帧分割出的运动对象。平均每帧的处理时间为38ms,已能满足大多数实时应用25fps的要求。考虑到本文的分割方法其实是每隔3帧进行一次运动对象分割,对于给出的原始视频序列而言,完全可以在实时解码的同时就能分割出相应的运动对象,即使要求每帧都分割出相应的运动对象,只需要对其余帧进行对象投影,其计算量也很小,仍能实时分割出运动对象。
实验1序列Coastguard具有明显的全局运动,摄像机首先自右向左平移来跟踪画面中间的小船,然后自左向右运动来跟踪从画面左边出现的大船。图5第1行(序列第4帧)为摄像机自右向左跟踪小船的运动,图5第2行(序列第37帧)为新对象大船由左向右运动,图5第3行(序列第61帧)为两个运动对象大船和小船完全出现在摄像机的场景中,图5第4行(序列第208帧)为摄像机开始自左向右跟踪大船的运动。由图5第2列图象可以看出,对累积运动矢量场的分割大多能够比较准确地分割出两个运动对象所在的区域,而且符合全局运动模型的大部分背景区域也都包含在一个大的分割区域中,白色的区域表示了经运动补偿后最可靠的背景区域,因此本文采取的对运动矢量场的累积以及分割方法是有效的,能够利用运动矢量信息获得一个适度分割的结果。结合第3列所示的前一帧各个对象在当前帧的投影区域,利用基于匹配矩阵的运动对象分割方法,能够在整个序列中稳定可靠地分割出第4列所示的运动对象。
实验2序列Mobile具有更复杂的全局运动,除了摄像机的平移和俯仰运动外,在序列的前半段还有明显的缩放运动。图6第1行(序列第4帧)场景中总共包括3个运动对象,小火车推动球在轨道上运动,而挂历在间歇性地上下运动,因此运动对象分割的难度更大。由图6的分割结果可以看出,本发明提出的运动对象分割算法在运动对象停止运动的情况下,能够通过对象投影分割出该运动对象,如图6第2行(序列第43帧)的球以及图6第3行(序列第109帧)的挂历。此外,图6的实验结果也表明了本文的运动对象分割算法能够很好地处理运动对象的合并与分裂。在图6第3行(序列第109帧),由于小火车已经在无缝隙地推着球运动,因此两个在空间上紧密邻接且运动完全一致的运动对象被视作发生了对象合并;在图6第4行(序列第160帧)对有了间隙的两个对象,且运动程度不再相同时,两个对象被分割成了两个区域,真正实现两个对象的分裂。
权利要求
1.一种基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于对连续多帧的运动矢量场归一化并进行迭代后向投影,获得累积运动矢量场。然后对累积运动矢量场进行全局运动补偿,同时采用快速的统计区域生长算法按照运动相似性将其分割成多个区域。利用上述两方面结果,采用本发明提出的基于匹配矩阵的运动对象分割方法分割出运动对象,其中可有效地在视频序列中进行对象的跟踪与更新、对象的合并与分裂、对象的出现与消失等多种情况;其步骤如下a.运动矢量场归一化从H.264视频中提取出运动矢量场并进行时域和空域上的归一化;b.累积运动矢量场利用连续多帧的运动矢量场进行迭代后向投影来获得更加可靠的累积运动矢量场;c.全局运动补偿在累积运动矢量场上进行全局运动估计后进行补偿以获得各4×4块的残差;d.区域分割采用统计区域生长方法将累积运动矢量场分割成多个具有相似运动的区域;e.对象分割采用基于匹配矩阵的分割方法将运动对象分割出来。
2.根据权利要求1所述的基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于所述的运动矢量场归一化的步骤是(1)时域归一化将当前帧的运动矢量除以当前帧与参考帧的间隔帧数,即时域距离;(2)空域归一化将凡尺寸大于4×4的各个宏块运动矢量直接赋给该宏块所覆盖的所有4×4块。
3.根据权利要求1所述的基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于所述的累积运动矢量场的步骤是(1)利用当前帧之后若干帧的运动矢量场,对相邻帧的运动矢量场进行后向投影,就是通过对各投影块的运动矢量乘以不同的比例因子后相加得到当前块的投影运动矢量,比例因子的选定方法为如果重叠区域的总面积大于当前块面积的一半,则各投影块的比例因子取为该投影块与当前块的相重叠的面积除以所有投影块与当前块重叠区域的总面积;否则,各投影块的比例因子取为其重叠面积与当前块面积之比;(2)然后从后帧开始迭代累积以获得当前帧的累积运动矢量场。
4.根据权利要求1所述的基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于全局运动补偿,是先采用仿射运动模型估算全局运动矢量场,然后计算出各4×4块经全局运动补偿后的残差。步骤如下(1)采用6参数的仿射运动模型估算全局运动矢量场①模型参数初始化设m=(m1,m2,m3,m4,m5,m6)是全局运动模型的参数矢量,模型参数m(0)初始化为m(0)=101NΣi=1Nmvxi011NΣi=1NmvyiT;]]>②剔除局外点首先计算当前帧中心坐标为(xi,yi)的第i个块在前一帧的估计中心坐标(xi′,yi′)xi′yi′=m1m2m4m5xiyi+m3m6,]]>则预测运动矢量((xi′-xi),(yi′-yi))和原始累积运动矢量(mvxi,mvyi)的偏差(exi,eyi)计算为exi=xi′-xi-mvxieyi=yi′-yi-mvyi,]]>使用这个式子计算出每个4×4块的预测偏差(exi,eyi),最后计算出偏差幅度平方和(exi2+eyi2)的直方图,然后剔除直方图中那些偏差幅度平方和大于25%的运动矢量;③模型参数更新使用前面步骤中保留下来的运动矢量和Newton-Raphson方法来更新模型参数,第l步迭代中新的模型参数矢量m(l)定义如下m(l)=m(l-1)-H-1b,这里Hessian矩阵H和梯度矢量b计算如下H=Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1000000Σi∈Rxi2Σi∈RxiyiΣi∈Rxi000Σi∈RxiyiΣi∈Ryi2Σi∈Ryi000Σi∈RxiΣi∈RyiΣi∈R1]]>b=Σi∈RxiexiΣi∈RyiexiΣi∈RexiΣi∈RxieyiΣi∈RyieyiΣi∈ReyiT]]>这里R代表保留下来的块的集合;④结束条件重复步骤②和③最多5次,而且以下两个条件之一如果被满足的话也提前结束迭代(i)计算m(l)和在摄像机静止情况下的全局运动向量mstatic=[100010]T的差值,如果对于每一个参数分量,这个差值小于0.01,就判断为属于摄像机静止的情况,结束迭代;(ii)计算m(l)和m(l-1)的差值,如果这个差值的参数分量m3和m6小于0.01,而且其它参数分量小于0.0001,则迭代结束;⑤将得到的全局运动模型参数矢量m代入xi′yi′=m1m2m4m5xiyi+m3m6,]]>求出前一帧的估计坐标(xi′,yi′),最后得到全局运动矢量场((xi′-xi),(yi′-yi));(2)计算全局运动矢量场与累积运动矢量场中各4×4块的残差。
5.根据权利要求1所述的基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于所述的区域分割,是采用统计区域生长算法将累积运动矢量场分割成多个具有相似运动的区域。步骤如下(1)计算四邻域内任意相邻块组的运动差异性度量;(2)所有相邻块组按照运动差异性度量从小到大的次序进行排序;(3)将运动差异性度量最小的相邻块组合并,以此处开始区域生长过程,在每次区域生长时,当前两个块组分别属于相邻的两个区域,则判断这两个区域是否合并的条件是这两个区域的平均运动矢量之差是否小于阈值条件Δ(R)=SR22Q|R|(min(SR,|R|)log(1+|R|)+2log6wh),]]>其中SR表示运动矢量的动态范围,|R|表示区域包含的运动矢量数目,wh表示运动矢量场的尺寸,参数Q用来控制运动矢量场的分割程度,就样就可以将运动矢量场适度地分割成若干具有相似运动的区域;(4)计算每个分割区域在全局运动补偿后的平均残差;(5)区分最可靠的背景区域和其它对象所在的区域,在面积大于整个运动矢量场10%的若干分割区域中选择平均残差最小的区域作为可靠的背景区域,标记为R0t,剩下的区域作为运动对象可能存在的区域Rit;最后对当前帧所分割的M个对象区域和1个背景区域分别标记,分割结果记为Lregt。
6.根据权利要求1所述的基于匹配矩阵的H.264压缩域运动对象实时分割方法,其特征在于所述的对象分割,是利用前一帧,t-1时刻,已经获得的运动对象分割结果,来判断当前帧,t时刻,各个分割区域是否与前一帧的某个对象匹配,以此构造匹配矩阵;基于匹配矩阵判断对象的跟踪与更新、对象的合并、对象的分裂、新对象的出现、旧对象的消失等情况,最终获得当前帧的若干运动对象。步骤如下(1)采用后向投影方法获得前一帧,t-1时刻,各个对象在当前帧t时刻的投影区域,先将前一帧的N个运动对象Ojt-1和1个背景对象O0t-1标记出来,然后采用后向投影的方法获得前一帧各个对象在当前帧的投影区域。就是利用当前帧累积运动矢量场中任意块的坐标和其对应的累积运动矢量的差求出这个块在前一帧中的匹配位置,然后将前一帧匹配位置上的块对象投影到当前帧并逐个标记出来,记为Lprojt;(2)构造矩阵CMt,它表示分割区域与对象投影相互重叠的面积;构造矩阵CMRt,它表示每个分割区域落在各个对象投影内的比例;构造矩阵CMCt,它表示每个对象投影落在各个分割区域内的比例;根据标记图象Lregt和Lprojt,构造3个M+1行N+1列的矩阵CMt,CMRt,CMCt。其中矩阵CMt中的任意元素CMt(i,j)取值为在Lregt中标记为i且在Lprojt标记为j的象素数目,即分割区域Lregt与对象投影Lprojt相互重叠的面积。而矩阵CMRt(i,j)定义为CMRt第i行的各个元素是分割区域Rit落在各个对象投影内的比例;矩阵CMCt(i,j)定义为CMCt第j列的各个元素是对象Ojt-1的投影落在各个分割区域内的比例;(3)构造矩阵CMMt,它表示当前帧分割区域和对象投影之间的关联程度,矩阵CMMt记录了CMRt和CMCt所反映的Lregt和Lprojt之间的相关信息;CMMt首先置为M+1行、N+1列的零矩阵;接着对CMRt进行行扫描找到每一行最大值所在的位置,对CMMt中相应位置处的元素值加1;然后对CMCt进行列扫描找到每一列最大值所在的位置,对CMMt中相应位置处的元素值加2;生成的矩阵CMMt的纵坐标依次表示为当前帧背景区域R0t和运动区域Rit(i=1,2,L,M),横坐标依次表示为前一帧背景对象O0t-1和运动对象Ojt-1(j=1,2,L,N),矩阵中各元素的可能取值为0,1,2,3;CMMt中任意不为0的元素CMMt(i,j)表明了分割区域Rjt与对象Ojt-1存在一定的相关性,具体而言①CMMt(i,j)=1,表明分割区域Rjt在很大程度上属于前一帧对象Ojt-1;②CMMt(i,j)=2,表明前一帧对象Ojt-1在很大程度上包含在分割区域Rit中;③CMMt(i,j)=3,同时包含了上述两种情况,表明Rit和Ojt-1具有极强的相关性;需要进一步比较,如果CMRt(i,j)>CMCt(i,j),则CMMt(i,j)=1;否则,CMMt(i,j)=2;最后生成的CMMt取值范围为0,1,2;(4)基于匹配矩阵CMMt对单个对象的跟踪与更新、新对象出现、对象的合并、对象的分裂以及对象的消失五类情况进行对象分割;通过矩阵CMMt可以有效地建立起分割区域与运动对象的关联关系,它能够以一种统一的方式有效地处理以下五种情况①单个对象跟踪与更新(1→1);②新对象出现(0→1);③对象的合并(m→1);④对象的分裂(1→m);⑤对象的消失(1→0)。
全文摘要
本发明提出了一种基于匹配矩阵的H.264压缩域运动对象实时分割方法,分割所依赖的唯一信息是从H.264视频提取出的基于4×4块均匀采样的运动矢量场。首先对连续多帧的运动矢量场进行归一化并且迭代后向投影,获得累积运动矢量场以增强显著的运动信息。然后对累积运动矢量场进行全局运动补偿,同时采用快速的统计区域生长算法按照运动相似性将其分割成多个区域。利用上述两方面结果,提出基于匹配矩阵的运动对象分割方法,使之能有效的在视频序列中进行对象的跟踪与更新、对象的合并与分裂、新对象的出现以及对象消失等多种情况。对MPEG-4测试序列的实验结果表明,在一台CPU为3.0GHz,内存为512M的计算机上处理CIF格式的视频序列,平均每帧的处理时间为38ms,已能满足大多数实时应用25fps的要求,而且具有良好的分割质量。由于本发明提出的方法只使用了运动矢量场信息,因此它同样可适用于MPEG压缩域的运动对象分割。
文档编号H04N7/26GK1960491SQ20061011636
公开日2007年5月9日 申请日期2006年9月21日 优先权日2006年9月21日
发明者刘志, 张兆杨, 陆宇 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1