谷歌开源手势识别器,手机能用,运行流畅,还有现成的App,但是被我们玩坏了

郭一璞 发自 凹非寺

量子位 报道 | 公众号 QbitAI

借助TensorFlow Lite和MediaPipe,谷歌刚刚开源了一款手势识别器,可以直接在手机上运行,实时跟踪,并且已经开源。

官方说,效果长这样:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了
谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

有了这项应用,你可以开发手语识别、AR游戏,甚至用它来玩石头剪刀布。

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

有App可玩

谷歌已经把这款手势识别器做成了一款名为“Hand Tracking GPU”的App,在安卓端有对应的apk安装包,下载到手机上,安装成功后,无需联网就可以直接用了。

当然,iOS用户也可以安装,但是没有现成的安装包,可以下载源代码自行编译。

App默认调用前置摄像头,如果屏幕中出现的是你的脸,它是没有反应的。

伸手到屏幕前,就可以和官方演示的一样,识别出手部的各种姿势,123456789都可以识别:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

或者比个“OK”:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

点个赞:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

反应还是非常敏锐的,效果不错。不过,不知是什么原因,有时候玩着玩着,屏幕也会突然“放空”,只能看到手,识别不出手势,这也被推特上的网友抓了包:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

另外,这个App只支持一只手的手势识别,如果你把两只手都放到摄像头前,它只能识别一只:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

说好的石头剪刀布呢?

当然,想想办法还是能让它识别两只手的,比如这样:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

 它不知道我换了一只手

悄咪咪的,就把识别出的手势框图从一只手转移到了另一只手上。

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

 它也不知道我换回来了

当然,你也可以换回来,来去切换自如,仿佛背后的模型已经被忽悠瘸了。

三大模型

不过,被“忽悠瘸了”的锅,可不能让一个模型背,因为,这款应用的背后有3个模型。

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

BlazePalm

从整个图像中界定手部轮廓,找到手掌的位置,检测平均精度达到95.7%。

Hand Landmark

前一个模型找到手掌之后,这个模型负责定位关键点,它可以找到手掌上的21个关节坐标。

在训练过程中,研究人员们用到了将近30000张真实世界的标注过的手掌图片,来获取ground truth数据。

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

之后,用混合训练的方式训练模型。

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

Gesture Recognition

现在,手部关键点检测结果出来之后,需要判断比划出来的手势是什么意思,也就是识别出✌️是2,这里包含各种手势,除了123456789之外,还有yeah、ok等。

不过,遗憾的是似乎App里没有这个功能。

借助MediaPipe实现

最后的实现,借助了MediaPipe,这是一个构建机器学习pipeline的框架。用于手势识别的MediaPipe图长这样:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

前面的各种模型,都融入到了这张整体的图里,可以看到从拍摄到出结果的全过程。

另外,借助MediaPipe,还可以做人脸检测:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

头发分割:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

物体检测:

谷歌开源手势识别器,有现成手机App,但是被我们玩坏了

具体内容,可以进入传送门体验:

传送门

MediaPipe

https://github.com/google/mediapipe

手部跟踪

https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md

手势识别apk/源代码

https://drive.google.com/file/d/1uCjS0y0O0dTDItsMh8x2cf4-l3uHW1vE/view

版权所有,未经授权不得以任何形式转载及使用,违者必究。