# 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)