본문 바로가기

논문 리뷰

[Faster R-CNN : Towards Real-Time Object Detection with Region Proposal Networks]

" Faster R-CNN : Towards Real-Time Object Detection with Region Proposal Networks " - Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun (2015) 

 

본 논문에서는 …

      RPN과 Fast R-CNN을 통합하여 region proposal 작업을 위한 fine-tuning, 객체 탐지를 위한 fine-tuning을 번갈아가며            훈련하는 방법을 적용한 Faster R-CNN 모델을 제시함.

      이는 fully convolutional network로 위치의 객체 점수와 객체 bounds를 동시에 예측하는 RPN(Region Proposal                    Network)가 전체 이미지의 합성곱 특성을 공유해 region proposal에서의 비용을 줄여줌.

 

연구 배경

최근 객체 탐지는 region proposal 방법, region-based convolutional neural networks의 성공으로 발전됨. region-based CNN은 계산 비용이 높았지만 convolution을 공유함으로써 비용이 감소함.

region proposal은 저렴한 feature와 경제적인 추론기법에 의존함에도 매우 많은 시간을 소비함.

RPN(Region Proposal Network)를 도입해 알고리즘의 변화를 통해 proposal computation이 거의 비용이 들지 않음을 보여줌.

Fast R-CNN 같은 region-based detector에서 사용되는 convolutional feature map이 region proposal에서도 사용됨을 확인함.

 

관련 연구

  • object proposals

super-pixel의 그룹화, sliding windows를 주로 사용함.

detector와는 독립적인 외부 모듈로 채택됨.

  • Deep Networks for Object Detection

R-CNN은 region proposal을 객체의 카테고리 또는 배경으로 분류하기 위해 end-to-end 방식으로 CNN을 훈련하며 보통 분류기로 사용함.

  • MultiBox : 마지막 완전 연결 계층이 여러 박스들을 예측하는 네트워크에서 region proposal을 생성해 OverFeat의 Single-box와 같은 것을 생성함.

모델

큰 구조 설명 :

- Faster R-CNN

  1. region proposal을 하는 FCN
  2. 이를 이용하는 Fast R-CNN detector

→ RPN은 Fast R-CNN이 어디를 봐야하는지를 말해줌.

- RPN

이미지를 input으로 주면 각 객체의 점수와 사각형의 proposal을 output으로 줌.

최종 목표 : Fast R-CNN과 계산을 공유, 두 신경망 모두 공통의 convolution layer를 공유한다고 가정함.

region proposal을 생성하기 위해 우리는 마지막 공유 convolution layer의 출력 위로 작은 네트워크를 슬라이딩함.

작은 신경망은 n*n spatial window를 입력으로 받음. 각각의 window는 저차원의 특성으로 매핑이 되고 이는 2개의 비슷한 FCN에 입력됨. (box-regression layer(reg), box-classificaiton layer(cls))

- Anchors

각 슬라이딩 window 위치에 여러 region proposal을 하며 각 위치에서 최대의 proposal은 k로 표시함.
→ k개의 proposal은 k reference box를 기준으로 매개변수화되어 anchor라 부름.

anchor는 슬라이딩 window의 중앙에 위치하며 scale과 aspect ratio와 관련있음.

reg : 4k(상자 좌표), cls : 2k(객체인지 아닌지 여부)

- Translation-Invariant Anchors

중요한 특성 : 앵커, 앵커와 관련된 proposal를 계산하는 함수는 이동 불변함.

→ 모델 크기를 줄여줌.

Multibox : K-means를 사용해 앵커를 생성하는데 이동불변이 아니며 객체가 이동할 때 동일한 proposal이 생성된다는 보장이 없음.

- Multi-Scale Anchors as Regression References

다양한 scales, aspect ratio를 다루기 위한 새로운 해결 방안을 고안함.

다중 크기 예측

  1. 이미지 / 특성 피라미드 → 유용하지만 시간 오래 걸림.
  2. 특성맵에 다양한 크기의 window를 슬라이딩함. → 다양한 크기에 사용된다면 필터 피라미드며 보통 첫 번째 방법과 같이 사용됨.

→ 앵커 피라미드를 만듦. 다양한 크기와 비율의 앵커 박스를 참조해 경계 박스를 분류하며 단일 비율의 이미지와 특성맵에만 의존하며 단일 크기의 필터를 사용함.

→ 추가적인 비용없이 다양한 특성을 공유하기 위한 중요한 요소임.

 

모델의 주요 특징 :

loss function

RPN을 훈련하기 위해 앵커에 이진 레이블을 할당함.

positive의 조건

  1. 실측 박스와 가장 높은 IoU를 공유한 앵커 (채택)
  2. 어떤 박스든 0.7 이상의 IoU를 가지는 앵커

IoU가 0.3보다 낮으면 non-positive 앵커에 negative를 할당함.

positive or negative가 아니면 훈련 객체에 포함되지 않음.

