Darknet 명령어

도룩·2023년 5월 3일
0
post-thumbnail

Yolo 모델을 train, evaluation 할 때 사용하는 Darknet 프레임워크의 명령어들을 정리해보았다.
데이터 준비, 세팅, 경로, 구성은 생략하였음.

첫 번째 줄에는 명령어 backbone, 두 번째 줄에는 예시이다.

1. Train 관련

  1. cfg의 anchors를 계산하기 위한 명령어
    darknet.exe detector calc_anchors {data 경로} -num_of_clusters {N} -width {width} -height {height}
    darknet.exe detector calc_anchors car.data -num_of_clusters 10 -width 144 -height 144

  2. 모델 학습을 위한 명령어 (단일 GPU, 처음부터 학습)
    darknet.exe detector train {data 경로} {cfg 경로} {weights 경로} -gpus 0 -map -clear
    darknet.exe detector train car.data ./car.cfg ./car.weights -gpus 0 -map -clear

  3. 모델 학습을 위한 명령어 (단일 GPU, 끊긴부분부터 이어서 학습)
    darknet.exe detector train {data 경로} {cfg 경로} {last weights 경로} -gpus 0 -map
    darknet.exe detector train car.data ./car.cfg ./backup/last_car.weights -gpus 0 -map
    (-clear의 여부가 중단된 지점부터 학습할지를 결정함.)

  4. 모델 학습을 위한 명령어 (Multi GPU)
    darknet.exe detector train {data 경로} {cfg 경로} {last weights 경로} -gpus 0,1 -map
    darknet.exe detector train ./car.data ./car.cfg ./car.weights -gpus 0,1 -map

2. Evaluation 관련

  1. data 파일에 설정한 validation set에 대한 모델의 성능을 알아보기 위한 명령어
    darknet.exe detector map {data 경로} {cfg 경로} {weights 경로}
    darknet.exe detector map car.data ./car.cfg ./car.weights
    (Validation set에 대한 mAP, IoU를 계산해준다.)

3. Prediction 관련

  1. 이미지 (input: images > output: json)
    darknet.exe detector test {data 경로} {cfg 경로} {weights 경로} -dont_show -out {저장될 json 파일 경로} < {txt파일 경로}
    darknet.exe detector test car.data ./car.cfg ./car.weights -dont_show -out ./car.json < _filelist.txt
  • _filelist.txt 구성은 아래와 같다. (예측하고 싶은 이미지 파일들의 절대경로)
  1. 동영상 (input: video > output: video
    darknet.exe detector demo {data 경로} {cfg 경로} {weights 경로} -ext_output {영상파일 경로} -out_filename {저장될 영상파일 경로}
    darknet.exe detector demo ./car.data ./car.cfg ./car.weights -ext_output car.mp4 -out_filename ./predicted_car.mp4
    (필자는 해당 명령어가 gpu버전의 darknet에서는 오류가 나서 아래 방법을 사용)
    # 
    (1) 영상을 frame 별로 자름.
    (2) 자른 frame (이미지)를 예측 (> output: json)
    (3) 얻은 json을 이용해 이미지에 rectangle 그리기
    (4) 이미지들을 stacking하여 동영상으로 반환

0개의 댓글