부캠 TIL 0929 - Faster R-CNN

기린이·2021년 9월 29일
0

부캠 TIL 🦆

목록 보기
30/53
post-thumbnail

사진, 설명 출처

faster rcnn = RPN(region proposal network) + fast rcnn

RPN(region proposal network)

예시상황 가정:

  • backbone 통과 후 (8, 8, 512)
    anchor box 9개

input :

  • backbone 통과후 feature map
    -> (8, 8, 512)

output :

  • class score(있는지 없는지), box regression(x, y, w, h)
    -> (8, 8, 2, 9), (8, 8, 4, 9)

역할 :

  • anchor box의 score, bbox 1차적으로 예측

Region propasals

input :

  • anchor box (8, 8, 9), score (8, 8, 2, 9), bbox reg (8, 8, 4, 9)

output :

  • 상위 k 개의 anchor box

역할 :

  • 최종적인 region 선정

과정 :

  • NMS 이용해서(inference시에 nms와 다르게 class별 nms가 진행되지 않는다.) 걸러내고, score 상위 k 개 뽑는다.

ROI pooling

input :

  • region propasals의 결과물. regions (8, 8, k)

output :

  • 같은 크기의 feature map (7,7,512)

역할 :

  • 모두 다른 크기를 가지는 region을 같은 크기로 통일

과정 :

  • 목표 이미지 크기대로 그룹이 나눠지도록 한다음 max pooling

Fast R-CNN

input :

  • ROI pooled anchor, (7, 7, 512)

output :

  • loss
  • class score (k+1) 배경까지 포함해서 +1
  • box reg (k+1)*4 각 클래스별로 bbox reg

RPN을 이용해서 모든 anchor box에 대한 score, box reg 만들고

이를 기반으로 region proposal 에서 region 선택하고

선택된 region의 class score, bbox reg 만든다. => 최종 예측

train

  • RPN에서 class score, bbox reg 예측
  • fast R-CNN에서 class score, bbox reg 예측

두 개 모두 학습시 label이 필요할 것이다.

RPN train

RPN에서는 Anchor target layer
모든 anchor box의 GT와의 IOU를 봐서 positive / negative 인지 계산해둔다.

여기서 IOU의 기준은 0.7 이상 positive, 0.3 이하 negative 그외는 무시(애매하게 디텍션된거는 pos, neg에 포함하면 안된다.)

Fast R-CNN train

  • Fast R-CNN 에서는 Proposal Target layer

proposal된 region과 GT간의 IOU를 계산 positive / negative 인지 계산해둔다.

여기서 IOU의 기준은 0.5 이상 positive, 0.1 ~ 0.5 negative

앞에서 한번 걸러서 제안된 영역이기 때문에 IOU가 애매하다고 없애진 않는 것 같다.

inference

미리 GT와 IOU 계산해서 label을 만들어놓을 필요가 없다.

클래스별로 모든 앵커박스를 예측하기 때문에 최종 예측할 때는 NMS를 이용해서 줄인다.

profile
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.

0개의 댓글