Ultralytics YOLO27:

SAM 3: 개념으로 모든 것을 분할하기#

SAM 3 프롬프트 기반 개념 분할 개요

SAM 3(Segment Anything Model 3)은 **프롬프트 기반 개념 분할(PCS)**을 위한 Meta의 공개 파운데이션 모델입니다. SAM 2를 기반으로 구축된 SAM 3는 텍스트 프롬프트, 이미지 예시 또는 둘 모두로 지정된 시각적 개념의 모든 인스턴스를 감지, 분할 및 추적하는 근본적으로 새로운 기능을 도입합니다. 이전 SAM 버전이 프롬프트당 단일 객체를 분할했던 것과 달리, SAM 3는 이미지나 비디오 어디에 나타나든 개념의 모든 출현을 찾아 분할할 수 있어 최신 인스턴스 분할의 오픈 보캐뷸러리 목표에 부합합니다.



Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos

SAM 3는 ultralytics 패키지에 완전히 통합되어 텍스트 프롬프트, 이미지 예시 프롬프트 및 비디오 추적을 통한 개념 분할에 대한 네이티브 지원을 제공합니다. 이미지 예측을 위해 최신 SAM 3.1 체크포인트가 지원됩니다.

개요#

SAM 3는 프롬프트 기반 개념 분할에서 기존 시스템보다 2배 향상된 성능을 달성하는 동시에, 대화형 시각적 분할을 위한 SAM 2의 기능을 유지하고 개선합니다. 이 모델은 오픈 보캐뷸러리 분할에 탁월하며, 사용자가 간단한 명사구(예: "노란 스쿨버스", "줄무늬 고양이")로 개념을 지정하거나 대상 객체의 예시 이미지를 제공할 수 있습니다. 이러한 기능은 간소화된 predicttrack 워크플로에 의존하는 프로덕션 준비 파이프라인을 보완합니다.

SAM 3 텍스트 프롬프트 분할 예시

프롬프트 기반 개념 분할(PCS)이란 무엇인가요?#

PCS 작업은 개념 프롬프트를 입력으로 받아 일치하는 모든 객체 인스턴스에 대해 고유한 ID가 부여된 분할 마스크를 반환합니다. 개념 프롬프트는 다음과 같습니다.

  • 텍스트: "빨간 사과" 또는 "모자를 쓴 사람"과 같은 간단한 명사구로, 제로샷 학습과 유사합니다.
  • 이미지 예시: 빠른 일반화를 위한 예시 객체 주변의 바운딩 박스(긍정 또는 부정)
  • 결합: 정밀한 제어를 위해 텍스트와 이미지 예시를 함께 사용

이는 원래 SAM 제품군으로 널리 알려진 기존의 시각적 프롬프트(포인트, 박스, 마스크)가 특정 단일 객체 인스턴스만 분할하는 것과 다릅니다.

주요 성능 지표#

지표SAM 3 성과
LVIS 제로샷 마스크 AP47.0 (이전 최고 기록 38.5 대비 +22% 향상)
SA-Co 벤치마크기존 시스템보다 2배 우수
추론 속도(H200 GPU)100개 이상의 객체를 감지할 때 이미지당 30ms
비디오 성능동시에 약 ~5개 객체에 대해 거의 실시간 처리
MOSEv2 VOS 벤치마크60.1 J&F (SAM 2.1 대비 +25.5%, 이전 SOTA 대비 +17%)
대화형 개선예시 프롬프트 3개 후 +18.6 CGF1 향상
인간 성능과의 격차SA-Co/Gold에서 추정된 하한선의 88% 달성

프로덕션 환경에서 모델 지표와 트레이드오프에 대한 자세한 내용은 모델 평가 인사이트YOLO 성능 지표를 참조하세요.

SAM 3.1#

2026년 3월 27일 Meta에서 출시한 SAM 3.1은 다중 객체 비디오 추적을 위한 공유 메모리 접근 방식인 Object Multiplex를 추가하는 새로운 SAM 3 체크포인트입니다. SAM 3.1은 추적되는 모든 객체를 독립적으로 처리하는 대신 객체를 고정 용량 버킷으로 그룹화하고 공동으로 처리하며, Meta에 따르면 단일 H100 GPU에서 128개의 객체에서 ~7배 가속화를 달성합니다. 이미지 Detector와 인터랙티브 포인트 프롬프트 헤드는 SAM 3 아키텍처를 유지합니다.

