我們來聊聊一個在 AI 影像辨識領域非常酷的模型,叫做 YOLO。
YOLO 的全名是 "You Only Look Once",中文直譯就是「你只看一次」。
聽到這個名字,你可能就猜到它的特色了:它是一種非常快速、而且準確的即時物件偵測 (Real-time Object Detection) 模型。
物件偵測是什麼呢?它不僅要像我們之前談的 CNN 一樣,判斷圖片裡「有什麼」(例如:這張圖片裡有貓),它還要更進一步地告訴我們「在哪裡」(例如:貓咪在圖片的左下角)以及「有幾隻」(例如:有兩隻貓咪)。
YOLO 為什麼那麼快?它的神奇之處在哪裡?
想像一下,你是一個忙碌的巡邏員,任務是在路上找出所有的車子、行人和交通號誌。
傳統的物件偵測方法,就像是一個**「分兩步走」**的巡邏員:
* 他會先仔細地把馬路上的所有可能區域都檢查一遍(例如:這裡可能有一輛車、那裡可能有一個行人),找到許多「可能的候選區域」。
* 然後,他再逐一對這些候選區域進行辨識,判斷裡面到底是什麼,並標示出來。
這樣做雖然準確,但非常耗時,效率不高。
而 YOLO 這個「你只看一次」的巡邏員,則完全不同:
* 「一次看清全局」:
* YOLO 會把整張圖片只看一次。它不像傳統方法那樣分區域逐步檢查,而是把圖片分成一個個小網格 (Grid Cell)。
* 比喻: 想像你有一張大大的任務地圖,YOLO 會把這張地圖均勻地畫上許多小方格。每個小方格都有自己的責任區。
* 「預測物件種類和位置」:
* 每個小方格都會同時預測:
* 裡面有沒有物件? (例如:這格有沒有車子?)
* 如果有,是什麼物件? (例如:是汽車、行人還是腳踏車?)
* 物件的精確位置和大小在哪裡? (用一個「邊界框 Boundary Box」標示出來)
* 這個預測有多高的信心? (例如:有 90% 的信心認為這是一輛車)
* 比喻: 地圖上的每個小方格都像一個迷你巡邏員。他會看自己的責任區,然後直接說:「我這區有 80% 的機率看到一輛紅色的車子,它大概在這個位置。」所有迷你巡邏員同時報告,最後再彙整他們的報告。
* 「非極大值抑制 (Non-Maximum Suppression, NMS)」:
* 因為每個小方格都會做預測,所以很可能同一個物件會被好幾個方格重複框起來。
* YOLO 會透過一個叫做 NMS 的方法,篩選掉那些重複的、信心度低的邊界框,只保留最準確的一個。
* 比喻: 很多迷你巡邏員都說看到了同一輛車,這時候隊長會說:「好了,只需要留下報告最詳細、最有把握的那個人。」
YOLO 的優點與應用
正因為「一次看清全局」的設計,YOLO 具有以下幾個顯著優勢:
* 速度快,適合即時應用: 這是它最大的特色。因為只需要「看一次」,YOLO 的處理速度非常快,可以達到每秒幾十幀甚至上百幀的處理速度,非常適合用在即時影像串流中。
* 應用: 自動駕駛(需要即時辨識路況)、無人機巡檢、生產線上的即時品管檢測、體育賽事分析、即時安防監控等。
* 準確率高: 雖然速度快,但 YOLO 的準確率也相當高,能夠滿足大部分實際應用需求。
* 學會全局資訊: 由於它在預測時是「看」整個圖片,所以它更能理解物件之間的空間關係,減少背景誤判。
* 多版本迭代: YOLO 家族不斷進化,從最初的 YOLOv1 到現在的 YOLOv8 甚至更多版本,每一代都在速度和準確性上有所提升。
總結
簡單來說,YOLO 就像是一位眼明手快、效率超高的「超級巡邏員」。他能一眼掃過整個場景,並快速準確地指出畫面中「有什麼物件、物件在哪裡、有幾個」。這讓它成為了許多需要即時反應的 AI 視覺應用中不可或缺的核心技術。