使用SlimYOLOv3框架實現實時目標檢測

磐創AI發表於2019-08-26

概覽

  • 實時目標檢測正在風靡計算機視覺行業

  • 以下是SlimYOLOv3的介紹,這是最新的實時目標檢測框架

  • 我們會介紹SlimYOLOv3架構,包括它如何檢測目標

介紹

人類可以在幾毫秒內在我們的視線中挑選出物體。事實上,你現在就環顧四周,你將觀察到周圍環境並快速檢測到存在的物體,並且把目光回到我們這篇文章來。大概需要多長時間?

這就是實時目標檢測。如果我們能讓機器做到這一點有多酷?開心的是現在我們就可以做到!主要由於最近在深度學習和計算機視覺方面的突破,我們不僅可以依靠目標檢測演算法來檢測影像中的物體,而且還可以以人類的速度和準確度來實現。

我們將首先看看目標檢測的各種細微差別(包括你可能面臨的潛在挑戰)。然後,我將介紹SlimYOLOv3框架並深入探討它如何工作以實時檢測目標。

什麼是目標檢測?

在我們深入研究如何實時檢測目標之前,讓我們首先介紹一下基礎知識。如果你是計算機視覺領域初學者,這一點尤為重要。

目標檢測是我們用於識別影像中目標位置的技術。如果影像中有單個目標,並且我們想要檢測該目標,則稱為影像定位。如果影像中有多個目標怎麼辦?嗯,這就是目標檢測!讓我用一個例子解釋一下:

使用SlimYOLOv3框架實現實時目標檢測

左側的影像具有單個目標(狗),因此檢測該目標將是影像定位問題。右邊的影像有兩個目標(一隻貓和一隻狗)。檢測這兩個目標則是目標檢測問題。

現在,你可能想知道為什麼需要目標檢測?更重要的是,為什麼我們需要執行實時目標檢測?我們將在下一節回答這些問題。

目標檢測的應用

目標檢測現在正在業界廣泛使用。任何從事計算機視覺工作的人都應該清楚地瞭解這些應用。

目標檢測的使用範圍從個人安全到自動車輛系統。讓我們討論一些當前和無處不在的應用。

自動駕駛

這是目標檢測最有趣和最近的應用之一。

自動駕駛汽車是能夠在很少或沒有人為引導的情況下自行移動的車輛。現在,為了讓汽車決定它的行動,即要麼向前移動,要麼停車,要麼轉彎,它必須知道它周圍所有物體的位置。使用目標檢測技術,汽車可以檢測其他汽車,行人,交通訊號等物體。

使用SlimYOLOv3框架實現實時目標檢測

人臉檢測與人臉識別

人臉檢測和識別可能是計算機視覺中應用最廣泛的應用。每次在Facebook,Instagram或Google相簿上傳圖片時,它都會自動檢測影像中的人物。

使用SlimYOLOv3框架實現實時目標檢測

行為識別

你會喜歡這個,目的是識別一個或多個影像系列的活動或動作。目標檢測是其背後的核心概念,它檢測行為然後識別操作。這是一個很酷的例子:

使用SlimYOLOv3框架實現實時目標檢測

目標計數

我們可以使用目標檢測演算法來計算影像中的目標數量,甚至是實時視訊中的目標數量。計算目標的數量有很多方面,包括分析儲存表現或估計人群中的人數。

使用SlimYOLOv3框架實現實時目標檢測

而大多數應用程式需要實時分析。我們行業的動態性質傾向於即時結果,而這正是實時目標檢測的結果。

為什麼要進行實時目標檢測?

我們以自動駕駛汽車為例。考慮到我們已經訓練了一個目標檢測模型,它需要幾秒鐘(比如每個影像2秒)來檢測影像中的物體,我們最終將這個模型部署在自動駕駛汽車中。

你覺得這個模型會好嗎?汽車能夠檢測到它前面的物體並採取相應的措施嗎?

當然不是!這裡的推理時間太多了。汽車將花費大量時間做出可能導致事故等嚴重情況的決策。因此,在這種情況下,我們需要一個能夠為我們提供實時結果的模型。該模型應該能夠檢測目標並在幾微秒內進行推斷。

用於目標檢測的一些常用演算法包括RCNN,Fast RCNN,Faster RCNN和YOLO。

使用SlimYOLOv3框架實現實時目標檢測

本文的目的不是深入研究這些技術,而是瞭解用於實時目標檢測的SlimYOLOv3架構。當我們不需要實時檢測時,這些技術非常有效。不幸的是,當面對實時分析時,他們往往不是很好。讓我們來看看在嘗試構建自己的實時目標檢測模型時可能遇到的一些挑戰。

實時目標檢測的挑戰

實時目標檢測模型應該能夠感知環境,解析場景並最終做出相應的反應。模型應該能夠識別場景中存在的所有型別的目標。一旦識別出目標的型別,模型應該通過在每個目標周圍定義邊界框來定位這些目標的位置。

所以,這裡有兩個功能。首先,對影像中的目標進行分類(影像分類),然後使用邊界框(目標檢測)定位目標。

