Segment Anything

2023. 4. 12. 09:58Deep Learning

Segment Anything

 

Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Doll´ar, Ross Girshick

 

Abstract

Segment Anything (SA) 프로젝트를 소개합니다: 이미지 segmentation을 위한 새 작업, 모델 및 데이터 세트.

데이터 수집 루프에서 효율적인 모델을 사용하여 현재까지 가장 큰 segmentation 데이터 세트를 구축했으며, 11M 라이센스 및 개인 정보 보호 이미지에 10억 개 이상의 마스크를 사용했습니다.

이 모델은 제로샷을 새로운 이미지 분포 및 작업으로 전송할 수 있도록 신속하게 설계되고 학습됩니다.

우리는 수많은 작업에서 성능을 평가하고 제로샷 성능이 인상적이라는 것을 발견했습니다.

종종 이전의 fully supervised 결과와 경쟁하거나 심지어는 더 우수합니다.

 

 

1. Introduction

웹 규모 데이터 세트에서 사전 학습된 대규모 언어 모델은 강력한 제로샷 및 퓨샷 일반화로 NLP에 혁명을 일으키고 있습니다 [10].

이러한 "foundation models"[8]는 학습 과정에서 볼 수 있는 것 이상의 작업 및 데이터 배포로 일반화할 수 있습니다.

이 기능은 종종 수동 텍스트를 사용하여 언어 모델이 당면한 작업에 대한 유효한 텍스트 응답을 생성하도록 요청하는 prompt 엔지니어링과 함께 구현됩니다.

웹에서 풍부한 텍스트 말뭉치로 확장하고 학습할 때, 이러한 모델의 제로샷 및 퓨샷 성능은 (경우에 따라 일치하는 경우도 있음) 미세 조정된 모델과 놀라울 정도로 잘 비교됩니다 [10, 21].

경험적 추세는 모델 규모, 데이터 세트 크기 및 총 학습 계산에 따라 이러한 동작이 개선됨을 보여줍니다 [56, 10, 21, 51].

 

기초 모델은 컴퓨터 비전에서도 탐구되었지만, 그 정도는 덜합니다.

아마도 가장 유명한 그림은 웹에서 쌍을 이룬 텍스트와 이미지를 정렬합니다.

예를 들어 CLIP [82] 및 ALIGN [55]는 대조 학습을 사용하여 두 양식을 정렬하는 텍스트 및 이미지 인코더를 학습합니다.

일단 학습을 받은 후, 엔지니어링된 텍스트 prompt는 새로운 시각적 개념과 데이터 분포에 대한 제로샷 일반화를 가능하게 합니다.

또한 이러한 인코더는 다른 모듈과 효과적으로 구성되어 이미지 생성(예: DALL·E [83])과 같은 다운스트림 작업을 가능하게 합니다.

비전 및 언어 인코더에 대해 많은 발전이 이루어졌지만, 컴퓨터 비전에는 이 범위를 벗어나는 광범위한 문제가 포함되어 있으며, 이 중 많은 문제에 대해 풍부한 학습 데이터가 존재하지 않습니다.

 

이 작업에서, 우리의 목표는 이미지 segmentation을 위한 기초 모델을 구축하는 것입니다.

즉, 강력한 일반화를 가능하게 하는 작업을 사용하여 promptable 모델을 개발하고 광범위한 데이터 세트에서 사전 학습을 받으려고 합니다.

이 모델을 사용하여, 우리는 prompt 엔지니어링을 사용하여 새로운 데이터 분포에 대한 다양한 다운스트림 segmentation 문제를 해결하는 것을 목표로 합니다.

 

이 계획의 성공 여부는 세 가지 요소에 달려 있습니다: 태스크, 모델 및 데이터.

이를 개발하기 위해 이미지 segmentation에 대한 다음 질문을 해결합니다:
 1. 제로샷 일반화를 가능하게 하는 작업은 무엇입니까?
 2. 해당 모델 아키텍처는 무엇입니까?
 3. 어떤 데이터가 이 작업과 모델링에 도움이 될 수 있습니까?

 

이러한 질문들은 얽히고설켜 종합적인 해결책이 필요합니다.

강력한 사전 학습 objective를 제공하고 광범위한 다운스트림 애플리케이션을 가능하게 할 만큼 일반적인 promptable segmentation 태스크를 정의하는 것으로 시작합니다.

이 작업에는 유연한 prompt를 지원하고 대화형 사용을 허용하도록 prompt가 표시될 때 실시간으로 segmentation 마스크를 출력할 수 있는 모델이 필요합니다.

모델을 학습시키기 위해서는 다양하고 대규모의 데이터 소스가 필요합니다.

안타깝게도 segmentation을 위한 웹 규모의 데이터 소스는 없습니다; 이를 해결하기 위해 "data engine"을 구축합니다, 즉, 효율적인 모델을 사용하여 데이터 수집을 지원하는 것과 새로 수집된 데이터를 사용하여 모델을 개선하는 것을 반복합니다.

다음으로 상호 연결된 각 구성 요소를 소개하고, 이어서 우리가 만든 데이터 세트와 우리 접근 방식의 효과를 입증하는 실험을 소개합니다.

그림 1: 상호 연결된 세 가지 구성 요소를 도입하여 segmentation을 위한 기초 모델을 구축하는 것을 목표로 합니다: promptable segmentation 작업, 데이터 주석을 구동하고 prompt 엔지니어링을 통해 다양한 작업으로 제로샷 전송을 가능하게 하는 segmentation 모델(SAM), 10억 개 이상의 마스크 데이터 세트인 SA-1B를 수집하기 위한 데이터 엔진.

Task (§2).

NLP 및 보다 최근의 컴퓨터 비전에서, 기초 모델은 종종 "prompting" 기술을 사용하여 새로운 데이터 세트 및 작업에 대한 제로샷 및 퓨샷 학습을 수행할 수 있는 유망한 개발입니다.

이 작업 라인에서 영감을 받아, 우리는 모든 segmentation prompt가 주어진 유효한 segmentation 마스크를 반환하는 것이 목표인 promptable segmentation 작업을 제안합니다(그림 1a 참조).

prompt는 단순히 이미지에서 segment할 대상을 지정합니다, 예를 들어 prompt에는 개체를 식별하는 공간 또는 텍스트 정보가 포함될 수 있습니다.

유효한 출력 마스크의 요구 사항은 prompt가 모호하고 여러 개체를 참조할 수 있는 경우(예: 셔츠의 점이 셔츠 또는 착용자를 나타낼 수 있음)에도 출력이 해당 개체 중 하나 이상에 적합한 마스크여야 한다는 것을 의미합니다.

우리는 promptable segmentation 작업을 사전 학습 objective로 사용하고 prompt 엔지니어링을 통해 일반적인 다운스트림 segmentation 작업을 해결합니다.

 

Model (§3).

promptable segmentation 작업과 실제 사용 목표는 모델 아키텍처에 제약을 가합니다.

특히, 모델은 유연한 prompt를 지원해야 하며, 상호 작용적인 사용을 허용하기 위해 상각된 실시간으로 마스크를 계산해야 하며 모호성을 인식해야 합니다.

놀랍게도, 우리는 단순한 설계가 다음 세 가지 제약 조건을 모두 충족한다는 것을 발견했습니다: 강력한 이미지 인코더는 이미지 임베딩을 계산하고, prompt 인코더는 prompt를 임베딩한 다음, 두 정보 소스가 segmentation 마스크를 예측하는 경량 마스크 디코더에 결합됩니다.

우리는 이 모델을 Segment Anything Model 또는 SAM이라고 부릅니다(그림 1b 참조).

SAM을 이미지 인코더와 빠른 prompt 인코더/마스크 디코더로 분리하여 동일한 이미지 임베딩을 다른 prompt에서 재사용(및 비용 상각)할 수 있습니다.

이미지 임베딩이 주어지면 prompt 인코더와 마스크 디코더는 웹 브라우저에서 prompt의 마스크를 50ms 이내에 예측합니다.

포인트, 박스 및 마스크 prompt 에 초점을 맞추고 자유 형식 텍스트 prompt 로 초기 결과를 제시합니다.

SAM 모호성을 인식하기 위해, 우리는 SAM이 셔츠 vs. 사람의 예와 같은 모호성을 자연스럽게 처리할 수 있도록 단일 prompt에 대해 여러 마스크를 예측하도록 설계합니다.

 

Data engine (§4).

새로운 데이터 배포에 대한 강력한 일반화를 달성하기 위해서는 이미 존재하는 segmentation 데이터 세트를 넘어 크고 다양한 마스크 세트에서 SAM을 학습해야 한다는 것을 알게 되었습니다.

기초 모델의 일반적인 접근 방식은 온라인으로 데이터를 얻는 것이지만[82] 마스크는 자연적으로 풍부하지 않으므로 대안적인 전략이 필요합니다.

우리의 솔루션은 "데이터 엔진"을 구축하는 것입니다, 즉, 루프 내 모델 데이터 세트 주석(그림 1c 참조)으로 모델을 공동 개발합니다.

우리의 데이터 엔진은 3단계로 구성되어 있습니다: 보조 수동, 반자동 및 완전 자동.

첫 번째 단계에서 SAM은 기존의 상호작용형 segmentation 설정과 유사하게 주석자가 마스크에 주석을 달 수 있도록 지원합니다.

두 번째 단계에서 SAM은 객체의 하위 집합에 대한 마스크를 자동으로 생성할 수 있으며 주석자는 나머지 객체에 주석을 다는 데 집중하여 마스크 다양성을 높일 수 있습니다.

마지막 단계에서, 우리는 SAM에게 이미지당 평균 ~100개의 고품질 마스크를 생성하는 전경점의 규칙적인 그리드로 prompt를 표시합니다.

그림 2: 새로 도입된 데이터 세트인 SA-1B의 중첩 마스크가 있는 예 이미지. SA-1B에는 11M개의 다양한 고해상도 라이센스가 부여된 개인 정보 보호 이미지와 1.1B개의 고품질 segmentation  마스크가 포함되어 있습니다. 이러한 마스크는 SAM에 의해 완전히 자동으로 주석이 달렸으며, 우리가 인간의 등급과 수많은 실험을 통해 검증했듯이 고품질과 다양성입니다. 시각화를 위해 이미지당 마스크 수를 기준으로 이미지를 그룹화합니다(이미지당 평균 최대 100개의 마스크가 있음).

Dataset (§5).

최종 데이터 세트인 SA-1B는 11M 라이센스 및 개인 정보 보호 이미지의 1B개 이상의 마스크를 포함합니다(그림 2 참조).

