Data Mavericks
YOLOv5 custom.ver 모델 학습 본문
실습환경
운영 체제 : Ubuntu 20.04 ( Linux )
실습 환경 : COLAB
NVIDIA GPU Driver Version: 530.41.03
CUDA Version: 12.1
https://github.com/ultralytics/yolov5
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.
github.com
터미털 창에
$ git clone https://github.com/ultralytics/yolov5
입력하여 위 사이트의 yolov5 설치하기
그래프를 참고하여 추가로 필요한 사전 학습 모델 파일(나는 YOLOv5s)도 같이 설치하여 같은 디렉토리에 둔다.
수동으로 직접 설치하여야 한다.
data 폴더 안의 train, valid, test 폴더를 만든 다음 사진을 분류하여 저장(Hold out 방법 추천)한다. 여기서 나는 21-19-10 으로 분류하였다.
사용할 사진은 coco형식으로 라벨링이 필요하기 때문에 https://data-mavericks.tistory.com/6
[Yolo mark 사용법] Yolo mark로 라벨링 데이터 생성 + coco 형식으로 전환 (egg.1)
개발환경 linux ubuntu 20.04 Yolo mark 설치 https://github.com/AlexeyAB/Yolo_mark\ GitHub - AlexeyAB/Yolo_mark: GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2 GUI for marking bounded boxes of objects in i
data-mavericks.tistory.com
다음 사이트를 참고하여 라벨링을 시켜준다.
각 사진의 정보를 txt파일로 모아주기위해서 data파일에 train, valid, test파일의 txt정보를 저장해준다
위치를 정확하게 지정했는지 신경써서 입력한다.
custom dataset이기 때문에 새로운 yaml을 만들어주기위해서 coco128.yaml을 복사해서 egg.yaml로 수정해준 다음 코드를 수정해준다.
path: ../test # dataset root dir
train: /home/ci/egg/yolov5/data/train.txt # train images (relative to 'path') 128 images
val: /home/ci/egg/yolov5/data/valid.txt # val images (relative to 'path') 128 images
test: /home/ci/egg/yolov5/data/test.txt
nc : 3
# Classes
names:
0: egg
1: friedegg
2: boliedegg
# Download script/URL (optional)
download: https://ultralytics.com/assets/coco128.zip
nc는 class 갯수 names에는 각 클래스의 이름을 넣어준다.(영어로)
$ cd yolov5
등 cd 를 이용하여 해당 디렉토리로 이동한다.
터미널 창에
$ python3 train.py --img 640 --batch 16 --epochs 100 --data data/egg.yaml --cfg models/yolov5s.yaml
입맛에 맞게 명령어를 실행하면
학습이 돌아가고 run파일 하위에 저장된다.
데이터양이 적어 좋게 나오지는 않았다.
test사진도 결과를 적용해보자
$ python3 detect.py --weights runs/train/exp3/weights/best.pt --conf 0.25 --img-size 640 --source data/test/ --save-txt --save-conf --exist-ok --name result
Validating runs/train/exp3/weights/best.pt... 이 부분을 그대로 쓰면 된다
--source 뒤에 test 파일 폴더를 입력해준다면
Results saved to runs/detect/result 로 이동한다면
다음과 같은 결과를 얻을 수 있다
'CI' 카테고리의 다른 글
YOLOX custom.ver 모델 학습 (0) | 2023.08.28 |
---|---|
[YOLOv7 사용법] YOLOv7 Custom.ver 설치&실행 (egg.2) (0) | 2023.07.13 |
[Yolo mark 사용법] Yolo mark로 라벨링 데이터 생성 + coco 형식으로 전환 (egg.1) (0) | 2023.07.13 |