自人类发明了工具以来,与工具之间就需要通过一种方式建立起联系,用手握住工具的把手就是联系的一种。进入电子科技时代,交互的重要性愈加凸显,就好像遥控器之于空调、键盘鼠标之于电脑、游戏手柄之于电视游戏等等,缺少了一个简单有效的交互,工具对于人类也就失去了意义。
随着虚拟现实的崛起,如何寻找到合适的交互技术也成为了从业者们研究的重中之重。
一、我们为什么需要为VR需要找一个新的交互形式?
与其他科技产品不同,VR体验强调的是沉浸感,而沉浸感的来源又是与外界的隔绝而造就的,尤其是视觉和听觉的隔绝,使得大脑被欺骗,产生脱离于现实世界的虚拟沉浸感。这就产生了新的问题:看不见自己的身体,尤其是人类交互感知最重要的手和运动最重要的脚,无法与虚拟环境产生交互,在虚拟的世界里变成了一个看客。
在虚拟现实兴起之初,用户在新鲜感爆棚的情况下,追求的重点在VR是否能够营造出沉浸感十足的情境,对于交互的需求相对并没有那么强烈。人类的主观能动性作祟,于是希望去操纵、控制虚拟世界,以寻找到更多的存在感。随着行业的不断发展,VR对于用户新鲜感的下降,用户开始将寻找虚拟世界存在感的需求放在了首位,开始追求更深层次的沉浸,希望与虚拟现实世界产生互动。
非常不凑巧的是,大厂优先追求的是输出设备的高技术含量,在头显这一块投入的技术与精力更多。在交互这一块的研发相对滞后,就导致了交互手段缺失情况的出现,比如Oculus Rift只能选择XBox手柄凑数。
通过传统电子设备的交互方式,比如手柄一类的产品,暂时解决交互了的问题,却又使得用户从虚拟世界中被带出,沉浸感大打折扣。举个例子,成熟度相对较高的三星Gear VR头显在视觉方面的体验不错,但操控方式是配置于头显右侧的触摸板,这意味着用户需要时刻举起右手来操作,这无形中就破坏了沉浸感受。
在二维屏幕交互中,几乎所有控制命令都可以抽象为按键动作。但在虚拟现实中,用户希望自然交互,也就是人类在现实世界里怎么跟外界交互,在虚拟世界里我们也希望按照同样的方式交互,沉浸感更高,效率高,学习成本低。
于是,寻找一种全新的、合适的虚拟现实交互形式就成为了一件非常有必要的事情。
二、为什么手部动作识别在已知的交互形式中最受欢迎?
到目前为止,VR领域目前还没有一个成熟的具有普适性的操控交互手段。小编大概列举了目前业界理论上比较主张的几种交互形式:用“眼球追踪”实现交互、用“动作捕捉”实现交互、用“肌电模拟”实现交互、用“触觉反馈”实现交互、用“语音”实现交互、用“手势跟踪”实现交互、用“传感器”实现交互等等。
这些交互形式到目前为止,虽然各自有各自的优点,但也都存在一定的缺陷。比如眼球追踪,尽管众多公司都在研究眼球追踪技术,但几乎没有一家的解决方案令人满意,都无法提供精准和实时的反馈。或如动作捕捉,市面上的动作捕捉设备只会在特定超重度的场景中使用,而且需要用户花费比较长的时间穿戴和校准才能够使用,而且这种方式的一大痛点是没有反馈,用户很难感觉到自己的操作是有效的。
又如触觉反馈,它无法适应更加广泛的应用场景,虽然目前三大VR头显厂商Oculus、索尼、HTC Vive都不约而同的采用了虚拟现实手柄作为标准的交互模式,但这只是针对一些高度特化的游戏类应用或轻度的消费应用,不过是商家退而求其次的一种妥协策略,因为VR头显的早期消费者基本是游戏玩家。再比如语音交互,首先机器对于人类语言的理解就是一大问题,简单的语音还好,复杂的就不行了,而理解之后机器对指令能否准确执行又是一大问题。
对于人类来说,最自然最有效的的交互方式有两个当属动作莫属了,因为即便语言不通,你仍然可以通过动作的比划与他人进行沟通。放在VR里面来说,肢体和手势动作可以用于大部分交互场景,尤其是轻度交互的固定场景还是对于重度交互的移动场景,手势的优势都非常突出。
于是,手部动作识别在已知的交互形式中成为最受欢迎形式。
三、手部动作识别是不是只有3D手势识别吗?
说起手部动作识别,大家耳熟能详的应该就是Leap Motion这家公司了。但实际上,手部动作识别的解决方案并不是只有Leap Motion一家公司有,技术原理上也并不是只有这一个方向。只不过因为Oculus的对Leap Motion的大力支持,伴随着Oculus Rift的高曝光率,使得Leap Motion的3D手势识别被公众所熟知。
3D手势识别并不是VR交互领域手部动作识别方案的唯一,其实可以分为二维手型识别、二维手势识别、三维手势识别三种。
二维手型识别
二维手型识别,也可称为静态二维手势识别,识别的是手势中最简单的一类。这种技术在获取二维信息输入之后,可以识别几个静态的手势,比如握拳或者五指张开。其代表公司是一年前被Google收购的Flutter。在使用了他家的软件之后,用户可以用几个手型来控制播放器。
“静态”是这种二维手势识别技术的重要特征,这种技术只能识别手势的“状态”,而不能感知手势的“持续变化”。举个例子来说,如果将这种技术用在猜拳上的话,它可以识别出石头、剪刀和布的手势状态。但是对除此之外的手势,它就一无所知了。所以这种技术说到底是一种模式匹配技术,通过计算机视觉算法分析图像,和预设的图像模式进行比对,从而理解这种手势的含义。
这种技术的不足之处显而易见:只可以识别预设好的状态,拓展性差,控制感很弱,用户只能实现最基础的人机交互功能。
二维手势识别
二维手势识别,比起二维手型识别来说稍难一些,但仍然基本不含深度信息,停留在二维的层面上。这种技术不仅可以识别手型,还可以识别一些简单的二维手势动作,比如对着摄像头挥挥手。其代表公司是来自以色列的PointGrab,EyeSight和ExtremeReality。
二维手势识别拥有了动态的特征,可以追踪手势的运动,进而识别将手势和手部运动结合在一起的复杂动作。这样一来,我们就把手势识别的范围真正拓展到二维平面了。我们不仅可以通过手势来控制计算机播放/暂停,我们还可以实现前进/后退/向上翻页/向下滚动这些需求二维坐标变更信息的复杂操作了。
这种技术虽然在硬件要求上和二维手型识别并无区别,但是得益于更加先进的计算机视觉算法,可以获得更加丰富的人机交互内容。在使用体验上也提高了一个档次,从纯粹的状态控制,变成了比较丰富的平面控制。
三维手势识别
三维手势识别需要的输入是包含有深度的信息,可以识别各种手型、手势和动作。相比于前两种二维手势识别技术,三维手势识别不能再只使用单个普通摄像头,因为单个普通摄像头无法提供深度信息。要得到深度信息需要特别的硬件,目前世界上主要有3种硬件实现方式,加上新的先进的计算机视觉软件算法就可以实现三维手势识别了。
1.结构光(Structure Light)
结构光的代表应用产品就是PrimeSense的Kinect一代了。 这种技术的基本原理是,加载一个激光投射器,在激光投射器外面放一个刻有特定图样的光栅,激光通过光栅进行投射成像时会发生折射,从而使得激光最终在物体表面上的落点产生位移。 当物体距离激光投射器比较近的时候,折射而产生的位移就较小;当物体距离较远时,折射而产生的位移也就会相应的变大。这时使用一个摄像头来检测采集投射到物体表面上的图样,通过图样的位移变化,就能用算法计算出物体的位置和深度信息,进而复原整个三维空间。 以Kinect一代的结构光技术来说,因为依赖于激光折射后产生的落点位移,所以在太近的距离上,折射导致的位移尚不明显,使用该技术就不能太精确的计算出深度信息,所以1米到4米是其最佳应用范围。 2. 光飞时间(Time of Flight)
光飞时间是SoftKinetic公司所采用的技术,该公司为Intel提供带手势识别功能的三维摄像头。同时,这一硬件技术也是微软新一代Kinect所使用的。
这种技术的基本原理是加载一个发光元件,发光元件发出的光子在碰到物体表面后会反射回来。使用一个特别的CMOS传感器来捕捉这些由发光元件发出、又从物体表面反射回来的光子,就能得到光子的飞行时间。根据光子飞行时间进而可以推算出光子飞行的距离,也就得到了物体的深度信息。就计算上而言,光飞时间是三维手势识别中最简单的,不需要任何计算机视觉方面的计算。
3. 多角成像(Multi-camera)
多角成像这一技术的代表产品是Leap Motion公司的同名产品和Usens公司的Fingo。
这种技术的基本原理是使用两个或者两个以上的摄像头同时摄取图像,就好像是人类用双眼、昆虫用多目复眼来观察世界,通过比对这些不同摄像头在同一时刻获得的图像的差别,使用算法来计算深度信息,从而多角三维成像。
在这里我们以两个摄像头成像来简单解释一下:
双摄像头测距是根据几何原理来计算深度信息的。使用两台摄像机对当前环境进行拍摄,得到两幅针对同一环境的不同视角照片,实际上就是模拟了人眼工作的原理。因为两台摄像机的各项参数以及它们之间相对位置的关系是已知的,只要找出相同物体(枫叶)在不同画面中的位置,我们就能通过算法计算出这个物体(枫叶)距离摄像头的深度了。
多角成像是三维手势识别技术中硬件要求最低,但同时是最难实现的。多角成像不需要任何额外的特殊设备,完全依赖于计算机视觉算法来匹配两张图片里的相同目标。相比于结构光或者光飞时间这两种技术成本高、功耗大的缺点,多角成像能提供“价廉物美”的三维手势识别效果。
四、杀鸡不用牛刀,VR中的交互到底应该如何抉择?
轻度交互
移动端VR设备一般无法运行重度体验的VR内容,对于交互的需求基本保留在轻量级别。3D的手势识别用在轻度VR交互上实际有点杀鸡用牛刀的感觉,绝大部分人日常接触最多的就是2D触摸屏,而大部分UI也是2D设计,3D手势识别加入的深度信息对于大部分人来说太超前,而且大部分人臂展不超过1米,深度信息在这里没法体现出相对2D平面的不同。
所以,一个普通单摄像头通过边缘识别的简单手势交互系统能满足目前大部分VR场景的交互需求,降低手势交互的门槛,从而快速普及手势交互概念,如果还能够配合语音交互功能,就能快速满足短期内VR应用的交互需求。
重度交互
PC端VR设备,成本高技术含量高,能够运行重度体验的VR内容,因而对于交互的需求也是重量级别。3D的手势识别用在重度VR交互上才是真正的好钢用到了刀刃上,能够满足用户的重度交互需求,还能够提供较好的反馈和沉浸感。用户置身的三维场景中,要跟三维场景里面的物品进行交互,没有深度信息是不可能做到的。
现在Oculus和HTC Vive其实都采用的是手柄的解决方案,但是3D的手势交互其实是一种更自然、更舒服的方式。对于复杂的3D场景,3D的手势交互是不可缺少的,而且更加真实和沉浸式的3D场景体验,才是VR内容的未来。而在重度VR体验内容中,空间的深度信息更为复杂,应用场景的变化也更加多样化,只有3D的手势识别能够较好的满足精度、延迟和沉浸的要求。
至于未来如何发展,历史总是由人民书写的,消费者的选择才是技术方向的选择。