데이터 엔진의 최종 단계를 사용하여 완전히 자동으로 수집된 SA-1B는 기존의 어떤 segmentation 데이터 세트[66, 44, 117, 60]보다 400배 더 많은 마스크를 가지고 있으며 광범위하게 검증함에 따라 마스크의 품질과 다양성이 향상되었습니다.

SA-1B가 견고하고 일반적인 SAM 학습에 사용되는 것 외에도, 우리는 SA-1B가 새로운 기초 모델을 구축하는 것을 목표로 하는 연구를 위한 귀중한 자원이 되기를 바랍니다.

 

Responsible AI (§6).

SA-1B 및 SAM을 사용할 때 발생할 수 있는 공정성 문제와 편견에 대해 연구하고 보고합니다.

SA-1B의 이미지는 지리적, 경제적으로 다양한 국가에 걸쳐 있으며 SAM은 여러 사람 그룹에 걸쳐 유사한 성능을 발휘합니다.

함께, 우리는 이것이 실제 사용 사례에 대한 우리의 작업을 더 공평하게 만들기를 바랍니다.

부록에 모델 및 데이터 세트 카드를 제공합니다.

 

Experiments (§7).

우리는 SAM을 광범위하게 평가합니다.

먼저, 우리는 23개의 segmentation 데이터 세트의 다양한 새로운 제품군을 사용하여 SAM이 종종 수동으로 주석을 단 ground truth보다 약간 낮은 단일 전경 지점에서 고품질 마스크를 생성한다는 것을 발견했습니다.

둘째, 에지 감지, 객체 제안 생성, 인스턴스 segmentation 및 텍스트-마스크 예측의 예비 탐색을 포함하여 prompt 엔지니어링을 사용하는 제로샷 전송 프로토콜 하에서 다양한 다운스트림 작업에 대해 지속적으로 강력한 양적, 질적 결과를 찾습니다.

이러한 결과는 SAM을 prompt 엔지니어링과 함께 사용하여 SAM의 학습 데이터를 넘어 객체 및 이미지 분포와 관련된 다양한 작업을 해결할 수 있음을 시사합니다.

그럼에도 불구하고, 우리가 §8에서 논의한 바와 같이, 개선의 여지는 남아 있습니다.

 

 

2. Segment Anything Task

다음 토큰 예측 작업이 기초 모델 사전 학습 및 prompt 엔지니어링을 통해 다양한 다운스트림 작업을 해결하는 데 사용되는 NLP에서 영감을 얻습니다 [10].

segmentation을 위한 기초 모델을 구축하기 위해 유사한 기능을 가진 작업을 정의하는 것을 목표로 합니다.

그림 3: 각 열은 SAM이 하나의 모호한 포인트 prompt(녹색 원)에서 생성한 3개의 유효한 마스크를 보여줍니다.

Task.

우리는 NLP에서 prompt의 아이디어를 segmentation으로 변환하는 것으로 시작합니다, 여기서 prompt는 전경/배경 점 세트, 거친 상자 또는 마스크, 자유 형식 텍스트 또는 일반적으로 이미지에서 segment할 내용을 나타내는 모든 정보가 될 수 있습니다.

따라서 promptable segmentation 작업은 prompt가 지정된 유효한 segmentation 마스크를 반환하는 것입니다.

"valid" 마스크의 요구 사항은 prompt가 모호하고 여러 개체를 참조할 수 있는 경우에도(예: 셔츠 vs. 사람 예제, 그림 3 참조) 출력이 해당 개체 중 적어도 하나에 대해 합리적인 마스크여야 한다는 것을 의미합니다.

이 요구 사항은 언어 모델이 모호한 prompt에 대해 일관된 응답을 출력하기를 기대하는 것과 유사합니다.

우리는 이 작업이 자연스러운 사전 학습 알고리즘과 prompting을 통해 다운스트림 segmentation 작업으로 제로샷 전송을 위한 일반적인 방법으로 이어지기 때문에 이 작업을 선택합니다.

 

Pre-training.

promptable segmentation 작업은 각 학습 샘플에 대한 일련의 prompt(예: 포인트, 상자, 마스크)를 시뮬레이션하고 모델의 마스크 예측을 실제와 비교하는 자연스러운 사전 학습 알고리즘을 제안합니다.

우리는 상호작용형 segmentation [109, 70]에서 이 방법을 적용합니다, 비록 충분한 사용자 입력 후 최종적으로 유효한 마스크를 예측하는 것이 목표인 상호작용형 segmentation과 달리, 우리의 목표는 prompt가 모호할 때에도 항상 모든 prompt에 대해 유효한 마스크를 예측하는 것입니다.
이를 통해 데이터 엔진 §4에서 요구하는 자동 주석을 포함하여 모호성을 수반하는 사용 사례에서 사전 학습된 모델이 효과적임을 보장합니다.
우리는 이 작업을 잘 수행하는 것이 어렵고 §3에서 논의하는 전문적인 모델링 및 학습 loss 선택이 필요하다는 점에 주목합니다.

 

Zero-shot transfer.

직관적으로, 우리의 사전 학습 과제는 추론 시간에 모든 prompt에 적절하게 대응할 수 있는 능력을 모델에 부여하며, 따라서 다운스트림 작업은 적절한 prompt를 엔지니어링하여 해결할 수 있습니다.

예를 들어 고양이에 대한 바운딩 박스 검출기가 있는 경우 탐지기의 상자 출력을 모델에 prompt로 제공하여 고양이 인스턴스 segmentation을 해결할 수 있습니다.

일반적으로 다양한 실제 segmentation 작업을 prompting로 캐스팅할 수 있습니다.

자동 데이터 세트 레이블링 외에도 §7의 실험에서 5가지 다양한 예제 작업을 살펴봅니다.

 

Related tasks.

segmentation은 광범위한 분야입니다: 상호작용segmentation [57, 109], 에지 감지[3], 슈퍼 픽셀화[85], 객체 제안 생성[2], 전경 segmentation[94], semantic segmentation[90], 인스턴스 segmentation[66], panoptic segmentation[59] 등이 있습니다.

promptable segmentation 작업의 목표는 prompt 엔지니어링을 통해 (전부는 아니지만) 많은 기존 및 새로운 segmentation 작업에 적응할 수 있는 광범위하게 가능한 모델을 생성하는 것입니다.

이 기능은 작업 일반화의 한 형태입니다 [26].

이것은 멀티태스크 segmentation 시스템에 대한 이전 작업과는 다릅니다.

멀티태스크 시스템에서 단일 모델은 공동 semantic, 인스턴스 및 panoptic segmentation과 같은 고정된 일련의 작업을 수행하지만 학습 및 테스트 작업은 동일합니다.

우리 연구의 중요한 차이점은 promptable segmentation을 위해 학습된 모델이 더 큰 시스템에서 구성 요소로 작용하여 추론 시간에 새롭고 다른 작업을 수행할 수 있다는 것입니다, 예를 들어, promptable segmentation 모델은 기존 객체 검출기와 결합됩니다.

 

Discussion.

prompting 및 구성은 단일 모델을 확장 가능한 방식으로 사용할 수 있는 강력한 도구로, 모델 설계 당시에는 알려지지 않은 작업을 수행할 수 있습니다.

이 접근 방식은 CLIP [82]가 DALL·E [83] 이미지 생성 시스템의 텍스트-이미지 정렬 구성 요소인 경우와 같은 다른 기초 모델이 사용되는 방법과 유사합니다.

우리는 prompt 엔지니어링과 같은 기술에 의해 구동되는 복합 시스템 설계가 고정된 일련의 작업을 위해 특별히 학습된 시스템보다 더 다양한 애플리케이션을 가능하게 할 것으로 예상합니다.

구성 렌즈를 통해 promptable하고 상호 작용적인 segmentation을 비교하는 것도 흥미롭습니다: 상호작용형 segmentation 모델이 인간 사용자를 염두에 두고 설계되는 반면, promptable segmentation을 위해 학습된 모델은 또한 우리가 시연할 것처럼 더 큰 알고리즘 시스템으로 구성될 수 있습니다.

 

 

3. Segment Anything Model

다음으로 promptable segmentation을 위해 Segment Anything Model (SAM)에 대해 설명합니다.
SAM에는 세 가지 구성 요소가 있습니다, 그림 4 참조: 이미지 인코더, 유연한 prompt 인코더 및 빠른 마스크 디코더.

우리는 트랜스포머 비전 모델[14, 33, 20, 62]을 기반으로 (단축) 실시간 성능을 위한 특정 트레이드오프를 수행합니다.

여기서는 이러한 구성 요소에 대해 §A에 자세히 설명합니다.

 

Image encoder.

확장성과 강력한 사전 학습 방법에 자극을 받아, 우리는 MAE [47] 사전 학습된 비전 트랜스포머 (ViT) [33]를 사용하여 고해상도 입력을 처리합니다 [62].

이미지 인코더는 이미지당 한 번 실행되며 모델에 prompting을 표시하기 전에 적용할 수 있습니다.

 

Prompt encoder.

두 가지 prompt 세트를 고려합니다: sparse (점, 상자, 텍스트) 및 dense (마스크).

각 prompt 유형에 대해 학습된 임베딩과 CLIP [82]의 기성 텍스트 인코더가 있는 자유 형식 텍스트로 요약된 위치 인코딩 [95]으로 포인트와 상자를 나타냅니다.

고밀도 prompt(즉, 마스크)는 컨볼루션을 사용하여 임베딩되며 이미지 임베딩과 함께 요소별로 합계됩니다.

 

Mask decoder.

마스크 디코더는 이미지 임베딩, prompt 임베딩 및 출력 토큰을 마스크에 효율적으로 매핑합니다.
[14, 20]에서 영감을 받은 이 설계는 Transformer 디코더 블록 [103]의 수정을 사용하고 그 뒤에 동적 마스크 예측 헤드를 사용합니다.

수정된 디코더 블록은 prompt 셀프 어텐션과 두 방향(prompt-to-image 임베딩과 그 반대)의 크로스 어텐션을 사용하여 모든 임베딩을 업데이트합니다.

두 블록을 실행한 후 이미지 임베딩을 업샘플링하고 MLP는 출력 토큰을 동적 선형 분류기에 매핑한 다음 각 이미지 위치에서 마스크 전경 확률을 계산합니다.

 

Resolving ambiguity.

하나의 출력에서 모호한 prompt가 제공되면 모델은 유효한 마스크를 여러 개 평균화합니다.

이를 해결하기 위해 단일 prompt에 대해 여러 출력 마스크를 예측하도록 모델을 수정합니다(그림 3 참조).

