SAM 3: 개념을 활용한 세그멘테이션(Segment Anything with Concepts)
SAM 3는 8.3.237 버전(PR #22897)부터 Ultralytics 패키지에 완전히 통합되었습니다. pip install -U ultralytics를 사용하여 설치하거나 업그레이드하면 텍스트 기반 개념 세그멘테이션, 이미지 예시 프롬프트, 비디오 추적을 포함한 모든 SAM 3 기능을 사용할 수 있습니다.

SAM 3(Segment Anything Model 3)는 Meta에서 출시한 **PCS(Promptable Concept Segmentation, 프롬프트 기반 개념 세그멘테이션)**용 파운데이션 모델입니다. 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는 대화형 시각적 세그멘테이션에 대한 SAM 2의 기능을 유지 및 향상하면서, 프롬프트 기반 개념 세그멘테이션에서 기존 시스템 대비 2배의 성능 향상을 달성했습니다. 이 모델은 오픈 어휘 세그멘테이션에 탁월하며, 사용자는 간단한 명사구(예: "노란색 스쿨버스", "줄무늬 고양이")를 사용하거나 대상 객체의 예시 이미지를 제공하여 개념을 지정할 수 있습니다. 이러한 기능은 간소화된 predict 및 track 워크플로우에 의존하는 프로덕션 환경의 파이프라인을 보완합니다.

프롬프트 기반 개념 세그멘테이션(PCS)이란 무엇인가요?
PCS 작업은 개념 프롬프트를 입력으로 받아 일치하는 모든 객체 인스턴스에 대해 고유한 식별자를 가진 세그멘테이션 마스크를 반환합니다. 개념 프롬프트는 다음과 같을 수 있습니다:
- 텍스트: 제로샷 학습과 유사한 "빨간 사과" 또는 "모자를 쓴 사람"과 같은 간단한 명사구
- 이미지 예시: 빠른 일반화를 위해 대상 객체를 둘러싼 바운딩 박스(긍정 또는 부정)
- 결합형: 정밀한 제어를 위해 텍스트와 이미지 예시를 모두 사용
이는 기존 SAM 제품군에서 대중화된, 단 하나의 특정 객체 인스턴스만 세그멘테이션하는 전통적인 시각적 프롬프트(점, 박스, 마스크)와는 다릅니다.
주요 성능 지표
| 지표 | SAM 3 성과 |
|---|---|
| LVIS 제로샷 마스크 AP | 47.0 (이전 최고 기록 38.5 대비, +22% 향상) |
| SA-Co 벤치마크 | 기존 시스템 대비 2배 향상 |
| 추론 속도(H200 GPU) | 이미지당 30 ms, 100개 이상의 객체 감지 |
| 비디오 성능 | 동시 객체 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는 PE(Perception Encoder) 비전 백본을 공유하는 **감지기(Detector)**와 **추적기(Tracker)**로 구성됩니다. 이 분리형 설계는 작업 충돌을 방지하면서 이미지 수준의 감지와 비디오 수준의 추적을 모두 지원하며, Ultralytics Python 사용 및 CLI 사용과 호환되는 인터페이스를 제공합니다.
핵심 구성 요소
-
감지기(Detector): 이미지 수준의 개념 감지를 위한 DETR 기반 아키텍처
- 명사구 프롬프트를 위한 텍스트 인코더
- 이미지 기반 프롬프트를 위한 예시 인코더
- 프롬프트에 따라 이미지 특징을 조정하기 위한 퓨전 인코더
- 인식("무엇")과 위치 파악("어디")을 분리하는 새로운 존재 헤드(presence head)
- 인스턴스 세그멘테이션 마스크 생성을 위한 마스크 헤드
-
추적기(Tracker): SAM 2로부터 계승된 메모리 기반 비디오 세그멘테이션
- 프롬프트 인코더, 마스크 디코더, 메모리 인코더
- 프레임 전반에 걸쳐 객체 모양을 저장하는 메모리 뱅크
- 다중 객체 환경에서 칼만 필터와 같은 기술의 도움을 받는 시간적 모호성 해결
-
존재 토큰(Presence Token): 대상 개념이 이미지/프레임에 존재하는지 여부를 예측하는 학습된 글로벌 토큰으로, 인식과 위치 파악을 분리하여 감지 성능을 향상시킵니다.

주요 혁신 사항
- 인식 및 위치 파악 분리: 존재 헤드가 개념 존재 여부를 전역적으로 예측하는 반면, 제안 쿼리는 위치 파악에만 집중하여 목표 간의 충돌을 방지합니다.
- 통합 개념 및 시각적 프롬프트: 단일 모델에서 PCS(개념 프롬프트)와 PVS(SAM 2의 클릭/박스와 같은 시각적 프롬프트)를 모두 지원합니다.
- 대화형 예시 정밀화: 사용자가 긍정 또는 부정 이미지 예시를 추가하여 반복적으로 결과를 정밀화할 수 있으며, 모델은 개별 인스턴스 수정에 그치지 않고 유사한 객체로 일반화합니다.
- 시간적 모호성 해결: 인스턴스 세그멘테이션 및 추적 모범 사례에 따라 마스크렛 감지 점수와 주기적인 재프롬프팅을 사용하여 가림 현상, 혼잡한 장면 및 비디오 추적 실패 상황을 처리합니다.
SA-Co 데이터셋
SAM 3는 Meta의 가장 크고 다양한 세그멘테이션 데이터셋인 **SA-Co(Segment Anything with Concepts)**로 학습되었으며, 이는 COCO 및 LVIS와 같은 일반적인 벤치마크를 넘어섭니다.
학습 데이터
| 데이터셋 구성 요소 | 설명 | 규모 |
|---|---|---|
| SA-Co/HQ | 4단계 데이터 엔진을 거친 고품질의 사람 주석 이미지 데이터 | 520만 개 이미지, 400만 개의 고유 명사구 |
| SA-Co/SYN | 사람의 개입 없이 AI가 라벨링한 합성 데이터셋 | 3800만 개의 명사구, 14억 개의 마스크 |
| SA-Co/EXT | 난이도 높은 부정 샘플(hard negatives)이 보강된 15개의 외부 데이터셋 | 소스에 따라 다름 |
| SA-Co/VIDEO | 시간적 추적 정보가 포함된 비디오 주석 | 52,500개 비디오, 24,800개의 고유 명사구 |
벤치마크 데이터
SA-Co 평가 벤치마크는 126,000개의 이미지 및 비디오 전반에 걸쳐 214,000개의 고유 구문을 포함하며, 기존 벤치마크보다 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배의 주석 처리량을 달성합니다:
- AI 주석가: Llama 기반 모델이 난이도 높은 부정 샘플을 포함한 다양한 명사구 제안
- AI 검증자: 미세 조정된 멀티모달 LLM이 인간 수준에 가까운 성능으로 마스크 품질 및 포괄성을 검증
- 능동적 마이닝(Active Mining): AI가 어려움을 겪는 까다로운 실패 사례에 인간의 노력을 집중
- 온톨로지 기반: 개념 커버리지를 위해 Wikidata에 기반한 대규모 온톨로지를 활용
설치
SAM 3는 Ultralytics 8.3.237 버전 이상에서 사용할 수 있습니다. 다음 명령으로 설치하거나 업그레이드하십시오:
pip install -U ultralytics다른 Ultralytics 모델과 달리 SAM 3 가중치(sam3.pt)는 자동으로 다운로드되지 않습니다. 먼저 Hugging Face의 SAM 3 모델 페이지에서 모델 가중치에 대한 사용 권한을 요청하고 승인된 후 해당 페이지에서 sam3.pt를 다운로드해야 합니다. 다운로드한 sam3.pt 파일을 작업 디렉토리에 배치하거나 모델을 로드할 때 전체 경로를 지정하십시오.
예측 중에 위 오류가 발생하면, 잘못된 clip 패키지가 설치된 것입니다. 다음을 실행하여 올바른 clip 패키지를 설치하십시오:
pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.gitSAM 3 사용 방법: 개념 세그멘테이션의 다양성
SAM 3는 다양한 예측 인터페이스를 통해 프롬프트 기반 개념 세그멘테이션(PCS) 및 프롬프트 기반 시각적 세그멘테이션(PVS) 작업을 모두 지원합니다:
지원되는 작업 및 모델
| 작업 유형 | 프롬프트 유형 | 출력 |
|---|---|---|
| 개념 세그멘테이션(PCS) | 텍스트(명사구), 이미지 예시 | 개념과 일치하는 모든 인스턴스 |
| 시각적 세그멘테이션(PVS) | 점, 박스, 마스크 | 단일 객체 인스턴스(SAM 2 스타일) |
| 대화형 정밀화 | 예시 또는 클릭을 반복적으로 추가/제거 | 정확도가 향상된 정밀 세그멘테이션 |
개념 세그멘테이션 예제
텍스트 프롬프트를 사용한 세그멘테이션
텍스트 설명을 사용하여 개념의 모든 인스턴스를 찾고 세그멘테이션합니다. 텍스트 프롬프트는 SAM3SemanticPredictor 인터페이스를 필요로 합니다.
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor with configuration
overrides = dict(
conf=0.25,
task="segment",
mode="predict",
model="sam3.pt",
half=True, # 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"])이미지 예시(Exemplar)를 사용한 세그멘테이션
바운딩 박스를 시각적 프롬프트로 사용하여 유사한 모든 인스턴스를 찾습니다. 이는 개념 기반 매칭을 위해 SAM3SemanticPredictor를 사용해야 합니다.
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, 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 for different concepts
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])효율성을 위한 특징(Feature) 기반 추론
이미지 특징을 한 번 추출하고 이를 여러 세그멘테이션 쿼리에 재사용하여 효율성을 향상합니다.
import cv2
from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors
# Initialize predictors
overrides = dict(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 = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
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 = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, 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 인터페이스는 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를 사용하십시오.
성능 벤치마크
이미지 세그멘테이션
LVIS 및 COCO for segmentation와 같은 실제 데이터셋을 포함한 여러 벤치마크에서 SAM 3는 최첨단 성능을 달성합니다:
| 벤치마크 (Benchmark) | 지표 | SAM 3 | 이전 최고 기록 | 향상 폭 |
|---|---|---|---|---|
| LVIS (zero-shot) | Mask AP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 (OWLv2) | +89.5% |
| COCO (zero-shot) | Box AP | 53.5 | 52.2 (T-Rex2) | +2.5% |
| ADE-847 (semantic seg) | mIoU | 14.7 | 9.2 (APE-D) | +59.8% |
| PascalConcept-59 | mIoU | 59.4 | 58.5 (APE-D) | +1.5% |
| Cityscapes (semantic seg) | mIoU | 65.1 | 44.2 (APE-D) | +47.3% |
Ultralytics datasets에서 빠른 실험을 위한 데이터셋 옵션을 살펴보십시오.
비디오 세그멘테이션 성능
SAM 3는 DAVIS 2017 및 YouTube-VOS와 같은 비디오 벤치마크 전반에서 SAM 2 및 기존 최첨단 모델 대비 상당한 성능 향상을 보여줍니다:
| 벤치마크 (Benchmark) | 지표 | SAM 3 | SAM 2.1 L | 향상 폭 |
|---|---|---|---|---|
| MOSEv2 | J&F | 60.1 | 47.9 | +25.5% |
| DAVIS 2017 | J&F | 92.0 | 90.7 | +1.4% |
| LVOSv2 | J&F | 88.2 | 79.6 | +10.8% |
| SA-V | J&F | 84.6 | 78.4 | +7.9% |
| YTVOS19 | J&F | 89.6 | 89.3 | +0.3% |
퓨샷(Few-Shot) 적응
SAM 3는 data-centric AI 워크플로와 관련된 최소한의 예시만으로 새로운 도메인에 적응하는 데 탁월합니다:
| 벤치마크 (Benchmark) | 0-shot AP | 10-shot AP | 이전 최고 기록 (10-shot) |
|---|---|---|---|
| ODinW13 | 59.9 | 71.6 | 67.9 (gDino1.5-Pro) |
| RF100-VL | 14.3 | 35.7 | 33.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는 객체 카운팅에서 흔히 요구되는 모든 인스턴스를 세분화하여 정확한 카운팅을 제공합니다:
| 벤치마크 (Benchmark) | 정확도 | MAE | 최고 MLLM 대비 |
|---|---|---|---|
| CountBench | 95.6% | 0.11 | 92.4% (Gemini 2.5) |
| PixMo-Count | 87.3% | 0.22 | 88.8% (Molmo-72B) |
SAM 3 vs SAM 2 vs YOLO 비교
여기에서는 SAM 3의 기능을 SAM 2 및 YOLO26 모델과 비교합니다:
| 기능 | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| 개념 세분화 | ✅ 텍스트/예시에서 모든 인스턴스 | ❌ 지원되지 않음 | ❌ 지원되지 않음 |
| 시각적 세분화 | ✅ 단일 인스턴스 (SAM 2 호환) | ✅ 단일 인스턴스 | ✅ 모든 인스턴스 |
| 제로샷 기능 | ✅ 오픈 어휘 | ✅ 기하학적 프롬프트 | ❌ 닫힌 집합 |
| 대화형 정밀화 | ✅ 예시 + 클릭 | ✅ 클릭 전용 | ❌ 지원되지 않음 |
| 비디오 추적 | ✅ 식별자를 포함한 다중 객체 | ✅ 다중 객체 | ✅ 다중 객체 |
| LVIS Mask AP (제로샷) | 47.0 | N/A | N/A |
| MOSEv2 J&F | 60.1 | 47.9 | N/A |
| 속도 (GPU, ms/im) | 2921 | 857 | 8.4 |
| 모델 크기 | 3.45 GB | 162 MB (베이스) | 6.4 MB |
속도는 torch==2.9.1 및 ultralytics==8.4.19 환경의 NVIDIA RTX PRO 6000에서 벤치마크되었습니다.
주요 요약:
- SAM 3: 오픈 어휘 개념 세분화에 최적이며, 텍스트나 예시 프롬프트를 사용하여 개념의 모든 인스턴스를 찾는 데 가장 적합합니다.
- SAM 2: 기하학적 프롬프트를 사용하는 이미지 및 비디오의 대화형 단일 객체 세분화에 가장 적합합니다.
- YOLO26: 실시간 고속 세분화에 가장 적합하며, NMS가 필요 없는 엔드투엔드 추론을 지원하고, GPU, CPU 및 엣지 장치 배포를 위해 다양한 형식으로 내보내기가 가능합니다.
SAM과 YOLO 비교
SAM 3, SAM 2, SAM, MobileSAM 및 FastSAM을 Ultralytics YOLO 세분화 모델(YOLOv8, YOLO11, YOLO26)과 크기, 파라미터 및 GPU 추론 속도 면에서 비교합니다:
| 모델 | 크기 (MB) | 매개변수 (M) | 속도 (GPU) (ms/im) |
|---|---|---|---|
| Meta SAM-b | 375 | 93.7 | 1306 |
| Meta SAM2-b | 162 | 80.8 | 857 |
| Meta SAM2-t | 78.1 | 38.9 | 668 |
| Meta SAM3 | 3450 | 473.6 | 2921 |
| MobileSAM | 40.7 | 10.1 | 605 |
| FastSAM-s with YOLOv8 backbone | 23.7 | 11.8 | 55.9 |
| Ultralytics YOLOv8n-seg | 6.7 (515배 작음) | 3.4 (139.1배 적음) | 17.4 (167배 빠름) |
| Ultralytics YOLO11n-seg | 5.9 (585배 작음) | 2.9 (163.1배 적음) | 12.6 (231배 빠름) |
| Ultralytics YOLO26n-seg | 6.4 (539배 작음) | 2.7 (175.2배 적음) | 8.4 (347배 빠름) |
이 비교는 SAM 변형 모델들과 YOLO 세그멘테이션 모델 간의 모델 크기 및 속도 차이를 보여줍니다. SAM은 독보적인 자동 세그멘테이션 기능을 제공하지만, YOLO 모델, 특히 YOLOv8n-seg, YOLO11n-seg 및 YOLO26n-seg는 훨씬 더 작고 빠르며 계산 효율성이 뛰어납니다.
테스트는 96GB VRAM을 장착한 NVIDIA RTX PRO 6000에서 torch==2.9.1 및 ultralytics==8.4.19를 사용하여 실행되었습니다. 이 테스트를 재현하려면:
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)평가 지표
SAM 3는 F1 점수, 정밀도, 재현율과 같은 친숙한 측정 지표를 보완하는 PCS 작업을 위해 설계된 새로운 지표를 도입합니다.
분류 게이트 F1 (CGF1)
위치 파악과 분류를 결합한 기본 지표:
CGF1 = 100 × pmF1 × IL_MCC
항목별 설명:
- pmF1 (양수 매크로 F1): 양수 예제에 대한 위치 파악 품질 측정
- IL_MCC (이미지 수준 매튜스 상관 계수): 이진 분류 정확도 측정 ("개념이 존재하는가?")
왜 이러한 지표인가?
기존 AP 지표는 보정을 고려하지 않아 실제 환경에서 모델을 사용하기 어렵게 만듭니다. 0.5 신뢰도 이상의 예측만 평가함으로써, SAM 3의 지표는 우수한 보정을 강제하고 대화형 예측 및 추적 루프에서의 실제 사용 패턴을 모방합니다.
주요 어블레이션 및 통찰
존재 헤드의 영향
프레즌스 헤드(presence head)는 인식과 로컬라이제이션을 분리하여 다음과 같은 상당한 개선을 제공합니다:
| 구성(Configuration) | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 프레즌스 없음 | 57.6 | 0.77 | 74.7 |
| 프레즌스 있음 | 63.3 | 0.82 | 77.1 |
프레즌스 헤드는 +5.7 CGF1 향상(+9.9%)을 제공하며, 주로 인식 능력(IL_MCC +6.5%)을 개선합니다.
Hard Negative의 영향
| 이미지당 Hard Negative | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 0 | 31.8 | 0.44 | 70.2 |
| 5 | 44.8 | 0.62 | 71.9 |
| 30 | 49.2 | 0.68 | 72.3 |
Hard negative는 오픈 어휘 인식에 매우 중요하며, IL_MCC를 54.5%(0.44 → 0.68) 향상시킵니다.
학습 데이터 스케일링
| 데이터 소스 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 외부 데이터만 사용 | 30.9 | 0.46 | 66.3 |
| 외부 + 합성 데이터 | 39.7 | 0.57 | 70.6 |
| 외부 + HQ | 51.8 | 0.71 | 73.2 |
| 세 가지 모두 | 54.3 | 0.74 | 73.5 |
고품질의 인간 주석 데이터는 합성 데이터나 외부 데이터만 사용했을 때보다 훨씬 큰 성능 향상을 제공합니다. 데이터 품질 관행에 대한 배경 정보는 데이터 수집 및 주석을 참조하십시오.
응용 분야
SAM 3의 개념 분할(concept segmentation) 기능은 다음과 같은 새로운 사용 사례를 가능하게 합니다:
- 콘텐츠 조정: 미디어 라이브러리 전체에서 특정 콘텐츠 유형의 모든 인스턴스 검색
- 전자상거래: 카탈로그 이미지에서 특정 유형의 모든 제품을 분할하여 자동 주석 지원
- 의료 영상: 특정 조직 유형이나 이상 현상의 모든 발생 사례 식별
- 자율 시스템: 범주별로 교통 표지판, 보행자 또는 차량의 모든 인스턴스 추적
- 비디오 분석: 특정 의복을 착용하거나 특정 행동을 수행하는 모든 사람을 계산하고 추적
- 데이터셋 주석: 희귀 객체 범주의 모든 인스턴스를 빠르게 주석 처리
- 과학 연구: 특정 기준과 일치하는 모든 표본을 정량화하고 분석
SAM 3 에이전트: 확장된 언어 추론
SAM 3는 OWLv2 및 T-Rex와 같은 오픈 어휘 시스템과 유사한 정신으로, 추론이 필요한 복잡한 쿼리를 처리하기 위해 다중 모드 대형 언어 모델(MLLM)과 결합될 수 있습니다.
추론 작업 성능
| 벤치마크 (Benchmark) | 지표 | SAM 3 에이전트(Gemini 2.5 Pro) | 이전 최고 기록 |
|---|---|---|---|
| ReasonSeg (검증) | gIoU | 76.0 | 65.0 (SoTA) |
| ReasonSeg (테스트) | gIoU | 73.8 | 61.3 (SoTA) |
| OmniLabel (검증) | AP | 46.7 | 36.5 (REAL) |
| RefCOCO+ | Acc | 91.2 | 89.3 (LISA) |
복잡한 쿼리 예시
SAM 3 에이전트는 추론이 필요한 쿼리를 처리할 수 있습니다:
- "손에 선물 상자를 들고 있지 않은 채 앉아 있는 사람들"
- "카메라와 가장 가까우면서 목걸이를 하지 않은 개"
- "사람의 손보다 큰 빨간색 물체"
MLLM은 SAM 3에 간단한 명사구 쿼리를 제안하고, 반환된 마스크를 분석하며, 만족할 때까지 반복합니다.
제한 사항
SAM 3는 큰 발전을 의미하지만, 다음과 같은 제한 사항이 있습니다:
- 구문 복잡성: 간단한 명사구에 가장 적합하며, 긴 참조 표현이나 복잡한 추론은 MLLM 통합이 필요할 수 있습니다
- 모호성 처리: 일부 개념은 본질적으로 모호합니다(예: "작은 창문", "아늑한 방")
- 계산 요구 사항: YOLO와 같은 전문 탐지 모델보다 크고 느립니다
- 어휘 범위: 원자적 시각 개념에 집중되어 있으며, MLLM 지원 없이는 구성적 추론이 제한됩니다
- 희귀 개념: 학습 데이터에 잘 표현되지 않은 극히 희귀하거나 세밀한 개념에서는 성능이 저하될 수 있습니다
인용
@inproceedings{sam3_2025,
title = {SAM 3: Segment Anything with Concepts},
author = {Anonymous authors},
booktitle = {Submitted to ICLR 2026},
year = {2025},
url = {https://openreview.net/forum?id=r35clVtGzw},
note = {Paper ID: 4183, under double-blind review}
}FAQ
SAM 3는 언제 출시되었습니까?
SAM 3는 Meta에 의해 2025년 11월 20일에 출시되었으며, 버전 8.3.237(PR #22897)부터 Ultralytics에 완전히 통합되었습니다. 예측 모드 및 추적 모드에 대한 전체 지원을 이용할 수 있습니다.
SAM 3가 Ultralytics에 통합되어 있습니까?
Yes! SAM 3 is fully integrated into the Ultralytics Python package, including concept segmentation, SAM 2–style visual prompts, and multi-object video tracking. SAM 3 also powers the smart annotation feature on Ultralytics Platform, where you can annotate images with just a few clicks.
프롬프트 가능한 개념 분할(PCS)이란 무엇입니까?
PCS는 이미지나 비디오에서 시각적 개념의 모든 인스턴스를 분할하는 SAM 3에서 도입된 새로운 작업입니다. 특정 객체 인스턴스를 대상으로 하는 기존의 분할 방식과 달리, PCS는 범주의 모든 발생 사례를 찾습니다. 예시:
- 텍스트 프롬프트: "노란색 스쿨버스" → 장면 속 모든 노란색 스쿨버스 분할
- 이미지 예시: 개 한 마리 주변의 박스 → 이미지 속 모든 개 분할
- 결합: "줄무늬 고양이" + 예시 박스 → 예시와 일치하는 모든 줄무늬 고양이 분할
객체 탐지 및 인스턴스 분할에 대한 관련 배경을 참조하십시오.
SAM 3는 SAM 2와 어떻게 다릅니까?
| 기능 | SAM 2 | SAM 3 |
|---|---|---|
| 작업 | 프롬프트당 단일 객체 | 개념의 모든 인스턴스 |
| 프롬프트 유형 | 점, 박스, 마스크 | 텍스트 구문, 이미지 예시 |
| 탐지 기능 | 외부 탐지기 필요 | 내장형 오픈 어휘(open-vocabulary) 탐지기 |
| 인식 | 기하학 기반 전용 | 텍스트 및 시각적 인식 |
| 아키텍처 | 추적기(tracker) 전용 | 탐지기 + 존재 여부 헤드(presence head)를 포함한 추적기 |
| 제로샷(Zero-Shot) 성능 | 해당 없음 (시각적 프롬프트 필요) | LVIS에서 47.0 AP, SA-Co에서 2배 향상 |
| 대화형 정밀화 | 클릭 전용 | 클릭 + 예시 기반 일반화 |
SAM 3는 SAM 2 시각적 프롬프팅과의 하위 호환성을 유지하면서 개념 기반 기능을 추가했습니다.
SAM 3 학습에는 어떤 데이터셋이 사용됩니까?
SAM 3는 SA-Co (Segment Anything with Concepts) 데이터셋으로 학습되었습니다:
학습 데이터:
- 520만 개의 이미지 및 400만 개의 고유 명사구 (SA-Co/HQ) - 고품질 인간 주석
- 52,500개의 비디오 및 24,800개의 고유 명사구 (SA-Co/VIDEO)
- 3,800만 개의 명사구에 걸친 14억 개의 합성 마스크 (SA-Co/SYN)
- 하드 네거티브(hard negative)가 강화된 15개의 외부 데이터셋 (SA-Co/EXT)
벤치마크 데이터:
- 126,000개의 이미지/비디오에 걸친 214,000개의 고유 개념
- 기존 벤치마크 대비 50배 더 많은 개념 (예: LVIS는 약 4,000개의 개념 보유)
- 인간 성능 범위를 측정하기 위한 SA-Co/Gold의 3중 주석
이러한 대규모 데이터와 다양성 덕분에 SAM 3는 오픈 어휘 개념 전반에서 뛰어난 제로샷 일반화 성능을 제공합니다.
SAM 3와 YOLO26의 세그멘테이션 성능 비교는 어떻게 됩니까?
SAM 3와 YOLO26은 서로 다른 사용 사례를 지원합니다:
SAM 3 장점:
- 오픈 어휘: 학습 없이 텍스트 프롬프트로 모든 개념 세그멘테이션 가능
- 제로샷: 새로운 카테고리에 즉시 적용 가능
- 대화형: 예시 기반 개선을 통해 유사한 객체로 일반화
- 개념 기반: 카테고리의 모든 인스턴스를 자동으로 탐색
- 정확도: LVIS 제로샷 인스턴스 세그멘테이션에서 47.0 AP
YOLO26 장점:
- 속도: NMS-free 엔드투엔드 설계로 수십 배 빠른 추론 속도
- 효율성: 539배 더 작은 모델 (6.4MB vs 3.45GB)
- 리소스 친화적: 엣지 디바이스 및 모바일에서 구동 가능
- 실시간: 프로덕션 배포에 최적화
권장 사항:
- 텍스트나 예시로 설명되는 개념의 모든 인스턴스를 찾아야 하는 유연한 오픈 어휘 세그멘테이션에는 SAM 3를 사용하십시오.
- 카테고리가 사전에 정의된 고속 프로덕션 배포에는 YOLO26을 사용하십시오.
- 기하학적 프롬프트를 사용하는 대화형 단일 객체 세그멘테이션에는 SAM 2를 사용하십시오.
SAM 3가 복잡한 언어 쿼리를 처리할 수 있습니까?
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% 향상).
SAM 3의 정확도는 인간의 성능과 비교했을 때 어느 정도입니까?
3중 인간 주석을 사용한 SA-Co/Gold 벤치마크 기준:
- 인간 하한선: 74.2 CGF1 (가장 보수적인 주석가)
- SAM 3 성능: 65.0 CGF1
- 성과: 추정된 인간 하한선의 88%
- 인간 상한선: 81.4 CGF1 (가장 관대한 주석가)
SAM 3는 오픈 어휘 개념 세그멘테이션에서 인간 수준의 정확도에 근접하는 강력한 성능을 달성했으며, 주된 격차는 모호하거나 주관적인 개념(예: "작은 창문", "아늑한 방")에서 나타납니다.