基于虚拟现实的实时贴图在环境修复的研究

2018-08-08 06:28郭巍武平苏颖晋春杰徐武
电子设计工程 2018年14期
关键词:手势虚拟现实树木

郭巍,武平,苏颖,晋春杰,徐武

(云南民族大学电气信息工程学院,云南昆明650000)

传统生态环境修复成本高、成效不稳定,若修复方案出现差错,还会对环境造成更多破坏。通过虚拟现实(Virtual Reality,VR)技术,利用建模软件建立场景,加入地理信息系统(Geographic Information System,GIS)的信息,将生态格局作为城市生态环境修复的重要因素[1]。利用实时贴图模拟修复过程中生态环境的变化,随后进行可视化展示与多维交互[2],为生态环境修复提供辅助信息与技术支持。

1 环境修复总体框架设计

1.1 灰盒集成模式的运用

分析归纳现有的“白盒”、“黑盒”两种GIS和VR集成方式,并引出“灰盒”模式[3]。其特点与优势如表1所示。

表1 集成模式对比

“灰盒”模式兼顾程序运行时的外部状况与内部逻辑[4],最大化保证GIS系统与VR系统的功能完整性,可以为环境修复提供充分的技术支持。

1.2 可扩展标记语言传输数据

为使GIS系统与VR系统之间能够相互传递数据,可引入可扩展标记语言(Extensible Markup Language,XML)。XML技术可以对数据进行标记,对数据的类型进行定义和归类[5],处理后的数据具有结构化、独立于应用程序的特点,且XML的标准性和可扩展性也满足网络传输的需求。由此建立的互操作模型如图1所示。

图1 基于XML技术的GIS-VR互操作模型

客户端利用浏览器插件实现场景的显示;网络端用于响应请求及通讯;数据信息端使用数据库存储数据,并形成虚拟城市用以网络端进行调用。

1.3 建立城市模型与数据库

城市包含道路、绿化区等不同类型、形状各异的基本单元,为直观、清晰立体地展现,可使用3DMAX建模软件。可视化的图形建模与高效的渲染与纹理效果完全满足复杂城市模型的构建[6]。3DMAX输出文件格式为wrl,使用Inline节点内嵌至X3D文件中,再利用X3D-Edit编辑器完成场景的后续制作。3DMAX与X3D软件都支持XML编码,满足数据传输与共享的需求。

城市环境信息可通过采样分析获得,进行标准化归类[7],建立生态环境数据库。通过对环境信息的分析,为决策者提供辅助信息,使生态环境修复过程直观、高效[8]。

2 环境修复的实现

城市是一种复合生态体系,进行生态环境修复要综合考虑空间合理、环境匹配等要素[9],从而确定修复方案。针对具体的修复内容及技术实现,下文以生态环境修复中的绿化问题为切入点,从树木构建,类型选择与切换进行阐述。

2.1 修复方案的确立

不同城市、不同污染状况,需建立不同的三维虚拟现实场景,使用不同的修复方案。修复方案的编制、实施、效果反馈及优化改进是一个完整的过程,如图2所示。

图2 城市生态环境修复流程图

2.2 树木构建

绿化是环境修复过程的重要一环,在虚拟现实系统中,首先解决树木构建的问题。对于树木模型,若直接使用三维立体模型展示树木的枝干、叶片等信息,虽然信息表达全面,但过多的细节描述代码会占用大量内存空间,且调用缓慢,展现效果不理想。鉴于此,利用“降维”的思路,首先构建树木的二维平面模型,然后利用垂直交叉的方式模拟三维立体状态。这样既能保证立体性与真实性,又能优化内存的使用。相关代码如下(因部分代码过长,用“**”简略表示):

1)建立树木的正面二维平面模型:

2.3 实时贴图完成树木选择

针对不同的土壤、地形、场景,选择不同种类的树木。对每一种树木使用贴图的方式进行展示,可以提高系统的响应速率[10]。部分核心代码如下:

1)利用接触传感器节点建立选择按钮:

通过点击按钮,触发“TREE1”和“TREE2”事件,通过MFString节点解析出路径为“map/1.png”的贴图地址,之后将其赋值给ImageTexture节点“tu_1”的url属性[11]。从而实现鼠标选择不同树木,场景实时更新展示。本系统内置了5种不同类型的树木,展示效果如图3所示。

2.4 实际位置的确定