當我們處理實時問題時,我們可能面臨多重挑戰:

  • 我們如何處理變化?變化可能與物體形狀,亮度等有所不同。

  • 部署目標檢測模型。這通常需要大量的記憶體和計算能力,特別是在我們每天使用的機器上

  • 最後,我們還必須在檢測效能和實時要求之間保持平衡。通常,如果滿足實時要求,我們會看到效能會有所下降,反之亦然。因此,平衡這兩個方面也是一個挑戰

那麼我們如何克服這些挑戰呢?好吧,這是文章的關鍵所在--SlimYOLOv3框架!SlimYOLOv3旨在處理這些限制並以令人難以置信的精度執行實時目標檢測。

讓我們首先了解SlimYOLOv3是什麼,然後我們將介紹架構細節以更好地理解框架。

SlimYOLOv3介紹

你能猜出深度學習管道是如何工作的嗎?以下是典型流程的基本摘要:

  • 首先,我們設計模型結構

  • 微調該模型的超引數

  • 訓練模型

  • 最後評估模型

模型中有多個元件或連線。經過幾次迭代後,其中一些連線變得多餘,因此我們可以從模型中刪除這些連線。刪除這些連線稱為剪枝。

剪枝不會顯著影響模型的效能,並且計算要求將顯著降低。因此,在SlimYOLOv3中,在卷積層上執行剪枝。我們將在下一部分中瞭解有關如何完成此剪枝的更多資訊。

剪枝後,我們對模型進行微調以補償模型效能的下降。

與原始YOLOv3相比,剪枝後的模型導致較少的訓練引數和較低的計算要求,因此對於實時目標檢測更方便。

現在讓我們討論一下SlimYOLOv3的結構,以便更好,更清楚地理解這個框架底層的工作原理。

瞭解SlimYOLOv3的結構

下圖說明了SlimYOLOv3的工作原理:

使用SlimYOLOv3框架實現實時目標檢測

SlimYOLOv3是YOLOv3的修改版本。YOLOv3的卷積層被剪枝以實現小和更快的版本。但是等等, 為什麼我們首先使用YOLOv3?為什麼不用RCNN,Faster RCNN等其他目標檢測演算法呢?

為什麼是YOLOv3?

使用SlimYOLOv3框架實現實時目標檢測

基本上有兩種型別深度目標檢測模型:

  • Two-stage detectors

    • 屬於RCNN系列的探測器屬於Two-stage detectors。該過程包含兩個階段。首先,我們提取候選區域,然後對每個候選區域進行分類並預測邊界框。這些探測器通常可以提供良好的探測精度,但這些探測器對於候選區域的推斷時間需要大量的計算和實時儲存

  • Single-stage detectors

    • 屬於YOLO系列的探測器屬於Single-stage detectors。這是一個單階段的過程。這些模型利用預定義的錨點來覆蓋影像中的空間位置,比例和縱橫比。因此,我們不需要額外的分支來提取候選區域。由於所有計算都在單個網路中,因此它們比Single-stage detectors更可能執行得更快。YOLOv3也是Single-stage detectors,目前是目標檢測的最先進技術

稀疏訓練(Sparsity training)

下一步是YOLOv3模型的稀疏訓練:

使用SlimYOLOv3框架實現實時目標檢測

在這裡,我們使用以下步驟剪枝YOLOv3模型:

  • 首先,我們評估YOLOv3模型的每個元件的重要性。我將簡要討論如何確定這些元件的重要性的細節

  • 一旦評估了重要性,我們就會刪除不太重要的元件

移除的元件可以是單獨的神經連線或網路結構。為了定義每個元件的重要性,我們根據它們的貢獻對網路的每個神經元進行排序。有多種方法可以做到:

  • 我們可以採用L1 / L2正則化神經元權重的平均值

  • 每個神經元的平均啟用

  • 神經元輸出不為零的次數

在SlimYOLOv3中,基於被認為是縮放因子的L1正則化神經元權重的平均值來計算重要性。這些縮放因子的絕對值是通道的重要性。為了加速收斂並改進YOLOv3模型的泛化,在每個卷積層之後使用批量歸一化層。

SlimYOLOv3

然後我們定義一個全域性閾值,比如說ŷ,並丟棄任何縮放因子小於此閾值的通道。通過這種方式,我們修剪了YOLOv3架構並獲得了SlimYOLOv3架構:

使用SlimYOLOv3框架實現實時目標檢測

在評估縮放因子時,尚未考慮YOLOv3架構的最大池化層和上取樣層。

Fine-tuning

使用SlimYOLOv3框架實現實時目標檢測

我們現在有SlimYOLOv3模型,那麼下一步是什麼?我們對其進行微調以補償效能下降,並最終評估微調模型以確定修剪後的模型是否適合部署。

稀疏訓練實際上在減小比例因子方面非常有效,因此使得卷積層的特徵通道稀疏。以較大的懲罰因子α= 0.01訓練會導致比例因子衰減,並且模型開始過度擬合。

在SlimYOLOv3中,懲罰因子α= 0.0001用於執行通道修建。

結語

我們在本文中介紹了很多內容。我們看到了不同的目標檢測演算法,如RCNN,Fast RCNN,Faster RCNN,以及目前最先進的目標檢測YOLO。

然後,我們介紹了SlimYOLOv3架構,它是YOLO的修改版本,可用於實時目標檢測。

相關文章