开源人工智能相关的Scratch插件
文章目录
前言
早上@bilikyar提到:
codelab scratch 里面的 knn图像分类插件,貌似运行一段时间就会崩(也挺吃内存的),这是为什么呢?
@bilikyar给了两张截图:
我答复说:
确实挺吃内存,用的是js实现的tensorflow,性能比较低. 但我没有遇到浏览器崩溃的情况。我下午把这一部分开源出来好了,大家可以一起来改进。
图像分类插件
图像分类插件是这样的一种插件: 使用这个插件,用户可以训练自己图像分类模型,之后利用训练出的模型,去预测摄像头看到的物体。利用这个插件,可以制作许多有趣的项目。
诸如我们之前制作的的闭眼,请熄灯
:
由于使用了神经网络(MobileNet,Google提出的一种小型却高效的CNN模型,在accuracy和latency之间做了折中),这类的项目一般会被冠以人工智能
的称号。
废话少说,放码过来
我直接把代码放上来: scratch3_knn
简单介绍
技术层面, 底层使用的是TensorFlow.js
TensorFlow.js is an open-source hardware-accelerated JavaScript library for training and deploying machine learning models.
由此可知scratch3_knn的所有运算都发生在本地浏览器里,并没有利用云端,代码是隐私安全的。也正由于计算都发生在本地,所以很吃性能。
scratch3_knn本质上是对tensorflow/tfjs-models做了积木化的包装。
值得一提的是tfjs-models中有许多有趣的项目,大家可以自行挖掘。
ml5js
Friendly Machine Learning for the Web. – ml5js.org
阅读这篇文章的朋友可能对适合教育的机器学习项目感兴趣。我把此前接触的另一个有趣的项目也列出来: ml5js
我们在使用TensorFlow.js之前,在图像分类这块使用的是ml5js。
刚才在整理资料时,发现小喵科技在这块做的探索和CodeLab挺相似的。他们似乎也经历了从ml5js到tfjs的过程。
此外,值得一提的是,小喵科技是家很优秀的公司,我记得买过他家的硬件,他们拥抱开源,很多项目都放在了Github上。除了产品做得用心,教程也写的挺用心的: 小喵科技 机器学习5(轻量TensorFlow)教程
很踏实的一家公司,给小喵科技点赞👍
测试
如果希望在本地测试scratch3_knn,环境的搭建可以参考我们此前的文章: 创建你的第一个Scratch3.0 Extension
欢迎提issue
如@bilikyar提到的,有可能会因为性能问题导致代码崩溃,欢迎大家提issue。
此外积木在语义上还比较粗糙,在积木语义方面有更好的建议也欢迎提issue和PR。
发散思维
有很多AI相关的js插件,其实都可以积木化到Scratch中,face-api.js是我非常喜欢的一个js库,积木化它似乎并不难。
参考
文章作者 种瓜
上次更新 2019-05-08