본문 바로가기

Deep Learning - 논문 리뷰

[논문 리뷰] R-CNN(Rich feature hierarchies for accurate object detection and semantic segmentation) 논문 읽기

딥러닝 기술을 활용한 Object Detection의 기초 지식이라고 볼 수 있는 R-CNN 논문을 읽고 리뷰하겠습니다!

 

논문의 제목은 Rich feature hierarchies for accurate object detection and semantic segmentation 입니다.

제목 그대로 풍부한 특징들을 통해서 정확한 물체 감지를 진행했다는 내용입니다.

리뷰는 논문에 구성에 따라서 작성하겠습니다!

 

Abstract

 이 논문에서는 현 상황과 자신들이 얻어낸 결과 및 모델의 특징을 설명합니다.

 

먼저, 물체 감지 데이터셋에서 유명한 PASCAL VOC 기준 Object detection의 가장 좋은 성능을 보이는 것은 High-level Context를 통한 복잡한 앙상블이였다고 말합니다. 이 당시만 해도 CNN을 물체 감지에 이용하는 것은 드믈었던 것 같습니다. Sliding window와 같은 기본적인 이미지 처리 방식으로 처리하는 경우도 많았습니다.

 

저자들은 2가지 메소드를 소개합니다.

  •  Localization 과 Segmentation을 위해 Bottom-up 방식의 Region Proposal을 CNN에 적용
  • Domain specific fine tuning 을 통한 supervised pre-training을 진행

Rich한 Region을 CNN을 입력으로 사용하는데 있어서 R-CNN이라는 명칭을 사용합니다.

PASCAL VOC에서 기존의 sota 모델보다 mean average percision(mAP) 30%의 성능 향상을 보였습니다.

 

Introduction

R-CNN 모델의 전반적인 처리 과정에 대해서 설명합니다.

  • 입력 이미지로 부터 2000개의 독립된 region proposals을 생성
  • CNN을 통해서, 각 proposal 마다의 고정된 길이의 feature vector를 획득
  • 획득된 feature vector을 입력으로 category-specific linear SVM 분류기를 통한 classification, bouding box regressor를 통한 detection을 진행

저자들이 제안하는 method의 overveiw

 

Method

Region proposal

R-CNN 모델은 입력 이미지로 부터 곧바로 물체의 위치를 추정하지 않고, 물체가 있을 법한 후보 영역을 Selective search 알고리즘 통해 획득합니다.  Selective search는 색상, 명도에 따라 초기 segment를 설정하고 수많은 region을 생성합니다. 그 후, greedy 알고리즘을 통해서 각 region에 초기 설정 기준( 색상, 명도 등)에 따라 유사한 영역과의 결합을 진행합니다. 이렇게 획득한 region을 bounding box을 형태로 보관하고, 해당 논문에서는 2000개의 bouding box를 생성해서 입력 크기로 warping을 진행합니다.

 

Selective search를 통해 얻는 bounding boxes

 

Training

입력으로 사용될 region propsals를 획득했으므로, 입력 이미지로부터 prediction에 이용될 feature vector를 획득합니다. 해당 논문에서는 CNN모델을 통해서 feature vector를 획득합니다. CNN 모델로는 Alexnet을 사용하였으며 ImageNet으로 pre-trained 되어있는 가중치를 fine tuning 하는 형태로 feature extracter를 학습시킵니다. 

입력으로 들어오는 후보 영역이 background라는 카테고리로 분류될 수도 있기 때문에 예측될 카테고리 의의 개수를 N+1로 구성하여 학습을 진행합니다. 

PASCAL VOC 데이터 셋에 대해 region proposal을 획득하고 각 이미지의 정답 ground truth와의 IOU를 비교하여 positvie sample(0.5 이상)과 negative sample(0.5 미만)로 구분합니다.

Basic IOU(Intersection of Union)

이렇게 얻어진 p-sample과 n-sample를 1:3 비율로 맞추어 mini batch의 형태로 Alexnet을 거쳐 feature  vector를 획득합니다.

 

linear SVM 모델은 2000x4096 크기의 feature vector를 입력받아카테고리를 예측하고 confidence score를 반환합니다. 이때 linear SVM 모델은 특정 class에 해당하는지 여부만을 판단하는 이진 분류기(binary classifier)입니다. 따라서 N개의 class를 예측한다고 할 때, 배경을 포함한 (N+1) 개의 독립적인 linear SVM 모델을 학습시켜야 합니다. 

각각의 linear SVM 모델은 특정 class에 해당하는지 여부를 학습하기 때문에  (맞다, 아니다) --> (1,0)의 형태의 결과를 출력합니다. 학습이 한 차례 끝난 후, hard negative mining 기법을 적용하여 재학습을 진행합니다.

 

Hard negative mining

Hard negtive mining은 단어 뜻 그대로 "어려운 negative sample를 모은다"라고 직관적으로 이해할 수 있습니다. 즉, 어려운 negative 샘플은 물체처럼 보이는 배경을 의미할 수 있습니다. 모델은 물체라고 판단했지만 사실은 배경인 False positive region을 모으는 방법입니다. 왜 이 작업이 필요하냐면, Object detection에서 가장 큰 성능 저하의 원인이라고도 생각되는 클래스 불균형 문제 때문입니다. 물체에 해당하는 postive sample보다 배경인 negative sample이 훨씬 많을 수밖에 없기 때문에 기존의 negative를 hard negative로 추가 및 수정해 준다면 재학습 시에 모델이 False positive라고 판단하는 비중을 줄일 수 있습니다.

 

초기 region proposal의 위치정보는 부정확한 수치를 가지고 있으므로 regressor를 통해 세밀한 조정이 필요합니다.

Bounding box regressor

위 그림에서 빨간 테두리가 기존의 region proposal을 통해 획득한 bounding box라면 ground truth의 수치에 맞춰 주기 위한 과정이 필요합니다.

위 수식은 region propsal bounding box를 \( P = (p_{x}, p_{y}, p_{w},p_{h}) \) 를  ground truth \(G = ( g_{x}, g_{y}, g_{w}, g_{h}) \) 로 옮기는 과정입니다. \(G\) 와 \(P\) 와의 스케일, 위치 차이를 의미하는 \(T = (t_{x}, t_{y}, t_{w},t_{h}) \) 가 될 수 있도록 \(d_{i}(P)\)를 학습시킵니다. 

 

마지막으로 NMS(Non-Maximun Suppression를 통해서 최적의 bounding box를 추출합니다.

  • 예측한 Bounding box들의 confidence score를 내림차순으로 정렬
  • 가장 높은 score를 얻은 box와 나머지 box들 간의 IOU 계산
  • IOU 값이 지정한 threshold 보다 높은 box들을 제거

Non Maximum Suppression

 

Results

결과 부분에서는 3가지 표를 통해서 실험 결과를 보여줍니다.

 

첫번째로는 기존의 method 들과의 비교, bounding box regressor를 쓰지 않았을 때와의 비교

다음으로 pre-trained 가중치 사용 여부에 따른 비교

 

Alexnet vs Vggnet

 마지막으로 CNN 구조를 변경했을 때와의 비교

 

이렇게 모든 테이블이 R-CNN의 성능을 보장해 주고있습니다. 다만 학습 과정이 까다롭고 region proposal이 진행되어야 하는 만큼 속도 측면에서 단점을 보유하고 있습니다. 이를 보안하기 위해 Fast R-CNN , Faster R-CNN이 등장합니다.

 

리뷰 마무리 하겠습니다!