Related to: Deep Learning

RPN(Region Proposal Network)

Untitled 41.png

RPN은 Feature Map에서 Object가 존재할 수 있는 Region을 예측하는 Network입니다.

RPN Inference 과정

  1. Input Feature Map

    • Input Shape : : H x W x C
    • Region proposal을 생성하기 위해 feature map위에 nxn window를 Sliding, 객체 존재여부 예측과 Bounding Box Regression을 수행
  2. 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.
  3. 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가 생성 됨
  4. Bounding Box Selection

    • H x W x k x 6개의 box는 너무 많은 양이기 때문에 줄이는 것이 필요하다.(후보군 선택)
    • 따라서 object 존재 확률이 가장 높은 anchor box position부터 내림차순으로 n개를 선택한다. 논문에서는 2000개 정도를 선택했다고 합니다.
    • 하지만 그럼에도 불구하고, 너무 많은 box이며 나아가 겹치는 box들 또한 존재합니다.
    • 그러므로 NMS(Non-maximum suppression)을 통해 불필요한 box를 한번 더 제거합니다.
  5. NMS

    NMS(Non-Maximum Suppression) 참조

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/

Week 9