
電腦視覺 - 物件偵測 - YOLO
影像分類只能告訴你圖片裡有什麼,但如果想知道物件在「哪裡」,就需要物件偵測 (Object Detection)。本篇將帶你深入業界最流行、速度最快的 YOLO 架構,體驗 You Only Look Once 的強大威力!
WRITTEN BY

- Name
- Harry Chang
在 Day 13 (CNN) 我們學會了影像分類 (Image Classification),機器能告訴我們「這張圖是一隻貓」。 但如果圖中有「一隻貓、兩隻狗、三個人」,而且我們想知道它們分別在圖片的哪個位置呢?
這就是 物件偵測 (Object Detection) 的任務:
- Classification (分類):是什麼?(Cat, Dog, Person)
- Localization (定位):在哪裡?(畫出 Bounding Box 框起來)
今天的主角是目前業界最流行、速度最快的模型:YOLO (You Only Look Once)。
- 1. YOLO 演進史 (v1 - v8)
- 2. 核心概念:You Only Look Once
- 3. 實戰:使用 YOLOv8 (Ultralytics)
- 4. 補充:AOI 瑕疵檢測與全景分割
- 5. 總結:電腦視覺的無所不在
1. YOLO 演進史 (v1 - v8)
YOLO 的發展非常迅速,每一代都有顯著的進步:
| 版本 | 年份 | 主要特色 |
|---|---|---|
| YOLOv1 | 2015 | 開山始祖。將偵測視為回歸問題,速度極快 (45 FPS),但對小物件偵測效果差。 |
| YOLOv2 | 2016 | Better, Faster, Stronger。引入 Anchor Boxes (錨點框) 與 Batch Normalization,提升準確度。 |
| YOLOv3 | 2018 | 集大成者。引入 FPN (Feature Pyramid Networks) 多尺度偵測,大幅改善小物件偵測能力。 |
| YOLOv4 | 2020 | 最佳化組合。由 Alexey Bochkovskiy 接手,整合了大量 Bag of Freebies (BoF) 與 Bag of Specials (BoS) 技巧。 |
| YOLOv5 | 2020 | 工程化落地。Ultralytics 發布 (非論文),改用 PyTorch 實作,極易使用,部署方便,生態系強大。 |
| YOLOv7 | 2022 | 架構創新。在速度與準確度上再次取得 SOTA (State-of-the-Art),專注於模型架構的最佳化 (E-ELAN)。 |
| YOLOv8 | 2023 | 全面升級。Ultralytics 最新力作。改用 Anchor-Free 機制,整合了分類、偵測、分割 (Segmentation) 等多種任務。 |
2. 核心概念:You Only Look Once
YOLO 的名字非常霸氣:「你只需要看一次」。 早期的物件偵測 (如 R-CNN) 需要看圖片好幾千次 (提取大量候選框),速度非常慢。 YOLO 將整張圖一次丟進神經網路,直接輸出所有物件的位置和類別,達到了 Real-time (即時) 的速度。
核心公式
如果要看懂 YOLO 的數學靈魂,主要有兩個部分:
1. 損失函數 (Loss Function)
2. 邊框解碼 (Bounding Box Decoding) 神經網路輸出的其實是 (轉換前的數值),需要透過公式轉回真實座標 : (註:這是 YOLOv4/v5 常用的消除網格敏感度公式,v8 改用 Anchor-Free 但概念類似)
運作流程圖
YOLO 的核心精神就是「端對端 (End-to-End)」的預測。
流程步驟詳解:
- Input (輸入):將原始圖片丟入模型。
- Backbone (骨幹網路):強大的 CNN (如 CSPDarknet) 負責提取特徵,它能「看懂」圖片裡的線條與形狀。
- Grid (網格切分):邏輯上將圖片切分成 個格子。每個格子負責偵測「中心點」落在該格內的物件。
- Predict (預測):每個格子同時預測三件事:
- Box:座標與大小 ()
- Confidence:是不是物件的機率 ()
- Class:是什麼類別 ()
- Raw Output (原始候選框):產生成千上萬個框。因為幾千個格子都在猜測,會有大量重疊與信心度低的框。
- NMS (非極大值抑制) 與 IoU:過濾的關鍵步驟,用來「去蕪存菁」。
- IoU (Intersection over Union):衡量兩個框「重疊多少」。
- 運作方式:選出信心度最高的框,如果其他同類別的框跟它重疊度極高 (IoU > 0.5),就刪除重複的框,直到每個物件只剩一個框。
- Output (最終結果):它將所有問題變成一個強大的數學回歸問題 (Regression Problem)。
平行運算 (Parallel Grid Analysis)
- 整張圖的所有網格是同時 (Simultaneously) 在運作的。
- 負責「公車」的網格發現特徵,信心度飆高;負責「人」的網格也在同一時間發現人。
- 這就是為什麼 YOLO 這麼快!它不用看完公車再看人,而是一眼全看。
3. 實戰:使用 YOLOv8 (Ultralytics)
現在最流行的版本是 YOLOv8 (由 Ultralytics 維護)。它封裝得非常好,甚至比 Scikit-Learn 還簡單。
安裝
pip install ultralytics opencv-python matplotlib
(注意:ultralytics 會自動安裝 PyTorch 環境)
程式碼實作
我們使用最輕量級的 yolov8n.pt (Nano版) 模型,它會自動從網路下載。
from ultralytics import YOLO
# 1. 載入模型
model = YOLO('yolov8n.pt')
# 2. 預測圖片 (支援 URL)
results = model('https://ultralytics.com/images/bus.jpg', save=True)
執行結果範例
下圖是我們執行的實際結果。YOLO 成功在圖片中偵測到了公車、多人以及一個不明顯的停車標誌,並精準地畫出了邊框。

