按:作者艾韬,易瞳科技CTO,多伦多大学计算机工程专业毕业。多年跟随“世界穿戴电脑之父”Steve Mann教授,专注于智能眼镜的基础研究。最近,易瞳的核心产品VMG-PROV宣布对极客们开源,这款视频透视的介导现实眼镜,为何还没有正式面世就开源?又为何选择了视频透视?作者以他做产品的亲身经历来回答这个问题——“当我们把VMG-PROV开源后,我们希望尽快地暴露出现有产品的所有问题。”除却谈及产品本身的优劣,这是一篇认真探讨的文章。 以下为作者自述: 我今天写一篇小文章说明一下VMG-PROV(所谓开源极客版)到底是一个什么东西,希望看完这篇东西的朋友们对自己即将要拿在手里的“玩具”有一定认识。当然,土豪随意,我觉得VMG-RPOV搁家里放着也蛮帅的。 一身开源的血液 记得我到导师Steve Mann的实验室时,看到一个个装束的怪异的工程师们(包括一个不穿上衣的长发男子)被一堆堆“破旧”的电子仪器、显示器和各种电子元器件团团包围住,而此时的他们正用着界面相当另类的程序做着一些不明觉厉的事情。那一刹那感到莫名兴奋的同时,也为自己的无知而感到有些尴尬。
在实验室做事的这段时间,我接触到了各种各样的开源工具。教授说的是真的,在实验室里,我们的操作系统是Ubuntu而不是Windows或MacOS;图像编辑也不用Photoshop而是用GIMP;就连Word和Excel这样的程序,我们都用LibreOffice来代替。更夸张的是,作为研究人员,我们连Matlab都不用,而是用一个叫Octave的东西。 Steve曾经做过一件艺术品,现在收藏在奥斯汀艺术博物馆中。下图中的Installation叫“License To Sit”,是一个需要付费买License才可以使用的椅子。就像付费软件一样,这个椅子会在快到期时提醒你付费,否则,一旦过期,弹出钢针,强行终止椅子能提供给你的“坐”的服务。这个艺术品很好玩,可以使我们思考当数字世界里的规则被运用到物理世界时的一些搞笑的情况。 看着这把椅子,回忆起第一次遇见教授的那段对话,我突然意识到自己一个考量已久的决定其实早有渊源,潜移默化中浑身已经淌满了开源的血液。 送到极客手中 最近,我们决定把自己还不完善的工程机VMG-PROV作为一款开源硬件投到市场中来。 这一举动,我认为,有奉献性的因素也有自私的原因。 我们确实解决了一些智能眼镜上的问题。开源的目的在于,希望同行和有志向的极客通过对VMG-PROV的拆解和研究,可以不再重复地去解决这些问题。轮子就在这里,不需要重新发明它了。另外,我们做的智能眼镜不同于VR/AR,稍微超前了一点。为了尽快做出理想的产品,我们这个二十人的小团队还需要更多能人的帮助。当我们把VMG-PROV开源后,我们希望尽快地暴露出现有产品的所有问题。同时让有共同指向的极客们可以一起和我们站在同一起跑线完善这个产品。开源一定是未来科技的发展方向,一个小有成就的极客不应该总想着如何用那不完善的“小秘密”去赚钱,而应该思考怎样让大家参与进来尽快把东西做好。 我们希望把VMG-PROV交付到正确的极客手中,这意味着这代产品不是消费者级的,甚至不是开发者级的,我们把它称之为“极客版”。我们希望把他卖给有开源血液,想探索数字视觉,并且具备相应能力的极客。看到这里,我想各位读者对于该不该买VMG-PROV已经有了一些小小的判断了。 为什么选择视频透视? VMG(包括预售中的PROV和研发中的MARK两个版本)是一款开源的头显,是一个探索介导现实(和数字视觉)的工具。我们认为虚拟现实(VR)和增强现实(AR)都是数字视觉的一种体现。因此,VMG首先要能将VR/AR通过视频透视技术同时兼容在一个头显上。之前写了一篇关于智能眼镜的小文章里面也提到,从AR往后发展,到混合现实(Mixed Reality)或是介导现实(Mediated Reality),视频透视是必须跨过的一个坎。 常常有人问我,市面上光学透视方案这么多,而且大家都在做光学透视,为什么你们要选择视频透视?我说,不是我选择了视频透视,是视频透视选择了我。 在进实验室之前我是学FPGA的,因为这个,Steve让我用FPGA去攻克智能眼镜上一些GPU跑不动的算法,出成果后,我和一个学长去SIGGRAPH展会上展示我们的研究成果。在这个让人脑洞爆炸的展会上,我和学长在聊天中各自认定了今后的研究方向。回到实验室后,我主要搞视频透视和相关的软件,而他就开始研究光学透视的东西了。视频透视(Video See-Through,或VST)和像HoloLens这样的光学透视(Optical See-Through,或OST)各有优缺点。下面,我以AR应用为例,大概归纳一下两者主要问题的比较。(学术界里关于两者的比较很透彻,大家有兴趣可以去查阅相关论文。) 视频透视(Video See-Through,或VST)和像HoloLens这样的光学透视(Optical See-Through,或OST)的比较—— 1、关于叠加效果和显示视角(VST完胜) 光学透视通过特殊的设计将数字画面投射到半透明的显示装置上,因此呈现出来的遮挡效果(Occlusion)不够完美。看过Magic Leap年初发出的眼镜大专利的各位知道,他们花了至少7大页的内容来描述他们复杂的光路设计来减缓这个遮挡问题。光学透视的光路设计很复杂,想做出小型的大视角效果基本没戏。试过HoloLens的人(约40度)就能感受到我说的视角小是一种什么感觉。 同时,由于设计复杂加工困难,OST的成本会很高。然而,半透明就是半透明,任你减缓,也不可能解决。在这一点上,VST完胜OST。由于现实画面是通过摄像头采集的,在显示到屏幕之前已被数字化,遮挡的效果可以轻轻松松以低成本做到完美。在这方面,VST可以通过算法做到实时P图,让现实变成你的画板。 2、关于现实画面延时和畸变(OST完胜) 由于使用到了摄像头,加上电脑需要同时处理显示画面和数字内容,VST的延时比OST要大很多。 VST头显硬件上更像VR,摄像头和显示器的刷新延时是先天性的。在OST头显上,现实画面是外部世界的光是通过光学设备穿透进来的,先天零延时零畸变。而视频透视除了刷新延时,还需要矫正因为摄像头的位置和光学与人眼不一样而产生的画面差距,先天会有延时。我们花很多时间,通过硬件和软件的优化去降低延时。但这个延时不可能为零,在这一点上,OST完爆VST。 3、关于VAC问题(平手) 不管是OST和VST,都存在VAC问题。这是我们在使用头显时,深度感知机制在双眼(Vergence)和单眼(Accommodation)上有冲突时造成晕眩的问题。 有兴趣的读者可以自行查阅Vergence Accommodation Conflict或“辐辏冲突”。 (雷锋网(搜索“雷锋网”公众号关注)注:关于VAC现象,可查看这篇解析文《一直困扰虚拟现实的VAC现象,真的无解么?》) Magic Leap的大专利里,也有大量描述过通过光场减缓这个问题的技术。在他们出货前,在这个问题上,目前OST和VST,打成平手。 极客们请继续阅读 VMG-PROV作为一款视频透视的探索工具,性能有限。我希望通过接下来的描述让各位极客认识到购买PROV的风险。 延时问题在VMG-MARK的架构上有大幅度提升,文末我会把细节告诉大家。下图是从我们将要开源放出的Demo工程截图的,可以将一个数字模型叠加到没有预设Marker的桌面上。 在这个开源的Demo中,VMG-PROV通过双目摄像头将现实画面捕获进来,经过头显上FPGA的处理后,通过USB3. 0接口传输到所连接的PC上。现实画面通过软件校准后,Visual SLAM算法开始运算,将预设的数字模型叠加到正确的位置。之后,再通过HDMI将画面传输到头显上的屏幕中。这个开源的工程中包含: 1.VMG-PROV的硬件细节和原理图 如下图所示,VMG-PROV的硬件参数已标注并在下表列出。摄像头采集到的视频画面经过FPGA的处理再传入所连接的PC中,最后通过SLAM把叠加了数字模型的画面在传回人眼。所以在用于AR上,VMG-PROV需要PC完成较大的视频吞吐,因此建议使用高配台式机。 作为一个MR头显,VMG-PROV的参数只能达到VR的入门水平。我觉得要在MR上做出惊艳的应用,这一代是远远不够的。这也是为什么我希望大家把这个产品作为一个学习与探索的工具,同时也通过大家给我们反馈更多的改进意见。为了让这一切成为可能,我们会提供VMG-PROV的硬件原理图。 2. FPGA上处理图像的硬件描述语言 VST优于OST的关键一点是对现实画面的修改,简单来说,就是通过算法实时P图。 在软件上测试出来的算法如果能通过FPGA实现或加速,对于延时的减少是有很大帮助的。在我们开源的工程中,包含了一个MR的Demo,即实时高动态范围图像合成和映射(Real-Time HDR Composition & Tonal Mapping),完全通过逻辑写进FPGA里面了。 如下图,FPGA控制Sensor高速变换曝光,然后通过合成电路选择出由暗到亮每张图中最好的部分。 FPGA是一种很神奇的芯片,是芯片中的变形金刚。做过FPGA的工程师都知道,FPGA不是普通人搞得定的。 下图给出了我们将要开源的工程中FPGA内硬件描述语言的部分。从Sensor进来的原始数据将完全在FPGA上进行ISP处理,之后合成的HDR将通过USB3.0传到PC中。我相信把上述工程的Verilog HDL开源,可以吸引到各位有勇气的高手加入到芯片级的MR探索中来。通过FPGA配合PC端的需求,进一步减少VST的延时问题。 3. 基于PTAM的双目SLAM源代码 VMG-PROV所用的SLAM是基于双目RGB摄像头的,是由大名鼎鼎的PTAM改成的。这个工程就将上文视频中的Miku叠加到了我们的眼镜画面中。PTAM之后,我们还将把传感器数据融合进来,并使用不同的方法(像ORB-SLAM,或LSD-SLAM)实现更稳定的叠加。SLAM这一块我就不画图了,大致的开源内容包括,双目相机的标定矫正,FAST特征点提取,RANSAC & Bundle Adjustment,和Miku的模型。需要用到Unity3D的各位朋友,工程中也有将这套SLAM导入的方法。同时,大家去看源代码的时候可以参照PTAM的相关资料对其进行修改。 普通开发者请再等等 讲到这里,我觉得大家对需不需要购买这个“极客版”有了一定的判断。由于VMG-PROV还没有达到应用级别,想在VMG做应用的各位需要等待一下VMG-MARK(开发者版本)。按照目前的进度来说,我们的研发团队已经解决了VMG-MARK的大部分技术问题。我们把VMG-MARK的软硬件架构称为VLLV(Very Low Latency Video See-Through),它将把视频透视的延时难题大幅度的减缓(是减缓不是解决,解决就是Zero Latency了)。所以,希望有落地应用的开发者们最好使用MARK这一款产品,而不是VMG-PROV极客版。 下图是VMG-MARK的架构,起初的设计是为了减少视频吞吐对PC的计算量需求,将高清高帧的现实画面视频流直接从Sensor传入屏幕中,不经过电脑。之后,慢慢演化成了四个模式。 我们把这个架构叫做VT Architecture,它的四个运行模式分别是: 1.Hard模式 现实画面的视频信号只通过FPGA和ASIC进行处理,然后马上打到屏幕中。这条路径延时最低,但开发难度最大。写FPGA不难,要的是勇气。 2.Hybrid模式 这条路径最适合用于AR应用的开发。 如图所示,头显上的FPGA将根据需求把视频分流到连接的PC上,然后,再通过FPGA把有姿态信息的数字模型融合到原始高清画面中。这样,我们能大幅度减少现实画面的延时,同时也可以把原本需要的大部分运算资源节省下来,从而减小电脑的配置需求。 3.Soft模式 有心的读者已经发现,这条路径就是VMG-PROV的路径。这条路径功能最强大,但延时最高。视频流经过FPGA/ASIC然后传入电脑,最后经过屏幕显示出来。Soft模式适用于早期验证和实验,通过Soft写出来的工程要按照应用需求进行优化,并在其他模式上来实现。 4.Light模式 Light模式很好理解,就是带Visual SLAM的VR头显。前端的相机虽然不成像,但是在无时无刻地检测头显的平移运动,这和Lighthouse由外至内的检测方法不一样。我们后续开发出更好的SLAM,也会开源,希望大家再等待一下。 写到这,也差不多了。作为一个小团队,我们希望成为自己理想中的极客。我相信我们的身边有很多有分享精神,探索精神,有心灵,有能力,并且会支持我们的人。我们希望把自己的成果分享给这样的人,这也是我们打算开源的最重要的原因。 文章转自:雷锋网 作者:ArkinAi |