공부기록

R-CNN 논문 리뷰 본문

분석/논문

R-CNN 논문 리뷰

맘모스빵러버 2021. 3. 29. 16:18

R-CNN(Regions with CNN features) 논문 리뷰

먼저 컴퓨터비전의 문제를 크게 4가지로 분류하면

 

1. Classificaion

2. Object Detection

3. Image Segmentation

4. Visual relationship

 

으로 나눌 수 있다.

 

 

  • Classification : Single object에 대해서 object의 클래스를 분류하는 문제이다.
  • Classification + Localization : Single object에 대해서 object의 위치를 bounding box로 찾고 (Localization) +
    클래스를 분류하는 문제이다. (Classification)
  • Object Detection : Multiple objects에서 각각의 object에 대해 Classification + Localization을 수행하는 것이다.
  • Instance Segmentation : Object Detection과 유사하지만, 다른점은 object의 위치를
    bounding box가 아닌 실제 edge로 찾는 것이다.

Object detection에는 1-stage detector, 2-stage detector가 있다.

2-stage detector

위 그림은 2-stage detector의 동작과정이다.

Selective search, Region proposal network와 같은 알고리즘을 및 네트워크를 통해 object가 있을만한 영역을

우선 뽑아낸다. 이 영역을 RoI(Region of Interest)라고 한다. 이런 영역들을 우선 뽑아내고 나면

각 영역들을 convolution network를 통해 classification, box regression(localization)을 수행한다.

 

1-stage는 2-stage와 다르게 RoI영역을 먼저 추출하지 않고 전체 image에 대해서 convolution network로

classification, box regression(localization)을 수행한다.

당연히 특정 object 하나만 담고있는 RoI에서 classification, localization을 수행하는 것보다 

여러 noise 즉, 여러 object가 섞여있는 전체 image에서 이를 수행하는게 더 정확도는 떨어진다.

그러나 간단하고 쉬운만큼 속도가 빠르다는 장점이 있다.

 

 

이 글에서는 Object Detection에서 2-stage Detector 중 대표적인 R-CNN, Fast R-CNN, Faster R-CNN중에
먼저 R-CNN계열의 시초이자 근본인 R-CNN에대해 다룬다.

 

(1) Abstract

 

R-CNN전에 PASCAL VOC dataset에서 가장 성능이 좋았던 모델은 multiple low level image features with high level context로 구성된 복잡한 앙상블 모델이었다. 해당 논문에서는 간단하고 확장가능한 알고리즘을 소개하며 해당 알고리즘은 voc 2012의 최고성능(mean average precision of 53.3%)보다 30% 향상된 성능을 보인다고 한다. 

 

R-CNN의 두개의 인사이트는 다음과 같다.

 

1. 객체를 localize and segment 하기 위해  bottom up 방식의 region proposal에 CNN을 적용

2. labeled training data가 부족하다면 보조 task에게 domain specific fine tuning을 통한 supervised pretraining을 적용

 

여기서 labelde training data란 사진에서 이 객체는 무엇이다 라고 판별된 데이터라는 것을 의미한다. 또한 R-CNN은 슬라이등 윈도우를 기반으로한 OverFeat과 비교했을때도 더 좋은 성능을 발휘한다고 한다. 

(2) Introduction

지난 10년간 visual recognition tasg는 주로 SIFT 와 HOG(radient 기반의 특징점 추출 알고리즘)이 많이 사용되었다.  하지만 이후 back-propagation이 가능한 SGD(Stochastic Gradient Descent)기반의 CNN(Convolutional Neural Networks)이 등장하기 시작하였고 SIFT와 HOG와 같은 알고리즘과 비교하여 PASCAL VOC object detection에서 굉장한 성능을 보이게 되었다.

 

1990년대 CNN을 많이 사용하다가 SVM의 발전으로 CNN의 인기가 많이 떨어졌지만 이미지넷으로 인해 다시 인기르 ㄹ얻게 되었다. 이러한 성공은 LeCun's CNN을 살짝 각색한 즉 relu와 dropout을 통해 가능했다고 한다.

 

그래서 이 classification을 성공적으로 끝냈으니 이걸  PASCAL VOC데이터셋 object detection에 일반화 하는것은 어떨까 하는 질문을 하게 된다.

 

