유튜브 빵형님의 yolov5 를 실습해보았는데 마지막 트레이닝 부분에서 계속 오류가나서 일단은 잠시 보류해놨다.. 내일 계속해서 오류를 찾을 예정이다. 일단 코드를 살펴보면
!curl -L "https://public.roboflow.com/ds/ZChcFP8JwY?key=YjmfX6tDll" > roboflow.zip; unzip roboflow.zip; rm roboflow.zip
roboflow 에서 데이터셋 다운로드
%cd /content/ !git clone https://github.com/ultralytics/yolov5
git을 클론하다. 아마이게 계속 버전 업데이트가 되면서 오류가 나느거 같은데 좀 더 찾아봐야겠다.
%cd / content/yolov5/ !pip install -r requirements.txt
인스톨 해주고
%cat /content/dataset/data.yaml
% cd/ from glob import glob img_list = glob('content/dataset/export/images/*.jpg')
print(len(img_list))
#현재 이미지 경로
#이미지 개수 출력 glob 으로 이미지 글어오기 경로를 나눠줄거임
from sklearn.model_selection import train_test_split train_img_list, val_img_list = train_test_split(img_list, test_size=0.2, random_state=2000)
print(len(train_img_list)), len(val_img_list)
#train_img_list와 val_img_list를 train_test_split으로 나눠준다. 트레이닝셋은80%,
with open('/content/dataset/train.txt', 'w') as f:
#파일 경로 읽어주는것 같음
f.write('\n'.join(train_img_list) + '\n')
with open('/content/dataset/val.txt', 'w') as f:
f.write('\n'.join(val_img_list) + '\n')
#리스트니깐 join 을 이용해서 넣어준다
#트레이닝 이미지 경로, 벨리데이션 이미지 경로를 txt파일로 저장하기
나눴으니깐 위에있던 yaml 파일을 수정 train에 train.txt 를 넣고 val 에 val.txt를 넣어주기
mport yaml
with open('/content/dataset/data.yaml', 'r') as f:
data = yaml.safe_load(f)
print(data)
data['trian'] = '/content/dataset/train.txt'
data['val'] = '/content/dataset/val.txt'
with open('/content/dataset/data.yaml', 'w') as f:
yaml.dump(data, f)
print(data)
%cd /content/yolov5/ !python train.py --img 416 --batch 16 --epochs 50 --data /content/dataset/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name gunt_yolov5s_results
cfg는 모델의 구조 weights 는 프리트레이드 된 모델을 씀
이러한 구조인데...
Traceback (most recent call last):
File "/content/yolov5/utils/dataloaders.py", line 437, in init
raise Exception(f'{prefix}{p} does not exist')
Exception: train: /content/yolov5/../train/images does not exist
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "train.py", line 670, in
main(opt)
File "train.py", line 565, in main
train(opt.hyp, opt, device, callbacks)
File "train.py", line 235, in train
shuffle=True)
File "/content/yolov5/utils/dataloaders.py", line 126, in create_dataloader
prefix=prefix)
File "/content/yolov5/utils/dataloaders.py", line 442, in init
raise Exception(f'{prefix}Error loading data from {path}: {e}\nSee {HELP_URL}')
Exception: train: Error loading data from /content/yolov5/../train/images: train: /content/yolov5/../train/images does not exist
See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data