벤치마크지표SAM 3SAM 3.1
SA-Co/VEval SA-V (test)cgF130.330.5
SA-Co/VEval YT-Temporal-1B (test)cgF150.852.9
SA-Co/VEval SmartGlasses (test)cgF136.436.3
MOSEv1 (val)J&F78.479.6
DAVIS17 (val)J&F92.292.7
SA-V (test)J&F84.485.1
YTVOS19 (val)G89.789.3
MOSEv2 (val)J&Ḟ60.362.3

Ultralytics는 SAM 3.1 체크포인트(sam3.1_multiplex.pt)를 SAM 3 이미지 Predictor에 로드합니다. 포인트 및 박스 프롬프트용 SAM("sam3.1_multiplex.pt"), 텍스트 및 예시 프롬프트용 SAM3SemanticPredictor를 사용합니다. Object Multiplex 비디오 추어근 아직 지원되지 않으므로 sam3.pt과 함께 SAM3VideoPredictorSAM3VideoSemanticPredictor를 계속 사용하세요.

아키텍처#

SAM 3는 Perception Encoder(PE) 비전 백본을 공유하는 검출기트래커로 구성됩니다. 이 분리형 설계는 작업 간 충돌을 방지하면서 이미지 수준의 검출과 비디오 수준의 추적을 모두 지원하며, Ultralytics Python 사용법CLI 사용법과 호환되는 인터페이스를 제공합니다.

핵심 구성 요소#

  • 검출기: 이미지 수준의 개념 검출을 위한 DETR 기반 아키텍처

    • 명사구 프롬프트를 위한 텍스트 인코더
    • 이미지 기반 프롬프트를 위한 예시 인코더
    • 프롬프트에 따라 이미지 특징을 조건화하는 퓨전 인코더
    • 인식("무엇")과 위치 지정("어디")을 분리하는 새로운 presence head
    • 인스턴스 분할 마스크를 생성하는 마스크 헤드
  • 트래커: SAM 2에서 계승된 메모리 기반 비디오 분할

    • 프롬프트 인코더, 마스크 디코더, 메모리 인코더
    • 프레임 전반의 객체 외형을 저장하는 메모리 뱅크
    • 다중 객체 환경에서 Kalman filter와 같은 기법의 도움을 받는 시간적 모호성 해결
  • Presence Token: 대상 개념이 이미지/프레임에 존재하는지 예측하는 학습된 전역 토큰으로, 인식과 위치 지정을 분리하여 검출 성능을 향상합니다.

SAM 3 모델 아키텍처 다이어그램

주요 혁신#

  1. 인식과 위치 지정의 분리: presence head는 전역적으로 개념의 존재 여부를 예측하고, proposal query는 위치 지정에만 집중하여 상충하는 목적을 방지합니다.
  2. 개념 프롬프트와 시각적 프롬프트의 통합: 하나의 모델에서 PCS(개념 프롬프트)와 PVS(SAM 2의 클릭/박스와 같은 시각적 프롬프트)를 모두 지원합니다.
  3. 대화형 예시 개선: 사용자는 긍정 또는 부정 이미지 예시를 추가하여 결과를 반복적으로 개선할 수 있으며, 모델은 개별 인스턴스를 단순히 수정하는 대신 유사한 객체로 일반화합니다.
  4. 시간적 모호성 해결: 마스크렛 검출 점수와 주기적인 프롬프트 재지정을 사용하여 비디오에서 가림, 복잡한 장면 및 추적 실패를 처리하며, 인스턴스 분할 및 추적 모범 사례에 부합합니다.

SA-Co 데이터셋#

SAM 3는 현재까지 Meta가 구축한 가장 크고 다양한 분할 데이터셋인 **Segment Anything with Concepts(SA-Co)**로 학습되었으며, COCOLVIS와 같은 일반적인 벤치마크를 넘어 확장됩니다.

학습 데이터#

