浏览器运行 ONNX 修复模型:WebGPU 数据链路拆解
浏览器 AI 修复不只是调用一次模型。它要完成模型缓存、图像裁剪、RGBA 与张量转换、WebGPU 推理、结果合成和视频逐帧调度。
模型先下载并建立本地缓存
ONNX 文件通常比普通网页资源大。可靠的实现会校验文件、把下载成功的版本存入缓存,缓存不可用时再从原始地址重新下载。
只裁剪必要上下文
模型输入不必覆盖整帧。围绕水印选区增加适量上下文,可以降低显存占用,但裁剪太紧会缺少纹理参考。
像素需要转换为模型张量
浏览器画布常用 RGBA 排列,模型可能要求 NCHW 浮点数据。通道顺序、归一化、输出范围,任何一项出错都会造成偏色或异常纹理。
逐帧推理还要管理资源
视频任务需要复用推理会话,及时释放中间张量,并响应取消信号。处理完成后将修复区域合回原帧,再交给编码流程。
运行 WebGPU 模型前的环境检查
- 确认 Chrome 或 Edge 已启用硬件加速
- 首次使用预留模型下载时间
- 观察长视频处理时的显存与稳定性
读完后常见问题
- WebGPU 和 WebGL 有什么区别?
- WebGPU 提供更现代的通用计算接口,更适合执行张量运算,但设备支持要求也更高。
- 为什么第一次运行更慢?
- 通常需要下载并校验模型,后续可从本地缓存读取。
- 整帧输入一定效果更好吗?
- 适量上下文通常更有效率,整帧输入会显著增加计算量,却未必改善局部修复结果。