👮‍♀️ Object Detection과 Segmentation 이해

Object Detection - DL 기반으로 발전

  • 딥러닝이 컴퓨터 비전에 자리잡은 기점
    • 2012년, AlexNet이 ImageNet competition에서 우승
      • 딥러닝 기반의 CNN
    • PASCAL VOC
      • Object Detection Competition
      • 2012년까지 40%대 유지
      • 최근, 70% 후반까지 성장

Localization/Detection/Segmentation

  • Classification
    • 가장 처음 거치는 과정
    • CNN Convolution 연산 적용
      • Feature map의 특성을 기반으로 대상 구분
    • 대상이 맞는가, 아닌가
  • Object Detection
    • Object(s)의 위치를 찾아내는 것
    • 종류
      • Localization
      • Detection
      • Segmentation
  • Localization
    • 하나의 이미지 안에서 하나의 대상(object) 탐지
    • 단 하나의 Object 위치를 Bounding box로 지정하여 찾음
    • 상대적으로 쉽다
  • Detection
    • 하나의 이미지 안에 여러 대상(object) 존재
    • 여러 개의 Object들에 대한 위치를 Bounding box로 지정하여 찾음
  • Segmentation
    • Detection보다 더 발전된 형태로 Pixel 레벨 Detection 수행
      • 보다 더 정밀한 예측

Localization vs. Detection

  • 공통점
    • 해당 Object의 위치를 Bounding Box로 찾는다
    • Bounding Box 내의 Object 판별
    • Bounding Box Regression(Box의 좌표값 예측) + Classification
      • Regression: 연속된 값 예측
  • 차이점
    • Localization에 비해 Detection은 두 개 이상의 Object들을 이미지의 임의의 위치에 찾아야 한다
      • 상대적으로 여러 어려운 문제에 봉착

Object Detection History

  • Traditional Detection Methods
    • 알고리즘 기반 Object Detection
    • 2012년 AlexNet 등장 이전
  • Deep Learning Based Detection Methods
    • 딥러닝 기반
    • 2014년, RCNN 계열
    • One-stage detector / Two-stage detector
  • One-stage detector
    • Detect 바로 적용
    • YOLO
      • 수행 시간에 집중, 성능 bad
      • v2: 성능 향상
    • SSD
      • 좋은 예측 성능 + speed
    • Retina-Net
    • EfficientDet
  • Two-stage detector
    • Object가 있을만한 위치를 미리 참조
    • Faster RCNN
    • Pyramid Networks
    • 성능이 좋으나 속도가 느림
    • 실시간 적용 어려움

👮‍♀️ Object Detection 주요 구성 요소

Object Detection 주요 구성 요소

  • 영역 추정
    • Object가 있을만한 위치를 미리 알려준다
    • Bounding Box Regression
  • Deep Learning network 구성
    • Feature Extraction(백본)
      • + classification
    • Network Prediction
      • + classification
      • + regression
      • HEAD
    • FPN
      • NECK
      • 위 두 항목 연결

일반적인 Object Detection 모델

  • FPN(neck)
    • 작은 Object들에 대한 정보를 체계화하는 역할
      • 백본 처리 용이
  • HEAD에서 classification과 regression 수행

Object Detection의 난제

  • classification과 regression을 동시에 수행
    • 두 layer가 각각 필요
    • 두 항목 모두에 최적화된 loss 함수 필요
    • 이미지에서 여러 개의 물체를 분류함과 동시에 위치도 찾아야 한다
  • 다양한 크기와 유형의 Object가 섞여 있다
    • 크기 서로 다르고 생김새가 다양한 Object가 섞여 있는 이미에서 Detect 수행
    • 만들어진 feature map을 기반으로 detect 수행
      • 원본 이미보다 훨씬 작은 feature map
      • detect 어렵다
  • Detect 시간 중요
    • Detect 시간이 중요한 실시간 영상 기반에서 Detect해야 하는 요구사항 증대
      • CCTV 분석, 자율 주행 등
      • 복잡한 알고리즘일수록 수행 속도 감소
  • 명확하지 않은 이미지
    • Object 이미지가 명확하지 않은 경우가 많음
    • 전체 이미지에서 detect할 Object가 차지하는 비중이 낮음
      • 배경이 대부분을 차지
  • 데이터셋 부족
    • 훈련 가능한 데이터셋 부족
      • MS Coco dataset 80개
      • Google Open Image 500개
    • 데이터셋 생성의 어려움
      • 생성 시, annotation 필요
      • bounding box

👮‍♀️ Object Localization과 Detection의 이해

Object Localization

  • classification과 유사한 절차
    • 원본 이미지 >> Feature Extractor >> Feature Map >> FC Layer >> Soft max Class score
  • 원본 이미지: 224 * 224
  • Feature Extractor
    • VGG(백본)에 이미지 입력
    • 이미지에서 중요한 feature 뽑아냄
  • Featur Map
    • 사이즈 감소: 7 * 7
    • 채널 수 증가: 512
    • 추상화된 이미지
    • 대상 학습(image-lable mapping)
  • FC Layer
    • dense layer
    • fully connected layer
  • Soft max Class score
    • car vs. dog vs. cat
    • 확률 계산 >> 점수(scoring)
  • Annotation 파일
    • bounding box에 대한 좌표값
  • Object Localization
    • Feature Map의 결과
      • Bounding Box Regression 포함
  • Bounding Box 학습
    • 원본 이미지부터 학습 반복
      • 가중치 update
    • bounding box의 예측 오류 줄여 나가는 과정
    • 여러 이미지와 bounding box 좌표로 학습
      • 특정 feature 고정
  • Object Localization 예측 결과
    • class: 대상
    • confidence score: 확률
    • 좌표

Object Detection

  • 두 개 이상의 Object를 검출
    • 이미지의 어느 위치에서 Object를 찾아야 하는가?
    • object localization을 그대로 적용하면 정확도 감소
      • 여러 개의 Object로 인한 혼동
  • Object가 있을 법한 위치를 먼저 알려주는 것이 중요!
    • Region Proposal 학습 필요

👮‍♀️ 영역 추정과 슬라이딩 윈도우와의 비교

Object Detection - 두 개 이상의 Object를 검출

  • Object Detection의 어려움
    • binding box regression 학습만으로는 inference 어렵다
    • 비슷한 object가 너무 많다
      • 유사한 feature들이 많다

슬라이딩 윈도우(Sliding Window) 방식

  • Windows를 왼쪽 상단에서 오른쪽 하단까지 이동시키면서 detect하는 방식
  • 특정 영역에서의 특성을 학습된 feature와 매칭
  • Object Detection의 초기 기법으로 활용
  • 수행 시간이 오래 걸리고 검출 성능이 상대적으로 낮다
    • 여러 형태의 window와 여러 scale을 가진 이미지 스캔해서 검출
    • Object가 없는 영역도 무조건 슬라이딩해야 한다
  • 영역 추정 기법의 등장으로 활용도 감소
    • but Object Detection 발전을 위한 기술적 토대 제공
  • 슬라이딩 윈도우의 두 가지 방법
    • 다양한 형태의 Window를 각각 sliding 시키는 방식
      • 서로 다른 anchor box의 유형으로 발전
    • Window Scale은 고정하고 scale을 변경한 여러 이미지를 사용하는 방식
      • SSD(여러 사이즈의 feature map으로 추출) >> FPN
    • 두 방법을 혼합해서 사용하기도 한다

이미지 scale 조정에 따른 여러 크기의 Object Detection

  • 이미지 scale을 감소시키면서 고정된 window 안에 있는 Object Detect
  • 첫번째 사진
    • 좌측 두 사람 Detect 가능
      • but 여러 Object들이 혼재되어 있어 detect 혼동 가능성

Region Poposal(영역 추정) 방식

  • Region Proposal
    • 목표
      • Object가 있을 만한 후보 영역을 찾는 것
    • 절차
      • 원본 이미지 >> select >> 후보 Bounding Box 선택 >> 최종 후보 도출 >> 최종 Object Detection
  • 슬라이딩 윈도우와의 차이
    • 슬라이딩 윈도우
      • 순차적으로 이미지의 모든 영역 탐색
    • region proposal
      • 모든 영역X >> 후보 영역 추출
      • 대상이 있을 법한 위치 선정

Selective Search - 대표적인 Region Proposal 방법

  • Selective Search
    • 빠른 detection과 높은 recall 예측 성능을 동시에 만족하는 알고리즘
      • 딥러닝 알고리즘과 통합되는 과정에서 시간 소요
    • 색상, 무늬(Texture), 크기, 형태에 따라 유사한 Region
      • 계층적 그룹핑 방법으로 계산
      • + edge(경계) detect
    • 최초에는 Pixel Intensity에 기반한 graph-based segment 기법을 따름
      • Segmentation: 픽셀 단위, 매우 촘촘함
      • Over Segmentation 수행
      • 각각의 Object들이 1개의 개별 영역에 담길 수 있도록 많은 수의 초기 영역 생성
    • 원본 이미지 >> 최초 Segmentation(Over Segmentation) >> 후보 Objects

Selective Search의 수행 프로세스

  • 개별적으로 Segment 된 모든 부분들에 bounding box 생성
    • Region Proposal 리스트 추가
  • 색상, 무늬, 크기, 형태에 따라 유사성이 비슷한 Segment들을 그룹핑
  • 두 과정을 계속 반복하면서 Region Proposal 수행
* 출처: 인프런 - 딥러닝 컴퓨터 비전 완벽 가이드
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글