---
# System prepended metadata

title: YOLOv8 model training
tags: [Eurobot2024_vision]

---

# YOLOv8 model training

訓練客製化的v8模型

## 準備訓練用圖片素材
![WIN_20231027_20_48_55_Pro](https://hackmd.io/_uploads/Hy6mv4LE6.jpg)
理論上:數量越多、畫質越高、情境越豐富卻能增加辨識模型性能。

## 標記辨識物
1.到[https://roboflow.com/](https://)

2.建個project
![螢幕擷取畫面 2023-11-18 211511](https://hackmd.io/_uploads/SJjlFELNp.png)

3.upload你的照片素材
![螢幕擷取畫面 2023-11-18 211652](https://hackmd.io/_uploads/rkbDF4IET.png)

4.assign點自己就行
![螢幕擷取畫面 2023-11-18 211851](https://hackmd.io/_uploads/SJSy94INT.png)

5.在annotate這裡進行label使成為dataset
![螢幕擷取畫面 2023-11-18 212707](https://hackmd.io/_uploads/rJqhsNUNa.png)

6.label:把你要辨識的物件在中框出來，右邊有幾種不同工具可以使用
(!注意：你同一次訓練只能使用一種標記形狀，不能混用，否則會錯誤 ex:polygon,box)
![螢幕擷取畫面 2023-11-18 212756](https://hackmd.io/_uploads/Bk5XhEI4T.png)

7.label完按Add to Dataset，選擇Add All Images to Training Set
![螢幕擷取畫面 2023-11-18 213042](https://hackmd.io/_uploads/H1E9nVIET.png)

8.generate:參考選項，每個選項點開都可以看說明
![螢幕擷取畫面 2023-11-18 213236](https://hackmd.io/_uploads/rkUmpNU4p.png)

9.export下載到電腦(如果你在之後的訓練遇到問題，試著從這一步重做or換一個雲端空間)
![螢幕擷取畫面 2023-11-18 213641](https://hackmd.io/_uploads/B1hZAEI4p.png)

10.下載下來的檔案>train檔案夾裡面會有裝你的圖片的images檔案夾跟裝標定數據的labels檔案夾。(記得解壓縮)


## 訓練YOLOv8模型
### 雲端檔案環境結構
在google drive 弄個資料夾，然後在裡面新增一個google colab檔案、一個名叫"google_colab_config.yaml"的檔案與一個叫"data"的資料夾
![螢幕擷取畫面 2023-11-18 221721](https://hackmd.io/_uploads/BJ0YvS8NT.png)
google_colab_config.yaml內長這樣:
```
path: '/content/gdrive/My Drive/你建的檔案夾/data'  # dataset root dir
train: images/train   # train images (relative to 'path')
val: images/val   # val images (relative to 'path')

names:        #你的class名 有幾個就依序寫下去0.1.2.3.4....
  0: can
  1: light
  2: dark
```
接著在"data"檔案夾內建立如下的資料夾結構，train就是用來訓練而val是在訓練中用來驗證準確性的
![未命名](https://hackmd.io/_uploads/rJcYhoBK6.png)

將你剛剛載下的images內的照片放到images>train
            labels內的數據放到labels>train
我們不太需要val但不能空著，所以你可以挑一組對應的images跟labels放到val裡面，檔案環境結構就完成了。

### google colab
1.確認執⾏階段的硬體加速器選的是GPU
![螢幕擷取畫面 2023-11-18 220913](https://hackmd.io/_uploads/HynsBHUN6.png)

2.點擊連線(這樣就表示好了)
![螢幕擷取畫面 2023-11-18 221047](https://hackmd.io/_uploads/rJHgUH8N6.png)

3.新增以下程式碼
```
### 1. 載入你的雲端 ###

from google.colab import drive

drive.mount('/content/gdrive')
```
```
### 2. 設定根目錄 ###

ROOT_DIR = '/content/gdrive/My Drive/你自己創的那個資料夾'
```
```
### 3. 安裝 Ultralytics ###

!pip install ultralytics
```
```
### 4. Train model ###

import os

from ultralytics import YOLO


# Load a model
model = YOLO("yolov8n.pt")  # load pre trained model

# Use the model
results = model.train(data=os.path.join(ROOT_DIR, "google_colab_config.yaml"), epochs=300)  # train the model
```
最後那個epochs值和訓練的重複次數有關，會影響成效、訓練花費時間，通常建議至少設為300

### 開始training
接下來一個個去執行上述四個儲存格
![螢幕擷取畫面 2023-11-18 223257](https://hackmd.io/_uploads/HkQriSUVp.png)

第四步train完後最底下會告訴你訓練結果存在這個位置
![螢幕擷取畫面 2023-11-18 224138](https://hackmd.io/_uploads/BJ9v6BLNT.png)

在側邊欄找到best.pt就是我們要的東西，趕緊把他下載下來就成功了!
![螢幕擷取畫面 2023-11-18 224411](https://hackmd.io/_uploads/B1glASIEa.png)
