APP下载

面向头戴式增强/混合现实设备的第三方视角技术研究

2021-06-18魏一雄张燕龙张红旗周红桥

计算机工程 2021年6期
关键词:头戴式序列化锚点

魏一雄,张燕龙,张红旗,周红桥,郭 磊,李 广

(1.中国电子科技集团公司第三十八研究所,合肥 230088;2.安徽省技术标准创新基地,合肥 230088)

0 概述

增强/混合现实(Augmented/Mixed Reality,AR/MR)技术是典型的数字化、虚拟化、智能化、网络化集成的新一代人机交互技术,可以将计算机模拟的数字化信息数据与现实场景环境无缝叠加,突破空间/时间限制,实现高沉浸、无割裂感的实时信息指引、虚实互动。在人工智能、图形仿真、虚拟通信、娱乐互动、产品演示、模拟训练等领域[1-3],AR/MR 技术带来了革命性变化,不断推动新的使用场景和商业模式出现,释放了传统行业创新活力[4]。市场调研公司Digi-Capital 指出,到2020 年底,全球AR/MR 行业总收入水平将达到1 200 亿美元。

主流增强/混合现实主要有基于二维显示屏、基于二维投影、基于头戴显示设备(Head-Mounted Display,HMD)[5-6]3种实现形式。前两种实现形式具有成本低、学习快的优势,与传统的二维可视化使用习惯保持一致,但在实际应用操作时有明显的不足。头戴式的实现方式也被称作近眼显示设备,包括视网扫描显示、头戴式显示器、头戴式投影显示器3 种形态,都是固定在人体头部,通过相应的光学组件使得虚拟图像可以叠加显示在肉眼观察的真实物体上,从而实现AR/MR 效果[7-9]。对比前两种实现方式,HMD 的实现方式具有直观性强、沉浸感高、可用性好(解放双手)等优势,因此近年来在工程、建筑、制造等应用领域受到广泛关注。头戴式增强/混合现实设备有两种,一种是眼镜形式的设备,例如谷歌的GoogleGlass,另一种是头戴式的设备,如微软的Hololens。

越来越多的高校、研究院所、企业单位开始将头戴式增强/混合现实技术应用于工业、建筑业和制造业等领域[10-12]。文献[13]研究了基于可穿戴设备(谷歌眼镜)的智能变电站巡检虚拟视频和实时数据展示技术,该技术突破了常规变电站巡检难以有效获取实时数据的障碍;德国蒂森克虏伯公司在2017年开始与微软达成战略合作,将头戴式Hololens 设备应用于工程师的产品培训以及客户现场的远程运维指导[14];文献[15]将头戴式AR 设备应用于船舶建造,提出基于HoloLens 的船舶分段建造工艺信息AR引导方法,有效提升了复杂结构船舶的构造效能。

头戴式增强/混合现实设备虽然可以有效解决虚实融合、信息引导等问题,并提供较好的直观、沉浸感受,但综观现有研究,可以发现多数应用场合均为单人操作[16],缺乏多人协同的应用场景。这是因为头戴式AR/MR 设备有典型独占性缺陷,即仅使用者可以体验虚实融合的场景,而其他人无法了解操作者所观看到的内容。当应用场景是个体即可完成,且不需要告知其他人员操作过程时并没有问题,但如果应用场景需要多人协同,或需要将操作人员所处的三维虚实融合空间与他人分享时,当前的设备难以完成此项任务。文献[17]针对上述问题提出了协同式增强现实的一致三维空间关系处理模型或方法,但该方法面向的是视频序列的一致注册,并未解决实时虚实融合场景的协同问题。微软提出了两种解决方案[18]:一种是通过视频采集方式将第一视角的虚实叠加场景传递到网页端(这也是主流AR/MR 设备视角分享方案),此种方式具有图像抖动过大、分辨率较低和延迟较高等缺陷;另一种则是Spectator View 的解决方案,虽然此方案可以实现类似第三方视角效果,但平台终端使用有限制,同时缺乏多终端的信息同步策略。在研究领域,还有企业提出基于命令同步和完全数据同步两种第三方视角实现方式。第一种同步方式需要和程序强耦合,即在程序代码每一处命令节点添加同步命令,适应性较差,对用于使用的要求较高。第二种同步方式需要大带宽的网络环境,当遇到较大模型和较多变化时,很容易发生信息丢失、卡顿现象。

