[Yolact] Real-time Instance Segmentation

lena_log·2023년 2월 2일
0

PapersRiveiw

목록 보기
9/9
post-thumbnail

Yolact

one stage & two stage

원스테이지 모델

  • region proposal 건너띔
  • 한번에 클래스와 비박스를 찾음
  • 빠르기 때문에 실시간 디텍팅에 사용
  • 투스테이지 모델보다 퍼포먼스 낮음

투스테이지 모델

  • rpn(피쳐맵 입력 받아서 bbox계산후 정렬하고 iou높은거 놔두고 낮은건 지움)을 거친 후 나온 roi에서 객체의 위치를 찾음
  • roi를 가지고 bbox 리그레션을 베이스로 분류를 진행함
  • 순차적으로 진행해야해서 느리지만 좋은 퍼포먼스를 보임

욜랙 나온 배경

  • 이전의 모델들을 봤을때 다시 풀링에 집어 넣는 경우들이 있거나 연산량이 많아 속도 개선이 필요함

목표

  • 가볍고 빠르다
  • 원스테이지 백본 디텍터
  • 풀링으로 인해 퀄리티 로스없이 고품질 마스크를 얻음
  • 실시간 인스턴스 세그멘테이션

overview

  • 원스테이지로 실시간 인스턴스 세그멘테이션 모델
  • 병렬적인 2개의 테스크
  • 하나는 프로토 타입을 생성하는 단계, 다른 하나는 인스턴스 별로 mask coefficients를 생성하는 단계

Prototyope generation

  • 전체의 이미지를 활용하여 protonet에서 k개의 prototype 마스크를 예측함
  • 투스테이지에서 로컬라이즈 하기위해 사용했던 패딩이나 roi 풀링 과정없이 protonet 에서는 피쳐맵을 로컬라이즈 할 수 있도록 모델을 학습 시킴

protonet 장점

  • FPN에 있는 가장 깊은 핏쳐(C3~5의 정보가 P3 피쳐맵에 반영)를 사용한 protonet은 고해상도 prototype과 견고한 마스크를 만들어냄⇒ 작은 객체에 좋은 성능을 낸다는 것
  • 결과값의 경계가 없다⇒ 액티베이션을 얼마나 할지 제한하지 않는다

mask coefficients & assembly

  • 5개의 핏쳐맵을 받아서 3개의 브랜치로 나눠주는 과정

box branch

  • 물체가 위치한 정확한 리젼을 구하는 부분
  • 바운딩 박스 4개의 포인트를 예측함

class branch

  • n개의 클래스가 있다면 어떤 클래스에 속한건지 예측을 구하는 부분
  • 각각의 픽셀별로 3개의 앵커박스를 가짐

coefficient branch

  • prototype 단계에서 생성된 마스크 k개의 coefficients를 예측하는 단계
  • 한가지의 인스턴스를 로컬라이즈 하기 위해서 욜렉에 추가된 부분

assembly

  • k개의 프로토타입을 생성 한것을 가지고 빼고 더하는 연산을 통해 한개의 인스턴스를 활성화하여 하나의 로컬라이즈된 인스턴스를 구할 수 있음

  • 파이널 마스크를 가지고 크롭하고 threshold과정을 거쳐서 결과를 내줌

Fast NMS

  • 앵커박스들 중에서 컨피던스가 가장 높은것만 남기고 낮은건 지우는 것
  • 총 한가지의 앵커박스만 추출해내는 것

출처: https://www.youtube.com/watch?v=2i56S0tNUj8

profile
안녕하세요. 기억보다 기록을 믿는 레나입니다!

0개의 댓글