TensorFlow.js人臉識別—玩轉吃豆豆小遊戲

谷歌TenosrFlow開發者峰會2018上,發布了面向JavaScript開發者的全新機器學習框架 TensorFlow.js。這裡介紹一個TensorFlow.js的Demo,只需要一個網路攝像頭和瀏覽器,即可以訓練MobileNet網路,實現利用人臉識別玩轉吃豆豆小遊戲。

操作極其簡單粗暴,詳情請戳下述視頻,查看操作教程

PS:建議以1080p觀看視頻,本人頭像沒有打碼,還請見諒

undefined_騰訊視頻?

v.qq.com圖標

文字教程

1 進入TensorFlow.js官網

TensorFlow.js鏈接:

TensorFlow.js?

js.tensorflow.org圖標


2 點擊吃豆豆Demo(WEBCAM CONTROLLER)

向下瀏覽TensorFlow.JS網頁,找到WEBCAM CONTROLLER[2],點擊GO TO DEMO!,進入吃豆豆小遊戲


3 吃豆豆Demo功能區介紹

功能區0:當前網路攝像機實時捕捉畫面

功能區1:訓練集採集區

  • 1.1:向上移動
  • 1.2:向下移動
  • 1.3:向左移動
  • 1.4:向右移動

註:因為吃豆豆的對象只有四種移動方式(上下左右),在深度學習中,這是一個多分類的問題,即訓練集中需要包括這四種類別的圖像。

功能區2:超參數設置

功能區3:訓練模型按鈕

功能區4:測試/開始遊戲按鈕

功能區5:遊戲主界面


4 製作訓練集

由上述分析可知,這是一個四分類問題。我們通過對功能區0和功能區1操作來製作訓練集。

首先,我們定義「人臉向上」為向上移動吃豆豆對象的指令。同理,「人臉向下」、「人臉向左」和「人臉向右」分別是向下、向左和向右移動吃豆豆對象的指令。

接下來,就開始製作「人臉向上」的數據集。此時,人臉稍微仰視,保持姿態點擊下面紅色方塊,即可完成畫面拍攝。連續點擊方框,直到有100個examples

同理,製作「人臉向左」的數據集

同理,製作「人臉向右」的數據集

同理,製作「人臉向下」的數據集

哈哈,大功告成


5 訓練模型

訓練集製作完成後,想要訓練模型,此時還需要一個網路。這裡默認使用MobileNet網路[3]。想要了解該網路的童鞋,可以自行查看該論文和TensorFlow上的代碼。

訓練集和網路都有了,可以直接訓練了嗎?或者此時還要做些什麼嗎?!

答:可做可不做。因為超參數默認已經設定好了,你可以直接使用默認值,也可以調節超參數。

此時,可以直接點擊TRAIN MODEL,開始訓練模型

耐心等待不到1分鐘,當看到LOSS值已經不再變化時,標誌當前模型已經訓練完成。結果如下所示:


6 開始遊戲

點擊PLAY,開始吃豆豆小遊戲,此時可以看到畫面中出現「READY」,即表示遊戲開始。你可以通過向上/向下/向左/向右偏移人臉來控制吃豆豆對象的移動方式。

通過若干次移動後,我終於吃到了豆豆

關於TensorFlow.js的吃豆豆小遊戲就介紹到這裡,雖然示例很簡單,但意義很深遠。可見深度學習的應用會更加廣泛,更加實用,更加貼近大眾的生活。


參考

[1]TensorFlow.JS:js.tensorflow.org/

[2]TensorFlow.JS WEBCAM CONTROLLER:storage.googleapis.com/

[3]MobileNet:arxiv.org/abs/1704.0486

-------我是可愛的分割線-------

若喜歡Amusi推送的文章,請掃描下方二維碼關注CVer公眾號!

weixin.qq.com/r/NioZAUb (二維碼自動識別)

-------我還是可愛的分割線-------

喜歡Amusi寫的文章,一定動動手點贊哦!


推薦閱讀:

FaceRank-人臉打分基於 TensorFlow 的 CNN 模型,這個妹子顏值幾分? FaceRank 告訴你!
TensorFlow初步(4)
手把手教你用TensorFlow實現看圖說話|教程+代碼
Geoffrey Hinton的CapsNet(《Dynamic Routing Between Capsules》)中的tf.stop_gradient()
學習筆記TF039:TensorBoard

TAG:深度學習DeepLearning | 計算機視覺 | TensorFlow |