针对上述问题,本文提出基于网络通信的低延迟虚实融合内容第三方视角可视化方法。该方法基于第三方相机位置以及空间方位换算获得第三方视角方位,可以有效解决第一视角的抖动、传输延迟等问题,并根据主视角的交互信息/环境信息/虚实状态的多种数据类型特点提出不同的同步策略,实现在多种第三方可视化装置上对于虚实融合内容的完全复现。同时为避免大数据量对于带宽的压力,提出了长时间连续发生信息变化对象的低数据量同步策略。

1 实现流程及框架

AR/MR 技术的本质是虚拟信息数据在实际空间中的叠加,在这一过程中,较为重要的是虚拟信息数据在空间中的定位。本文首先进行物理空间中虚拟空间的注册定位,确定虚拟信息在空间中的位置,然后根据第三方视角装置在物理空间的观察方位,改变对应虚拟相机的空间方位,即可实现第三方设备对同一虚实融合空间的观察。

为方便描述,本文定义如下若干描述语:

主视角装置:即可头戴式的AR/MR 设备装置。

第三方视角装置:即部署于物理空间,包含影像采集设备、计算设备、可视化设备等在内的装置,可以是整合于一起的装置,如Pad、手机等,也可以是分离的设备,如图1 所示。

图1 第三方视角应用示意图Fig.1 Schematic diagram of third-party perspective application

客户端:主视角和第三方视角此类可视化模块均为客户端。

服务端:部署于电脑中,用于处理通信会话数据的功能模块。

锚点:是指在虚拟场景中构建某一坐标位置,并将这一坐标位置与物理环境空间的相对位置锁定。

由于AR/MR 设备的主要作用是辅助操作人员进行工作,意味着虚实融合空间中的内容也是动态变化的场景内容,需要通过信息同步的方式将操作端的交互信息/环境信息/虚实状态等数据同步到第三方可视化设备,保证两边所看到的虚实融合场景变化同步,达到在虚实空间中沟通交流的目标。第三方视角实现的一般流程如图2 所示。

图2 第三方视角实现的一般流程Fig.2 General procedure of third-party perspective implementation

实现过程主要分为两种功能模块:一种是系统初始化与校准,主要针对客户端的初始化与校准操作,即主视角装置的空间定位注册、第三方视角装置的设备校准、服务端的网络通信会话建立等过程;另一种是针对交互信息/环境信息/虚实状态等的数据如何在主视角装置和第三方视角装置间实时信息同步策略,其中包括数据传输方式、触发条件、数据转换、数据驱动等内容。具体实现的技术框架如图3 所示。

图3 第三方视角实现的技术架构Fig.3 Technical framework of third-party perspective implementation

2 系统初始化与校准

为保证多终端之间的数据通信要求,本文在电脑端构建服务端程序,并在系统启动时就开始构建可以与其他硬件设备进行信息通信的数字化环境,即通信会话。通信会话是主视角与第三方视角间数据通信的基础模块,用于将序列化后的坐标、材质、标识、命令等信息数据通过TCP/IP 协议实时传递。所有客户端在初始化与校准之际均会启动加入会话的流程,而服务端也会记录所有加入会话的装置、IP、ID 等信息数据,用于标记后续传递数据的起点及终点。服务端主要实现:1)主视角装置完成空间定位后,上传并保存锚点信息;2)第三方视角装置瞎猜锚点信息,反推自身所处空间位置;3)多终端信息同步传输。

