Ultralytics YOLO27:
Get Started

SAM 2: Segment Anything Model 2#

SAM의 진화

SAM 2는 기존 SAM을 기반으로 비디오 분할 기능을 추가했습니다. 텍스트 및 이미지 예시 프롬프트를 사용하는 프롬프트 기반 개념 분할에 대해서는 SAM 3를 참조하세요.

Inference with Segment Anything 2 In Colab

Meta의 Segment Anything Model (SAM)을 계승한 SAM 2는 이미지와 비디오 모두에서 포괄적인 객체 분할을 수행하도록 설계된 최첨단 도구입니다. 실시간 처리와 제로샷 일반화를 지원하는 통합 프롬프트 기반 모델 아키텍처를 통해 복잡한 시각 데이터를 효과적으로 처리합니다.

Ultralytics Platform의 SAM 2

SAM 2.1 모델은 Ultralytics Platform의 스마트 주석 기능을 구동하여 클릭 기반 분할로 데이터셋에 빠르게 라벨을 지정할 수 있게 합니다. 자세한 내용은 주석 가이드를 참조하세요.

SAM 2 예시 결과

주요 기능#



시청: Ultralytics에서 Meta의 SAM2로 추론을 실행하는 방법 | 단계별 가이드 🎉

통합 모델 아키텍처#

SAM 2는 이미지 분할과 비디오 분할 기능을 단일 모델에 결합합니다. 이러한 통합으로 배포가 간소화되고 다양한 미디어 유형에서 일관된 성능을 발휘할 수 있습니다. 또한 유연한 프롬프트 기반 인터페이스를 활용하여 사용자가 점, 바운딩 박스, 마스크 등 다양한 유형의 프롬프트로 관심 객체를 지정할 수 있습니다.

실시간 성능#

이 모델은 초당 약 44프레임을 처리하는 실시간 추론 속도를 달성합니다. 따라서 비디오 편집 및 증강 현실처럼 즉각적인 피드백이 필요한 애플리케이션에 SAM 2를 적합하게 사용할 수 있습니다.

제로샷 일반화#

SAM 2는 이전에 접한 적이 없는 객체도 분할할 수 있어 뛰어난 제로샷 일반화 성능을 보여줍니다. 사전 정의된 카테고리로는 가능한 모든 객체를 포함하기 어려운 다양하거나 변화하는 시각 도메인에서 특히 유용합니다.

인터랙티브 세분화#

사용자는 추가 프롬프트를 제공하여 분할 결과를 반복적으로 개선할 수 있으므로 출력 결과를 정밀하게 제어할 수 있습니다. 이러한 상호작용 기능은 비디오 주석 작업이나 의료 영상과 같은 애플리케이션에서 결과를 세밀하게 조정하는 데 필수적입니다.

시각적 문제의 고급 처리#

SAM 2에는 객체 가림 및 재등장과 같은 일반적인 비디오 분할 문제를 처리하는 메커니즘이 포함되어 있습니다. 정교한 메모리 메커니즘을 사용해 프레임 전반에서 객체를 추적하므로 객체가 일시적으로 가려지거나 장면에서 사라졌다가 다시 나타나더라도 연속성을 유지합니다.

SAM 2의 아키텍처와 기능을 자세히 알아보려면 SAM 2 연구 논문을 살펴보세요.

성능 및 기술 세부 정보#

SAM 2는 다양한 지표에서 이전 모델을 능가하며 해당 분야의 새로운 기준을 세웁니다.

지표SAM 2이전 최고 성능
인터랙티브 비디오 분할최고-
필요한 사람의 상호작용3배 적음기준 모델
이미지 분할 정확도향상됨SAM
추론 속도6배 빠름SAM

모델 아키텍처#

핵심 구성 요소#

  • 이미지 및 비디오 인코더: 트랜스포머 기반 아키텍처를 활용하여 이미지와 비디오 프레임 모두에서 고수준 특징을 추출합니다. 이 구성 요소는 각 시간 단계에서 시각적 콘텐츠를 이해하는 역할을 합니다.
  • 프롬프트 인코더: 사용자가 제공한 프롬프트(점, 박스, 마스크)를 처리하여 분할 작업을 안내합니다. 이를 통해 SAM 2는 사용자 입력에 맞춰 장면 내 특정 객체를 대상으로 지정할 수 있습니다.
  • 메모리 메커니즘: 메모리 인코더, 메모리 뱅크, 메모리 어텐션 모듈로 구성됩니다. 이 구성 요소들은 과거 프레임의 정보를 함께 저장하고 활용하여 모델이 시간의 흐름에 따라 일관된 객체 추적을 유지하도록 합니다.
  • 마스크 디코더: 인코딩된 이미지 특징과 프롬프트를 바탕으로 최종 분할 마스크를 생성합니다. 비디오에서는 프레임 간 정확한 추적을 위해 메모리 컨텍스트도 사용합니다.

SAM 2 아키텍처 다이어그램

메모리 메커니즘 및 가림 처리#

메모리 메커니즘을 통해 SAM 2는 비디오 데이터의 시간적 종속성과 가림을 처리할 수 있습니다. 객체가 움직이고 상호작용할 때 SAM 2는 객체의 특징을 메모리 뱅크에 기록합니다. 객체가 가려지면 모델은 이 메모리를 활용해 객체가 다시 나타날 때의 위치와 외형을 예측할 수 있습니다. 가림 헤드는 객체가 보이지 않는 상황을 전담하여 객체가 가려져 있을 가능성을 예측합니다.

다중 마스크 모호성 해결#

객체가 겹치는 경우와 같이 모호한 상황에서 SAM 2는 여러 개의 마스크 예측 결과를 생성할 수 있습니다. 단일 마스크만으로는 장면의 세부 특성을 충분히 표현하기 어려운 복잡한 장면을 정확하게 나타내는 데 중요한 기능입니다.

SA-V 데이터셋#

SAM 2의 학습을 위해 개발된 SA-V 데이터셋은 현재 이용할 수 있는 비디오 분할 데이터셋 중 가장 크고 다양한 데이터셋의 하나입니다. 다음을 포함합니다.

  • 동영상 51,000개 이상: 47개 국가에서 촬영되어 다양한 실제 환경을 제공합니다.
  • 마스크 주석 600,000개 이상: 전체 객체와 부분을 포괄하는 상세한 시공간 마스크 주석으로, "마스크렛"이라고 합니다.
  • 데이터셋 규모: 이전 최대 규모 데이터셋보다 동영상이 4.5배, 주석이 53배 많아 전례 없는 다양성과 복잡성을 제공합니다.

벤치마크#

비디오 객체 분할#

SAM 2는 주요 비디오 분할 벤치마크 전반에서 우수한 성능을 보여주었습니다.

데이터셋J&FJF
DAVIS 201782.579.885.2
YouTube-VOS81.278.983.5

인터랙티브 분할#

인터랙티브 분할 작업에서 SAM 2는 효율성과 정확도가 크게 향상된 모습을 보여줍니다.

데이터셋NoC@90AUC
DAVIS 인터랙티브1.540.872

설치#

SAM 2를 설치하려면 다음 명령어를 사용하세요. 처음 사용할 때 모든 SAM 2 모델이 자동으로 다운로드됩니다.

pip install ultralytics

SAM 2 사용 방법: 이미지 및 비디오 분할의 다재다능함#

다음 표에는 사용 가능한 SAM 2 모델, 사전 학습된 가중치, 지원 작업과 추론, 검증, 학습, 내보내기와 같은 다양한 작동 모드와의 호환성이 나와 있습니다.

모델 유형사전 학습 가중치지원 작업학습검증추론내보내기
SAM 2 tinysam2_t.pt인스턴스 분할❌❌✅❌
SAM 2 smallsam2_s.pt인스턴스 분할❌❌✅❌
SAM 2 basesam2_b.pt인스턴스 분할❌❌✅❌
SAM 2 largesam2_l.pt인스턴스 분할❌❌✅❌
SAM 2.1 tinysam2.1_t.pt인스턴스 분할❌❌✅❌
SAM 2.1 smallsam2.1_s.pt인스턴스 분할❌❌✅❌
SAM 2.1 basesam2.1_b.pt인스턴스 분할❌❌✅❌
SAM 2.1 largesam2.1_l.pt인스턴스 분할❌❌✅❌

SAM 2 예측 예시#

SAM 2는 실시간 비디오 편집, 의료 영상, 자율 시스템 등 폭넓은 작업에 활용할 수 있습니다. 정적 시각 데이터와 동적 시각 데이터를 모두 분할할 수 있어 연구자와 개발자에게 다재다능한 도구입니다.

프롬프트로 분할#

프롬프트로 분할

프롬프트를 사용하여 이미지나 비디오에서 특정 객체를 분할합니다.

from ultralytics import SAM

# 모델 로드
model = SAM("sam2.1_b.pt")

# 모델 정보 표시(선택 사항)
model.info()

# bboxes 프롬프트로 추론 실행
results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])

# 단일 점으로 추론 실행
results = model(points=[900, 370], labels=[1])

# 여러 점으로 추론 실행
results = model(points=[[400, 370], [900, 370]], labels=[1, 1])

# 객체마다 여러 점 프롬프트로 추론 실행
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 1]])

# 음수 점 프롬프트로 추론 실행
results = model(points=[[[400, 370], [900, 370]]], labels=[[1, 0]])

모든 항목 분할#

모든 항목 분할

특정 프롬프트 없이 이미지나 비디오의 전체 콘텐츠를 분할합니다.

from ultralytics import SAM

# 모델 로드
model = SAM("sam2.1_b.pt")

# 모델 정보 표시(선택 사항)
model.info()

# 추론 실행
model("path/to/video.mp4")
  • 이 예제에서는 프롬프트(bboxes/점/마스크)가 제공되지 않을 때 SAM 2를 사용하여 이미지나 비디오의 전체 콘텐츠를 분할하는 방법을 보여줍니다.

비디오 분할 및 객체 추적#

비디오 분할

특정 프롬프트를 사용해 비디오 콘텐츠 전체를 분할하고 객체를 추적합니다.

from ultralytics.models.sam import SAM2VideoPredictor

# Create SAM2VideoPredictor
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_b.pt"}
predictor = SAM2VideoPredictor(overrides=overrides)

# 단일 점으로 추론 실행
results = predictor(source="test.mp4", points=[920, 470], labels=[1])

# 여러 점으로 추론 실행
results = predictor(source="test.mp4", points=[[920, 470], [909, 138]], labels=[1, 1])

# 객체마다 여러 점 프롬프트로 추론 실행
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 1]])

# 음수 점 프롬프트로 추론 실행
results = predictor(source="test.mp4", points=[[[920, 470], [909, 138]]], labels=[[1, 0]])

동적 인터랙티브 분할 및 추적#

SAM2DynamicInteractivePredictor은 SAM 2를 기반으로 하는 고급 무학습 확장 기능으로, 여러 프레임과의 동적 상호작용 및 지속 학습 기능을 제공합니다. 이 예측기는 이미지 시퀀스 전반의 추적 성능을 향상하기 위해 실시간 프롬프트 업데이트와 메모리 관리를 지원합니다. 원본 SAM 2와 비교하면 SAM2DynamicInteractivePredictor은 추가 학습 없이 사전 학습된 SAM 2 모델을 최대한 활용하도록 추론 흐름을 재구성합니다.

SAM 2 예시 결과

주요 기능#

다음과 같은 세 가지 주요 개선 사항을 제공합니다.

  1. 동적 인터랙션: 비디오 처리 중 언제든지 후속 프레임에서 병합되거나 추적되지 않은 새 인스턴스에 새 프롬프트를 추가합니다.
  2. 지속 학습: 기존 인스턴스에 새 프롬프트를 추가하여 시간의 흐름에 따라 모델 성능을 향상합니다.
  3. 독립적인 다중 이미지 지원: 메모리를 공유하고 이미지 간 객체를 추적하면서 서로 독립적인 여러 이미지(비디오 시퀀스에서 가져온 이미지일 필요 없음)를 처리합니다.

핵심 기능#

  • 프롬프트 유연성: 바운딩 박스, 점, 마스크를 프롬프트로 입력할 수 있습니다.
  • 메모리 뱅크 관리: 프레임 전반에서 객체 상태를 저장하는 동적 메모리 뱅크를 유지합니다.
  • 다중 객체 추적: 개별 객체 ID를 사용해 여러 객체를 동시에 추적할 수 있습니다.
  • 실시간 업데이트: 이전 프레임을 다시 처리하지 않고 추론 중에 새 프롬프트를 추가할 수 있습니다.
  • 독립 이미지 처리: 이미지 간 객체 일관성을 유지하기 위해 공유 메모리 컨텍스트를 사용하여 개별 이미지를 처리합니다.
동적 객체 추가
from ultralytics.models.sam import SAM2DynamicInteractivePredictor

# Create SAM2DynamicInteractivePredictor
overrides = {"conf": 0.01, "task": "segment", "mode": "predict", "imgsz": 1024, "model": "sam2_t.pt", "save": False}
predictor = SAM2DynamicInteractivePredictor(overrides=overrides, max_obj_num=10)

