1. Object Detection(물체 탐지)

원래의 이미지(Image)가 있을 때, Sematic segmentation은 물체의 종류만 구분할 수 있었고, Instance segmentation은 물체 각각을 구분지을 수 있다면, Panoptic segmentation은 이를 포함하여 뒤에 있는 배경까지 탐지를 하는 것이다.

Object Detection은 위처험 Classification과 Box localization을 동시에 추정하는 문제라고 볼 수 있다. 특정 Object를 위 사진 처럼 boundary box(빨간 사각형)안에 있는 카테고리까지 분류하는 것이다.
1.1 응용 분야
자율 주행(Autonomous driving)

글자 인식(Optical Character Recognition, OCR)

2. Two-stage detector
기존에는 Gradient-based-dectector와 같은 직관적인 알고리즘을 사용하였다고 한다.

(그림 a는 Image(그림 d)를 기반으로 하여 gradient 평균을 냈더니 실루엣(사람과 사람이 아닌 경계선)으로 나온 모습이다.)
feature를 사람이 정교하게 engineering을 하고, 학습가능한 부분은 간단한 Linear 모델을 사용한 방법을 사용한 것이다.
Selective Search라는 사람이나 특정물체 뿐만 아니라, 특정한 물체(Object) 후보군에서 영역을 특정해서 제안(propose)하는 방식

우선 Over-segmentation(영상을 잘개 쪼개는 것)을 하고, 이를 비슷한 것들끼리 다시 합쳐준다. 여기서, 비슷하다는 것은 특징, 분포, gradient가 비슷한 것을 말한다. 그렇게 합친 영역을 포함하는 boundary box를 추출하여 물체의 후보군으로써 사용하는 것이다.
2.1 R-CNN

주어진 Image가 있을 때(1번 그림), Selective Search와 같은 Object detection으로 2000개 이하의 region proposals를 뽑아낸다.(2번 그림) 그 다음, CNN의 input에 적절하게 Warping을 해준다. pre-training, fine-tuning된 CNN에 이를 넣는다.(3번 그림) 그런 다음 Classfication을 하는 것이다.
여기서 단점은 각각의 region propose를 할 때 마다 model에 넣어서 processing을 해야되기 때문에, 속도가 느리고, proposal은 기존에 있었던 Selective Search를 사용했기 때문에, 성능 향상에 한계가 있다.
이를 개선하고자 Fast R-CNN이 등장하였다.
2.2 Fast R-CNN
이 방법의 핵심은 영상 전체의 feature를 한번에 추출하고, 이를 재활용하여 여러 개의 Object를 detection하게 하는 것이다.

먼저, CNN에서 Convolution layer까지 Convolution feature map을 미리 추출한다. 이는 Tensor의 형태로 가질 것이다. Fully-Convolution한 네트워크는 입력 사이즈에 상관없이 추출할 수 있다는 성질을 갖고 있다. 따라서, 여기서부터는 입력 size를 굳이 warping 하지 않아도 된다. 그 다음으로는 RoI pooling인데, 이는 한 번 뽑아놓은 feature를 재활용하기 위한 layer이다. 여기서 RoI(Region of Interest)는 region proposal이 제시한 후보 물체를 의미한다. Bounding Box가 주어지게 되면 RoI에 해당하는 Feature를 추출하고, 고정된 일정 사이즈로 resampling을 한다. 이 때 사용하는 layer를 RoI pooling layer라고 한다. 이렇게 pooling한 feature를 클래스와 더 정밀한 boundary box를 추정하기 위해서 boundary box regression을 수행하고, classification(softmax)을 수행한다. 그 다음 FC layer들로 task를 해결한다. 위 처럼, feature를 재활용함으로써 기존 R-CNN에 비해 최대 18.3배 가량 성능이 향상되었음을 알 수 있다.
그러나, 여전히 Selective Search를 사용하였기 때문에 데이터만으로는 성능을 끌어올리기에 부족했다.
2.3 Faster R-CNN
기존의 Fast R-CNN의 region proposal을 개선한 것이다. 이는 모든 Neural Network로 구현한 최초의 Object Detection이 되었다.

IoU는 두 영역의 Overlap을 측정하는 기준을 제공한다. 이 수치가 높을 수록 두 영역이 자 정합된 것이다.

Anchor box는 각 위치에서 발생할 것 같은 특정한 후보군을 의미한다. 비율과 스케일이 다른 각 위치마다 정해놓고 쓰는 것이다. 가장 align이 잘된 것이 하나가 있으면, 이것의 IoU가 0.7을 넘을 때 positive에 해당되고, 나머지는 negative에 해당되는 것이다. 이러한, negative들에 loss를 줘서 학습을 하는 것이다. 즉, 학습데이터에 어떻게 loss를 적용할 지 정하는 기준이다.

기존과 달라진 점은 Region Proposal을 selective search에서 Region Proposal Network(RPN)을 사용했다는 점이다. Fast R-CNN과 마찬가지로 feature map을 미리 추출한다. 여기서, 여러개의 proposal을 만들고, 이를 RoI pooling을 한다. 그 다음 Classfication과 boundary regression을 수행한다.
'BoostCamp AI Tech - U Stage' 카테고리의 다른 글
| [Week 8]BoostCamp AI Tech - Day36(모델경량화) (0) | 2021.03.16 |
|---|---|
| [Week 8]BoostCamp AI Tech - Day35(모델경량화) (0) | 2021.03.15 |
| BoostCamp AI Tech - Day31 (0) | 2021.03.09 |
| BoostCamp AI Tech - Day30 (0) | 2021.03.09 |
| BoostCamp AI Tech - Day28 (0) | 2021.03.04 |
댓글