hi, 大家好~ 我是 shadow, 一枚设计师 / 全栈工程师 / 算法研究员 , 目前主要研究方向是人工智能写作和人工智能设计, 当然偶尔也会跨界到人工智能艺术及其他各种 AI 产品.
前端开发有哪些新的智能化趋势呢? 今天重点整理 tensorflow.JS 相关的内容. 有非常多的基于 tensorflow.JS 二次封装的 JS 库, 比如 face-API.JS,ml5.JS 等等.
应用场景方面, 发现图像方面的应用比较多, 文本反而少 , 可能大家还不知道 tensorflowjs 有哪些文字场景吧. 详细请往下翻看:
欢迎有兴趣的朋友添加我 ( 文末有福利 ), 进一步交流哈~
- tensorflow.JS?
- 前端 AI 基础库
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,.NET
用于人体与背景分割, 可用于自动抠图
styleTransfer
风格迁移, 可用于图片艺术滤镜
pix2pix,CVAE,DCGAN
图像生成, 可用于手绘图生成实景图, 根据文本生成图像
SketchRNN
图像生成的另一种方式, 可用于基于初始笔画生成图案
YOLO
物体检测, 可用于追踪物体
-----
声音
soundClassifier
音频分类, 可用于语音控制
pitchDetection
音调检测, 可用于说话人识别
-----
文本
CharRNN
文本生成, 可用于输入法联想
Sentiment
情绪预测, 可用于文本的情感判断
Word2vec
词转向量, 可用于把文本转化为向量, 在向量空间中进行计算
-----
辅助功能
featureExtractor
图像特征提取, 可用于以图搜图, 迁移学习
KNNClassifier
K-Nearest Neighbors 算法创建分类器, 可用于图像分类
17 个功能建议一个个进行尝试, 练习, 掌握.
ml5.JS 的详细介绍可看:
3 行代码玩转 AI,ml5.JS 前端机器学习简明指南
- 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 人机协作了~~
以上是相关的前端 AI 库~ 接下来再介绍一些相关的技术.
- 前端智能技术 01
- BodyPix
BodyPix 是谷歌发布人体图像分割工具, 可直接在浏览器中运行, 仅需使用几行代码即可调用. BodyPix 能将图像像素分割为属于人的和不属于人的部分 , 属于人的部分则可以进一步分类为 24 个身体部位之一. 试验了下, BodyPix 可以在 15 寸 MacBook Pro 上以 25 fps 的速度运行, 渲染人和身体部位的分割, 而在 iPhone X 上, BodyPix 能以 21 fps 的速度运行, 还不错.
除了 tensorflow.JS 的封装 , 我们还可以使用 mljs, 更为简便的使用 bodypix.
BodyPix 可以用来干什么?
我尝试利用谷歌的 bodyPix,DIY 了一个 fastmask 功能.
除此外, 还可以用来 自动抠图 .
- 前端智能技术 02
- - MobileNet
- Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNet 是一个轻量化的神经网络模型, 它极大地压缩模型文件大小, 非常适合移动端使用. 可以识别生活中常见的大部分物品. 在前端的应用主要是 搭配迁移学习, 利用预训练好的 MobileNet, 为用户训练新的图像提供支持.
可以尝试下效果:
下面案例是使用预训练的 MobileNet 模型专门用来识别美洲驼...
除此之外, 我们还可以, 训练一个 简单的分类器来对花朵图像 进行分类; 训练一个没有感情的 "剪刀石头布" 识别器 ; 或者是用来训练一个 方向控制器控制游戏里的角色 .
比如谷歌的一个实验:
通过浏览器加载预训练的 MobileNet 模型, 用户可以为上, 下, 左, 右 4 个方向分别设置不同的类别, 只需使用浏览器调用电脑的摄像头拍摄若干的照片, 即可训练用户自己的模型.
往期, 我写过一篇关于 MobileNet 的使用教程, 对代码感兴趣的, 可以点击以下链接查看:
TensorFlow.JS, 迁移学习与 AI 产品创新之道
- 前端智能技术 03
- Yolo
You Only Look Once: Unified, Real-Time Object Detection 提出的方法, 简称 YOLO. 使用 tensorflow.JS 我们可以在浏览器 用摄像头实现目标检测. 比如我们可以识别以下图片里的物体:
前端可以很容易的调用相关的 tensorflow.JS 模型实现目标检测. 目标检测可以用来干什么?
比如你可以为你的浏览器加上 防偷窥功能 , 自动识别除你以外的人 ( 偷偷站在你背后的人 ), 自动把网页隐藏, 保护隐私.
- 前端智能技术 04
- PoseNet
用于实时估计人体的姿势, 返回 17 个关键节点, 如下图
此模型称为 PoseNet, 可以估计照片中人体的鼻子, 眼睛, 耳朵, 手臂, 腿关节等 17 个关键点, 关键可以达到实时的效果 , 并且我们可以很方便地在 Web 浏览器中体验这项技术.
如何使用, 可以查看:
10 行代码用 tensorflowJS 实现人体关键点检测
- 前端智能技术 05
- KuroNet
这是日本人做的, 利用 TensorFlow.JS, 轻松阅读古草体文字.
本质上是一种 OCR 识别技术 , 那么什么是古草体呢?
是近现代日语中很流行一种类似于 "草书" 的书法形式, 这在个人信件和诗歌中很常见. 该系统利用深度学习来学习国家文献研究博物馆所拥有的 "古草体" 的数据, 然后将 "古草体" 翻刻为现代日语.
利用 TensorFlow.JS, 能够在 Web 线上对 "古草体" 文字逐字识别 .
借此, 我们还可以用 tensorflow.JS 实现验证码的识别, 让浏览器自动帮我们输入验证码 ~
- 前端智能技术 06
- Text classification
tensorflow.JS 的案例很多都是图像上的应用, 少见有文本的应用. 这个文本分类的示例可以给我们不少启发. 该案例 在浏览器实现了攻击性语言的检测 , 我们可以给任何一句话打上分类标签. 我试验了下, 目前仅支持英文. 我们可以自行训练中文的.
应用场景有哪些呢? 我们 可以在浏览器实现自动提示广告文章, 过滤攻击性的文字等等.
综上, 前端的 tensorflow.JS 生态我觉得已经比较丰富了, 推荐 face-API.JS,ml5.JS,magenta.JS 都值得一玩. 除此之外, 6 项前端智能技术作为前端工程师, 都应该玩一遍~
近期热文推荐:
2020 工具产品智能化趋势
欢迎读者跟我进一步交流探讨 ( 下方阅读原文 )
来源: http://www.tuicool.com/articles/Ef2MBzY