谷歌TenosrFlow開發者峯會2018上,發佈了面向JavaScript開發者的全新機器學習框架 TensorFlow.js。這裏介紹一個TensorFlow.js的Demo,只須要一個網絡攝像頭和瀏覽器,便可以訓練MobileNet網絡,實現利用人臉識別玩轉吃豆豆小遊戲。html
教程操做極其簡單粗暴,詳情請戳閱讀原文瀏覽器
PS:強烈建議以1080p觀看視頻,本人頭像沒有打碼,還請見諒網絡
https://v.qq.com/x/page/i0619q7pkrw.html框架
文字教程機器學習
1 進入TensorFlow.JS官網ide
連接:https://js.tensorflow.org/學習
2 點擊吃豆豆Demo(WEBCAM CONTROLLER)測試
向下瀏覽TensorFlow.JS網頁,找到WEBCAM CONTROLLER[2],點擊GO TO DEMO!,進入吃豆豆小遊戲3d
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的吃豆豆小遊戲就介紹到這裏,雖然示例很簡單,但意義很深遠。可見深度學習的應用會更加普遍,更加實用,更加貼近大衆的生活。