系统初始化与校准是针对主视角装置、第三方视角装置的相关参数设置及建立通信链接的过程。无论是主视角装置还是第三方视角装置,所运行的系统程序是相同的,因此系统在启动之初需要判断所使用硬件终端是主操作的头戴式增强/混合现实设备,或是用于第三方视角的其他硬件设备。如果确定是头戴式增强/混合现实设备,则开始调用硬件摄像头进行环境识别,确定设备与实际场景环境间的相对位置关系AP(x,y,z,α,β,γ),其中,x、y、z为位置坐标信息,α、β、γ为旋转角度信息。头戴式设备通常需要调用深度红外相机API 接口标定空间三维位置信息,反向计算得到设备位置。而平板类设备包含两类标定方式:一是通过调用ToF 结构光计算空间位置;二是通过图像识别反向推算位置[19],此种方式误差较大。基于设备与空间的位置关系,主视角人员通过交互操作在空间中放置锚点进行注册[20],得到锚点在空间中的位置。锚点是虚实融合空间的具体确定位置,基于锚点建立物理空间与虚拟空间匹配的全局坐标系(Global Coordinate System,GCS)。通过锚点位置及AP 坐标,可以获得设备与锚点的位置关系,即头戴式设备的AR/MR 环境坐标系(AR/MR Environment Coordinate System,AR/MR ECS)。ECS用于确定虚实融合场景中对象方位的确定。为便于计算,本文假设在ECS 坐标系中设备相对于锚点的位置的齐次表示为TP(x,y,z,1),TP 坐标反映了设备与锚点的相对位置关系,是信息数据同步过程中的不同设备观看对象所呈现角度差异的计算依据。方位的反向推导过程如图4 所示。需要注意的是,本文所描述的坐标位置除非特殊说明,都是指相对于GCS 的坐标方位。在主视角装置系统GCS 位置确定完成之后,系统自动将所得到的锚点信息上传到服务端,便于其他硬件设备访问数据。

图4 第三方视角装置在虚实融合空间中的方位推导过程Fig.4 Orientation derivation process of third-party perspective device in the virtual real fusion space

当系统确定当前设备是第三方视角装置时,首先进行校准操作,即获取第三方视角硬件设备的摄像头焦距参数,计算与设备本身位置坐标系的相对关系,便于后期确定虚拟对象在第三方视角中的大小,从而从感官上符合主视角装置所看到的内容。校准完成后,和主视角装置类似,确定第三方视角在空间中的位置的齐次表示:AP1(x1,y1,z1,1)。系统从服务端调取锚点信息数据,并基于锚点在实际场景中的方位,以锚点为虚拟场景中的坐标系原点,结合第三方视角在实际场景中通过识别确定相对位置AP1,得到第三方视角在锚点坐标系中的位置的齐次表示:TP1(xt,yt,zt,1)。

坐标方位的推导公式如下所示:

其中,Mv→w为位置变换矩阵。

对于固定式的第三方视角装置,例如三脚架配合相机及PC 电脑,TP1 的值是固定的,不需要系统进行实时计算;而对于可移动,例如手持式Pad,由于装置在物理空间中保持移动,如图1 所示,需要设备进行实时的方位计算,因此TP1 的数值是动态变化的。

3 多终端信息同步策略

