您的位置:老鐵SEO > 站長新聞 > 科技 >

比Tiny YOLOv3小8倍,性能提升11個點,4MB的網絡也能做目標檢測

文章來源:未知

作者:老鐵SEO

人氣:12

2019-10-07

作者:Alexander Wong等

機器之心編譯

在本文中,來自滑鐵盧大學與 Darwin AI 的研究者提出了名為 YOLO Nano 的網絡,他們通過人與機器協同設計模型架構大大提升了性能。YOLO Nano 大小只有 4.0MB 左右,比 Tiny YOLOv2 和 Tiny YOLOv3 分別小了 15.1 倍和 8.3 倍,性能卻有較為顯著的提升。

 

鏈接:https://arxiv.org/abs/1910.01271

 

目標檢測在計算機視覺領域是一個活躍的研究分支,而深度學習已經成為這一領域最前沿也是最成功的解決方案。但是,在邊緣和移動設備中廣泛部署神經網絡模型需要大量的計算算力和內存。因此,近來研究領域主要在解決適合以上設備的神經網絡。

 

本文便是這些研究中的一個,研究者提出了名為 YOLO Nano 的網絡。這一模型的大小在 4.0MB 左右,比 Tiny YOLOv2 和 Tiny YOLOv3 分別小了 15.1 倍和 8.3 倍。在計算上需要 4.57B 次推斷運算,比后兩個網絡分別少了 34% 和 17%。

 

在性能表現上,在 VOC2007 數據集取得了 69.1% 的 mAP,準確率比后兩者分別提升了 12 個點和 10.7 個點。研究者還在 Jetson AGX Xavier 嵌入式模塊上,用不同的能源預算進行了測試,進一步說明 YOLO Nano 非常適合邊緣設備與移動端。

 

從兩階段目標檢測開始的故事

 

 

目標檢測任務目前有兩種通行的解決方案,一種是兩階段目標檢測,另一種是單階段的。對于兩階段目標檢測,首先需要神經網絡識別目標(如在目標上打上定位框),然后對識別出的目標進行分類。另一種則是單階段,直接使用網絡對目標進行檢測。兩階段的好處在于實現容易,但下游的分類任務依賴上游識別定位任務的表現。而單階段方法盡管不需要首先識別目標,但加大了端到端實現目標檢測的難度。

 

一般而言,兩階段目標檢測方法準確性高,但速度不快;而單階段的檢測器速度快,準確率并達不到最高。不過隨著基于關鍵點的方法越來越流行,單階段不僅快,同時效果也不錯。

 

在單階段目標檢測方法中,圍繞效率而生的 YOLO 神經網絡是一個非常有趣的存在,我們最常調用的檢測器也是它了。YOLO 可以在 GPU 實現實時目標檢測,而且效果還挺好。

 

然而,這些網絡架構對于很多邊緣和移動場景而言太大了(例如,YOLOv3 網絡的大小為 240MB),而且因為計算復雜度(YOLOv3 需要多達 65B 的運算量)過高,在這些設備上的推斷速度會很慢。為了解決這些問題,Redmon 等提出了 Tiny YOLO 家族的網絡架構,可以在一定程度上犧牲目標檢測性能,換取模型規模的極大縮小。

 

本研究中,研究者通過人機協作設計策略(human-machine collaborative design)的方法進行構建。在構建的過程中,首先設計主要的網絡原型,原型基于 YOLO 網絡家族中的單階段目標檢測網絡架構。然后,將原型和機器驅動的設計探索策略結合,創建一個緊湊的網絡。這個網絡是高度定制化的,在模塊級別上有著宏架構(macro-architecture)和微架構(micro-architecture),可用于嵌入式目標檢測任務。

 

YOLO Nano 設計思路

 

YOLO Nano 在架構設計的中經過了兩個階段:首先設計一個原型網絡,形成網絡的主要設計架構;然后,使用機器驅動的方法進行探索設計。

 

原型主體網絡設計

 

首先是設計主要的網絡原型,研究者創建了一個原始的架構(表示為?),用于引導機器進行后續的探索設計。具體而言,研究者設計的網絡基于 YOLO 家族中的單階段目標檢測架構。

 

YOLO 家族的網絡架構最明顯的特征是,它們不像基于「候選框」的網絡那樣需要構建一個 RPN,該網絡會生成一系列定位目標的候選邊界框,然后對生成的邊界框進行分類。YOLO 家族的網絡可以直接對輸入的圖像進行處理,然后生成輸出結果。

 

這樣一來,所有目標檢測的預測都是將一張圖像輸入,直接得到輸出,相比于 RPN 那種需要成百上千次的計算來得到最終結果而言省去了很多計算步驟,這使得 YOLO 家族的網絡在運算上非???,對于嵌入式目標檢測任務而言也是最合適的。

 

機器驅動的探索設計

 

在這一階段,研究者讓機器使用最初的原型網絡、數據和人類提出的設計的要求做為指引,然后機器驅動的探索設計會決定模塊級別的宏架構和微架構,用于最終的 YOLO Nano 網絡。

 

