무효 클릭 IP 추적 중...
머신러닝,딥러닝/computer vision

mmdetection config 이해하기

꼬예 2023. 1. 12.

mmdetection을 원하는 대로 커스텀하기 위해선 config파일을 이해해야 한다.

하지만 config에 대한 진입 장벽이 있다 보니 많은 이들이 이 부분에서 포기한다.

 

이번 포스팅을 통해 확실하게 이해하자.

 

 

이 글을 읽기 전 선수 지식 포스팅

 

config 파일 컨셉 이해

모델 config파일을 열어보면 

(예제는 faster rcnn 기준)

 

.faster rcn config

 

config 파일 코드가 상당히 심플하다.

그 이유는 해당 파일은 여러 config파일들을 한 군데로 모아주는 역할만 하기 때문이다.

 

.config파일 구성

 

_base_에 할당된 값을 보면 각 파일 경로가 리스트형태로 묶여 있다.

그 정보를 한데 모아 사용하겠다는 거다.

 

config파일은 크게 4가지로 구성된다.

 

  • model ⇒ 모델 구조 변경
  • datasets ⇒ 사용할 데이터에 대한 정보 기입
  • schedules ⇒ epoch이나 learning rate 수정
  • runtime ⇒ weight파일 저장 주기 설정

_base_디렉토리에서 4개의 파일을 확인할 수 있다.

_base_ 디렉토리 구조

 

models/faster_rcnn_r50_fpn.py(file link)

config 모델구조

 

datasets/coco_detection.py(file link)

config_dataset 구조

 

schedules/schedule_2x.py(file link)

config schedule 구조

 

default_runtime.py(file link)

configure runtime 구조

 

각 config 파일을 합쳐서 하나의 config파일이 완성되는거다.

 

합쳐진 형태의 모습이 궁금하면 공식문서를 확인해 보면 된다

(커서를 조금 내리면 ‘An Example of Mask R-CNN’ 을 발견할 수 있다. 이곳에서 각 속성값에 대해 주석으로 설명되어 있다.)

 

mask rcnn config 예제

 

 

그렇다면 이 config file을 어떻게 읽어올까?

 

config 파일 읽기

from mmcv import Config

config_file = 'mmdetection/configs/sparse_rcnn/sparse_rcnn_r50_fpn_300_proposals_crop_mstrain_480-800_3x_coco.py'

cfg = Config.fromfile(config_file)
print(cfg.pretty_text)

[ic]Config.fromfile()[/ic] 인자로 사용 하고자 하는 config 파일 경로를 넣어준다.

[ic].pretty_text[/ic]를 통해 config파일이 잘 등록되었는지 확인한다.

 

 

config 파일 수정(커스텀)

파일을 읽어 왔으면 입맛에 맞게 수정해야 할 차례다.

config 파일에 대한 이해도가 높을수록 커스텀 자유도는 올라간다.

 

하지만 초보자가 알아야 할 커스텀은 딱 2가지다.

 

  1. 데이터 셋 경로 입력
  2. 클래스 개수 변경

해당 부분은 다음 포스팅에서 이어간다.

 

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글