본문 바로가기

딥러닝

[YOLOv8] 구글 colab 사용해서 yolov8 학습 진행하기(커스텀 데이터셋)

반갑습니다! 어떤 연유로 여러분들이 이 블로그 게시글을 클릭했던, 처음부터 yolov8 한 번 돌려보자구요


0. YOLOv8이란?

간단하게 설명하면 image object detection deep learning 모델 중 가장 많이 사용되는 YOLO 거의 가장 최신 모델입니다.

개인적인 경험으로는 yolov2(tiny), yolov4(tiny), yolov5를 거쳐 새로 익힌 모델 중 하나로 초보자분들도 생각보다 쉽고 간단하게 사용할 수 있을 거라 믿습니다.

1. How to?

  a. colab에서 노트를 하나 생성해 줍시다.

 


  b. 학습 데이터를 준비합니다. 

    YOLOv8은 다음과 같은 데이터 셋 구조를 갖습니다.
    
    dataset/
    ├── images/
    │   ├── train/
    │   │   └── image1.jpg
    │   ├── val/
    │   │   └── image2.jpg
    │   └── test/
    │       └── image3.jpg
    └── labels/
    │   ├── train/
    │   │   └── image1.txt
    │   ├── val/
    │   │   └── image2.txt
    │   └── test/
    │       └── image3.txt
    └── data.yaml

    한글로 좀 풀어서 설명하자면, dataset 이라는 폴더를 만들어주고(폴더 이름은 바꿔도 상관 없습니다.)
    그 아래 images 와 labels 폴더를 생성해 줍시다. 그리고 VSCode나 메모장 등을 활용해서 data.yaml 파일을 생성합니다.

[data.yaml]
    train: /content/dataset/images/train # train 데이터 경로
    val: /content/dataset/images/val     # validation 데이터 경로
    test: /content/dataset/images/test   # test 데이터 경로

    nc: 5  # 총 클래스 수
    names: ['car', 'person', 'motorcycle', 'bicycle', 'trafficlight']  # 클래스 이름


    위와 같이 작성하는데, nc와 names는 본인이 하는 프로젝트에 맞추어 변형해 주면 됩니다.
    
    이번에는 이미지에 대응하는 labels.txt 파일을 생성하는 방법을 알아보도록 하겠습니다.
    

    제 경우는 labelImg를 사용해서 커스텀 학습 데이터를 만들었습니다.

    사용방법은 다음 링크 참조 바랍니다.

 

https://github.com/HumanSignal/labelImg

 

GitHub - HumanSignal/labelImg: LabelImg is now part of the Label Studio community. The popular image annotation tool created by

LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open source ...

github.com


    그러고 위처럼 데이터 셋 구조를 잘 만들어서 dataset 이란 이름으로 압축 후 구글 드라이브에 올려줍니다.

 


  c. 데이터 셋을 준비합니다.


    colab에 구글 드라이브 연동을 위해 아래 코드를 입력해 줍니다.

    #드라이브 연결
    from google.colab import drive
    drive.mount('/content/drive')


    그러고 dataset 폴더를 만들어 해당 위치에 압축을 풀어줍니다.

    !mkdir /content/dataset
    !unzip "/content/drive/MyDrive/dataset" -d "/content/dataset" 
    # 앞은 구글 드라이브 내 경로, 뒤는 압축 풀 경로입니다.

 


  d. 모델을 다운로드하고 빌드 합니다.
    다행히 YOLOv8은 다크넷 어쩌구 설치 필요 없이 pip로 설치가 가능합니다. 정말 세상 편해졌다고 생각합니다.
    아래와 같은 코드를 colab에 작성해서 설치해 줍니다.

    #yoloV8 설치(한 1분 정도 걸립니다.)
    !pip install ultralytics  

    #모델 생성
    from ultralytics import YOLO
    model = YOLO("yolov8s.pt") # 미리 학습된 모델 불러오기 (recommended for training)



  e. 학습을 시작합니다.

    #학습 시작
    results = model.train(data="/content/dataset/model_1/data.yaml", epochs=100, imgsz=640)

 

 

  f. 결과를 확인합니다. 

 

'딥러닝' 카테고리의 다른 글

[LSTM] WSL에서 GPU 사용하기  (1) 2023.11.07
[LSTM] LSTM 나도 한 번 돌려보자  (2) 2023.10.28