3개의 마스크 출력으로 대부분의 일반적인 경우를 해결할 수 있습니다(내포된 마스크는 최대 3개의 깊이: 전체, 부분 및 하위 부분).

학습 중에는 마스크에 대한 최소 loss [15, 45, 64]만 지원합니다.

마스크의 순위를 매기기 위해 모델은 각 마스크에 대한 신뢰 점수(즉, 추정 IoU)를 예측합니다.

 

Efficiency.

전체적인 모델 설계는 효율성에 크게 좌우됩니다.

사전 계산된 이미지 임베딩이 주어지면 prompt 인코더와 마스크 디코더는 웹 브라우저, CPU에서 최대 50ms 단위로 실행됩니다.

이 런타임 성능을 통해 모델의 실시간 상호작용형 prompt를 원활하게 표시할 수 있습니다.

 

Losses and training.

우리는 [14]에 사용된 초점 loss [65]과 주사위 loss [73]의 선형 조합으로 마스크 예측을 supervise합니다.

기하학적 prompt의 혼합을 사용하여 promptable segmentation 작업을 위해 학습합니다(텍스트 prompt의 경우 § 7.5 참조).

[92, 37]에 이어 마스크당 11라운드의 prompt를 랜덤으로 샘플링하여 상호작용형 설정을 시뮬레이션하여 SAM이 데이터 엔진에 원활하게 통합될 수 있도록 합니다.

 

 

4. Segment Anything Data Engine

segmentation 마스크가 인터넷에 많지 않기 때문에 1.1B 마스크 데이터 세트인 SA-1B를 수집할 수 있도록 데이터 엔진을 구축했습니다.

데이터 엔진은 3단계로 구성됩니다: (1) 모델 지원 수동 주석 단계, (2) 자동 예측 마스크와 모델 지원 주석이 혼합된 반자동 단계, (3) 모델이 주석자 입력 없이 마스크를 생성하는 완전 자동 단계.

우리는 각각의 세부사항에 대해 설명합니다.

 

Assisted-manual stage.

첫 번째 단계에서는, 고전적인 상호작용형 segmentation과 유사한 전문 주석자 팀은 SAM이 제공하는 브라우저 기반 상호작용형 segmentation 도구를 사용하여 전경/배경 개체 지점을 클릭하여 마스크에 레이블을 지정했습니다.

마스크는 픽셀 단위의 "brush" 및 "eraser" 도구를 사용하여 다듬을 수 있습니다.

모델 지원 주석은 브라우저 내에서 실시간으로 실행되며(사전 계산된 이미지 임베딩 사용) 진정한 상호작용형 경험을 가능하게 합니다.

우리는 객체에 레이블을 지정하기 위해 semantic 제약을 가하지 않았고 주석자는 "stuff"와 "things" 모두에 자유롭게 레이블을 지정했습니다 [1].

주석자가 이름을 지정하거나 설명할 수 있는 개체에 레이블을 지정할 것을 제안했지만 이러한 이름이나 설명을 수집하지는 않았습니다.

주석자들은 눈에 띄는 순서대로 객체에 레이블을 붙이도록 요청받았고 마스크가 주석을 다는 데 30초 이상이 걸린 후 다음 이미지로 진행하도록 권장되었습니다.

 

이 단계를 시작할 때 SAM은 일반적인 공개 segmentation 데이터 세트를 사용하여 학습을 받았습니다.

충분한 데이터 주석 후, SAM은 새로 주석이 달린 마스크만을 사용하여 재학습되었습니다.

더 많은 마스크가 수집됨에 따라 이미지 인코더의 크기가 ViT-B에서 ViT-H로 조정되었고 기타 아키텍처 세부 사항이 발전했습니다; 총 6번의 모델 재학습을 받았습니다.

마스크당 평균 주석 시간은 모델이 개선됨에 따라 34초에서 14초로 감소했습니다.

우리는 14초가 COCO[66]에 대한 마스크 주석보다 6.5배 빠르며 극한점이 있는 바운딩 박스 레이블링보다 2배 느립니다 [76, 71].
SAM이 개선됨에 따라 이미지당 평균 마스크 수가 20개에서 44개로 증가했습니다.
전체적으로 이 단계에서 120,000개의 이미지에서 4.3M개의 마스크를 수집했습니다.

 

Semi-automatic stage.

이 단계에서, 우리는 무엇이든 segment할 수 있는 모델의 능력을 향상시키기 위해 마스크의 다양성을 늘리는 것을 목표로 했습니다.

주석자를 덜 두드러지는 물체에 초점을 맞추기 위해 먼저 자신 있는 마스크를 자동으로 감지했습니다.

그런 다음 이러한 마스크로 미리 채워진 이미지가 있는 주석자를 제시하고 주석이 없는 추가 개체에 주석을 달도록 요청했습니다.

신뢰할 수 있는 마스크를 탐지하기 위해 일반적인 "objecy" 범주를 사용하여 모든 1단계 마스크에 대해 바운딩 박스 탐지기 [84]를 학습했습니다.

이 단계에서 180k 이미지(총 10.2M 마스크)의 5.9M 마스크를 추가로 수집했습니다. 

첫 번째 단계에서와 마찬가지로 새로 수집된 데이터에 대해 주기적으로 모델을 재학습했습니다(5회).

마스크당 평균 주석 시간은 34초까지 거슬러 올라갔습니다(자동 마스크 제외).

이러한 개체에 레이블을 지정하기가 더 어려웠기 때문입니다.

이미지당 평균 마스크 수는 44개에서 72개로 증가했습니다(자동 마스크 포함).

 

Fully automatic stage.

마지막 단계에서 주석은 완전히 자동화되었습니다.

이것은 우리 모델에 대한 두 가지 주요 개선 사항으로 인해 실현 가능했습니다.

먼저, 이 단계를 시작할 때 이전 단계의 다양한 마스크를 포함하여 모델을 크게 개선할 수 있는 충분한 마스크를 수집했습니다.

둘째, 이 단계까지 우리는 모호한 경우에도 유효한 마스크를 예측할 수 있는 모호성 인식 모델을 개발했습니다.

구체적으로, 우리는 32x32의 규칙적인 점 그리드로 모델에 prompt했고 각 점에 대해 유효한 객체에 해당할 수 있는 마스크 세트를 예측했습니다.

모호성 인식 모델을 사용하여 점이 부분 또는 하위 부분에 있으면 하위 부분, 부분 및 전체 개체를 반환합니다.

모델의 IoU 예측 모듈은 신뢰할 수 있는 마스크를 선택하는 데 사용됩니다; 또한 안정적인 마스크만 식별하고 선택했습니다(확률 맵을 0.5 - δ 및 0.5 + δ에서 임계값을 설정하면 유사한 마스크가 생성되는 경우 마스크가 안정적이라고 생각합니다).

마지막으로, 신뢰할 수 있고 안정적인 마스크를 선택한 후 중복을 필터링하기 위해 Non-Maximum Suppression (NMS)를 적용했습니다.

더 작은 마스크의 품질을 더욱 향상시키기 위해 여러 개의 중첩 확대 이미지 크롭도 처리했습니다.

이 단계에 대한 자세한 내용은 §B를 참조하십시오.

우리는 데이터 세트의 모든 11M 이미지에 완전 자동 마스크 생성을 적용하여 총 11B개의 고품질 마스크를 생성했습니다.

우리는 다음으로 결과 데이터 세트인 SA-1B를 설명하고 분석합니다.

 

 

5. Segment Anything Dataset

우리의 데이터 세트인 SA-1B는 11M개의 다양한 고해상도, 라이센스 및 개인 정보 보호 이미지와 데이터 엔진으로 수집된 1.1B개의 고품질 segmentation 마스크로 구성됩니다.

SA-1B를 기존 데이터 세트와 비교하고 마스크 품질 및 특성을 분석합니다.

우리는 컴퓨터 비전을 위한 기초 모델의 향후 개발을 돕기 위해 SA-1B를 출시합니다.

SA-1B는 특정 연구 용도에 유리한 라이센스 계약 하에 출시될 것이며 연구자를 위한 보호를 받을 것입니다.

 

Images.

당사는 사진작가와 직접 작업하는 공급업체로부터 새로운 1,100만 개의 이미지 세트를 라이센스했습니다.

이러한 이미지는 고해상도(평균 3300x4950픽셀)이며, 결과적으로 데이터 크기가 액세스 및 스토리지 문제를 야기할 수 있습니다.

따라서 우리는 가장 짧은 면이 1500픽셀로 설정된 다운샘플링된 이미지를 출시하고 있습니다.

다운샘플링 후에도 이미지는 기존의 많은 비전 데이터 세트(예: COCO [66] 이미지는 ~480x640 픽셀)보다 훨씬 높은 해상도입니다.

오늘날 대부분의 모델은 훨씬 낮은 해상도의 입력에서 작동합니다.

공개된 이미지에는 얼굴과 차량 번호판이 블러하게 찍혀 있습니다.

 

Masks.

당사의 데이터 엔진은 1.1B 마스크를 생산했으며, 이 중 99.1%는 완전히 자동으로 생성되었습니다.

따라서 자동 마스크의 품질은 중심적으로 중요합니다.

전문적인 주석과 직접 비교하고 저명한 segmentation 데이터 세트와 비교하여 다양한 마스크 속성을 살펴봅니다.

아래 분석과 § 7의 실험에서 입증된 바와 같이, 우리의 주요 결론은 자동 마스크가 고품질이고 학습 모델에 효과적이라는 것입니다.

이러한 발견에 자극을 받아 SA-1B는 자동으로 생성된 마스크만 포함합니다.

 

Mask quality.

마스크 품질을 추정하기 위해 500개의 이미지(~50k개의 마스크)를 랜덤으로 샘플링하고 전문 주석자에게 이러한 이미지의 모든 마스크 품질을 개선할 것을 요청했습니다.

주석자들은 모델과 픽셀 단위의 "bruch" 및 "erasor" 편집 도구를 사용하여 그렇게 했습니다.

이 절차를 통해 자동으로 예측되고 전문적으로 수정된 마스크 쌍이 생성되었습니다.

우리는 각 쌍 사이의 IoU를 계산했고, 94%의 쌍이 90% 이상의 IoU를 가지고 있다는 것을 발견했습니다(그리고 97%의 쌍이 75% 이상의 IoU를 가지고 있습니다).

비교를 위해, 이전 연구는 주석자 간 일관성을 85-91% IoU로 추정합니다 [44, 60].

§ 7에 대한 우리의 실험은 다양한 데이터 세트에 비해 마스크 품질이 높고 자동 마스크에 대한 모델 학습이 데이터 엔진에서 생성된 모든 마스크를 사용하는 것과 거의 같다는 것을 인간 등급으로 확인합니다.

