Ultralytics YOLO27:
Get Started

SAM 3: 개념을 사용한 세그먼트 애니씽#

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

SAM 3(세그먼트 애니씽 모델 3)는 Meta가 공개한 프롬프트 기반 개념 분할(PCS)용 파운데이션 모델입니다. SAM 2를 기반으로 하는 SAM 3는 텍스트 프롬프트, 이미지 예시 또는 두 가지 모두로 지정한 시각적 개념의 모든 인스턴스를 탐지하고 분할하며 추적하는 근본적으로 새로운 기능을 제공합니다. 프롬프트마다 단일 객체를 분할하는 이전 SAM 버전과 달리, SAM 3는 이미지나 동영상 어디에 나타나든 개념의 모든 사례를 찾아 분할하여 최신 인스턴스 분할의 오픈 보캐뷸러리 목표에 부합합니다.



시청: Ultralytics에서 Meta Segment Anything 3를 사용하는 방법 | 이미지 및 동영상의 텍스트 프롬프트 분할

SAM 3는 ultralytics 패키지에 완전히 통합되어 텍스트 프롬프트와 이미지 예시 프롬프트를 사용한 개념 분할 및 동영상 추적을 기본적으로 지원합니다. 이미지 예측에는 최신 SAM 3.1 체크포인트가 지원됩니다.

개요#

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

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

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

PCS 작업은 개념 프롬프트를 입력으로 받아 일치하는 모든 객체 인스턴스에 고유한 식별자가 부여된 분할 마스크를 반환합니다. 개념 프롬프트는 다음과 같은 형태로 제공할 수 있습니다:

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

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

주요 성능 지표#

지표SAM 3 성과
LVIS 제로샷 마스크 AP47.0 (이전 최고 38.5 대비 +22% 향상)
SA-Co 벤치마크기존 시스템보다 2배 우수
추론 속도(H200 GPU)객체 100개 이상 탐지 시 이미지당 30 ms
동영상 성능동시 객체 ~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#

Meta가 2026년 3월 27일 공개한 SAM 3.1은 멀티 객체 동영상 추적을 위한 공유 메모리 방식인 Object Multiplex를 추가한 새로운 SAM 3 체크포인트입니다. 추적 대상 객체를 각각 독립적으로 처리하는 대신, SAM 3.1은 객체를 고정 용량 버킷으로 그룹화해 함께 처리합니다. Meta에 따르면 단일 H100 GPU에서 객체 128개를 처리할 때 속도가 약 7배 향상됩니다. 이미지 검출기와 대화형 포인트 프롬프트 헤드는 SAM 3 아키텍처를 유지합니다.

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

Ultralytics는 SAM 3.1 체크포인트(sam3.1_multiplex.pt)를 SAM 3 이미지 예측기에 불러옵니다. 포인트 및 박스 프롬프트에는 SAM("sam3.1_multiplex.pt")을, 텍스트 및 예시 프롬프트에는 SAM3SemanticPredictor를 사용합니다. Object Multiplex 동영상 추적은 아직 지원되지 않으므로, SAM3VideoPredictor 및 SAM3VideoSemanticPredictor와 함께 sam3.pt을 계속 사용하세요.

아키텍처#

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

핵심 구성 요소#

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

    • 명사구 프롬프트용 텍스트 인코더
    • 이미지 기반 프롬프트용 예시 인코더
    • 프롬프트를 바탕으로 이미지 특징을 조건화하는 융합 인코더
    • 인식("무엇")과 위치 파악("어디")을 분리하는 새로운 존재 헤드
    • 인스턴스 분할 마스크 생성을 위한 마스크 헤드
  • 추적기: SAM 2에서 이어받은 메모리 기반 동영상 분할

    • 프롬프트 인코더, 마스크 디코더, 메모리 인코더
    • 프레임 전반에 걸쳐 객체의 외형을 저장하는 메모리 뱅크
    • 멀티 객체 환경에서 칼만 필터와 같은 기법을 활용한 시간적 모호성 해소
  • 존재 토큰: 대상 개념이 이미지 또는 프레임에 존재하는지 예측하는 학습된 전역 토큰으로, 인식과 위치 파악을 분리하여 검출 성능을 향상시킵니다.

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

주요 혁신#

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

SA-Co 데이터셋#

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

학습 데이터#

데이터셋 구성 요소설명규모
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/Bronze 및 SA-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은 서로 다른 예측기 인터페이스를 통해 프롬프트 기반 개념 분할(PCS)과 프롬프트 기반 시각 분할(PVS) 작업을 모두 지원합니다:

