iPad Pro:HoloLens 2第三人称视角的最佳解决方案
第三人称视角的问题迎刃而解
(映维网 2020年05月13日)当我看到新版本iPad Pro 后面的激光雷达的时候,我就知道,从三年前就开始困扰我们的第三人称视角的问题,即将在几天后拆开Pad Pro包装后,迎刃而解。
本嘉宾稿作者为邸锐(微信:gamedevgeek)
邸锐,网名游戏开发极客。《Ogre3D游戏开发框架指南》、《创游记》作者,国内最早制作HoloLens 软件定制开发的团队游七网络科技创始人之一。上海不加班网络科技有限公司CEO。目前专注于混合现实领域的开发平台,物联网平台以及相关的技术研发。团队承接HoloLens 2技术定制服务。
1. 史前时代 —— 早期的第三人称视角实现方案
回顾一下,从HoloLens 1代设备开始,我们就制作开发了大量的工商业项目,很多项目的参与者,比如领导在指点江山的时候,非常需要通过摄影设备记录和拍摄下整个的操作流程。这时候我们就需要提供一个重要的技术点,第三人称视角(英文Spectator View)。
上图是微软提出的最早版本的第三人称视角的实现方案,可以实现把用户操作的虚拟物体和用户本身投影在显示器上的功能。这个方案我们称之为原始方案。
整个流程就是用户在操作虚拟物体的时候,我们通过另外一台HoloLens来得到空间定位,然后再通过一台摄像机得到用户的具体动作,通过视频采集卡在一个工作站进行融合,最终渲染到屏幕上来。
这个方案对我们的困扰问题在于几个方面:
其一是笨重,每次活动都需要带一个三脚架摄像机至少两台HoloLens和一台电脑,这是脑力工作者中的体力工作者啊,虽然每次搬运可以大幅度降低脂肪肝的等级,但还是太累到怀疑人生。
其二是超级贵,一个单反至少两万,HoloLens 三万人民币至少两台,主机运算能力要足够1万元打底,还有视频采集卡,网络路由器,一大堆线材。硬件成本至少十万起跳,你说留给我们软件赚钱的空间比程序猿的头顶还稀薄,这可让我们怎么活。
其三是不稳定,至少初期的版本超级不稳定,每次给客户安装三方视角的时候都需要一个大工程来连线联网扫描同步,经常出错。经常会烧光客户的耐心,如果不是鉴于我们在维护客户价值十几万的硬件,可能就直接踹我脸上了。
2. 近现代 —— 早期的iPad 解决方案
这时候我们发现一个有趣的替代方案可以代替传统的第三人称视角。就是直接拿一个支持ARKit的 iPad 来代替所有的设备实现。
当你想清楚这这件事情的可行性的时候,你会发现一个新大陆。AR 版本的 iPad 是完美的第三人称视角替代方案。
- iPad的AR功能代替了那台架空的HoloLens来读取空间信息。
- iPad的摄像头,代替了摄像机来采集用户影像。
- iPad的CPU代替了服务器来混合虚拟虚拟物体和真实影像。
- iPad的屏幕和airplay投影,代替了传统第三人称视角的显示器。
- iPad的网络热点,代替了路由器。
- iPad的各种无线功能,代替了所有线材。
经过半年的努力,我们团队实现了自己的iPad版本三方视角。对于我们的实现方案,尽量不选择复杂的技术,尽量通过Unity自带的一些技术架构来实现。
- 网络链接使用了Unity内建的UNet来做,这个好处是不需要单独配置服务器,很简单的编程就可以让局域网的设备之间互联。(这里有个隐藏的问题,就是Unity打算在未来废除UNet的技术维护,我们这边也找到了相应的替代方案准备移植)
- 空间同步,使用Unity内建的vuforia来实现。
- 空间同步算法,我们实现了自己的空间坐标系同步算法,并申请了相关专利。
如上所见,我们实现的三方视角软件版本,除了开发引擎Unity3D之外,不需要任何额外的额外程序库来辅助,这也对我们的开发带来了极大的便利。
就在我们即将商用的时候,我们惊讶地发现微软也提供了类似的实现方案(用支持AR的手机作为三方视角),刚开始我们觉得是不是做了没用的东西。但我们研究了微软的实现方案之后,发现这个版本的实现方案里面用了大量外部库,开发起来难度非常大。这让我们觉得,在技术选型上,这次我们领先了。
我们的iPad版本的三方视角相对于微软版本有几个更有价值的功能。
- 控制权管理:再多人操作的时候,我们通过管理物体的控制权,可以减少不同设备之间的操作冲突。
- 手持设备操作:在实现上我们的手持设备(iPad)和HoloLens 有着相同的功能,HoloLens 可以进行的操作,iPad同样可以操作。
- 空间坐标系同步的二次纠正:我们用了三张图片来进行空间识别,这些图片互为纠正,这样我们就可以实现更准确的空间同步。
- 通过二维码传递服务器信息,相对于微软版本的手动输入服务器ip,我怕们可以一次扫描,立刻链接。
- 更细致的位置校准:iPad的中心位置是摄像头,而识别位置是屏幕中心,这个误差距离有接近10厘米左右,我们会在算法中把这个误差中和掉。另外就是iPad和HoloLens在移动中会有不同步间距的问题,我们也在算法中把这个误差给中和了。
- 更多不同设备的支持,我们实现了对国产设备nreal和Action One的支持,可以让不同设备在这一个平台里面相互操作同步。
我觉得,在这一个手持设备第三人称视角的是线上,我们是强过微软的版本的。这不是因为我们实力更强,而是相对于微软的实验室研发,我们的大部分功能是客户骂出来的,我们用这套手持第三人称视角实现了几十个项目,每次都会遇到不同的问题,然后客户骂我们,我们就解决,很多不到现场不会暴露的问题,我们可以在第一线的工作中得到比微软更多的反馈,这也是让我们自豪的事情。
但是如你所知,微软在HoloLens 2发布之后,微软提出了基于云计算的三方视角版本,而放弃了手持设备版本。
手持设备的AR不稳定,可能是微软退出这一领域的原因之一。再加上对人物的摄影成像并不如摄像机清晰,也是我们这套三方视角被诟病的原因之一。这两朵乌云缠绕在我们团队之上,久久不能散去。
3. 今天——iPad Pro 2020 完美的解决方案
iPad Pro 2020的发布,AR激光雷达的使用,让手持AR设备第三人称视角的实现脱胎换骨,如果说AR不稳定和成相不清晰是两个乌云的话,iPad Pro 2020就是吹走乌云的东风。
我们团队第一时间采购了一台iPad Pro 2020,对其进行测试和调优。
我们发现基于激光雷达的新版本iPad Pro,其AR稳定性达到了一个几乎变态的程度,我们可以切换出程序再进来,或者当主摄像头旋转。之前版本的iPad 肯定会丢失坐标,但这个激光雷达版本不会,这样就避免了大部分客户的误操作带来的三方视角失败。
新版本的iPad Pro标配6G运存,我们尝试链接很多台设备也不会导致系统崩溃,这个是之前2G运存的iPad版本所渴望不可及的功能。
和以前模糊的图像不同,新版本的iPad可以达到1080p的摄像解析度,虽然这个解析度还是赶不上专业的摄像机,但是借助iPad优秀的人工智能芯片,能得到非常优秀的摄像图片。
当然,在这时候我们的第三人称视角的主人公已经换成了HoloLens 2代设备。
在这里,我们得益于微软提供的工具库MRTK2。和之前的版本不同,这个版本已经是一个可以跨平台,完美运行于iOS设备上的工具了,这让我们可以很容易的在iPad和HoloLens 2上实现相同逻辑的操作。
4. 未来——更美好的明天更多的选择
花开两头,各表一枝。
微软借助自己的云服务和硬件功能,在HoloLens 2 上实现了更加面向未来的基于云服务和新版本Azura Kinect的第三人称视角。虽然目前还没有看到市面上实现的相关方案,但是得益于技术的不断进步,这个实现方案也会更加精确和快速,甚至可以通过云储存和云计算实现记忆和共享的更有趣的功能,这也是我们所期许的未来。
但这样不代表基于iPad版本的手持AR设备第三人称视角会被替代,iPad版本作为三方视角具有以下优势和特点。
- 成本低,一台iPad Pro只需要6000元人民币
- 部署携带方便,不需要额外的配置
- 不需要连接互联网,对那些不能上云的服务格外有吸引力
在最初版本的第三人称视角淘汰之后,不论是基于iPad Pro的手持设备版本,还是基于kinect的云服务版本,都会是客户更好的选择,我相信他们不是竞争,而是携手服务更多的客户,覆盖更多的需求。
今天,我们把这些方案和工具提供到你的面前,你可以都放入你身边的工具箱中,在不同的项目中按需使用。可能未来还会出现更多的方案。一定会有更适合你的哪一个存在。