자유게시판

roboflow와 google Colab 활용하여 커스텀 데이터세트 만들고 YOLOv8 실행하기
2023. 8. 2 (수) 15:21 OwowO 조회 36 좋아요 0 스크랩 0 댓글 0

roboflow에서 사람들이 올려놓은 Dataset을 다운로드 받고,

google Colab을 이용하여 트레이닝 시킨 후 YOLOv8을 실행 해보겠습니다.

 

 

roboflow 홈페이지

https://roboflow.com/

 

1. ”roboflow“ 에서 Dataset 다운로드 받기 (예제)

1. [roboflow.com](http://roboflow.com) 접속
    1. 구글 계정으로 가입 및 로그인


2. [app.roboflow.com](http://app.roboflow.com) 접속 (자동 접속 됨)
    1. 왼쪽 상단에 Public Datasets & Models 버튼 클릭


3. [universe.roboflow.com](http://universe.roboflow.com) 접속
    1. 해당 페이지에서 원하는 내용 검색 후 Dataset 다운로드
        1. Format = YOLOv8
        2. Raw URL의 링크 복사하기

 

Google Colab 홈페이지

https://colab.google/

 

2. Google Colab에서 데이터 트레이닝 시키기

1. [colab.google](http://colab.google) 접속
    1. 구글 계정으로 가입 및 로그인
    2. Open Colab 버튼 클릭


2. Colab 새로운 프로젝트 생성 및 트레이닝 시작
    1.  roboflow 에서 다운로드 받은 Raw URL Colab에 다운로드 받기
        
        // Cup.zip => 다운받아서 원하는 이름으로 압축하겠다는 의미 (Cup 이라는 이름으로 사용)
        // roboflow Raw URL 링크

!wget -O Cup.zip https://universe.roboflow.com/ds/sGOtuUaRO7?key=NH1V9lIb2y

        
    2. 압축하여 다운받은 파일을 압축해제하기
        
        // Cup.zip , Cup => 위에서 설정한 이름으로 설정필요

import zipfile
with zipfile.ZipFile('/content/Cup.zip') as target_file:
target_file.extractall('/content/Cup/')


    3. PyYAML 설치
        
        // YAML 파일

!pip install PyYAML


    4. 기존 YAML 파일 열어서 확인해보기

        // Cup => 위에서 설정한 이름으로 설정필요
        // 다운받아서 압축해제한 파일안의 기본 YAML 파일 열어보기 (data.yaml)

!cat /content/Cup/data.yaml


    5. 기존 YAML에 새로운 Data 덮어씌우기
        
        // Cup => 위에서 설정한 이름으로 설정필요
        // names 의 ㅁㅁㅁ => 트레이닝 시킬 클래스의 이름작성 필요 [bottle, phone]
        // nc = 클래스의 개수 입력 [2]

import yaml
data = {'train' : '/content/Cup/train/images',
'val' : '/content/Cup/valid/images',
'test' : '/content/Cup/test/images',
'names' : ['bottle', 'phone'],
'nc' : 2}

with open('/content/Cup/Cup_data.yaml','w') as f:
yaml.dump(data, f)

with open('/content/Cup/Cup_data.yaml','r') as f:
Cup_yaml = yaml.safe_load(f)
display(Cup_yaml)


    6. Colab에 ultralytics 설치하기
        

!pip install ultralytics


        
    7. YOLO에서 yolov8n.pt를 Colab에 받아오기
        

from ultralytics import YOLO

model = YOLO('yolov8n.pt')


    8. 다운받은 yolov8n.pt의 Class 확인하기
        

print(type(model.names), len(model.names))

print(model.names)


    9. 새로운 Class 로 훈련시키기
        
        // eopchs => 훈련 시킬 횟수
        // patience => 관촬될만한 Training 진전이 없으면 30번 보다가 Training 중단
        // batch => 일괄입력 data 개수
        // imgsz => input image 크기

model.train(data='/content/Cup/Cup_data.yaml', epochs=100, patience=30, batch=32, imgsz=416)


    10. 훈련시킨 yolov8n.pt의 Class 확인하기
    

print(type(model.names), len(model.names))

print(model.names)


 

3. 훈련시킨 [best.pt](http://best.pt) 파일 다운로드 받기
    
    ⇒ (Colab) content / runs / detect / train2 / weights / 
         -> 영상 속에서 훈련을 2번 시켜서 "train2" 입니다.


    ⇒ (개인PC) 원하는 위치 [anaconda3 / envs / test01 / ~~~

 

4. [best.pt](http://best.pt) 파일을 기반으로 YOLOv8 실행하기
    
    // 가상공간 활성화 하기

conda activate test01

 

    // best.pt 파일 위치로 들어가기 (본인이 저장시킨 위치로)
    
    cd ~~~~ 
    


    // best.pt 파일로 예측 실행하기 (소스 : Webcam / 출력 : 활성화)
 

yolo predict model=best.pt source=0 show=True

로그인 후
참가 상태를 확인할 수 있습니다.