Related to: Deep Learning
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.
- For simplicity we implement the cls layer as a two-class
-
-
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 하나가 대응 됨
- Ahchor 구성: (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
NMS의 Train 및 Loss
-
Train
- IoU > 0.7인 anchor box를 positive
- IoU < 0.3인 anchor box를 negative
- 다른 경우 사용 안함
-
Loss
참조
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/