본 글에서는 다른 소프트웨어 개발과 충돌을 방지하기 위해 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/