본문 바로가기
AI/CS231n Lectures

[CS231n] 11. Detection and Segmentation

by 쵸빙 2020. 2. 16.

     이번 시간에는 이미지에서 딥러닝을 사용한 Detection & Segmentation을 알아보도록 하겠다.

 

YOLO & SSD

      YOLO와 SSD의 공통점을 알아보도록 하겠다. 

거의 같은 시기에 나왔고, 모두 feed forward를 오로지 한 방향으로 수행하는 네트워크들이다.

주요 아이디어는 각 Task를 따로 계산하지 말고 하나의 regression 문제로 풀어보자는 것이다.

거대한 CNN을 통과하면 모든 것을 담은 예측값이 한 번에 나오는 형태이다.

 

     먼저, 입력 이미지가 있으면 이미지를 7x7 grid같이 큼지막하게 나눈다. 각 grid cell 내부에는 base Bounding Box가 존재할 것이고, 위의 예시의 경우에는 길쭉한 모양, 넓찍한 모양, 정사각형으로 3가지이다. 실제로는 3개 이상을 사용한다고 한다. 이제는 이 각 grid cell에 대해서 BBox들이 있고 이를 기반으로 예측을 수행한다. 

 

     우선 하나는 BBox의 offset을 예측하는데, 이것은 실제 위치가 되려면 base BBox를 얼마만큼 옮겨야하는지를 뜻한다. 그런 뒤 각 BBox에 대해서 Classification scores를 계산하는데 이것은 이 BBox 안에 이 카테고리에 속한 객체가 존재할 가능성을 뜻한다. 네트워크에 입력 이미지가 들어오면 7x7 grid마다 (5B + C)개의 tensor를 가진다.

여기에서 B는 base BBox의 offset(4개)confidence score(1개)로 구성된다. CC개의 카테고리에 대한 Classification Score이다.

 

     네트워크의 입력은 이미지이고, 출력은 3-dim tensor가 된다. 그리고 이를 거대한 CNN으로 한 번에 학습시킨다.

이러한 YOLO와 SSD는 single shot method이고, 후보 base BBox들과 GT Object를 매칭시키는 방법이다.

이것은 Faster R-CNN에서 쓰는 RPN과 유사하다. 결국 둘 다 regression + classification 문제를 푸는 것이다. 

 

 

     R-CNN 계열, Single Shot 계열이라고 나눠도 겹치는 아이디어들이 있다.

Faster R-CNN은 RPN으로 먼저 regression 문제를 풀고 ROI 단위로 Classification을 하는 방식이다.

반면 Single Shot Method는 단 한 번의 forward pass만으로 끝낸다.

 

 

Object Detection

     Object Detection 문제에는 아주 다양한 요소들이 있다. 예를 들어, VGG, ResNet 등 다양한 base network들을 적용해볼 수도 있다. 그리고 다양한 아키텍처를 선택할 수 있다. 여러 대분류(metastrategies)가 있다.

Faster R-CNN과 같은 Region을 기반으로 한 방법들도 있고, Single Shot Detection 기반의 방법들도 있었다. 

R-FCN은 이 두 가지의 중간에 위치한다.

또한, 이미지 크기를 몇으로 할지, region proposal을 몇 개로 할지 등 다양한 하이퍼파라미터들도 있다.

Faster R-CNN 계열의 region based method는 정확도가 높긴 하지만 single shot method들보다는 속도가 느린데, single shot method들은 ROI당 별도의 연산을 요구하지 않기 때문이다. 

'AI > CS231n Lectures' 카테고리의 다른 글

[CS231n] 2. Image Classification  (0) 2020.01.31
[CS231n] 1. Introduction to Convolutional Neural Network  (0) 2020.01.29