資料集
我們針對圖片資料收集或調整所使用的平台是roboflow,而類別有Person與Monkey兩種類別。
在圖片的處理大致分為下面步驟:
-
Bounding box
-
將圖片中需要偵測的物體標記出來如右圖
-
-
圖片規格的統一
-
我們在這個階段將照片統一resize為352*352以符合yolo的訓練參數
-
-
圖片的影像調整
-
在這個階段我們嘗試將照片增加5%的噪音以及增加5塊20%大小的遮塊以模擬往後實際運用在山區會有起霧和樹枝遮擋的情況。
-
而最終我們所蒐集的圖片數量兩個類別分別為:
1500張Person的照片與2500張Monkey的照片。
並且各自分為兩部分: 80%的照片歸納為training dataset與20%的validation dataset。
資料集的照片分布如下:
訓練環境設定
在訓練中我們共嘗試三種訓練環境:
-
以原始資料集(即未經data augmentation 的資料集)訓練,將訓練次數設定在600epoch以內並尋找指標函數具最佳數值之模型
-
以原始資料集(即未經data augmentation 的資料集),並將訓練次數增加至1000次以尋找是否有更好的模型
-
以經過data augmentation之資料集訓練,並將訓練總次數設定在600 epoch以內。
並以訓練結果倆倆比較出最合適的訓練環境參數
-
其餘3種環境共同之訓練環境參數如圖
模型結果之評估比較-
相同資料集下不同訓練次數之比較
-
此為在資料集都未經data augmentation的情況下,將訓練次數增加一倍以比較模型是否會有較好的表現。
-
下圖為同一資料集之模型結果指標函:
-
(橫軸為訓練epoch次數,縱軸為對應之指標數據)。
-
由圖可發現模型之 precision 雖然是一路往上,但ap 與recall卻在約300epoch後是一路往下掉,因此我們將recall與precision函數比對抓出焦點在500epoch之模型的位置作為最佳模型,實際運用在圖中並與epoch800和1000epoch之模型做比較如右圖。
-
由右圖發現使用我們認為是最佳解的 500epoch 模型成功辨識出猴子位置並且置信度達到 91%。使用 800epoch 模型也有成功辨識出猴子但是置信度下降至 53%。而使用 1000epoch 模型並沒有成功辨識出猴子。
-
由次可發現當訓練次數超過500後就會開始有過度擬合的情況出現,造成模型的辨識度下降。
-
模型結果之評估比較-
相同訓練次數下使用
data augmentation之差別比較
-
此為在資料集在使用噪音及隨機遮蓋兩種data augmentation前後之訓練模型比較,比較結果如右圖。
-
下圖為同一資料集之模型結果指標函:
-
(橫軸為訓練epoch次數,縱軸為對應之指標數據)。
-
右圖為各自取其最佳解之模型後所實際運用的結果
-
由右圖可發現經過資料擴增之資料集所訓練的模型雖然在Precision、Recall及AP上都比沒經過資料擴增的還低,但是在當照片處在較模糊或顏色形狀較像猴子的環境時,有經過data augmentation之模型在辨識上能有比較準確的結果。
最後我們所採用為經過data augmentation之資料集訓練之模型,且Precision、Recall、ap分別如下: