네이버 AI 부스트캠프 4기 : P-stage Object Detection 1

nask·2022년 11월 15일

Object Det 1강 : Object Detection Overview

Task

  • 물체 위치 식별 + 물체 판별

  • 두 개 이상의 객체 존재 가능(classification에 비해 조금 더 어려운 task)

  • Real world에 적용 가능성 큼

History

Evaluation

성능

  • mAP(mean Average Precision)를 사용

  • mAP란, 각 클래스 당 AP의 평균을 의미

  • PR Curve란, 누적 recall 값을 x좌표로, 누적 precision을 y좌표로 그린 그래프

  • AP란, PR Curve 아래의 면적

  • IOU란, precision과 recall을 계산하기 위한 정확한 detect의 기준으로 ground truth와 prediction가 있을 때 두 영역 간 겹치는 영역을 두 영역의 합으로 나눈 값

  • IOU40, IOU50 등 기준 값을 다르게 설정 가능

속도

  • FPS

  • FLOPs(Floating Point Operations)
    Model이 얼마나 빠르게 동작하는지 측정하는 metric으로, 주로 덧셈이 아니라 곱셈만 계산

    convloution opertaions example

라이브러리

MMDetection

Detectron2

YOLOv5

EfficientDet

Object Detection Domain 특성

• 통합된 library의 부재
• 엔지니어링 적인 측면 강함
▪ 어떤 모델이 풀고자 하는 문제에 적합한지 실험적인 증명이 필요
▪ Custom, tuning 하는 과정에서 개발 수준의 활용 필요
• 복잡한 파이프라인
• 높은 성능을 내기 위해서 무거운 모델을 활용
• Resolution이 성능에 영향을 많이 끼쳐 사진의 크기가 큼


Object Det 2강 : 2 Stage Detectors

  • 물체 위치 인식 + 물체 식별 등 2개의 stage로 물체 판별하는 알고리즘

R-CNN

  • 딥러닝을 이용한 첫번째 detection model

Process

1) Sliding Window나 Selective Search 이용해 약 2000개 Region 추출하고 warping으로 모두 동일한 사이즈로 크기 조정

2) Pretrained AlexNet 구조 활용해 각 Region을 CNN을 통해 4096-dim의 feature maps 생성

3) 각 feature map을 SVM을 통해 분류(배경으로 식별하기 어려운 샘플들을 강제로 다음 배치의 negative sample로 mining하는 Hard negative mining 사용)

4) 각 featrue map을 regression을 통해 bounding box 예측

Shortcomings

1) 2000개의 Region을 각각 CNN 통과
2) 강제 Warping(fc layer때문) -> 성능 하락 가능성
3) CNN, SVM classifier, bounding box regressor 따로 학습
4) End-to-End X

SPPNet

  • R-CNN의 강제 warping 문제를 Spatial Pyramid Pooling으로 해결

  • 모든 region이 CNN 통과하는 문제를 처음 한 번만 CNN을 통과시키고 나온 feature maps에서 region 추출하도록 함으로써 해결

Process

1) input image를 CNN을 통과시켜 feature maps 생성

2) Selective Search 이용해 RoI 추출

3) Spatial Pyramid Pooling으로 RoI들을 고정된 크기의 feature vector로 만듦

4) SVM으로 분류

5) bouning box 예측

Shortcomings

1) CNN, SVM classifier, bounding box regressor 따로 학습
2) End-to-End X

Fast R-CNN

  • Softmax Classifier과 Bouding Box Regressor 한 번에 학습

Process

1) input image를 CNN(VGG16)을 통과시켜 feature maps 생성

2) Selective Search와 RoI projection으로 줄어든 크기에 맞게 feature maps 생성

3) RoI Pooling으로 feature maps의 크기를 고정(SPP와 유사)

4) FC 이후 Softmax Classifier와 Bounding box regeressor

Training

  • multi task loss 사용

  • classification loss : Cross entropy

  • bounding box regression : Smooth L1

  • Dataset 구성
    • IoU > 0.5: positive samples
    • 0.1 < IoU < 0.5: negative samples
    • Positive samples 25%, negative samples 75%

  • Hierarchical sampling
    • 한 배치에 한 이미지의 RoI만을 포함
    • 한 배치 안에서 연산과 메모리를 공유할 수 있음

shortcoming

  • End-to-End X (region proposal이 학습 안 됨)

Faster R-CNN

  • RPN을 사용해 region proposal도 학습에 포함(end-to-end)

Process

1) input image를 CNN(VGG16)을 통과시켜 feature maps 생성

2) RPN을 통해 RoI 계산(Anchor box)

  • cls prediction에서 가장 높은 n개의 anchor box에 대해서만 box prediction 실행

3) NMS로 중복 box 제거 : 박스를 스코어 기준 내림차순 정렬 후 순서대로 기준 box를 대상으로 설정한 IoU보다 높은 경우 그 박스를 제거

4) Softmax Classifier와 Bounding box regeressor

Training

  • RPN 단계에서 classification과 regressor학습을 위해 앵커박스를 positive/negative samples 구분

  • 데이터셋 구성
    • IoU > 0.7 or highest IoU with GT: positive samples
    • IoU < 0.3: negative samples
    • Otherwise : 학습데이터로 사용 X

  • RPN과 Fast를 4단계를 거쳐 학습해 복잡함 -> 최근엔 Approximate Joint Training

Summary

0개의 댓글