iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
Software Development

AI Model with GIS系列 第 9

[Day 9] About YOLOv8

  • 分享至 

  • xImage
  •  

昨天我們完成了資料的標註工程,並且把資料從 Roboflow 抓下了我們處理好的資料,在我們開始訓練模型之前我們先來看模型是如何偵測物件、以及如何處理資料跟他的模型架構是甚麼。

為甚麼選擇 YOLO

在電腦視覺中的 物件偵測 (Object Detection) 領域中,主要分成兩個演算法流派。

二階偵測器 (Two-Stage Detection)

代表演算法:
R-CNN、Fast R-CNN、Faster R-CNN

如何運作

Region Proposal

先讓神經網路在圖片中掃描,選取上百至千個可能藏有物件的候選框 (Region Proposals)

Classification & Regression

將這些候選區域單獨裁切並輸入至後續網路,精細判斷屬於什麼類別,並微調邊界框位置。

優缺點

因為多了一個篩選機制,精準度提高(對於極端小目標),但是運算會非常慢,記憶體消耗也很大,無法滿足大範圍的影像推論的即時性要求。

一階偵測器 (One-Stage Detection)

代表演算法:
YOLO(You Only Look Once)系列、SSD、RetinaNet

如何運作

將物件偵測簡化為一個端到端的單一回歸問題(End-toEnd Regression Problem)。

圖片只需輸入神經網路一次,模型會將圖片劃分為網格(Grid Cells,並在每個網格上同時預測邊界框座標與類別機率。

優缺點

推論速度極快,雖然早期在小目標的偵測稍微比不上二階偵測器,但到了 YOLOv8 世代,透過強大的特徵融合網路,精準度已經跟二切偵測器差不多。

對於遙測影像來說,一張衛星大圖切出來的小圖常常高達數百張,高吞吐量與快速推論能力是首要考量,這讓 YOLO 成為遙測 AI 應用的首選。

YOLOv8 的神經網路架構

現在 YOLO 大概可以分成以下三種架構:
Backbone (骨幹網路)Neck (頸部網路)Head (預測頭)

Backbone 骨幹網路(特徵萃取)

Backbone 是深度卷積網路的基石,YOLO 使用的是 CSPDarknet,加入了 C2f (Cross Stage Partial with 2 convolutions) 模組

低層特徵 (淺層)

網路前幾層的解析度高,用來捕捉空間細節特徵,例如角點、顏色變化、幾何線條等等...

高層特徵 (深層)

網路層數加深,解析度降低,但在語意資訊的部分便豐富,用來不捉抽象概念(例如某建築的拓樸結構)。

C2f 模組的作用

透過殘差連結 (Residual Connections)與分支跨層拼接,在輕量化的同時及大增強了梯度傳遞效率,防止在較深層的網路出現梯度消失問題。

Neck 頸部網路 (特徵融合)

以衛星影像舉例,在衛星影像中物件大小變化極大,Neck 採用 FPN (Feature Pyramid Network)PANet (Path Aggregation Network) 的組合架構。

Top-down (由上至下)

把深層含有強大語意的資訊特徵向下傳遞,讓淺層能夠知道全局狀況。

Bottom-up (由下至上)

把淺層有精準空間座標的資訊特徵向上傳遞,讓深層知道細節。

融合結果

輸出三種不同尺度的特徵圖,負責預測大、中、小物件

Head 預測頭 無錨框與分離式預測

YOLO 在設計上有兩個改進

Decoupled Head 分離頭設計

傳統 YOLO 把 分類 Classification定位 Regression 在同一個卷積層輸出

YOLOv8 則是把兩者解偶,分為獨立的兩個分支,因為關注的特徵完全不同,分離後能提升收斂速度和精準度

Anchor-Free 無錨框機制

早期的 YOLO 需要先定義固定長寬比的錨框

YOLOv8 則是直接預測邊界框中心點到四個邊界的相對距離,不會受到預設錨框影響,對於形況特殊或狹長的目標有比較好的適應性。

Loss Function 損失函數

模型在剛開始訓練時都是在亂畫輸出的邊界框,損失函數就是計算預測結果人工標註 之間的差距,Loss Function 越小代表誤差越低,透過梯度下降和反向傳播,調整神經網路權重,目標就是讓 Loss Function 達到最低。

YOLOv8 的總損失是由 分類損失邊界框損失 組合而成

分類損失 Class Loss

用於評估模型的分類準確度。使用的是 二元交叉熵損失(BCE Loss)
,判斷預測框內屬於該類別的機率是否接近真實標籤(1 或 0)。

邊界框損失 Box Loss

傳統使用 L1 或 L2 Loss 在評估框框重疊時效果極差。現代 YOLO 採用了 CIoU (Complete IoU) Loss

分布焦點損失 Distribution Focal Loss

遙測影像中地貌邊界往往非常模糊,DFL 改將其視為一個機率分部,讓模型在面對不同邊界不清晰或遮擋目標時,能夠輸出更穩健地位置預測。

評估指標

在訓練時,畫面會給一張性能表,判斷模型得好壞。

分成四種:
TP (True Positive)
模型說這是目標物,實際上確實是

FP(False Positive)
模型說這是目標物,但實際上不是

FN(False Negative)
實際上是目標物,但模型沒抓

TN(True Negative)
實際上不是目標物,模型也沒抓

Precision

在被判定是[目標物]的目標物中,有多少是真正的
precision 越高代表模型越不容易失誤。

Recall

在存在的[目標物]中,模型成功抓出幾個
Recall 越高代表模型越不容易漏抓。

mAP@0.5

PR 曲線

以 recall 為橫軸,precision 為縱軸畫出的曲線,曲線以下的範圍是AP (Average Precison)

mAP@0.5

當預測框與真實框的 IoU >= 0.5 就被判定正確,這就是基本辨識能力的常用指標。

mAP@0.5:0.95

在不同的 IoU 的門檻下分別計算 mAP 後去平均值。

這個指標要求邊界框的精準度,如果模型只是略微框出目標物,mAP@0.5 可能會偏高,但 mAP@0.5:0.95 會偏低,畫框越貼近目標物這個分數才會較高。

小結

今天我們了解了 YOLOv8 的一些底層邏輯:

1.一階偵測器在遙測需求下的優勢
2.預測架構
3.理解 Loss 函數指引模型
4.模型評估好壞方式

今天介紹完一些理論我們明天就會開始實作,那我們明天見。


上一篇
[Day 8] Data Annotation
下一篇
[Day 10] Model Training Result
系列文
AI Model with GIS12
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言