浏览器内运行高斯泼溅生成:SHARP项目ONNX移植
「开发者将Apple的SHARP模型移植到浏览器,用户上传单张图片即可生成、预览并下载高斯泼溅PLY文件,全程本地运行。」
近日,开发者 bring-shrubbery 在 GitHub 上发布了一个名为 ml-sharp-web 的开源项目,成功将 Apple 的 SHARP 模型(单张图像生成高斯泼溅)移植到了浏览器环境中。该项目基于 ONNX Runtime Web,用户无需安装复杂的深度学习环境,只需通过浏览器即可完成从图像上传到高斯泼溅生成、预览和下载的全流程。
SHARP 是 Apple 发布的一种新型 3D 生成模型,能够从单张 RGB 图像直接生成高质量的高斯泼溅(Gaussian Splats)表示。传统的高斯泼溅生成通常需要多视角图像或训练专用模型,而 SHARP 通过单张图像即可完成,显著降低了 3D 内容创作的门槛。ml-sharp-web 项目在此基础上进一步简化了使用流程,将模型推理全部封装在浏览器前端。
该项目的核心原理是将 SHARP 的 PyTorch 模型导出为 ONNX 格式,然后利用 ONNX Runtime Web 在浏览器中执行推理。由于 SHARP 模型权重较大(约 2.4GB),ONNX 导出会生成两个文件:sharp_web_predictor.onnx(图结构)和 sharp_web_predictor.onnx.data(权重数据)。这两个文件必须放在同一目录下,浏览器通过 Web Worker 异步加载并执行推理。
使用方式非常直观:用户只需安装 Bun 运行时(一种快速 JavaScript 包管理器),然后执行 bun install 和 bun dev 启动开发服务器。在浏览器中打开本地地址后,上传一张图片,点击“Generate Splat”按钮,系统便会自动运行 SHARP 模型,生成高斯泼溅并在页面中提供 3D 预览。用户还可以将结果下载为标准的 .ply 文件,方便在其他 3D 软件或渲染器中使用。
项目的技术栈包括 React + TypeScript 构建的前端界面、ONNX Runtime Web 的 Web Worker 用于模型推理、以及浏览器端的高斯泼溅后处理和 PLY 写入器。后处理部分负责将 SHARP 输出的 NDC(规范化设备坐标)转换为度量空间的高斯参数,最终生成可渲染的 3D 点云。
值得注意的是,Apple 的 SHARP 仓库对代码和模型权重采用了不同的许可证。代码部分使用宽松的许可证,而模型权重(checkpoint)则带有研究用途限制。ml-sharp-web 项目默认使用作者托管的 ONNX 模型文件,用户也可以自行从 Apple 的原始仓库下载 checkpoint 并使用项目提供的导出脚本将其转换为 ONNX 格式。导出脚本支持 GPU 加速(通过 --device cuda 参数)和自定义 opset 版本。
对于希望部署静态站点的用户,项目也提供了构建命令:bun run build 会将所有文件(包括模型文件)打包到 dist/ 目录中,然后通过 bun run preview 预览。由于模型文件较大,构建输出会包含约 2.4GB 的权重数据,部署时需注意服务器磁盘空间和带宽。
ml-sharp-web 项目展示了 ONNX Runtime Web 在 3D 生成领域的潜力。通过将大模型推理完全迁移到浏览器端,用户无需安装任何深度学习框架或 GPU 驱动,即可体验前沿的 3D 生成技术。这对于教育、设计原型、快速可视化等场景具有实用价值。未来,随着 WebGPU 和 WASM 技术的成熟,浏览器端运行更大规模的 3D 生成模型将成为可能。
来源:Heooo AI工具导航