早在语言出现之前,人类就习惯使用肢体和手势,这种近乎本能的沟通方式,来互相交流。
在机器被发明之后,手势因具备键盘、鼠标、触屏等交互方式所无法替代的天然优势,仍然有诸多应用场景。
在电影《钢铁侠》里面,主角一挥手,凭空推拉拖拽操控虚拟物体,简直不要太炫酷了。
做到像电影中那样高精度、稳定性好的手势识别,需要硬件和算法的加持,两者缺一不可。
手势识别都有哪些常见的硬件方案?工程师是如何用 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 ,它可以追踪亚毫米精准度的高速运动,但目前尚处在实验室阶段。