一种视频流体运动矢量计算方法

文档序号:6373068阅读:273来源:国知局
专利名称:一种视频流体运动矢量计算方法
技术领域
本发明涉及一种视频流体运动矢量的计算方法,利用流体运动的连续性进行优化,使得流体运动矢量的计算结果更符合流体的运动规律。
背景技术
流体运动矢量计算是增强现实技术研究的基础,目前,在流体的物理仿真中还没有完全将动态纹理区域的识别与基于物理属性的仿真结合起来,并对流体进行实时重建;同时,目前缺乏与视频媒体真实感一致的流体建模和仿真,并且较少考虑自然景物与其它景物及环境的交互作用,这些问题产生的根本原因是流体运动矢量的计算问题没有得到解决。因此,如何从流体视频中计算出较为准确的运动矢量是研究重建与交互的关键所在,它的研究具有重要的现实意义和实用价值。 流体运动是一种典型的非刚体运动,流体运动图像的计算与分析属于动态纹理分析的技术。在物体运动的图像分析中,纹理分为弱纹理和强纹理。弱纹理具有自相似性,其图像变化具有亮度不变性;而视频中的流体部分属于强纹理,其特点是亮度保持性,即其内部的运动产生了形状的改变和遮挡,但是图像中强度的成分是不变的。由于流体具有透明性,因此可以通过计算粒子的运动矢量来间接获得流体本身的运动特征。目前,对于流体的运动矢量的计算通常采用粒子图像测速方法实现,即通过跟踪每一个可见粒子来实现运动矢量的获取。虽然这种计算方法可以克服传统方法中的不足。但研究中存在的主要问题是由于流体粒子的运动引起的遮挡及再现,会影响运动矢量计算的准确性。在传统的变分的研究方法及粒子图像测速方法中,假设运动矢量在局部空间上是光滑的,但是这样带来了运动边界的处理及遮蔽的问题。后来人们在研究中提出了一种基于时空多分辨率的流体速度及加速度场的计算方法,该方法利用时空多分辨率直方图对流体速度及加速度的方向进行统计分析,最后得到流体的速度及加速度场,但是如果将该方法应用于多相流体运动的场景中,特别是在视频的两帧间摄像机的旋转及平移矢量非常小的情况下,势必会影响计算的结果。对于多相流场景的直方图统计分析中,很难将得到的速度及加速度与多相流区域的运动对应起来。人们在研究中分析了现有流体运动矢量计算的模型和方法,在目标函数中加入非局部项,并给出了启发式的方法,推导出新的目标函数,并采用邻域的中值滤波方法研究了运动矢量计算的方法,利用该方法对稀疏的粒子运动进行计算,可以得到较准确的结果,对于流体中大量粒子的情形,利用该方法进行研究,所得结果的精度受到影响。在最近的研究中,研究人员利用光度和几何进行了块匹配,从而对流体的运动进行估计,采用了改进的H-S方法,研究中使用优化技术及多分辨率技术对流体运动矢量进行计算。该方法对于较为稀疏的流体粒子,能够取得很满意的实验结果,对于大量具有复杂物理规律的粒子运动,计算的精度会受到影响
发明内容
本发明的目的是针对现有技术的不足而提供的一种有效的视频流体运动矢量计算方法,利用该方法能够得到具有保持外观一致性和运动连续性的视频流体运动矢量。实现本发明目的的具体技术方案是一种视频流体运动矢量的计算方法,该方法包括(I)流体运动矢量的初始化为了求得初始的运动矢量,首先对于运动前后两幅图像分别统计其直方图,每幅图像按照一定的邻域进行统计。在视频的前后两帧中,摄像机的旋转及平移的矢量较小,采用aXa的邻域进行,将统计的结果记为中心像素邻域的统计结果。把图像的强度分为不同的级别,按照不同级别统计出区域中像素的个数。若当前的图像中像素的灰度值为density,该像素所在的级别计算为
其中,_!表示取整。对于灰度图像,density表示O 255之间的一个整数值。认定直方图中像素较大数目的级别为统计直方图的主要成分。为了求取邻域强度的主要成分,对直方图的统计结果进行排序,同时将对应直方图统计的成分进行排序,利用区域的直方图主要成分进行匹配操作。假定在一个小区域范围内所有粒子具有相近的运动矢量,在此基础上,寻找一个运动矢量使得区域范围内所有粒子运动前后所对应的区域具有主要成分相似的特性。假设运动前后的两幅图像为Ik(k=l,2),中心像素Ik(i,j)在邻域内排序的统计直方图为HistogramIk(i, j),对应排序后的成分为HistogramxIk(i, j)。在aXa区域范围内找到一个矢量imlvetif,s)(-i/ <f< a-a <s<a),使得在运动前后,对应邻域内所有像素的直方图主要成分的欧氏距离最小。运动矢量初始化算法如下I)分别计算两幅图像Ik(k=l, 2)的像素点pixelk(i, j)的aXa邻域的统计直方图,记为 Histogramk(i,j);2)对每个像素点piXelk(i,j)的邻域直方图的统计结果,按照从大到小排序,直方图的成分序号也随之排序,得到排序后的统计直方图为HistogramIk(i,j)及排序的成分HistogramxIk(i, j);3)在aXa邻域内搜索一个矢量< f < a-a <s < a),使得对应邻域内所有像素的直方图主成分的欧氏距离d(i,j)最小,其中d(i,j)为
:二 ··(9) "(/·./’)= X ΣX(HistogramjfI1 (i +HistogramxI2(i^p-¥ fj + g^-s^h))2
F '-7 :.: I其中HistogramxIk (i, j, h)表示第k幅图像,像素点pixel (i, j)邻域直方图排序后的主要成分的第h个分量;得到当前像素Pixelk (i,j)的运动矢量/"//vt'c(/,j),初始化结束。(2)利用多分辨率法去除噪声为了去除初始化过程中产生的噪声,进行去噪的处理,采用多分辨率方法去除噪声,即可以将初始化的结果经过几次降低分辨率采样,再在较低分辨率的采样结果中,利用阈值法对统计结果进行处理,其具体步骤如下I)算法初始化。计数器m=l,设定采样窗口为WinSizeXWinSize ;
对于初始化的运动矢量进行第m次采样;2)统计WinSizeXWinSize区域中运动矢量的数目为numpixel,并采用阈值方法进行判断,如果满足(3)式,则认为该像素的运动矢量初始化结果计算是无效的,作为噪声去除,并得到初步的去噪结果;nump i xe Kthreho I dsmooth(3)3)判断是否得到了满意的去噪结果?如果是,则转步骤5),否则,进行下一步;4)m=m+l,重新设置采样窗口大小,并转步骤2);5)结束,得到去噪后运动矢量的结果。去除噪声是可选的步骤,只有在场景中存在大片静止的背景区,需要进行去噪时,才执行去除噪声步骤。 (3)运动矢量的平滑运动矢量平滑算法的步骤如下I)初始化对于每个象限的累加器Accumulatork(k=l. . . 4)初始化为O值;2)对于像素的邻域中各像素的运动矢量,按方向分别累计,记累计矢量为Vector4(I <k<4),并使 Accumulatork (I ^ k ^ 4)增值;3)选择计数最大的累加器Accumulatorm (I彡m彡4),并判断Accumulatorm的大小,如果满足(4)式,那么,当前的像素粒子的运动矢量置为零矢量;否则,其运动矢量^用
(5)式计算。Accumulatorm<threho Idsmooth(4)vec = vector,— / A ccmmdalor(5)
Km4)判断是否所有像素都处理完毕了。如果是,转步骤5);如果否,转步骤I)。5)结束,得到运动矢量平滑的结果。( 4 )基于流体运动连续性的优化计算采用流体运动的连续性方程进行优化计算,这样可以体现出流体的运动特征。流体的连续性运动方程为 ClIdA + f If ·nd!. = O(6)
Jy ' Jan J其中,5,/是图像I的强度对时间的导数,3Ω表示Ω的边界,η是ao的外部矢量。根据散度理论及数学推导,(6)式可以写成下面的方程形式It+uIx+vIy+Iux+Ivy=0(7)式中It表示图像强度对时间的导数,Ix及Iy分别表示图像强度在空间域上的导数,流体的运动矢量为(U,V),Ux和Vy分别表示运动矢量的偏导数,采用U和V的一阶向前差分进行计算。采用连续性方程(7)对运动矢量进行优化计算。基于流体运动连续性优化计算的步骤为I)初始化。对于图像的每个aXa区域,对满足(7)式的像素进行标记flag(i,j)=1 (I ^ i ^ nffidth, I ^ j ^ nHeight);2 )对于没进行标记的像素X,优化计算X像素粒子的运动矢量ζ^/Λ., Va,)中的Ux分量。对于任意一个像素X,如果其邻域中像素A和B已经被标记,利用式(8),可以重新计算出X的运动矢量 Λ.("Λ—,1\.)中的ux分量;IAt+uA (Ix-Ia) +va (Ib-Ia) +Ia (ux_ua) +Ia (vb-va) =0(8)3)对于没进行标记的像素X,优化X像素粒子的运动矢!中的Vx分量。对于任意一个像素X,如果其邻域中像素A和B已经被标记,利用运动连续性,重新计算出X的运动矢量 · Α、νΛ.)中Vx的分量;4)更新标记。如果像素X的Ux以及νχ都已经进行了优化,则对X进行标记;5)判断是否满足了终止条件?如果是,则进行下一步;否则,转步骤2);6)得到流体运动矢量的优化计算结果。 本发明具有简单、准确的特点,计算所得到的运动矢量既具有保持运动前后外观的一致性,也具有保持流体运动连续性的特点,即使在流体相邻两帧的运动很小的情况下,也能得到满意的计算结果,与现有方法相比,它具有更准确的特点;此外利用该算法对于流体的高度进行重建,能够取得满意的结果,这进一步说明本算法可以有效地应用于流体的三维重建的应用中,因此具有实用的特点,能够很好地解决流体的重建问题,可以进一步应用于虚拟场景建立的应用中,克服了基于视觉的流体重建的复杂性问题。


