你比個手勢,AI就識別出Emoji,瀏覽器上跑:已開源
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
一只手勢識別AI,怎樣才算得上 (優) 秀啊?
不停地變換姿勢,都能實時輸出Emoji,大約是很秀了:

是守衛 (誤) ,是來自《星際旅行》瓦肯的舉手禮。不大常用,做起來甚至有難度。
是好運,一般會兩只手一起比。不過,也不是人類通用的手勢。
即便這樣,AI依然機智地識別出來。并且,它是在瀏覽器上跑,也幾乎沒有延時。
AI的爸爸,名字叫Nick Bourdakos (簡稱“尼克”) ,是來自IBM的程序猿。
△ 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
- 7Usage: cacli <command>
- 8
- 9where <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
- 17cacli <cmd> -h quick help on <cmd>
當然,也不是非要用IBM云,也不是非要用GPU。拿CPU也能調教AI,大概要幾小時吧。
訓練完成,該在瀏覽器上跑了。GitHub項目里,自帶了轉換為TensorFlow.js模型的腳本。
把模型添加到React App里面。

寫一句nmp start,用瀏覽器打開http://localhost:3000。
耶,這樣就可以對著屏幕隨意舞動手指了,你的AI會明白的:
當然,這只機智的AI,才不是只能識別手指。
喝點什么
只看你用什么樣的數據去投喂AI了。
曾經,尼克就幫AI修煉了分辨汽水的眼力。
題一:一瓶雪碧,一瓶Canada Dry,都是綠色。

不管調換位置、還是側過瓶身,AI都不會被迷惑。定格一看:

第二題:加大難度,兩瓶都是Mountain Dew,一瓶普通一瓶低糖。
AI依然分得清楚,毫不猶豫。

分辨手勢,分辨汽水,都不失水準。
那么問題來了,你想讓AI識別什么呢?
想好了就開始調教吧,代碼在這里:
https://github.com/cloud-annotations/training/
P.S. 已經有小伙伴親測成功,并表示Easy。
△ 再把識別結果,顯示成Emoji就更好了