你只看一次(YOLO)
YOLO (You Only Look Once) 是一種即時物件偵測演算法,它將物件偵測視為一個迴歸問題,直接從完整圖像預測邊界框和類別機率。
完整說明
核心概念
YOLO (You Only Look Once) 的核心概念在於其單階段的物件偵測方法。傳統的物件偵測方法通常分為兩個階段:首先,生成候選區域(region proposals);然後,對這些候選區域進行分類和邊界框回歸。YOLO則直接從完整圖像預測物件的邊界框和類別機率,避免了生成候選區域的過程,從而大大提高了偵測速度。
- 單階段偵測: YOLO將物件偵測視為一個迴歸問題,直接從完整圖像預測物件的邊界框和類別機率。這與傳統的兩階段偵測方法不同,後者首先生成候選區域,然後對這些候選區域進行分類和邊界框回歸。
- 網格劃分: YOLO將輸入圖像劃分為S x S個網格。如果一個物件的中心落在某個網格中,則該網格負責預測該物件。
- 邊界框預測: 每個網格預測B個邊界框,每個邊界框包含5個值:(x, y, w, h, confidence)。(x, y)表示邊界框的中心座標,(w, h)表示邊界框的寬度和高度,confidence表示邊界框包含物件的置信度。
- 類別機率預測: 每個網格還預測C個類別的機率,表示該網格包含每個類別物件的機率。
- 非極大值抑制 (Non-Maximum Suppression, NMS): 由於一個物件可能被多個網格預測到,因此需要使用非極大值抑制來消除重複的預測,選擇置信度最高的邊界框。
運作原理
YOLO的運作原理可以概括為以下幾個步驟:
- 圖像輸入: 將輸入圖像調整到固定大小(例如,448x448像素)。
- 網格劃分: 將圖像劃分為S x S個網格。
- 邊界框和類別機率預測: 每個網格預測B個邊界框和C個類別的機率。
- 置信度計算: 計算每個邊界框的置信度,置信度等於邊界框包含物件的機率乘以邊界框預測的準確度。
- 非極大值抑制: 使用非極大值抑制來消除重複的預測,選擇置信度最高的邊界框。
- 輸出結果: 輸出最終的物件偵測結果,包括邊界框的位置、大小和類別。
YOLO的訓練過程包括以下幾個步驟:
- 資料準備: 準備帶有邊界框和類別標籤的訓練資料。
- 模型訓練: 使用訓練資料訓練YOLO模型,目標是最小化預測值和真實值之間的誤差。
- 模型評估: 使用驗證資料評估模型的效能,並調整模型的超參數。
- 模型部署: 將訓練好的模型部署到實際應用中。
實際應用
YOLO在多個物件偵測任務上取得了廣泛的應用,包括:
- 自動駕駛: YOLO可以用於偵測車輛、行人、交通標誌等,幫助自動駕駛系統做出決策。
- 視訊監控: YOLO可以用於監控視訊中的異常行為,例如入侵、打架等。
- 零售: YOLO可以用於追蹤顧客的行為,例如購物路線、商品選擇等。
- 醫療: YOLO可以用於輔助診斷疾病,例如檢測X光片中的腫瘤。
- 無人機: YOLO可以用於無人機的自主導航和目標追蹤。
隨著YOLO的不斷發展,其應用範圍也在不斷擴大。
常見誤區
- YOLO只能偵測特定類別的物件: YOLO可以偵測任何類別的物件,只要有足夠的訓練資料。透過訓練,YOLO可以學會識別新的物件類別。
- YOLO的準確度不如兩階段偵測方法: 雖然早期的YOLO版本在準確度上不如兩階段偵測方法,但隨著YOLO的不斷發展,其準確度已經得到了顯著提升。最新的YOLO版本在某些任務上甚至超越了兩階段偵測方法。
- YOLO只能處理小物件: 早期版本的YOLO在處理小物件方面存在困難,但後續版本透過引入多尺度偵測等技術,提高了對小物件的偵測能力。
- YOLO不需要大量的計算資源: 雖然YOLO的偵測速度很快,但訓練YOLO模型仍然需要大量的計算資源,特別是對於大型資料集和複雜的模型結構。
總之,YOLO是一種重要的物件偵測演算法,它以其快速的偵測速度和不斷提升的準確度,在多個領域得到了廣泛的應用。然而,在實際應用中,需要根據具體情況選擇合適的YOLO版本和模型配置,並注意其潛在的局限性。
相關術語
常見問題
延伸學習
延伸學習
想看 你只看一次 的完整影片教學?前往 美第奇 AI 學院