준비
구성
다운로드한 파일에 다음이 포함되어 있는지 확인하세요.:
-
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)로 변경합니다.
-
DarkLabel.exe를 실행합니다. ("매개변수가 올바르지 않습니다."라는 오류 메시지가 표시됩니다. 이 메시지는 무시해도 됩니다.)
-
라벨링 프로세스에 대한 아래 그림을 참조로 사용하십시오:
라벨링 시 주의사항
단일 객체 라벨링
객체와 그려진 상자 사이의 공간은 사이에 공간이 있어서는 안 됩니다. 그렇지 않으면 모델을 훈련하는 동안 오류가 발생합니다.
Good Example:
Bad Example:
다수 객체 라벨링
여러 개체에 라벨을 붙일 때 개체의 겹치는 부분도 포함되어야 합니다. 라벨을 붙일 개체가 겹쳐도 개체의 끝(또는 예상되는 끝)까지 라벨링 영역을 멈추지 마십시오.
Good Example:
Bad Example:
다양한 객체 라벨 지정
다른 개체에 레이블을 지정할 때 레이블 지정 도구의 클래스 이름은 개체에 따라 변경되어야 합니다.
YOLOv5의 설정파일에 라벨링 된 데이터의 정보 입력
-
다운로드한 파일에서 data.yml을 열고 다음 단계를 수행하세요:
-
이름에 클래스 이름을 적습니다. (레이블링 시 적은 클래스 이름과 순서를 동일하게 설정합니다.)
-
학습 이미지 경로 지정(구글 Colab 기본 경로 : /content)
-
검증 이미지 경로를 지정합니다(Google Colab의 경우 기본 경로: /content).
-
Colab 환경 설정
Colab 로그인
-
오른쪽 상단에 있는 로그인 버튼을 클릭하세요.
-
Google 계정으로 로그인
예시 모델 적용
-
다운로드한 파일에서 yolov5_learning_example.ipnyb 파일을 준비합니다.
-
로그인 후 팝업창에서 업로드 버튼을 클릭하세요.
-
yolov5 학습 example.ipynb를 선택하고 업로드하세요.
Colab GPU 연결
-
오른쪽 상단의 GPU 연결 버튼을 클릭하고 GPU를 선택하세요.
Google 드라이브를 Colab에 연결
-
Colab에서 문서의 첫 번째 줄을 실행하세요.
설치와 학습
Yolov5 Model 설치
-
yolov5 저장소를 복제하고 requirements.txt 파일을 사용하여 필요한 라이브러리를 설치합니다.
학습에 필요한 파일 추가
-
왼쪽의 폴더 그림을 클릭하여 Colab 저장소를 열고 yolov5 파일을 열어서 파일을 살펴보세요.
-
"label" 폴더와 "image" 폴더를 만듭니다.
폴더 생성
-
yolov5 폴더에서 학습 이미지 및 라벨링 파일들을 업로드 합니다.
-
Train/label : labeling.txt 파일을 label에 추가
-
Train/images: 획득 이미지를 이미지 폴더에 추가
-
-
추가 학습파일을 yolov5폴더에 추가합니다.
-
yolov5n.pt
-
data.yaml
-
YOLOv5 모델 학습
-
yolov5 훈련 모델은 아래 명령으로 실행됩니다.
-
train.py의 속성은 img = 이미지 크기, 배치 = 학습 이미지 단위, epochs = 학습 반복 횟수, data= 데이터 세트 정보가 포함된 YAML 파일의 경로, Weights = 가중치가 포함된 파일, cache = cache 사용 여부입니다.
-
가장 좋은 모델(best.pt)을 학습시킨 후 손실이 가장 적은 모델이 /content/yolov5/runs/train/exp*에 저장됩니다.
훈련 결과 검증
-
TensorBoard를 사용하여 훈련 중에 훈련된 모델의 세부 정보를 확인할 수 있습니다.
-
discover.py 스크립트를 사용하여 훈련된 모델로 추론 결과를 테스트할 수 있습니다.
ONNX Parsing
-
import.py를 사용하여 모델을 ONNX 파일로 저장하면 사용자 지정 데이터 세트를 사용한 모델 학습이 완료되었음을 의미합니다.
-
ONNX 파일은 "runs/train/exp*/weights/best.pt" 경로(train.py 출력에서 학습완료된 pt파일 경로확인)에 "best.onnx"라는 파일 이름으로 저장됩니다.
-
내보낸 ONNX 파일은 ZAiV 보드 사양에 따라 컴파일하는 데 사용됩니다.
-
YOLOv5 학습이 완료되었으며 이제 ZAiV에서 구동할 수 있도록 hef파일로 변환해야합니다.
"onnx파일"과 "이미지 클래스설정파일", "이미지들(minimum 100ea)"과 함께 with.ai@with-us.kr로 변환 요청해주세요. (현재 Self Compile System은 구현중에 있습니다.)