reComputer Jetson 運行 YOLOv5 教學全攻略 2 – 訓練自己的模型

四、創建資料集

1. 設定資料集

於左側欄位點選「Annotate」,在右側畫面中會顯示標註與尚未標註的資訊。

點選中間名為「ANNOTATING」已被標註的照片群區塊。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

在此檢查每張照片是否有遺漏標註的部份,確認完畢後請點選右上角的「Add images to Dataset」按鈕。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

資料集的部份通常會分群為「Train」、「Valid」與「Test」,用於訓練模型與測試模型使用。彼此之間的比例,大家可以拖拉兩個「空心的圓圈」做調整。調整完畢請點選「Add Images」。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

2. 擴增資料集

完成資料的分群之後,我們可以依照現有的照片做一些變化,擴充照片的數量。

第三項的「Preprocessing」可以快速地幫我們的照片做一些預處理,例如調整照片的大小,筆者在此保留預設值,並按下「Continue」。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

第四項的「Augmentation」可以幫助我們增強數據,請點選「Add Augmentation Step」,選取我們想要增強的效果。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

畫面中可以看到,有不少增強我們照片的效果,大家可以點來看看,並選擇是否使用。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

比方說我選擇了「Hue」,可以看到這個效果能隨機變換照片的顏色,變化的幅度也能自行調整。若確認要使用該效果,可以點選「Apply」按鈕。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

依照方才的操作,筆者共選擇了五種增強的效果,如下圖所示,請按下「Continue」按鈕繼續。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

最後我們可以選擇透過上述的增強效果組合,我們要擴充到多少張照片,免費的用戶可以擴充到三倍,在此選擇三倍的選項並按下「Generate」產生增強後的資料集。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

3. 導出資料集

完成資料集的創建後,我們就能匯出資料集,以便用於後續的訓練。

請點選畫面中的「Export」按鈕。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

不同的模型,輸入的資料格式也會不同,請對應要訓練的模型,選擇正確的模型格式,我們要訓練的是 YOLOv5 模型,所以選擇「YOLOv5 PyTorch」。匯出的方式請選擇「show download code」,這樣待會兒能直接填入 Colab 中。

請按下「Continue」按鈕產生 code。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

產生出來的 code 如下圖所示,圖中「api_key」的部份雖然是反黑的,但實際框選並複製貼上後就會顯示。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

請大家將自己的「Download Code」如下圖一樣複製起來保留備用。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

五、訓練模型

我們將使用「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 - 訓練自己的模型

2. 修正訓練的參數

請找到如下圖所示的位置,將「–epochs」後方的數字更改為自己想要訓練的次數,筆者在此設定為 200,然後在「–weights」後方的模型設置,修改為「yolov5n6.pt」。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

有關 YOLOv5 的模型選擇,可以參考 YOLOv5 官方的圖表。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

3. 開始訓練模型

訓練的方式很簡單,直接讓每個框格內的程式碼依序 RUN 起來即可。但在執行前我們需要先設置使用的硬體。

請點選上方列表的「Runtime」並選擇選單內的「Change runtime type」。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

確認選取的硬體加速器是「GPU」,再按下儲存的按鈕。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

接著按下右側有個「Connect」按鈕,連接 Google 免費提供給使用者的硬體。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

過程需要一段時間讓系統幫我們配置,完成後按鈕會變更為「Connecting」。看到這個字樣後,表示已經可以開始跑我們的程式了。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

接下來同樣點選「Runtime」,並選擇「Run all」,這個選項會自動幫我們依序執行所有的程式碼。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

執行完成的程式碼會如下圖所示,前頭除了有執行的順序編號之外,還會有綠色的打勾圖樣。執行完全部的程式碼後,網頁會自動下載訓練過程中最好的模型,並命名為「best.pt」。

reComputer J1010 運行 YOLOv5 教學全攻略2 - 訓練自己的模型

六、結語

歷經千辛萬苦,大家是不是已經獲得了自己的 best.pt 呢?筆者認為過程中最艱辛的部份,大概就是最耗眼力與耐心的照片標註過程了,標註的好或不好都會直接影響最終的效果。這次介紹的 Roboflow 相當方便,特別是資料增強的部分相當方便與省事,其實還有很多功能,有興趣的話可以詳細查看官方網站的說明。

這篇文章所使用的照片量是五十幾張,但這只是為了示範與節省時間,實際上還是給多一點照片比較好,大家可以多做實驗,就能明白資料量與標註正確性的重要。

下一篇文章,將教大家如何使用自己訓練好的模型做推論,並徹底發揮使用 NVIDIA 系列產品的優勢,進一步加速推論的速度。不要錯過接下來精彩的內容,我們下篇文章見!