在虚拟场景中“种植”了树木,就需要在现实场景中确定其真实位置。在模型建立过程中,可以获得每个模型的虚拟坐标,即可推算出真实位置坐标。

(x0,y0,z0)为已知点位置,需确定位于(x1,y1,z1)坐标点树木的位置。λ为比例系数,以建筑物实际可测距离(长度l、宽度w、高度h)与系统建模的对应模型的参数(长度l0、宽度w0、高度h0)之比,即:

为方便建模,存在λ(l)≠λ(w)≠λ(h),则计算实际位置时,应使用相对应的比例系数,有:

2.5 修复结果的展示及应用

修复完成的虚拟现实场景可通过BS_Contact软件在客户端展示。修复人员也可直接进行操作。该系统在大学团结广场进行了试用,内容包括树木的选择,广场石砖的铺设,路灯的安置等,修复后的现实效果如图4所示。

图4 广场修复现实效果图

通过与图3虚拟修复场景对比可知,该系统利用虚拟现实技术“复原”现实场景,并在虚拟场景中完成绿化等操作,可以为环境修复提供有效直观的判断,能起到辅助作用。

3 场景交互功能的实现

城市生态环境修复的过程需要修复人员的实时参与,这就提出了对虚拟系统多维交互的要求。加入力触觉可以使修复人员更直接的了解修复过程,从而建立其与虚拟环境更为密切的联系[12]。

3.1 动态手势的识别

手势的运动形成运动轨迹,通过获取手势的位置坐标、运动速度以及手心偏转角度来“定位”轨迹。考虑到运动速度的获取较为繁琐,而直接使用位置坐标存在数据量大的缺陷,故使用更为简便的手心偏转角度作为特征值简化分析。手势运动的连续性使得角度变化的连续,θ可取值[0,2π]。假设从T时刻到T+t时刻手势发生了运动,利用手心位置坐标的位移变化(ΔX,ΔY),计算θ=arctan(ΔX/ΔY)。将整个周期均匀切割12份,即每π/6量化为一个方向[13],简化特征值个数的同时并不会误判手势运动的轨迹,有利于动态手势识别速度的提升。

3.2 基于Hu不变矩的手势动作实现

定位点的检测会因为观察点的放置(距离、角度和位置的不同)而得到不同的三维动作图像,这会严重影响手势动作轨迹识别过程的准确度。为克服此不足,可使用Hu不变矩作为三维动作图像的特征向量,实现动作识别及优化。

首先计算手势动作轨迹的不变矩,通过将三维动作图像投影到3个相互正交的投影平面上,得到分别位于XY、YZ和ZX面的3个二维图像[14]。这样的投影处理可以简化不变矩的计算过程,提高手势动作轨迹的识别效果。对3个二维图像分别计算,最终得到7个不变矩M1~M7,其具有平移不变性、旋转不变形和缩放不变性3大特点。由于直接计算得到的不变矩绝对数值太小不便于比较,可以取绝对值并通过对数处理进行放大[15]:

分析放大处理后的不变矩Mk与标准手势动作不变矩Hk的相似度Φ:

可知,当Φ≈1时,表示对所检测到的动作完成识别与匹配。

3.3 利用HMM算法优化手势识别

为了提高手势识别的性能,可将HMM的动态手势识别算法的功能模块嵌入在交互系统中,以提高手势识别的精确度。对于每一个手势的HMM模型,寻找输出概率最大的状态路径,即P(O|λ)最大[16]。手势识别时,当PA取值最大时没有识别为手势A,则需要将手势A数据再次输入至该HMM模型作,利用迭代训练优化手势A的模型参数[17]。

4 结束语

本文利用虚拟现实技术实现了对城市的仿真与环境的修复,利用实时贴图与节点内嵌调用的方式,提高了系统的运行效率,且图形展示鲜明,效果流畅。同时通过多维交互,强化听觉、视觉、触觉感知,提高了系统的可操作性,加深了沉浸感。该系统在学校绿化建设上的试用,效果良好,确实可以提供技术支持,辅助环境修复。未来对系统进行进一步优化及专业领域的研究与开发,还可以运用于城市规划、电力线路设计等方面,具有一定的推广价值。

猜你喜欢
手势虚拟现实树木
树木之最
挑战!神秘手势
V字手势的由来
辨认树木
树木也睡觉
胜利的手势
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感
树木之最