본문 바로가기
AI, 빅데이터/AI

[AI] R-CNN 내용 정리

by Foxy현 2023. 10. 12.
728x90
반응형

Object Detection

컴퓨터 비전과 이미지 처리 분야에서, Object Detection은 디지털 이미지와 비디오에서 특정한 계열의 Semantic Instance를 자동으로 감지하는 기술입니다. 이미지 내에서 사물의 위치와 클래스를 정확하게 찾는 작업을 포함하며, 그 중에서도 얼굴 검출, 보행자 검출과 같은 다양한 응용 분야에서 활용되고 있습니다.

 

 

 

물체에 대해 어떠한 물체인지 클래스를 분류하는 문제와, 그 물체가 어디 있는지 Bounding Box를 통해 위치 정보를 나타내는 Localization 문제를 포함하고 있습니다.

 

크게 두 방법으로, 나눠져 있으며 1-Stage Detector, 2-Stage Detector로 구분할 수 있습니다.

1-Stage Detector : 물체의 위치를 찾는 문제와 분류 문제를 한 번에 해결

-> 대표적으로 YOLO

 

 

2-Stage Detector : 물체의 위치를 찾는 문제와 분류 문제를 순차적으로 해결

-> 대표적으로 R-CNN

 

이 분야에 딥러닝을 적용한 최초의 모델이자, 여러 변형된 모델들을 나오게 한 R-CNN에 대해 알아보겠습니다.

 

R-CNN

Regions with Convolution Neural Networks Features의 약자로, 설정한 Region을 CNN의 Feature로 활용하여 Object Detection을 수행하는 신경망이라는 의미입니다.

 

RCNN은 물체 검출을 두 가지 주요 단계로 분리합니다. 이러한 두 가지 단계는 아래와 같습니다:

Region Proposal (물체의 위치를 찾는 단계): RCNN은 먼저 입력 이미지에서 물체가 있을 것으로 예상되는 영역을 찾는 과정으로 시작합니다. 이를 Region Proposal이라고 합니다. 이 과정에서는 이미지 내의 다양한 후보 영역을 생성하며, 이러한 후보 영역은 물체의 위치 후보로 간주됩니다.
Region Classification (물체를 분류하는 단계): Region Proposal에서 생성된 후보 영역들은 각각 물체인지 아닌지를 분류하는 작업을 거칩니다. 이를 Region Classification이라고 합니다. 분류는 물체의 클래스(예: 개, 고양이, 자동차)를 결정하는 것을 의미하며, 이 과정에서 딥러닝 모델, 주로 CNN(Convolutional Neural Network)을 사용합니다.

Region Proposal 단계에서는 물체가 있을 것으로 예상되는 후보 영역을 생성합니다. 이 단계는 아래와 같은 과정을 거칩니다:

  • 입력 이미지를 CNN에 통과시켜 특징을 추출합니다.
  • 추출된 특징 맵에서 슬라이딩 윈도우 기법을 사용하여 가능성 있는 물체 후보 영역을 생성합니다.
  • 후보 영역의 크기와 모양을 조절하여 물체의 위치를 정확하게 나타내는 Region of Interest (ROI)를 얻습니다.
  • 이렇게 얻은 ROI를 고정된 크기의 Feature Vector로 변환한 후, 이를 다음 단계인 Region Classification의 입력으로 사용합니다.

이후에 다음 세 가지 주요 단계를 수행합니다: 

Convolutional Neural Network (CNN), Support Vector Machine (SVM), 그리고 Bounding Box Regression. 이러한 단계들은 RCNN의 완전한 동작 과정을 완성하는데 필수적입니다.

 

Convolutional Neural Network (CNN): Region Proposal 단계에서 생성된 후보 영역, 즉 ROI(Region of Interest),는 고정된 크기의 패치 또는 이미지 부분입니다. 이러한 ROI는 이미지를 CNN에 통과시켜 특징을 추출하는데 사용됩니다. 이 과정에서 CNN은 ROI의 특징을 추출하고, 추출된 특징을 활용하여 ROI 내에 어떤 물체가 있는지를 예측합니다. 이렇게 CNN을 사용하여 물체의 특징을 추출하고 분류하는 단계를 통해 물체를 식별합니다.
Support Vector Machine (SVM): RCNN에서 CNN을 통해 추출된 특징은 물체의 분류를 위해 사용됩니다. 그러나 이 특징을 바로 물체 분류에 사용하지 않고, SVM과 같은 분류기를 적용합니다. SVM은 CNN에서 추출한 특징을 입력으로 받아 물체의 클래스(예: 고양이, 자동차)를 예측하는 데 사용됩니다. SVM은 분류 과제에서 뛰어난 성능을 제공하며, RCNN에서 물체의 클래스를 결정하는 데 중요한 역할을 합니다.
Bounding Box Regression: 물체의 위치를 정확하게 파악하기 위해 Bounding Box Regression이라고 하는 기술을 사용합니다. 이 기술은 Region Proposal에서 생성된 초기 ROI의 위치를 미세하게 조정하여 정확한 물체의 위치와 경계 상자를 얻습니다. 즉, 초기 ROI를 더 정확하게 물체 주위로 맞추는 작업을 수행하며, 이는 물체 검출의 정확도를 높이는 데 기여합니다.

 

이렇게 RCNN은 Region Proposal을 통해 초기 후보 영역을 생성하고, CNN을 통해 특징을 추출하며, SVM을 사용하여 물체를 분류하고, Bounding Box Regression을 통해 물체의 정확한 위치를 파악합니다. 이러한 단계들을 통해 RCNN은 이미지에서 물체를 검출하고 분류하는 강력한 물체 검출 시스템을 형성합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형