Adobe 如何使用 TensorFlow.js 中的 Web ML 来增强 Photoshop 网页版
2023 年 3 月 30 日

Joseph Hsieh(Adobe 首席科学家,项目负责人)、Devin Fernandez(Adobe 产品管理总监)和 Jason Mayes(Google Web ML 负责人)撰写

简介

Photoshop 网页版 Beta  是流行的桌面图像编辑软件 Adobe Photoshop 的基于浏览器的版本。此在线工具提供广泛的功能和功能,可用于编辑、增强和操作图像,所有这些都通过网页浏览器完成。

在这篇文章中,我们将探讨 Adobe 如何计划将桌面上的高级 ML 功能(例如 对象选择工具)带到网页。我们还将了解基于 JavaScript 的网页机器学习如何提高 Photoshop 网页版 Beta 的性能和用户体验,以及我们将来可以期待什么。

挑战

Photoshop 通过 WebAssembly 最近在网页上可用,这是我们首次尝试将我们的工具移植到浏览器。但是,为了将对象选择工具等高级 ML 功能带到 Photoshop 网页版 Beta,它目前采用云推理解决方案来执行对象选择任务,这要求用户在线,并向云服务发送数据以执行机器学习任务。这意味着网页应用无法离线运行,用户的隐私无法得到保护,并且每次调用云都需要额外的延迟和货币成本,因为我们需要在我们自己的硬件上运行这些模型。

Moving image of screenshot illustrating responsive UI in Object Selection in Adobe Photoshop

谈到对象选择工具,依赖云推理有时会导致由于网络延迟而导致性能不佳。为了提供更好的用户体验,Adobe Photoshop 网页版 Beta 通过开发一个设备上推理解决方案来消除这种延迟,从而实现更快的预测和更灵敏的 UI。

TensorFlow.js 是 Google 的一个开源机器学习库,针对 JavaScript 开发人员,能够在浏览器的客户端运行。它是网页 ML 最成熟的选项,提供全面的 WebGL 和 WebAssembly 后端运算符支持,并且在将来,还将有一个选项用于在浏览器中使用 WebGPU 后端来实现更快的性能,因为新的网页标准不断发展。Adobe 已与 Google 合作,将 TensorFlow.js 带到 Photoshop 网页版 Beta 并启用高级任务,例如使用在浏览器中运行的 ML 进行对象选择,合作的详细信息如下所述。

当我们最初开始转换为网页解决方案时,我们注意到 WebAssembly(我们的核心移植的 Photoshop 代码正在运行的内容)和 TensorFlow.js(用于在浏览器中运行 ML 模型)之间存在同步问题。从本质上讲,我们需要同步加载和运行 TensorFlow.js 模型,而不是异步加载和运行,以便与我们对 Photoshop 的 WebAssembly 移植版本一起使用。由于其缺点(例如代码开销过大或跨设备的性能不可预测),一个潜在的第三方解决方案不是一种选择。因此,需要一个新的解决方案。

为了应对这些挑战,Google 和 Adobe 首先合作将一个代理 API 带到 Emscripten - 一个第三方编译器工具链,可以编译为 WebAssembly,使用 LLVM 使用 C 或 C++ 编写的代码能够在浏览器中运行并与 JavaScript 库交互。Emscripten 的代理 API 有效地解决了第三方解决方案遇到的这些问题,并允许 Photoshop 的 WebAssembly 实现与运行的 TensorFlow.js ML 模型之间无缝集成。

接下来,一旦 WebAssembly 和 TensorFlow.js 之间的通信成为可能,Adobe 将关键的 ML 模型(例如上面显示的对象选择中使用的模型)移植到 TensorFlow.js 格式。TensorFlow.js 团队通过专注于优化常用操作模型(例如 Conv2D 操作)来帮助优化模型,以确保转换后的模型在浏览器中尽可能快地运行。

现在云解决方案和设备上解决方案都有可能,Photoshop 网页版 Beta 可以选择最佳选项来提供最佳的用户体验并相应地部署 ML 模型。虽然设备上推理为常用的任务提供了低延迟和隐私的卓越用户交互,但并非所有 ML 模型都可以在本地运行,因为每个浏览器选项卡的内存有限(目前在 Chrome 中约为 4GB)。另一方面,云推理可以容纳更大的 ML 模型,用于网络延迟可能可以接受的任务,但会牺牲最终用户感知到的隐私以及在服务器端硬件上托管和执行这些模型的相关成本。

性能提升

由于 Google 团队通过其各种支持的后端(WebGL、WASM、Web GPU)提高了 TensorFlow.js 硬件执行性能,因此模型的性能提升了 30% 到 200%(尤其是对于通常看到最大增益的较大模型),从而实现了浏览器中的近乎实时性能。

展望未来

Photoshop 网页版 Beta 的 选择主体 和对象选择工具展示了机器学习如何帮助增强用户工作流程和体验。随着基于网页的机器学习技术的不断发展,TensorFlow.js 后端支持和效率不断提高,Photoshop 网页版 Beta 将能够将更多高级模型带到浏览器中的设备边缘,突破可能的界限,并启用更多高级功能来取悦用户。

试试看

立即在 https://photoshop.adobe.com 上亲自试用 Photoshop 网页版 Beta,体验浏览器中机器学习的强大功能,它带来了 Web ML(即将推出)和云 ML 推理的最佳功能!

Adobe 的产品和商标属于 Adobe Inc,与 Google 无关。

下一篇文章
How Adobe used Web ML with TensorFlow.js to enhance Photoshop for web

- Joseph Hsieh(Adobe 首席科学家,项目负责人)、Devin Fernandez(Adobe 产品管理总监)和 Jason Mayes(Google Web ML 负责人)撰写简介Photoshop 网页版 Beta  是流行的桌面图像编辑软件 Adobe Photoshop 的基于浏览器的版本。此在线工具提供广泛的功能和功能,可用于编辑、增强和操作图像……