系统初始化与校准完成后,多个客户端(包括主视角端以及第三方视角端)间已完成虚实空间匹配以及通信链路的构建,要实现真正的第三方视角效果,还需要进行多终端间信息的同步。由于增强现实设备多数具有无线通信功能,且为避免使用时空间约束,信息同步基于无线网络传输。本文提出了基于通用通信协议的信息数据序列化方法,即将待传递信息(如状态对象、ID 标识、坐标、比例、材质等)均统一定义为Object 对象,把这些数据放到一个状态对象中,每一次传递都将新建一个对象,将这个对象转为JSON 文件,通过代码语言自带的二进制序列化函数接口(如C#中的BinaryFormatter 函数)将Json 数据序列化存入内存流中,基于TCP 或UDP 协议,将内存流中数据同步到第三方视角客户端中。第三方视角端接收到字节数组,将数据先转到内存流,通过反序列化的方法转为JSON 数据,继而得到状态对象,信息数据序列化传输流程如图5 所示。

图5 信息数据序列化传输流程Fig.5 Procedure of information data serialization transmission

头戴式AR/MR设备在辅助操作人员进行操作时,涉及的数据信息类别主要包括数据传输、动作传输、音视频传输和模型传输,因此从数据传输层面,本文给出了主视角与第三方视角的数据传输路径以及触发方式,如图6所示。

图6 数据传输路径以及触发方式Fig.6 Data transmission path and trigger mode

系统搭建了数据传输的路由模块,用于针对场景中的动作触发、视频触发、音频触发、模型调用等调用系统功能模块相对应的功能系统,实现对系统功能调用的分发管理。经由路由模块的数据分发,不同的数据类型将触发不同的数据响应策略,完成数据同步。而对于携带参数的信息传递,需要借助系统内部接口,通过广播策略实现对相应行为的触发。

在数据传输维度基础上,为确保实时性和实用性,尽可能降低数据传输速率要求,本文分析了第三方数据传递的特点,从高内聚、低耦合原则触发。为确保数据传递的有效性、及时性、可靠性以及对未来可能增加的数据的兼容性,将同步数据的信息分为交互信息数据、环境/场景变化信息数据和虚实状态信息数据3 类,针对每类数据不同特点,提出了不同的同步策略。

3.1 交互信息同步策略

交互信息数据触发同步,是指用于与应用操作系统间通过手势、语音等交互手段启用系统应用中某些功能的信息数据,通过将这部分信息传递给第三方视角装置模拟触发信号启用对应功能的过程。例如在主视角装置中用户点击某一虚拟按钮,实现某虚拟看板打开、点击的同时,主视角模块将点击信号同步发送,第三方视角装置接收信号后模拟点击触发行为,打开同样虚拟看板。可以看出,此类信息数据是触发式的、由主视角装置的操作人员进行交互操作后产生的并不需要时刻监听的信息数据。因此,对于此类数据,系统在交互触发的逻辑入口添加了一个分支响应函数以及外部输入接口,将触发的时间戳、类型等信息序列化后传递;第三方视角装置接收到相应的信息数据后进行反序列化及解析,通过调用外部输入接口传递参数,使得第三方视角装置模拟主视角装置进行交互操作,实现达到同样的效果。

3.2 环境变化信息同步策略

环境变化信息同步,是针对增强/混合现实应用系统中由于物理/虚拟环境变化而导致的应用系统功能变化的更新同步,需在系统中事先标记会随环境变化而发生变化的对象,并建立映射关系。例如主视角装置随着人员走动,虚拟看板跟随人员挪动,由于装置相对于环境的方位变化而导致虚拟看板发生方位变化,需要通过实时同步的方式将环境变化信息同步给第三方视角装置,纠正虚拟看板的方位。这一类的信息数据是时刻动态变化的,因此主视角装置需要对标记的对象的数据进行实时传递。在系统中添加标记对象数据更新的入口,用于第三方视角装置同步更新环境变换引致的信息变化。和上述交互数据类似,同样需要进行数据的序列化、传递以及反序列化操作。

在实际测试过程中,由于是实时传输(采用按帧传递的频率),且环境变化关联的目标对象数量较多,容易导致传输数据量暴增,进而引发网络堵塞或数据严重滞后的问题。本文针对此类情况进行了两方面的的优化措施:

1)对于主视角操作端标记对象的变化数据,进行阈值设定,在阈值范围内不做数据更新传输,超过阈值范围后进行数据更新,例如跟随人视线的虚拟看板,当人头部仅作微小摆动时,主视角装置的虚拟看板虽然进行小幅度微调,但方位数据并不进行传输,仅当变动幅度超过预定义的角度范围时,才进行一次数据更新传递,如图7 所示。

图7 主视角操作信息同步频次降低的示意图Fig.7 Schematic diagram of reducing synchronization frequency of main perspective operation information

2)对于长时间连续发生信息变化的对象数据,在程序代码中进行预标记,针对性降低数据传输频率(测试验证中采用20 Hz),这样一方面保证第三方视角可以观察到真实的环境变化引致的信息变化,另一方面确保相关数据并不按照系统自带的时间序列传递,避免时间序列较快导致的传输数据量过大,从而导致严重的掉帧非连续观感。需要注意的是,由于网络环境的不同,数据传输发送和接收的时序可能发生错乱,因此本文在数据解析后,使用之前进行时序校正及校核的过程。

3.3 虚实状态信息同步策略

虚实状态信息是针对系统在某一阶段下虚拟对象的状态(包括方位、定位情况、颜色/材质/动画信息、计算数据等),状态信息描述了虚拟对象与物理空间的当前结合关系。对于系统使用,除了人机交互过程的触发、后台对于不同状态的判断以及状态引发的流程推进共同构成了满足用户需求的平台。由于状态信息并不是连续数据,因此系统采用定时同步的方式将相关信息传递给第三方视角装置。如同交互信息以及环境变化信息的传递过程一样,通过序列化及反序列化过程完成数据的传输。

