vietanhdev/samexporter

Export and run SAM, MobileSAM, EfficientSAM, SAM 2/2.1, and SAM 3 as ONNX for portable image segmentation

解决的问题

SAMExporter 提供了一种在 ONNX Runtime 中导出并运行各种 Segment Anything Model (SAM) 变体版本的方法。这使得这些复杂的视觉模型能够在不同的硬件加速器上,以更具便携性且高效的方式进行部署,而无需原始的 PyTorch 环境。

工作原理

该工具将来自多个 SAM 家族的 PyTorch 检查点(包含原始的 SAM, MobileSAM, EfficientSAM, SAM 2 和 SAM 3)转换为 ONNX 格式。它通常会将模型拆分为独立的图像编码器和解码器以优化性能。对于 SAM 3,它还会导出一个语言编码器以支持文本驱动的分割。导出后,可以使用提供的推理脚本来运行模型,该脚本支持多种提示类型(点、矩形和文本),并能与众多 ONNX Runtime 执行提供程序(例如 TensorRT, OpenVINO 和 CUDA)集成。

适用对象

它专为需要将 SAM 模型部署到生产环境中的开发人员和研究人员设计,特别是针对纯 CPU 设备或 PyTorch 并非理想选择的专用 AI 加速器。

亮点

  • 广泛的模型支持:兼容 SAM (ViT-B/L/H), MobileSAM, EfficientSAM, SAM 2/2.1 和 SAM 3。
  • 多模态提示:支持所有模型的点和矩形提示,其中 SAM 3 添加了开放词汇的文本驱动分割。
  • 硬件灵活性:与多种 ONNX Runtime 后端集成,包含 TensorRT, OpenVINO, DirectML 和 CoreML。
  • 部署优化:提供量化选项以减少模型大小和内存使用量,并支持缓存图像嵌入以用于交互式应用程序。

相关

  • 项目
  • 项目
  • 项目
  • 项目