Google推出网页版跨平台AI工作管线框架MediaPipe

Google将跨平台多模应用机器学习工作管线框架MediaPipe移植到了网页平台,在去年的时候,Google发布MediaPipe开源项目,可以让开发者在移动设备Android和iOS,以及边缘设备Google Coral上,以MediaPipe图(Graph)形式构建和执行机器学习工作管线。

现在通过WebAssembly技术以及XNNPack机器学习预测函数库的加持,Google将MediaPipe带上网页浏览器,并且能即时执行MediaPipe图。Google提到,他们用Emscripten将所有需要用到的C++程序代码都编译成WebAssembly,因此在执行的时候,网页浏览器可以非常快速地执行这些指令,比传统的JavaScript程序代码有效率的多。

而且Google还创建了一个简单的API,让JavaScript和C++之间能进行必要的通信,使得JavaScript能够直接更改MediaPipe图,并且进行交互,而机器学习模型与辅助的文本和数据文件,则被打包成二进制数据包,在执行的时候才加载。MediaPipe会自动使用WebGL,来处理需要用到OpenGL的运算。

虽然WebAssembly比纯JavaScript快得多,但还是比原生C++还要慢,Google提到,他们进行了许多优化,在可能的情况下,尽量使用GPU进行图像操作,并选择最轻量的机器学习模型版本,牺牲品质以换取速度。

但由于计算机着色器无法广泛地用于网页,因此没办法简单地利用TensorFlow Lite GPU机器学习预测,而使用CPU预测又会成为性能瓶颈,为了降低这情形带来的影响,Google使用XNNPack机器学习预测函数库,以扩展TfLiteInferenceCalculator,提升多数应用程序2到3倍的速度。

Google将MediaPipe网页版集成到网页可视化工具Visualizer中,提供交互式Playground环境,开发者可以快速迭代图的设计,使用鼠标和滚轮就能缩放图形表示,图也会即时根据编辑器的修改变化,而且每次图迭代,都可以即时的使用网络摄影机进行流媒体测试。

网页版MediaPipe目前仍然有一些限制,开发者只能使用模版图(Template Graph)进行编辑,无法重头开始设计,另外,图的执行程序还必须是单线程的。