logo
Loading...

07 - 使用 YOLO 進行標注資料模型訓練 - AIOT 邊緣運算工作坊 - Cupoy

知識地圖 – 使用 YOLO 進行標注資料集模型訓練 在樹梅派上進行橘子的 yolov3-tiny 推論的步驟 取得我們訓練完成的橘子 tiny-Yolo 模型權重和參數檔 在樹梅派上建置...

知識地圖 – 使用 YOLO 進行標注資料集模型訓練 在樹梅派上進行橘子的 yolov3-tiny 推論的步驟 取得我們訓練完成的橘子 tiny-Yolo 模型權重和參數檔 在樹梅派上建置 Yolo 環境 環境是 Yolo 和 tiny-yolo 通用的       3.  讓參數檔就定位       4.  在樹梅派上使用 tiny-yoloV3 模型進行推論 檢查原始檔案的名稱與數量 以橘子標注為例,在標注前將蒐集好的圖片放在某個子目錄。 例如圖片全部放在 /opt/orange_capture 準備把資料整理複製到 /opt/orange_data 把原始的檔案編號,方便之後標注 準備來標注整理好的檔案名稱圖片 把圖片依序地都標註完,記得要按下 Save 儲存 訓練之前一定要檢查一下影像與標注檔案數量 如何開始訓練 YOLO,要做哪些檔案設定 標注檢查好,準備 yolo 要訓練的設定檔案 設定檔案的範例,包含類別與環境設定 yolo.cfg 中 [net] 的參數意義 設定 yolo.cfg,設定錯無法訓練 不同的網路架構以及類別數量,決定了要如何調整成對的 yolo.cfg 設定值。 調整的概念如下,因為在 region 前最後一個卷積層的 filters 數是特定的,計算公式為 filter=num*(classes+5) 。 yolov3 沒有 [region] 了,改成 [yolo],所以在 [yolo] 之前的最後一個卷積層filter=num*(classes+5),而 yolov3 的 masks 是 3,因此 num 的值是 3。 filters 與 classes 在 [yolo] 之前的設定方法 filters = (classes + 5) * 3 = (classes + width + height + x + y + confidence) * num = (classes + 1+1+1+1+1) * num = (classes + 5) * num YOLOv3 dectects 3 boxes per grid cell, so it is filters = (classes + 5) * 3 In YoloV3 you have to change each filters= in 3 convolutional layers before [yolo] layer and classes in [yolo] layer Formula is filters = (classes+5)*3 in yoloV3 (3 masks only) 如何設定 [yolo] 之前 filters 的說明 最後檢查所有的條件是否正確 要執行訓練之前,一定要再檢查一次訓練模型輸出的子目錄是否存在,有沒有打錯字,不然訓練的結果會因為沒有辦法寫入,到某一代的結果之後,訓練就會因為錯誤暫停。 train.txt 路徑所指到的所有的 .jpg 或 .png 的影像檔案是不是都存在,不然一樣會因為找不到檔案錯誤。 train.txt 找到 .jpg 或 .png 圖檔後,要確定所有的跟 .jpg 或 .png 圖檔相同的 .txt 標注檔案是不是都存在,否則一樣錯誤。 valid.txt 路徑所指到的所有的 .jpg 或 .png 的影像檔案是不是都存在,不然一樣會因為找不到檔案錯誤。 valid.txt 找到 .jpg 或 .png 圖檔後,要確定所有的跟 .jpg 或 .png 圖檔相同的 .txt 標注檔案是不是都存在,否則一樣錯誤。 全部都檢查過了,可以開始執行訓練了。 使用 Darknet 執行訓練 一代在 Raspberry PI 上訓練要 918 秒 在 Google Colab 上只用 CPU,一代要 156 秒 在 Google Colab 上使用 GPU,一代不到 1 秒 在 Google Colab 上使用 GPU,4000 代時已到 98% 每一代的訓練時間其實不太一樣 Raspberry PI:前面 10 代都是 900 秒以上。 Google Colab CPU: 1-10 代:平均約在 155 秒 11-20 代:平均約在 55 秒 21-30 代:平均約在 136 秒 Google Colab GPU: 每 1000 代:平均約 7 分鐘,約 420 秒。 在樹梅派上使用 YoloV3 模型進行推論 用下面的指令移動到 Yolov3 的環境,並執行推論