你比个手势,AI就识别出Emoji,浏览器运行毫无压力:代码开源,推特2.8万赞

284 阅读3分钟
原文链接: zhuanlan.zhihu.com
圆栗子 发自 凹非寺
量子位 报道 | 公众号 QbitAI

一只手势识别AI,怎样才算得上 (优) 秀啊?

不停地变换姿势,都能实时输出Emoji,大约是很秀了:



🖖是守卫 (误) ,是来自《星际旅行》瓦肯的举手礼。不大常用,做起来甚至有难度。

🤞是好运,一般会两只手一起比。不过,也不是人类通用的手势。

即便这样,AI依然机智地识别出来。并且,AI是在浏览器上跑,几乎没有延时

AI的爸爸,名字叫Nick Bourdakos (简称“尼克”) ,是来自IBM的程序猿。

尼克把自己的调教成果发了推特,揽下2.8万赞


△ 666


尼克用的是TensorFlow.js,实时识别毫无压力。

他把算法开源了,说大家都可以试一试。

除了手势,修炼其他物体的识别,也可以同样优秀 (见下文) 。

半小时就好

尼克说这个模型很简单,就是SSD-MobileNet

MobileNet是分类,SSD是目标检测,搭配食用也是常规方法。



他是用IBM云上的GPU训练的,免费的k80,半小时就训练好了。

在训练开始之前,要先准备数据:AI吃的是标注过的手势图

准备就绪,就来安装模型吧:

1 $ npm install -g cloud-annotations

然后,可以开始训练了:

1 $ cacli
 2 ┌─────────────────────────────┐
 3 │ (C)loud (A)nnotations (CLI) │
 4 │ version 1.0.12              │
 5 └─────────────────────────────┘
 6 
 7 Usage: cacli <command>
 8 
 9 where <command> is one of:
10   init         Interactively create a config.yaml file
11   train        Start a training run
12   logs         Monitor the logs of a training run
13   progress     Monitor the progress of a training run
14   list         List all training runs
15   download     Download a trained model
16 
17 cacli <cmd> -h     quick help on <cmd>


当然,也不是非要用IBM云,也不是非要用GPU。拿CPU也能调教AI,大概要几小时吧。

如需本地调教,请参见这个issue:

run docker container to train locally · Issue #33 · cloud-annotations/traininggithub.com图标

训练完成,该在浏览器上跑了。GitHub项目里,自带了转换为TensorFlow.js模型的脚本。

把模型添加到React App里面。



最后,写一句npm start,用浏览器打开http://localhost:3000。

耶,这样就可以对着屏幕随意舞动手指了,你的AI会明白的:



当然,就像开头说的那样,这机智的AI才不是只会识别手指。

喝点什么

只看你用什么样的数据去投喂AI了。

曾经,尼克就帮AI修炼了分辨汽水的眼力。

第一题:一瓶雪碧,一瓶Canada Dry,都是绿色。



不管调换位置、还是侧过瓶身,AI都不会被迷惑。定格一看:


第二题:加大难度,两瓶都是Mountain Dew,一瓶普通一瓶低糖。

AI依然分得清楚,毫不犹豫。



分辨手势,分辨汽水,都不失水准。

那么问题来了,你有大胆的想法么?

想好了就开始调教吧,代码在这里:

cloud-annotations/traininggithub.com图标

P.S. 推特评论区,已经有小伙伴亲测成功,并表示Easy。


△ 再把识别结果,显示成Emoji就完美了

量子位 · QbitAI

վ'ᴗ' ի 追踪AI技术和产品新动态

戳右上角「+关注」获取最新资讯↗↗

如果喜欢,请分享or点赞吧~比心❤