SAM

Kirillov 2023 · 논문

한 줄 요약 — Segment Anything: 1100만 장의 이미지에서 나온 11억 개의 마스크로 학습된 프롬프트 가능한 세그먼테이션 파운데이션 모델로, 점/박스/마스크 프롬프트로부터 임의의 객체를 zero-shot으로 세그먼테이션합니다.

문제

세그먼테이션 연구는 태스크별 모델들 — 인터랙티브, 시맨틱, 인스턴스, 판옵틱 — 로 분열되어 있었으며, 각각 자체 레이블링된 데이터셋과 학습 과정이 필요했고, 새로운 이미지 분포나 새로운 태스크로 zero-shot 전이되지 않았습니다. NLP는 프롬프트 가능한 태스크에 대해 충분한 규모로 학습된 파운데이션 모델이 명시적으로 학습되지 않은 태스크로 일반화될 수 있음을 보여주었습니다. Segment Anything 프로젝트는 세그먼테이션에 대해 이에 상응하는 태스크, 모델, 데이터셋이 무엇인지를 묻습니다 — 문제는 마스크가 인터넷에서 자연스럽게 풍부하지 않다는 것이므로, 10억 규모의 어노테이션을 직접 만들어내야 했습니다.

방법 및 아키텍처

이 프로젝트는 세 가지 상호 연결된 구성 요소를 가집니다: 프롬프트 가능한 세그먼테이션 태스크(점, 박스, 마스크, 또는 탐색적 자유 형식 텍스트 등 임의의 프롬프트에 대해 유효한 마스크를 반환), 모델(SAM), 그리고 SA-1B를 생성하는 데이터 엔진.

SAM은 세 개의 모듈을 가지며, 비용이 많이 드는 부분이 이미지당 상각(amortize)되도록 설계되었습니다:

모호성: 하나의 클릭은 전체/부분/하위 부분 중 어느 것도 유효하게 의미할 수 있으므로, SAM은 프롬프트마다 3개의 출력 마스크를 예측하고 각각에 예측된 IoU 신뢰도를 함께 냅니다; 학습은 세 개 중 최소 손실만 역전파합니다. 마스크 지도(supervision)는 focal loss와 dice loss의 선형 결합이며, 마스크당 11라운드에 걸쳐 프롬프트를 샘플링하는 인터랙티브 설정으로 시뮬레이션됩니다.

데이터 엔진(모델-인-더-루프, 세 단계): (1) 보조-수동(assisted-manual) — 어노테이터가 SAM을 루프에 넣고 클릭하며, 12만 장의 이미지에서 430만 개의 마스크, 모델이 6번 재학습되면서 마스크당 소요 시간이 34초에서 14초로 감소; (2) 반자동(semi-automatic) — SAM이 확신할 수 있는 마스크를 미리 채우고 어노테이터가 나머지를 추가, 18만 장의 이미지에서 590만 개의 마스크 추가; (3) 완전 자동(fully automatic) — 32×32 점 그리드로 SAM에 프롬프트하고, 확신할 수 있는(예측된 IoU) 그리고 안정적인(확률 맵을 0.5δ0.5-\delta0.5+δ0.5+\delta로 임계값을 두면 비슷한 마스크가 나옴) 마스크만 남기고, NMS로 중복을 제거. 1100만 장의 모든 이미지에 적용하여 SA-1B: 11억 개의 마스크, 이미지당 약 100개의 마스크를 얻었으며, Open Images보다 이미지는 11배, 마스크는 400배 더 많습니다; 공개된 이미지는 최단 변 1500픽셀로 다운샘플링되었습니다.

실험 결과

SLAM에서의 의미

SAM은 SLAM 시스템에 요청 시 클래스에 무관한 객체 마스크를 제공했습니다 — 개방형 어휘 시맨틱 매핑에 빠져 있던 재료입니다. 텍스트 프롬프트 검출기와 결합하면(Grounded SAM = Grounding DINO + SAM), ConceptGraphs와 Clio 같은 3D 장면 그래프 및 개방형 어휘 매핑 시스템을 구동하며, 동적 객체 제거를 위한 깔끔한 마스크를 제공합니다. 이미지당 상각된 설계(무거운 인코더는 한 번, 저렴한 프롬프트는 여러 번)는 SLAM 키프레임 파이프라인에 적합하며, 비디오 후속작인 SAM 2는 SLAM이 프레임 간에 실제로 필요로 하는 시간적 일관성을 추가합니다.

관련 문서