roboflow 에서 샘플데이터 구하기
https://public.roboflow.com/접속->원하는 데이터 클릭->downloads밑에 다운버트 클릭->show download code표시후 YOLO v5 PyTorch 선택후 continue->나오는 코드 복사
colaboratory에서 학습시켜보기
1.colaboratory 파일만들고 샘플데이터 받아오기
https://colab.research.google.com
파일->새노트
런타임->런타임유형변경 -> GPU 저장
위에서복사했던 샘플데이터 코드 붙여넣기->실행
export 폴더에 image와 label을 확인
받은 모든 파일을 dataset폴더로 이동
dateset이라는 폴더 만들고 안으로 옮겨줌
2.yolo v5 설치
1
2
3
4
5
6
7
8
9
|
%cd /content
!git clone https://github.com/ultralytics/yolov5.git
%cd /content/yolov5/
!pip install -r requirements.txt
|
cs |
3.받아온 이미지 리스트(경로 리스트) 불러오기
1
2
3
4
5
6
7
|
%cd /
from glob import glob
img_list=glob('/content/dataset/export/images/*.jpg')
print(len(img_list))
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from sklearn.model_selection import train_test_split
train_img_list,val_img_list = train_test_split(img_list,test_size=0.1,random_state=2000)
print(len(train_img_list),len(val_img_list))
#나눈 데이터의 경로를 train.txt 와 val.txt에 각각 쓰기
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')
|
cs |
5. data.yaml안의 경로 나누어진 데이터셋의 경로로수정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import yaml
#yaml파일 불러오기
with open('/content/dataset/data.yaml','r') as f:
data =yaml.load(f)
print(data)
#데이터 수정
data['train']='/content/dataset/train.txt'
data['val']='/content/dataset/val.txt'
#data['nc']=1
#data['names']=['air','bird','strawberry']
#yaml파일 저장
with open('/content/dataset/data.yaml','w') as f:
yaml.dump(data,f)
print(data)
|
cs |
6.데이터 학습시키기
#학습시키기
https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data참고
--img : 이미지 크기
--batch : 배치 킉
--epochs : 학습횟수
--data : yaml파일
--cfg : 모델선택 모델의 크기에 따라 yolov5l.yaml,yolov5m.yaml,yolov5s.yaml,yolov5x.yaml 등이 있음
--weights : pre-tarined model(전이학습)의 가중치 선택
*전이학습(pre-tarined model)이란?
https://jeinalog.tistory.com/13
--name : 결과 저장할 폴더
1
2
3
4
5
|
%cd /content/yolov5
!python train.py --img 416 --batch 3 --epochs 500 --data /content/dataset/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --name yolov5s_results
|
cs |
7.학습시킨 weight와 하이퍼파라미터 결과 확인하기
weight->best_yolov5s_results확인,result.png 확인,test_batch0_pred.jpg 확인
텐서보드 찍어보기
1
2
|
%load_ext tensorboard
%tensorboard --logdir /content/yolov5/runs/
|
cs |
테스트 데이터로 확인해보기 50프로 이상일경우 표시
1
2
3
4
5
6
7
|
from IPython.display import Image
import os
val_img_path=val_img_list[0]
!python detect.py --weights /content/yolov5/runs/train/yolov5s_results/weights/best.pt --img 416 --conf 0.5 --source "{val_img_path}"
|
cs |
Results saved to runs/detect/exp 라고 나온다
가서 확인해보면 결과를 확인할 수 있다.
8.동영상에서 확인해보기
content밑에 원하는 동영상 업로드하기--source ../업로드한동영상파일 이름
strawberry.mp4 파일을 넣었을때의 예제
1
2
3
|
!python detect.py --source ../strawberry.mp4 --weights /content/yolov5/runs/train/yolov5s_results/weights/best.pt
|
cs |
Results saved to runs/detect/xxx 라고 나오면 가서 다운받고 확인하여보자
위 경우는 업로드 다운로드가 오래 걸릴수 있으므로 따로 python과 yolo등을 설치한후 실행하는것이 좋을수도있다.
여기까지는
https://www.youtube.com/watch?v=T0DO1C8uYP8를 참고 하였습니다.
----------------------------------------------------------------------------------------------------------
yolo_mask를 활용하여 데이터셋 만들기
http://ngmsoftware.com/bbs/board.php?bo_table=study&wr_id=34&sst=wr_hit&sod=desc&sop=and&page=1
만든 데이터셋을 위와 같이 폴더를 만들고 넣어준뒤 테스트를 해보면된다.
'딥러닝' 카테고리의 다른 글
이미지 텍스트추출(OCR) 만들어보기 (0) | 2020.11.29 |
---|
최근댓글