본문 바로가기
논문 공부

R-CNN & Fast R-CNN 비교 정리

by Candy Lee 2021. 2. 7.

안녕하세요 

 

Candy lee 입니다. 오랜만에 포스팅을 하는 것 같아요^^

 

오늘은 이전에 리뷰해 본 R-CNN과 Fast R-CNN 논문 핵심 내용을 

 

비교해서 정리해 보려 합니다. 

 

 

우선, R-CNN과 Fast R-CNN 모두 객체 탐지(Object Detection)의 

 

종류 중 하나에 속하는데요,

 

객체 탐지(Object Detection)은

Classification(어떤 물체인지 판별 단계)과

Localization(물체의 위치 찾기 단계)의 혼합체 입니다.

Object Detection = Classification + Localization(경계 상자 그리기)

 

 

 

우선 Object Detection에는 1-stage detector2-stage detector가 있습니다.

1-stage detector

별도의 RoI(Regoin of Interest) 추출 없이

이미지 전체를 CNN 연산의 입력값으로 주어서 

객체 탐지를 실행하는 방법

2-stage detector

선택 탐색(Selective Search) 알고리즘으로 객체가 있을 법한 영역 제안(region proposals)들을 추출해서 
CNN 연산을 적용하고 객체 탐지를 실행하는 방법

예시 : R-CNN, Fast R-CNN, Faster R-CNN

 

 

그래서 이제 2-stage detector에 속하는 R-CNN과 Fast R-CNN을 비교 정리해보도록 하겠습니다.

 

 

 

 

 

[R-CNN] : Region with CNN features

 

정의)

선택 탐색 알고리즘(Selective Search)을 기반으로 추출된 다수의 Region Proposals(영역 제안)들을 

추출해서 CNN 연산을 통해 객체 탐지 결과를 얻는 알고리즘

 

의의)

이전의 연구보다 PASCAL VOC 2012 데이터 셋에서 30% 이상의 성능 향상을 보였으며

레이블링 작업 된 데이터가 적은 경우의 학습 패러다임 제안하였다(fine-tuning 기반)

 

또한, 컴퓨터 비전과 딥러닝의 가장 기본적이며 오랫동안 사용된 기법인

bottom-up region proposal과 CNN 신경망을 기반으로 당시에는 좋은 성능을 내었다는 것으로

의의를 가진다.

 

 

 

동작 순서)

1. 선택 탐색 알고리즘을 적용해서 객체가 있을 수 있는 후보 영역 제안들을 추출한다.

   (약 2000개가 추출된다)

 

2. 추출된 영역 후보들을 특정 크기로 변형시킨다(warping)

이유 : CNN의 Fully Connected layer의 입력값이 특정 크기로 정해져 있기 때문

단점 : warping 연산을 통해서 기존의 원래 영역 제안과는 다른 모형의 warping 결과가 나올 수 있다

        (왜곡 가능성 높음)

 

3. CNN 연산을 기반으로 변형된 영역 제안들의 특징을 추출한다(Feature Extraction based on CNN)

 

4. SVM 분류기로 Classification 작업을 진행한다.

이때 최종 분류 및 위치 조정 완료된 여러 개의 영역 제안들에게 "Non-maximum suppression"

기법을 적용하여 가장 적합한 결과를 하나만 남깁니다.

출처 : https://medium.com/@yusuken/object-detction-1-nms-ed00d16fdcf9
Non-maximum Suppression Pseudo Code

 

 

 

과정으로는 아래 그림 파란색 영역과 빨간색 영역을 봤을 때, 모든 영역들에게 For loop를 돌리면서 

 

서로 겹치는 비율을 계산한다. 이때 IoU(Intersection over Union)이라는 개념을 도입해서

IoU 개념

 

 

만약 IoU 임계값을 0.5로 설정해서 서로간의 IoU 수치가 0.5보다 크다면 비교 대상 영역 제안들은 제거된다.

추가 링크를 통해 이해를 높이길 바랍니다.

https://docs.google.com/presentation/d/1aeRvtKG21KHdD5lg6Hgyhx5rPq_ZOsGjG5rJ1HP7BbA/pub?start=false&loop=false&delayms=3000&slide=id.p
출처: https://dyndy.tistory.com/275 [DY N DY]

 

YOLO

YOLO You Only Look Once: Unified, Real-Time Object Detection Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi

docs.google.com

 

 

 

추가 설명)

Selective Search 알고리즘(선택 탐색 알고리즘)

->이미지에 의미적 분할(Semantic Segmentation)을 적용하여 작은 영역을 큰 영역으로 통합해 나가서 

   전체적인 이미지 픽셀을 분류에 맞게 묶어내는 작업이며 이를 기반으로 Region Proposals 추출한다.

Selective Search 동작 과정(출처 : 구글 이미지 검색)

 

 

 

R-CNN의 단점)

-약 2000개의 영역 제안에 대해서 CNN 연산을 각각 적용하므로 연산량이 많아진다.

-총 3개의 모델(CNN,SVM,BBox regressor)을 독립적으로 순차 학습시키므로 multi-stage pipeline 구조를 가진다.

이로 인해 각 모델이 학습할 때, 연산 공유가 되지 않아서 가중치 업데이트 작업이 불가능하다.

 

 

 

 

 

 

 

 

 

 

 

[Fast R-CNN] : Fast Region-based Convolutional Network

 

정의)

기존의 R-CNN, Spatial Pyramid Pooling Network(SPP-net)의 문제를 해결하였고

더욱 빠른 탐지 속도와 학습 과정에서의 효율성을 달성한 알고리즘이다.

 

 

동작 순서)

1. CNN의 입력값으로 전체 이미지를 설정하여 특징 맵을 추출한다.

 

 

2. RoI pooling layer에서 추출된 특징 맵에 영역 제안들을 투영시켜서 Fully Connected layer에서 

   요구하는 특정 사이즈로 변환 작업이 이루어 진다(warping)

RoI pooling layer(출처 : 구글 이미지 검색)

 

 

3. 특징 맵을 기반으로 고정 크기의 특징 벡터들이 추출되고 이들은 2개의 Fully Connected layer로 처리된다.

 

 

4. 어떤 객체인지 Softmax Classifier로 분류 작업을 진행하고 

   어디 위치에 객체가 있는지 bbox regressor로 경계 상자의 위치를 조정한다.

BBOX regression value are given as tuple

 

 

 

Fast R-CNN은 기존의 R-CNN과 SPP-net이 가졌던 

 

multi-stage pipeline 구조를 single-stage pipeline으로 바꿈으로써 한번에 학습이 가능하게

 

하였고 이를 기반으로 오차 역전파 또한 가능하여 가중치 업데이트를 가능케 하였다. 

Fast R-CNN 학습

 

또한 R-CNN과는 달리 1번의 CNN 연산을 거치기 때문에 연산 속도 및 효율에 있어서 우위를 가진다.

 

 

SGD mini-batch 구성을 할때, N개의 이미지를 적은 개수의 이미지로 설정하고 이를 기반으로 R개의 RoI들을

 

추출하게 된다. 이런 경우는 보통 RoI들이 서로 상관관계가 높기 때문에 학습에 악영향을 끼칠 수 있지만, 

 

논문에서는 N=2, R=128로 설정하여 실험한 결과 성능에는 아무런 문제가 없었다고 한다.

Fast R-CNN SGD mini-batch

 

또한 VGG-16 네트워크 모델을 이용하여 Fine-tuning 작업을 진행하였고 이는 성능 향상에 도움을 주었다.

 

R-CNN과는 달리 Softmax를 Classifier로 사용한 이유는 단순히 실험 시 성능 결과가 더 좋았기 때문이라고 한다.

 

 

 

 

이상으로 R-CNN & Fast R-CNN 비교 및 정리 포스팅을 마치겠습니다.

 

궁금한 점은 댓글로 남겨주세요.

 

오늘도 감사합니다.

 

 

 

 

Object Detection Reference)

URL : nuggy875.tistory.com/20

반응형

'논문 공부' 카테고리의 다른 글

AUTOVC 논문 정리(2)  (0) 2021.03.01
AUTOVC 논문 정리(1)  (0) 2021.02.27
R-CNN 정리(3)  (0) 2021.01.21
R-CNN 정리(2)  (0) 2021.01.14
R-CNN 정리(1)  (0) 2021.01.11
Fast R-CNN 정리(4)  (0) 2021.01.07
Fast R-CNN 정리(3)  (0) 2021.01.04
Fast R-CNN 정리(2)  (0) 2021.01.03

댓글