데이터셋 구성 요소설명규모
SA-Co/HQ4단계 데이터 엔진으로 구축한 고품질 인간 어노테이션 이미지 데이터이미지 520만 개, 고유 명사구 400만 개
SA-Co/SYN사람의 개입 없이 AI가 라벨링한 합성 데이터셋명사구 3,800만 개, 마스크 14억 개
SA-Co/EXT하드 네거티브가 추가된 15개 외부 데이터셋소스에 따라 다름
SA-Co/VIDEO시간적 추적이 포함된 비디오 어노테이션비디오 52.5K개, 고유 명사구 24.8K개

벤치마크 데이터#

SA-Co 평가 벤치마크126K개의 이미지 및 비디오에 걸쳐 214K개의 고유 구문을 포함하며, 기존 벤치마크보다 50배 이상 많은 개념을 제공합니다. 다음을 포함합니다.

  • SA-Co/Gold: 7개 도메인, 인간 성능 한계 측정을 위해 3중 어노테이션 적용
  • SA-Co/Silver: 10개 도메인, 단일 인간 어노테이션
  • SA-Co/BronzeSA-Co/Bio: 개념 분할에 맞게 조정된 기존 데이터셋 9개
  • SA-Co/VEval: 3개 도메인(SA-V, YT-Temporal-1B, SmartGlasses)을 포함하는 비디오 벤치마크

데이터 엔진 혁신#

SAM 3의 확장 가능한 인간 및 모델 참여형 데이터 엔진은 다음을 통해 어노테이션 처리량을 2배로 향상합니다.

  1. AI 어노테이터: Llama 기반 모델이 하드 네거티브를 포함한 다양한 명사구를 제안합니다.
  2. AI 검증기: 미세 조정된 멀티모달 LLM이 인간에 가까운 성능으로 마스크 품질과 포괄성을 검증합니다.
  3. 능동적 마이닝: AI가 어려움을 겪는 까다로운 실패 사례에 인간의 노력을 집중합니다.
  4. 온톨로지 기반: Wikidata에 기반한 대규모 온톨로지를 활용하여 개념 범위를 확보합니다.

설치#

ultralytics 패키지를 설치하거나 업그레이드하세요:

pip install -U ultralytics
SAM 3 모델 가중치 필요

다른 Ultralytics 모델과 달리 SAM 3 가중치(sam3.pt)는 자동으로 다운로드되지 않습니다. 먼저 Hugging Face의 SAM 3 모델 페이지에서 모델 가중치에 대한 액세스를 요청한 다음, 승인이 완료되면 해당 페이지에서 sam3.pt를 다운로드해야 합니다. 다운로드한 sam3.pt 파일을 작업 디렉터리에 배치하거나 모델을 로드할 때 전체 경로를 지정하세요.

SAM 3.1 가중치(sam3.1_multiplex.pt)는 SAM 3.1 모델 페이지에서 동일한 방식으로 게이트 처리됩니다. 아래 이미지 예시에서 sam3.pt를 사용하는 모든 곳에 sam3.1_multiplex.pt을 전달하세요.

`TypeError: 'SimpleTokenizer' object is not callable`

예측 중 위 오류가 발생한다면 잘못된 clip 패키지가 설치되어 있다는 의미입니다. 다음 명령을 실행하여 올바른 clip 패키지를 설치하세요.

pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git

SAM 3 사용 방법: 개념 분할의 다양한 활용#

SAM 3는 서로 다른 predictor 인터페이스를 통해 프롬프트 기반 개념 분할(PCS) 및 프롬프트 기반 시각적 분할(PVS) 작업을 모두 지원합니다.

지원되는 작업 및 모델#

작업 유형프롬프트 유형출력
개념 분할(PCS)텍스트(명사구), 이미지 예시개념과 일치하는 모든 인스턴스
시각적 분할(PVS)포인트, 박스, 마스크단일 객체 인스턴스(SAM 2 스타일)
대화형 개선예시 또는 클릭을 반복적으로 추가/제거정확도가 향상된 개선된 분할

개념 세그멘테이션 예제#

텍스트 프롬프트로 세그먼트 수행#

텍스트 기반 개념 세그멘테이션

