Object Detection

InSung-Na·2023년 6월 17일
0
post-thumbnail

학습영상: 메타코드-딥러닝 강의 컴퓨터 비전 인식모델 개발 2편
출처: 메타코드M


Object Detection

  • 사진 속의 모든 객체를 인지하는 문제
  • 클래스분류(Classification) + 위치탐색(Localization)
  • Boundry Box를 생성해서 객체의 클래스와 위치를 표기
    • 4개의 좌표 생성(상자의 중심점과 폭, 높이 or 상자의 좌상단과 우상단 좌표)
    • YOLO: center_x, center_y, width, height

Single Object

  • 이미지에 단일 대상이 존재하는 단일 객체 탐지

Sliding window

  • Single Object에서 Multiple Object를 수행하는 경우, 한 이미지에 여러 객체가 존재하는데 이를 하나의 객체로 취급하여 올바른 클래스 분류를 수행할 수 없게 됨
  • 해결책: 이미지 내에서 일부 window를 생성하고 그 안에서 Object Detection를 수행
    • 단점: 많은 윈도우를 생성하므로 계산이 너무 많다(고비용, 저속도)
  • 초기에 작은 영역들을 생성한 후, 이를 색깔, 질감, 크기, 위치 등의 특징을 사용하여 유사한 영역들을 합쳐가며 큰 영역 생성
  • 이러한 계층적인 결합과정을 통해 객체와 배경의 경계를 찾아내고, 객체가 있을 가능성이 있는 영역(Region of Interest, ROI, 관심영역)을 제안

모델 형태

One-Stage Detector

  • Clasification과 Regional Proposal을 동시에 수행하는 방법
  • 비교적 빠르지만 정확도가 낮음
  • YOLO계열, SSD
    출처: 가짜연구소

Two-Stage Detector

  • Clasification과 Regional Proposal을 순차적으로 수행하는 방법
  • 비교적 느리지만 정확도가 높음
  • RCNN계열
    출처: 가짜연구소

R-CNN 계열 모델

RCNN

  • 기존 이미지에서 Region Proposal 생성(약 2000개)
  • 영역을 warp(crop, resize) 작업수행
  • CNN으로 feature map 생성
  • Regressor로 bounding box 조정, SVM으로 class 예측
    • 클래스 수:예측 수 + 1, (background 분류를 위해 +1)
  • 단점
    • 이미지변형이나 손실, 후보영역만큼 CNN을 수행하므로 고비용, 저속도

Fast RCNN

  • CNN으로 먼저 feature map을 생성, region proposal을 수행
  • MaxPooling 등을 활용해서 ROI에 적용(=RoI Pooling Layer)
  • RoI Pooling으로 Feature vector 생성
  • FC Layer를 거쳐서 Softmax를 통해 분류, Regressor로 bounding box 조정

Faster RCNN

  • Selective Search 부분을 딥러닝으로 바꾼 Region Proposal Network(RPN) 사용
  • Feature map에서 CNN 연산시 sliding-window가 찍은 지점마다 Anchor-box로 후보영역을 예측
    • Anchor-box: 미리 지정해놓은 여러 개의 비율과 크기의 Bounding-box
  • RPN에서 얻은 후보영역을 IoU순으로 정렬하여 Non-Maximum Suppression(NMS) 알고리즘을 통해 최종 후보영역을 선택
  • RoI Pooling을 거치고 이후 Fast R-CNN과 동일하게 진행

YOLO

학습절차

  • 입력 이미지를 처음부터 grid로 나누고 각 grid별로 bounding box와 class를 예측, box별 confidence도 함께 예측
  • 각 셀은 5*B+C의 데이터 수를 가지고 있음
  • 각 cell마다 B=2개의 bbox를 예측해, 7*7*B개의 class score vector를 얻고 Nonmaximum suppression(NMS)로 정제함
  • object마다 하나의 bbox를 갖도록 함

Non maximum suppression (NMS)

  • 동일한 객체에 대해 겹치는 정도(IOU; Intersection Of Union)가 높은 순서대로 정렬함.
  • Score가 가장 높은 경계상자를 기준으로 Threshold를 설정해 후보군을 줄임.

0개의 댓글