相關文獻及應用
YOLO 原理
General learning process
在影像辨識中最一般的訓練流程辨識

其中 X 為輸入的資料,通常是影像
𝑓𝜃為包含網路結構與其運算單元以及其中的參數
而在最後兩者之間我們會希望設計一套 loss function: y = 𝑓𝜃(x)+ε
其中 ε 為目的為達到minimize diff(y, 𝑦̂),也就是縮小他們之間的差距
我們並不在意 ε 的實際內容,而是單純當作一個數字使兩者差距縮小就好
𝑦̂為實際輸出的結果
𝑦為我們預期的結果
01
YOLO 訓練

而不同於一般的影像辨識演算法,YOLO 是一個可以一次性預測多個 Box 位置以及類別的卷積神經網路,能夠實現端到端的目標檢測和識別,其最大的優勢就是速度快。在訓練時,YOLO 會將輸入影像劃分為 S*S 個網格,如果一個物體的中心落在某網格內,則相應網格負責檢測該物體。在訓練過程中,會針對訓練資料集的標註進行聚類,得到類別中心的 9 格框以避免模型在訓練時盲目地尋找,有助於模型快速收斂。在每個網路產出相對應數量的先驗框(anchor box),每個先驗框只與後續的預測框(bounding box)的 5 個預測引數,即 bounding box 的中心點座標(x,y)、寬高(w,h)、和置信度評分有關
02
特徵值提取
在YOLO訓練完後我們可以針對每個類別裡面的內容進行觀察得到activation
我們可以發現針對每個類別的物體我們會提取其中最容易辨識的部分當作指標,而特徵值以外的地方並不會被激發提取出來,特徵值的權重越大也就代表他對於分類成這項類別的重要程度就越大。
相反的,特徵值越低的部分也就是損失函數中ε的來源。最後當有了先驗框與特徵值我們便能預測得到最終的bounding box。

03
研究流程

04
訓練環境參數調整
當我們在進行訓練時會有好幾個參數會大幅影響訓練結果:
▪ Classes: 訓練集中的類別數量。
▪ Epoch: 總資料集的訓練次數。
▪ Batch: 將資料及分批處理,每批次處理幾張照片。
▪ Step: 每一次epoch,(資料集總數量)/batch大小。
▪ Subdivision: 把每一batch拆成幾組處裡。
▪ Channel: 顏色的通道數,例如灰階為1,全彩(RGB)為3。
▪ Width、height: 照片的寬與高。
▪ Momentum: 計算參數更新方向前會考慮前一次參數更新的方向,如果當下梯度方向和歷史參數更新的方向一致,則會增強這個方向的梯度;反之則衰退。然後每一次對梯度作方向微調,有助於增加學習上的穩定性、擺脫局部最佳解。
▪ Decay : 為了能較快的找到最佳解,通常一開始會用大的學習率,接著在變成較小的學習率,而衰減參數就是用來決定衰減的速度。
▪ Angle: 圖片角度變化。
▪ Saturation、Exposure: 圖片的飽和度與曝光度。
▪ hue: 圖片的色調
05
結果評估--混淆矩陣

混淆矩陣可做為評估模型表現的一套方法
06
結果評估—權重指標函數
在影像辨識的訓練模型出來後,我們所追求的便是TP越高越好;FN越低越好。
而要有效的運用上述的參數我們主要透過以下指標:
▪ Precision:
公式為TP/(TP+FN)。其意思就是預測為真的結果中,實際為真的比例。其數值太低則代表此模型判斷成FP的結果較多,也就代表實用性
很低。
▪ Recall:
公式為TP/(TP+FN)。也就是實際為真的結果中,預測為真的比例,其數值越高則代表此模型表現越好。
▪ AP:
單一類別得平均準確率(average precision),此數值會根據需求去調整IOU的標準。
▪ mAP:
所有類別的平均AP,當類別數為1時AP = mAP
▪ F1-score:
公式為(2*Precision* Recall)/( Precision+Recall)。其意義為Precision和Recall的綜合表現,範圍介於0和1間且數值越高越好。
▪ Box_loss:
也就是根據bounding box中的x,y,w,h所帶來的誤差
▪ Obj_loss:
也就是信心程度所帶來的誤差
而此次實驗我們主要參考Precision、Recall與AP三種指標函數。
07
硬體—CPU
我們此次專題中所使用 CPU 主控台為—Jetson Nano

-
優點:
相較 TX2 等嵌入式裝置,價格不但低了許多,尺寸也媲美
ARDUINO,而運算能力也足夠深度學習的使用需求。
-
缺點:
面對深度學習所需的運算能力只是堪用,較難進一步增加其演算法複雜度。

08
硬體—伺服馬達規格選用
我們此次使用的馬達為 MG995 伺服馬達

考量因素為:
-
轉動穩定度
-
最高載重能力、扭力
-
價格

09
硬體—PCA9685
• 通常被用於控制舵機、LED燈、馬達等需要進行精確控制的設備
• 具位16個獨立的PWM輸出通道,每個通道可以獨立設置頻率和脈衝寬度
• 採用I²C通訊介面,解析度為12bit
• 內置時鐘,每次設置皆會保持最後一次所設置的參數運作,無需連續發送訊號控制

10
硬體—水彈槍


我們所使用的水彈槍,經測試其直線有效瞄準射程為 25 公尺
電動連發每秒15發子彈