# 박스 프롬프트로 카테고리 정의
predictor(source="image1.jpg", bboxes=[[100, 100, 200, 200]], obj_ids=[0], update_memory=True)

# 새 이미지에서 이 특정 객체 감지
results = predictor(source="image2.jpg")

# 새 객체 ID로 새 카테고리 추가
results = predictor(
    source="image4.jpg",
    bboxes=[[300, 300, 400, 400]],  # 새 객체
    obj_ids=[1],  # 새 객체 ID
    update_memory=True,  # 메모리에 추가
)
# 추론 수행
results = predictor(source="image5.jpg")

# 성능을 높이려면 동일한 카테고리에 정제 프롬프트를 추가합니다
# 이 기능은 객체의 외형이 크게 바뀌는 경우에 유용합니다
results = predictor(
    source="image6.jpg",
    points=[[150, 150]],  # 정제 포인트
    labels=[1],  # 긍정 포인트
    obj_ids=[1],  # 동일한 객체 ID
    update_memory=True,  # 새 정보로 메모리 업데이트
)
# 새 이미지에서 추론 수행
results = predictor(source="image7.jpg")
참고

SAM2DynamicInteractivePredictor은 SAM 2 모델과 함께 작동하도록 설계되었으며, SAM 2가 기본적으로 지원하는 모든 박스, 포인트 및 마스크 프롬프트를 사용해 카테고리를 추가하고 정제할 수 있습니다. 비디오 어노테이션이나 대화형 편집 작업과 같이 객체가 시간에 따라 나타나거나 변하는 시나리오에서 특히 유용합니다.

인수#

이름기본값데이터 유형설명
max_obj_num3int사전 설정된 최대 카테고리 수
update_memoryFalsebool새 프롬프트로 메모리를 업데이트할지 여부
obj_idsNoneList[int]프롬프트에 해당하는 객체 ID 목록

사용 사례#

SAM2DynamicInteractivePredictor은 다음과 같은 경우에 적합합니다:

  • 시퀀스 중에 새 객체가 나타나는 비디오 어노테이션 워크플로
  • 실시간 객체 추가 및 정제가 필요한 대화형 비디오 편집
  • 동적 객체 추적이 필요한 감시 애플리케이션
  • 시계열 전반에 걸쳐 해부학적 구조를 추적하는 의료 영상
  • 적응형 객체 탐지 및 추적이 필요한 자율 시스템
  • 독립적인 이미지 전반에서 일관된 객체 세분화를 위한 다중 이미지 데이터셋
  • 서로 다른 장면에서 객체를 추적해야 하는 이미지 컬렉션 분석
  • 다양한 이미지 컨텍스트의 메모리를 활용하는 도메인 간 세분화
  • 최소한의 수동 개입으로 효율적인 데이터셋을 생성하는 반자동 어노테이션

SAM과 YOLO 비교#

여기에서는 가장 작은 SAM2-t 변형을 포함한 Meta의 SAM 2 모델과 YOLO26n-seg를 비롯한 Ultralytics 세분화 모델을 비교합니다:

모델크기
(MB)
매개변수
(M)
속도(CPU)
(ms/im)
Meta SAM-b37593.741703
Meta SAM2-b16280.828867
Meta SAM2-t78.138.923430
MobileSAM40.710.123802
FastSAM-s와 YOLOv8 백본23.911.858.0
Ultralytics YOLOv8n-seg7.1 (11.0배 더 작음)3.4 (11.4배 더 적음)24.8 (945배 더 빠름)
Ultralytics YOLO11n-seg6.2 (12.6배 더 작음)2.9 (13.4배 더 적음)24.3 (964배 더 빠름)
Ultralytics YOLO26n-seg6.7 (11.7배 더 작음)2.7 (14.4배 더 적음)25.2 (930배 더 빠름)

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

SAM 속도는 PyTorch로 측정했으며, YOLO 속도는 ONNX Runtime으로 측정했습니다. 테스트는 16GB RAM을 탑재한 2025년형 Apple M4 Air에서 torch==2.10.0, ultralytics==8.4.31, onnxruntime==1.24.4를 사용해 실행했습니다. 이 테스트를 재현하려면 다음을 수행합니다:

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

# SAM2-t, SAM2-b, SAM-b, MobileSAM 프로파일링
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

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

# YOLO 모델 프로파일링(ONNX)
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    onnx_path = model.export(format="onnx", dynamic=True, nms=False)  # YOLO26 NMS 없는 헤드; YOLOv8/YOLO11에서는 작동하지 않음
    model = YOLO(onnx_path)
    model(ASSETS)