지원 작업 및 모델#

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

개념 분할 예제#

텍스트 프롬프트로 분할#

텍스트 기반 개념 분할

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

from ultralytics.models.sam import SAM3SemanticPredictor

# 설정으로 예측기를 초기화합니다.
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "model": "sam3.pt",
    "quantize": 16,  # 더 빠른 추론을 위해 FP16을 사용합니다.
    "save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)

# 여러 쿼리에 사용할 이미지를 한 번 설정합니다.
predictor.set_image("path/to/image.jpg")

# 여러 텍스트 프롬프트로 쿼리합니다.
results = predictor(text=["person", "bus", "glasses"])

# 설명형 구문을 사용할 수 있습니다.
results = predictor(text=["person with red cloth", "person with blue cloth"])

# 단일 개념으로 쿼리합니다.
results = predictor(text=["a person"])

이미지 예시로 분할#

이미지 예시 기반 분할

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

from ultralytics.models.sam import SAM3SemanticPredictor

# 예측기를 초기화합니다.
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)

# 이미지를 설정합니다.
predictor.set_image("path/to/image.jpg")

# 유사한 객체를 분할할 수 있도록 바운딩 박스 예시를 제공합니다.
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# 동일한 시각적 개념의 예시로 여러 바운딩 박스를 사용합니다.
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

# 예측기를 초기화합니다.
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# 첫 번째 예측기에서 특징을 추출합니다.
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# 두 번째 예측기를 설정하고 특징을 재사용합니다.
predictor2.setup_model()

# 공유 특징과 텍스트 프롬프트를 사용해 추론을 수행합니다.
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# 공유 특징과 바운딩 박스 프롬프트를 사용해 추론을 수행합니다.
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# 결과를 시각화합니다.
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

# 동영상 예측기를 생성합니다.
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)

# 바운딩 박스 프롬프트를 사용해 객체를 추적합니다.
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# 결과를 처리하고 표시합니다.
for r in results:
    r.show()  # 분할 마스크가 있는 프레임을 표시합니다.

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

시맨틱 쿼리를 사용한 동영상 추적

텍스트로 지정한 개념의 모든 인스턴스를 동영상 프레임 전체에서 추적합니다.

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# 시맨틱 동영상 예측기를 초기화합니다.
overrides = {
    "conf": 0.25,
    "task": "segment",
    "mode": "predict",
    "imgsz": 640,
    "model": "sam3.pt",
    "quantize": 16,
    "save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# 텍스트 프롬프트를 사용해 개념을 추적합니다.
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# 결과를 처리합니다
for r in results:
    r.show()  # 추적된 객체가 있는 프레임을 표시합니다.

# 대안: 바운딩 박스 프롬프트로 추적합니다.
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # 긍정 레이블
    stream=True,
)

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

SAM 3은 단일 객체 분할을 위한 SAM 2의 시각 프롬프트 기능과 완전한 하위 호환성을 유지합니다:

SAM 2 방식의 시각 프롬프트

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

from ultralytics import SAM

model = SAM("sam3.pt")

# 단일 포인트 프롬프트 - 특정 위치의 객체를 분할합니다
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# 다중 포인트 - 여러 포인트 힌트를 사용해 단일 객체를 분할합니다
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# 박스 프롬프트 - 바운딩 박스 안의 객체를 분할합니다
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 (제로샷)마스크 AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (제로샷)박스 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 2017 및 YouTube-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 워크플로에 유용합니다:

벤치마크제로샷 AP10샷 AP이전 최고 성능(10샷)
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 2 및 YOLO26 모델과 비교합니다. 같은 종류의 프롬프트를 사용한 실시간 오픈 보캐뷸러리 탐지 및 분할은 YOLOE를 참조하세요:

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

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

핵심 요점:

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

SAM과 YOLO 비교#

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

모델크기
(MB)
매개변수
(M)
속도(GPU)
(ms/im)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s와 YOLOv8 백본23.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.1 및 ultralytics==8.4.19을 사용하여 VRAM 96GB의 NVIDIA RTX PRO 6000에서 테스트를 실행했습니다. 이 테스트를 재현하려면 다음을 수행하세요.

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

# 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)

# FastSAM-s 프로파일링
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# YOLO 모델 프로파일링
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 없는 헤드; YOLOv8/YOLO11에서는 작동하지 않음

평가 지표#

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

분류 게이트 F1(CGF1)#

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

CGF1 = 100 × pmF1 × IL_MCC