그림 5: 이미지 크기의 정규화된 마스크 중심 분포.
그림 6: 데이터 세트 마스크 속성. 범례는 각 데이터 세트의 이미지 및 마스크 수를 참조합니다. 참고로 SA-1B는 기존의 가장 큰 segmentation  데이터 세트인 Open Images [60]보다 11배 많은 이미지와 400배 많은 마스크를 가지고 있습니다.

Mask properties.

그림 5에서는 기존의 가장 큰 segmentation 데이터 세트와 비교하여 SA-1B의 객체 센터 공간 분포를 표시합니다.

모든 데이터 세트에는 일반적인 사진작가 편향이 있습니다.

우리는 SA-1B가 가장 유사하게 분산된 두 데이터 세트인 LVIS v1 [44] 및 ADE20K [117]에 비해 이미지 코너의 적용 범위가 더 넓은 반면 COCO [66] 및 Open Images V5 [60]는 더 두드러진 중심 편향을 가지고 있음을 관찰합니다.

그림 6(legend)에서는 이러한 데이터 세트를 크기별로 비교합니다.

SA-1B는 두 번째로 큰 오픈 이미지보다 11배 더 많은 이미지와 400배 더 많은 마스크를 가지고 있습니다.

평균적으로 이미지당 마스크 수가 Open Images보다 36배 더 많습니다.

이와 관련하여 가장 가까운 데이터 세트인 ADE20K는 여전히 이미지당 마스크 수가 3.5배 적습니다.

그림 6(왼쪽)은 이미지당 마스크 분포를 보여줍니다.

다음으로 그림 6(가운데)에서 이미지 관련 마스크 크기(마스크 영역의 제곱근을 이미지 영역으로 나눈 값)를 살펴봅니다.

예상대로, 우리의 데이터 세트는 이미지당 더 많은 마스크를 가지고 있기 때문에, 그것은 또한 중소형 상대 크기 마스크의 비율을 더 많이 포함하는 경향이 있습니다.

마지막으로, 형상 복잡도를 분석하기 위해 그림 6(오른쪽)에서 마스크 오목도(마스크 면적을 마스크 볼록 껍질 면적으로 나눈 1 빼기)를 살펴봅니다.

모양 복잡성은 마스크 크기와 상관 관계가 있으므로 먼저 bin 마스크 크기에서 계층화된 샘플링을 수행하여 데이터 세트의 마스크 크기 분포를 제어합니다.

우리는 마스크의 오목한 분포가 다른 데이터 세트의 오목한 분포와 대체로 유사하다는 것을 관찰합니다.

 

 

6. Segment Anything RAI Analysis

다음으로 SA-1B 및 SAM을 사용할 때 발생할 수 있는 공정성 문제와 편견을 조사하여 작업에 대한 Responsible AI (RAI) 분석을 수행합니다.

우리는 SA-1B의 지리적 및 소득 분포와 보호된 사람들의 속성 전반에 걸친 SAM의 공정성에 중점을 둡니다.

우리는 또한 데이터 세트, 데이터 주석 및 모델 카드를 §F로 제공합니다.

그림 7: SA-1B 이미지의 예상 지리적 분포. 세계의 대부분의 국가들은 SA-1B에 1000개 이상의 이미지를 가지고 있고, 가장 많은 이미지를 가진 세 나라는 세계의 다른 지역에서 왔습니다.
표 1: 지리적 표현과 소득 표현의 비교. SA-1B는 중산층 국가뿐만 아니라 유럽, 아시아 및 오세아니아에서 더 높은 대표성을 가지고 있습니다. 아프리카, 중남미 및 저소득 국가의 이미지는 모든 데이터 세트에 제대로 표시되지 않습니다.

Geographic and income representation.

국가 이미지가 표준 방법을 사용하여 촬영되었다고 추론합니다(§C 참조).

그림 7에서는 SA-1B(왼쪽)와 이미지가 가장 많은 50개국(오른쪽)의 국가별 이미지 수를 시각화합니다.

우리는 상위 3개국이 세계의 다른 지역 출신이라는 것에 주목합니다.

다음으로, 표 1에서 SA-1B, COCO [66] 및 Open Images [60]의 지리적 및 소득 표현을 비교합니다.

SA-1B는 중간 소득 국가뿐만 아니라 유럽, 아시아 및 오세아니아에서 이미지의 비율이 상당히 높습니다.

모든 데이터 세트는 저소득 국가뿐만 아니라 아프리카를 대표합니다.

SA-1B에서는 아프리카를 포함한 모든 지역에 이전 데이터 세트의 총 마스크 수보다 10배 많은 2,800만 개 이상의 마스크가 있습니다.

마지막으로, 이미지당 평균 마스크 수(표시되지 않음)는 지역 및 소득(이미지당 94-108개)에 걸쳐 상당히 일치함을 관찰합니다.

표 2: 인식된 성별 표현, 연령대 및 피부톤을 통해 사람들을 segmenting하는 SAM의 성능. 95% 신뢰 구간이 표시됩니다. 각 그룹 내에서 오래된 신뢰 구간과 중간 신뢰 구간을 제외한 모든 신뢰 구간이 겹칩니다.

Fairness in segmenting people.

우리는 그룹 간 SAM의 성능 불일치를 측정하여 인식된 성별 표현, 인식된 연령 그룹 및 인식된 피부 톤에 걸친 잠재적 공정성 문제를 조사합니다.

우리는 성별 표현 및 연령에 대해 MIAP [87] 데이터 세트를 사용하고 피부톤에 대한 독점 데이터 세트를 사용합니다(§C 참조).

우리의 평가는 1점과 3점의 랜덤 샘플링으로 시뮬레이션된 상호작용형 segmentation을 사용합니다(§D 참조).

표 2(왼쪽 위)는 지각된 성별 표현에 대한 결과를 보여줍니다.

우리는 검출 및 segmentation 데이터 세트[115]에서 여성이 충분히 표현되지 않은 것으로 나타났지만, SAM이 그룹 전체에서 유사하게 수행된다는 것을 관찰합니다.

우리는 표 2(왼쪽 아래)에서 인식된 연령에 대한 분석을 반복하며, 나이가 더 젊고 나이가 많다고 인식된 사람들이 대규모 데이터 세트에서 충분히 표현되지 않은 것으로 나타났다는 점에 주목합니다 [110].

SAM은 나이가 든 것으로 인식되는 사람들에게 가장 효과적입니다(신뢰 구간이 크지만).

마지막으로, 우리는 표 2(오른쪽)에서 인식된 피부톤에 대한 분석을 반복하며, 겉보기 피부톤이 밝은 피부톤을 가진 사람들은 과잉 표현된 것으로 나타났고 어두운 피부톤을 가진 사람들은 대규모 데이터 세트에서 과소 표현된 것으로 나타났습니다 [110].

MIAP에는 인식된 피부 톤 주석이 포함되어 있지 않기 때문에 1(가장 가벼운 피부 톤)에서 6(가장 어두운 피부 톤)까지의 인식된 피츠패트릭 피부 유형[36]에 대한 주석이 포함된 독점 데이터 세트를 사용합니다.

평균은 다소 다르지만 그룹 간에 유의한 차이는 없습니다.

우리는 우리의 연구 결과가 작업의 특성에서 비롯된다고 생각하며, SAM이 더 큰 시스템에서 구성 요소로 사용될 때 편향이 발생할 수 있다는 것을 인정합니다.

마지막으로, §C에서 우리는 인식된 성별 표현 전반에 걸쳐 편향의 징후를 발견하는 의류 segmenting으로 분석을 확장합니다.

 

 

7. Zero-Shot Transfer Experiments

이 섹션에서는 Segment Anything 모델인 SAM을 사용한 제로샷 전송 실험을 제시합니다.

우리는 다섯 가지 작업을 고려하는데, 그 중 네 가지는 SAM을 학습하는 데 사용되는 promptable segmentation 작업과 크게 다릅니다.

이러한 실험은 학습 중에 볼 수 없었던 데이터 세트 및 작업에 대한 SAM을 평가합니다("zero-shot transfer"의 사용은 CLIP [82]의 사용을 따릅니다).

데이터 세트는 수중 또는 자아 중심 이미지(예: 그림 8)와 같이 SA-1B에 나타나지 않는 새로운 이미지 분포를 포함할 수 있습니다.

그림 8: SAM의 제로샷 전송 기능을 평가하는 데 사용된 23개의 다양한 segmentation 데이터 세트의 샘플.

우리의 실험은 promptable segmentation의 핵심 목표인 모든 prompt에서 유효한 마스크를 생성하는 것을 테스트하는 것으로 시작합니다.

단일 전경점 prompt가 다른 보다 구체적인 prompt보다 모호할 가능성이 높기 때문에 단일 전경점 prompt의 까다로운 시나리오를 강조합니다.

다음으로, 우리는 낮은, 중간, 그리고 높은 수준의 이미지 이해를 통과하고 그 분야의 역사적 발전과 대략 평행하는 일련의 실험을 제시합니다.

구체적으로, 우리는 SAM에게 (1) 에지 감지를 수행하고, (2) segment everything, 즉, 객체 제안 생성, (3) segment 감지된 객체, 즉 인스턴스 segmentation, (4) 개념 증명으로 자유 형식 텍스트에서 객체를 segment하도록 요청합니다.

이 네 가지 작업은 SAM이 학습을 받았으며 prompt 엔지니어링을 통해 구현되는 promptable segmentation 작업과 크게 다릅니다.

우리의 실험은 ablation 연구로 끝납니다.

 

Implementation.

달리 명시되지 않은 한: (1) SAM은 MAE [47] 사전 학습된 ViT-H [33] 이미지 인코더를 사용하며, (2) SAM은 SA-1B에 대해 학습을 받았으며, 이 데이터 세트에는 데이터 엔진의 최종 단계에서 자동으로 생성된 마스크만 포함됩니다.

하이퍼 파라미터와 같은 기타 모든 모델 및 학습 세부사항은 §A를 참조하십시오.

 

7.1. Zero-shot Single Point Valid Mask Evaluation

Task.

우리는 단일 전경점에서 물체를 segmenting하는 것을 평가합니다.

한 점이 여러 개체를 나타낼 수 있으므로 이 작업은 잘못된 위치에 있습니다.

대부분의 데이터 세트에서 실제 마스크는 가능한 모든 마스크를 열거하지 않으므로 자동 메트릭을 신뢰할 수 없게 만들 수 있습니다.