텍스트 설명을 사용하여 개념의 모든 인스턴스를 찾고 세그먼트합니다. 텍스트 프롬프트에는 SAM3SemanticPredictor 인터페이스가 필요합니다.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # Use FP16 for faster inference
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

이미지 예시로 세그먼트 수행#

이미지 예시 기반 세그멘테이션

바운딩 박스를 시각적 프롬프트로 사용하여 유사한 모든 인스턴스를 찾습니다. 개념 기반 매칭에는 SAM3SemanticPredictor도 필요합니다.

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes as exemplars of the same visual concept
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

효율적인 특징 기반 추론#

여러 쿼리를 위한 이미지 특징 재사용

이미지 특징을 한 번 추출한 후 여러 세그멘테이션 쿼리에 재사용하여 효율성을 높입니다.

import cv2

from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors

# Initialize predictors
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

비디오 개념 세그멘테이션#

바운딩 박스로 비디오 전체에서 개념 추적#

시각적 프롬프트를 사용한 비디오 추적

바운딩 박스 프롬프트를 사용하여 비디오 프레임 전체에서 객체 인스턴스를 감지하고 추적합니다.

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

텍스트 프롬프트로 개념 추적#

시맨틱 쿼리를 사용한 비디오 추적

비디오 프레임 전체에서 텍스트로 지정된 개념의 모든 인스턴스를 추적합니다.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

시각적 프롬프트(SAM 2 호환성)#

SAM 3는 단일 객체 세그멘테이션을 위해 SAM 2의 시각적 프롬프트 기능과 완전한 하위 호환성을 유지합니다.

SAM 2 스타일 시각적 프롬프트

기본 SAM 인터페이스는 SAM 2와 정확히 동일하게 작동하며, 시각적 프롬프트(포인트, 박스 또는 마스크)가 지정한 특정 영역만 세그먼트합니다.

from ultralytics import SAM

model = SAM("sam3.pt")

# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
시각적 프롬프트와 개념 세그멘테이션 비교

시각적 프롬프트(포인트/박스/마스크)와 함께 SAM("sam3.pt")을 사용하면 SAM 2와 마찬가지로 해당 위치의 특정 객체만 세그먼트합니다. 개념의 모든 인스턴스를 세그먼트하려면 위에 설명된 것처럼 텍스트 또는 예시 프롬프트와 함께 SAM3SemanticPredictor을 사용합니다.

성능 벤치마크#

이미지 세그멘테이션#

SAM 3는 실제 환경 데이터셋인 LVIS세그멘테이션용 COCO를 포함한 여러 벤치마크에서 최첨단 성능을 달성합니다.

벤치마크지표SAM 3이전 최고 성능개선폭
LVIS (제로샷)Mask AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (제로샷)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (시맨틱 세그)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (시맨틱 세그)mIoU65.144.2 (APE-D)+47.3%

빠른 실험을 위한 데이터셋 옵션은 Ultralytics 데이터셋에서 확인할 수 있습니다.

비디오 세그멘테이션 성능#

SAM 3는 DAVIS 2017YouTube-VOS와 같은 비디오 벤치마크에서 SAM 2 및 이전 최첨단 모델보다 크게 향상된 성능을 보여줍니다.

벤치마크지표SAM 3SAM 2.1 L개선폭
MOSEv2J&F60.147.9+25.5%
DAVIS 2017J&F92.090.7+1.4%
LVOSv2J&F88.279.6+10.8%
SA-VJ&F84.678.4+7.9%
YTVOS19J&F89.689.3+0.3%

퓨샷 적응#

SAM 3는 최소한의 예시만으로 새로운 도메인에 효과적으로 적응하며, 데이터 중심 AI 워크플로에 유용합니다.

