Logical Scribbles
[객체 탐지] 2-Stage Dectector 와 1-Stage Detector 본문
이번 포스팅에서는 객체 탐지 논문을 읽다보면 많이 등장하는 2 stage detector와 1 stage detector에 대해 알아보자.
2 stage detector와 1 stage detector의 가장 큰 차이는 용어 그대로 단계에 있다. 2 stage detector 모델들은 Region Proposal 과정을 진행한 이후에 classification을 진행하기 때문에 두 단계를 통해 객체 탐지를 진행하고, 1 stage detector 모델들은 이들을 한단계로 묶어 진행한다.
먼저 Region Proposal이 무엇인지 살펴보자.
Region Proposal
기존에는 이미지의 객체 탐지를 위해 'Sliding Window' 방식을 이용했었다.
Sliding Window 방식은 이미지에서 모든 영역을 다양한 크기의 window (differenct scale & ratio)로 탐색하는 것이다.
이 방식의 알고리즘은 다음과 같다.
- 윈도우 크기를 결정한다.
- 윈도우를 데이터의 첫 부분에 위치시킨다.
- 윈도우 내의 데이터를 처리한다.
- 윈도우를 오른쪽으로 sliding 시킨다.
- 윈도우가 데이터의 끝에 도달할 때까지 3-4 단계를 반복한다.
이 과정을 GIF로 확인해보자.
직관적으로 이해하기 쉬울 것이다.
구체적인 과정은 다음과 같다.
'자동차' 라는 객체를 탐지하고 싶을 때, 위와 같은 Training set을 만들어둔다. Training set에는 정답 라벨도 포함 되어있다. 이 training set으로 CNN을 학습시킨다. 이후, 자동차를 포함한 사진에 대해 sliding window 기법을 적용해준다.
이제 윈도우가 움직임에 따라 자동차를 탐지했으면 아웃풋이 1에 가깝게 나올 것이고, 자동차가 아니라고 판단하면 아웃풋은 0에 가깝게 나올 것이다. 이러한 윈도우에 따라 객체를 탐지할 수 있는 것이다. 이후 윈도우의 ratio나 size를 변경하여 학습을 여러번 진행하면, 다양한 윈도우에 따라서도 자동차 탐지를 해낼 수 있다.
그러면 이 'Window Sliding' 방식의 단점은 무엇일까?
이 방식은 여러개의 윈도우 사이즈, 그리고 이미지 사이즈를 이용하여 찾아야 다양한 크기의 객체를 찾을 수 있어 모든 경우를 따져야 하므로 수행시간도 오래 걸리고, 생각보다 적절한 검출이 어렵다.
이러한 시간과 계산의 비효율성을 개선하기 위해 '물체가 있을법한' 영역을 빠르게 찾아내는 알고리즘이 region proposal이다. Region proposal 방식으로는 Selective search, Edge boxes들이 있다.
즉, regional proposal은 객체의 위치를 찾는 localization문제이다.
따라서 2 stage detector와 1 stage detector의 차이는 이러한 localization 문제를 classification 문제와 순차적으로 해결하느냐 아니면 한번에 해결하느냐에 달려있는 것이다.
2 stage detector의 종류에는 R-CNN계열 (R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN ...) 이 있고,
1 stage detector의 종류에는 YOLO 계열, SSD 계열 (SSD, RetinaNet, RefineDet ...)이 있다.
각각의 방식은 특정한 장단점을 가지고 있다.
2-Stage Detector:
- 장점
1. 정확도가 높다 : 2 stage detector는 먼저 후보 영역을 생성하고, 그 후 각 후보 영역에서 객체를 분류하고 바운딩 박스를 조정한다. 이 과정을 통해 높은 정확도를 달성할 수 있다.
2. 복잡한 객체 인식이 가능하다 : 다단계 프로세스를 통해 복잡한 객체나 작은 객체를 감지하는 데 뛰어나다. - 단점
1. 속도가 느리다 : 2 stage detector는 두 단계의 처리 과정이 필요하므로 일반적으로 1 stage detector보다 느리다.
2. 복잡한 구현: 2 stage detector는 구현이 복잡하고 많은 파라미터를 조절해야 한다.
1-Stage Detector:
- 장점:
1. 실행 속도가 빠르다 : 1 stage detector는 한 번에 객체의 위치와 클래스를 동시에 예측하므로 속도가 빠르다.
2. 간단한 구현 : 단일 네트워크로 이루어져 있어 구현이 간단하고 사용이 편리하다. - 단점:
1. 정확도가 낮을 수 있다 : 1 stage detector는 단일 단계에서 객체를 감지하므로 다단계 방식보다 일반적으로 정확도가 낮을 수 있다.
2. 작은 객체나 겹친 객체 처리가 어려울 수 있다 : 2 stage detector에 비해 작은 객체나 객체 간의 겹침에 대한 처리가 상대적으로 어려울 수 있다.
'딥러닝 > 딥러닝 이론' 카테고리의 다른 글
[객체 탐지] Hard Negative Mining 이란? (0) | 2023.11.20 |
---|---|
[최적화] 서포트 벡터 머신(SVM)은 Convex 문제? (0) | 2023.11.18 |
[최적화] Basic Inequality의 증명 (0) | 2023.11.15 |
[객체 탐지] HOG(Histogram of Oriented Gradient for human detecting)에 대하여 (1) | 2023.11.14 |
[객체 탐지] IoU(Intersection over Union), mAP(Mean Average Precision)이란? (0) | 2023.11.13 |