郭一璞 发自 凹非寺 量子位 报道 | 公众号 QbitAI借助TensorFlow Lite和MediaPipe,谷歌刚刚开源了一款手势识别器,可以直接在手机上运行,实时跟踪,并且已经开源。 官方说,效果长这样: ![]() ![]() 有了这项应用,你可以开发手语识别、AR游戏,甚至用它来玩石头剪刀布。 ![]() 有App可玩谷歌已经把这款手势识别器做成了一款名为“Hand Tracking GPU”的App,在安卓端有对应的apk安装包,下载到手机上,安装成功后,无需联网就可以直接用了。 当然,iOS用户也可以安装,但是没有现成的安装包,可以下载源代码自行编译。 App默认调用前置摄像头,如果屏幕中出现的是你的脸,它是没有反应的。 伸手到屏幕前,就可以和官方演示的一样,识别出手部的各种姿势,123456789都可以识别: 或者比个“OK”: 点个赞: 反应还是非常敏锐的,效果不错。不过,不知是什么原因,有时候玩着玩着,屏幕也会突然“放空”,只能看到手,识别不出手势,这也被推特上的网友抓了包: 另外,这个App只支持一只手的手势识别,如果你把两只手都放到摄像头前,它只能识别一只: 说好的石头剪刀布呢? 当然,想想办法还是能让它识别两只手的,比如这样: △ 它不知道我换了一只手悄咪咪的,就把识别出的手势框图从一只手转移到了另一只手上。 △ 它也不知道我换回来了当然,你也可以换回来,来去切换自如,仿佛背后的模型已经被忽悠瘸了。 三大模型不过,被“忽悠瘸了”的锅,可不能让一个模型背,因为,这款应用的背后有3个模型。 BlazePalm从整个图像中界定手部轮廓,找到手掌的位置,检测平均精度达到95.7%。 Hand Landmark前一个模型找到手掌之后,这个模型负责定位关键点,它可以找到手掌上的21个关节坐标。 在训练过程中,研究人员们用到了将近30000张真实世界的标注过的手掌图片,来获取ground truth数据。 之后,用混合训练的方式训练模型。 Gesture Recognition现在,手部关键点检测结果出来之后,需要判断比划出来的手势是什么意思,也就是识别出✌️是2,这里包含各种手势,除了123456789之外,还有yeah、ok等。 不过,遗憾的是似乎App里没有这个功能。 借助MediaPipe实现最后的实现,借助了MediaPipe,这是一个构建机器学习pipeline的框架。用于手势识别的MediaPipe图长这样: 前面的各种模型,都融入到了这张整体的图里,可以看到从拍摄到出结果的全过程。 另外,借助MediaPipe,还可以做人脸检测: 头发分割: 物体检测: 具体内容,可以进入传送门体验: 传送门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 — 完 — |
|