RPN(Region Proposal Network) 정리

우수민·2021년 3월 25일
1

Object Detection에서 핵심역할을 하고 있는 부분은 RPN(Region Proposal Network)이다.

RPN은 Faster R-CNN에서 활용되었는데, Faster R-CNN의 목표는 selective search 없이 RPN을 학습하는 구조로 모델을 만드는 것이다. RPN은 feature map을 input으로, RP를 output으로 하는 네트워크라고 할 수 있고, selective search의 역할을 온전히 대체한다.

요약하자면,

  • 다양한 사이즈의 이미지를 입력 값으로 object score과 obeject proposal을 출력한다.
  • Fast r-cnn과 합성공 신경망을 공유한다.
  • feature map의 마지막 conv 층을 작은 네트워크가 sliding하여 저차원으로 매핑한다.
  • Regression과 classification을 수행한다.

RPN 구성

RPN의 input 값은 이전 CNN 모델에서 뽑아낸 feature map이다. Region proposal을 생성하기 위해 feature map위에 nxn window를 sliding window시킨다.

1.기본 Anchor Box

(앵커 박스 : 미리 정의된 형태를 가진 경계박스 수)

: Fast R-CNN에서는 3개의 스케일과 3개의 비율을 사용하여 k=9개의 앵커를 사용하였다.

2. Delta

: 기본 Anchor의 크기와 위치를 조정하기 위한 값들이다.
모델을 통해 학습된다. Anchor하나에 Delta가 하나씩 대응한다. Anchor하나의 값의 구성은 (Y1,X1,Y2,X2)처럼 Bounding Box형식의 구조를 갖고, Delta하나의 값의 구성은 (deltaCenterY, deltaCenterX, deltaHeight, deltaWidth) 로 구성된다.

3. Probability

각 Anchor 내부에 객체가 존재할 확률이다.

RPN의 output 값은 객체가 존재할 것이라는 확률이 높고, 중복이 제거된 Bounding Box들이다.(ROI라고 함)


RPN 내부에서 이루어지는 동작

1. 입력단계

: 3가지의 정보를 입력

2. Bounding Box 계산

: Anchor는 Delta와 결합해서 값들을 조정해야 한다. Delta값이 Deep Network을 통해 산출된 값이므로, 이 조정 과정을 거쳐야 실제 객체의 위치를 정확하게 표현하게 된다.

3. Sort단계

: 입력으로 설정된 Anchor Box는 갯수도 너무 많고 확률이 0에 부분도 Bounding Box정보를 가지고 있다. 따라서 계산과정은 확률이 높은 객체에 대해서만 작업을 진행할 필요가 있다. 그래서 2번에서 산출된 Bounding Box들 중에서 확률이 높은 객체를 사용한다.

4. Non Maximum Suppression (NMS)

  1. 동일한 클래스에 대해 높은-낮은 confidence 순서로 정렬한다.
  2. 가장 confidence가 높은 boundingbox와 IOU가 일정 이상인 boundingbox는 동일한 물체를 detect했다고 판단하여 지운다.

아래의 첫번째 이미지는 NMS를 시행하기 전, 두번째 이미지는 이를 실행한 후 결과이다.

5. Merge

: NMS의 결과는 메모리 상에서 구멍이 뚫린 형태가 된다.연속된 형태로 모아 주어야 다음에 이어지는 Convolution과 같은 표준화된 절차를 진행할 수 있다.

이후 이과정을 통해 ROI를 구할 수 있다.

참고 링크 :
1. https://yamalab.tistory.com/113
2. https://blog.naver.com/nostresss12/221404569501

profile
데이터 분석하고 있습니다

0개의 댓글