코딩뚠뚠

[머신러닝 공부] 딥러닝/RCNN (object detection) 본문

공부/ML&DL

[머신러닝 공부] 딥러닝/RCNN (object detection)

로디네로 2021. 4. 14. 15:35
반응형

 

Object Detection

 

RCNN은 최초의 딥러닝 기술이 적용된 Object Detection 모델이다.

 

 


 

1. 배경

 

1) 단순화의 필요성

 

기존의 Object Detection 모델인 DPM 등의 classification 과정은 매우 복잡했다.

 

다양한 필터의 hog feature과 각각 필터를 적용한 후 SVM을 이용해서 classification을 한 이후

 

ensemble 기법을 거쳐 최종 classification을 했기 때문이다.

 

DPM (Deformable Parts Model)

 

 

 

2) 시간복잡도

 

다양한 크기의 resolution 에서 bounding box를 생성해내고 이의 각각에 대해서 dpm classification 을 수행한다면 시간이 오래 걸린다.

 

이는 2012년까지 최고의 성능을 보인 object detection모델이다.

 

이후 AlexNet으로 큰 변화가 오게 되었다.

 

 


 

 

2. 구조

 

RCNN 의 세 가지 module

  1. Extract region proposals
  2. Compute CNN features
  3. Classify regions

 

 

 

1. Extract region proposals ( Region proposals)

 

이미지내에서 bounding box 가 될 후보들을 선별한다.

 

객체가 될 만한 영역들에 대해 candidate bounding box를 선별하는 것이다.

(객체가 될 만한 영역들이란 인접픽셀과 픽셀값이 큰 차이를 보이는 것이 될 것이다.)

 

 

candidate bounding box를 선별(proposal) 해주는 것이 Region proposal 이다. 

(object detection의 classification+localization 중 localization을 위한 기법이다.)

 

RCNN에서의 proposal 방식은 selective search 이다.

 

 

2. Feature Extraction

 

1번 과정에서 선별된 candidate bounding box들은 특징을 추출하기 위해 각각마다 CNN이 수행된다.

 

보통 특징을 softmax로 분류하는데 RCNN에서는 CNN으로 feature만 추출하고 classification은 SVM방식을 택했다.

 

RCNN에서의 feature extraction 은 AlexNet을 사용했다.

 

 

 

 

 

3. Classification 

 

2번 과정에서 AlexNet으로 feature extraction을 한 후에는 SVM을 통해 classification을 하게 된다.

 

 


 

 

3. Training과정

 

Training 은

1) SVM이용한 Classification과

2) bounding box를 그리는 localization

으로 나뉜다.

 

따라서 따로 학습이 된다.

 

1. SVM 이용한 Classification 학습

 

RCNN에서는 ILSVRC2012에서 pretrained 된 AlexNet 을 transfer-learning 하여 사용했다.

 

기존 AlexNet의 softmax를 제거하고 SVM(Multiclass SVM)을 연결해주어 사용했다.

 

따라서 Classifier인 SVM을 학습시키는 것이 목적이다.

 

RCNN을 classification하는 것은 기본적으로 selective searuch를 통해 선별된 candidate bounding box에 대해서 학습을 진행해야 한다는 것이다.

 

Ground truth 데이터와 선별된 bounding box와 IoU가 50% 이상이면 positive로 판단하고 아니라면 negative로 인식한다.

 

선정된 + positive 인 bounding box에 대해서만 학습이 된다.

 

 

2. bounding box 그리는 localization 학습

 

bounding box는 Region proposals 에서 후보들을 선벽하여 그려줬을 것이다.

 

이에 사용된 기법은 Selective search였다. 이의 결과가 GT와 맞지 않을 경우에는 GT와 좌표정보를 비교하여 regression 문제로 바꿔주면 된다.

 

candidate bounding box가 GT의 box를 보고 위치를 학습하게 될 것이다.

 

 

 

이렇게 GT와 좌표값을 비교해서 조금씩 조정하여 localization 성능을 향상시켜 가는데 조금씩 조정하는 과정은 regression(회귀)문제로 정의할 수 있다.

 

 

 

 


 

 

References

89douner.tistory.com/88?category=878735

blog.lunit.io/2017/06/01/r-cnns-tutorial/?

https://better-today.tistory.com/3

반응형