ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SAM - Segment Anything Model
    Computer Vision & AI/Computer Vision 2023. 10. 17. 21:13

    모두연 - 모두팝 세미나에서 했던 SAM 강의를 바탕으로 정리한 글입니다.

     

     

    SAM

    segment anything model

     

     

     

    올해 4월 Meta에서 출시한 segment anything

    객체 하나뿐만 아니라 한번에 많은 객체를 segment 함.

     

     

     

    Motivation

    LLM은 사실 다음 단어를 예측하는 것인데

    마치 대화하는 것처럼 보여진다.

     

     

    Foundation Model

    downstream task에 대해 높은 zero-shot generalization성능을 보이는 모델

     

    트랜스포머 모델 이후 모델을 깊게 쌓아서 다음 단어를 예측하는 task를 잘 해결했다

     

     

     

    segmentation을 잘 하기 위해서는 어떤 task가 정의되어야 할까?

    → 이미지와 어떤 prompt가 주어졌을 때 유효한 mask를 반환하는 것

    → 여기서 말하는 prompt는 이미지에서 분할할 대상을 지정하는 것. Points, b-box, mask 심지어는 text가 될 수도 있다.

     

     

    유효한 mask?

    → 모호한 prompt가 주어졌을 때에도 합리적인 mask를 출력해야 함

    next token prediction task는 웹상에서 텍스트 데이터를 대규모로 얻을 수 있음.

    promptable segmentation task학습을 위한 segmentation mask는 구하기 어려움 → 직접 만들었다.

     

    1. Assisted-manual stage
      1. 이미 공개된 데이터셋을 이용해 SAM을 초기 학습
      2. 초기 학습된 SAM으로 데이터 생성하고 그것으로 점진적 모델 학습 진행
    2. semi-automation stage
      1. mask 종류를 다양화 하기 위해 (보통 가운데 크게 object가 있음)
      2. 외부적인 object를 작업
    3. fully automatic stage
      1. 완전 자동화 된 annotation 단계
      2. 32x32 regular grid point를 입력하여 mask 획득
      3. IoU값이 높은 mask만 남김
      4. 중복된 mask제거 등 후처리 작업 수행

    최종 1.1B mask를 취득

     

     

     

     

     

    목표

    1. promptable segmentation task
    2. 실시간 가능한 속도
    • 유연한 prompt지원
    • prompt의 모호함에 대한 대처
    • mask를 real-time으로 연산

    Model

    • 강력한 Image encoder가 image embedding을 계산
    • Prompt encoder가 prompt embedding을 계산
    • 두 embedding정보를 가지고 계산

     

     

     

    Applications: Everything

    한번만 누르면 모든 객체가 segment됨

    여러번 추론을 함..

    threshold로 후처리를 함

    각 mask의 hole과 island를 제거

    F12를 눌러 보면 이미 everything을 하기 전부터 이미 mask정보가 있다.

     

     

     

     

    사용 예시

    with CLIP

    prompt를 입력해주면 거기에 맞는 mask만 남김

     

     

    Grounding DINO와 결합

    text들을 넣으면 모든 것을 segment

     

     

    inpaint anything

     

     

    SAM-Track

    첫번째 프레임의 segmentation수행

    DeAOT 로 다음 frame 의 Mask를 예측

     

     

     

     

     

    gradio를 이용해서 웹에서 애플리케이션 가능

    Gradio는 간단하게 사용할 수 있는 웹 기반 인터페이스를 통해 머신러닝 모델을 시각화하고 공유할 수 있도록 도와주는 오픈 소스 라이브러리입니다. Gradio를 사용하면 기계 학습 모델을 웹 애플리케이션으로 변환할 수 있으며, 이를 통해 모델의 입력 및 출력을 시각적으로 표현하고 모델을 사용하는 사용자와 상호작용할 수 있습니다.

     

     

    🔽 실습으로 segment 결과

     

    댓글

Designed by Tistory.