하나의 library가 아니라 여러 개의 library가 사용되고 있다. 그 중에 주로 MMDetection과 Detectron2가 주로 사용되고 있다.
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
Facebook AI Research의 Pytorch 기반 라이브러리
Object detection 외에 Segmentation, Pose prediction등 알고리즘 제공
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 구조
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
LR_Scheduler
Weight Decay
Clip_Gradient