top of page

Yolov5 학습 가이드

Yolov5 모델 학습 가이드입니다.

  • 다운로드 Yolov5 Learning Kit:

[중요 사항]

다른 모델을 사용할 수 있지만,  본 가이드의 모든 과정은 Yolov5 모델을 사용하여 가이드되었습니다.

모든 프로세스는 Google Collab 환경에서 수행됩니다.

Preparation
Instroduction
- Dataset Image Labeling

준비

구성

다운로드한 파일에 다음이 포함되어 있는지 확인하세요.: 

  • yolov5_learning_example.ipnyb

  • DarkLabel2.4.zip 

  • data.yaml

  • yolov5n.pt

  • sample_labeling_images.zip (sample images, labelling data)

데이터 셋 이미지 라벨링

  • 제공된 DarkLabel2.4.zip 파일의 압축을 풀어주세요. ​

  • 사용자 정의 데이터 세트의 클래스를 수정하기 위해 압축해제된 DarkLabel2.4.zip 파일 중 darklabel.yml 파일을 엽니다. ​​

  • darklabel.yml 파일의 14번째 줄 "my_classes1: ["person", "vehicle", "bicycle", "motorbike", "animal", "tree", "building"] "을 찾아 "복사하여 붙여넣기"를 하세요.  그런 다음 이름을 "my_classes1"에서 "my_classes2"로 변경하고 대괄호 안의 이름들을 사용할 이름으로 변경한 다음 저장합니다.​

  • 예시: ​

my_classes1: ["person", "vehicle", "bicycle", "motorbike", "animal", "tree", "building"]

(CTRL + C, CTRL + V)

my_classes2: ["apple", "banana"]

그런 다음 darklabel.yml에서 아래로 스크롤하면 이름이 format1인 블록이 있습니다.

이 블록에서classes_set를 확인하고 값을 사용자 정의 데이터 세트(이 경우 my_classes2)로 변경합니다.

image.png
  • DarkLabel.exe를 실행합니다. ("매개변수가 올바르지 않습니다."라는 오류 메시지가 표시됩니다. 이 메시지는 무시해도 됩니다.)​​​

  • 라벨링 프로세스에 대한 아래 그림을 참조로 사용하십시오:

image.png
- Precautions for Labeling

​라벨링 시 주의사항

​단일 객체 라벨링

객체와 그려진 상자 사이의 공간은 사이에 공간이 있어서는 안 됩니다. 그렇지 않으면 모델을 훈련하는 동안 오류가 발생합니다.

Good Example:
image.png
Bad Example:
image.png
다수 객체 라벨링

여러 개체에 라벨을 붙일 때 개체의 겹치는 부분도 포함되어야 합니다. 라벨을 붙일 개체가 겹쳐도 개체의 끝(또는 예상되는 끝)까지 라벨링 영역을 멈추지 마십시오.

Good Example:
image.png
Bad Example:
image.png
다양한 객체 라벨 지정

다른 개체에 레이블을 지정할 때 레이블 지정 도구의 클래스 이름은 개체에 따라 변경되어야 합니다.

이미지_edited_edited.png

YOLOv5의 설정파일에 라벨링 된 데이터의 정보 입력

  • 다운로드한 파일에서 data.yml을 열고 다음 단계를 수행하세요:

    • 이름에 클래스 이름을 적습니다. (레이블링 시 적은 클래스 이름과 순서를 동일하게 설정합니다.) ​

    • 학습 이미지 경로 지정(구글 Colab 기본 경로 : /content)

    • 검증 이미지 경로를 지정합니다(Google Colab의 경우 기본 경로: /content).

image.png
- Routing Labeled Data to YOLOv5
Configure Colab Environment

Colab 환경 설정

Colab 로그인

예시 모델 적용

  • 다운로드한 파일에서 yolov5_learning_example.ipnyb 파일을 준비합니다.

  • 로그인 후 팝업창에서 업로드 버튼을 클릭하세요.

image.png
  • yolov5 학습 example.ipynb를 선택하고 업로드하세요.

Colab GPU 연결

  • 오른쪽 상단의 GPU 연결 버튼을 클릭하고 GPU를 선택하세요.

이미지2.JPG

Google 드라이브를 Colab에 연결

  • Colab에서 문서의 첫 번째 줄을 실행하세요.

GOOGLE.JPG
Install and Train YOLOv5 Model
- Install YOLOv5 Model
- Add the files needed for training

설치와 학습

Yolov5 Model 설치

  • yolov5 저장소를 복제하고 requirements.txt 파일을 사용하여 필요한 라이브러리를 설치합니다.

image.png

학습에 필요한 파일 추가

  • 왼쪽의 폴더 그림을 클릭하여 Colab 저장소를 열고 yolov5 파일을 열어서 파일을 살펴보세요.

image.png
3nd.JPG
  • "label" 폴더와 "image" 폴더를 만듭니다.

​폴더 생성

image.png
  • yolov5 폴더에서 학습 이미지 및 라벨링 파일들을 업로드 합니다.

    • Train/label : labeling.txt 파일을 label에 추가

    • Train/images: 획득 이미지를 이미지 폴더에 추가

  • 추가 학습파일을 yolov5폴더에 추가합니다.

    • yolov5n.pt

    • data.yaml

- Training the YOLOv5 Model

YOLOv5 모델 학습

  • yolov5 훈련 모델은 아래 명령으로 실행됩니다.

image.png
  • train.py의 속성은 img = 이미지 크기, 배치 = 학습 이미지 단위, epochs = 학습 반복 횟수, data= 데이터 세트 정보가 포함된 YAML 파일의 경로, Weights = 가중치가 포함된 파일, cache =  cache 사용 여부입니다. 

  • 가장 좋은 모델(best.pt)을 학습시킨 후 손실이 가장 적은 모델이 /content/yolov5/runs/train/exp*에 저장됩니다.

image.png
- Validation of YOLOv5 model training results

훈련 결과 검증

  • TensorBoard를 사용하여 훈련 중에 훈련된 모델의 세부 정보를 확인할 수 있습니다.

image.png
  • discover.py 스크립트를 사용하여 훈련된 모델로 추론 결과를 테스트할 수 있습니다.

image.png
- ONNX Parsing

ONNX Parsing

  • import.py를 사용하여 모델을 ONNX 파일로 저장하면 사용자 지정 데이터 세트를 사용한 모델 학습이 완료되었음을 의미합니다.

  • ONNX 파일은 "runs/train/exp*/weights/best.pt" 경로(train.py 출력에서 학습완료된 pt파일 경로확인)에 "best.onnx"라는 파일 이름으로 저장됩니다.

  • 내보낸 ONNX 파일은 ZAiV 보드 사양에 따라 컴파일하는 데 사용됩니다.

image.png
  • YOLOv5 학습이 완료되었으며 이제 ZAiV에서 구동할 수 있도록 hef파일로 변환해야합니다.
    "onnx파일"과 "이미지 클래스설정파일", "이미지들(minimum 100ea)"과 함께  with.ai@with-us.kr로 변환 요청해주세요. (현재 Self Compile System은 구현중에 있습니다.)

bottom of page