Related to: Applications
RPN(Region Proposal Network)

개요
RPN은 Feature Map에서 Object가 존재할 수 있는 Region을 예측하는 Network입니다.
핵심 개념
RPN Inference 과정
-
Input Feature Map
- Input Shape : : H x W x C
- Region proposal을 생성하기 위해 feature map위에 nxn window를 Sliding, 객체 존재여부 예측과 Bounding Box Regression을 수행
-
Object Probability Prediction per pixel of each anchor box
- Anchor 내부에 Object가 있을 확률
- Output Shape : H x W x 2k
- 2k : 2(Object 존재 여부에 대한 확률) x k(anchor box 수 만큼의 channel)
-
존재 여부라면, 0과 1로 표현할 수 있으므로(Sigmoid) k개로도 가능
-
그렇다면 왜 2k(2-class softmax)를 사용했는가?[논문 link] → 저자는 간단함 때문이라고 합니다.
3.1.1 Anchors At each sliding-window location, we simultaneously predict multiple region proposals, where the number of maximum possible proposals for each location is denoted as k. So the reg layer has 4k outputs encoding the coordinates of k boxes, and the cls layer outputs 2k scores that estimate probability of object or not object for each proposal.*
- For simplicity we implement the cls layer as a two-class softmax layer. Alternatively, one may use logistic regression to produce k scores.
-
-
Bounding Box Regression, 각 anchor box 별 픽셀 별 delta)
- Output Shape : H x W x 4k
- 4k : 각 anchor box의 delta(dx, dy ,dh, dw)와 anchor box 의 총 수 k
- Anchor Box
- Faster R-CNN에서는 3개의 Scale(128128, 256256, 512*512), 3 개의 비율(1:1, 1:2, 2:1)을 이용해 k=9개의 Anchor Box(미리 정의된 형태를 가진 박스)를 생성
- Delta : Anchor의 크기와 위치를 조정하기 위한 값, 모델을 통해 학습 됨
- Anchor 하나 당 Delta 하나가 대응 됨
- Anchor 구성: (Y1,X1,Y2,X2)
- Delta : 구성 (deltaCenterY, deltaCenterX, deltaHeight, deltaWidth)
- 이해한 것
- Image Space 위에서, 어떤 Anchor Box를 생성할 때, Anchor Box의 중점이 위치할 수 있는 경우의 수는 이미지 공간의 총 픽셀 수(H x W)와 같음
- 임의의 위치(x,y)를 중심으로 하는 Anchor box가 어떤 Object 위에 있다고 가정했을 때, 해당 Anchor box가 그 Object를 온전히 감싸려면 얼마나 이동하고(dx,dy) 얼마나 크기를 조정해야(dh, dw) Object를 온전히 감쌀 수 있는 Bounding Box가 되는가에 대한 추측 값
- 만들어질 수 있는 Anchor Box 위치의 모든 경우의 수는 H x W x k
- 각 경우마다 가지고 있는 정보의 수는 2(object probability) + 4(delta)
- RPN의 출력 차원은 H x W x k x 6 → 무수히 많은 Bounding Box가 생성 됨
-
Bounding Box Selection
- H x W x k x 6개의 box는 너무 많은 양이기 때문에 줄이는 것이 필요하다.(후보군 선택)
- 따라서 object 존재 확률이 가장 높은 anchor box position부터 내림차순으로 n개를 선택한다. 논문에서는 2000개 정도를 선택했다고 합니다.
- 하지만 그럼에도 불구하고, 너무 많은 box이며 나아가 겹치는 box들 또한 존재합니다.
- 그러므로 NMS(Non-maximum suppression)을 통해 불필요한 box를 한번 더 제거합니다.
NMS의 Train 및 Loss
-
Train
- IoU > 0.7인 anchor box를 positive
- IoU < 0.3인 anchor box를 negative
- 다른 경우 사용 안함
-
Loss
관련 개념
- NMS(Non-Maximum Suppression) - 후처리 알고리즘
- Object Detection History(2001~2022) - 객체 탐지 발전사
- FPN(Feature Pyramid Network) - RPN과 함께 사용되는 Feature Pyramid
- Yolo v1(You Only Look Once) - RPN 없는 1-stage 탐지 모델과 비교
- Two-stage detector vs One-stage detector - 탐지기 방식 비교
- DetEval - 객체 탐지 평가 방법
참조
https://towardsdatascience.com/region-proposal-network-a-detailed-view-1305c7875853
https://velog.io/@suminwooo/RPNRegion-Proposal-Network-정리
https://blog.paperspace.com/faster-r-cnn-explained-object-detection/