專題成果
(一) 辨識與偵測猴子系統簡介
在台灣,農作物被破壞的事件中,被動物破壞的比例很多,而野生獼猴破壞農作物以及騷擾民眾的事件更是層出不窮,根據相關資料,台北陽明山的獼猴不僅曾咬傷過居民,還把農家田地作物破壞光,台中太平黃竹山區的果園也被獼猴每天登門拜訪,屏東的農作物黑豆及火龍果受危害也相當嚴重,電網與鞭炮驅趕都已經失效了,「猴睦相處」這條路還很長,到現在都還沒有一個兩全其美的解決方式,因此想利用影像辨識技術為主軸來做一個系統增加農作物的防護手段。
我們使用YOLOv4-tiny以及YOLO-fastest演算法對猴子和人類進行辨識與偵測,為了能夠提升台灣獼猴辨識率,我們從網路上挑選了幾部有野生獼猴的影片,並進行抽幀,結合Google Open Image Dataset V6經挑選過的猴子圖片以及自標記的獼猴圖片,80%數據用於訓練(train),20%數據用於測試(test),並做到連接攝像頭即時辨識。訓練出來的結果辨識的信賴率都有達到90%以上。
(二) 系統開發環境與技術
1. 使用的演算法 – YOLOv4-tiny和 YOLO-fastest
我們使用的演算法為YOLOv4-tiny和YOLO-fastest,YOLO框架和RCNN系列算法不太一樣,YOLO是one stage的物件偵測方法,也就是只需要對圖片做一次CNN架構便能夠判斷圖形內的物體位置與類別,以此提升辨識速度。做影像辨識的最注重的就是辨識速度與準確率,這兩樣是缺一不可,但難以同時具備的,我們使用YOLOv4-tiny和YOLO-fastest的原因是之後需要結合小型工業電腦(TX2、Nano)來控制舵機雲台,而這些小型工業電腦的內存量都不高,所以才會挑選小型的演算法,犧牲準確率換取辨識速度。
2. 使用的編譯器 – Google Colab
3. 使用的環境 – AlexeyAB Darknet
Darknet相比當前的主流框架C/C++,具有編譯速度快、依賴少、易部署等優點。
(三) 方法
1. 本系統架構
我們採用Google Open Image Dataset V6和自標記圖片Dataset 做為本系統的Dataset,自行訓練的YOLOv4-tiny演算法需要標記物種和框出目標,Google Open Image Dataset V6的圖片已經是標記好的,可以直接使用,而自標記圖片的則需要手動拉出框線並給予標記(Monkey、Person)。
2. YOLOv4網路架構
YOLOv4主要是由一系列的1x1和3x3的卷積層組成,網路架構中有共有38層convolutional layers,是以input 圖像256*256來進行pre-training,常用尺寸為416*416,皆為32的倍數。
3.YOLO-fastest網路架構
YOLO-fastest也是由一系列的1x1和3x3的卷積層組成,它的一大特點就是大量採用深度可分離卷積層,速度快、參數量少,便於移動短部署。
4. 訓練使用參數
(1) YOLOv4-tiny
Batch Size: 批量大小將決定我們一次訓練的樣本數目。本系統設置為Batch Size = 64。
Subdivisions: Batch/ subdivisions,在一個batch學習中,要拆成幾個mini-batch。本系統設置為subdivisions = 1。
Width, Height and Channels: width和height為 input圖像的寬、高,channels為 input圖像的通道數。這三個參數為input圖像的參數,width和height需設置成32的倍數。本系統設置為width = 416,height = 416,channels = 3。
Momentum and Decay: Momentum是動量梯度下降法的動量參數,默認為0.9,Decay是權重衰減正則項,每一次學習過程中,將學習後的參數按照固定比例進行降低,防止過擬合,默認為0.0005。本系統設置為 Momentum = 0.9,Decay = 0.0005。
Learning_rate: learning_rate是權值更新的基礎變化率,默認值為0.001。在訓練過程中,一般根據訓練輪數動態更新learning_rate。本系統設置為learning_rate = 0.001。
(2) YOLO-fastest
Batch Size:本系統設置為Batch Size = 128。
Subdivisions:本系統設置為subdivisions = 1。
Width, Height and Channels:本系統設置為width = 320,height = 320,channels = 3。
Momentum and Decay:本系統設置為 Momentum = 0.949,Decay = 0.0005。
Learning_rate:本系統設置為learning_rate = 0.001。
(一) 實驗結果
1. 本系統實驗結果評估方法mAP、Precision(精確率)、Recall(召回率)。
公式為:
圖片資料集:圖片獼猴1500張,人類1176張,共2676張。
(1) YOLOv4-tiny
Precision: 0.33。表示分類器認為是正類並且確實是正類占所有分類器認為是正類所佔的比例。期望該值趨近於1。
Recall: 0.1。表示分類器認為是正類並且確實是正類的部分占所有確實是正類的比例。期望該值趨近於1。
mAP: 0.21。在機器學習中的目標檢測領域,mAP是十分重要的衡量指標,用於衡量目標檢測算法的性能。期望該值趨近於1。
(2) YOLO-fastest
Precision: 0.41。表示分類器認為是正類並且確實是正類占所有分類器認為是正類所佔的比例。期望該值趨近於1。
Recall: 0.42。表示分類器認為是正類並且確實是正類的部分占所有確實是正類的比例。期望該值趨近於1。
mAP: 0.46。在機器學習中的目標檢測領域,mAP是十分重要的衡量指標,用於衡量目標檢測算法的性能。期望該值趨近於1。
2. 辨識時間:
圖片可直接執行,影片會切成一幀一幀的圖片,分別辨識。YOLOv4-tiny: 辨識一張照片平均時間為16.209 milli-seconds
YOLO-fastest: 辨識一張照片平均時間為72.634 milli-seconds
3. 圖片辨識結果:
(1) YOLOv4-tiny
(2) YOLO-fastest
4. 連接攝像頭辨識結果: