昨天我們完成了資料的標註工程,並且把資料從 Roboflow 抓下了我們處理好的資料,在我們開始訓練模型之前我們先來看模型是如何偵測物件、以及如何處理資料跟他的模型架構是甚麼。
在電腦視覺中的 物件偵測 (Object Detection) 領域中,主要分成兩個演算法流派。
代表演算法:
R-CNN、Fast R-CNN、Faster R-CNN
先讓神經網路在圖片中掃描,選取上百至千個可能藏有物件的候選框 (Region Proposals)。
將這些候選區域單獨裁切並輸入至後續網路,精細判斷屬於什麼類別,並微調邊界框位置。
因為多了一個篩選機制,精準度提高(對於極端小目標),但是運算會非常慢,記憶體消耗也很大,無法滿足大範圍的影像推論的即時性要求。
代表演算法:
YOLO(You Only Look Once)系列、SSD、RetinaNet
將物件偵測簡化為一個端到端的單一回歸問題(End-toEnd Regression Problem)。
圖片只需輸入神經網路一次,模型會將圖片劃分為網格(Grid Cells,並在每個網格上同時預測邊界框座標與類別機率。
推論速度極快,雖然早期在小目標的偵測稍微比不上二階偵測器,但到了 YOLOv8 世代,透過強大的特徵融合網路,精準度已經跟二切偵測器差不多。
對於遙測影像來說,一張衛星大圖切出來的小圖常常高達數百張,高吞吐量與快速推論能力是首要考量,這讓 YOLO 成為遙測 AI 應用的首選。
現在 YOLO 大概可以分成以下三種架構:Backbone (骨幹網路)、Neck (頸部網路)、Head (預測頭)
Backbone 是深度卷積網路的基石,YOLO 使用的是 CSPDarknet,加入了 C2f (Cross Stage Partial with 2 convolutions) 模組
網路前幾層的解析度高,用來捕捉空間細節特徵,例如角點、顏色變化、幾何線條等等...
網路層數加深,解析度降低,但在語意資訊的部分便豐富,用來不捉抽象概念(例如某建築的拓樸結構)。
透過殘差連結 (Residual Connections)與分支跨層拼接,在輕量化的同時及大增強了梯度傳遞效率,防止在較深層的網路出現梯度消失問題。
以衛星影像舉例,在衛星影像中物件大小變化極大,Neck 採用 FPN (Feature Pyramid Network)與 PANet (Path Aggregation Network) 的組合架構。
把深層含有強大語意的資訊特徵向下傳遞,讓淺層能夠知道全局狀況。
把淺層有精準空間座標的資訊特徵向上傳遞,讓深層知道細節。
輸出三種不同尺度的特徵圖,負責預測大、中、小物件
YOLO 在設計上有兩個改進
傳統 YOLO 把 分類 Classification 與 定位 Regression 在同一個卷積層輸出
YOLOv8 則是把兩者解偶,分為獨立的兩個分支,因為關注的特徵完全不同,分離後能提升收斂速度和精準度
早期的 YOLO 需要先定義固定長寬比的錨框
YOLOv8 則是直接預測邊界框中心點到四個邊界的相對距離,不會受到預設錨框影響,對於形況特殊或狹長的目標有比較好的適應性。
模型在剛開始訓練時都是在亂畫輸出的邊界框,損失函數就是計算預測結果 跟 人工標註 之間的差距,Loss Function 越小代表誤差越低,透過梯度下降和反向傳播,調整神經網路權重,目標就是讓 Loss Function 達到最低。
YOLOv8 的總損失是由 分類損失 跟 邊界框損失 組合而成
用於評估模型的分類準確度。使用的是 二元交叉熵損失(BCE Loss)
,判斷預測框內屬於該類別的機率是否接近真實標籤(1 或 0)。
傳統使用 L1 或 L2 Loss 在評估框框重疊時效果極差。現代 YOLO 採用了 CIoU (Complete IoU) Loss。
遙測影像中地貌邊界往往非常模糊,DFL 改將其視為一個機率分部,讓模型在面對不同邊界不清晰或遮擋目標時,能夠輸出更穩健地位置預測。
在訓練時,畫面會給一張性能表,判斷模型得好壞。
分成四種:TP (True Positive)
模型說這是目標物,實際上確實是
FP(False Positive)
模型說這是目標物,但實際上不是
FN(False Negative)
實際上是目標物,但模型沒抓
TN(True Negative)
實際上不是目標物,模型也沒抓
在被判定是[目標物]的目標物中,有多少是真正的
precision 越高代表模型越不容易失誤。
在存在的[目標物]中,模型成功抓出幾個
Recall 越高代表模型越不容易漏抓。
以 recall 為橫軸,precision 為縱軸畫出的曲線,曲線以下的範圍是AP (Average Precison)
當預測框與真實框的 IoU >= 0.5 就被判定正確,這就是基本辨識能力的常用指標。
在不同的 IoU 的門檻下分別計算 mAP 後去平均值。
這個指標要求邊界框的精準度,如果模型只是略微框出目標物,mAP@0.5 可能會偏高,但 mAP@0.5:0.95 會偏低,畫框越貼近目標物這個分數才會較高。
今天我們了解了 YOLOv8 的一些底層邏輯:
1.一階偵測器在遙測需求下的優勢
2.預測架構
3.理解 Loss 函數指引模型
4.模型評估好壞方式
今天介紹完一些理論我們明天就會開始實作,那我們明天見。