facebookresearch/sam3

The repository provides code for running inference and finetuning with the Meta Segment Anything Model 3 (SAM 3), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.

SAM 3란 무엇인가요?

SAM 3 (Concepts with Segment Anything)는 Meta의 최신 "기초 모델"로, 이미지 및 동영상에 대한 프롬프트 기반 세그멘테이션을 가능하게 합니다. 이전의 Segment Anything 모델(SAM 1/2)을 기반으로 하되, 짧은 텍스트 문장이나 몇 개의 예시 패치로 설명할 수 있는 오픈-보리ュ엄 개념의 모든 인스턴스를 세그멘테이션할 수 있는 기능을 추가했습니다. 실제로 "모든 빨간 차" 또는 "모자 쓴 사람" 과 같은 프롬프트를 주면, 정지 이미지와 동영상 스트림 모두에서 해당하는 모든 객체에 대해 마스크, 경계 상자, 신뢰도 점수를 반환합니다.


왜 중요한가요?

  • 오픈-보리ュ엄 세그멘테이션 – SAM 3은 수십만 개의 명사구(SA‑CO 벤치마크에는 27만 개의 고유 개념 포함)를 이해할 수 있어, 이전 검출기의 폐쇄형 카테고리보다 훨씬 넓은 범위를 커버합니다.
  • 통합 이미지 + 동영상 파이프라인 – 하나의 모델에 DETR 스타일의 검출기(텍스트 조건부)와 SAM 2 스타일의 트랜스포머 추적기가 포함되어 있어, 단일 이미지 추론, 인터랙티브 보정, 다중 프레임 동영상 추적에 동일한 가중치를 사용할 수 있습니다.
  • 확장 가능한 데이터 엔진 – 팀은 400만 개 이상의 고유 개념을 자동으로 애노테이션하여, 지금까지 가장 큰 고품질 오픈-보리ュ엄 세그멘테이션 데이터셋을 구축했습니다. 이 데이터셋은 모델의 뛰어난 성능(새로운 SA‑CO 벤치마크에서 인간 수준의 약 75–80%)을 가능하게 합니다.
  • 프레젠스 토큰 및 분리 설계 – 특수 토큰은 매우 유사한 프롬프트(예: "흰색 옷 입은 선수" vs. "빨간색 옷 입은 선수")를 구분하는 데 도움을 주며, 검출기-추적기 분리 설계는 작업 간 간섭을 줄여 848M 파라미터 모델이 효율적으로 확장될 수 있도록 합니다.

시작하기 (빠른 시작 코드)

# 이미지 예제 – 텍스트 프롬프트
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor

model = build_sam3_image_model()          # 기본 체크포인트 로드 (HF에서 접근 권한 필요)
processor = Sam3Processor(model)
processor.set_image("my_photo.jpg")
out = processor.set_text_prompt(state=processor.state, prompt="all dogs")
# out에는 마스크, 박스, 점수가 포함됨
# 동영상 예제 – 세션 시작 및 프롬프트 추가
from sam3.model_builder import build_sam3_video_predictor

vid = build_sam3_video_predictor()
resp = vid.handle_request({"type": "start_session", "resource_path": "my_video.mp4"})
sess = resp["session_id"]
resp = vid.handle_request({
    "type": "add_prompt",
    "session_id": sess,
    "frame_index": 0,
    "text": "people playing soccer"
})
outputs = resp["outputs"]  # 각 프레임의 마스크, 박스, 점수

리포지토리는 이러한 단계, 배치 추론, 그리고 SAM 3 에이전트(여러 프롬프트를 연결해 더 복잡한 질의를 해결할 수 있음)를 안내하는 Jupyter 노트북을 제공합니다.


핵심 구성 요소

구성 요소 역할
검출기 DETR 스타일, 텍스트, 기하학, 예시 패치에 조건부. 프롬프트와 일치하는 객체를 찾음.
추적기 SAM 2의 트랜스포머 인코더-디코더를 재사용하여 프레임 간 마스크를 전파하고 인터랙티브 보정을 지원.
프레젠스 토큰 매우 유사한 텍스트 프롬프트를 구분하는 데 도움.
비전 인코더 검출기와 추적기 모두에서 공유되는 백본. 모델 크기를 848M 파라미터로 유지.

벤치마크 및 성능

작업 메트릭 (높을수록 좋음) SAM 3 인간
이미지 인스턴스 세그멘테이션 (SA‑Co/Gold) cgF1 54.1 72.8
이미지 박스 검출 (LVIS) AP 48.5
동영상 세그멘테이션 (SA‑V test) cgF1 30.3 53.1
동영상 추적 (SA‑V pHOTA) pHOTA 58.0 70.5

이 수치들은 SAM 3이 인간 수준의 성능에 가까워지고 있으며, 훨씬 더 큰 개념 어휘를 지원함을 보여줍니다.


모델 획득 방법

  1. Meta의 Hugging Face 리포지토리(facebook/sam3)에서 체크포인트에 대한 접근 권한을 요청합니다.
  2. hf auth login으로 인증하거나 HF_TOKEN을 설정합니다.
  3. 설치 섹션을 참조하여 패키지를 설치하고 예제를 실행합니다.

누가 만들었나요?

Meta Superintelligence Labs의 대규모 다학제 팀(주요 기여자, 인턴, 프로젝트 리더)이 논문, 코드, 데이터 엔진, 벤치마크 개발에 협력했습니다. README에는 연구, 엔지니어링, 제품 분야를 아우르는 40명 이상의 기여자가 명시되어 있습니다.


라이선스 및 기여

코드는 SAM 라이선스(Meta의 커스텀 라이선스) 하에 배포됩니다. 일반적인 풀 리퀘스트 워크플로우를 통해 기여를 환영합니다. 자세한 내용은 CONTRIBUTING.md와 코드 오브 콘덕트를 참조하세요.


TL;DR

  • SAM 3 = 짧은 텍스트 문장이나 몇 개의 시각적 예시로 설명할 수 있는 모든 것을 검출, 세그멘테이션, 추적할 수 있는 단일 모델.
  • 이미지 및 동영상에서 작동하며, 오픈-보리ュ엄 프롬프트(수십만 개의 개념)를 지원.
  • 대규모 자동 애노테이션 데이터셋, 새로운 프레젠스 토큰 아키텍처, SA‑CO 벤치마크에서 최고 수준의 성능을 제공.
  • Hugging Face에서 접근 권한을 요청한 후, pip install -e .로 설치하고 제공된 노트북으로 실험을 시작하세요.

관련

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