Home Fast RCNN과 Faster RCNN
Post
Cancel

Fast RCNN과 Faster RCNN

Fast RCNN

Fast RCNN 주요 특징(From SPP-Net)

SPP Layer를 ROI Pooling Layer은

End-to-End Network Learning (ROI Proposal은 제외)

  • SVM을 Softmax로 변환
  • Multi-task loss 함수로 Classification과 Regression을 함께 최적화

ROI Pooling

  • Feature Map 상의 임의의 ROI를 고정 크기의 Pooling 영역으로 매핑
  • 매핑 시 일반적으로 Max pooling 적용

Fast RCNN - ROI Pooling

ROI Pooling을 적용한 Fast RCNN 구조

Fast RCNN 구조

Multi-task loss

Faster RCNN 개요

\[Faster\_RCNN = RPN + Fast\_RCNN\]

Faster RCNN 구조

Region Proposal Network 구현 이슈

Selective Search를 대체하기 위한 Region Proposal Network 구현 이슈

  • 데이터로 주어질 피처는 pixel 값, Target은 Ground Truth Bounding Box인데 이를 이용해 어떻게 Selective Search 수준의 Region Proposal을 할 수 있을까?

    → (Reference) Anchor Box Object가 있는지 없는지의 후보 Box

Anchor Box 구성

총 9개의 Anchor Box, 3개의 서로 다른 크기, 3개의 서로 다른 ratio로 구성

Ratio가 1:1 이면 정사각형, 1:2면 가로가 긴 직사각형, 2:1면 세로가 긴 직사각형으로 생각하면 된다.

Anchor Box 특징

겹쳐있는 포인트를 기반으로 해서 다른 형태와 다른 스케일을 가진 Anchor Box를 촘촘하게 가지게 되면 이것을 기반으로 우리가 학습을 하면서 Selective Search에서 했던 것과 유사한 방식으로 rpn을 구성할 수 있음.

이미지와 Feature Map에서 Anchor Box 매핑

가로에는 60개의 포인트, 세로에는 40개의 포인트가 있고 512 채널이 있다.

원본 이미지가 1/16 크기의 Feature Map으로 Down Sampling 될 때(ex) VGG Net을 통과해서~)

Width: 800 / 16 = 50, Height: 600/16 = 38

17,100개에서 RPM을 학습을 해서 있을만한 위치에 있는 것을 뽑아낸다.

RPN

RPN 개요

원본 이미지 → VGG Net → Featur Map이 추출됨 → RPN → 영역 추천

RPN Network 구성

코드를 보면 x_class는 1x1 Conv와 sigmoid 함수를 적용한 것을 확인할 수 있고, x_regr는 1x1 Conv와 linear 함수를 적용한 것을 확인할 수 있다 (regression)

RPN Bounding Box Regression

RCNN Bounding Box Regression과 비슷한 사진임. RCNN Bounding Box Regression은 Anchor box를 Reference로 이용하여, Ground truth와 예측 Box의 중심 좌표 x, y 그리고 w, h의 차이가 Anchor box와 Ground Truth 간의 중심 좌표 x,y,w,h의 차이와 최대한 동일하게 예측 될 수 있어야함.

Positive Anchor Box, Negative Anchor Box

Ground Truth BB 겹치는 IOU 값에 따라 Anchor Box를 Positive Anchor Box, Negative Anchor Box로 분류

  • IOU가 가장 높은 Anchor는 Positive
  • IOU가 0.7 이상이면 Positive
  • IOU가 0.3보다 낮으면 Negative

만약 IOU가 0.3이상 0.7미만이라면? → 학습에 포함되지 않음.

Anchor box를 Reference로 한 Bounding Box Regression

예측 bounding box와 Positive anchor box와의 좌표 차이는 Ground Truth와 Positive anchor box와의 좌표 차이와 최대한 동일하게 될 수 있도록 regression 학습

Anchor box에 따른 RPN Output

  • k: Anchor의 갯수
  • 2k : classification
  • 4k : regression

RPN Loss 함수

RPN 학습

Mini Batch를 이용하여 128개의 positive, 128개의 negative를 뽑아 미니 배치 샘플링을 해 학습을 시킴.

Faster RCNN Training

  1. RPN을 먼저 학습
  2. Fast RCNN Classification/Regression 학습 Alternating training
  3. RPN을 Fine Tuning
  4. Fast RCNN Fine Tuning

Faster RCNN Detection 성능 비교

수행 시간 비교

Summary

출처 : 컴퓨터 비전 완벽 가이드

This post is licensed under CC BY 4.0 by the author.