따라서, 우리는 주석자가 마스크 품질을 1(논센스)에서 10(픽셀 완벽)까지 평가하는 인간 연구로 표준 mIoU 메트릭(예측된 마스크와 실제 마스크 사이의 모든 IoU의 평균)을 보완합니다.

자세한 내용은 §D.1, §E 및 §G를 참조하십시오.

 

기본적으로 상호작용형 segmentation의 표준 평가 프로토콜에 따라 (마스크의 내부 거리 변환의 최대값으로) ground truth 마스크의 "중심"에서 포인트를 샘플링합니다 [92].

SAM은 여러 마스크를 예측할 수 있으므로 기본적으로 모델의 가장 신뢰할 수 있는 마스크만 평가합니다.

베이스라인은 모두 단일 마스크 방법입니다.

우리는 주로 다른 강력한 베이스라인에 비해 벤치마크에서 최고의 성능을 발휘하는 강력한 상호작용형 segmenter인 RITM[92]과 비교합니다[67, 18].

 

Datasets.

우리는 다양한 이미지 분포를 가진 23개의 데이터 세트로 새롭게 컴파일된 세트를 사용합니다.

그림 8은 데이터 세트를 나열하고 각 데이터 세트의 샘플을 보여줍니다(자세한 내용은 부록 표 7 참조).

우리는 mIoU 평가를 위해 23개의 데이터 세트를 모두 사용합니다.

인간 연구의 경우, 우리는 (이러한 연구의 자원 요구 때문에) 그림 9b에 나열된 부분 집합을 사용합니다.

이 하위 집합에는 SAM이 자동 메트릭에 따라 RITM을 능가하는 데이터 세트와 성능이 떨어지는 데이터 세트가 모두 포함됩니다.

그림 9: 23개의 데이터 세트에 대한 마스크 평가를 가리킵니다. (a) SAM의 평균 IoU와 가장 강력한 단일 포인트 segmenter인 RITM [92]. 모호성으로 인해 단일 마스크가 실제와 일치하지 않을 수 있습니다; 원은 SAM의 3가지 예측 중 가장 관련성이 높은 "oracle" 결과를 보여줍니다. (b) 주석자별 마스크 품질 등급을 1(최상)에서 10(최상)으로 비교합니다. 모든 방법은 ground truth 마스크 센터를 prompt로 사용합니다. (c, d) 포인트 수가 다양한 mIoU. SAM은 1점으로 이전의 상호작용형 segmenter를 크게 능가하고 더 많은 점과 동등합니다. 1점에서 낮은 절대 mIoU는 모호성의 결과입니다.

Results.

먼저, 우리는 mIoU를 사용하는 23개의 데이터 세트 전체에 대한 자동 평가를 살펴봅니다.

우리는 그림 9a의 데이터 세트별 결과를 RITM과 비교합니다.

SAM은 23개의 데이터 세트 중 16개에서 최대 47개의 IoU만큼 더 높은 결과를 산출합니다.

또한 가장 자신 있는 마스크를 선택하는 대신 SAM의 3가지 마스크 중 가장 관련성이 높은 마스크를 ground truth와 비교하여 선택하는 "oracle" 결과를 제시합니다.

이는 모호성이 자동 평가에 미치는 영향을 나타냅니다.

특히 모호성 해결을 수행하는 오라클을 통해 SAM은 모든 데이터 세트에서 RITM을 능가합니다.

 

인체 연구 결과는 그림 9b에 나와 있습니다.

오차 막대는 평균 마스크 등급에 대한 95% 신뢰 구간입니다(모든 차이가 유의합니다. 자세한 내용은 §E 참조).

우리는 주석자들이 SAM 마스크의 품질을 가장 강력한 베이스라인인 RITM보다 상당히 높게 일관되게 평가하는 것을 관찰합니다.

단일 출력 마스크가 있는 "ambiguity-unaware" 버전의 SAM은 RITM보다 여전히 높지만 지속적으로 낮은 등급을 가집니다.

SAM의 평균 등급은 7에서 9 사이로 떨어지며, 이는 정성 등급 지침에 해당합니다: "고점(7-9): 개체를 식별할 수 있고 오류가 작고 드문 경우(예: 작고 심하게 가려진 연결되지 않은 구성 요소가 누락된 경우 등)."

이러한 결과는 SAM이 유효한 마스크를 단일 지점에서 segment하는 방법을 배웠음을 나타냅니다.

자동 메트릭에서 SAM이 더 나쁜 DRAM 및 IBD와 같은 데이터 세트의 경우 인간 연구에서 지속적으로 더 높은 등급을 받습니다.

 

그림 9c는 RITM과 SAM보다 낮은 단일 포인트 성능을 얻는 추가 베이스라인인 SimpleClick [67] 및 FocolClick [18]을 보여줍니다.

점의 수가 1에서 9로 증가함에 따라 방법 간의 차이가 감소하는 것을 관찰했습니다.

작업이 쉬워질수록 이는 예상됩니다.

또한 SAM은 매우 높은 IoU 체제에 최적화되지 않습니다.

마지막으로, 그림 9d에서 우리는 기본 중앙점 샘플링을 랜덤 점 샘플링으로 바꿉니다.

우리는 SAM과 베이스라인 사이의 격차가 커지고 SAM이 두 샘플링 방법 중 하나에서 유사한 결과를 얻을 수 있다는 것을 관찰했습니다.

 

7.2. Zero-Shot Edge Detection

Approach.

우리는 BSDS500을 사용하여 에지 감지의 고전적인 낮은 수준 작업에 대해 SAM을 평가합니다 [72, 3].

우리는 자동 마스크 생성 파이프라인의 단순화된 버전을 사용합니다.

구체적으로, 우리는 SAM에 16×16개의 전경 점의 규칙적인 그리드를 사용하여 768개의 예측 마스크(점당 3개)를 생성하도록 요청합니다.

중복 마스크는 NMS에 의해 제거됩니다.

그런 다음 에지 맵은 임계값되지 않은 마스크 확률 맵의 Sobel 필터링과 에지 NMS를 포함한 표준 경량 후 처리를 사용하여 계산됩니다(자세한 내용은 § D.2 참조).

그림 10: BSDS500의 제로샷 에지 예측. SAM은 에지 맵을 예측하도록 학습되지 않았으며 학습 중에 BSDS 이미지 또는 주석에 액세스할 수 없었습니다.
그림 15: BSDS500의 제로샷 에지 예측에 대한 추가 시각화. SAM은 에지 맵을 예측하도록 학습되지 않았으며 학습 중에 BSDS 이미지와 주석에 액세스할 수 없었습니다.
표 3: BSDS500의 에지 감지에 대한 제로샷 전송.

Results.

그림 10에서 대표적인 에지 맵을 시각화합니다(자세한 내용은 그림 15 참조).

질적으로, 우리는 SAM이 에지 감지를 위해 학습되지 않았음에도 불구하고 합리적인 에지 맵을 생성한다는 것을 관찰합니다.

ground truth와 비교하여 SAM은 BSDS500에 주석이 없는 합리적인 정보를 포함하여 더 많은 에지를 예측합니다.

이러한 편향은 표 3에 정량적으로 반영되어 있습니다.

50% 정밀도(R50)에서의 recall은 정밀도를 희생하여 높은 수준입니다.

SAM은 자연스럽게 BSDS500의 편향, 즉 억제해야 할 가장자리를 학습하는 SOTA 방법에 뒤처집니다.

그럼에도 불구하고 SAM은 HED[108](BSDS500에서도 학습됨)와 같은 선구적인 딥러닝 방법과 비교하여 성능이 우수하며, 구식이지만 제로샷 전송 방법은 이전보다 훨씬 우수합니다.

 

7.3. Zero-Shot Object Proposals

Approach.

다음으로, 우리는 객체 제안 생성의 중간 수준 작업에 대해 SAM을 평가합니다 [2, 102].

이 작업은 객체 탐지 연구에서 중요한 역할을 수행하여, 선구적인 시스템(예: [102, 41, 84])의 중간 단계로 작용했습니다.

객체 제안을 생성하기 위해 자동 마스크 생성 파이프라인의 약간 수정된 버전을 실행하고 마스크를 제안으로 출력합니다(자세한 내용은 § D.3 참조).

 

LVIS v1에 대한 표준 average recall (AR) 메트릭을 계산합니다 [44].

LVIS의 많은 범주가 어려운 테스트를 제시하기 때문에 LVIS에 중점을 둡니다.

우리는 (cascade Mask R-CNN [48, 11] ViT-H를 사용하여) ViTDet [62] 검출기로 구현된 강력한 베이스라인과 비교합니다.

우리는 이 "베이스라인"이 게임 AR에 표시된 "Detector Masquerading as Proposal generator"(DMP) 방법[16]에 해당하므로 진정으로 까다로운 비교가 됩니다.

표 4: LVIS v1의 객체 제안 생성. SAM은 제로샷이 적용됩니다. 즉, 객체 제안 생성을 위해 학습되지도 않았고 LVIS 이미지나 주석에 액세스하지도 않았습니다.

Results.

표 4에서 우리는 ViTDet-H의 탐지를 객체 제안으로 사용하는 것(즉, 게임 AR이 수행하는 DMP 방법 [16])이 전체적으로 가장 잘 수행된다는 것을 놀랄 것 없이 알 수 있습니다.

그러나 SAM은 몇 가지 측정 메트릭에서 상당히 우수합니다.

특히, 그것은 중대형 물체뿐만 아니라 희귀하고 일반적인 물체에서도 ViTDet-H를 능가합니다.

실제로 SAM은 작은 객체와 빈번한 객체에서만 ViTdet-H를 능가하는데, 여기서 ViTdet-H는 SAM과 달리 LVIS에서 학습되었기 때문에 LVIS별 주석 편향을 쉽게 학습할 수 있습니다.

우리는 또한 모든 AR 메트릭에서 SAM보다 훨씬 더 나쁜 성능을 보이는 SAM("single out.")의 ablated 모호성 인식 버전과 비교합니다.

 

7.4. Zero-Shot Instance Segmentation

Approach.

더 높은 수준의 비전으로 이동하여 SAM을 인스턴스 segmenter의 segmentation 모듈로 사용합니다.

구현은 간단합니다: 객체 감지기(이전에 사용된 ViTDet)를 실행하고 출력 상자를 사용하여 SAM에 prompt를 표시합니다.

이 그림에서는 더 큰 시스템에서 SAM을 구성하는 방법을 보여 줍니다.

