SAM 2
Meta 2024 · 논문
한 줄 요약 — Segment Anything을 비디오로 확장한 것으로, 스트리밍 메모리 어텐션 아키텍처를 통해 프레임 전체에서 객체를 일관되게 추적하고 세그먼테이션하며, 정지 이미지에서도 SAM보다 더 정확하고 6배 더 빠릅니다.
문제
SAM은 각 이미지를 독립적으로 세그먼테이션하므로, 비디오에 실행하면 프레임 간 객체 정체성을 잃습니다 — 그러나 로보틱스, AR, 비디오 편집은 모두 시간이 지나면서 모션, 변형, 가림, 조명 변화를 거치는 동일한 객체를 일관되게 세그먼테이션해야 하며, 종종 더 낮은 프레임별 품질(블러, 카메라 모션)에서도 그렇습니다. SAM 2는 **프롬프트 가능한 시각적 세그먼테이션(Promptable Visual Segmentation, PVS)**을 제시합니다: 비디오의 임의 프레임에 클릭/박스/마스크가 주어지면, 전체 비디오에 걸쳐 그 객체의 시공간 마스크(“masklet”)를 예측하며, 임의의 프레임에 추가 프롬프트를 주어 정제할 수 있습니다. 기존 VOS 모델은 이런 의미에서 프롬프트 가능하지 않았고, 비디오 마스크 어노테이션도 부족했습니다 — 따라서 모델과 데이터셋을 함께 만들어야 했습니다.
방법 및 아키텍처
SAM을 스트리밍 방식으로 일반화한 것 — 프레임이 하나씩 소비되며, 메모리가 비어 있을 때는 모델이 곧 이미지에 대한 SAM 자체입니다:
- 이미지 인코더: MAE로 사전 학습된 Hiera 계층적 ViT가 프레임마다 한 번씩 실행되어 조건 없는 다중 스케일 임베딩을 생성합니다; 계층 구조는 (메모리 어텐션을 우회하는) 고해상도 스킵 연결이 디코더로 들어가도록 하여 선명한 마스크를 만듭니다.
- 메모리 어텐션: 개의 transformer 블록이 현재 프레임의 특징을 과거에 조건화합니다 — 각 블록은 self-attention을 수행한 다음, 메모리 뱅크의 항목들(프롬프트된 프레임과 프롬프트되지 않은 프레임의 공간 메모리, 그리고 object pointer)에 대한 cross-attention을 수행하고, 이어서 MLP를 거칩니다; 효율적인 커널이 적용될 수 있도록 일반적인(vanilla) attention을 사용합니다.
- 프롬프트 인코더 + 마스크 디코더: SAM과 동일합니다(점/박스/마스크; 모호성은 여러 후보 마스크로 처리됨), 여기에 객체가 현재 프레임에 실제로 존재하는지를 예측하는 새로운 **가림 헤드(occlusion head)**가 추가됩니다 — 비디오에서는 유효한 프롬프트라도 화면에 보이는 대상이 없을 수 있습니다.
- 메모리 인코더: 합성곱 모듈로 예측된 마스크를 다운샘플링하고, 이를 조건 없는 프레임 임베딩과 원소별로 합산한 다음, 경량 합성곱 레이어로 융합합니다.
- 메모리 뱅크: 최대 개의 최근 프레임 메모리와 최대 개의 프롬프트된 프레임 메모리(예를 들어 VOS에서는 첫 프레임의 메모리가 항상 유지됨)로 이루어진 FIFO 큐로, 공간 특징 맵으로 저장되며, 여기에 마스크 디코더의 출력 토큰에서 나온 고수준 객체 의미를 담는 경량 벡터인 object pointer 목록이 함께 저장됩니다.
학습은 이미지와 비디오에 대해 공동으로 진행됩니다: 최대 2개의 프롬프트된 프레임을 가진 8프레임 시퀀스, 실측값과 모델 예측에서 샘플링된 교정 클릭(corrective click); 초기 프롬프트는 실측 마스크(p=0.5), 양성 클릭(p=0.25), 또는 박스(p=0.25) 중 하나입니다.
데이터 엔진(세 단계): 1단계, 프레임별 SAM 어노테이션을 6 FPS로 — 프레임당 37.8초, 16K masklet; 2단계, SAM 2 Mask가 첫 프레임 마스크를 전파 — 프레임당 7.4초(5.1배 속도 향상), 63.5K masklet; 3단계, 이따금의 교정 클릭을 곁들여 SAM 2 전체를 루프에 넣음 — 프레임당 4.5초(비슷한 품질에서 8.4배 속도 향상), 197K masklet, 별도의 검증 과정과 커버리지를 위한 자동 그리드 프롬프트 masklet 포함. 결과: SA-V — 50.9K개 비디오, 642.6K개 masklet, 3550만 개 마스크, 이전의 어떤 VOS 데이터셋보다 마스크가 53배(자동 생성분을 제외하면 15배) 더 많으며, CC-BY 4.0으로 공개.
실험 결과
- 인터랙티브 비디오 세그먼테이션: 9개 데이터셋에서 SAM 2는 오프라인 및 온라인 설정 모두에서 기준으로 SAM+XMem++와 SAM+Cutie를 능가하며, 3배 이상 적은 상호작용으로 더 나은 정확도를 달성합니다.
- 준지도 VOS(첫 프레임 마스크 프롬프트), : SAM 2(Hiera-L)는 MOSE val 77.9, DAVIS 2017 val 90.7, LVOS val 78.0, SA-V val/test 77.9/78.4, YouTube-VOS 2019 89.3을 기록합니다 — 이전 최고 방법인 Cutie-base+의 MOSE 71.7, SA-V에서 약 61/63과 비교하면, 이전 VOS가 “비디오에서 무엇이든 세그먼테이션”하는 것과 얼마나 거리가 있었는지 보여줍니다.
- 속도: 단일 A100에서 43.8 FPS(Hiera-B+) / 30.2 FPS(Hiera-L) — 실시간 스트리밍.
- 이미지 세그먼테이션: 37개 데이터셋으로 구성된 SA 벤치마크에서, SAM 2는 SA-23에서 1-클릭 mIoU 58.9를 얻어 추가 데이터 없이도 SAM의 58.1을 능가하면서 6배 더 빠릅니다(더 작지만 더 효과적인 Hiera 인코더); SA-1B + 비디오 혼합 데이터로 학습하면 61.4로 올라갑니다.
- 데이터 ablation: 데이터 엔진 데이터를 추가하면 9개의 zero-shot VOS 데이터셋에서 DAVIS/MOSE/YouTube-VOS만으로 학습한 것보다 평균 가 +12.1 향상됩니다; 정확도는 SA-V 학습 데이터 크기에 대해 거듭제곱 법칙(power law)을 따릅니다.
SLAM에서의 의미
프레임 단위 마스크만으로는 SLAM에 충분하지 않습니다 — 시스템은 시맨틱 맵을 구축하고 동적 장면을 처리하기 위해 시간이 지나도 같은 객체를 보고 있음을 알아야 합니다. SAM 2의 스트리밍 메모리 설계는 SLAM 파이프라인의 순차적 특성과 잘 맞습니다: 시간적으로 일관된 masklet은 동적 객체 제거, 객체 수준 매핑, 데이터 연관을 위한 지속적인 인스턴스 정체성을 가능하게 하며, 가림 헤드는 맵 유지 관리가 다뤄야 하는 소실/재출현을 명시적으로 모델링합니다. 시공간 시맨틱 매핑 시스템(예: Khronos 계열)은 이 기능의 자연스러운 활용 대상입니다.
관련 문서
- SAM — 이미지 전용 전작
- Grounding DINO — 무엇을 추적할지 알려주는 텍스트 프롬프트
- Khronos — 시공간 메트릭-시맨틱 매핑
- DynaSLAM — 고전적 SLAM에서의 동적 객체 마스킹