混合现实技术(Mixed Reality, MR)是由“智能硬件之父”多伦多大学教授Steve Mann提出. 混合现实技术是通过计算机图形技术和可视化技术产生现实环境中不存在的虚拟对象, 并通过传感技术将虚拟对象叠加到真实环境中, 真实的环境和虚拟的对象实时地显示在同一个画面或空间, 用户利用显示设备, 便可以看到一个感官效果真实的新环境. 混合现实技术涉及到多种最新的计算机应用技术, 包括计算机视觉、计算机图形学、多媒体、网络技术等, 来描述对我们空间的感觉, 它可以让我们跟这些物体或者照片进行互动, 跟虚拟世界进行互动[1–6]. 现实生活中很多时候需要测量距离、计算某些场地面积的体积, 但往往因障碍物无法直接测量距离, 也无法自动计算面积和空间体积. 混合现实技术这种黑科技的发展给我们带来炫酷体验的同时, 还能解决测量过程中目前无法解决的这些问题.
本文提出了一种基于混合现实技术的交互非接触式测量方法. 这种方法借助微软混合现实技术产品-HoloLens头盔的深度摄像头的空间扫描功能, 通过人的目测和手势能够确定场景中的测量点, 从而通过自行开发的测量软件自动计算目标点之间的距离、面积和体积等功能, 此外还能运用语音识别功能来进行交互. 通过本文研发的交互测量工具能使人们用自然的交互方式进行非接触式测量, 相对于传统的测量工具而言, 测量过程中人的双手被释放, 本文开发的交互测量工具所测量的范围更大更广, 不仅可以测量距离, 同时还可以自动计算面积和体积, 有些不方便尺子测量的地方, 通过本文的非接触式测量工具可以进行轻松测量.
2 HoloLens技术原理2015年1月22日微软正式发布自主研发的混合现实黑科技技术产品——HoloLens虚拟头盔设备, 如图1所示[7].
用户戴上HoloLens头盔眼镜可置身虚实相结合的场景中并可进行互动. HoloLens配置了若干传感器, 包括惯性测量装置、环境光感应器、四个环境感应摄像头和深度感应摄像头等, 如图2所示. 这些设施使得HoloLens能够实时描绘出当前的空间, 对环境进行实时扫描, 并以HoloLens深度摄像头中心点为空间坐标原点, 水平方向为X坐标轴, 垂直方向为Y坐标轴, 深度方向为Z坐标轴, 如图3所示, 此坐标系为基于笛卡尔坐标系的世界坐标系, 所观测的空间物体位置由此坐标系来定位, HoloLens头盔所观测的虚拟物体和真实物体都共用这一个坐标系, 它们的单位都是米, 这是一种1:1的现实世界尺度, 会极大地增加真实感. 因此HoloLens能识别环境中的平面、墙体以及桌面等较大的物体. HoloLens有跟踪以及空间锚点等功能. 微软还给HoloLens配置了自创的全息处理单元(HPU), 用来处理用于实时扫描和处理海量级数据[8].
现阶段, HoloLens只有三种交互方式: 凝视功能(Gaze)、手势功能(Gesture)和音功能(Voice). 凝视的功能是通过HoloLens上的传感器向用户的前方发射一条射线来实现, 用体验者的头部来控制方向, 发射出来的射线可以识别它所碰撞的物体, 检测到碰撞的物体之后, HoloLens上的光标会有一个小圆点, 告诉用户检测到对象, 可以进行相关的操作. HoloLens通过前面的四个摄像头识别用户的左右手的手势, HoloLens目前为用户提供了两种手势, 一种是确认手势(Air Tap), 一种是返回或取消手势(Boom). Air Tap手势是伸出手指, 将食指和大拇指伸出, 首先张开, 然后并拢, 这样HoloLens就能识别到你的确认指令. 图4为凝视和手势示例.
3 系统设计 3.1 项目开发流程
本文研发的交互测量系统由HoloLens硬件设备和自行开发的软件My Tool组成. 系统软件My Tool通过Unity游戏引擎和Visual Studio C#脚本开发, 软件开发完成后通过局域网导入安装HoloLens里面进行测试修改, 用户戴上HoloLens头盔就可以进行所在空间的数据测量了. 整个项目开发流程如图5所示.
3.2 软件设计
系统通过HoloLens的凝视和手势功能获取测量目标点, 当用户戴上HoloLens开始凝视外界物体时, 系统从HoloLens坐标系原点发出一束光束, 最后停留在被凝视物体的表面, 形成一个聚焦点, 当用户做出确认手势时, 该测量点被确认下来, 其坐标值被HoloLens自动记录在系统中, 称之为空间锚点. 本文开发的软件正是根据HoloLens中记录的这些空间锚点坐标值, 可以计算得出所测量的目标点之间的距离、面积和体积.
假定场景中被HoloLens记录的空间锚点的坐标值分别为
$\left\{ \begin{array}{l}{D_2} = \sqrt {{{({x_2} - {x_1})}^2} + {{({y_2} - {y_1})}^2} + {{({z_2} - {z_1})}^2}} {S_3} = \sqrt {p(p - a)(p - b)(p - c)} \end{array} \right.$ | (1) |
其中,
$\left\{ \begin{array}{l}a = \sqrt {{{({x_2} - {x_1})}^2} + {{({y_2} - {y_1})}^2} + {{({z_2} - {z_1})}^2}} b = \sqrt {{{({x_3} - {x_1})}^2} + {{({y_3} - {y_1})}^2} + {{({z_3} - {z_1})}^2}} c = \sqrt {{{({x_3} - {x_2})}^2} + {{({y_3} - {y_2})}^2} + {{({z_3} - {z_2})}^2}} \end{array} \right.$ | (2) |
$\begin{aligned}{V_4} = & \frac{1}{6}\left[ {({x_2} - {x_1})({y_3} - {y_1})({z_4} - {z_1}) + ({x_3} - {x_1})({y_4} - {y_1})({z_2} - {z_1}) + ({x_4} - {x_1})({y_2} - {y_1})({z_3} - {z_1})} \right] \\ &-({x_4} - {x_1})({y_3} - {y_1})({z_2} - {z_1}) - ({x_3} - {x_1})({y_2} - {y_1})({z_4} - {z_1}) - ({x_2} - {x_1})({y_4} - {y_1})({z_3} - {z_1})\end{aligned}$ | (3) |
当用户戴上头盔后开始凝视目标点, 一旦手势确认, 即确定空间锚点, 或称之为测量目标点, 根据目标点的位置和数量进行判断和计算, 并输出结果信息. 整个软件设计流程如图6所示.
4 测试与效果分析图7–10为戴上HoloLens头盔的测量实例, 图中, 小白圆点即为生成的空间锚点-目标测量点, 距离测量单位为米, 面积单位为m2, 体积单位为m3, 三角网格表示所观测物体表面网状结构, 这是用户戴上头盔观看周围空间环境测量时HoloLens自动生成的.
当用户头部不断移动时, 在被凝视物体表面的聚焦点会不断地随着目光凝视的方向而改变, 但一旦用户做出确认手势, 空间锚点就会生成, 固定不变, 测量目标点因此产生. 此时, 若用户再移动头部, 则同样的步骤为下一个测量目标点做准备. 无论用户测量时离被测物体近还是远, 一旦生成生成空间锚点, 用户与测量点的距离不会影响测量的精度. 表1为使用本文的测量方法与传统卷尺测量结果对比, 每个距离数据取前后两次测量数据的平均值进行测量分析, 结果表明本文的测量方法两次测量数据重复度为99.99%, 与传统卷尺所测结果误差范围在0.01 m之内. 表2为测量同一用户身高时, 使用者佩戴HoloLens头盔与被测用户的距离不同时测出的用户身高值, 可以看到误差范围在毫米级范围之内.
5 结论
传统的测量方法直接得到的数据只有长度, 如果想要其他数据, 只能是用户再通过数学函数计算出来. 而文本的交互测量工具利用HoloLens头盔眼镜作为载体, 秉承HoloLens头盔眼镜的交互功能, 用户不仅可以得到两点之间的距离, 还可以同时得出目标点之间的面积和体积数据, 测量误差范围小于0.01 m. HoloLens头盔眼镜不会因为测量距离中有物体的阻挡而产生误差. 如果在测量过程中, 有物体阻挡了测量, 传统的卷尺就需要移开障碍物体, 或者需要重新测量别的相同长度的被阻挡东西, 而当使用本文开发的交互测量工具时, 用户可以在被测物体之间不断移动调整, 一旦系统在被测物体表面生成空间锚点-测量目标确认小球点, 小球点的坐标值就会自动记录下来, 不会消失, 系统可根据事先被纪录的空间锚点坐标值来计算物体的测量值, 这样即使两个被测物体之间有障碍物, 甚至所测量的周围环境有所变动也不会影响测量值, 测量时人的双手被释放可用于处理其他事务, 不用绕过阻挡物体也无需接触物体, 较复杂的环境都不会对物体的测量结果造成影响. 由于本文所涉及的技术与产品比较新颖, 开发资源比较少, 它还存在一些不足之处, 例如HoloLens设备本身价格昂贵, 深度摄像头只有30 m的范围, 只能在扫描到的墙体、地面、桌面等较大的物体上进行测量, 不能在空间的悬空点上进行测量, 希望将来得以继续改进.
[1] |
陈宝权, 秦学英. 混合现实中的虚实融合与人机智能交融. 中国科学: 信息科学, 2016, 46(12): 1737-1747. |
[2] |
黄进, 韩冬奇, 陈毅能, 等. 混合现实中的人机交互综述. 计算机辅助设计与图形学学报, 2016, 28(6): 869-880. |
[3] |
微软黑科技HoloLens虚拟成像走进未来. 信息技术与信息化, 2015, (6): 16.
|
[4] |
张洋. 混合现实的人机交互软硬件系统的研究与设计[硕士学位论文]. 上海: 华东师范大学, 2014.
|
[5] |
Hololens全息眼镜的应用: 可看火星表面. 信息技术与信息化, 2016, (12): 17.
|
[6] |
钱童心. HoloLens: 敲碎虚拟与现实的界限. 第一财经日报, 2016-06-03(A08).
|
[7] |
Scott. 微软演示虚拟现实眼镜HoloLens凭空搭建城堡. 今日电子, 2015(7): 25. |
[8] |
Ghosh A, Nirala AK. Formation of uniform fringe pattern free from diffraction noise at LDA measurement volume using holographic imaging configuration. Measurement Science and Technology, 2016, 27(5): 055202. DOI:10.1088/0957-0233/27/5/055202 |
[9] |
Syed AZ, Zakaria A, Lozanoff S. Dark room to augmented reality: Application of HoloLens technology for oral radiological diagnosis. Oral Surgery, Oral Medicine, Oral Pathology and Oral Radiology, 2017, 124(1): e33. |