파라미터 식

Training RPNs

back-propagation & SGD를 사용해 end-to-end로 훈련됨.

이미지 중심의 샘플링 전략을 따름.

각 미니 배치는 단일 이미지에서 발생하는 많은 양의 앵커로 이루어짐.

negative가 많으면 편향되어 앵커를 무작위로 샘플링함.

 

모델 프레임워크 설명 :

- Sharing Features for RPN and Fast R-CNN

탐지 네트워크를 위해 Fast R-CNN을 채택함.

독립적으로 훈련된 RPN과 Fast R-CNN은 다른 방식으로 convolutional layer를 수정함.

→ 별도의 네트워크를 학습하기 보다 두 네트워크 간에 convolutional layer를 공유할 수 있는 기술 개발이 필요함.

  1. Alternation training : RPN을 훈련시키고 proposal을 사용해 Fast R-CNN을 훈련시킴. Fast R-CNN으로 튜닝된 네트워크는 RPN을 초기화하는 데 사용됨.
  2. Approximate joint training : RPN 및 Fast R-CNN은 훈련 중 하나의 네트워크로 합쳐짐. 각 SGD에서 순전파는 Fast R-CNN을 훈련할 때 고정적이고 사전 계산된 proposal과 동일하게 처리되는 region proposal을 생성함. 역전파는 RPN과 Fast R-CNN 손실의 결합으로 이루어짐.
  3. Non-approximate joint training : RPN에 의해 예측된 경계 상자도 입력값임. Fast R-CNN의 RoI pooling layer는 컨볼루션 기능과 예측된 경계 상자도 입력으로 받아들여 역전파에서 상자 좌표를 사용하는 그레이디언트도 포함해야 함. 하지만 이는 2번에서는 무시되었으며, RoI wrapping 층에 의해 해결책이 주어짐.

 

- 4-step alternation training

  1. RPN을 훈련시킴. (ImageNet 사전 훈련된 모델과 end-to-end 미세 조정으로 초기화됨.)
  2. RPN에서 생성된 proposal을 사용해 Fast R-CNN에 의한 별도의 탐색 네트워크를 훈련시킴.
  3. 탐색 네트워크를 RPN 훈련을 초기화하는 데 사용하지만, 공유된 convolutional layer를 고정하고 RPN에서 고유한 레이어만 미세 조정함.
  4. 공유 convolutional layer를 고정하고 RPN에 고유한 레이어를 미세 조정함. (동일한 convolutional layer를 공유하고 통합 네트워크를 형성함.)

 

실험

  • PASCAL VOC

다양한 region proposal 방법을 사용하여 훈련 및 테스트를 한 Fast R-CNN 결과임.

SS, EB < RPN : 훨씬 빠른 탐지 시스템이 생성됨. proposal 수가 적을수록 지역별로 FCN의 비용도 감소함.

  • Ablation Experiment on RPN

1. RPN & Fast R-CNN 네트워크 간 convolutional layer 공유한 효과 (2단계 중지)

→ 성능 감소, detector에 의해 조정된 특징을 RPN을 미세 조정하는 데 사용할 때 3단계에서 proposal의 품질이 향상되기 때

2. Fast R-CNN 탐지 네트워크 훈련 시 RPN을 제거

→ 훈련/테스트 proposal 간의 불일치로 성능 하락, proposal을 비교할 때 NMS가 성능을 해치지 않고 틀린 정보를 줄일 수 있음.
3. RPN의 CLS 및 REG 출력 중 하나를 해제

CLS 레이어가 제거 (NMS/순위 지정이 사용되지 않음.), CLS 점수가 가장 높은 순위에 있는 proposal의 정확성을 설명함.

REG 레이어 제거(proposal이 앵커 박스가 됨.), 성능 하락함. proposal이 주로 경계 박스의 회귀에 의한 것이라는 걸 시사함.
4.
RPN을 훈련하기 위해 ZF 대신 VGG-16 사용

VGG를 사용하는 것이 성능이 더 좋아짐.

  • Performance of VGG-16

VGG를 사용하니 성능이 올랐고 더 많은 데이터를 사용하니 성능이 오름.

속도는 VGG가 더 느림.

  • Sensitive to Hyper-parameters

3 scales, 3 ratios 일 때 성능이 가장 좋음.

람다는 상대적으로 덜 민감한 파라미터임.

  • Analysis of Recall-to-IoU

  • one-stage Detection vs Two-Stage Proposal + Detection

모델 : VGG-16을 사용했고, Faster R-CNN이 더 높은 성능을 보임.

 

결론

RPN과 객체 탐지 네트워크가 convolutional feature를 공유함으로써 region proposal의 비용을 크게 줄임.

Faster R-CNN은 통합된 딥러닝 기반 객체 탐지 시스템으로 실시간 객체 탐지가 가능할 정도로 빠르며 성능도 기존 모델보다 뛰어남.