프로젝트/capstone1

labelImg 이용해서 데이터 만들고 YOLOv5 학습시키기

sssbin 2022. 4. 1. 17:28

 

1. labelImg 실행

 

 

2. Open Dir -> 이미지 파일들 저장된 폴더 열기 / Change Save Dir -> 파일 저장할 폴더 지정

 

 

3. 처음 작동시키면 yolo 라고 써있는 부분에 PascalVOC 라고 적혀있을텐데 한번 눌러서 yolo로 바꿔주면 된다. 

 

 

4. 라벨링 시작 - Create RectBox 눌러서 직접 라벨링 해주고 -> class 지정 -> Save

 

 

5. 이 과정을 모든 사진에 해주면 됨..^^

 

 

6. yolov5 안에 폴더 하나 만들어서 그 안에 data.yaml 파일, images, labels 폴더를 각각 만들어주자

images -> 라벨링 했던 사진들

labels -> 라벨링 후 생성된 텍스트 파일들

 

 

7. data.yaml 파일

train/val: 내가 만든 폴더 경로 설정해주기

nc: 클래스 수

names: 클래스 이름 배열로 넣기

(나는 coca 하나만 썼는데 나머지 클래스들 어떻게 지우는지 모르겠음 ㅠㅠ,,, 안 맞으면 에러 남)

++) labelImg/data/predefined_classes.txt 파일 수정해주면 됨

 

 

8. yolov5/models/yolo5s.yaml 열어서 -> nc 부분 수정

사이즈는 s, m, l, x가 있는데 각자 선택해주면 됨. 나는 s 선택

작을수록 가볍고 클수록 무겁다. 이에 따라 성능도 달라짐.

 

 

9. 학습시키기 -> 자신이 만든 파일 경로에 따라 명령어 작성해주기

python train.py --data ./coca/data.yaml --cfg ./models/yolov5s.yaml --weights yolov5s.pt --batch 8 --epochs 200 --name coca

 

 

10. 기다리는중.. 굉장히 오래 걸리는데... 되는걸까? 잘 안 되면 다시 수정하겠다...

++) cpu는 굉장히 오래 걸린다. gpu로 돌려야 하는데 내 노트북으론 불가능

colab 시도 후 다시 추가 예정

https://sssbin.tistory.com/168?category=1008914 

 

* 참고로 중간에 에러 났음.

# 에러
Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.

# 해결 - train.py 열어서 코드 추가
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'