해당 논문 즉 R-CNN은 PASCAL VOC데이터셋에서 CNN이 드라마틱하게 좋은 성능을 보인 첫번째 사례라는 것을 말한다. 그러나 이러한 결과를 성취하기 위해 두가지 문제점에 직면했다고 한다. 

 

  1. localizing objects with a deep network
  2. training a high capacity model with only a small quantity of annotated detection data.

첫번째 문제에 대한 해결책으로 

 

localization as a regression problem이 있습니다. 그러나 이것은 실용성이 부족하고

sliding-window detector의 방법은 large receptive field를 가질 수 밖에 없어서 잘 사용하지 않는다고 합니다.

이러한 방법들을 대신에 논문에서는 recognition using regions을 추천합니다. 

먼저 이미지가 입력되고 region proposal을 2000개 가량 추출하게 된다.

그리고 CNN input이 고정되어 있기 때문에 각각의 region proposal을 맞춰주기 위해 휘어준다. 

그 후! AlexNetdp linear SVM을 사용하여 집어넣어 준다.

 

논문에서는 region proposals을 CNNs을 사용하였기 때문에 R-CNN이라고 명칭하였다고 한다.

 

그리고 두번째 문제를 해결하기 위해 pre training을 하고 fine tuning을 하는것을 제시한다.

보조데이터로 ILSVRC에 classification 데이터를 집어넣고 그것을 통해서 pretraining한 다음에 fine tuning을 함으로서 적은 데이터에 대해서 효과적이라는것을 알 수 있었다고 한다. 논문에서는 해당 방법으로 8%의 mAP성능을 향상시켰다고 한다. 

 

(2) Object detection with R-CNN

 

(APPENDIX A 및 위 사진 참고) warping을 하기 전에, 우리는 warping된 크기에서 원래 상자 주위에 정확히 p 픽셀의 뒤틀린 이미지 컨텍스트(with context란 원하는 객체 말고 주변의 배경을 포함하고 있는것을 말한다.)를 갖도록 엄격한 경계 상자를 확장한다(p = 16 사용)

 

 

테스트를 할때는 selective search를 테스트 이미지에 사용하여 2000rodml region proposals을 사용한다. (fast mode 사용) 여기서 각 클래스마다 독립적으로 greedy non-maximum suppression을 사용하여 IoU의 값이 threshold값보다 크냐작냐에 따라 해당 region을 사용할지말지를 결정한다. 

여기서 두가지 속성이 이를 효율적으로 만듭니다. 

1. 모든 CNN파라미터가 모든 카테고리에서 공유된다.

2. CNN에 의해 계산되는 측징벡터는 저차원을 가진다 (상대적)

R-CNN에서는 features, SVM weight, non maximum suppression만 computation을 하면된다.

 

CNN이 detection이라는 새로운 task를 수행하고 proposal window를 warp한다는 새로운 도매인을 수행하기 위해 논문에서는 오직 warp된 region proposal을 사용하여 SGD training을 계속하였다. 

여기서 만약 n개의 object class가 있다면 back ground class까지 +1하여 n+1개의 classification layer를 생성하였다.

 

여기서 0.5이상의 IoU는 positive 나머지는 negative로 region proposal을 분류하였다. 

 

각각의 SGD iteration마다 우리는 32개의 positive window와 96개의 back ground windows로 mini-batch를 구성하였다.

 

만약 차를 분류한다면 차를 tight하게 포함하고 있는 region을 positive하게 그리고 배경은 negative하게 분류하는것이 분명하다. 그러나 만약 부분적으로 이두개가 겹쳐있다면 어떻게 할것인가??

 

논문에서는 이 문제를 threshold값을 그럴경우 0.3으로 주는것으로 해결하였다. 

 

training데이터가 너무 크기 때문에 hard negative mining을 사용하여 빨리 수렴할 수 있도록 도와주었다. 

 

(3) Visualization, ablation, and modes of error

