코린이의 공부일기

[Boost Camp]MMDetection & Detectron2 본문

BOOST CAMP_정리

[Boost Camp]MMDetection & Detectron2

SOJUNG 2021. 9. 29. 02:28

MMDetection

 

- Pytorch 기반의 Object Detection 오픈소스 라이브러리

 

 

Pipeline

 

-input image는 backbone을 통과한 후 Neck(feature map)이 나오며 각각의 feature map에서 RoI을 예측한다.

box prediction과 class prediction을 진행해 예측한다.

 

 

-MMDetection의 pipeline은 detection pipeline과 굉장히 유사하다.

DenseHead - RPNHead(localization)

RoIHead - Box head, classification head

-각각의 모듈 단위로 커스터마이징

-config파일을 이용해 통제할 수 있다.

 

 

여기서 Config파일은 무엇일까 ?

 

-Config을 통해 dataset부터 scheduler, optimizer 정의가 가능

-특히, configs에는 다양한 object detection 모델들의 config파일들이 정의돼 있음

-그 중, configs/base/폴더에 가장 기본이 되는 config파일 존재

-> dataset model, schedule, default_runtime 4가지 기본 구성요소 존재

-각각의 base/폴더에는 여러 버전의 config들이 담겨있다.

*Dataset -COCO,VOC,Cityscape등

*Model-faster_Rcnn,retinanet,rpn등

 

 

-제공된 베이스코드는 Coco dataset 기준이기 때문에 목적에 알맞게 Train dataset으로 변경해주어야 한다.

 

 

파이프라인 둘러보기

 

 

 

1. 라이브러리 및 모듈 inport & config file을 들고오기

2. config 수정하기

 

 

class의 이름과 이미지위치, annotation위치, 이미지의 크기 다 변경해준다.

 

3. 모델 , 데이터셋 build

 

 

4. 학습

 

 

 

 

Detectron2

 

 

-Facebook AI Research의 Pytorch 기반 라이브러리

-Object detection 외에도 Segmentation, Pose prediction등 알고리즘도 제공

 

 

pipeline

 

-Setup Config/Setup Trainer/Start Training

 

1.Setup Config

 

base config파일을 load하고 argument을 통해 수정하고 싶은 추가로 parsing할 수 있다.

 

 

2. Setup Trainer

 

학습상태를 만들어준다.

 

3. Start Training

 

파이프라인 둘러보기

 

 

1.라이브러리 및 모듈 import하기

 

2.데이터셋 등록하기

 

-커스텀 데이터셋을 사용하고자 할 때는 데이터셋을 등록해야한다.

-전체 데이터셋이 공유하는 정보(ex.class명, 파일 디렉토리 등) 메타데이터로 등록할 수가 있다.

 

3.config 파일 불러오기

 

4. config 수정하기

 

이전에 register한 dataset으로 수정

SOLVER을 통해 데이터셋에 맞게 수정

 

5. Augmentation mapper 정의

 

 

-Detectron2는 MM detection과 다르게 train,validation과 같은 dataset의 파이프라인을 따로 있지 않음

-> MM detection 같은 경우는 transform이 이미 지정되어있는 반면,  detectron2 같은 경우에는 직접 Augmentation mapper을 만들어줘야함

장점: 자유도가 높기 때문에 Augmentation을 커스터마이징 할 수 있음.

단점 : 번거로움

 

 

6.Trainer 정의

 

cfg, mapper =MyMapper 을 앞에서 정의해준 Augmentation을 넣어준다.

 

 

7.학습

 

 

Comments