hi,大家好~我是shadow,一枚设计师/全栈工程师/算法研究员,目前主要研究方向是人工智能写作和人工智能设计,当然偶尔也会跨界到人工智能艺术及其他各种AI产品。
前端开发有哪些新的智能化趋势呢?今天重点整理tensorflow.js相关的内容。有非常多的基于tensorflow.js二次封装的js库,比如face-api.js、ml5.js等等。应用场景方面,发现图像方面的应用比较多,文本反而少,可能大家还不知道tensorflowjs有哪些文字场景吧。详细请往下翻看:欢迎有兴趣的朋友添加我(文末有福利),进一步交流哈~TensorFlow.js 是一个 JavaScript 库,用于在浏览器和 Node.js 训练和部署机器学习模型。
- face-api.js
Face-api.js是一个JavaScript API,是基于tensorflow.js核心API的人脸检测和人脸识别的浏览器实现。前端人脸识别相关的应用,推荐用face-api.js~
- ml5.js
ml5.js旨在为创意编程提供开箱即用的机器学习算法。该库封装了常用的机器学习算法和预训练模型,基于TensorFlow.js,可单独使用,也可搭配p5.js使用。
图像
imageClassifier
用于识别图像内容,可用于图像与文字的匹配
poseNet
用于识别人体姿势的关键点,可用于动作识别
bodyPix、UNET
用于人体与背景分割,可用于自动抠图
styleTransfer
风格迁移,可用于图片艺术滤镜
pix2pix、CVAE、DCGAN
图像生成,可用于手绘图生成实景图、根据文本生成图像
SketchRNN
图像生成的另一种方式,可用于基于初始笔画生成图案
YOLO
物体检测,可用于追踪物体
声音
soundClassifier
音频分类,可用于语音控制
pitchDetection
音调检测,可用于说话人识别
文本
CharRNN
文本生成,可用于输入法联想
Sentiment
情绪预测,可用于文本的情感判断
Word2vec
词转向量,可用于把文本转化为向量,在向量空间中进行计算
-----
辅助功能
featureExtractor
图像特征提取,可用于以图搜图、迁移学习
KNNClassifier
K-Nearest Neighbors算法创建分类器,可用于图像分类
17个功能建议一个个进行尝试,练习,掌握。
- magenta.js
- 音乐创作工具
magenta.js是一个基于TensorFlow.js构建的,在浏览器中使用WebGL加速运行的,用于通过Magenta模型生成音乐和艺术的JS框架。包括MusicVAE,MelodyRNN,DrumsRNN和ImprovRNN。不满足于代码库,最近,还推出了Magenta Studio (v1.0)一个音乐作曲工具软件包。
Magenta Studio is a collection of music plugins built on Magenta’s open source tools and models. They use cutting-edge machine learning techniques for music generation.
以上是相关的前端AI库~接下来再介绍一些相关的技术。
- BodyPix
BodyPix是谷歌发布人体图像分割工具,可直接在浏览器中运行,仅需使用几行代码即可调用。BodyPix能将图像像素分割为属于人的和不属于人的部分,属于人的部分则可以进一步分类为24个身体部位之一。试验了下,BodyPix可以在15寸MacBook Pro上以25 fps的速度运行,渲染人和身体部位的分割,而在iPhone X上,BodyPix能以21 fps的速度运行,还不错。除了tensorflow.js的封装,我们还可以使用mljs,更为简便的使用bodypix。我尝试利用谷歌的bodyPix,DIY了一个fastmask功能。
- MobileNet
Efficient Convolutional Neural Networks for Mobile Vision ApplicationsMobileNet是一个轻量化的神经网络模型,它极大地压缩模型文件大小,非常适合移动端使用。可以识别生活中常见的大部分物品。在前端的应用主要是搭配迁移学习,利用预训练好的MobileNet,为用户训练新的图像提供支持。下面案例是使用预训练的MobileNet模型专门用来识别美洲驼…除此之外,我们还可以,训练一个简单的分类器来对花朵图像进行分类;训练一个没有感情的“剪刀石头布”识别器;或者是用来训练一个方向控制器控制游戏里的角色。通过浏览器加载预训练的MobileNet模型,用户可以为上、下、左、右4个方向分别设置不同的类别,只需使用浏览器调用电脑的摄像头拍摄若干的照片,即可训练用户自己的模型。