부스트캠프 10주차 Object Detection Library 정리

kimkihoon·2022년 4월 9일
1

부스트캠프 AI

목록 보기
35/49

Object Detection Library

하나의 library가 아니라 여러 개의 library가 사용되고 있다. 그 중에 주로 MMDetection과 Detectron2가 주로 사용되고 있다.

MMDetection

2-stage 모델은 크게 Backbone,Nectk,DenseHead,RoIHead로 나눌 수 있다. 각 부분은 모두 config를 통해 수정이 가능하다.

backbone은 입력이미지를 feature map으로 변환한다. Neck은 feature map을 재구성한다. DenseHead에서 localization을 수행하고 RoIHead에서 bbox regression, classification을 수행한다.

라이브러리 및 모듈 import

config file 불러오기

config file 수정하기

모델, dataset build

학습

Config file 구조
Configs를 통해 모델, scheduler, optimizer를 정의할 수 있다.

Pipeline

Model

  • backbone : 입력이미지를 feature map으로 변형해주는 네트워크
  • Neck : Backbone과 Head를 연결하고 Feature map을 재구성한다.
  • RPN_head : Region Proposal Network, RPNHead, Anchor_Free_Head, Anchor_Generator, Bbox_coder, Loss_cls, Loss_bbox
  • RoI_head : Region of Interest, StandardRoIHead, CasecadeRoIHead, bbox_roi_extractor, bbox_head

커스텀 모델 등록

  1. 새로운 backbone 등록
  2. 모듈 import
  3. 등록한 backbone 사용
  4. Runetime settings
  5. Optimizer
  6. Training Schedules
  • learning rate
  • runner

Detectron2

Facebook AI Research의 Pytorch 기반 라이브러리
Object detection 외에 Segmentation, Pose prediction등 알고리즘 제공

Pipeline

Setup Config

Setup Trainier

  • build_moder
  • build_detection
  • build_optimizer
  • build_lr_scheduler

Start Training

라이브러리 및 모듈 import

Dataset 등록

Config file 불러오기

Config file 수정하기

Augmentation mapper 정의

  • Detectron은 따로 pipeline이 없다. 그래서 자유도가 높은 반면 구현난이도가 높다.

Trainer 정의

Train

Config file 구조

  • Dataset Config
  • Dataloader Config

Train, Test에 각각 등록한 데이터셋의 이름을 입력하여 등록을 완료한다.

Config file에 train과 test dataset을 명시해서 사용할 수 있도록 한다.

Data Augmentation

  • Dataloader에 mapper를 input 으로넣는다.

모델 구성

BackBone : 입력 이미지를 Feature map으로 변형시켜주는 네트워크
새로운 BackBone등록

등록한 backbone 사용

FPN : BackBone과 Head를 연결하여 Feature map을 재구성한다.

Anchor Generator

RPN

RoI Head

RoI box head

Solver

LR_Scheduler

Weight Decay

Clip_Gradient

0개의 댓글