항목은 다음과 같습니다.

  • pmF1(Positive Macro F1): 양성 예제에 대한 위치 지정 품질을 측정합니다.
  • IL_MCC(Image-Level Matthews 상관계수): 이진 분류 정확도("해당 개념이 있는가?")를 측정합니다.

이러한 지표를 사용하는 이유#

기존 AP 지표는 보정 상태를 고려하지 않으므로 실제 사용 시 모델을 활용하기 어렵습니다. 0.5를 초과하는 신뢰도의 예측만 평가함으로써 SAM 3의 지표는 우수한 보정을 요구하고, 대화형 예측 및 추적 루프의 실제 사용 패턴을 모방합니다.

주요 어블레이션 및 인사이트#

존재 헤드의 영향#

존재 헤드는 인식과 위치 지정을 분리하여 상당한 성능 향상을 제공합니다.

구성CGF1IL_MCCpmF1
존재 헤드 없음57.60.7774.7
존재 헤드 적용63.30.8277.1

존재 헤드는 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의 개념 세그멘테이션 기능은 새로운 활용 사례를 가능하게 합니다.

  • 콘텐츠 관리: 미디어 라이브러리에서 특정 콘텐츠 유형의 모든 인스턴스를 찾습니다.
  • 전자상거래: 카탈로그 이미지에서 특정 유형의 모든 제품을 세그먼트화하여 자동 주석을 지원합니다.
  • 의료 영상: 특정 조직 유형이나 이상 소견이 나타나는 모든 위치를 식별합니다.
  • 자율 시스템: 교통 표지판, 보행자 또는 차량의 모든 인스턴스를 범주별로 추적합니다.
  • 비디오 분석: 특정 복장을 착용하거나 특정 행동을 하는 모든 사람을 세고 추적합니다.
  • 데이터셋 주석: 희귀 객체 범주의 모든 인스턴스에 빠르게 주석을 추가합니다.
  • 과학 연구: 특정 기준에 부합하는 모든 표본을 정량화하고 분석합니다.

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

SAM 3는 추론이 필요한 복잡한 쿼리를 처리하도록 멀티모달 대규모 언어 모델(MLLM)과 결합할 수 있으며, OWLv2 및 T-Rex와 같은 개방형 어휘 시스템과 유사한 접근 방식입니다.

추론 작업 성능#

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

복잡한 쿼리 예시#

SAM 3 Agent는 추론이 필요한 쿼리를 처리할 수 있습니다.

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

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

제한 사항#

SAM 3는 크게 발전했지만, 몇 가지 제한 사항이 있습니다.

  • 구문의 복잡성: 간단한 명사구에 가장 적합하며, 긴 참조 표현이나 복잡한 추론에는 MLLM 통합이 필요할 수 있습니다.
  • 모호성 처리: 일부 개념은 본질적으로 모호합니다(예: "작은 창문", "아늑한 방").
  • 연산 요구 사항: YOLO와 같은 특화된 감지 모델보다 크기가 크고 속도가 느립니다.
  • 어휘 범위: 원자적 시각 개념에 초점을 맞추며, 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}
}

