在机器被发明之后,手势因具备键盘、鼠标、触屏等交互办法所无法替代的天然上风,仍旧有诸多运用处景。
在电影《钢铁侠》里面,主角一挥手,凭空推拉拖拽操控虚拟物体,切实其实不要太炫酷了。
做到像电影中那样高精度、稳定性好的手势识别,须要硬件和算法的加持,两者缺一不可。
手势识别都有哪些常见的硬件方案?工程师是如何用 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的演示
3、数据手套
数据手套是指在手上带一个内置传感器的特制手套,通过传感器检测手指的屈伸角度或位置,再根据 Inverse kinematics(逆运动学)来打算脱手的位置。
一样平常用到的传感器有波折传感器、角度传感器、磁力传感器等。
波折传感器和角度传感器类似都是可检测手指的波折程度,我们以 DEXMO 力反馈手套为例,该手套利用旋转传感器捕捉 11 个自由度的手部运动,包括每根手指的伸展和波折,以及大拇指一个额外的旋转自由度。
此方案对手的局部动作检测很准,而且不受视觉方案中视野范围的限定。但缺陷是手上必须戴手套未便利,且只能检测局部的手指动作,不能定位手部整体的位置角度。若想要检测手的位置角度, DEXMO 需合营其他 6 自由度追踪器利用。
当然 DEXMO 的最大卖点实在不是手势识别,而是逼真的触觉反馈(haptics)+手势识别。手势识别+触觉反馈的方案肯定会是往后人机交互的主要一环。最近收购 Leap Motion 的 UltraHaptics 便是一家做触觉反馈的公司。
还有一种用磁力传感器的——trakSTAR 电磁式空间位置追踪系统。通过在手上贴的磁力传感器的磁场变革,来确定传感器的位置角度,再根据反运动学确定手的详细位置。
trakSTAR利用示意图
此方案需在手部贴 6 个磁力传感器(5个指尖+1个手背),并在面前放一个磁力发射器。磁力发射器会在一定范围内形成一个分外的电磁场,然后根据传感器在电磁场中不同位置角度检测到的电磁场强度的不同,来推断出指尖及手掌的位置角度。再通过反运动学,确定所有手部枢纽关头点的位置。
此方案的缺陷是有效利用范围太小,价格太贵,适用场景太少。优点是精度很高,稳定性很好,并且可获得手部所有自由度。
目前此方案还只有纯科研在用,最近几个学术界公开的手势数据集 FHAB、 BigHand 都是用此设备采集的。
FHAB 数据集中的示意图
手势识别的两类算法模型
通过以上科普,相信大家对手势识别的硬件方案有了初步的理解。但要想做妙手势交互,仅硬件方案是不足的,还须要专业算法的支持。
当我们通过摄像头得到深度图后,下一步便是把深度图输入给算法,算法可以输出我们手部所有关键点的 3D 位置。
手部关键点也可以理解为手部骨架的枢纽关头点,常日用 21 个 3D 关键点来描述。每个 3D 关键点有 3 个自由度,那么输出维度便是 213。以是我们常常用一个 213 维的矢量来描述,如下图:
可视化后的21个手部3D关键点
目前学术界已经提出各种算法用于办理“基于深度的手势姿态估计问题“,这些算法大体可以分成模型驱动(model-driven)和数据驱动(data-driven)两种办法。
1、模型驱动类算法
此类算法常日是预先用手部 pose(pose 指位姿参数或节点位置,后文将统称为 pose)天生一系列手的几何模型,并建立一个搜索空间(所有可能的手势几何模型的凑集),然后在搜索空间内找到与输入深度图最匹配的模型。
此时,模型对应的参数便是所求的 pose。此类算法属于天生式方法(Generative Approaches),我们以下图中的论文为例:
模型驱动类算法常日须要设计一种办法把 pose 转换成对应的几何模型。
此论文用了 linear blend skinning(一种骨骼蒙皮动画算法):意思便是给骨架蒙上一层皮肤,并让皮肤跟随骨骼运动一起变革,多用于动画领域。
先把 pose 转换成对应的 mesh(下图左侧),在进一步转换成光滑曲面模型(下图右侧)。我们可以理解为 pose 是自变量,几何模型可由 pose 算出,且几何模型与 pose 逐一对应。
手部几何模型
输入的手部深度图可转化为点云, 此点云就相称于在真实的手表面上采集到的一些 3D 点,如下图中的红点和蓝点:
这样就可以定义丢失函数为点云中的点到模型表面的间隔(上图中的红线),以此描述深度图和pose的相似度。丢失函数的输入是深度图和 pose,输出是差异度。丢失函数的输出值越小,解释输入的深度图和pose越相似。
因此,只要在搜索空间中找到令丢失函数最小的 pose 即为所求的pose。但因搜索空间不能写成解析形式,没法一次性求出丢失函数的最小值,常日只能用数值打算方法,如PSO,ICP等,不断迭代打算得到最优解。
上图从左到右展示了迭代初期到迭代结束时的 pose,这种迭代的数值解法常日对初始化哀求较高,若初始化的不好,则须要很永劫光才能迭代收敛,还有可能无法收敛到全局最小值(由于丢失函数是非凸函数),以是算法实现时,常日利用上一帧的pose来初始化当前帧的打算。
这种模型驱动类方法须要手工设计几何模型和丢失函数。大略的几何模型打算量小,繁芜的几何模型准确度高。常日设计模型时须要在准确度和性能之间做权衡。
不同的手部几何模型
模型驱动类的算法上风是不须要任何演习数据,只要设计的好,写完就可以直接用。 缺陷是须要手工设计模型,打算量较大,随意马虎偏差累计导致漂移,对初始化哀求高,常日只能用在手势追踪领域。
2、数据驱动类算法
此类算法是指利用网络数据中演习样本与其对应的标签关系,让机器学习一个从样本到标签的映射。 此类算法属于判别式方法(Discriminative Approaches)。
这样的机器学习算法有很多,可以是早期利用的随机森林,SVM 或是最近研究的火热的神经网络等。此类方法的优点是不须要设计繁芜的模型,缺陷是须要大数据。但现在大数据时期数据量已经不是问题,这种数据驱动的办法已经成为目前的主流研究方向。
早期学术界研究手势关键点回归的经典方法有 Cascade regression, Latent Regression Forest 等。近些年研究紧张集中在各种神经网络如:DeepPrior 系列、REN、pose guided、3D-CNN、Multi-View CNNs、HandPointNet、Feedback Loop 等。
由于此处谈论的用于手势的神经网络与普通的图的神经网络并无实质差异,而神经网络的科普文章已经很多,这里就不做科普了,我们仅挑几个有代表性的网络构造先容一下:
DeepPrior:网络构造大体如下图,通过初始网络得到粗略的 pose,再用 refine 网络不断优化, 并且在末了的全连接层前加了一个低维嵌入,迫使网络学习把特色空间压缩到更低维度。 此网络后续有更优化的版本 DeepPrior++。
Feedback Loop:网络构造如下图,此网络在预测 pose 之后,反过来用 pose 天生深度图,并与输入的深度图一起预测更优的 pose,此 pose 又可用来天生更优的深度图,以此迭代循环优化pose。
3D CNN:网络构造如下图,此网络把2D深度图上用像素的描述的深度信息,以TSDF的办法转化为体素(3D的像素),并用3D 卷积代替了普通的2D卷积。
此处最大的贡献便是在网络构造上从2D走到了3D,由于传统2D卷积网络是为2D图像设计的,并不一定适宜3D信息的提取,而用3D卷积网络则更随意马虎获取3D特色,也就更适用于3D手部关键点回归的问题。
HandPointNet:网络构造如下图,此网络输入时把深度图转成点云,然后用 PointNet 做手部 3D 关键点回归。
HandPointNet的紧张贡献是首次把PointNet用在了手势关键点回归上,个中的PointNet是很有代表性的网络。PointNet 首次用 3D 点云来作为网络输入而不是 2D 图片。
PointNet 比上一个先容的 3DCNN 更进一步探索了在 3D 空间中的神经网络架构,以及如何更有效的提取 3D 特色,PointNet后续有更优化的版本PointNet++。
手势识别的四大运用处景
上述我们先容了常见的手势识别硬件方案与算法模型,那么手势识别真正落地的运用处景都有哪些呢?
很多人或许认为手势交互还只是勾留在科幻电影的观点而已,接下来,我们以产品运用为例,来先容一些已经商业落地或潜在的落地场景。
1、VR手势
以 Leap Motion 为代表的很多公司都在做 VR+ 手势。 VR 强调沉浸感,而手势交互可以极大的提升 VR 利用中的沉浸感。以是 VR+ 手势这个落地方向很靠谱,等 VR 得到遍及后,定会改变人类的娱乐办法。
此类代表产品:LeapMotion、uSens、极鱼科技等。
2、AR手势
以 HoloLens 为代表的很多公司都在做 AR 眼镜。AR 眼镜可能会分开实体的触屏和鼠标键盘这些输入工具,取而代之的输入是图像和语音等。此时手势交互便必不可少,不过 AR 还处在比 VR 市场更早期的阶段,需连续积累技能,等待市场成熟。
此类代表产品有:HoloLens、Magic Leap、Rokid Glass、Nreal、Project North Star、亮风台等。
Leap Motion Project North Star 的演示片段
3、桌面手势
以 Sony Xperia Touch 为代表的投影仪+手势识别,将屏幕投影到任何平面上,再通过手势识别仿照触屏操作。
这里用到的手势识别比较大略,基本只要识别单点多点。但利用中手很随意马虎挡住投影仪显示的屏幕,而且还有显示清晰度的问题。此场景可能更多的是一种探索,落地的可能性较小。
不过可以开个脑洞:如果把这里的平面手势识别改成空中手势识别,平面投影改玉成息 3D 投影,那就可以实现文章开头提到《钢铁侠》里的全息掌握台了。
空中手势识别已经能做到了,但目前还没有真正的全息投影的技能,只有一些伪全息投影。如反射式和风扇式的伪全息投影。
反射式伪全息投影只是把物体的影像反射到反射面板(塑料板)后成一个虚像。因板子透明,以是看起来彷佛是在空中直接成像。风扇式伪全息投影是利用人眼的视觉暂留征象,让画面看起来像是直接在空中成像。
反射式伪全息投影
风扇式伪全息投影
这些伪全息投影的最大问题便是没法用手和虚拟影像交互。想要实现《钢铁侠》里面的全息事情台,最有可能的办法是在 AR 眼镜里面实现,只要把打算得到的手势位姿和显示设备联合标定对齐,就可以实现手和虚拟影像的交互了。
此类代表产品有:Xperia Touch、光影魔屏等。
4、车载手势
车载手势指的是在开车时用手势交互掌握中控台的一些选项按键等。比较于传统办法,手势的上风是不用每次都去按按钮或戳屏幕,更智能方便。
在利用触屏时,司机须要看着屏幕才知道按钮在哪,看屏幕这一动作,有极大的安全隐患。 而手势可以合营语音反馈直接操作,不须要盯着屏幕。
车载手势可以一定程度提高驾驶安全性,但它也有一些缺陷,在空中做手势随意马虎手累, 再加上手势识别的准确性和延迟问题,远不如直接用手过去转转按钮、点点屏幕来的方便。以是目前业内基本都采取的都是传统办法+手势操作赞助的办法。
此类代表产品有:宝马7系、拜腾汽车、君马SEEK 5等。
结语
AI 时期,语音识别和手势识别等交互办法的加入,让我们与机器有了更多互动的可能。语音交互在人工智能时期已经有了先发上风,正在被逐渐落地并且有望大规模运用。而从手势识别的落地场景来看,这种交互办法还处在行业早期阶段。
但可以预见的是,手势交互是未来人机交互必不可少的一部分,Rokid 一贯致力于 AI 人机交互的研究与探索,代表产品有智能音箱以及 AR 眼镜,期望能在 AI 时期为用户带来自然友好的交互体验。
在你的想象中,还有哪些场景能用得手势交互呢?欢迎大家留言谈论。雷锋网
作者先容:张兆辉,浙江大学竺可桢学院求是科学(物理)本科毕业,紧张研究方向包括手势识别,姿态估计,立体视觉,深度学习等,现就职于 Rokid R-Lab 图像算法工程师,卖力手势算法研发等干系事情。