본문 바로가기

논문리뷰

Rich feature hierarchiesfor accurate object detectionandsemantic segmentation(RCNN)논문요약

이번 논문은 object detection 분야에서 VOC2012에서 성능을 30%나 향상시킨 모델인 RCNN에 대하여 논문을 리뷰하겠습니다

mAP는 무려 53.3%를 달성하였고 이전의 기록과 비교하면 엄청난 향상을 보여 주었습니다

 

mAP 달성의 주요 요인으로는 bottom up region proposal을 위한 CNN을 적용하였고

데이터의 부족으로 인해 pre-training과 fine-tuning으로 성능을 향상 시켰습니다

RCNN이라는 이름 또한 region proposal + cnn의 의미입니다

 

기존 object detection 분야에서는 SIFT 와 HOG 등을 이용하였습니다

하지만 이러한 모델들의 발전은 거의 이루어 지지 않았고 ensemble 등을 고려해 성능 향상을 시켰습니다

2012년 AlexNet의 성공으로 인하여 object detection 분야에서도 CNN에 대한 연구가 활발히 이루어졌고

그 첫번째 결과물이 RCNN이라고 할 수 있습니다

주요 논점은 CNN classification 결과를 VOC object detection에 일반화 시킬수 있는지가 관건이었으며

해당 문제를 해결하기 위하여 2가지의 주요 논점에 집중하였습니다

 

deep network로 객체를 localizing 하는것과

적은 양의 labeled dataset을 가지고 고성능 모델을 학습시키는 것이 주요 논점이었습니다

 

수행 과정으로는 

input image에 대하여 2000개의 region proposal들을 생성한 이후

각 proposal들을 CNN과정을 거쳐 feature vector을 생성합니다

그 이후 선형 SVM을 이용하여 region들을 category별로 분류합니다

 

기존 OverFeat 등의 모델들은 sliding window 방식을 사용하였으나 RCNN에서는 다른 방식(selective searching)을 사용하며

해당 부분은 추후 설명하겠습니다

또한 적은 양의 dataset을 해결하기 위해서는 super vised pre-training 을 진행 한 후 domain specific fine tuning 을 진행하였으며 해당 방법을 통해 mAP를 약 8%가량 향상시키는 것에 성공하였고

classification 을 위해서는 NMS(non maximum suppression)을 사용합니다

 

2.Object detection with R-CNN

2.1

해당 시스템은  3개의 모듈로 구성되며 각각

region proposal , CNN ,classificaion linear SVM 으로 구성됩니다

 

region proposal 로는 selective search가 사용되었고 

해당 벙법은 4096개의 feature vector을 추출하며 227*227(RGB) 이미지를 5개의 conv layer , 3rodml FC layer 을 통하여

forward propagation 하여 진행됩니다

해당 연산을 위하여 입력 이미지를 해당 크기에 맞게 조정하며 warpping을 사용합니다

 

2.2

1개의 이미지에서 selective searching을 통하여 2000개의 region proposal들을 추출하며

각 proposal 들을 warpping 한 이후 CNN을 통해 feature 를 계산하고

추출된 feature를 통하여 SVM하여 score를 계산합니다

scored region들이 산출되면 NMS(중심픽셀 기준 8방향중 중심이 가장크지 않으면 삭제)을 진행하여 class score,IOU가 threshold 보다 큰 경우 제거합니다

해당 방법에서 CNN의 파라미터들은 공유되며 feature vector은 상대적으로 저차원이라 볼수 있습니다

 

2.3

ILSVRC2012 데이터셋을 사용해  사전학습이 진행되며 

Domain specific fine-tuning은

IOU값이 0.5 이상인 경우 positive 나머지는 negative로 설정하여 진행합니다

 

object category classifier 로는

각 class별 object 의 ground-truth값이 0.3 이상일 경우만 positive로 설정합니다

해당 결과를 참고하면 타 모델 대비 높은 mAP를 기록함을 알 수 있고

bounding box형식 적용시 더 좋은 성능을 보임을 알수 있습니다

 

 

3.2

pool5는 9216 차원 FC6 은 4096 FC7은4096차원이며

해당 표를 참고하면 FC7없이 FC6의 feature를 사용하거나 혹은 FC6/FC7둘다 없에는 것도 괜찮은 결과를 보입니다
Pooling 5 feature가 CNN paramater의 6%밖에 사용하지 않는 점을 고려하면
Connnected layer 보다 convolution layer 가 더 중요함을 의미합니다

 

3.3

ILSVRC2014에서 최고의 성능을 보인 네트워크(O-Net)
Baseline = T-Net

O-Net을 RCNN구조에서 사용하기 위해 VGG-ILSBRC 16모델로 pre-training 했고
GPU메모리에 맞게끔 mini batch 방식으로 사용해 주었습니다
그 결과 O-Net을 이용한 RCNN이 T-Net을 사용한 RCNN보다 성능보다 월등함을 볼 수 있습니다
하지만 이에는 계산 시간이 7배가 더 걸린다는 단점이 존재합니다

 

3.4

oc - poor localization (잘못된 localization)
Sim - confusion with a similar category (비슷한 카테고리와의 혼동)
Oth - confusion with a dissimilar object category (비슷하지않은 카테고리와의 혼동)
BG - a FP that fired on background (배경에서 발생한 에러)

DPM과 비교한 결과를 살펴보면 타 클래스와 혼동보다는 LOC로 인한 에러가
더 많이 존재하며
LOC는 bottom up regiion과 전체 이미지 분류를 위한 CNN 사전 학습에서 발생한 것으로 보여집니다

 

al ,Test –annotated  train – Not annotated 
Selective search 결과 1개 이미지당 2403개의 region proposal 생성하고
Region의 개수는 이미지 해상도와 연관이 있으며 selective search 전 500 pixel width로 설정 하며
Training data – CNN fine tuning,detector SVM training ,Bounding box regrssor 사용됩니다
val1+train1k의 사용으로 fine-tuning  과 feature 중복계산을 방지하고
Train1k 이며 Fine-tuning 을 적용하였을 때 최선의 성능을 보여줍니다

 

Full – region의 모양을 무시하고 warped window에 바로 CNN feature 연산하고
Fg – regionㅡ이 맨 앞 mask에만 CNN feature를 연산합니다

Full과 Fg를 모두 사용하며 fc6에서 수행할 경우 가장 좋은 결과가 산출됩니다