Faster RCNN

ph
Admin (토론 | 기여)님의 2017년 8월 7일 (월) 10:37 판 (→‎x)
이동: 둘러보기, 검색

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[1]
Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun
arXiv:1506.01497

official MATLAB
official python
tensorflow ver.

(objectness score를 학습하는) RPN(Region Proposal Network)을 제안한다.
Fast RCNN에서 보았듯, region proposal computaion이 (test time의) 병목이다. CNN으로 이루어진 RPN을 학습시켜서 이미지 한장당 300개정도의 proposal만으로 state-of-the-art accuracy를 얻는다. RPN은 기존의 Fast RCNN과 parameter를 share한다.

x

보통 Selective Search[2]를 쓰지만, CPU만 사용할 경우 이미지 한장당 2초정도 걸릴 정도로 매우 느리다. 최근 장당 0.2초 걸리는 EdgeBoxes[3]라는 것도 나왔지만 그래도 상당한 시간이 소요된다. convolution을 share하는 RPN을 제안할건데 이거 쓰면 marginal cost는 장당 10ms정도다.(전체 과정 다 해도 5 fps on GPU)

Fasterrcnn.png

기존 Fast RCNN에 몇개의 conv net을 붙여서 RPN을 만들고, regular grid에 대해 objectness를 계산할 것이다. 따라서 RPN도 FCN[4]의 일종이다.

학습할 때에는, region proposal에 대해 한번, object detection에 대해 한번, 이런식으로 번갈아가면서 fine-tuning한다.

preliminary version이 공개된 이후 여기저기 많이 쓰였고 상용으로 Pinterest[5]에도 쓰였다. ILSVRC, CC 2015 competition에서 상당수 1위들이 모두 Faster R-CNN과 RPN based다.[6] 부럽다

RPN은 작은 net으로, Fast R-CNN 의 마지막 conv를 sliding window fashion으로 검사한다. 실험에는 \(3 \times 3\)이 쓰였는데, 이정도면 receptive field가 충분히 넓다. 이렇게 해서 나온 region proposal을 바탕으로 convolutional feature map(‘Fast R-CNN 의 마지막 conv’의 출력)을 선택하여 box-regressor(reg)와 box-classifier(cls)로 보낸다(둘 다 2-layer-FC). 실제로는 모든 sliding window에 대해 동시에 계산하고, 각각이 최대 k개의 proposal을 가진다. 이 각각을 anchor box라고 한다. anchor box의 중앙은 sliding window의 중앙으로 정렬되고, scale과 aspect ratio정보를 가지고 있다.

x


  1. Ren, Shaoqing, et al. "Faster R-CNN: Towards real-time object detection with region proposal networks." Advances in neural information processing systems. 2015.
  2. 인용 오류: <ref> 태그가 잘못되었습니다; r4라는 이름을 가진 주석에 제공한 텍스트가 없습니다
  3. 인용 오류: <ref> 태그가 잘못되었습니다; r6라는 이름을 가진 주석에 제공한 텍스트가 없습니다
  4. 인용 오류: <ref> 태그가 잘못되었습니다; r7라는 이름을 가진 주석에 제공한 텍스트가 없습니다
  5. 인용 오류: <ref> 태그가 잘못되었습니다; r17라는 이름을 가진 주석에 제공한 텍스트가 없습니다
  6. 인용 오류: <ref> 태그가 잘못되었습니다; r18라는 이름을 가진 주석에 제공한 텍스트가 없습니다