Starrn

在 Web 实现照片修复和照片高清化

opencv
发布于

在 Github 上发现一个图片修复模型 MI-GAN,号称可以在移动设备本地来执行,不同于其他图片修复产品需要把图片上传到云端了。同时,找到了对应的 Web 端实现 lxfater/inpaint-web,就想着了解一下背后的实现方式。

体验地址:https://inpaintweb.lxfater.com,inpaint-web 支持了以下特性:

image-20240420163555992

img

实现流程

在 Web 端大致模型调用流程为:

  1. 模型下载: 从 huggingface下载 Onnx 格式的模型,并调用 localforage 存储模型文件到 indexDB 中进行长效缓存,用于后续的调用。
  2. 调用模型: onnxruntime-web 是一个用于在浏览器和 Node.js 上运行 Onnx 模型的 JavaScript 库,可以调用对应的模型提供的接口,等待模型的计算结果。

从上面的分析中,看到了一些陌生的词汇,进一步了解到:

  • Onnx: 使用训练框架(比如 TensorFlow/Pytorch/OneFlow/Paddle)训练模型,在训练完毕后都可以将这些框架的模型统一转换为 Onnx 这种统一的格式进行存储,这是针对机器学习所设计的开源文件格式。

  • 查看模型接口: 下载好的模型后,需要详细了解其提供的功能和必要的输入/输出参数。可以使用 Netron 以可视化的方式查看模型的结构

    image-20240420173430198

  • ONNX Runtime: 使用 ONNX Runtime 可以将 ONNX 模型部署到各种编程语言和操作系统上。如果你需要 JavaScript 版本的详细文档,可以查看 ONNX Runtime JavaScript API

最后编辑于