관리 메뉴

NineTwo meet you

Yolo v5 환경 세팅 및 데이터 학습 진행 튜토리얼 본문

기타

Yolo v5 환경 세팅 및 데이터 학습 진행 튜토리얼

NineTwo 2021. 7. 21. 13:47
반응형

Yolo v5 환경 설정

아래 주소는 Yolo v5의 깃허브 주소다.

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

Yolo v5를 사용하기 위해서는 python은 3.6.0 버전 이상, PyTorch는 1.7 이상의 버전이 필요하다.

가상 환경 만들기

python 버전이 3.8인 가상 환경을 만들어 준다.

// yolov5라는 이름의 python 3.8버전 가상환경 만들기
$ conda create -n yolov5 python=3.8

// 가상환경 실행
$ conda activate yolov5

Yolo v5 깃허브 clone

yolo v5의 깃허브를 clone 하고 필수 패키지와 pytorch를 install 한다.

$ git clone https://github.com/ultralytics/yolov5
$ cd yolov5
$ pip install -r requirements.txt

pre-trained 모델 다운로드

Yolo v5의 pre-trained 된 모델을 다운로드하는 링크다.

Yolo v5는 s, m, l, x 4가지 버전이 존재한다. s는 가장 성능이 낮지만 FPS가 가장 높고, x는 성능이 가장 높지만 FPS가 가장 낮은 특징을 가진다.

 

https://github.com/ultralytics/yolov5/releases

 

Releases · ultralytics/yolov5

YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.

github.com


2. 데이터 및 디렉터리 설정

Yolo v5작동 시 데이터 디렉터리 폴더 설정이 필요하다.

사진과 같이 디렉터리를 구성하고 데이터를 넣어야 한다.

해당 포스팅에는 데이터를 라벨링 하는 방법은 다루지 않도록 한다.

 


3. YAML 파일 설정

3-1 ) yaml 파일 생성

custom data에 맞춰 yaml 파일을 생성해야 한다.

data 폴더 안에 있던 yaml파일을 살펴보면 다음과 같이 구성되어 있는 것을 알 수 있다.

아래 예시처럼 custom data에 맞춰 yaml 파일을 생성하자.

 

1) train data 경로

2) vaild data 경로

3) 클래스 개수

4) 클래스 이름

custom.yaml 예시

train: /working/data/images/train
val: /working/data/images/valid

nc: 1
names: ['word']

3-1 ) model yaml 변경

model 디렉토리 안에 다음 4가지의 yaml 파일이 존재한다.

다음 4가지 중 원하는 모델의 yaml파일을 선택해 열어준 뒤 클래스 개수에 해당하는 nc의 값만 탐지할 객체에 수에 맞게 변경해 준다.


4. (Optional) Weights & Biases Logging 

wandb로깅 툴은 Tensor flow의 Tensorboard와 비슷하게 실시간 학습과정을 시각화해서 볼 수 있고 validation result를 시각화해주는 툴이다. train code를 돌리면 자동으로 사용할 것인지 물어본다.

4-1) 설치

$ pip install wandb

4-2) 회원가입

해당 사이트에 가서 가입하고 나온 key를 사용하면 된다.

https://wandb.ai/site? utm_campaign=repo_yolo_traintutorial 

 

Weights & Biases – Developer tools for ML

A central dashboard to keep track of your hyperparameters, system metrics, and predictions so you can compare models live, and share your findings.

wandb.ai

 


5. 학습

$ python train.py --img 400 --batch 16 --epochs 3 --data '/data/custom.yaml' --cfg '/models/yolov5m.yaml' --weights yolov5s.pt --name jobs --project 프로젝트명

--batch : batch 사이즈

--epochs : epoch 수

--data : 만든 yaml 파일 경로

--cfg : 모델의 yaml 파일

--weights : 전이 학습에서 사용할 weight

--name : 학습된 정보를 runs 폴더안에 저장할 이름 

--project : wandb에 저장할 프로젝트명


6. 테스트

$ python detect.py --source ./data/images/test이미지.jpg --weights 'runs/test/weights/best.pt' --img 416 --conf 0.5 --save-txt

--source : 테스트할 이미지 파일

--weights : train.py에서 학습이 완료된 weight (best.pt - 가장 성능이 좋은 weight 파일, last.pt - 최신 weight 파일)

--conf : 바운딩 박스를 그리는 기준이 될 0 ~ 1 사이의 conf_threshold 값

 

반응형
Comments