以前很长的一段时间内,一直在作阿里云人工智能产品 ET,javascript
作为了一名前端工程师,参与了当中的一些工程工做,分享出来,但愿对你们有所帮助。前端
前端工程在人工智能的团队到底能作什么,体现怎么的价值?对此,能够先下图的一个总结,而后我会逐条分析java
从咱们的实践看,要完成一个完整的人工智能项目,三种东西是不可或缺的:算法,数据和工程。web
而前端在这三个方向种,最容易参与进去,同时也最容易作出彩的地方就是在工程方面,咱们把这块内容叫作大前端。ajax
具体的大体能够分为五块内容:人机交互,数据可视化,产品Web, 计算,模型训练和算法执行。算法
对于前三点偏重交互的领域,毋庸置疑用前端作起来得心应手,编程
然后面偏重计算的领域,前端是否合适作,或者说前端该怎么去作是有能够探讨的。后端
一.人机机互:浏览器
这个应该前端这几年重点发力,并且取得不错进展的地方。服务器
特别是随着HTML5技术和移动互联网的普及,浏览器对PC和手机硬件的控制愈来愈好。
在AI的项目中,不少时候须要获取麦克风和摄像头的权限,好实现“听”,“说”, “看”的功能。
具体你们能够参考H5中的MediaDevices.getUserMedia 文档,里面对这块有详细的介绍。
其余,对于图片的处理,以前网上已经很多的用Canvas例子,我就不作过多的介绍。
这里重点对语音处理的内容,这块因为须要不少专业方面的知识,以前处理前端处理起来仍是挺痛苦的,
不过如今Web Audio API 很好的解决了这个问题。
它提供了在Web上控制音频的一个很是有效通用的系统,容许开发者来自选音频源,对音频添加特效,使音频可视化,添加空间效果 等等。
更有甚者,Chrome中已经自动集成了语音识别的基础SDK
二. 数据可视化
数据可视化 能够是前几年特别火的一个方向,特别是大数据风起云涌的时候
而这些年明显的趋势就是人工智能,就是AI,在这里其实也有不少可视化的工做
好比咱们在 ET 项目中就须要作不少声音的可视化
以及如今外面在作的一些人脸可视化的内容
地址:PREDICTIVE_WORLD, the program that predicts your future/
三. 产品Web
任何人工智能的技术最终必定须要转化成实际的产品或者项目,这样的话,每每少不了Portal和控制台。
这些工做,前端的工做也是在所不免。
四. 算法执行
算法执行顾名思义,其实就是执行算法逻辑,好比人脸识别,语音识别 …
前几年有些你们对前端的认知还挺溜在纯浏览器端,但随着 V8 引擎在2008 年发布, Node.js 在2009 年 发布,前端的领地就扩展到服务器端,桌面应用。
这些算法执行的原先须要后端同窗开发的,如今也能够由前端同窗才作。
咱们不少AI的项目,不少时候每每就是算法的同窗提供给咱们一些动态连接库或者C的代码,咱们经过Nodejs驱动这些服务提供 http接口,浏览器经过ajax来调用这些接口。
更有甚者,如今PC性能体能,V8对JS执行的优化,特别WebGL 在各个浏览器端的普及
不少算法执行不必定并不必定须要在后端执行,浏览器也能够胜任。
好比:
Tranck.js :就是纯浏览器的图像算法库,经过javascript计算来执行算法逻辑
regl-cnn: 浏览器端的数字识别类库,与track.js 不一样的是,它利用浏览器的WebGL 才操做GPU, 实现了CNN
五. 模型训练
虽然如今阶段也出现了像 ConvNetJS 这种在浏览器端作深度学习算法训练的工具,
但整理来说,前端在这块仍是很是欠缺的,缺乏很是成功的实践。
究其缘由,仍是由于跨了领域,并且基础的专业类库每每都不是javascript写的,形成更大的隔阂
但就像谷歌的TensorFlow机器学习框架底层大部分使用 C++实现,但选择了 Python 做为应用层的编程语言。
Javascript 在各个端,特别是web端的优点,也是一门很是优秀的应用开发预发。
可喜的是看到挺多同窗在往这个方向走,咱们拭目以待
ConvNetJS:Deep Learning in your browser