由于状态数据、交互数据和环境变换数据的紧密相关性,本文还通过状态信息数据在第三方视角装置上对前面两种数据进行匹配验证,避免由于网络环境错误、数据包丢失、解析错误等导致的第三方视角与主视角内容的错位。例如,主视角操作者点击虚拟按钮启动虚拟装配动画演示,交互信号丢失并未传递到第三方视角装置。而主视角的当前状态已经是动画播放状态,此刻通过定时的状态信息同步,第三方视角可以自行跳过交互信号同步直接开始动画播放,匹配主视角装置的当前状态。同样,该同步策略对于环境变化信息同步有数据补偿的效果。如3.2 节所述,为避免数据传输量过大采用了阈值限制数据传输的优化方法,但此方法在网络条件不好时可能发生虚拟对象运动幅度超出阈值而未同步数据的问题。状态信息同步可以有效地在固定时间周期内检查状态的差异性,并直接完成当前虚拟对象运动方位的同步,有效解决潜在隐患问题。

基于第三方视角的同步策略,设备根据同步结果及既定的业务流程实现多人视角下的可视化效果,多人看到的虚拟对象角度不同,且主视角交互操作时,第三视角中对象会完成对应方位、状态变换。

4 测试验证

本文搭建了测试环境,电脑为搭载英伟达1080显卡的台式机,操作系统为Windows10,开发工具为visual studio2019,图形引擎平台为Unity 2019.4,AR设备为两台Hololens 2,其中一台作为主视角设备,操作者对虚拟对象进行操作,另一台作为第三方视角设备,用于观察主视角的操作以及虚实融合场景。光照条件约为200LX。

根据上文所述,系统首先进行初始化与校准,确定锚点位置,反推两台设备在空间中的方位。初始化与校准完成后即完成两台设备的空间坐标匹配,通过多种数据同步策略完成第三方视角的功能实现如图8 所示。其中,右下角大图是操作者设备所看到的虚实融合场景截图,左上角是第三方视角设备所看到的虚实融合场景截图,可以看出,第三方视角所看到的画面和真实场景角度、位置、虚实图像是准确匹配的。

图8 第三方视角的应用验证Fig.8 Application verification of third-party perspective

为测试不同大小模型及不同变化情况下的数据同步情况,本文选择了贴标机(10 325 面片)、机床(约36 312 面片)和机械臂(8 320 面片)3 种模型,分别在模型加载、模型旋转、放大缩小和模型平移3 种变化情况下统计连续3 s的数据传输量(无线网带宽为150 Mb/s,实际测试网络传输速率为13 Mb/s~15 Mb/s),具体结果如表1 所示。可以看出,基于本文的信息数据同步方法将长时间连续发生信息变化的对象的数据传输频率压低到20 Hz,传输的数据量较低,在正常网络通信环境中(在测试环境中,高于45 kb/s 网速)完全可以满足第三方视角同步所需要的实时效果。

表1 不同模型3 s 连续变化中同步的数据量Table 1 Synchronous data volume in three seconds continuous change of different models

目前较为流行的同步方式包括命令同步和完全数据同步两种第三方视角同步方式,第一种和程序强耦合,需要在每一处命令节点添加同步命令,适应性较差;第二种同步方式需要大带宽的网络环境,当遇到较大模型和较多变化时,很容易发生信息丢失、卡顿现象。

5 结束语

本文针对头戴式增强/混合设备具有的内容独占、不易分享等缺陷,提出基于网络通信的低延迟虚实融合内容第三方视角可视化方法。根据多终端之间的数据通信要求,结合多视角的交互信息/环境信息/虚实状态的多种数据类型特点,提出多种信息同步策略,实现多终端设备下的多人实时协同操作。将该方法应用于实际的操作协同场景,统计出不同条件下多人协同操作的信息同步准确性,实验结果表明了本文方法在实际使用条件下的有效性。下一步将研究多人协同场景下虚实融合交互的稳定性和可靠性,并对不同行业领域的操作场景进行完善,实现基于5G 高速通信条件远程大场景、实时模型数据加载需求下的多人协同关键技术。

猜你喜欢

头戴式序列化锚点
基于NR覆盖的NSA锚点优选策略研究
5G手机无法在室分NSA站点驻留案例分析
5G NSA锚点的选择策略
如何建构序列化阅读教学
5G NSA组网下锚点站的选择策略优化
甜蜜在线
读书看报 解放双手
苹果要推出头戴式耳机
头戴式耳机
Java反序列化漏洞探析及其修复方法研究