반응형

 

 

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
 
4.학습데이터와 테스트 데이터로 나누기(test_size 조절을 통해 비율조절 가능)
 
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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기