벤치마크0-shot AP10-shot AP이전 최고 성능(10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

인터랙티브 정제 효과#

예시를 활용한 SAM 3의 개념 기반 프롬프팅은 시각적 프롬프팅보다 훨씬 빠르게 수렴합니다.

추가된 프롬프트CGF1 점수텍스트만 사용한 경우 대비 향상폭PVS 베이스라인 대비 향상폭
텍스트만 사용46.4베이스라인베이스라인
+1개 예시57.6+11.2+6.7
+2개 예시62.2+15.8+9.7
+3개 예시65.0+18.6+11.2
+4개 예시65.7+19.3+11.5 (정체)

객체 카운팅 정확도#

SAM 3는 모든 인스턴스를 세그먼트하여 정확한 카운팅을 제공하며, 이는 객체 카운팅에서 흔히 요구되는 기능입니다.

벤치마크정확도MAE최고 MLLM 대비
CountBench95.6%0.1192.4% (Gemini 2.5)
PixMo-Count87.3%0.2288.8% (Molmo-72B)

SAM 3, SAM 2 및 YOLO 비교#

여기서는 SAM 3의 기능을 SAM 2YOLO26 모델과 비교합니다. 동일한 유형의 프롬프트를 사용한 실시간 오픈 보캐뷸러리 감지 및 세그멘테이션은 YOLOE를 참조하십시오.

기능SAM 3SAM 2YOLO26n-seg
개념 세그멘테이션✅ 텍스트/예시에서 모든 인스턴스❌ 지원되지 않음❌ 지원되지 않음
시각적 세그멘테이션✅ 단일 인스턴스(SAM 2 호환)✅ 단일 인스턴스✅ 모든 인스턴스
제로샷 기능✅ 오픈 보캐뷸러리✅ 기하학적 프롬프트❌ 폐쇄형 집합
대화형 개선✅ 예시 이미지 + 클릭✅ 클릭만 사용❌ 지원되지 않음
비디오 추적✅ ID가 있는 다중 객체✅ 다중 객체✅ 다중 객체
LVIS 마스크 AP (제로샷)47.0해당 없음해당 없음
MOSEv2 J&F60.147.9해당 없음
속도 (GPU, ms/이미지)29218578.4
모델 크기3.45 GB162MB (base)6.4MB

속도는 torch==2.9.1ultralytics==8.4.19을 사용하여 NVIDIA RTX PRO 6000에서 벤치마크했습니다.

주요 요점:

  • SAM 3: 개방형 어휘 개념 분할에 가장 적합하며, 텍스트 또는 예시 프롬프트를 사용하여 개념의 모든 인스턴스를 찾습니다.
  • SAM 2: 기하학적 프롬프트를 사용하여 이미지와 비디오에서 단일 객체를 대화형으로 분할하는 데 가장 적합합니다.
  • YOLO26: 선택적 NMS 없는 엔드투엔드 추론 기능을 갖추어 실시간 고속 세분화에 가장 적합하며, GPU, CPU 및 엣지 장치 배포를 위해 다양한 형식으로 내보내기 가능

YOLO와 SAM 비교#

크기, 파라미터 수 및 GPU 추론 속도 측면에서 SAM 3, SAM 2, SAM, MobileSAM, FastSAM과 Ultralytics YOLO 분할 모델(YOLOv8, YOLO11, YOLO26)을 비교합니다:

모델크기
(MB)
파라미터
(M)
속도 (GPU)
(ms/이미지)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
YOLOv8 백본을 사용하는 FastSAM-s23.711.855.9
Ultralytics YOLOv8n-seg6.7 (515배 작음)3.4 (139.1배 적음)17.4 (167배 빠름)
Ultralytics YOLO11n-seg5.9 (585배 더 작음)2.9 (163.1배 적음)12.6 (231배 빠름)
Ultralytics YOLO26n-seg6.4 (539배 작음)2.7 (175.2배 적음)8.4 (347배 더 빠름)

이 비교는 SAM 변형 모델과 YOLO 분할 모델 간의 모델 크기와 속도 차이가 상당함을 보여줍니다. SAM은 고유한 자동 분할 기능을 제공하지만, 특히 YOLOv8n-seg, YOLO11n-seg 및 YOLO26n-seg와 같은 YOLO 모델은 훨씬 작고 빠르며 계산 효율성이 높습니다.

테스트는 torch==2.9.1ultralytics==8.4.19을 사용하여 VRAM 96GB가 장착된 NVIDIA RTX PRO 6000에서 실행했습니다. 이 테스트를 재현하려면:

예시
from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS, nms=False)  # YOLO26 NMS-free head; no-op for YOLOv8/YOLO11