具體來說,機器驅動的探索設計是通過生成式整合來實現的。這一方法可以決定最優的網絡宏架構和微架構,并符合人類的要求。

 

生成式整合的總體目標是學習生成式的機器,用于生成符合設計要求、限制等條件的深度神經網絡。決定生成器 G 可以形式化為一個帶約束的最優化問題,即在給定一系列種子 S 的情形下,生成網絡 {N_s|s ∈ S} 以最大化全局性能函數 U。在最大化過程中需要滿足指示函數 1_r(·),1r(·) 被定義來表示人類提出的需求和限制條件。

 

 

 

YOLO Nano 架構設計

 

了解了 YOLO Nano 的設計思路后,我們再看看它的架構是什么樣的。如下圖 1 所示,YOLO Nano 主要可以分為三部分,其中會有便捷連接連通不同抽象程度的特征圖。

 

圖 1:YOLO Nano 神經網絡架構。注意其中 PEP(x) 表示殘差 PEP 模塊第一個映射層的 x 通道,FCA(x) 表示降維率為 x。

 

值得注意的是,YOLO Nano 有三種比較高效的模塊,它們共同提升了整體建模的參數效率和運算效率。

 

殘差映射-擴張-映射宏架構

 

YOLO Nano 網絡架構第一個非常值得關注的模塊就是殘差映射-擴張—映射(PEP)宏架構(Macro-architecture),它和原來 YOLO 家族的模塊有一些不同。

 

殘差 PEP 宏架構主要由以下四部分組成:

 

一個 1*1 卷積的映射層,它將輸入的特征圖映射到較低維度的張量;

一個 1*1 卷積的擴張層,它會將特征圖的通道再擴張到高一些的維度;

一個逐深度(depth-wise)的卷積層,它會通過不同濾波器對不同的擴張層輸出通道執行空間卷積;

一個 1*1 卷積的映射層,它將前一層的輸出通道映射到較低維度。

 

殘差 PEP 宏架構的使用可以顯著降低架構和計算上的復雜度,同時還能保證模型的表征能力。

 

全連接注意力宏架構

 

YOLO Nano 第二個值得注意的模塊是,通過機器驅動設計的探索過程,研究者在神經網絡引入了輕量級的全連接注意力(FCA)模塊。FCA 宏架構由兩個全連接層組成,它們可以學習通道之間的動態、非線性內部依賴關系,并通過通道級的乘法重新加權通道的重要性。

 

FCA 的使用有助于基于全局信息關注更加具有信息量的特征,因為它再校準了一遍動態特征。這可以更有效利用神經網絡的能力,即在有限參數量下盡可能表達重要信息。因此,該模塊可以在修剪模型架構、降低模型復雜度、增加模型表征力之間做更好的權衡。

 

宏架構和微架構的異質性

 

 

對于第三點,YOLO Nano 不僅在宏架構(PEP 模塊、EP 模塊、FCA 以及各個 3×3 和 1×1 卷積層的多樣化組合)方面存在高度異質性,同樣在獨立特征表征模塊和層級這些微架構之間也會存在異質性。

 

YOLO Nano 架構具有高度異質性的優勢在于,它可以使網絡架構的每個模塊都經過特定的設計,從而在模型架構、計算復雜度和表征能力之間實現更優的權衡。YOLO Nano 這種架構多樣性還展示了機器驅動設計探索策略和生成式組合一樣靈活,因為人類設計者或其它設計探索方法無法在如此細粒度的層級上自定義架構。

 

實驗效果

 

為了研究 YOLO Nano 在嵌入式目標檢測上的性能,研究者在 PASCAL VOC 數據集上檢測了模型大小、目標檢測準確率、計算成本三大指標。為了體現對比,流行的 Tiny YOLOv2 和 Tiny YOLOv3 網絡會作為基線模型。

 

如下表 1 展示了 YOLO Nano 、Tiny YOLOv2 和 Tiny YOLOv3 的模型大小與準確率。

 

表 1:緊湊網絡在 VOC 2007 測試集上的目標檢測準確率結果,輸入圖像大小為 416*416,最優結果用加粗展示。

 

最后,為了探索 YOLO Nano 在現實世界中的性能,尤其是在邊緣設備中的表現,研究者在 Jetson AGX Xavier 嵌入式模塊測試了 YOLO Nano 的推斷速度與能源效率。在 15W 和 30W 能源預算下,YOLO Nano 分別能實現∼26.9 FPS 和 ∼48.2 的推斷速度。

 

這些實驗都表明這篇論文提出來的 YOLO Nano 網絡在準確率、模型大小和計算復雜度上提供了非常好的權衡,這種優勢主要是通過人機協作的設計策略獲得的,而且 YOLO Nano 在這種優勢下也非常適合邊緣和移動設備。

相關文章

在線客服

外鏈咨詢

掃碼加我微信

微信:juxia_com

返回頂部

肉动漫无码纯肉高H免费,又黄又爽的视频合集,av日韩动漫精品一区二区,欧美性强迫XXXX