手势交互方案、算法和场景全解析
VR陀螺网早在语言出现之前,人类就习惯使用肢体和手势,这种近乎本能的沟通方式,来互相交流。
在机器被发明之后,手势因具备键盘、鼠标、触屏等交互方式所无法替代的天然优势,仍然有诸多应用场景。
在电影《钢铁侠》里面,主角一挥手,凭空推拉拖拽操控虚拟物体,简直不要太炫酷了。
做到像电影中那样高精度、稳定性好的手势识别,需要硬件和算法的加持,两者缺一不可。
手势识别都有哪些常见的硬件方案?工程师是如何用 AI 算法来优化识别效果的?常见的手势识别应用场景都有哪些?接下来,就让 Rokid R-Lab 算法工程师张兆辉为我们娓娓道来。
手势识别的三大硬件方案
手势识别的原理并不复杂,它通过硬件捕获自然信号,就像相机捕获图片信息那样,然后通过软件算法计算得到手的位置、姿态、手势等,处理成计算机可以理解的信息。
目前手势识别主要有以下 3 种硬件方案:
1、摄像头方案
常见的又分彩色摄像头方案和深度摄像头方案。
1.1 彩色摄像头方案
彩色摄像头方案只需要一个普通摄像头,捕捉拍摄一张彩色图片,通过 AI 算法得到图片中手的位置、姿态、手势等信息。优势是设备成本低、数据容易获取。
目前这种基于单目 RGB 的手势识别在学术界和工业界研究的比较多,商用的方案商有英梅吉、ManoMotion、虹软等。
还有一些人工智能开放平台同样提供这种方案。比如腾讯 AI 开放平台提供静态手势识别和手部关键点,百度 AI 开放平台和 Face++ 提供静态手势检测。以及一些开源项目比如 openpose 和 Google Mediapipe 等。
图为 openpose 的手势关键点检测
相比深度摄像头方案,彩色摄像头方案缺乏深度信息,受光照影响非常大,夜间无法使用,稳定性和精度都没有深度相机方案好。
1.2 深度摄像头方案
这个方案是通过深度摄像头来获取带有深度信息的图片。优势是更容易获取手部的 3D 信息,相对应的通过 AI 算法得到的手部 3D 关键点也更加准确和稳定。但缺点是需要额外的设备、硬件成本比较高。
深度相机又分三大类:ToF、结构光和双目成像。
其中,ToF 和结构光得到的深度图比较准,但成本比较高,多用于手势的科研领域,商用的比较少,比如微软 HoloLens、极鱼科技 ThisVR。
双目成像因为视场角大,帧率高,很适合用来做手势识别,唯一缺点就是因为成像原理的限制,使得整个双目相机模组的体积对比 ToF 和结构光来说大很多。
采用双目成像的公司以目前最大的手势识别公司 Leap Motion 为代表,该公司使用的是主动双目成像方案,除了双目摄像头外还有三个补光单元,可捕获双手 26DoF、静态手势、动态手势等。此外,Leap Motion 还提供了非常完整的 SDK,对各个平台支持都不错(除手机平台)。
图为 Leap Motion 的演示
国内也有在做双目手势的公司,比如 uSens Fingo 是基于主动双目的视觉方案, 提供双手 26DoF、静态手势、动态手势识别等功能。相比于 Leap Motion,uSens 更专注于对手机以及其他低功耗嵌入式设备的支持。此外还有微动 Vidoo Primary 也有基于双目的手势解决方案。
2、毫米波雷达
毫米波雷达方案的代表有谷歌推出的一款特殊设计的雷达传感器—— Project Soli ,它可以追踪亚毫米精准度的高速运动,但目前尚处在实验室阶段。
从其公布的演示来看,目前可以识别个别指定的手势,并在小范围内识别微小精确的手势操作,很适合发挥人类精准的小肌肉运动技能(fine motor skills)。但缺点是有效范围太小,无法得到手的所有自由度。[参考谷歌Project Soli深入解析]
图为 Project Soli 的演示
3、数据手套
数据手套是指在手上带一个内置传感器的特制手套,通过传感器检测手指的屈伸角度或位置,再根据 Inverse kinematics(逆运动学)来计算出手的位置。
一般用到的传感器有弯曲传感器、角度传感器、磁力传感器等。
弯曲传感器和角度传感器类似都是可检测手指的弯曲程度,我们以 DEXMO 力反馈手套为例,该手套使用旋转传感器捕捉 11 个自由度的手部运动,包括每根手指的伸展和弯曲,以及大拇指一个额外的旋转自由度。
此方案对手的局部动作检测很准,而且不受视觉方案中视野范围的限制。但缺点是手上必须戴手套不方便,且只能检测局部的手指动作,不能定位手部整体的位置角度。若想要检测手的位置角度, DEXMO 需配合其他 6 自由度追踪器使用。
当然 DEXMO 的最大卖点其实不是手势识别,而是逼真的触觉反馈(haptics)+手势识别。手势识别+触觉反馈的方案肯定会是以后人机交互的重要一环。最近收购 Leap Motion 的 UltraHaptics 就是一家做触觉反馈的公司。
还有一种用磁力传感器的——trakSTAR 电磁式空间位置追踪系统。通过在手上贴的磁力传感器的磁场变化,来确定传感器的位置角度,再根据反运动学确定手的具体位置。
图为 trakSTAR 使用示意图
此方案需在手部贴 6 个磁力传感器(5个指尖+1个手背),并在面前放一个磁力发射器。磁力发射器会在一定范围内形成一个特殊的电磁场,然后根据传感器在电磁场中不同位置角度检测到的电磁场强度的不同,来推断出指尖及手掌的位置角度。再通过反运动学,确定所有手部关节点的位置。
此方案的缺点是有效使用范围太小,价格太贵,适用场景太少。优点是精度很高,稳定性很好,并且可获得手部所有自由度。
目前此方案还只有纯科研在用,最近几个学术界公开的手势数据集 FHAB、 BigHand 都是用此设备采集的。
图为 FHAB 数据集中的示意图
1 2 3 下一页>