평가 지표#

SAM 3는 PCS 작업을 위해 설계된 새로운 지표를 도입하며, 익숙한 F1 점수, 정밀도, 재현율과 같은 지표를 보완합니다.

분류 게이트 F1 (CGF1)#

위치 지정과 분류를 결합하는 기본 지표입니다:

CGF1 = 100 × pmF1 × IL_MCC

다음과 같습니다:

  • pmF1 (Positive Macro F1): 양성 예제의 위치 지정 품질을 측정합니다.
  • IL_MCC (이미지 수준 Matthews 상관 계수): 이진 분류 정확도("개념이 존재하는가?")를 측정합니다.

이러한 지표가 필요한 이유#

기존 AP 지표는 보정을 고려하지 않으므로 모델을 실제 환경에서 사용하기 어렵습니다. 0.5 이상의 신뢰도에 해당하는 예측만 평가함으로써 SAM 3의 지표는 우수한 보정을 강제하고 대화형 predicttrack 루프의 실제 사용 패턴을 모방합니다.

주요 절제 연구 및 인사이트#

Presence Head의 영향#

Presence Head는 인식과 위치 지정을 분리하여 상당한 개선을 제공합니다:

구성CGF1IL_MCCpmF1
Presence Head 없음57.60.7774.7
Presence Head 있음63.30.8277.1

Presence Head는 CGF1을 +5.7 향상(+9.9%)시키며, 주로 인식 능력을 개선합니다(IL_MCC +6.5%).

하드 네거티브의 효과#

하드 네거티브/이미지CGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

하드 네거티브는 개방형 어휘 인식에 매우 중요하며, IL_MCC를 54.5%(0.44 → 0.68) 향상시킵니다.

학습 데이터 확장#

데이터 소스CGF1IL_MCCpmF1
외부 데이터만30.90.4666.3
외부 데이터 + 합성 데이터39.70.5770.6
외부 데이터 + 고품질 데이터51.80.7173.2
세 가지 모두54.30.7473.5

고품질 휴먼 어노테이션은 합성 데이터나 외부 데이터만 사용하는 경우보다 크게 향상된 결과를 제공합니다. 데이터 품질 관행에 대한 배경 정보는 데이터 수집 및 어노테이션을 참조하십시오.

응용 분야#

SAM 3의 개념 분할 기능은 다음과 같은 새로운 사용 사례를 지원합니다:

  • 콘텐츠 조정: 미디어 라이브러리 전체에서 특정 콘텐츠 유형의 모든 인스턴스를 찾습니다.
  • E-commerce: 카탈로그 이미지에서 특정 유형의 모든 제품을 분할하여 자동 어노테이션을 지원합니다.
  • 의료 영상: 특정 조직 유형이나 이상 소견의 모든 발생 사례를 식별합니다.
  • 자율 시스템: 카테고리별로 교통 표지판, 보행자 또는 차량의 모든 인스턴스를 추적합니다.
  • 비디오 분석: 특정 의류를 착용했거나 특정 행동을 수행하는 모든 사람을 세고 추적합니다.
  • 데이터셋 어노테이션: 희귀 객체 카테고리의 모든 인스턴스에 신속하게 어노테이션을 수행합니다.
  • 과학 연구: 특정 기준에 부합하는 모든 표본을 정량화하고 분석합니다.

SAM 3 Agent: 확장된 언어 추론#

SAM 3는 Multimodal Large Language Models (MLLMs)과 결합하여 추론이 필요한 복잡한 질의를 처리할 수 있으며, OWLv2T-Rex와 같은 개방형 어휘 시스템과 유사한 방식으로 작동합니다.

추론 작업 성능#

벤치마크지표SAM 3 Agent (Gemini 2.5 Pro)이전 최고 성능
ReasonSeg (검증)gIoU76.065.0 (SoTA)
ReasonSeg (테스트)gIoU73.861.3 (SoTA)
OmniLabel (검증)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

복잡한 질의 예시#

