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, MobileSAM, EfficientSAM, SAM 2, SAM 3를 포함한 여러 SAM 제품군의 PyTorch 체크포인트를 ONNX 형식으로 변환합니다. 일반적으로 성능을 최적화하기 위해 모델을 별도의 이미지 인코더와 디코더로 분할합니다. SAM 3의 경우 텍스트 기반 분할을 지원하기 위해 언어 인코더도 내보냅니다. 내보낸 후에는 다양한 프롬프트 유형(점, 사각형, 텍스트)을 지원하고 수많은 ONNX Runtime 실행 공급자(TensorRT, OpenVINO, CUDA 등)와 통합되는 제공된 추론 스크립트를 사용하여 모델을 실행할 수 있습니다.

대상 독자

SAM 모델을 프로덕션 환경에 배포해야 하는 개발자 및 연구자, 특히 PyTorch가 적합하지 않은 CPU 전용 장치나 특수 AI 가속기를 대상으로 하는 사용자를 위해 설계되었습니다.

주요 기능

  • 폭넓은 모델 지원: SAM (ViT-B/L/H), MobileSAM, EfficientSAM, SAM 2/2.1, SAM 3와 호환됩니다.
  • 멀티모달 프롬프트: 모든 모델에서 점 및 사각형 프롬프트를 지원하며, SAM 3는 오픈 어휘 기반의 텍스트 구동 분할을 추가합니다.
  • 하드웨어 유연성: TensorRT, OpenVINO, DirectML, CoreML을 포함한 다양한 ONNX Runtime 백엔드와 통합됩니다.
  • 배포 최적화: 모델 크기와 메모리 사용량을 줄이기 위한 양자화 옵션을 제공하며, 대화형 애플리케이션을 위한 이미지 임베딩 캐싱을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트