基于图像的启发式三维火焰重建算法-沈亮.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于图像的启发式三维火焰重建算法-沈亮.pdf》由会员分享,可在线阅读,更多相关《基于图像的启发式三维火焰重建算法-沈亮.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 doi:10.3772/ j. issn.1002-0470.2017.02.003基于图像的启发式三维火焰重建算法沈亮 朱登明 周果 王兆其(中国科学院计算技术研究所前瞻研究实验室北京100190)( 中国科学院大学北京100049)摘要研究了火焰的重建,为改进现有稀疏视角输入下的层析成像算法的重建精度,提出了一种基于图像的启发式火焰重建方法。该重建方法通过迭代优化求解能量约束模型,实现对火焰三维温度场的重建。算法允许复杂的成像模型应用于重建过程中,使渲染过程更接近火焰真实成像过程,并对数据平滑性进行约束,以提高重建结果质量。算法在迭代过程中使用启发式规则引导温度场数据调整,使算法快速收敛
2、,并通过使用图形处理器加速重建过程。使用模拟数据和真实捕获数据进行实验,结果表明,与现有方法相比,提出的方法有效提高了重建结果的精度及平滑性,验证了提出方法的有效性。关键词火焰重建,启发式,火焰图像,温度场重建,黑体辐射0引言流体现象是自然界最普遍的一类现象,与人类的生活息息相关。流体特效在虚拟现实、影视动漫、游戏娱乐、计算机辅助教育及决策等领域发挥着举足轻重的作用,给观众及用户带来了精彩的视觉冲击,并提供了良好的沉浸感。其中,火焰现象由于其运动变化快速、内部反应复杂、数据采集危险等特征,使火焰现象建模成为计算机图形学领域的一个研究热点和难点。传统的火焰建模方法主要分为三类:第一类是基于粒子系
3、统的方法1,2,此类方法是游戏及早期电影中的常用方法。第二类是基于纹理映射的方法,Inakage3将层流火焰纹理映射到类似火焰的隐式基元上,再用体跟踪进行火焰效果绘制。这两类方法虽然模拟速度较快,但不能满足观众日益增长的对火焰视觉效果的高要求。第三类方法是基于物理的方法4,该类方法根据火焰物理本质进行建模,得到其物理数据,并由基于物理的渲染器进行绘制,能得到较为真实的视觉效果,但是此类方法计算复杂度高,需要较长的模拟时间。近年来,数据采集设备高速发展,基于捕获数据的建模方法也被应用于火焰5-8、气体9、水表面10、混合液体11等现象的重建。重建数据可用于绘制、研发数据驱动的建模方法以及与基于物
4、理的建模方法结合使用7,12来改进模拟效果等方面。此外,通过捕获数据对流体进行精细建模,可以深化对流体现象本质的理解。在基于实例数据的火焰建模领域,多数方法采用温度传感器13,14、激光探测器15或者特殊的光学仪器系统16-20进行数据采集。但是此类方法的重建结果无法渲染出清晰逼真的火焰图像。最近几年,基于图像的火焰建模方法5-7,21,22被应用于重建火焰的颜色场数据。 Hasi-noff等5,21把火焰看作一个三维的半透明密度场,提出将三维密度场分解为火焰薄片,将火焰的重建转化为稀疏视角输入下的计算层析成像问题,并通过重建每一层薄片完成对三维火焰的重建,但是此方法需要输入视角严格处于同一水
5、平面上,并使用221高技术通讯2017年第27卷第2期:122 130 863计划(2015AA016401)和国家自然科学基金(61173067, 61379085, 61532002)资助项目。男,1987年生,博士生;研究方向:计算机图形学,计算机视觉;联系人,E-mail: shenliang ict. ac. cn(收稿日期:2016-12-16)万方数据平行投影对成像模型做进一步简化。 Ihrke等6,22通过建立线性方程组来重建三维数据场,避免了输入视角共面的限制,但是没有对数据的连续性进行约束,并只能使用简单的线性成像模型,因而导致重建结果在非输入视角下的成像质量不理想。 Wu
6、等23提出了基于图像对火焰温度场进行快速重建的算法,但是此算法仍受限于输入视角共面的约束。本文提出了一种基于图像的启发式火焰重建方法,通过优化求解能量约束模型,使重建过程中可以使用发射、散射、吸收等复杂的成像模型,并对重建结果的平滑性进行约束,对火焰的三维温度场进行重建。1成像模型在基于图像的火焰重建中,成像模型是算法研究的基础。图1显示了火焰的成像模型图。给定一张火焰图像,图像的颜色强度由两部分构成,一部分为光线穿过火焰区域时,积分得到的颜色强度值,另一部分是背景的辐射强度值。于是有下面公式:I = L0D(t)(t)J(t)dt + Ibg(L) (1)其中t表示火焰单元到成像平面的距离,
7、 D(t)表示火焰数据场, J表示每个火焰单元对颜色强度的贡献值, L定义了从成像屏幕到背景的距离, Ibg表示背景的辐射强度, 表示当前火焰单元的透明度。图1火焰成像模型已有的算法,对成像模型进行了简化,忽略了成像过程中发生的散射等复杂现象,建立线性系统进行重建,这种简化必然会引入计算误差。针对上述问题,本文使用辐射传输方程及黑体辐射定律作为基于火焰温度数据的成像模型。1.1辐射传输辐射传输方程24将光线在介质中传播过程描述为下式:( )L(x,) = - t(x)L(x,)+ s(x)sL(x,i)p(,i)di+ a(x)Le(x,) (2)其中L表示光谱强度, Le表示发射光谱强度,
8、a表示吸收系数, s表示散射系数, t = a + s表示消散系数, p(,i)表示相函数,用于指代散射光在某一位置的球面分布情况。为了简化计算,本文在成像过程中使用均匀相函数。火焰的成像模型可以描述为25E(se) = sesb (s,se)L(s)ds + (sb,se)E(sb)(3)(s1,s2) = exp( - s2s1 t(s)ds) (4)其中sb表示背景位置, L(s)表示在位置s处的辐射强度, E(s)表示在位置s处的累计得到颜色强度。1.2黑体辐射定律在热动平衡系统中,黑体辐射定律表明,对于给定的波长分布,黑体所发出的电磁光谱辐射强度只与黑体的温度直接相关。大部分火焰满足
9、热动平衡,也就是说大部分火焰的发射光谱由火焰烟尘粒子的温度决定,因此本文使用温度场数据进行火焰的渲染成像,并使用普朗克公式计算其辐射光谱强度:L(,T) = 2hc251hcekT - 1(5)其中T表示温度, k表示玻尔兹曼常数, h为普朗克常数, c表示光速。在得到各波长的强度后,火焰颜色即可转化到红绿蓝(RGB)空间4。由温度转换到RGB颜色的计算复杂,无法建立温度与颜色的线性关系,因此无法通过使用建立线性系统的方法6对温度场数据进行求解。2能量约束的优化模型图像的强度可以看成由感光芯片捕获到的能量321沈亮等:基于图像的启发式三维火焰重建算法万方数据信息,因此本文通过逆向热力学辐射过程
10、,使用火焰图像来重建火焰的温度场信息,基于火焰的温度场数据,提出能量约束的优化模型如下:E(T) = p Esrc,p - Erec,p(T) 2 + S(T)(6)其中Esrc,p表示拍摄到的图像在像素点p所包含到的能量信息, Erec,p(T)表示由当前重建的温度场T得到的火焰图片在像素点p所包含的能量信息,S(T)控制平滑性, 表示权重。式(6)等号右边的第一部分表示捕获图像及重建图像间的误差,第二部分表示控制平滑性的能量。因此,基于图像的火焰重建问题就可以形式化表示为找到这样一个温度场T来最小化E(T)。本文中, S(T)被表示为S(T) = 2Esrc,p - 2Erec,p(T)
11、2 (7) 2E(x,y) = 2E(x,y)x2 +2E(x,y)y2 (8)其中, 2表示拉普拉斯算子, E(x,y)表示像素(x,y)的强度。3启发式层析成像算法3.1算法流程相对于蓝色和红色,人眼对绿色的光强的感知能力更强。此外,基于现有的火焰渲染算法,在一定温度范围内,绿色强度会随着火焰温度的升高而变大。基于上述原因,本文使用图像中绿色强度来表示图像中所包含的火焰能量信息E(x,y)。启发式层析成像使用迭代的方法对该问题进行求解,在每一次迭代过程中,用上一次迭代计算得到的温度场作为输入,然后应用启发式规则对温度场进行调整,进而使用调整后的温度场渲染成像得到重建能量。每次迭代后,当新生
12、成的温度场使E(T)减小时,则接受此温度场作为下一次迭代的输入,否则,则放弃此温度场数据。同时,应用随机函数,以一定概率接受当前调整后使E(T)增大的温度场数据,从而减少算法求得局部最优解的情况11。当完成N次迭代后,终止算法。本文实验中,取N = 100。启发式层析成像算法的具体步骤如下:成像算法1:用较小温度场T0初始化所需重建温度场数据T2:使用T0渲染成像得到重建能量Erec(T0)3:利用能量约束优化模型求解E(T0)4:FOR k 1 TO N DO5: 调用自适应温度调整算法计算Tk6: 渲染成像得到能量值Erec(Tk)7: p = E(Tk-1) / E(Tk)8: IF E
13、(Tk) E(Tk-1) OR random() p THEN9: / 保存当前调整 /10: T = Tk11: ELSE12: / 回滚至之前的温度场数据 /13: Tk = T为了清晰地描述后续算法,本文将做如下定义:关键点:重建区域中的体素。每个关键点包含一个温度信息,重建算法的目标即重建出所有关键点的温度值。采样点:用于渲染及调整周围关键点温度值的点。一般情况下,一个采样点周围有8个关键点,如图2所示。采样点的温度值由其周围8个关键点的温度值的体插值得到。图2关键点及采样点3.2自适应温度调整算法Gregson等11在解决混合液体重建问题时,采用随机漫步算法对重建模型进行优化求解,由
14、于缺少规则指引,因此该方法收敛速度慢,计算时间长。为了解决此问题,本文提出了自适应的温度调整算法,从而利用启发式规则,引导火焰温度场数据的变421高技术通讯 2017年2月第27卷第2期万方数据化,来加快收敛及重建速度。通过使用基于物理的火焰渲染算法,可以得到重建火焰图像Erec,然后可以计算出重建图像Erec与拍摄图像Esrc间的残差值,这些残差值被应用于温度场的调整。基于光线投射算法,如图3所示,一条光线穿过重建区域,产生多个采样点,每个采样点会被用来调整其周围8个关键点的温度值,调整公式如下:Aj,s = (eE(x,y) + lS(x,y)e(s,se) -dD(j,s)(9)Tj,k
15、+1 = Tj,k + sG(s)Aj,s (10)其中Aj,s由采样点s引起的关键点j的调整值, S(x,y)和E(x,y)分别表示捕获图像及重建图像在像素点(x,y)处的拉普拉斯算子的残差值及颜色强度的残差值, se表示人眼位置, (s1,s2)是一个用于平衡不同区域调整值的关于透明度(s1,s2)的函数, D(j,s)表示从关键点j到采样点s的距离,Tj,k表示关键点j在第k次迭代时的温度值, G(s)表示一个均值为1的高斯随机数, e、l、和d分别表示各部分的权重值,实验中分别取e = 0.002,l = 0.01, = 0.5,d = 80。图3火焰渲染与重建模型调整值的构成主要考虑
16、以下几个方面:(1)颜色约束重建的目标是使重建的火焰图像与拍摄图像间的颜色误差尽量小,因此在调整值中加入了E(x,y) = Esrc(x,y) - Erec(x,y)进行约束。(2)平滑性作为一个稀疏视角的层析成像问题,需要加入约束项来控制重建结果的平滑性,在调整值中加入S(x,y) = 2Esrc(x,y) - 2Erec(x,y),其中 2Esrc(x,y)和 2Erec(x,y)分别表示捕获图像及重建图像在坐标(x,y)处的拉普拉斯算子。(3)视角-透明度模型基于数据采集及光线抛射算法,不同位置的关键点会有不同的调整频率。图4用一种夸张的方式显示了不同位置的采样点会有不同的采样密度。图中
17、两个方框Kn和Kf,分别表示两个关键点的作用域,即每个方框中的采样点分别用于调整对应关键点的温度值。显然离镜头较近的关键点会受到更多的采样点的影响。此外,本文在采集火焰数据时,将摄像机按半环形进行摆放,如图5所示,因此离摄像机较远的位置不会对最后的成像做较大的贡献,因此没有必要做较大的调整。图4视角-透明度模型图5摄像机拍摄场景综合上述考虑,需要在调整值加入此部分内容。鉴于透明度(s1,s2)可以指示摄像机与采样点之间的距离,将视角-透明度函数定义为先增后减函数:(s,se) = 1 - (s,se) - a)2 (10)即对称轴为(s,se) = a (0 a 1)的二次函数,实验中取a =
18、 0.6。(4)距离约束521沈亮等:基于图像的启发式三维火焰重建算法万方数据距离采样点越近的关键点的数据对采样点的数据贡献越大,因此使用关键点j与采样点s间的欧式距离D(j,s)对调整值的大小进行约束。3.3可视壳由于当火焰的某些区域低于某一温度值时,火焰所辐射出的能量无法释放出可见光,因此摄像机就无法捕获到该区域火焰释放的能量,基于给定的火焰图像,无法重建非火焰区域的温度数据。为了减少所需重建的关键点的个数,本文使用可视壳26对重建区域进行约束,只针对可视壳内部的关键点进行重建。可视壳外部的关键点被赋予一个相对小的温度值,因此不会影响重建火焰图像的视觉效果。3.4图形处理器加速在算法实现过
19、程中,使用统一计算设备架构(compute unified device architecture,CUDA)对渲染成像及温度场自适应调整过程进行图形处理器(graphics processing unit,GPU)加速。如图3所示,重建算法的渲染成像及温度场调整过程都基于光线投射算法。渲染成像过程中,各光线的计算过程完全独立。而温度场的调整过程中,除了少数光线会同时向同一关键点写入调整数据外,其他计算也是高度并行的,而同时写入同一显存的问题,可以通过CUDA提供的原子操作功能来提升其计算速度。基于GPU的渲染成像及温度场调整过程如下:基于GPU的渲染成像及温度场调整1: / 渲染成像 /2:
20、 totalrays像素总个数3: FOR ray totalrays IN PARALLEL DO4: FOR光线上每一个采样点DO5: 通过访问纹理显存计算采样点辐射强度6: 对当前光线上所有采样点的强度进行累加7: / 温度场调整 /8: FOR每条火焰像素对应的光线IN PARALLEL DO9: FOR光线上每一个采样点DO10: 计算该采样点对周围8个关键点调整值A11: 使用原子操作将调整值A累加到关键点数据4实验结果本文分别通过模拟数据及捕获数据对算法结果进行分析。使用基于物理的火焰建模方法27计算得到火焰温度场数据,用该温度场渲染得到若干个视角的火焰图像,然后使用这些火焰图像
21、作为输入,使用启发式层析火焰重建算法计算温度场数据,并将重建的温度场数据及重建图像与原始温度场及渲染图像进行对比计算误差。在计算图像误差时,首先在图像中选定一个能够包围住火焰的最小矩形框,然后计算矩形框内所有像素的平均误差值,即范围在0255之间。在计算三维温度场误差时,计算所有位于可视壳内的重建关键点的平均相对误差。同时为了检验输入视角的对算法重建结果的影响,在实验中分别以8、16、32个视角作为输入进行重建,重建结果如图6所示。图7、图8分别显示了不同数目的输入视角下重建结果的图像各通道误差及温度场误差。可以看出,随着输入视角数目的增图6不同数目输入视角的重建结果图7不同数目输入视角的重建
22、图像误差621高技术通讯 2017年2月第27卷第2期万方数据图8温度场数据平均相对误差加,图像误差及温度场误差都在减小,这种变化可以由如下原因进行解释:(1)随着输入视角数目的增加,会使算法生成更加严格的可视壳,使需要重建的关键点数目减少;(2)式(6)优化模型的目标函数是对所有像素的残差的累积,因此输入视角数目的增加会给重建过程引入更多的约束条件,从而提高重建精度。本文算法使用绿色通道来表示火焰能量进行重建,因此可能引起结果中其他颜色误差未随输入视角数目的增加而减少,如16个视角下的红色通道。此外,本文进行了附加实验来测试分析算法结果。首先渲染得到16个视角的火焰图像,然后用其中的15个视
23、角图像作为输入,重建火焰的温度场数据,再由重建温度场数据渲染成像得到第16个视角的火焰图像,如图9所示,将该图像与由原始温度场渲染得到的该视角(测试集)图像进行对比计算误差。同时对比输入视角的重建误差,如图10所示。可以看出,测试视角的误差要稍高于输入视角的重建误差。图9测试集重建结果图10测试集像素误差对于捕获数据,无法像模拟数据那样获取精确的温度场数据,因此使用重建图像与捕获图像对比进行误差分析,重建结果如图11所示。图11捕获数据重建结果图12显示了在相同数目(12个)输入视角下,模拟数据与捕获数据的图像重建误差。通过观察发现,捕获数据的重建误差要大于模拟数据的重建误差,导致这样结果的原
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 图像 启发式 三维 火焰 重建 算法 沈亮
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内