CV 모델 구조

1. Backbone의 의미

1.1 Visual Feature란?

컴퓨터 비전의 task를 해결할 때 필요한 이미지의 특성을 담고 있는 정보들을 지칭

ex. 코끼리의 특징?
코가 길다. 귀가 크다. 회색 피부, 상아 등등

사람은 직관적으로 이해할 수 있지만, 컴퓨터는 숫자가 아니기에 이를 이해하기 어렵다.

1.2 Backbone의 역할

이미지에서 중요한 feature를 추출(extract)할 수 있도록 훈련되어있는 역할 수행

주어진 비전 task를 잘 수행할 수 있는 압축된 visual feature를 산출하는 것

1.3 Backbone의 구조

  • Layer : input 이미지에서 feature(point, edge, shape) 를 추출하기 위한 연산을 하는 층
    Backbone은 여러 개의 layer로 이루어져있고, 이를 통해 다양한 level의 feature를 추출할 수 있음

2. 모델의 구성

2.1 Decoder의 역할

압축된 feature를 목표로하는 task의 출력 형태로 만드는 과정을 수행한다.

ex. 이미지 $\rightarrow$ backbone $\rightarrow$ (task) Decoder $\rightarrow$ output

모델의 전체 구조

input 이미지 $\rightarrow$ backbone $\rightarrow$ (task) Decoder $\rightarrow$ output

Task에 따른 Decoder의 결과

  • Classification
    n개의 클래스 중 어느 클래스에 가까운지 점수 or 확률을 출력하는 역할이다.

Decoder는 Fully Connected Layer와 softmax로 이루어져있다.

Softmax는 입력 받은 값을 모두 [0,1] 범위의 실수로 변환한다. 이 실수의 합은 1이므로, 각 class의 확률을 의미한다고 해석할 수 있다.

  • Detection
    n개의 클래스 중 어느 클래스에 가까운지 확인하면서, 그 객체의 위치를 출력하는 역할
  • Segmentation
    n개의 클래스마다, 어떤 클래스에 해당하는 영역을 픽셀단위로 출력해주는 역할

Backbone : input image에서 유의미한 feature를 추출한 뒤 압축하는 역할
$\therefore$ task의 종류가 달라도 동일한 backbone을 사용할 수는 있음

Decoder : 최종 결과를 출력해주는 역할
vision task가 바뀌면 올바른 형태로 결과를 산출할 수 있도록 decoder 구조를 변경해야한다.

2.2 Encoder의 역할

backbone 이후에 encoder를 도입해서 feature와 image patch들 사이의 관계를 학습한다.