图I为本发明实施例“6482910”的第198帧运动矢量的初始化结果图;图2为本发明实施例“6482910”的第198帧运动矢量的平滑结果图;图3为本发明实施例“6482910”的第198帧运动矢量的优化结果图。
具体实施例方式实施例下面结合附图对于发明进一步说明。本实例采用DynTex动态纹理库中的“6482910”的第198帧和199帧进行流体运动矢量的计算。在PC机上Windows7操作系统下进行,其硬件配置是2. 66GHz Intel Core(TM) 2Duo CPU,4GB RAM。( I)运动矢量的初始化假定在一个小区域范围内所有粒子具有相近的运动矢量,在此基础上,寻找一个运动矢量使得区域范围内所有粒子运动前后所对应的区域具有主要成分相似的特性。运动前后的两幅图像为Ik(k=l,2),中心像素Ik(i,j)在邻域内排序的统计直方图为HistogramIk(i,j),对应排序后的成分为HistogramxIk(i,j)。由于视频中相继两中贞的摄像机位置参数变化较小,流体的运动矢量很小,因此在aXa区域范围内找到一个矢量initvec(f,s)(-a </< a-a <s<a),使得在运动前后,对应邻域内所有像素的直方图主要成分的欧氏距离最小。这里a取5,如果流体的运动速度较快,可以根据需要适当扩大运动矢量的搜索范围。首先利用下面的算法进行运动矢量的初始化。I)分别计算两幅图像Ik(k=l, 2)的像素点pixelk(i, j)的5X5邻域的统计直方图,记为 Histogramk(i,j);
2)对每个像素点piXelk(i,j)的邻域直方图的统计结果,按照从大到小排序,直方图的成分序号也随之排序,得到排序后的统计直方图为HistogramIk(i,j)及排序的成分HistogramxIk(i, j);3)在5 X 5邻域内搜索一个矢量
权利要求
1.一种视频流体运动矢量计算方法,其特征在于该方法包括以下步骤 (I)、运动矢量的初始化 分别计算运动前后两帧图像中每个像素所在区域的灰度直方图,利用直方图的主要成分匹配方法得到初始的运动矢量; ⑵、去噪处理 采用多分辨率法对初始化的结果进行去除噪声处理,该步骤为可选; ⑶、平滑处理 采用统计分析方法对局部区域的运动矢量进行平滑处理; ⑷、优化处理 用流体运动的连续性方程对运动矢量进一步计算,得到具有保持外观一致性和运动连续性的流体运动矢量; 其中所述直方图的主要成分匹配方法是对运动前后两帧图像分别进行区域直方图的统计,然后对两帧图像的每个邻域求取其统计后的主要成分,利用对应区域的主要成分匹配误差最小来完成对运动矢量的初始化,按照式(I)计算像素所在的直方图统计类别[density/1 Oj( I ) 其中,L I表不取整,对于灰度图像,density表不O 255之间的一个灰度值; 相邻两帧中像素pixelk(i,j)运动矢量的初始化按照如下步骤进行 a)分别计算视频相邻两巾贞Ik(k=l,2)中像素点pixelk(i, j)的aXa邻域的统计直方图,记为 Histogramk(i,j); b)对每个像素点piXelk(i,j)的邻域直方图的统计结果,按照从大到小进行排序,直方图的成分序号也随之排序,得到排序后的统计直方图为HistogramIk(i,j)及排序的成分HistogramxIk(i, j); c)在pixelk(i,j)的aX a邻域内搜索一个矢量SS “),使得对应邻域内所有像素的直方图主成分的欧氏距离d(i,j)最小,其中d(i,j)为 ,T .!T It- d(i'J) = Σ ΣΣ+ 爲/ + f,A) - Η ο§ιιιιιχΙ2 + 爨+ /,/ +續 + 亀 ,!;'I',' Il I1I I 其中HistogramxIk(i, j, h)表示第k幅图像,像素点pixel (i, j)邻域直方图排序后的主要成分的第h个分量;在视频中相邻帧的运动较小,因此区域的范围a取值较小; d)得到当前像素pixelk(i, j)的运动矢量; e)得到流体运动矢量初始化结果; 步骤(4)所述的优化计算的步骤包括 a)初始化 对于图像的每个aX a区域,对满足(3)式的像素进行标记flag (i, j) =1 (I彡i彡nffidth, I ^ j ^ nHeight); It+uIx+vIy+Iux+Ivy=0(3) 式中It表示图像强度对时间的导数,Ix及Iy分别表示图像强度在空间域上的导数,流体的运动矢量为(U,V) Vy分别表示运动矢量的偏导数,采用u和V的一阶向前差分进行计算山)对于没进行标记的像素X,如果其邻像素已经被标记,利用式(4),重新计算出X的运动矢量4.(ux, Vx )中的Ux分量; IAt+uA(Ix-IA) +va(Ib_Ia)+Ia(ux_ua)+Ia(vb_va)=0⑷ C)对于没进行标记的像素X,优化X像素粒子的运动矢量νγ)中的Vx分量,并重新计算出X的运动矢量e_v(ιιχ,VxY^ Vx的分量; d)更新标记 如果像素X的Ux以及vx都已经进行了计算,则对X进行标记; e)判断是否满足了终止条件?如果是,则进行下一步;否则,转步骤(b); f )得到流体运动矢量的计算结果 计算终止条件是被标记的像素数目达到像素总数目,如果满足,则终止计算过程。
全文摘要
本发明公开了一种有效的流体运动矢量计算方法,该方法旨在利用视频流的两帧图像进行流体运动矢量的计算,目的是获得流体连续性运动的二维矢量。该方法首先统计每个像素所在区域的直方图,利用区域直方图主要成分匹配方法完成对运动矢量的初始化;然后,对初步的计算结果,利用多分辨率采样方法对其进行去噪处理;再采用统计分析方法对局部模块的运动矢量进行平滑处理;最后,对运动矢量进一步优化,得到具有保持外观一致性和运动连续性的流体运动矢量。本发明可有效地应用于流体的三维重建的应用中,具有实用的特点,能够很好地解决流体的重建问题,可以进一步应用于虚拟场景建立的应用中,克服了基于视觉的流体重建的复杂性问题。
文档编号G06T5/40GK102831616SQ201210237110
公开日2012年12月19日 申请日期2012年7月10日 优先权日2012年7月10日
发明者全红艳, 吴茂茂 申请人:华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1