2021 네이버 부스트캠프 - Ai tech

Week_6 CV - Object Detection

미미수 2021. 9. 14. 00:49

Object Detection은 CV분야에서도 여러 기업이 확보하고자 하는 중요한 기술이다.

 

지난 시간에 배웠던 semantic segmentation의 연장선이라고 볼 수 있다.

 

위 그림에서 semantic segmentation과 Instance segmentation/Panoptic segmentation의 차이는 무엇일까?

-> 바로 객체하나하나를 분리해서 생각한다는 점이다. 사람들이 사람1, 사람2, 사람3...이 되고, 자동차도 자동차1, 2.. 의 개별적인 객체로 나뉘어진다.

이 기술의 근본은 바로 Object Detection, 객체 탐지이다. 

 

Object Detection 이란?

 

간단하게 말하면 Classification + Bounding Box이다. 

어떤 물체가 몇개인지 어디에 있는지를 전부 파악하는 문제이다. (생각보다 까다롭다는 뜻)

 

 

Object Detection은 크게 두가지 갈래로 나뉜다.

Two-stage VS. Single-stage

 

 

1. Two-stage Detector

Two-stage detector를 이해하기 위해서 Selective Search의 개념을 먼저 알아보자.

왼쪽부터 a,b,c

: 다양한 물체의 후보군에 대해서 영역을 특정화 시키는것. Box-Proposal이라고도 부름.

 

a. 이미지를 잘게잘게 분할한다.

b. 비슷한것끼리 합친다. (기준은 색, gradient등 정하기 나름)

c. 더 큰 뭉텅이로 합친 후, 그 뭉텅이를 포함하는 박스를 추린다.

 

이렇게 해서 물체가 있을법한 박스들을 추려낸다.

 

 

 

R-CNN

 

 

RCNN은 input 이미지에 대해 selective search를 통해 ~2000개의 박스를 추려낸다. 이 과정을 Region Proposal이라고 한다.

구해진 n개의 박스들에 개해 224x224사이즈로 warp(resize)한 뒤, CNN 네트워크에 넣어 Classification하는 고전적 방법이다.

 

단점 : 각각 Region Proposal마다 warp and compute해야 하기 때문에 시간이 ↑↑↑↑ 많이 든다.

 

 

Fast R-CNN

 

Fast RCNN은 더 업그레이드 된 버전으로 영상 전체에 대한 feature를 한번에 추출한 후에 재활용하는 방식으로 진행된다.

( CNN 네트워크에 이미지는 결과적으로 한번만 통과되는것. input image 사이즈도 상관없음. CNN이니까)

 

Channel x Width x Height의 사이즈를 갖는 Tensor(3D)에서 ROI(물체가 있을법한 위치)를 추출한다 = ROI Pooling

 

마지막으로 각각의 ROI에 대해서 class and box prediction을 진행한다.

class 는 왼쪽 상단의 softmax 함수를 통해 구해지고, 

box는 왼쪽 상단의 bbox regressor를 통해 구해진다.

 

단점 : 여전히 Region Proposal은 selective search를 사용한다. (ROI추출)

인간이 손으로 짠 알고리즘이기 때문에 성능적인 한계가 뚜렷하다.

 

 

 

Faster R-CNN

그렇게 해서 나온게 Faster RCNN이다. Region Proposal단계를 Neural Net 기반으로 대체한다.

 

Anchor Box라고 하는 미리 정한 rough한 후보군을 만들어논다. 각각 사이즈와 모양이 다르다.

 

 

 

2. Single-stage Detector

 

sigle stage detector는 정확도를 조금 포기하면서 속도를 확보하는 방법이다. 

이렇게 함으로써 real-time을 확보할 수 있어진다.

 

 

 

YOLO

'2021 네이버 부스트캠프 - Ai tech' 카테고리의 다른 글

Week_7 CV-Autograd  (0) 2021.09.16
Week_6 CV-Focal Loss  (0) 2021.09.14
Week_6 Knowledge Distilation  (0) 2021.09.10
Week_3 Pytorch - Out of Memory, OOM 해결  (0) 2021.08.20
Week_3 Pytorch - Dataset & Dataloader  (0) 2021.08.20