그림 16: LVIS v1의 제로샷 인스턴스 segmentation. SAM은 ViTDet보다 더 높은 품질의 마스크를 생성합니다. 제로샷 모델로서 SAM은 특정 학습 데이터 편향을 학습할 기회가 없습니다. 오른쪽 위를 SAM이 모달 예측을 하는 예로 보는 반면 LVIS의 ground truth는 LVIS의 마스크 주석이 구멍이 없다는 점을 고려할 때 모달입니다.

Results.

우리는 표 5에서 COCO와 LVIS에서 SAM과 ViTdet에 의해 예측된 마스크를 비교합니다.

마스크 AP 메트릭을 보면 SAM이 ViTet보다 확실히 뒤떨어지지만 상당히 가까운 두 데이터 세트에서 격차가 관찰됩니다.

출력을 시각화함으로써, 우리는 SAM 마스크가 종종 더 선명한 경계를 가진 ViTDet의 마스크보다 질적으로 더 낫다는 것을 관찰했습니다(§D.4 및 그림 16 참조).

이 관찰을 조사하기 위해 주석자들에게 ViTdet 마스크와 SAM 마스크를 이전에 사용된 1-10개의 품질 척도로 평가하도록 요청하는 추가 인간 연구를 수행했습니다.

그림 11에서 우리는 SAM이 인간 연구에서 ViTdet을 지속적으로 능가하는 것을 관찰합니다.

그림 11: LVIS ground truth 상자에 적용된 ViTDet 및 SAM에 대한 인간 연구의 마스크 품질 등급 분포. 또한 LVIS와 COCO ground truth 품질을 보고합니다. 범례에는 등급 평균과 95% 신뢰 구간이 표시됩니다. SAM은 낮은 AP(표 5)에도 불구하고 ViTet보다 높은 등급을 가지고 있으며, 이는 ViTet이 COCO 및 LVIS 학습 데이터의 편향을 악용한다는 것을 시사합니다.

우리는 마스크 AP 간격이 더 크고 (인간 연구에서 입증된 바와 같이) 상대적으로 ground truth 품질이 낮은 COCO에서 ViTdet가 COCO 마스크의 특정 편향을 학습한다고 가정합니다.

SAM은 제로샷 방법이기 때문에 이러한 (일반적으로 바람직하지 않은) 편향을 이용할 수 없습니다.

LVIS 데이터 세트는 더 높은 품질의 ground truth를 가지고 있지만, 여전히 구체적인 특이점(예: 마스크에 구멍이 포함되지 않고 구조상 단순한 다각형)과 modal vs. amodal 마스크에 대한 편향이 있습니다.

다시 말하지만, SAM은 이러한 편향을 학습하도록 학습되지 않은 반면 ViTdet은 이러한 편향을 활용할 수 있습니다.

 

7.5. Zero-Shot Text-to-Mask

Approach.

마지막으로, 우리는 훨씬 더 높은 수준의 작업을 고려합니다: 자유 형식 텍스트에서 개체를 segmenting합니다.

이 실험은 텍스트 prompt를 처리하는 SAM의 능력에 대한 개념 증명입니다.

이전의 모든 실험에서 동일한 SAM을 사용했지만, 이 SAM의 학습 절차는 텍스트 인식이 되도록 수정되었지만 새로운 텍스트 주석이 필요하지 않습니다.

특히 면적이 1002보다 큰 수동으로 수집된 각 마스크에 대해 CLIP 이미지 임베딩을 추출합니다.

그런 다음 학습 중에 추출된 CLIP 이미지 임베딩을 첫 번째 상호 작용으로 SAM에 요청합니다.

여기서 핵심 관찰은 CLIP의 이미지 임베딩이 텍스트 임베딩과 일치하도록 학습되기 때문에 이미지 임베딩으로 학습할 수 있지만 추론을 위해 텍스트 임베딩을 사용할 수 있다는 것입니다.

즉, 추론 시간에 CLIP의 텍스트 인코더를 통해 텍스트를 실행한 다음 결과 텍스트 임베딩을 SAM에 prompt로 제공합니다(자세한 내용은 § D.5 참조).

그림 12: text-to-mask 제로샷. SAM은 단순하고 미묘한 텍스트 prompt로 작업할 수 있습니다. SAM이 정확한 예측을 하지 못할 경우 추가 점 prompt가 도움이 될 수 있습니다.

Results.

우리는 그림 12에 질적인 결과를 보여줍니다.

SAM은 "a wheel"와 같은 간단한 텍스트 prompt와 "beaver tooth grille"과 같은 문구를 기반으로 객체를 segment할 수 있습니다.

SAM이 텍스트 prompt에서만 올바른 개체를 선택하지 못하는 경우, [31]과 유사하게 추가 지점이 예측을 수정하는 경우가 많습니다.

 

7.6. Ablations

우리는 단일 중앙점 prompt 프로토콜을 사용하여 23개의 데이터 세트에서 몇 가지 ablations을 수행합니다.

하나의 점이 모호할 수 있으며 점당 하나의 마스크만 포함하는 ground truth에는 모호성이 표시되지 않을 수 있습니다.

SAM은 제로샷 전송 설정에서 작동하기 때문에 SAM의 최상위 마스크와 데이터 주석 지침에 따른 마스크 사이에 체계적인 편향이 있을 수 있습니다.

따라서 우리는 ground truth("oracle")과 관련하여 최고의 마스크를 추가로 보고합니다.

그림 13: 데이터 엔진 단계, 이미지 인코더 스케일링 및 학습 데이터 스케일링에 대한 ablation 연구. (왼쪽) 각 데이터 엔진 단계는 23개의 데이터 세트를 개선하며, 자동 데이터(기본값)만을 사용한 학습은 세 단계의 데이터를 모두 사용하는 것과 유사한 결과를 산출합니다. (중간) SA-1B의 ~10%로 학습된 SAM과 완전한 SA-1B는 동등합니다. 우리는 기본적으로 모든 11M 이미지로 학습하지만, 1M 이미지를 사용하는 것이 합리적인 실용적인 설정입니다. (오른쪽) SAM의 이미지 인코더를 스케일링하면 의미는 있지만 포화 상태인 이득을 볼 수 있습니다. 그럼에도 불구하고 특정 설정에서는 더 작은 이미지 인코더를 선호할 수 있습니다.

그림 13(왼쪽)은 데이터 엔진 단계의 누적 데이터에 대해 학습했을 때 SAM의 성능을 보여줍니다.

우리는 각 단계가 mIoU를 증가시키는 것을 관찰합니다.

세 단계 모두로 학습할 때, 자동 마스크는 수동 및 반자동 마스크보다 훨씬 많습니다.

이를 해결하기 위해 학습 중 수동 및 반자동 마스크를 10배 초과 샘플링하면 최상의 결과를 얻을 수 있었습니다.

이 설정은 학습을 복잡하게 만듭니다.

따라서 자동으로 생성된 마스크만 사용하는 네 번째 설정을 테스트했습니다.

이 데이터를 사용할 경우 SAM은 모든 데이터(~0.5mIoU)를 사용하는 것보다 약간 낮은 성능을 발휘합니다.

따라서 기본적으로 자동으로 생성된 마스크만 사용하여 학습 설정을 단순화합니다.

 

그림 13(가운데)에서는 데이터 볼륨의 영향을 살펴봅니다.

전체 SA-1B에는 11M개의 이미지가 포함되어 있으며, 이 ablation을 위해 1M과 0.1M으로 균일하게 서브샘플링합니다.

0.1M 이미지에서 우리는 모든 설정에서 큰 mIoU 감소를 관찰합니다.

그러나 전체 데이터 세트의 약 10%인 1M 이미지를 사용하면 전체 데이터 세트를 사용하는 것과 비슷한 결과를 관찰합니다.

여전히 약 100M개의 마스크를 포함하는 이 데이터 체제는 많은 사용 사례에 실용적인 설정일 수 있습니다.

 

마지막으로 그림 13(오른쪽)은 ViT-B, ViT-L 및 ViT-H 이미지 인코더를 사용한 결과를 보여줍니다.

ViT-H는 ViT-B에 비해 상당히 개선되지만 ViT-L에 비해 약간의 이득만 얻을 뿐입니다.

추가 이미지 인코더 스케일링은 현재로서는 효과가 없는 것으로 보입니다.

 

 

8. Discussion

Foundation models.

사전 학습된 모델은 머신러닝 초기부터 다운스트림 작업에 적용되었습니다 [99].

이러한 패러다임은 규모에 대한 강조가 증가하면서 최근 들어 점점 더 중요해지고 있으며, 이러한 모델은 "규모에 맞게 광범위한 데이터에 대해 학습을 받고 광범위한 다운스트림 작업에 적응할 수 있는" 모델이라는 "foundation models"로 (재) 브랜드화되고 있습니다[8].

우리의 연구는 이미지 segmentation을 위한 기초 모델이 컴퓨터 비전의 중요하지만 부분적인 부분 집합을 나타내기 때문에 본질적으로 제한된 범위라는 것에 주목하지만, 이 정의와 잘 관련이 있습니다.

우리는 또한 기초 모델에서 self-supervised 학습의 역할을 강조하는 [8]과 접근 방식의 한 측면을 대조합니다.

우리 모델은 self-supervised 기법(MAE [47])으로 초기화되지만, 대부분의 기능은 대규모 supervised 학습에서 나옵니다.

데이터 엔진이 우리처럼 사용 가능한 주석을 확장할 수 있는 경우, supervised 학습은 효과적인 솔루션을 제공합니다.

 

Compositionality.

사전 학습된 모델은 학습 순간에 상상했던 것 이상의 새로운 기능을 제공할 수 있습니다.

한 가지 두드러진 예는 CLIP [82]가 DALL·E [83]와 같은 대형 시스템에서 구성요소로 사용되는 방법입니다.

우리의 목표는 SAM으로 이런 종류의 구성을 쉽게 만드는 것입니다.

우리는 SAM이 광범위한 segmentation prompts에 대한 유효한 마스크를 예측하도록 요구함으로써 이를 달성하는 것을 목표로 합니다.

그 결과 SAM과 다른 구성 요소 간에 신뢰할 수 있는 인터페이스를 생성할 수 있습니다.

예를 들어, MCC[106]는 SAM을 쉽게 사용하여 관심 있는 객체를 segment하고 단일 RGB-D 이미지에서 3D 재구성을 위해 보이지 않는 객체에 대한 강력한 일반화를 달성할 수 있습니다.

또 다른 예로, SAM은 웨어러블 기기에 의해 감지된 시선 지점으로 prompt를 표시하여 새로운 애플리케이션을 가능하게 할 수 있습니다.

자아 중심 이미지와 같은 새로운 도메인으로 일반화할 수 있는 SAM의 능력 덕분에 이러한 시스템은 추가 학습 없이 작동합니다.

 