자주 묻는 질문#

  • SAM 3는 Meta에서 2025년 11월 19일에 출시되었으며, ultralytics 패키지에 완전히 통합되어 예측 모드와 추적 모드를 지원합니다.

  • 예! 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을 사용하세요. Object Multiplex 비디오 추적은 아직 지원되지 않으므로 비디오 예측기에는 계속 sam3.pt를 사용하세요. Meta의 벤치마크는 SAM 3.1을 참조하세요.

  • PCS는 SAM 3에서 도입된 새로운 작업으로, 이미지 또는 비디오에서 시각적 개념의 모든 인스턴스를 세그먼트화합니다. 특정 객체 인스턴스를 대상으로 하는 기존 세그멘테이션과 달리, PCS는 범주의 모든 출현을 찾습니다. 예를 들면 다음과 같습니다.

    • 텍스트 프롬프트: "노란색 스쿨버스" → 장면에 있는 노란색 스쿨버스를 모두 세그먼트화합니다.
    • 이미지 예시: 개 한 마리 주위에 상자를 그리면 이미지의 모든 개를 분할합니다
    • 결합: "줄무늬 고양이" + 예시 상자 → 예시와 일치하는 모든 줄무늬 고양이를 분할합니다

    관련 배경 정보는 객체 감지 및 인스턴스 분할을 참조하세요.

  • 기능SAM 2SAM 3
    작업프롬프트당 단일 객체개념의 모든 인스턴스
    프롬프트 유형포인트, 박스, 마스크+ 텍스트 구문, 이미지 예시
    감지 기능외부 detector 필요내장된 오픈 보캐뷸러리 detector
    인식기하학 정보 기반만 지원텍스트 및 시각적 인식
    아키텍처트래커만 포함존재 여부 헤드가 포함된 detector + 트래커
    제로샷 성능해당 없음(시각적 프롬프트 필요)LVIS에서 47.0 AP, SA-Co에서 2배 향상
    대화형 개선클릭만 지원클릭 + 예시 일반화

    SAM 3는 개념 기반 기능을 추가하면서 SAM 2의 시각적 프롬프트와의 하위 호환성을 유지합니다.

  • SAM 3는 Segment Anything with Concepts (SA-Co) 데이터셋으로 학습됩니다:

    학습 데이터:

    • 이미지 5.2M개와 고유 명사구 4M개 (SA-Co/HQ) - 고품질 사람 주석
    • 비디오 52.5K개와 고유 명사구 24.8K개 (SA-Co/VIDEO)
    • 합성 마스크 1.4B개, 명사구 38M개에 걸쳐 구성 (SA-Co/SYN)
    • 어려운 음성 샘플을 추가한 외부 데이터셋 15개 (SA-Co/EXT)

    벤치마크 데이터:

    • 고유 개념 214K개, 이미지/비디오 126K개에 걸쳐 구성
    • 기존 벤치마크보다 개념이 50배 더 많습니다(예: LVIS에는 개념이 ~4K개 있음).
    • 사람 성능 범위를 측정하기 위해 SA-Co/Gold에 삼중 주석을 적용했습니다.

    이러한 방대한 규모와 다양성 덕분에 SAM 3는 오픈 보캐뷸러리 개념 전반에서 뛰어난 제로샷 일반화 성능을 발휘합니다.

  • SAM 3와 YOLO26은 서로 다른 사용 사례를 지원합니다:

    SAM 3의 장점:

    • 오픈 보캐뷸러리: 학습 없이 텍스트 프롬프트를 통해 모든 개념을 분할합니다.
    • 제로샷: 새로운 카테고리에도 즉시 적용할 수 있습니다.
    • 대화형: 예시 기반 개선 결과를 유사한 객체에 일반화합니다.
    • 개념 기반: 카테고리의 모든 인스턴스를 자동으로 찾습니다.
    • 정확도: LVIS 제로샷 인스턴스 분할에서 47.0 AP

    YOLO26의 장점:

    • 속도: NMS가 필요 없는 엔드투엔드 헤드를 선택적으로 사용할 수 있으며, 추론 속도가 몇 자릿수 더 빠릅니다.
    • 효율성: 모델 크기가 539배 더 작습니다(6.4MB 대 3.45GB).
    • 리소스 효율성: 엣지 디바이스와 모바일에서 실행됩니다.
    • 실시간: 프로덕션 배포에 최적화되어 있습니다.

    권장 사항:

    • 텍스트나 예시로 설명한 개념의 모든 인스턴스를 찾아야 하는 유연한 오픈 보캐뷸러리 분할에는 SAM 3를 사용하세요.
    • 카테고리를 미리 알고 있는 고속 프로덕션 배포에는 YOLO26을 사용하세요.
    • 기하학적 프롬프트를 사용한 대화형 단일 객체 분할에는 SAM 2를 사용하세요.
  • SAM 3는 간단한 명사구(예: "빨간 사과", "모자를 쓴 사람")에 맞게 설계되었습니다. 추론이 필요한 복잡한 질의에는 SAM 3를 MLLM과 결합하여 SAM 3 Agent로 사용하세요:

    간단한 질의(SAM 3 기본 기능):

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

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

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

    SAM 3 Agent는 SAM 3의 분할 기능과 MLLM의 추론 기능을 결합하여 ReasonSeg 검증 세트에서 76.0 gIoU를 달성합니다(이전 최고 기록 65.0 대비 +16.9% 향상).

  • 사람이 세 번 주석을 작성한 SA-Co/Gold 벤치마크 기준:

    • 사람 성능 하한: 74.2 CGF1(가장 보수적인 주석 작성자)
    • SAM 3 성능: 65.0 CGF1
    • 달성 수준: 추정된 사람 성능 하한의 88%
    • 사람 성능 상한: 81.4 CGF1(가장 관대한 주석 작성자)

    SAM 3는 오픈 보캐뷸러리 개념 분할에서 사람 수준의 정확도에 근접하는 우수한 성능을 보이며, 주로 모호하거나 주관적인 개념(예: "작은 창문", "아늑한 방")에서 차이가 나타납니다.

댓글