[Point Review] Faster R-CNN

김경준·2021년 8월 17일
0

Point Review

목록 보기
3/26
post-thumbnail

Contribution

  • Fast R-CNN에서 모든 과정을 통합시켰지만 여전히Selective search 알고리즘은 외부에서 연산하므로 ROI 생성단계에서 병목현상이 발생

-> Region Proposal도 네트워크 내에서 수행할 수 있는 모델 개발

Model


Selevtive search는 cpu를 사용하여 느리기 때문에 RPN과 결합하여 모든 연산을 gpu를 통해 할 수 있는 통합된 모델을 만들었다.

Region Proposal Network(RPN)

  • 고정된 크기의 윈도우를 sliding하여 객체 탐지
  • 가운데 픽셀(파란점)을 기준으로 k개의 anchor box 생성(다양한 크기와 비율의 객체 반영)
  • 객체 존재 여부(2k)와 위치(4k)를 출력

Fast R-CNN

  • 이후 과정은 Fast R-CNN과 동일
  • ROI에 대해서 classification과 Bounding box regression을 수행

Loss function


ii: 앵커의 인덱스
pip_i: 해당 앵커가 객체일 확률
tit_i: bounding box regression을 통해 얻은 박스 조정 값 벡터
pi,tip_i*, t_i*: ground truth 라벨
NclsN_{cls}: 미니배치 사이즈
NregN_{reg}: 앵커 개수
LclsL_{cls}: logloss 이용
LregL_{reg}: L1 smooth loss
λ\lambda: 가중치

RPN Process

  1. CNN에서 뽑은 feature map을 input으로 받는다.
  2. feature map에 3x3의 필터를 256 or 512 채널만큼 컨볼루션 연산하여 intermediate layer를 얻는다. padding을 통해 HxW는 유지한다.
  3. 1x1 필터를 통해 classification과 bounding box regression을 수행한다. (입력 이미지의 크기와 상관 없이 모두 수행 가능)
    • Classification: 2(객체 여부) * 9(앵커의 개수) 채널 수 만큼 수행. HxW의 각 좌표마다 18개의 채널이 생기는데 해당 좌표를 중심으로 하는 9개의 앵커 박스들이 object인지 아닌지에 대한 확률값이 담겨있다.(Softmax)
    • Bounding Box Regression: 4(x,y,w,h) * 9(앵커의 개수) 채널 수 만큼 수행.
  4. Classification을 통해 얻은 object일 확률 값을 내림차순으로 정렬 후 K개의 앵커만 뽑는다. K개의 앵커들에 대해 각각 Bounding box regression 적용 후, NMS를 통해 ROI를 구한다.

Reference

0개의 댓글