SAM 3 Agent는 추론이 필요한 질의를 처리할 수 있습니다:

  • "앉아 있지만 손에 선물 상자를 들고 있지 않은 사람들"
  • "카메라에 가장 가까우면서 목걸이를 착용하지 않은 개"
  • "사람의 손보다 큰 빨간색 물체"

MLLM은 SAM 3에 간단한 명사구 쿼리를 제안하고, 반환된 마스크를 분석한 다음 만족할 때까지 반복합니다.

제한 사항#

SAM 3은 상당한 발전을 이루었지만 다음과 같은 몇 가지 제한 사항이 있습니다:

  • 구문 복잡성: 간단한 명사구에 가장 적합하며, 긴 지시 표현이나 복잡한 추론에는 MLLM 통합이 필요할 수 있습니다
  • 모호성 처리: 일부 개념은 본질적으로 모호한 상태로 남습니다(예: "작은 창문", "아늑한 방")
  • 계산 요구 사항: YOLO와 같은 특화된 detection 모델보다 크고 느립니다
  • 어휘 범위: 원자적 시각 개념에 초점을 맞추며, MLLM의 지원 없이는 조합적 추론이 제한됩니다
  • 희귀 개념: 학습 데이터에 충분히 표현되지 않은 매우 희귀하거나 세분화된 개념에서는 성능이 저하될 수 있습니다

인용#

