谷歌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的吃豆豆小游戏就介绍到这里,虽然示例很简单,但意义很深远。可见深度学习的应用会更加普遍,更加实用,更加贴近大众的生活。