컴퓨터비전 - 2Stage Detector

Sylen·2024년 7월 29일

Dive to Computer Vision

목록 보기
11/16

2-Stage Detector

R-CNN

  • 2-stage Detector로 Region Proposals 단계를 수행
  • R-CNN의 개선된 모델인 Fast R-CNN, Faster R-CNN 모델의 기반이 됨
  • CVPR 2014에 출판된 논문으로, 2-Stage Detector 분야의 초기 모델
    cc
  1. Input Image
  2. Region Proposals : 인풋된 이미지에 대한 Proposals (ROI)
  3. Warped Region : ROI 부분을 잘라서 고정된 사이즈로 리사이즈
  4. Backbone : 리사이즈된 이미지를 CNN backbone에 통과
    5-1. SVM Classifier
    5-2. Bbox Regressor

Region Proposals

  • Selective Search 기법으로 2000개의 ROI(Region of Interests)를 추출
  • 룰 기반의 CPU 연산 (GRAPHIC 연산이 아님)

Selective Search : 인접한 영역끼리의 유사성을 측정해 큰 영역으로 차례차례 통합

Warped Region

  • 각 ROI에 대하여 동일한 크기의 이미지로 변환

Backbone

  • Region Proposals마다 각각의 backbone (CNN)에 넣어서 결과를 계산

Output

  • SVM : 각 Region Proposals 마다 SVM으로 CLASS 분류 결과 예측
  • Bbox Regression : Backbone의 Feature를 Regression으로 Bounding Box 위치 예측

Limitation

  • CPU 기반의 Selective Search기법으로 인해 많은 시간이 필요
  • 2000개의 ROI로 인하여 2000번의 CNN 연산이 필요

Fast R-CNN

원본 이미지에 대해 딱 한번의 CNN 연산만 넣어서 Feature Map 생성

RoI Pooling

  • 각 RoI영역에 대해 Max Pooling 이용
  • 고정된 크기의 Vector 생성

Output

  • Pooling Layer와 FC Layer를 거쳐, Feature Vector생성
  • Softmax Classifier : 각 RoI의 Class를 추론
  • Bbox Regressor : 각 RoI의 Bounding Box 크기 및 위치를 조정함

Limitation

  • Selective Search 기법을 여전히 이용함, CPU 기반 연산으로 시간이 오래걸림

Faster R-CNN

Faster R-CNN(Region-based Convolutional Neural Networks)의 Region Proposal Network(RPN)에 대해서 설명하겠습니다. 중학생도 이해할 수 있도록 친절하고 자세히 설명할게요.

1. Faster R-CNN의 기본 개념

Faster R-CNN은 이미지를 보고 그 안에 어떤 객체가 있는지, 그리고 그 객체가 어디에 있는지 찾아내는 인공지능 모델입니다. Faster R-CNN은 두 가지 주요 부분으로 나뉩니다:
1. Region Proposal Network (RPN)
2. Object Detection Network

2. Region Proposal Network (RPN)

RPN은 이미지에서 물체가 있을 법한 후보 영역(region)을 찾아주는 역할을 합니다. RPN은 세 가지 주요 개념으로 설명할 수 있습니다: Anchor Box, Sliding Window, Feature Map.

2.1 Anchor Box

  • Anchor Box: 이미지의 다양한 위치에 미리 정의된 여러 크기와 비율의 박스들입니다. 예를 들어, 작은 박스, 큰 박스, 세로로 긴 박스, 가로로 긴 박스 등 여러 종류의 박스가 있습니다. 각 위치마다 이런 다양한 모양의 박스들이 존재하게 됩니다.

2.2 Sliding Window

  • Sliding Window: 이미지를 일정한 크기의 창(window)으로 나눠서 그 창을 일정한 간격으로 움직여가며 이미지 전체를 훑는 방식입니다. 각 창마다 Feature Map을 통해 얻어진 특성들을 분석하게 됩니다.

2.3 Feature Map

  • Feature Map: 이미지에서 중요한 특성(feature)들을 뽑아낸 결과입니다. 이미지를 CNN(Convolutional Neural Network)으로 처리하면 Feature Map이 생성되는데, 이 Feature Map은 이미지의 중요한 특징들을 담고 있습니다.

3. RPN의 작동 과정

  1. 이미지 입력: 원본 이미지를 CNN에 입력합니다.
  2. Feature Map 생성: CNN은 원본 이미지를 여러 층(layer)을 통해 처리해서 Feature Map을 생성합니다.
  3. Sliding Window 적용: Feature Map 위에 일정한 크기의 창(window)을 일정 간격으로 이동시키면서 분석합니다.
  4. Anchor Box 적용: 각 창마다 미리 정의된 여러 크기와 비율의 Anchor Box를 배치합니다.
  5. Cls Layer: 각 Anchor Box가 물체를 포함하는지 여부를 판별하는 분류(classification) 층입니다. 여기서 각 Anchor Box가 물체인지 배경인지 분류합니다.
  6. Reg Layer: Anchor Box의 위치를 더 정확하게 조정하는 회귀(regression) 층입니다. 여기서 Anchor Box의 좌표를 조정하여 물체의 정확한 위치를 예측합니다.

4. 요약

  • Anchor Box: 여러 크기와 비율로 미리 정의된 박스들입니다.
  • Sliding Window: 이미지를 일정한 크기로 나누어 이동하면서 분석하는 방법입니다.
  • Feature Map: 이미지의 중요한 특징을 추출한 결과입니다.
  • Cls Layer: Anchor Box가 물체를 포함하는지 분류합니다.
  • Reg Layer: Anchor Box의 위치를 정확하게 조정합니다.

Faster R-CNN의 RPN은 이렇게 작동하여 이미지에서 물체가 있을 법한 영역을 찾아내고, 그 영역들을 더 정확히 분류하고 조정하여 물체의 위치를 예측합니다. 이렇게 찾아낸 후보 영역들은 이후의 Object Detection Network에서 정확하게 어떤 물체인지 판별하는 데 사용됩니다.

Test Process

NMS : Non Maximum-Suppression

  • 중복된 경계 Bbox를 제거하여 최종 객체 감지 결과를 정리하고 정확도를 높이는 기술
  • 각 클래스 마다 Score가 가장 높은 박스와 IoU가 특정 기준이상 (e.g. 0.7)인 박스 제거
profile
AI가 재밌는 걸

0개의 댓글