发明名称 具有时空连续性的真实感三维流体场景合成方法
摘要 本发明公开了一种具有时空连续性的真实感三维流体场景合成方法,该方法首先使用基于SFS的流体重建方法计算流体粒子的高度值,进而根据高度梯度对三维场景进行层次划分;然后在不同层中分别对流体波成分提取,并进行聚类,保证空间连续性;在对应层中对所得的类成分进行重排列及重定位,合成具有真实感的三维流体场景;对合成场景的过渡区域,采用对高度信息的平滑;建立高度与颜色的哈希映射表,对过渡区域粒子外观进行颜色重映射。对粒子的高度、颜色以及纹理坐标信息进行传递,从而得到了时序上连续的合成结果。本发明对于多种具有挑战性的流体场景合成以及不同规模的流体场景合成时,能够取得满意的合成结果。 
申请公布号 CN104050718A 申请公布日期 2014.09.17
申请号 CN201410315413.9 申请日期 2014.07.03
申请人 华东师范大学 发明人 全红艳;宋雅慧;俞铭琪
分类号 G06T17/00(2006.01)I 主分类号 G06T17/00(2006.01)I
代理机构 上海蓝迪专利事务所 31215 代理人 徐筱梅;张翔
主权项 一种具有时空连续性的真实感三维流体场景合成方法,其特征在于该方法包括以下具体步骤:a)使用SFS方法获取原场景的高度信息,根据增强的高度梯度将三维空间的流体场景分成上下两层;根据流体的高度信息,将运动较为剧烈和平缓的流体分开,具体包括:ⅰ)按照式(6)计算每个粒子p(x,y)点的高度h<sub>s</sub>的梯度:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>g</mi><mi>h</mi></msub><mo>=</mo><msqrt><msup><mrow><mo>(</mo><mfrac><msub><mrow><mo>&PartialD;</mo><mi>h</mi></mrow><mi>s</mi></msub><mrow><mo>&PartialD;</mo><mi>x</mi></mrow></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><msub><mrow><mo>&PartialD;</mo><mi>h</mi></mrow><mi>s</mi></msub><mrow><mo>&PartialD;</mo><mi>y</mi></mrow></mfrac><mo>)</mo></mrow><mn>2</mn></msup></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000532679420000011.GIF" wi="817" he="165" /></maths>其中g<sub>h</sub>表示粒子p的高度梯度,<img file="FDA0000532679420000012.GIF" wi="86" he="113" />表示p在x轴方向的高度差分,<img file="FDA0000532679420000013.GIF" wi="86" he="117" />表示p在y轴方向的高度差分;ⅱ)按照式(7)对每个粒子的高度梯度进行增强,使得运动剧烈的流体粒子与运动较为平缓的流体粒子能够便于区分;g<sub>h</sub>=g<sub>h</sub>k    (7)其中k为增强因子;ⅲ)遍历每个粒子,求所有粒子高度梯度最大值g<sub>m</sub>和最小值g<sub>n</sub>;ⅳ)根据式(8)、(9)确定上、下两层粒子的区间,并将粒子分层:[g<sub>n</sub>,g<sub>m</sub>‑s<sub>g</sub>(g<sub>m</sub>‑g<sub>n</sub>))    (8)[g<sub>m</sub>‑s<sub>g</sub>(g<sub>m</sub>‑g<sub>n</sub>),g<sub>m</sub>]    (9)其中s<sub>g</sub>为比例因子;b)在原视频帧的每层中进行波成分提取与聚类将流体表面每个独立的成分称为波成分;利用波的研究理论中3σ法则,提取出每层的波成分,并根据波成分之间的距离以及波成分的高度变化特征,对波成分进行聚类处理,具体包括:Ⅰ)波成分提取ⅰ)根据该层中高度信息,选取极高点作为波峰,获取波峰的坐标和高度信息;ⅱ)在图像设备坐标系中,水平向右为X轴,垂直向下为Y轴,垂直XOY平面向上方法为Z轴;高度采用归一化的结果;根据3σ法则,在XOY平面上,以波峰的投影作为中心,将其X或Y投影在式(1)所示区域的所有粒子,分离出来并将其作为一个波成分;(‑1.197h<sub>m</sub>,1.197h<sub>m</sub>)    (1)式中h<sub>m</sub>表示波峰的高度;ⅲ)重复步骤ⅰ)、ⅱ)将各层中波成分全部提取出来;Ⅱ)根据提取的波成分的信息对波成分聚类ⅰ)计算任意两个波的距离以及波峰的高度梯度;ⅱ)如果两个波的距离小于距离阈值T<sub>d</sub>,并且高度梯度差小于高度梯度阈值Tg,则将这两个波成分标记为同一个类别;c)利用类的标记结果,通过波成分的重定位处理,在三维空间中合成流体场景设流体场景在X轴和Y轴方向的放大规模分别为R<sub>x</sub>和R<sub>y</sub>,具体合成步骤如下:ⅰ)利用在原场景每层中类标记结果,以及原视频帧与合成场景中粒子坐标的对应关系,将合成场景划分成多个区域,每个区域对应一个类;ⅱ)对应合成场景中的任意一个区域R<sub>i</sub>的合成,先确定合成中心;如果R<sub>i</sub>是上、下、左、右边界之一,其合成中心计算为:<img file="FDA0000532679420000021.GIF" wi="851" he="308" />其中<img file="FDA0000532679420000022.GIF" wi="176" he="73" />为区域R<sub>i</sub>的合成中心,H为视频的垂直尺度,W为视频的水平尺度;如果R<sub>i</sub>不是边界区域,那么在R<sub>i</sub>中选取一个随机的位置作为其合成中心<img file="FDA0000532679420000023.GIF" wi="200" he="63" />如果R<sub>i</sub>所在的类为C<sub>i</sub>,利用原场景中对应的C<sub>i</sub>类及其周围波成分进行合成;利用对应C<sub>i</sub>类中所有波峰的位置均值作为它的类中心位置<img file="FDA0000532679420000024.GIF" wi="212" he="62" />那么如果原场景中粒子的坐标为<img file="FDA0000532679420000025.GIF" wi="183" he="73" />合成粒子的坐标为<img file="FDA0000532679420000026.GIF" wi="183" he="73" />那么:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>i</mi><mi>o</mi></msubsup><mo>=</mo><msubsup><mi>x</mi><mi>i</mi><mi>s</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>s</mi><mi>c</mi></msubsup><mo>+</mo><msubsup><mi>x</mi><mi>o</mi><mi>c</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000532679420000027.GIF" wi="853" he="74" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>y</mi><mi>i</mi><mi>o</mi></msubsup><mo>=</mo><msubsup><mi>y</mi><mi>i</mi><mi>s</mi></msubsup><mo>-</mo><msubsup><mi>y</mi><mi>s</mi><mi>c</mi></msubsup><mo>+</mo><msubsup><mi>y</mi><mi>o</mi><mi>c</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000532679420000028.GIF" wi="859" he="74" /></maths>ⅲ)重复步骤ⅱ),直到所有的区域都合成完毕;ⅳ)对过渡区域的几何进行平滑;先求取边界点的法相量,在法相量方向上对高度信息进行线性插值,在空域中产生连续的合成结果;v)根据高度与颜色之间的关系,建立输入帧的高度和颜色之间的哈希表;首先,求取原视频帧的高度最大值H<sub>x</sub>和最小值H<sub>m</sub>,如果粒子高度为H<sub>p</sub>,利用H<sub>p</sub>计算其对应的灰度值G<sub>p</sub>:<img file="FDA0000532679420000031.GIF" wi="957" he="155" />其中<img file="FDA0000532679420000032.GIF" wi="75" he="84" />表示向下取整;将G<sub>p</sub>作为哈希表的key值,并将该粒子的颜色作为哈希表的value值,从而得到高度与颜色之间的哈希表;然后,根据建立的哈希表以及插值平滑后的高度信息,对过度区域粒子的颜色进行重映射;如果高度值对应多个哈希表中多个映射结果,则取它们中的任意一个进行映射;ⅵ)对于后继帧处理时,传递流体视频的颜色、高度及纹理坐标信息,从而合成三维流体场景序列。
地址 200241 上海市闵行区东川路500号