詳細偵測統計:
- Bus (公車):信心度 0.87 (非常確定)。
- Person (人):偵測到 4 位,信心度分別為 0.87, 0.85, 0.83, 0.26。
- Stop Sign (停車標誌):信心度 0.26 (雖然比較遠,但還是抓到了)。
關於 mAP 的補充: 在這個範例中,我們不會看到 mAP 分數。
- mAP (mean Average Precision) 是需要標準答案 (Ground Truth) 才能計算的成績單。
- 拿沒看過的圖進行 Inference 時,模型只能給出信心度 (Confidence)。若要算 mAP,需準備驗證集並執行
model.val()。
4. 補充:AOI 瑕疵檢測與全景分割
YOLO vs 傳統 AOI (自動光學檢測)
製造業最常問:「產線該用傳統 AOI 還是 YOLO?」
| 特性 | 傳統 AOI | AI 物件偵測 (YOLO) |
|---|---|---|
| 運作原理 | 寫死規則。設定閥值、對比度、幾何匹配。 | 學習特徵 (需客製化訓練)。收集瑕疵照透過 Fine-tuning 訓練出專屬模型。 |
| 優點 | 精確度極高 (Pixel級)、速度極快、邏輯可解釋。 | 適應性強。背景雜亂、光線變化、瑕疵形狀不固定都能抓。 |
| 缺點 | 過殺率 (Overkill) 高。光線稍微一變就誤判。 | 需要大量標註資料 (Labeling) 與 GPU 算力。 |
| 適用場景 | 測量尺寸、檢查有無缺件 (環境固定)。 | 表面刮痕、農產品分類、異物偵測 (變異大)。 |
全景分割
這是電腦視覺的終極任務之一,結合了以下兩者:
- 語意分割 (Semantic Segmentation):只管「類別」,不管「個體」。(所有人都是紅色,所有草地都是綠色)。
- 實例分割 (Instance Segmentation):只管「物件 (Things)」,不管「背景 (Stuff)」。(區分這個人、那個人)。
- 全景分割 (Panoptic Segmentation):我全都要! 將影像中每個像素都賦予類別標籤與實例 ID。
5. 總結:電腦視覺的無所不在
從 Day 13 的 CNN 影像分類,到今天 YOLO 的即時物件偵測,我們見證了 AI 是如何真正「睜開眼睛」看懂這個世界的。 電腦視覺技術如今已經深深扎根在我們的生活中,常見的商業應用包括:
- 智慧交通 (自動駕駛):即時偵測行人、車輛、紅綠燈與車道線 (極度依賴 YOLO 這類輕量極速模型)。
- 智慧製造 (AOI):在產線上以毫秒級的速度找出產品外觀的微小瑕疵,取代人工目檢。
- 智慧零售 (無人店):追蹤顧客拿取了哪些商品,實現「拿了就走」的結帳體驗。
- 醫療影像 (輔助診斷):在 X 光或 MRI 影像中,精準定位出微小的腫瘤細胞 (常結合影像分割技術)。
透過 YOLO 這樣強大且開源的端對端模型,我們不再需要從零手刻複雜的特徵工程,而是能直接站在巨人的肩膀上,將 AI 落地到各種真實場景中。
下一關 (Day 29),我們將踏入「語音 AI」的領域! 我們不僅會教你機器是如何「聽懂」人話(語音辨識 Speech-to-Text),更會解密它是如何「說出」比人類還真實的聲音(語音合成 Text-to-Speech)。敬請期待這場聲音的魔術!