Limitations.

SAM은 일반적으로 성능이 우수하지만 완벽하지는 않습니다.

미세한 구조를 놓칠 수 있고, 때때로 연결되지 않은 작은 구성 요소를 환각에 빠트릴 수 있으며, 계산 집약적인 방법(예: [18])만큼 빠르게 경계를 생성하지 않습니다.

일반적으로, 우리는 많은 포인트가 제공될 때, [67]과 같이 전용 상호작용형 segmentation 방법이 SAM을 능가할 것으로 예상합니다.

이러한 방법과 달리 SAM은 높은 IoU 상호작용형 segmentation보다는 일반성과 사용 범위를 위해 설계되었습니다.

또한 SAM은 실시간으로 prompt를 처리할 수 있지만 무거운 이미지 인코더를 사용할 경우 SAM의 전체 성능은 실시간이 아닙니다.

text-to-mask 작업에 대한 우리의 시도는 탐색적이며 완전히 강력하지는 않지만, 더 많은 노력으로 개선될 수 있다고 믿습니다.

SAM은 많은 작업을 수행할 수 있지만 semantic하고 panoptic segmentation을 구현하는 간단한 prompt를 설계하는 방법은 불분명합니다.

마지막으로, [7]과 같은 도메인별 도구가 있으며, 각 도메인에서 SAM을 능가할 것으로 예상됩니다.

 

Conclusion.

Segment Anything 프로젝트는 이미지 segmentation을 기초 모델 시대로 끌어올리기 위한 시도입니다.

우리의 주요 기여는 이러한 도약을 가능하게 하는 새로운 작업(promptable segmentation), 모델(SAM) 및 데이터 세트(SA-1B)입니다.

SAM이 기초 모델의 상태를 달성하는지 여부는 커뮤니티에서 어떻게 사용되는지 지켜봐야 하지만, 이 작업의 관점과 상관없이 1B개 이상의 마스크의 출시 및 promptable segmentation 모델이 앞으로 나아갈 길을 닦는 데 도움이 될 것입니다.

 

 

A. Segment Anything Model and Task Details

Image encoder.

일반적으로 이미지 인코더는 C×H×W 이미지 임베딩을 출력하는 모든 네트워크일 수 있습니다.

확장성과 강력한 사전 학습에 대한 액세스에 동기를 부여받아, 우리는 MAE [47] 사전 학습된 비전 트랜스포머(ViT) [33]를 사용하여 고해상도 입력을 처리합니다, 특히 [62]에 이어 14×14 윈도우 어텐션과 4개의 동일한 간격의 전역 어텐션 블록을 가진 ViT-H/16을 사용합니다.

이미지 인코더의 출력은 입력 이미지의 16배 다운스케일 임베딩입니다.

우리의 런타임 목표는 각 prompt를 실시간으로 처리하는 것이기 때문에, 우리는 prompt당이 아니라 이미지당 한 번만 계산되기 때문에 많은 수의 이미지 인코더 FLOP를 구입할 수 있습니다.

 

표준 관행(예: [40])에 따라 이미지의 크기를 조정하고 더 짧은 면을 패딩하여 얻은 1024×1024의 입력 해상도를 사용합니다.

따라서 이미지 임베딩은 64x64입니다.

채널 차원을 줄이기 위해 [62]에 이어 1×1 콘볼루션을 사용하여 256개 채널에 도달한 다음 3×3 콘볼루션을 사용합니다.

각 컨볼루션 다음에는 계층 정규화가 따릅니다 [4].

 

Prompt encoder.

희소 prompt는 다음과 같이 256차원 벡터 임베딩에 매핑됩니다.

점은 점 위치의 위치 인코딩 [95]과 점이 전경 또는 배경에 있는지 나타내는 두 가지 학습된 임베딩 중 하나의 합계로 표시됩니다.

상자는 임베딩 쌍으로 표시됩니다: (1) "top-left corner"를 나타내는 학습된 임베딩으로 요약된 top-left corner의 위치 인코딩과 (2) 동일한 구조이지만 "bottom-right corner"를 나타내는 학습된 임베딩을 사용합니다.

마지막으로 자유 형식 텍스트를 표현하기 위해 CLIP [82]의 텍스트 인코더를 사용합니다(일반적으로 모든 텍스트 인코더가 가능함).

우리는 이 섹션의 나머지 부분에 대한 기하학적 prompt에 초점을 맞추고 §D.5의 텍스트 prompt에 대해 자세히 논의합니다.

 

고밀도 prompt(즉, 마스크)는 이미지와 공간적으로 일치합니다.

우리는 입력 이미지보다 4배 낮은 해상도로 마스크를 입력한 다음 출력 채널 4와 16이 각각 있는 2×2, 스트라이드-2 컨볼루션을 사용하여 추가로 4배 축소합니다.

최종 1×1 컨볼루션은 채널 차원을 256으로 매핑합니다.

각 층은 GELU 활성화함수[50]와 layer 정규화에 의해 분리됩니다.

그런 다음 마스크 및 이미지 임베딩이 요소별로 추가됩니다.

마스크 prompt가 없는 경우 "no mask"를 나타내는 학습된 임베딩이 각 이미지 임베딩 위치에 추가됩니다.

그림 14: Lightweight 마스크 디코더 세부 정보. 2-레이어 디코더는 트로스 어텐션을 통해 이미지 임베딩과 prompt 토큰을 모두 업데이트합니다. 그런 다음 이미지 임베딩이 업스케일링되고, 여기서 업데이트된 출력 토큰이 마스크를 동적으로 예측하는 데 사용됩니다(그림 선명도를 위해 그림에 표시되지 않음: 모든 어텐션 레이어에서 위치 인코딩이 이미지 임베딩에 추가되고, 전체 원래 prompt 토큰(위치 인코딩 포함)이 토큰 쿼리 및 키에 다시 추가됩니다.)

Lightweight mask decoder.

이 모듈은 이미지 임베딩과 prompt 임베딩 세트를 출력 마스크에 효율적으로 매핑합니다.

이러한 입력을 결합하기 위해, 우리는 트랜스포머 segmentation 모델[14, 20]에서 영감을 얻어 표준 트랜스포머 디코더[103]를 수정합니다.

디코더를 적용하기 전에 먼저 [33]의 [class] 토큰과 유사하게 디코더의 출력에 사용될 학습된 출력 토큰 임베딩을 prompt 세트에 삽입합니다.

단순성을 위해 이러한 임베딩(이미지 임베딩 제외)을 총칭하여 "tokens"라고 합니다.

 

우리의 디코더 설계는 그림 14에 나와 있습니다.

각 디코더 계층은 4단계를 수행합니다: (1) 토큰에 대한 셀프 어텐션, (2) 토큰에서 이미지 임베딩으로의 크로스 어텐션, (3) 포인트별 MLP는 각 토큰을 업데이트하고, (4) 이미지 임베딩에서 토큰으로의 크로스 어텐션.

이 마지막 단계에서는 이미지 임베딩을 prompt 정보로 업데이트합니다.

크로스 어텐션 중에 이미지 임베딩은 642개의 256차원 벡터 세트로 처리됩니다.

각 셀프/크로스 어텐션 및 MLP는 학습에서 잔차 연결 [49], 레이어 정규화 및 0.1의 드랍아웃 [93]을 갖습니다.

다음 디코더 계층은 이전 계층에서 업데이트된 토큰과 업데이트된 이미지 임베딩을 가져옵니다.

우리는 2-레이어 디코더를 사용합니다.

 

디코더가 중요한 기하학적 정보에 액세스할 수 있도록 어텐션 레이어에 참여할 때마다 위치 인코딩이 이미지 임베딩에 추가됩니다.

또한 어텐션 레이어에 참여할 때마다 전체 원래 prompt 토큰(위치 인코딩 포함)이 업데이트된 토큰에 다시 추가됩니다.

이를 통해 prompt 토큰의 기하학적 위치와 유형 모두에 대한 강한 의존성을 허용합니다.

 

디코더를 실행한 후, 우리는 두 개의 전치된 컨볼루션 레이어로 업데이트된 이미지 임베딩을 4배 업샘플링합니다(지금은 입력 이미지에 비해 4배 다운스케일링됨).

그런 다음 토큰은 이미지 임베딩에 한 번 더 관여하고 업데이트된 출력 토큰 임베딩을 업스케일링된 이미지 임베딩의 채널 차원과 일치하는 벡터를 출력하는 작은 3-레이어 MLP로 전달합니다.

마지막으로, 우리는 상향 조정된 이미지 임베딩과 MLP의 출력 사이에 공간적으로 점별 내적이 있는 마스크를 예측합니다.

 

트랜스포머는 256개의 임베딩 차원을 사용합니다.

트랜스포머 MLP 블록은 내부 차원이 2048로 크지만 MLP는 상대적으로 적은(거의 20개를 초과하지 않음) prompt 토큰에만 적용됩니다.

그러나 64x64 이미지 임베딩이 있는 크로스 어텐션 레이어에서는 계산 효율성을 위해 쿼리, 키 및 값의 채널 차원을 2배에서 128로 줄입니다.

모든 어텐션 레이어는 8개의 헤드를 사용합니다.

 

출력 이미지 임베딩을 상향 조정하는 데 사용되는 전치 컨볼루션은 2×2, 64 및 32의 출력 채널 차원을 갖는 스트라이드 2이며 GELU 활성화함수가 있습니다.

레이어 정규화에 의해 분리됩니다.

 

Making the model ambiguity-aware.

설명한 것처럼 단일 입력 prompt는 유효한 여러 마스크에 해당한다는 점에서 모호할 수 있으며 모델은 이러한 마스크의 평균을 계산하는 방법을 배울 것입니다.

우리는 단일 마스크를 예측하는 대신 소수의 출력 토큰을 사용하고 여러 마스크를 동시에 예측하는 간단한 수정을 통해 이 문제를 제거합니다.

세 개의 레이어(전체, 부분 및 하위 부분)가 내포된 마스크를 설명하기에 충분하다는 것을 관찰했기 때문에 기본적으로 세 개의 마스크를 예측합니다.

학습 중에, 우리는 ground truth와 예측된 각 마스크 사이의 loss(짧은 시간에 설명됨)을 계산하지만, 가장 낮은 loss로부터만 역전파됩니다.

이는 여러 출력이 있는 모델에 사용되는 일반적인 기법입니다 [15, 45, 64].

애플리케이션에서 사용하기 위해 예측 마스크의 순위를 매기고 싶기 때문에 각 예측 마스크와 해당 마스크가 포함된 개체 사이의 IoU를 추정하는 작은 헤드(추가 출력 토큰에서 작동)를 추가합니다.

 