인용문
@misc{carion2025sam3,
  title         = {SAM 3: Segment Anything with Concepts},
  author        = {Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman R{\"a}dle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Doll{\'a}r and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
  year          = {2025},
  eprint        = {2511.16719},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CV},
  url           = {https://arxiv.org/abs/2511.16719}
}

FAQ#

  • SAM 3은 Meta에서 2025년 11월 19일에 출시했으며 ultralytics 패키지에 완전히 통합되어 predict modetrack mode를 지원합니다.

  • 네! SAM 3은 개념 분할, SAM 2 스타일의 시각적 프롬프트, 다중 객체 비디오 트래킹을 포함하여 Ultralytics Python 패키지에 완전히 통합되어 있습니다. SAM 3 및 SAM 3.1은 또한 Ultralytics Platform스마트 어노테이션 기능을 지원하며, 여기서 SAM 3.1은 기본 모델로서 몇 번의 클릭만으로 이미지에 어노테이션을 추가할 수 있습니다.

  • 네, 이미지 예측을 지원합니다. 이 페이지의 이미지 예제에서 sam3.pt을 사용하는 곳마다 sam3.1_multiplex.pt을 로드하십시오. 점 및 상자 프롬프트에는 SAM("sam3.1_multiplex.pt")를, 텍스트 및 예시 프롬프트에는 SAM3SemanticPredictor을 사용하십시오. 객체 멀티플렉스 비디오 트래킹은 아직 지원되지 않으므로 비디오 예측기에는 계속해서 sam3.pt를 사용하십시오. Meta의 벤치마크에 대해서는 SAM 3.1을 참조하십시오.

  • PCS는 SAM 3에 도입된 새로운 task로, 이미지나 video에서 시각적 개념의 모든 instance를 segmentation합니다. 특정 객체 instance를 대상으로 하는 기존 segmentation과 달리, PCS는 category의 모든 출현을 찾습니다. 예를 들면 다음과 같습니다:

    • Text prompt: "노란색 스쿨버스" → 장면의 모든 노란색 스쿨버스를 segmentation합니다
    • Image exemplar: 개 한 마리 주위에 box 표시 → 이미지의 모든 개를 segmentation합니다
    • Combined: "줄무늬 고양이" + exemplar box → 예시와 일치하는 모든 줄무늬 고양이를 segmentation합니다

    object detectioninstance segmentation에 대한 관련 배경 지식도 참조하세요.

  • 기능SAM 2SAM 3
    Task프롬프트당 단일 객체개념의 모든 instance
    Prompt Types포인트, 박스, 마스크+ Text phrase, image exemplar
    Detection Capability외부 detector 필요내장된 open-vocabulary detector
    Recognition기하학 기반만 지원Text 및 visual recognition
    ArchitectureTracker만 지원presence head가 포함된 Detector + Tracker
    Zero-Shot PerformanceN/A (visual prompt 필요)LVIS에서 47.0 AP, SA-Co에서 2배 향상
    대화형 개선클릭만 지원클릭 + exemplar 일반화

    SAM 3은 SAM 2의 visual prompting과 backward compatibility를 유지하면서 concept 기반 기능을 추가합니다.

  • SAM 3은 Segment Anything with Concepts (SA-Co) dataset으로 학습됩니다:

    Training Data:

    • 5.2M 이미지4M개의 고유 명사구(SA-Co/HQ) - 고품질 human annotation
    • 52.5K video24.8K개의 고유 명사구(SA-Co/VIDEO)
    • 38M개의 명사구에 걸친 1.4B개의 synthetic mask(SA-Co/SYN)
    • hard negative가 보강된 15개의 external dataset(SA-Co/EXT)

    Benchmark Data:

    • 126K개의 image/video에 걸친 214K개의 고유 개념
    • 기존 benchmark보다 50배 많은 concept(예: LVIS에는 약 ~4K개의 concept가 있음)
    • human performance bound를 측정하기 위한 SA-Co/Gold의 triple annotation

    이러한 방대한 규모와 다양성 덕분에 SAM 3은 open-vocabulary concept 전반에서 뛰어난 zero-shot 일반화 성능을 발휘합니다.

  • SAM 3과 YOLO26은 서로 다른 사용 사례에 적합합니다:

    SAM 3의 장점:

    • Open-vocabulary: 학습 없이 text prompt를 통해 어떤 concept든 segmentation합니다
    • Zero-shot: 새로운 category에서도 즉시 작동합니다
    • Interactive: exemplar 기반 refinement가 유사한 객체로 일반화됩니다
    • Concept-based: category의 모든 instance를 자동으로 찾습니다
    • Accuracy: LVIS zero-shot instance segmentation에서 47.0 AP

    YOLO26의 장점:

    • 속도: 선택적 NMS 없는 엔드투엔드 헤드를 통해 자릿수가 다른 압도적으로 빠른 추론
    • Efficiency: 539배 더 작은 모델(6.4MB 대 3.45GB)
    • Resource-friendly: edge device와 mobile에서 실행됩니다
    • Real-time: production deployment에 최적화되었습니다

    권장 사항:

    • 텍스트나 예시로 설명된 concept의 모든 instance를 찾아야 하는 유연한 open-vocabulary segmentation에는 SAM 3을 사용하세요
    • category가 사전에 정해져 있는 고속 production deployment에는 YOLO26을 사용하세요
    • geometric prompt를 사용하는 interactive single-object segmentation에는 SAM 2를 사용하세요
  • SAM 3은 간단한 명사구(예: "빨간 사과", "모자를 쓴 사람")를 위해 설계되었습니다. 추론이 필요한 복잡한 query의 경우 SAM 3을 MLLM과 결합하여 SAM 3 Agent로 사용하세요:

    간단한 query(SAM 3 기본 지원):

    • "노란색 스쿨버스"
    • "줄무늬 고양이"
    • "빨간 모자를 쓴 사람"

    복잡한 query(MLLM을 사용하는 SAM 3 Agent):

    • "앉아 있지만 선물 상자를 들고 있지 않은 사람들"
    • "목걸이를 하지 않은 개 중 카메라에 가장 가까운 개"
    • "사람의 손보다 큰 빨간색 물체"

    SAM 3 Agent는 SAM 3의 segmentation과 MLLM의 reasoning capability를 결합하여 ReasonSeg validation에서 76.0 gIoU를 달성합니다(이전 최고 성능 65.0 대비 +16.9% 향상).

  • triple human annotation이 적용된 SA-Co/Gold benchmark에서:

    • Human lower bound: 74.2 CGF1(가장 보수적인 annotator)
    • SAM 3 performance: 65.0 CGF1
    • Achievement: 추정된 human lower bound의 88%
    • Human upper bound: 81.4 CGF1(가장 관대한 annotator)

    SAM 3은 open-vocabulary concept segmentation에서 human-level accuracy에 근접하는 강력한 성능을 달성하며, 차이는 주로 모호하거나 주관적인 concept(예: "작은 창문", "아늑한 방")에서 발생합니다.

댓글