SAM의 논문인 Segment Anything 의 간단한 리뷰를 진행합니다.
직접 설명하지는 않지만, 소스 코드는( facebookresearch/segment-anything )입니다.
개요
논문의 첫 이미지는 바로 SAM의 개념을 나타냅니다. 아래 그림의 (b)를 보면 이미지 이외에 프롬프트를 입력하고 있습니다. 그리고 각각의 정보를 엔코더로 해석하고, 디코더로 섞어서 유효한 세그멘테이션 마스크를 출력하고 있습니다. 이러한 설계는 (a)와 같이 다양한 프롬프트에 대하여, 세그먼테이션 태스크(세분화 작업)를 추가 학습 없이 실행 가능하게 합니다.
또한 ZeroShot 성능을 향상하기 위해, 대량의 데이터에 의한 훈련이 필요하기 때문에 아래 그림(c)과 같이 훈련 및 어노테이션의 반복에 의해 10억을 넘는 마스크를 포함한 SA-1B데이터 세트를 구축하고 있습니다.
Segment Anything 에서 데이터 세트를 다운로드할 수 있습니다.
SAM에 대하여
임의 세분화에 대한 프롬프트를 입력한 후에는 유효한 세그멘테이션 마스크를 반환하는 것이 모델의 목표입니다. 프롬프트는 이미지 내에서 무엇을 세그먼테이션 할 것인지를 지정하는 것으로, 예를 들어 세그멘테이션 대상을 특정하는 공간 정보나 텍스트 정보 등이 그에 해당합니다.
출력 마스크의 요구 사항으로서, 프롬프트가 모호하고 여러 객체를 대상으로 할 수 있는 경우의 출력은 이러한 객체 중 적어도 하나의 마스크여야 합니다. 예를 들어, 셔츠를 가리키는 전경점(프롬프트로서 전경(前景) 부분에 점을 찍는다)은 셔츠 또는 그것을 착용한 사람을 나타내는 것으로 간주됩니다.
이 요구 사항을 포함한 모델 SAM은 다음과 같은 구조입니다. Prompt Encoder가 점이나 박스, 텍스트 등 희소한 입력을 받아들이는 부분과 조밀한 마스크 정보를 받아들이는 부분으로 나뉘어 있는 점이 재미있습니다. 또한 위와 같이 모호성의 과제가 있기 때문에 3개의 마스크 출력을 실시하도록 고안하고 있습니다(3개면 대부분의 케이스에 대응 가능하다는 것).
23개의 세그멘테이션 데이터 세트에 대해, 아래 그림(Figure 3)과 같이, 하나의 전경점(프롬프트로서 전경(前景) 부분에 점을 찍는다)으로부터 고품질의 마스크를 생성했을 경우, 수작업으로 하는 주석의 GT보다 약간 아래 정도라는 것입니다.
프롬프트 엔지니어링으로 다양한 작업 수행
Edge Deteection, Instant Segmentatino, Text to Mask 등 다양한 다운스트림 작업에서 프롬프트 엔지니어링을 수행하여 좋은 성능을 얻습니다.
각 작업을 간략하게 설명하면,
Edge Detection은 아래 그림(Figure 10의 일부분)과 같이 모서리를 감지하는 작업으로, 16 x 16 격자 모양으로 배열된 전경점에 대해 SAM에서 마스크를 예측하고 출력된 768(16 x 16 x 3) 개의 마스크에 대해서, NMS에 의한 필터링이나 소벨 필터(Sobel filter)에 의한 엣지 강조 등을 실시해 에지 화상을 작성하고 있습니다.
프롬프트의 확장과 생성된 마스크의 후처리를 잘함으로써 다양한 태스크에 적응시킬 수 있게 됩니다.
인스턴스 세그멘테이션은 ViTDet 등의 물체 검출 모델의 출력인 BBox를 프롬프트로서 입력하는 것으로 실행 가능합니다.
또한, 아래 그림(Figure 12의 일부분)과 같이, 텍스트를 이용한 마스크의 생성은 CLIP의 텍스트 인코더의 출력을 텍스트 프롬프트로서 입력하는 것으로 마스크를 생성할 수 있습니다. CLIP의 이미지 임베딩은 텍스트 임베디드와 일치하도록 학습되고 있기 때문에 학습 중에는 이미지 임베딩을 사용하고 추론 시 텍스트 임베딩을 사용하는 등의 방법을 이용하고 있다고 합니다.
요약
SAM의 성능이 생각했던 것 이상으로 좋기 때문에, 세그멘테이션 태스크를 시험할 때에, 우선 시도해 볼 기법의 후보 든다고 생각됩니다. 프롬프트 엔지니어링을 고안하면 심지어 도메인에 특화된 것이 될 수 있다는 기대감도 있습니다. 이것을, FineTuning이라든지 할 수 있으면, 꽤 재미있을 것 같아, 시험해 보고 싶습니다.
관련글
Meta가 사진에 찍힌 물체를 분리하는 AI 모델 'Segment Anything Model' 공개
'AI · 인공지능 > AI 칼럼' 카테고리의 다른 글
OpenAI의 Sora에 사용된 기술 간단 리뷰 (55) | 2024.04.14 |
---|---|
문과도 도전? 비즈니스 관점에서 본 프롬프트 엔지니어링 요약 (2) | 2023.08.01 |
AI 기업의 엔지니어가 대규모 언어 모델과 RLHF를 알기 쉽게 해설 (3) | 2023.06.27 |
ChatGPT를 사용하여 10년 만에 백만장자가 되는 공식, 「기업가로서의 청사진」 (6) | 2023.06.14 |
GPT-4 총평 : 성능, 응용 사례, 안전 대책 및 리스크를 전망 (0) | 2023.03.24 |
ChatGPT와 Stable Diffusion을 낳은「기계 학습 소프트웨어」의 10년간의 흐름을 전문가가 해설 (0) | 2023.01.18 |
이미지 생성 AI는 크리에이터 이코노미를 증강할 것인가, 아니면 파멸시킬 것인가? (0) | 2023.01.11 |
「Data-centric AI Resource Hub」가 밝히는 데이터 정비 노하우 (0) | 2022.09.03 |