四、創建資料集
1. 設定資料集
於左側欄位點選「Annotate」,在右側畫面中會顯示標註與尚未標註的資訊。
點選中間名為「ANNOTATING」已被標註的照片群區塊。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-24.png)
在此檢查每張照片是否有遺漏標註的部份,確認完畢後請點選右上角的「Add images to Dataset」按鈕。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-25.png)
資料集的部份通常會分群為「Train」、「Valid」與「Test」,用於訓練模型與測試模型使用。彼此之間的比例,大家可以拖拉兩個「空心的圓圈」做調整。調整完畢請點選「Add Images」。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-26.png)
2. 擴增資料集
完成資料的分群之後,我們可以依照現有的照片做一些變化,擴充照片的數量。
第三項的「Preprocessing」可以快速地幫我們的照片做一些預處理,例如調整照片的大小,筆者在此保留預設值,並按下「Continue」。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-27.png)
第四項的「Augmentation」可以幫助我們增強數據,請點選「Add Augmentation Step」,選取我們想要增強的效果。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-28.png)
畫面中可以看到,有不少增強我們照片的效果,大家可以點來看看,並選擇是否使用。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-29.png)
比方說我選擇了「Hue」,可以看到這個效果能隨機變換照片的顏色,變化的幅度也能自行調整。若確認要使用該效果,可以點選「Apply」按鈕。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-30.png)
依照方才的操作,筆者共選擇了五種增強的效果,如下圖所示,請按下「Continue」按鈕繼續。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-31.png)
最後我們可以選擇透過上述的增強效果組合,我們要擴充到多少張照片,免費的用戶可以擴充到三倍,在此選擇三倍的選項並按下「Generate」產生增強後的資料集。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-32.png)
3. 導出資料集
完成資料集的創建後,我們就能匯出資料集,以便用於後續的訓練。
請點選畫面中的「Export」按鈕。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-33.png)
不同的模型,輸入的資料格式也會不同,請對應要訓練的模型,選擇正確的模型格式,我們要訓練的是 YOLOv5 模型,所以選擇「YOLOv5 PyTorch」。匯出的方式請選擇「show download code」,這樣待會兒能直接填入 Colab 中。
請按下「Continue」按鈕產生 code。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-34.png)
產生出來的 code 如下圖所示,圖中「api_key」的部份雖然是反黑的,但實際框選並複製貼上後就會顯示。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-35.png)
請大家將自己的「Download Code」如下圖一樣複製起來保留備用。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-36.png)
五、訓練模型
我們將使用「Google Colab」來訓練我們的模型,請大家自行開通 Google Drive 的 Colab 功能,在此就不贅述了。我們使用的程式碼是更改至官方 YOLOv5 提供的 Colab 程式碼,調整成方便大家使用並下載模型的方式。
程式碼連結如下:
https://colab.research.google.com/drive/1g5K7OQkrMCSvsT8dKqXw1Fou2aMF76YR?usp=sharing
點選網址後,建議按下複製的按鈕「Copy to Drive」,將程式碼複製到自己的 Google Drive。
1. 修改資料集來源
首先將剛剛複製下來的「Download Code」,覆蓋如下圖所示的位置,取代成自己的資料集。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-37.png)
2. 修正訓練的參數
請找到如下圖所示的位置,將「–epochs」後方的數字更改為自己想要訓練的次數,筆者在此設定為 200,然後在「–weights」後方的模型設置,修改為「yolov5n6.pt」。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-38.png)
有關 YOLOv5 的模型選擇,可以參考 YOLOv5 官方的圖表。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-39.png)
3. 開始訓練模型
訓練的方式很簡單,直接讓每個框格內的程式碼依序 RUN 起來即可。但在執行前我們需要先設置使用的硬體。
請點選上方列表的「Runtime」並選擇選單內的「Change runtime type」。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-40.png)
確認選取的硬體加速器是「GPU」,再按下儲存的按鈕。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-41.png)
接著按下右側有個「Connect」按鈕,連接 Google 免費提供給使用者的硬體。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-42.png)
過程需要一段時間讓系統幫我們配置,完成後按鈕會變更為「Connecting」。看到這個字樣後,表示已經可以開始跑我們的程式了。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-43.png)
接下來同樣點選「Runtime」,並選擇「Run all」,這個選項會自動幫我們依序執行所有的程式碼。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-44.png)
執行完成的程式碼會如下圖所示,前頭除了有執行的順序編號之外,還會有綠色的打勾圖樣。執行完全部的程式碼後,網頁會自動下載訓練過程中最好的模型,並命名為「best.pt」。
![reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型](https://www.circuspi.com/wp-content/uploads/2022/08/p2-45.png)
六、結語
歷經千辛萬苦,大家是不是已經獲得了自己的 best.pt 呢?筆者認為過程中最艱辛的部份,大概就是最耗眼力與耐心的照片標註過程了,標註的好或不好都會直接影響最終的效果。這次介紹的 Roboflow 相當方便,特別是資料增強的部分相當方便與省事,其實還有很多功能,有興趣的話可以詳細查看官方網站的說明。
這篇文章所使用的照片量是五十幾張,但這只是為了示範與節省時間,實際上還是給多一點照片比較好,大家可以多做實驗,就能明白資料量與標註正確性的重要。
下一篇文章,將教大家如何使用自己訓練好的模型做推論,並徹底發揮使用 NVIDIA 系列產品的優勢,進一步加速推論的速度。不要錯過接下來精彩的內容,我們下篇文章見!