여러 prompt에서 모호성이 발생하는 경우는 훨씬 드물며 세 가지 출력 마스크가 일반적으로 표시됩니다.

학습에서 퇴화 loss 계산을 최소화하고 단일 모호하지 않은 마스크가 규칙적인 그래디언트 신호를 수신하도록 하기 위해, 우리는 두 개 이상의 prompt가 제공될 때 단일 마스크만 예측합니다.

이 작업은 추가 마스크 예측을 위해 네 번째 출력 토큰을 추가하여 수행됩니다.

이 네 번째 마스크는 단일 prompt에 대해 반환되지 않으며 여러 prompt에 대해 반환되는 유일한 마스크입니다.

 

Losses.

[20, 14]에 이어 초점 loss [65]와 주사위 loss [73]의 선형 조합으로 초점 loss 대 주사위 loss의 20:1 비율로 마스크 예측을 supervise합니다.

[20, 14]와 달리, 우리는 각 디코더 레이어 이후의 보조 심층 supervision이 도움이 되지 않는다는 것을 관찰합니다.

IoU 예측 헤드는 IoU 예측과 예측 마스크의 IoU 사이의 평균 제곱 오차 loss로 학습됩니다.

1.0의 일정한 스케일링 계수로 마스크 loss에 추가됩니다.

 

Training algorithm.

최근의 접근 방식[92, 37]에 따라, 우리는 학습 중에 상호작용형 segmentation 설정을 시뮬레이션합니다.

첫째, 동일한 확률로 타겟 마스크에 대해 전경 점 또는 바운딩 박스가 랜덤으로 선택됩니다.

점은 ground truth 마스크에서 균일하게 샘플링됩니다.

상자는 상자 측면 길이의 10%에 해당하는 표준 편차로 각 좌표에 랜덤 노이즈가 추가되어 최대 20픽셀이 됩니다.

이 노이즈 프로파일은 타겟 객체 주위에 엄격한 상자를 생성하는 인스턴스 segmentation과 사용자가 느슨한 상자를 그릴 수 있는 상호작용형 segmentation과 같은 애플리케이션 간의 합리적인 절충안입니다.

 

이 첫 번째 prompt에서 예측을 수행한 후, 이전 마스크 예측과 ground truth 마스크 사이의 오류 영역에서 후속 포인트가 균일하게 선택됩니다.

오류 영역이 각각 false negative 또는 false positive이면 각 새 점은 전경 또는 배경입니다.

또한 이전 반복의 마스크 예측을 모델에 대한 추가 prompt로 제공합니다.

다음 반복에 최대 정보를 제공하기 위해 이진화된 마스크 대신 임계값이 없는 마스크 로짓을 제공합니다.

마스크가 여러 개 반환되면 다음 반복으로 전달되어 다음 점을 샘플링하는 데 사용되는 마스크가 예측 IoU가 가장 높은 마스크입니다.

 

우리는 8개의 점을 반복적으로 샘플링한 후에 감소하는 수익을 발견했습니다(최대 16개까지 테스트했습니다).

또한 모델이 제공된 마스크의 이점을 누릴 수 있도록 추가 포인트가 샘플링되지 않는 두 번의 반복을 더 사용합니다.

이러한 반복 중 하나는 반복적으로 샘플링된 8개의 점 사이에 랜덤하게 삽입되고 다른 하나는 항상 끝에 있습니다.

이를 통해 총 11번의 반복이 가능합니다: 샘플링된 초기 입력 prompt 1개, 반복적으로 샘플링된 8개의 포인트, 모델에 새로운 외부 정보가 제공되지 않는 두 번의 반복을 통해 모델이 자체 마스크 예측을 정제하는 방법을 배울 수 있습니다.

우리는 경량 마스크 디코더가 이미지 인코더 계산의 1% 미만을 필요로 하기 때문에 비교적 많은 반복을 사용하는 것이 가능하며, 따라서 각 반복은 작은 오버헤드만 추가합니다.

이는 옵티마이저 업데이트당 하나 또는 몇 개의 상호작용형 단계만 수행하는 이전의 상호작용형 방법과는 다릅니다 [70, 9, 37, 92].

 

Training recipe.

AdamW [68] 옵티마이저(β1 = 0.9, β2 = 0.999)와 250회 반복 및 단계별 학습 속도 감소 스케줄에 대한 선형 학습 속도 워밍업 [42]을 사용합니다.

워밍업 후 초기 학습 속도(LR)는 8e^-4입니다.

우리는 90k 반복(~2 SA-1B 에폭)에 대해 학습하고 60k 반복과 86666 반복에서 lr을 10배까지 감소시킵니다.

배치 크기는 256개 이미지입니다.

SAM을 정규화하기 위해 가중치 감쇠(wd)를 0.1로 설정하고 0.4의 속도로 드롭 경로 [53](dp)를 적용합니다.

우리는 0.8의 계층별 학습 속도 감소[5] (ld)를 사용합니다.

데이터 확대가 적용되지 않습니다.

우리는 MAE [47] 사전 학습된 ViT-H에서 SAM을 초기화합니다.

우리는 큰 이미지 인코더와 1024x1024 입력 크기로 인해 256개의 GPU에 학습을 분산합니다.

GPU 메모리 사용을 제한하기 위해 GPU당 최대 64개의 랜덤 샘플링 마스크를 사용하여 학습합니다.

또한 SA-1B 마스크를 가볍게 필터링하여 이미지의 90% 이상을 차지하는 마스크를 폐기하면 결과가 질적으로 향상됩니다.

 

학습에 대한 ablation 및 기타 변형(예: text-to-mask §D.5)의 경우 위의 기본 레시피에서 다음과 같이 벗어납니다.

첫 번째와 두 번째 데이터 엔진 단계의 데이터로만 학습할 때, 우리는 [0.1, 2.0]의 스케일 범위를 가진 대규모 지터 [40]로 입력을 증가시킵니다.

직관적으로, 학습 데이터가 더 제한적일 때 데이터 확대가 도움이 될 수 있습니다.

ViT-B 및 ViT-L을 학습하기 위해 128개 GPU에 분산된 배치 크기 128로 180k 반복을 사용합니다.

ViT-B/L에 대해 각각 lr = 8e^-4/4e^-4, ld = 0.6/0.8, wd = 0.1, dp = 0.6/0.4를 설정했습니다.

 

 

B. Automatic Mask Generation Details

여기서는 공개된 SA-1B를 생성하는 데 사용된 데이터 엔진의 fully automatic 단계에 대한 자세한 내용을 설명합니다.

 

Cropping.

마스크는 전체 이미지에서 32x32 포인트의 정규 그리드에서 생성되었고, 16x16 및 8x8 정규 포인트 그리드를 사용하여 2x2 및 4x4 부분적으로 겹치는 창에서 발생한 20개의 추가 확대 이미지 크롭에서 생성되었습니다.

원래의 고해상도 이미지는 크롭에 사용되었습니다(이것이 유일하게 사용된 것입니다).

우리는 크롭의 내부 경계에 닿는 마스크를 제거했습니다.

표준 그리디 박스 기반 NMS(박스는 효율성을 위해 사용됨)를 2단계로 적용했습니다: 첫 번째는 각 크롭 내에서 그리고 두 번째는 크롭 전체에서. 

크롭 내에서 NMS를 적용할 때 모델의 예측 IoU를 사용하여 마스크 순위를 매겼습니다.

크롭 전반에 NMS를 적용할 때 소스 크롭을 기준으로 대부분의 줌인(예: 4×4 크롭)에서 최소 줌인(예: 원본 이미지)까지 마스크의 순위를 매겼습니다.

두 경우 모두 0.7의 NMS 임계값을 사용했습니다.

 

Filtering.

우리는 마스크 품질을 높이기 위해 세 가지 필터를 사용했습니다.

첫째, 신뢰할 수 있는 마스크만 유지하기 위해 88.0의 임계값에서 모델의 예측 IoU 점수로 필터링했습니다.

둘째, 안정적인 마스크만 유지하기 위해 동일한 기본 소프트 마스크에서 생성된 두 개의 이진 마스크를 서로 다른 값으로 임계값 처리하여 비교했습니다.

-1과 +1 임계값 마스크 쌍 사이의 IoU가 95.0 이상인 경우에만 예측(즉, 임계값 로짓에서 발생하는 이진 마스크)을 유지했습니다.

셋째, 자동 마스크가 이미지 전체를 가리는 경우가 있습니다.

이러한 마스크는 일반적으로 흥미롭지 않았으며 이미지의 95% 이상을 차지하는 마스크를 제거하여 필터링했습니다.

모든 필터링 임계값은 §5에 설명된 방법을 사용하여 전문 주석자에 의해 판단된 많은 수의 마스크와 높은 마스크 품질을 모두 달성하기 위해 선택되었습니다.

 

Postprocessing.

우리는 후처리로 쉽게 완화되는 두 가지 오류 유형을 관찰했습니다.

첫째, 마스크의 약 4%는 작고 가짜 구성요소를 포함합니다.

이 문제를 해결하기 위해 면적이 100픽셀 미만인 연결된 구성 요소를 제거했습니다(가장 큰 구성 요소가 이 임계값 미만인 경우 전체 마스크 제거 포함).

둘째, 마스크의 또 다른 추정 4%는 작고 가짜 구멍을 포함합니다.

이를 해결하기 위해 100픽셀 미만의 면적으로 구멍을 메웠습니다.

구멍은 반전 마스크의 구성 요소로 식별되었습니다.

 

Automatic mask generation model.

우리는 개선된 마스크 생성 속성을 위해 일부 추론 속도를 희생하는 완전 자동 마스크 생성을 위한 특수 버전의 SAM을 학습했습니다.

여기서는 기본 SAM과 데이터 생성에 사용되는 SAM의 차이점을 설명합니다: 수동 및 반자동 데이터에 대해서만 학습을 받았고, 대규모 지터 데이터 확대를 통해 더 긴 시간(90k 대신 656회 반복) 동안 학습을 받았습니다 [40], 시뮬레이션 상호작용형 학습은 포인트 및 마스크 prompt(상자 없음)만 사용하고 학습 중 마스크당 4개의 포인트만 샘플링했으며(기본값인 9~4개에서 감소하면 학습 반복 속도가 빨라지고 더 많은 포인트로 평가하면 mIoU에 해를 끼칠 수 있지만 1포인트 성능에는 영향을 미치지 않음), 마지막으로 마스크 디코더는 2개 대신 3개의 레이어를 사용했습니다.

 

SA-1B examples.

우리는 그림 2에 SA-1B 샘플을 보여줍니다.