첫번째 층을 시각화하는것은 쉽다. (모서리나 색상등을 인식하기 때문) 그러나 subsequent 층을 이해하는것은 어렵다. 이를 해결하기 위해 논문에서는 region proposal을 selective search를 통해 찾아내면 그것을 sorting을 해서 non maximum suppression즉 스코어링을 한것에 대한 큰값을 빼고 중복된 값을 빼는 방식 후에 top-scoring regions 만 남겨둔다. 

 

 

논문에서는 어떤 층이 critical한지 판별하기 위해 VOC 2007데이터셋의 각 CNN의 마지막 3개의 층을 분석하였다.

 

FC5는 9216차원으로 reshape된 pool5의 특징 맵이다. 

FC6은 pool5의 fully connected layer이다.

FC7은 네트워크의 마지막 층이다.

 

여기서 놀라운점은 FC6이나 FC7이 없어져도 괜찮은 성능을 발휘한다는 점이었다. 즉 CNN의 표현의 힘은 CNN자체에 있지 FULLY CONNECTED LAYER에 의존하지 않는다는 점을 알 수 있다.

테이블2를 보면 파인튜닝을 적용했을경우 성능이 향상되는 것을 볼 수 있다. 

 

테이블 3에서는 당시 좋은성능을 발휘하는 VGG16의 구조를 그대로 가져와서 R-CNN에 적용한것을 O-NET이라고 하고 기본이 된는 것을  T-NET이라고 정했다. 테이블에서 볼 수 있듯이 O-NET이 성능이 더 좋은것을 알 수 있다.

하지만, O-NET의 경우 T-NET에 비해 7배 오래걸린다는 단점이 있다. 

 

(4) The ILSVRC2013 detection dataset

ILSVRC2013 데이터 셋의 경우 val과 test셋의 경우 모두 주석이 달려 있지만 train의 경우 전부 다 주석이 달린것은 아니다. 그렇기 때문에 hard negative mining으로 뽑았는데 그것이 만약 positive라면 train오류가 나타날 수 있기 때문에 이 방법을 사용하지 않는다. 논문에서는 val 과 train 이미지 중 완벽하게 주석이 달린 example만 사용한다고 한다. 

 

 

 

(6) conclusion

논문은 간단하고 확장가능한 object detection 알고리즘을 소개한것이고 이는 PASCAL VOC2012에서 가장 좋은 결과를 냈던 것보다 30%향상된 성능을 보인다. 

 

이것은 두가지 인사이트를 통해서 가능했으며 두가지는 아래와 같다. 

1. The first is to apply high-capacity convolutional neural networks to bottom-up region proposals in order to localize and segment objects. (CNN의 적용)

2. The second is a paradigm for training large CNNs when labeled training data is scarce. (supervised pretraining, domain specific fine funing을 적용)

 

 

 

[참고 출처]

ganghee-lee.tistory.com/35

 

(논문리뷰) R-CNN 설명 및 정리

컴퓨터비전에서의 문제들은 크게 다음 4가지로 분류할 수 있다. 1. Classification 2. Object Detection 3. Image Segmentation 4. Visual relationship 이중에서 4. Visual relationship은 나중에 다루고 먼저 위..

ganghee-lee.tistory.com

arxiv.org/abs/1311.2524

 

Rich feature hierarchies for accurate object detection and semantic segmentation

Object detection performance, as measured on the canonical PASCAL VOC dataset, has plateaued in the last few years. The best-performing methods are complex ensemble systems that typically combine multiple low-level image features with high-level context. I

arxiv.org

aigong.tistory.com/34

 

R-CNN 논문 Full Summary

R-CNN 논문 Full Summary arxiv : https://arxiv.org/abs/1311.2524 Rich feature hierarchies for accurate object detection and semantic segmentation - Ross Girshick, Jeff Donahue, Trevor Darrell, ..

aigong.tistory.com

 

'분석 > 논문' 카테고리의 다른 글

Faster R-CNN 논문 리뷰  (4) 2021.04.06
FAST R-CNN 논문 리뷰  (0) 2021.04.06
[논문] VGGNet(2015) 리뷰 및 정리 (3)  (1) 2021.03.16
[논문] VGGNet(2015) 리뷰 및 정리 (2)  (0) 2021.03.15
[논문] VGGNet(2015) 리뷰 및 정리 (1)  (0) 2021.03.13