DevelopHyun

Data Science & Algorith with Computer Science

R-FCN[2] R-FCN++: Towards Accurate Region Based Fully Convolutional Networks for Object Detection(2018) - Review

30 Sep 2018 » deeplearning, cnn, image-detection, r-fcn, paperreview

1. Abstract

  • R-FCN
    • position-sensitive pooling과 RoI pooling을 통해 각 region의 위치정보를 보존하면서 연산을 공유
    • global context를 사용하지 못한다는 단점이 존재
  • R-FCN++
    • Global Context Module
    • RCM pooling

2. Introduction

fig1

  • Faster R-CNN의 단점
    • per-RoI computation이므로 proposal이 늘어나면 속도가 많이 느려짐
    • 단순한 RoI pooling은 정보의 손실이 발생할 수 있음
  • R-FCN의 단점
    • position-sensitive score map과 position-sensitive RoI pooling을 통하여 위치 정보를 지켜주지만, 너무 지역적인 정보에 치중하여 global context를 반영하지 못함
  • R-FCN++
    • Global Context Module을 통해 kernel size의 크기를 키워 global context를 반영할 뿐만 아니라 kernel size를 키웠음에도 computation efficiency를 유지
    • RCM pooling을 통하여, RoI에 포함된 background의 score noise를 제거하고 object의 score를 더 정확하게 추출

  • Region-based CNN
  • Proposal-free CNN
  • Region-based FCN

4. Our approach

fig2

4.0 Architecture

  1. feature extraction by convolution
  2. region proposal using feature map of 1 by RPN
  3. Global Context Module using feature map of 1
  4. sibling 1x1 convolution using GCM feature map of 2
    • position-sensitive score map 생성
    • box regression을 위한 feature : channel 생성
    • classification을 위한 feature : channel 생성
    • = grid number
  5. position-sensitive RoI pooling
  6. RCM pooling

4.1 Global Context Module

  • computation sharing을 위하여 RoI pooling을 score map에 적용
    • 각 pixel의 score를 예측하는 것이 되는데, classification은 global context가 중요
  • GCM
    • separable convolution
    • time efficiency를 유지하며 global context를 반영
    • 값이 커질수록 더 넓은 context를 반영 가능
  • Light-GCM
    • separable convolution을 사용하더라도, 일반적인 convolution보다는 많은 연산량
    • GCM의 규모를 줄이기 위하여 사용

4.2 Row-Column Max Pooling

fig3

  • bounding box는 object로 꽉 채워져있지 않고, object와 background가 섞여있음
    • 그냥 pooling을 해버리면 background가 예측한 class score 때문에 noise가 발생
  • RCM pooling
    • position-sensitive RoI pooling 결과에 적용
    • 각 row/column 별로 max pooling을 해준 결과를 추출
    • 실제로 object가 있는 부분의 score만 classification에 활용

5. Experiments

  • a`trous alogritm
  • OHEM
  • pre-trained ResNet

5.1 Ablation Experiments

  • Pascal VOC 2007+2012
  • MS COCO

5.1.1 Global Context Module

5.1.1.1 Global context information Design Choice

table1-2-3

  • global context
    • GCM의 kernel size 가 커질수록 global context를 잘 반영하기 때문에 좋은 성능을 보여줌
    • GCM 대신 kernel size가 큰 일반적인 convolution을 적용해도 좋은 성능을 보여줌
    • parameter 수가 영향을 미칠수도 있기 때문에 작은 kernel size의 filter를 stack했지만, 성능은 좋지 않음
    • 즉, global context가 중요하다는 것을 알 수 있음

5.1.1.2 How does Global Context improve the performance

fig5

  • 일반적인 kernel과 GCM을 비교했을 때, GCM의 feature map이 더 정확하다는 것을 알 수 있음
  • IoU threshold를 낮췄을 때 더 좋은 효과

5.1.2 Row-Column Max Pooling

table4

  • RCM pooling이 voting에 사용되는 score를 더 잘 선택

5.2 Pascal VOC

table6-7

5.2.1 Efficiency Study

table8

5.3 MS COCO

table-9-10-11


6. Conclusion

  • Global Context Module은 더 좋은 feature map을 추출하는 역할을 한다.
  • RCMPooling은 object의 score를 더 정확하게 추출하는 역할을 한다.

7. Reference