자동 어노테이션: 효율적인 데이터셋 생성#

SAM 2의 강력한 기능인 자동 어노테이션을 사용하면 사전 학습된 모델을 활용해 세분화 데이터셋을 빠르고 정확하게 생성할 수 있습니다. 이 기능은 광범위한 수작업 없이 대규모 고품질 데이터셋을 만들 때 특히 유용합니다.

SAM 2로 자동 어노테이션하는 방법#



시청: Ultralytics에서 Meta의 Segment Anything 2 모델로 자동 주석을 수행하는 방법 | 데이터 라벨링

SAM 2를 사용해 데이터셋에 자동 어노테이션을 수행하려면 다음 예제를 따르세요:

자동 어노테이션 예제
from ultralytics.data.annotator import auto_annotate

auto_annotate(data="path/to/images", det_model="yolo26x.pt", sam_model="sam2_b.pt")
인수유형기본값설명
datastr필수어노테이션 또는 세분화 대상 이미지가 포함된 디렉터리 경로입니다.
det_modelstr'yolo26x.pt'초기 객체 탐지를 위한 YOLO 탐지 모델 경로입니다.
sam_modelstr'sam_b.pt'세분화를 위한 SAM 모델 경로입니다(SAM, SAM 2, MobileSAM 및 SAM 3 가중치 지원).
devicestr''연산 장치입니다(예: 'cuda:0', 'cpu' 또는 자동 장치 감지를 위한 '').
conffloat0.25약한 탐지를 필터링하기 위한 YOLO 탐지 신뢰도 임계값입니다.
ioufloat0.45겹치는 박스를 필터링하기 위한 비최대 억제의 IoU 임계값입니다.
imgszint640이미지 크기 조정에 사용할 입력 크기입니다(필요한 경우 32의 배수로 올림).
max_detint300메모리 효율성을 위한 이미지당 최대 탐지 수입니다.
classeslist[int]None탐지할 클래스 인덱스 목록입니다(예: 사람 및 자전거의 경우 [0, 1]).
output_dirstrNone어노테이션 저장 디렉터리입니다(기본값: 동일한 상위 디렉터리의 <data>_auto_annotate_labels).

이 함수는 프로젝트를 빠르게 진행하려는 연구자와 개발자에게 적합한 고품질 세분화 데이터셋을 신속하게 생성할 수 있도록 합니다.

제한 사항#

강점에도 불구하고 SAM 2에는 몇 가지 한계가 있습니다:

  • 추적 안정성: SAM 2는 긴 시퀀스나 시점이 크게 바뀌는 상황에서 객체 추적을 놓칠 수 있습니다.
  • 객체 혼동: 특히 객체가 밀집된 장면에서 모델이 외형이 유사한 객체를 혼동할 수 있습니다.
  • 다중 객체 처리 효율성: 객체 간 통신이 부족하기 때문에 여러 객체를 동시에 처리할 때 세분화 효율성이 떨어집니다.
  • 세부 정확도: 특히 빠르게 움직이는 객체에서는 미세한 세부 정보를 놓칠 수 있습니다. 프롬프트를 추가하면 이 문제를 부분적으로 해결할 수 있지만, 시간적 매끄러움은 보장되지 않습니다.

인용 및 감사의 글#

SAM 2가 연구 또는 개발 작업의 핵심 요소라면 다음 참고 문헌을 인용해 주세요:

인용
@article{ravi2024sam2,
  title={SAM 2: Segment Anything in Images and Videos},
  author={Ravi, Nikhila and Gabeur, Valentin and Hu, Yuan-Ting and Hu, Ronghang and Ryali, Chaitanya and Ma, Tengyu and Khedr, Haitham and R{\"a}dle, Roman and Rolland, Chloe and Gustafson, Laura and Mintun, Eric and Pan, Junting and Alwala, Kalyan Vasudev and Carion, Nicolas and Wu, Chao-Yuan and Girshick, Ross and Doll{\'a}r, Piotr and Feichtenhofer, Christoph},
  journal={arXiv preprint},
  year={2024}
}

이 획기적인 모델과 데이터셋으로 AI 커뮤니티에 기여한 Meta AI에 깊은 감사를 전합니다.

자주 묻는 질문#

  • Meta의 Segment Anything Model(SAM)을 잇는 SAM 2는 이미지와 비디오에서 포괄적인 객체 세분화를 수행하도록 설계된 최첨단 도구입니다. 실시간 처리와 제로샷 일반화를 지원하는 통합 프롬프트 기반 모델 아키텍처를 통해 복잡한 시각 데이터를 효과적으로 처리합니다. SAM 2는 기존 SAM에 비해 다음과 같은 여러 개선 사항을 제공합니다:

    • 통합 모델 아키텍처: 이미지와 비디오 세분화 기능을 단일 모델에 결합합니다.
    • 실시간 성능: 초당 약 44프레임을 처리하므로 즉각적인 피드백이 필요한 애플리케이션에 적합합니다.
    • 제로샷 일반화: 이전에 접한 적 없는 객체를 세분화하므로 다양한 시각 도메인에서 유용합니다.
    • 대화형 정제: 사용자가 추가 프롬프트를 제공하여 세분화 결과를 반복적으로 정제할 수 있습니다.
    • 시각적 문제에 대한 고급 처리: 객체 가림 및 재등장과 같은 일반적인 비디오 세분화 문제를 처리합니다.

    SAM 2의 아키텍처와 기능에 대한 자세한 내용은 SAM 2 연구 논문을 참조하세요.

  • 프롬프트 기반 인터페이스와 실시간 추론 기능을 활용하면 SAM 2를 실시간 비디오 세분화에 사용할 수 있습니다. 다음은 기본 예제입니다:

    프롬프트로 분할

    프롬프트를 사용하여 이미지나 비디오에서 특정 객체를 분할합니다.

    from ultralytics import SAM
    
    # 모델 로드
    model = SAM("sam2_b.pt")
    
    # 모델 정보 표시(선택 사항)
    model.info()
    
    # 바운딩 박스 프롬프트로 세분화
    results = model("path/to/image.jpg", bboxes=[100, 100, 200, 200])
    
    # 포인트 프롬프트로 세분화
    results = model("path/to/image.jpg", points=[150, 150], labels=[1])

    보다 자세한 사용 방법은 SAM 2 사용 방법 섹션을 참조하세요.

  • SAM 2는 가장 규모가 크고 다양성이 높은 비디오 세분화 데이터셋 중 하나인 SA-V 데이터셋으로 학습됩니다. SA-V 데이터셋은 다음을 포함합니다:

    • 동영상 51,000개 이상: 47개 국가에서 촬영되어 다양한 실제 환경을 제공합니다.
    • 마스크 주석 600,000개 이상: 전체 객체와 부분을 포괄하는 상세한 시공간 마스크 주석으로, "마스크렛"이라고 합니다.
    • 데이터셋 규모: 이전의 최대 데이터셋보다 비디오 수가 4.5배, 어노테이션 수가 53배 많아 전례 없는 다양성과 복잡성을 제공합니다.

    이 방대한 데이터셋을 통해 SAM 2는 주요 비디오 세분화 벤치마크 전반에서 우수한 성능을 달성하고 제로샷 일반화 기능을 향상시킬 수 있습니다. 자세한 내용은 SA-V 데이터셋 섹션을 참조하세요.

  • SAM 2에는 비디오 데이터의 시간적 종속성과 가림을 관리하는 정교한 메모리 메커니즘이 포함되어 있습니다. 메모리 메커니즘은 다음으로 구성됩니다:

    • 메모리 인코더 및 메모리 뱅크: 이전 프레임의 특징을 저장합니다.
    • 메모리 어텐션 모듈: 저장된 정보를 활용해 시간에 따라 일관된 객체 추적을 유지합니다.
    • 가림 헤드: 객체가 보이지 않는 상황을 전담 처리하고 객체가 가려져 있을 가능성을 예측합니다.

    이 메커니즘은 객체가 일시적으로 가려지거나 장면에서 나갔다가 다시 들어와도 연속성을 보장합니다. 자세한 내용은 메모리 메커니즘 및 가림 처리 섹션을 참조하세요.

  • Meta의 SAM2-t 및 SAM2-b와 같은 SAM 2 모델은 강력한 제로샷 세분화 기능을 제공하지만, YOLO 모델에 비해 크기가 훨씬 크고 속도가 느립니다. 예를 들어 YOLO26n-seg는 CPU에서 SAM2-b보다 약 24배 작고, 1145배 이상 빠릅니다. SAM 2는 다양한 프롬프트 기반 및 제로샷 세분화 시나리오에 강점을 보이는 반면, YOLO26은 NMS가 필요 없는 엔드투엔드 추론을 통해 속도, 효율성 및 실시간 애플리케이션에 최적화되어 있어 리소스가 제한된 환경에 배포하기에 더 적합합니다.

댓글