[논문링크]
https://arxiv.org/pdf/2304.02643
[참고영상]
https://www.youtube.com/watch?v=gSUpUiqXB6c
무엇이든 누끼따는✂️ AI! Segment Anything Model 리뷰
들어가며 📄 Segment Anything Model 논문 🧑💻 Segment Anything Model github ▶️ 리뷰 영상 하나의 모델이 다양한 Computer Vision task를 수행할 수 있다면 어떨까요? 일일이 테스크 별로 모델을 만들 필요가
blog.firstpenguine.school
[간단 용어 정리]
- zero-shot learning : 모델이 사전에 작업하지 않은 새로운 작업이나 개념에 대해 추가적인 학습 없이 올바른 결과를 예측하는 능력, 즉 prompt만 보고 새로운 데이터나 작업을 이해하는 방식
- few-shot learning : 모델이 새로운 작업을 수행할 대, 소량의 예제(shot)을 보고 일반화
- promptable model : 사용자가 입력하는 prompt (지시문)을 통해 특정한 작업을 수행할 수 있는 모델, 별도의 fine-tuning없이 적절한 prompt를 입력하면 다양한 작업을 수행할 수 있음 (GPT)
> 요청 prompt를 입력하면, 새로운 데이터에서도 작업을 수행할 수 있는 모델
- prompt : 어떤 task에 대한 guide를 제공하는 역할
어떤 TASK로 모델을 학습시켜야 GPT처럼 General한 vision 모델을 만들 수 있을까?
동기 : 기존 NLP와 컴퓨터 비전 분야에서 foundation models은 zero-shot, few-shot learning을 통해 새로운 데이터셋과 작업을 수행하는 것이 가능
제안 : 주어진 prompt에 따라 유효한 segmentation mask를 반환하는 것이 목표
제안-요구사항 : prompt가 애매하게 여러 객체를 가리킬 경우, 최소 하나의 객체에 대해 합리적인 분할이 이루어져야 함
> NLP처럼 prompt 사용, prompt = "어떤 객체를 분할할지?"
이 Task를 잘 수행하면서도 General하려면 어떤 모델 구조여야 할까?
설계 요구사항1 : Flexible prompts
다양한 방식의 입력을 처리 가능해야 함
설계 요구사항2 : Real-Time Computation
상호작용이 가능할 정도로 빠르게 분할해야 함
설계 요구사항3 : Ambiguity-Awareness
동일한 prompt가 여러 개체를 의미할 경우, 이를 다룰 수 있어야 함
구성 요소 : Image Encoder + Prompt Encoder + Mask Decoder
(입력 이미지을 처리하여 Image Embeddinng 생성 >> 사용자 입력 prmopt embedding하여 image 정보와 결합 >> 두 정보를 결합하여 Segmentation Mask 생성)
이 모델을 학습시키려면 어떤 데이터가 필요할까?
동기 : SAM은 강력한 generalization을 위해 대규모이고 다양한 masked Datstet이 필요
하지만, segmentation mask는 자연적으로 존재하지 않아 대체 전략 필요 (크롤링으로 한계 존재)
결론 : SAM을 학습시키면서 "동시에 데이터셋을 생성하는" 모델, Model-in-the-loop 방식을 활용 (수작업+AI )
Engine 구성 1: Assisted-Manual 단계
SAM이 어노테이터(데이터 라벨링 작업자)를 도와 마스크를 주석(annotate)하도록 지원
Engine 구성 2: Semi-Automatic 단계
SAM이 일부 객체의 마스크를 자동 생성하면, 어노테이터는 남은 객체만 추가로 어노테이션하는 방식
Engine 구성 3: Fully Automatic 단계
SAM이 이미지의 foreground 영역에 grid 형태의 포인트를 prompt로 입력받아 자동으로 mask 생성, 평균적으로 한 이미지당 약 100개의 high quality mask 생성
SAM 모델을 학습하기 위해 구축한 최종 데이터 셋 : SA-1B
11M개, licensed, privacy-preserving imgage + 10억개 이상의 segmentation masks 포함
특징 : Fully Automatic된 data engine을 통해 수집됨 > 기존 segmentation dataset보다 400배 많은 mask + 기존 mask보다 고품질
SAM 모델과 다른 모델을 이용해서 한 과정들.
SAM의 추가 기능
- 모호성 해결 (Resolving Ambiguity)
: SAM은 prompt가 모호한 경우를 해결하기 위해, output이 3개의 mask를 예측하도록 설계됨
학습 과정에서 가장 낮은 loss만 backpropagation하여 최적화
예측된 mask마다 confidence score (예상 IoU)를 계산해서 순위를 매김
- 연산 효율성 (Efficiency)
- Losses and Training