矫恒超
(中国石化青岛安全工程研究院,山东青岛 266104)
近年来,国内外大型火灾爆炸事故因初期应急处置不到位导致事故持续扩大的案例屡见不鲜,而传统的应急处置模拟演练存在缺少沉浸体验、周期长、成本高等问题,演练效果不佳,因此如何有效提升企业员工面对突发事件的应急响应能力、更好地让企业员工熟悉应急预案流程是亟待解决的问题。随着计算机技术的发展,多媒体、移动学习、网络学习、沉浸式学习等技术广泛用于教育培训领域[1],而发展潜力最大、交叉融合最快、培训效果最好的则是虚拟现实(Virtual Reality,VR)与增强现实(Augmented Reality,AR)[2-3]技术,相比于虚拟现实技术来说,增强现实技术是一种更好的沉浸式交互感知技术[4],因此,AR技术[5]在教培领域的交叉应用已成为未来主要的发展方向。
为解决传统应急演练存在的缺点,基于增强现实技术结合石油化工装置微缩模型及增强现实装备,提出一种全新的混合现实(Mixed Reality,MR)算法,并研发成套混合现实交互式系统装备,为体验式应急演练提供了新的技术和方法,有利于提高演练人员的应急救援技能与应急处置能力。整体技术路线如图1所示。
图1 应急处置交互式系统研发技术路线
为了解决高精度模型与动态效果无法在现有头显设备上使用的问题,提出了多边形减面算法,在保证模型质量的同时,通过迭代使用边坍塌操作,减少软件运行期间的多边形面数来降低模型复杂度,有效解决了软件加载速率的问题,实现逼真的、实时的、高鲁棒性的建模技术,坍塌边最优选择算法公式如下:
(1)
式中:Tu——包含顶点u的三角形的集合;
Tuv——同时包含顶点u、v的三角形集合。
对比简化前后的模型效果和面数,在不影响三维展示效果的条件下,简化后模型面数为原始模型面数的1/10。
图2展示了一个人物模型。在帧率低于会产生卡顿的阈值或者模型离当前视角较远的位置时,通过模型优化算法,对高精度模型进行减面,在保证视觉效果的前提下提升运行的流畅度。
图2 模型顶点、面片由多至少(从左到右)效果示意
1.2.1 模型自动局部显示算法
为实现三维模型局部显示,假定物体处于空间球形的球心,相机视点处于空间球形的球面。如图3所示,空间球形的球心为O,物体模型的中心为P,V为相机视点,同时是显示端的视角中心,显示平面与球形处于相切关系,R则是相机视点V与球心P的距离。观察者可从任意角度使用交互手段查看模型细节,旋转可更新相机视点在球面的空间位置,放缩可进行球形大小的变化,实现相机视点与模型之间距离的更新。
图3 操作视角的展示空间模型示意
1.2.2 局部分块模型选择算法
确定视角后,选择合适的分块数量执行分块模型组合并进行局部渲染显示。分块模型一般由整体模型中一个或者多个连续局部面组成,当分块的整体法向与视角方向相反时,能更清晰地对其进行观察。根据已知的视角选用选择算法,计算得到各个分块与视角的匹配度,再按照匹配度排序,选择前s个分块显示。s与输出设备的硬件环境有关,硬件配置越高分块显示数量s越多。
基于视角的渲染显示算法以分块所含的全部三角面片的平均法向量作为法向。即为单体分块的方向,记为Normal,计算公式为:
(2)
式中:s——分块所含有的面片总数;
S(i,j)——第i个面片的第j个顶点的法向。
1.2.3 局部自适应显示
先对同一模型进行多层级的简化,分成不同分辨率级别,再依据不同显示需求选择最优级别进行渲染。使用简化模型显示的条件为:①模型物体缩小达到提前设置的阈值或手动点击观察整体模型,设置阈值为自动触发,点击观察为手动触发。优化后,不再显示局部细节,仅对简化后的模型进行整体显示,达到降低计算、提高效率的目的;②在物体未缩放状态下,手动放弃局部显示,整体显示简化后的物体模型,能够在较近的角度下观察整体信息。
在进行模型旋转时,对匹配的分块进行重新计算,同时判断分块在内存中的加载状态。若处于加载状态,则忽略此次处理;若未处于加载状态,则内存将新的分块读取显示。
1.2.4 自适应局部实时渲染显示实验分析
实验模型的简化度为60%,应用简化模型进行整体显示。实验结果如表1所示,应用简化模型显示时的每秒传输帧数(Frames Per Second,FPS)值比局部高精显示的FPS值低,在相对更低配置硬件环境下也不会出现延迟、卡顿的现象。
表1 局部展示和全局展示策略下的FPS
1.3.1 基于位置服务的空间定位算法
使用基于三角关系的空间定位技术,假设三个基站坐标分别是已知坐标(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3),基站到设备的已知空间距离向量分别表示为D1、D2、D3,设备的坐标是待求解坐标(x0,y0,z0),根据公式(3)可以求解出被测物体坐标。
(3)
1.3.2 基于标记的空间映射注册算法
该方法需提前做好一个已知标记物,将标记物放置在真实空间中的一个位置,进行映射标记位置的确定;利用传感器对标记物做图像识别与姿态评估,标记其空间位置;将标记物的某个点作为映射的坐标原点,建立映射坐标系;通过映射变换将屏幕坐标系与映射坐标系建立映射关系,基于映射关系将显示的图像映射在经过标记物标定注册过的真实空间中,实现虚拟场景在真实空间的叠加交互,原理如图4所示。
图4 基于标记物的空间映射原理
1.3.3 基于平面基准的空间映射注册算法
与基于标记的空间映射注册算法的原理类似,不过它可以用任何具有足够特征点的物体作为平面基准,不需提前制作标记物,摆脱了标记物对AR的限制。该算法原理是提取真实空间中某个物体的特征点,并对特征点进行标记,当传感器扫描周围场景时,会对周围场景的特征点与标记物体的特征点对比,若特征点匹配数量大于设置的阈值,则对该物体进行标记,根据标记物体特征点坐标计算相机外参矩阵,最后通过空间映射矩阵完成虚拟投影在真实空间中的注册。
基于微缩模型的整个匹配流程采用的是基于特征提取[6]与K-MEANS结合的求近似最近邻匹配算法,对匹配到的关键点求单应性映射,根据Inlier点集打分来最终判定识别到的目标。
1.4.1 基于计算机视觉的特征提取算法
采用高斯滤波对输入图像进行预处理,通过选取图像梯度直方图中大于70%的部分的值计算参数K,如公式(4)所示。
(4)
式中参数K作为控制扩散级别的对比度因子,K值的大小与保留边缘信息量的多少成反比。
在尺度空间中,尺度级别按对数递增,共有O组(octaves)图像,每组有S层(sub-level),组中所有子层图像的分辨率都与原始图像相同。通过公式(5)建立与尺度参数对应关系。
(5)
式中:o——组用序号;
s——层序号;
σ0——尺度参数初始值;
N——尺度参数初始值为σ0的图像总层数。
通过公式(6)将时间单位换算为图像像素单位,其中tn称为进化时间。
(6)
根据一组进化时间,通过迭代的方式构建出非线性尺度空间,如公式(7)所示。
(7)
式中:L——图像亮度;
I——单位矩阵;
An——图像的传导矩阵。
通过Hessian矩阵寻找局部极大值,获得特征点检测,得到图像L在尺度σ上的Hessian矩阵行列式,如公式(8):
(8)
式中:Lxx——为图像L在x方向的二阶微分;
Lyy——为图像L在y方向的二阶微分;
Lxy——为图像L在xy方向的二阶微分。
围绕尺度为σi的特征点取一个24σi×24σi方形窗口,将其划分成4×4的16个子区域,尺度大小均为9σi×9σi,此时每两个相邻子区域会存在宽度为2σi的重叠部分,然后对16个子区域进行高斯加权,根据公式(9)得到子区域特征描述变量:
dv=(∑Lx,∑Ly,∑|Lx|,∑|Ly|)
(9)
式中:dv——长度为4的子区域描述向量;
∑L——各子区域高斯加权。
在此基础上,通过高斯窗口对各子区域的向量dv进行加权和归一化处理,得到64维的特征点描述向量。
1.4.2 基于数据挖掘的聚类算法
使用K-MEANS作为主要聚类分析的算法。目的是将n个特征划分到k个聚类中,使得每个特征都属于离他最近的均值所对应的聚类,从而实现对不同特征点的聚类目的。其算法要点包括:
a)k值的选择:k值对最终结果的影响至关重要,必须预先给定。给定合适的k值,需要先验知识,凭空估计很困难,或者可能导致效果很差。
b) 异常点的存在:在迭代的过程中,K-MEANS使用所有点的均值作为新的中心点,如果簇中存在异常点,将导致均值偏差比较严重。在当前情况下,使用K中值聚类算法。
c) 初值敏感:K-MEANS算法的计算结果对初始值较为敏感,因此,在该算法基础上,加入初始化多套初始节点的方式来构造多种分类规则,通过计算对比,选择最优的构造规则。
使用各特征点在特征空间中的相对距离来表示聚类属性,相对距离的计算使用欧氏距离的计算方法:在欧几里得空间中,点x=(x1,…,xn)和y=(y1,…,yn)之间的欧氏距离关系见公式(10),算法归集结果如图5所示。
图5 K-MEANS算法归集结果
(10)
1.4.3 基于随机抽样一致性的验证算法
使用基于随机抽样的一致性算法对归集结果进行验证。从含有“局外点”的一组数据中迭代计算正确的数学模型,其中“局外点”为不符合模型要求的数据。该算法是一种非唯一结果的估计算法,能够在一定概率下产生估算模型,迭代次数越多产生正确估算模型的概率越大。具体的实现步骤如下:①选择可以估算出模型的最小数据集;②使用数据集来估算当前迭代次数下的数据模型;③将所有数据带入当前迭代次数下的数据模型,计算得到“局内点”的数目(累加误差在设定阈值范围内);④比较当前迭代次数下的模型和之前估算所得最好模型的“局内点”的数量,记录最大“局内点”数目及对应的模型参数;⑤重复②~⑤,直到迭代结束或者当前模型已经足够准确(在一定误差阈值范围内,局内点数目大于一定数量)。
以上技术算法解决了在移动式独立计算单元环境下包括三维建模、局部渲染、空间定位以及图像识别的优化问题,为混合现实系统研发提供了技术支撑,实现在有限计算单元下的复杂场景应用。
通过对石化企业地形数据整理、实景数据处理,生成基础模型数据库,将模型数据导入Unity3D软件中进行模型的渲染优化,最终生成基于混合现实技术的罐区火灾应急处置系统。
其中沉浸式头显采用微软公司发布的HoloLens增强现实头戴显示器[7],该设备提供6颗摄像头[8]用于采集环境信息与使用者的交互信息,作为混合现实算法的数据输入采集及三维显示端。
基于情景构建内容开发应急处置交互流程,情景拟定企业储罐区904号原油储罐(50 000 m3,外浮顶罐),因浮舱腐蚀发生泄漏,罐顶遭遇雷击着火,密封圈多段燃烧造成浮盘沉没,形成全表面火灾,在扑救过程中,原油发生沸溢,导致数人死亡、20余人重伤、数千人疏散。
系统以微缩罐区模型为识别入口进入场景,内容包含事故演练、罐区信息介绍、解构剖析,可通过罐体交互查看外浮顶罐的基本内容,包含温度、压力、液位高度、介质、储量等信息,并观看罐体剖析视频了解罐体内部构造,如图6所示。
图6 信息展示与结构剖析AR效果示意
2.2.1 原油罐发生泄漏
基于手势的交互进行模拟,原油罐区904号外浮顶罐发生泄漏,罐顶遭雷击引发密封圈着火,引发光栅报警,雷击引发密封圈着火展示效果如图7所示。
图7 雷击引发密封圈着火AR效果示意
2.2.2 原油罐全面积火灾
指引演练人员开启904号罐泡沫发生器,以及902、903、904号罐喷淋设施,通过三维交互对罐区阀门进行停止罐区输送作业并进行工艺调整,提供3套消防车部署方案,演练人员需要根据风向、有效扑救、便于撤离的原则选择消防车站位部署,3种方案对应不同灾害后果。
2.2.3 原油沸溢
若演练人员选择非最优消防力量部署方案,则会导致904号罐火焰高度增加,着火的原油储罐发生沸溢,操作人员在撤离过程中,被沸溢喷溅的油火灼伤,动画展示医院救护车救护过程,罐体热辐射数值模拟展示效果如图8所示。
图8 热辐射模拟AR效果示意
2.2.4 形成流淌火
经过数值模拟计算得到罐区热辐射模型,并进行三维动态投影。由于904号罐着火的热辐射导致了周边罐密封的破坏,沸溢油火点燃了903号、902号油罐顶部外泄的油气层,引起燃爆着火,大量原油泄漏,在防火堤内形成流淌火。
石化行业属于高危行业,事故的发生会造成难以估计的后果,通过对石化行业相关员工进行安全培训,提升员工的应急处置能力,是降低事故危害的有效措施。基于混合现实技术的应急处置交互式系统,为典型重特大事故的应急处置提供了一种新型有效的培训及演练方式,从而解决了传统实战演练和二维文本图片培训的弊端。后续可继续优化提升,完成在半实物仿真装置模型甚至真实装置的混合现实应急处置演练、装置检维修、隐患排查等场景应用,进一步延伸混合现实技术的应用场景。