YOLOv7 Intro

본 글에서는 다른 소프트웨어 개발과 충돌을 방지하기 위해 Anaconda Environment를 생성하여 테스트하였습니다.
가상 환경에서 작업하는 것을 권장합니다.

Git을 이용해 YOLOv7 다운로드

git clone https://github.com/WongKinYiu/yolov7.git

yolov7 디렉터리로 이동

cd yolov7

종속 라이브러리 pip를 이용해 설치

pip3 install -r requirements.txt

데이터 경로

--main-directory
  --yolov7
    --utils
      ...
    --models
      ...
    --data
    --cfg
    --train.py
    --test.py
    --detect.py
      ...
  --datasets
    --valid
      --labels
      --images
    --train
      --labels
      --images
    --test
      --labels
      --images
    --dataset
    --data.yaml

데이터 매핑

파일 경로 수집을 위한 라이브러리 포함

import os
from glob import glob

각 디렉터리 경로 수집 후 txt파일에 저장

location= "main-directory경로"
train_img_list = glob(location+'/train/images/*.jpg')
valid_img_list = glob(location+'/valid/images/*.jpg')
test_img_list = glob(location+'/test/images/*.jpg')
 
# 리스트를 txt파일로 생성
with open(location+'/dataset/train.txt', 'w') as f:
	f.write('\n'.join(train_img_list) + '\n')
    
with open(location+'/dataset/valid.txt', 'w') as f:
	f.write('\n'.join(valid_img_list) + '\n')
    
with open(location+'/dataset/test.txt', 'w') as f:
	f.write('\n'.join(test_img_list) + '\n')

yolov7 yaml 설정 파일에 경로 명시

import yaml
 
with open(location+'/data.yaml', 'r') as f:
	data = yaml.safe_load(f)
    
#print(data)
 
data['train'] = location+'/dataset/train.txt'
data['valid'] = location+'/dataset/valid.txt'
data['test'] = location+'/dataset/test.txt'
 
with open(location+'/dataset/data.yaml', 'w') as f:
	yaml.dump(data, f)

train.py 이용해 학습

python3 train.py --img 640 --batch 32 --epochs 20 --data main-directory경로/dataset/data.yaml --weights yolov7.pt --name yolov7test

WanDB를 이용하면 데이터 저장 및 그래프화를 자동을 해주기 때문에 해당 서비스를 이용하면 좋습니다.
https://wandb.ai/

Leave a Comment