計算機視覺:YOLO算法簡介

“You Only Look Once”或“YOLO”是一個對象檢測算法的名字,這是Redmon等人在2016年的一篇研究論文中命名的。YOLO實現了自動駕駛汽車等前沿技術中使用的實時對象檢測。讓我們看看是什麼使該算法如此受歡迎,並概述其工作原理。

計算機視覺:YOLO算法簡介

對象檢測示例

背景

實時的重要性

人們看到圖像以後,可以立即識別其中的對象、它們的位置和相對位置。這使得我們能夠在幾乎無意識的情況下完成複雜的任務,比如開車。因此,對汽車進行自動駕駛訓練需要類似水平的反應能力和準確性。在其最基本的形式中,這樣的系統必須能夠分析實時視頻中的道路,並能夠在繼續確定路徑之前檢測各種類型的對象及其在現實世界中的位置,所有這些都必須是實時的。

在YOLO之前

先前的檢測系統使用分類器對測試圖像的不同切片進行評估。例如,Deformable Parts Model (DPM)涉及到在圖像中均勻間隔的位置上滑動窗口並在這些部件上運行分類器。R-CNN(Region-based Convolutional Neural Networks)是另一種模型,它運行一種分割算法將一幅圖像分割成一個個小塊,然後在這些小塊上運行一個分類器。但是,速度慢、優化困難一直困擾著這種YOLO之前的系統。

YOLO算法

YOLO將對象檢測重新定義為一個迴歸問題。它將單個卷積神經網絡(CNN)應用於整個圖像,將圖像分成網格,並預測每個網格的類概率和邊界框。例如,以一個100x100的圖像為例。我們把它分成網格,比如7x7。

計算機視覺:YOLO算法簡介

然後,對於每個網格,網絡都會預測一個邊界框和與每個類別(汽車,行人,交通信號燈等)相對應的概率。

計算機視覺:YOLO算法簡介

每個邊界框可以使用四個描述符進行描述:

  • 邊界框的中心
  • 高度
  • 寬度
  • 值映射到對象所屬的類

此外,該算法還可以預測邊界框中存在對象的概率。如果一個對象的中心落在一個網格單元中,則該網格單元負責檢測該對象。每個網格中將有多個邊界框。在訓練時,我們希望每個對象只有一個邊界框。因此,我們根據哪個Box與ground truth box的重疊度最高,從而分配一個Box來負責預測對象。

最後,我們對每個類的對象應用一個稱為“非最大抑制(Non Max Suppression)”的方法來過濾出“置信度”小於閾值的邊界框。這為我們提供了圖像預測。

計算機視覺:YOLO算法簡介

重要性

YOLO非常快。由於檢測問題是一個迴歸問題,所以不需要複雜的管道。它比“R-CNN”快1000倍,比“Fast R-CNN”快100倍。它能夠處理實時視頻流,延遲小於25毫秒。它的精度是以前實時系統的兩倍多。同樣重要的是,YOLO遵循的是“端到端深度學習”的實踐


分享到:


相關文章: