SPP Layer를 ROI Pooling Layer은
End-to-End Network Learning (ROI Proposal은 제외)
Selective Search를 대체하기 위한 Region Proposal Network 구현 이슈
총 9개의 Anchor Box, 3개의 서로 다른 크기, 3개의 서로 다른 ratio로 구성
Ratio가 1:1 이면 정사각형, 1:2면 가로가 긴 직사각형, 2:1면 세로가 긴 직사각형으로 생각하면 된다.
겹쳐있는 포인트를 기반으로 해서 다른 형태와 다른 스케일을 가진 Anchor Box를 촘촘하게 가지게 되면 이것을 기반으로 우리가 학습을 하면서 Selective Search에서 했던 것과 유사한 방식으로 rpn을 구성할 수 있음.
가로에는 60개의 포인트, 세로에는 40개의 포인트가 있고 512 채널이 있다.
원본 이미지가 1/16 크기의 Feature Map으로 Down Sampling 될 때(ex) VGG Net을 통과해서~)
Width: 800 / 16 = 50, Height: 600/16 = 38
17,100개에서 RPM을 학습을 해서 있을만한 위치에 있는 것을 뽑아낸다.
원본 이미지 → VGG Net → Featur Map이 추출됨 → RPN → 영역 추천
코드를 보면 x_class는 1x1 Conv와 sigmoid 함수를 적용한 것을 확인할 수 있고, x_regr는 1x1 Conv와 linear 함수를 적용한 것을 확인할 수 있다 (regression)
RCNN Bounding Box Regression과 비슷한 사진임. RCNN Bounding Box Regression은 Anchor box를 Reference로 이용하여, Ground truth와 예측 Box의 중심 좌표 x, y 그리고 w, h의 차이가 Anchor box와 Ground Truth 간의 중심 좌표 x,y,w,h의 차이와 최대한 동일하게 예측 될 수 있어야함.
Ground Truth BB 겹치는 IOU 값에 따라 Anchor Box를 Positive Anchor Box, Negative Anchor Box로 분류
IOU가 가장 높은 Anchor는 Positive
IOU가 0.7 이상이면 Positive
IOU가 0.3보다 낮으면 Negative
만약 IOU가 0.3이상 0.7미만이라면? → 학습에 포함되지 않음.
예측 bounding box와 Positive anchor box와의 좌표 차이는 Ground Truth와 Positive anchor box와의 좌표 차이와 최대한 동일하게 될 수 있도록 regression 학습
k: Anchor의 갯수
2k : classification
4k : regression
Mini Batch를 이용하여 128개의 positive, 128개의 negative를 뽑아 미니 배치 샘플링을 해 학습을 시킴.
RPN을 먼저 학습
Fast RCNN Classification/Regression 학습 Alternating training
RPN을 Fine Tuning
Fast RCNN Fine Tuning
출처 : 컴퓨터 비전 완벽 가이드