목차
1. Region Proposal 기반의 Object Detection 모델
2. RCNN Training 과 Loss
3. RCNN 의 문제점과 Spatial Pyramid Matching 이해
4. SPP 을 활용한 Object Detection
5. Fast RCNN 의 이해
6. Anchor Box
7. Anchor Box 를 활용한 RPN 구성
8. RPN 과 Faster RCNN Training 및 성능 비교
1. Region Proposal 기반의 Object Detection 모델
기존 Selective search 와 같은 Region Proposal 을 기반으로 하는 방법으로
전체적으로 Stage 를 2단계로 구분할 수 있다.
Stage1) Region Proposal (Use Selectionsearch) 객체가 있을 것으로 보이는 영역 2000개를 추정한다. (논문에서 2000개 선택)
Stage2) CNN Detection
기존에 Pretrained 되어 있는 모델로 해당 영역들의 feature map 을 구하고 FC input 으로 해당 출력을 사용하고 FC layer 들을 통하여 SVM 으로 classification task 를 처리하고, Bounding box regression 또한 FC input 을 직접 이용하여 구한다.
말로 설명하기에 힘들었지만, 위의 figure 로 한번에 축약이 가능할 것 같다.
Process
1) Image(Input)
2) Extract Region Proposals (~2k) -> warped region
(Dense layer== FC layer 로 들어가기 위해서 2000개의 영역이 동일한 사이즈를 갖어야만 한다.)
3) Compute CNN features
4) Classify regions (SVMs + Bounding box regression)
2. RCNN Training 과 Loss
여기서 두 가지 Problem 에 대한 것 중 Classification 을 중점으로 바라보자.
(1) ImageNet 으로 Feature Extractor Pre-trained 시킨다.
(2) Ground Truth 와 SS predicted 영역 IoU 가 0.5 이상인 경우만 해당 클래스로, 나머지는 background 로 fine tuning 한다.
(3) Ground Truth 로만 학습을 진행하되 0.3 IoU 이하는 background 로 설정하고 0.3 이상이지만 GT가 아닌 경우 무시한다.
Regression 의 문제 또한 빠질 수 없다.
ref) https://lilianweng.github.io/lil-log/2017/12/31/object-recognition-for-dummies-part-3.html
Object Detection for Dummies Part 3: R-CNN Family
In Part 3, we would examine four object detection models: R-CNN, Fast R-CNN, Faster R-CNN, and Mask R-CNN. These models are highly related and the new versions show great speed improvement compared to the older ones.
lilianweng.github.io
RCNN 장단점
장점 : 높은 Detection 정확도를 갖고
단점 : 너무 느린 Detection 시간과 복잡한 아키텍처와 프로세스이다.
1장의 이미지를 처리하기 위해 2000개의 region 을 도출하기 때문에 각 region 이미지를 feature map 생성하는 과정에서 소모되는 시간이 길다.
4. SPP 을 활용한 Object Detection
RCNN 의 주요 문제점
2000 개의 Region 영역 이미지가 CNN 으로 입력 되면서 Object Detection 수행시간이 너무 오래걸린다.
Region 영역 이미지가 FC input 에 들어가기 위해서는 동일한 사이즈를 갖어야 하기 때문에 Crop / Warp 가 되어야 한다.
이런 문제점에 대한 개선 방안으로 고려되었던 점은?
위와 같이 원본 이미지를 대상으로 SS 를 시행하고 Feature Map 의 경우 이전과 달리 원본 이미지를 대상으로 Feature Extraction 을 수행한 후 결과 Feature Map 에 대하여 Selective Search 에서 생성된 Region 을 직접 매핑 하는 것이다.
이렇게 되면 다시 문제가 발생되는 것을 알 수 있다. Feature Map 에서 1D flattened 하는 과정에서 region 의 사이즈가 고정적이지 않고 유동적이라는 것이다. 이것으로 서로 다른 크기의 Region Proposal 이미지 개선 방안이 마련 되어야 했다.
Feature Map 으로 투영된 서로 다른 크기를 가진 region proposal 이미지를 SPP Net의 고정된 크기 Vector 로 변환하여 FC 에 1D Flattened 된 Input 제공한다.
SPP(Spatial pyramid Pooling)
CNN Image Classification 에서 서로 다른 이미지의 크기를 고정된 크기로 변환하는 방법이다.
기존의 RCNN 의 과정을 보면 crop/warp 의 과정을 이용해서 균일한 값을 출력해 줄 수 있었다.
Image -> Region Proposal : Selective search(crop/warp) -> conv -> fc -> output
하지만 Region Proposal 의 2000개 가량으로 많은 Region 에 대하여 각각 CNN 연산을 수행하지 않기 위해서
원본 이미지를 이용한 Feature Map 에 직접 매핑 하는 방법을 사용하여도 그 크기를 균일하게 만들어줄 방법이 필요한 것이다.
SPP
Image -> conv -> spp -> fc -> output
위와 같이 Feature Map 이 들어오면 해당 값에 대하여 분할만을 달리할 뿐이다. 그렇기 때문에 각 연산값을 pooling 하여 결합해주면 동일한 사이즈를 유지할 수 있다.
R-CNN 과 SPP-Net 을 비교하면 보는 것 과 같이 region 마다 해당 영역을 각각 연산을 수행하지 않고 한번에 feature 를 연산수행 후 결합하여 연산하기 때문에 이를테면 한장의 이미지에 R-CNN 의 경우 2000번의 개별 연산을 필요로 했다면 SPP-Net 의 경우 단 한번의 수행을 가져갈 수 있다는 장점이 있다.
5. Fast RCNN 의 이해
Fast RCNN 의 주요 특징
앞선 4. SPP Net 에서 사용되었던 SPP Layer 를 ROI Pooling Layer 로 변경하면 된다.
또 한가지의 주요 특징은 End-to-End Network 를 구성하였다는 점이다. (ROI 제외)
SVM --> SoftMax
Multi-task Loss function 으로 Classification 과 Regression 을 함께 최적화
(1) ROI Pooling
Feature Map 상의 임의의 ROI 를 고정 크기의 Pooling 영역으로 매핑한다.
일반적으로 이러한 매핑은 max pooling 을 적용한다.
앞전의 SPP Net 과 동일하게 ROI Pooling 이 SPP Layer 를 대체했다고 생각하면 간편하다.
What do we learn from region based object detectors (Faster R-CNN, R-FCN, FPN)?
In this series, we will take a comprehensive journey on object detection. In Part 1 here, we cover the region based object detectors…
jonathan-hui.medium.com
(2) Multi-task Loss
6. Faster RCNN
기존의 Fast RCNN 과 RPN(Region Proposal Network) 의 결합 버전 정도로 정의 될 수 있다.
Region Proposal 을 Deep Learning 과 같이 자동으로 학습하기 위한 RPN 이 제시되었다.
결과적으로 완전한 End-to-End Learning 이 성립된다는 것.
1) Anchor Box
이 문제에 대하여 다루기 전에 이것을 사용하기에 앞선 고민에 대하여 잠깐 생각해보아야한다.
데이터는 주로 pixel 값, ground truth bbox 의 좌표값을 주로 제공하는데, Selective search 수준으로 Region Proposal 이 가능할까?
논문에서 사용된 구성은 비율과 사이즈에 따라 나뉜 9 가지의 size 를 갖는 Anchor box 를 선택하였다.
다양한 Anchor box 에 따라 인식할 수 있는 object 에 대하여 다양하게 시도해볼 수 있다.
Feature Map 의 height (m), width (n) 에 따라 m * n 개의 grid 를 feature map 에 지정하고 m * n * 9(Anchor 의 개수) 만큼 Anchor box 를 생성한다.
2) Anchor Box 를 활용한 RPN 구성
RPN 의 구성은 Feature Map(Region Proposal 에 대한) 에서 들어왔던 3 x 3 x 512 Conv 에 연산을 시행한 뒤,
1x1 Conv 9 Output Channel (각 Anchor Box 에 대하여 binary classification 을 시행한다. object 인지 아닌지를 분류해야하는 것)
1x1 Conv 4 * 9 Output Channel (영역 추천 Bounding box Regression [x1, y1, W, H] 4개에 대한 9개의 anchor box 에 대한 연산으로 regression)
Positive Anchor Box, Negative Anchor Box
Ground Truth Bbox 가 겹치는 IoU 값에 따란 Anchor box 를 positive / negative Anchor box 로 분류
1) IoU 가 가장 높은 Anchor 는 Positive
2) IoU 가 0.7 이상이면 Positive
3) IoU 가 0.3 보다 낮으면 Negative
Loss Function
Loss function 에 대한 설명 이전에 Faster RCNN 의 Regression 파트가 하고 싶은 일에 대해 설명해보자.
Predicted BBox 와 Positive Anchor box 의 좌표 차이 그리고 Ground Truth 와 Positive anchor box 의 좌표 차이에 대하여 두 차이가 거의 유사하도록 regression 을 학습하면 그 결과는 GT box 와 Predicted box 가 유사해지는 것이 된다.
3) RPN 과 Faster RCNN Training
Faster RCNN Training 의 Process 를 요약해보자.
1) RPN 을 먼저 학습한다
2) Fast RCNN Classification / Regression 을 학습한다.
3) RPN Fine Tuning
4) Fast RCNN Fine Tuning
-- Alternating Training 이라고 불린다.
RCNN 의 모델 변천사에 따라 간략히 모델을 파악할 수 있는 Figure 를 제공.
'Computer Vision Study' 카테고리의 다른 글
Chapter2) Object Detection 과 Segmentation 을 위한 주요 데이터 세트 및 OpenCV 소개 (0) | 2022.01.25 |
---|---|
Chapter1) 9. Object Detection 성능 평가지표 mAP (0) | 2022.01.24 |
Chapter1) 1. Object Detection 과 Segmentation 개요 - 8. NMS(Non Max Suppression) 의 이해 (0) | 2022.01.23 |
Object Detection (YOLO v3) (0) | 2021.12.28 |