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의 개념을 먼저 알아보자.
: 다양한 물체의 후보군에 대해서 영역을 특정화 시키는것. 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 |