chullhwan-song/Reading-Paper

Faster R-CNN

Opened this issue · 3 comments

what ?

  • Localization의 대표적 알고리즘
    • rcnn > fast rcnn 에서 시작하였음
    • Yolo, SSD등 참고
  • 특징
    • faster rcnn과 거의 유사함.
      • 대부분 공유하나 밑의 rpn부분만 다름.
    • 다만, fast rcnn과 달리 후보 영역 계산하는 과정이 network 안에 존재한다.
      • selective search 과정이 없다. > rpn

구조

image

Region Proposal Networks(rpn)

  • 대신에 새로운 "Region Proposal Networks(rpn)" 개념이 생김
    • rpn은 크게 box regression(reg layer) & object 분류(cls layer) 구분하는데,
      • 이들의 입력값은 anchor라 불리는 후보 영역 단위이다.
        • anchor는 fc 이전의 convolution feature map 위에서 진행된다.
        • 밑의 그림에서 당양한 스케일 scale, 비율의 형태를 볼수 있다.
        • 이들 anchor는 두번째 그림과 같이 sliding window 방식으로 진행된다.
          image
          image
  • selective search의에서 생기는 속도 이슈는 많이 감쇠 그리고, 성능에 대해서도 fast rcnn과 거의 비슷한 성능을 보임

ROI Pooling

  • classification & box regression 을 위한 전처리(?) 작업
  • sppnet에서 영감을 얻음.
    image
    image
    image
  • 빨간색 사각형 > conv feature map & ROI > roi pooling > resize > fc..
    image
    image
  • output 은 항상 같아야한다. 이유는 fc layer에 들어가는 수는 고정이므로 어떠한 ROI가 나오더라도 같은 dimension을 가진 output이어야만한다.
  • 그래서, ROI가 21x14라면, max pooling 연산을 하는데, 3x2, stride(3,2)을 하면 output 7x7
  • 또한 35xx42 ROI, 5x6, stride(5, 6)를 하면 output 7x7를 가진다.
    • 한 pixel (cell)크기를 5x6를 가지도록 7x7 등분(grid)하고 그안에서 max값을 찾는 operation
  • 즉, 동일한 크기의 output이 나오도록 하는 max pooling 연산을 한다.

good post : https://tryolabs.com/blog/2018/01/18/faster-r-cnn-down-the-rabbit-hole-of-modern-object-detection/

ROI Pooling

image

box classification & regression

image

  • N+1 클래스에 대한 classification(+1는 background)
  • 4xN 에 대한 box regression = BOX(center_x, center_y, width, height)