AAAI 2020 | NAS+目標檢測:AI設計的目標檢測模型長啥樣?

2021-02-20 PaperWeekly

©PaperWeekly 原創 · 作者|劉暢

學校|上海交通大學博士生

研究方向|計算機視覺

太長不看版


論文標題:SM-NAS: Structural-to-Modular Neural Architecture Search for Object Detection

論文來源:AAAI 2020

論文連結:https://arxiv.org/abs/1911.09929

State-of-the-art 的目標檢測方法非常複雜,它通常由:Backbone、Feature fusion neck(FPN 屬於這類 [1])、RPN RCNN head 等多個模塊組成。每種不同的模塊都有一堆設計和結構。之前一些 NAS 結合 Object Detection 問題的論文只關注設計一個模塊的設計(比如 backbone,feature fusion neck),而忽視了整個系統之間的平衡。 直覺上,複雜的模型效果好但速度慢(佔計算資源),簡單的模型效果差但速度快。而本文則使用 NAS 方法,在多個模塊之中搜索,權衡計算資源與精度的矛盾。論文提出了一種兩步的,從粗到細的搜索策略,名為 Structural-to-Modular NAS(SM-NAS)。即首先進行 Structural-level(結構層級)的搜索,尋找高效的模塊組合。之後進行 Modular-level 演化每個特定模塊,並向更快的特定任務網絡這一目標,推進帕累託前沿。 註:帕累託前沿(Pareto front),即 Pareto 解的集合,在這裡可理解為一個模型集合,從集合裡拉出任意兩個成員出來,節省資源的一定準確率低。而對於不屬於這個集合的模型,總有一個集合成員比他又節省資源又準確率高。本文考慮的是一個多目標搜索問題,而搜索空間則是很多熱門的檢測算法。而由於改進的訓練方法,搜索時可以不採用任何的預訓練模型或其他的代理任務,而是直接在數據集上跑預測,使得搜索結果更準確。

檢測算法總體上(大多)由 backbone,feature fusion neck(FPN 屬於這類),RPN 和 RCNN head 四種 module 組成,之前有很多工作提出了很多不錯的 module,但是不知如何在硬體資源限制下尋找最優組合。

就算可以把所有的組合全在標準數據集上訓一遍再比較並去除最好的,最終也只是個低效且次優(sub-optimal)的組合,因為某個組合可能只適用於特定的數據集(比如 COCO 可以,VOC 就不行)。除此之外,現有的 NAS 只關注最優化目標檢測系統的一個部分而不是整體。

與此同時,作者通過大量的復現 SOTA 的目標檢測模型,在實驗中發現了兩個有趣的事實:

1. Two-stage 的模型不一定比 One-stage 模型跑得慢;

2. 通過精心組合,一個輸入圖片尺寸較小的複雜模型,可以在速度和精度上雙重碾壓一個輸入尺寸較大的簡單模型。

影響目標檢測系統效果的要素

總結一下,本論文致力於建立了一個多目標搜索機制,尋找高效最優的目標檢測整體結構。在總結了 state-of-the-art 的設計和實驗的現象之後,作者總結了三個影響目標檢測系統效果的要素:

每個 module 的結構

為了在這三個要素中找到一個兼顧效率和準確的權衡,作者提出了一個從粗到細的搜索策略:1)結構層級(第一步):尋找module的組合以及模型輸入圖片的尺寸;2)模塊層級(第二部):演化每個特定的 module,去獲得一個高效的網絡。

搜索空間

搜索空間會隨著搜索策略改變,因此每一步都有自己特定的搜索空間:

第一步:包含 one-stage 和 two-stage 的熱門模塊,以及輸入圖片的大小。

第二步:優化和搜索第一步確定下來的模塊,以 backbone 為例,本來當分類的模型不太適合直接遷移到目標檢測問題中。以 backbone 為例,本來當分類的模型不太適合直接拿來當檢測(比如每一層的通道數和中間的空間解析度),這些也可以通過搜索的辦法微調。

搜索方法

而對於搜索方法,論文結合了演化算法和偏序剪枝(Partial Order Pruning)來進行快速搜索(具體搜索算法引用自下面兩篇論文)。

Esteban Real, Alok Aggarwal, Yanping Huang, and Quoc V Le. Regularized evolution for image classifier architecture search. arXiv preprint arXiv:1802.01548, 2018Esteban Real, Sherry Moore, Andrew Selle, Saurabh Saxena, Yutaka Leon Suematsu, Jie Tan, Quoc V Le, and Alexey Kurakin. Large-scale evolution of image classifiers. In ICML, 2017.

除此之外,作者提出了更好的訓練策略,無需 ImageNet 預訓練就可以直接跑,還在分布式訓練系統上並行了整個搜索過程。

創新點

NAS Pipeline

如上圖所示,上面是搜索的第一個層級:結構層級。該層級把整個模型分成了 backbone + feature fusion neck + RPN + RCNN head 四個部分,把所有 state-of-the-art 放到了搜索空間裡,並且還額外加入了輸入圖片尺寸這一維度。 

1. Backbone: ResNet(18,34,50,101) | ResNeXt(50,101) | Mobilenet V2

注意,結構層級搜索裡還是用的 ImageNet 預訓練(說好的所謂快速搜索策略呢)。

2. Feature Fusion Neck: 該 module 旨在融合不同層的特徵,也對應了圖片中不同大小的目標

NO FPN (Faster RCNN) | FPN(輸入輸出特徵層級可調,有多種選項)

3. RPN: NO RPN (即1-stage模型) | RPN | Guided Anchoring RPN 

4. RCNN Heads: Regular | Cascade (幾個輸出待定) | RetinaNet 

5. Input Resolution: 512x512 | 800x600 | 1080x720 | 1333x800 

在第一階段,搜索的指標是精度和推理時間,結合驗證數據集的準確性,生成一個 Pareto 前沿,顯示在不同資源約束下目標檢測模型的最佳結構。 

而下面則是搜索的第二個層級:模塊層級。

當第一個層級生成了一個帕累託前沿時,我們可以選擇幾個不錯的模型,並在第二個階段裡對每個模型進行微調,並提升速度/精度的權衡效果。 

ThunderNet 提出,目標檢測的 backbone,在前面的特徵圖更大,充滿描述空間細節的低級特徵。而後面的特徵圖則更小,但更具有高層的可描述性。

檢測任務有定位與分類兩個子任務,定位任務對低級的細節特徵比較敏感,而分類任務則高層特徵顯得更加關鍵。因此,一個很自然的問題就是如何在減少計算資源佔用的情況下獲得兼顧高底層特徵的模型。

因此,在 backbone 中,我們設計了一個靈活的搜索空間以尋找最優的通道數,以及下採樣與通道數提高的位置。 

順便一提,在搜索 backbone 的過程中,作者根據前人工作的先驗知識固定了其中的幾個層的類型,並且維持了同一種大類的模型結構(如 ResNet 模型微調了還是 ResNet,ResNeXt 怎麼都是 ResNeXt)。因此 backbone 就可以簡單地使用字符串編碼。具體地可以看論文。 

除了 backbone 之外,FPN 的通道數也是可調的,輸入的通道數在 128,256,512 中選取,而 head 的通道數也會相應調整。

快速訓練方法 

作者提出兩個在目標檢測訓練中的致命問題,以及其解決方法,使得模型可以不通過 Image net 進行預訓練。錯誤的 Batch Normalization,因為訓練時 GPU 顯存的限制,目標檢測的 batchsize 通常較小,這導致模型很難估計batch中真實的統計數據,因此極大提高了模型的誤差。 

為了解決這個問題,使用了 Group Normalization (GN)。GN 將通道分成組,並在每個組中計算用於標準化的平均值和方差。GN 的計算與 batchsize 無關,因此在 batchsize 大幅變化時表現穩定。

複雜的損失函數,檢測中的多重損失(分類損失,位置損失,而且不同坐標位置損失還不一樣算法)以及 ROI pooling 層阻礙了梯度從 RPN 向 backbone 回傳。因此,在從頭開始的訓練中會出現明顯的損失函數震蕩以及梯度爆炸現象。 

Batch Normalization 可以顯著解決梯度爆炸問題,而因為目標檢測的 batchsize 比較小不太合適,因此使用了 Weight Standardization (WS) 來進一步平滑 Loss,WS 與 BN/GN 不同,直接標準化了卷積層的權重值,其通過實驗展示了這樣的操作可以減少損失和梯度值的 Lipschitz 常數。 

實驗表明,加了 GN 和 WS 之後,訓練時可使用更大的學習率,因此也比預訓練方法收斂速度快了許多。

多目標搜索算法 

在訓練的每個層級上,想做的都是生成一個 Pareto 前沿以顯示精度和計算資源的一些最佳權衡。 

為了生成 Pareto 前沿,本文使用了非支配排序(nondominate sorting)確定模型是否在效率和準確率上支配其他模型。 

在第一個層級中,使用一塊 V100 GPU 的推斷時間作為效率指標,而第二層及中,使用 FLOPs 而不是真實的時間,因為 FLOPs 更加精確(畢竟 backbone 之類的模型都是一個種類的)。除此之外,因為第一層級訓練還是預訓練+BN,而第二層級轉為了 GN+WS,因此使用 FLOPs 可以保持排名的一致性。 

搜索基於: 

其他實現細節 

第一層級的實現是先隨機生成各種模型組合,然後使用演化算法迭代尋找最優組合。經驗上跑 5 個 epoch 就可以進行模型比較了。在這個階段,評估了 500 個模型並花了 2000 GPU hours。 

PS:在搜索過程中,MobileNet 的表現最差,這是因為 MobileNet 以時間換空間的做法在 GPU 上反而會降低速度,具體請看我關於 MobileNet 的筆記 [2]。 

第二層級使用 GN 和 WS 作為訓練策略,而搜索……論文好像沒提怎麼搜的,可能和第一層級一樣?最終第二層級評估了 300 個模型,並消耗了 2500 GPU hours。

[1] https://zhuanlan.zhihu.com/p/78160468

[2] https://zhuanlan.zhihu.com/p/80177088

點擊以下標題查看更多往期內容: 

#投 稿 通 道#

 讓你的論文被更多人看到 

如何才能讓更多的優質內容以更短路逕到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。

總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。 

PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得技術乾貨。我們的目的只有一個,讓知識真正流動起來。

📝 來稿標準:

• 稿件確係個人原創作品,來稿需註明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向) 

• 如果文章並非首發,請在投稿時提醒並附上所有已發布連結 

• PaperWeekly 默認每篇文章都是首發,均會添加「原創」標誌

📬 投稿郵箱:

• 投稿郵箱:hr@paperweekly.site 

• 所有文章配圖,請單獨在附件中發送 

• 請留下即時聯繫方式(微信或手機),以便我們在編輯發布時和作者溝通

🔍

現在,在「知乎」也能找到我們了

進入知乎首頁搜索「PaperWeekly」

點擊「關注」訂閱我們的專欄吧

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。

相關焦點

  • 用Java實現目標檢測|PyTorch
    這篇來自AWS軟體工程師的投稿,結合實例,詳細介紹了DJL這個為Java開發者設計的深度學習庫:5分鐘,你就能在PyTorch上,用Java實現目標檢測。5分鐘,用Java實現目標檢測文 / 知乎用戶@LankingPyTorch在深度學習領域中的應用日趨廣泛,得益於它獨到的設計。無論是數據的並行處理還是動態計算圖,一切都為Python做出了很多簡化。很多論文都選擇使用PyTorch去實現也證明了它在訓練方面的效率以及易用性。
  • 首個基於Transformer的目標檢測模型上線,大目標檢測超越Faster R...
    研究員聲稱這種方法簡化了目標檢測模型的創建,並減少了對手工組件的需求。   Facebook AI Research的六名成員研究了近期非常流行的Transformer神經網絡架構,創建了一個端到端的目標檢測AI。研究員聲稱這種方法簡化了目標檢測模型的創建,並減少了對手工組件的需求。
  • 做目標檢測,這6篇就夠了:CVPR 2020目標檢測論文盤點
    CVPR 2020 會議上,有哪些目標檢測論文值得關注?目標檢測是計算機視覺中的經典問題之一。憑藉大量可用數據、更快的 GPU 和更好的算法,現在我們可以輕鬆訓練計算機以高精度檢測出圖像中的多個對象。前不久結束的 CVPR 2020 會議在推動目標檢測領域發展方面做出了一些貢獻,本文就為大家推薦其中 6 篇有價值的目標檢測論文。
  • PP-YOLO超越YOLOv4-目標檢測的進步
    PP-YOLO評估指標比現有最先進的對象檢測模型YOLOv4表現出更好的性能。然而,百度的作者寫道:本文不打算介紹一種新型的目標檢測器。它更像是一個食譜,告訴你如何逐步建立一個更好的探測器。讓我們一起看看。
  • AAAI 2021 目標檢測論文大盤點(YOLObile/R3Det/StarNet等)
    本文為第一篇:目標檢測方向。主要包含:一般的2D目標檢測、旋轉目標檢測、視頻目標檢測、弱監督、域自適應等方向。注意1:並不包含3D 目標檢測和顯著性目標檢測,後續CVer會專門系統整理,還請關注後續內容。
  • 目標檢測第3步-模型訓練
    1 前言開發環境:python3.6Windows10tensorflow_gpu1.10跟隨本篇文章實踐之前,需要先閱讀前置文章《目標檢測第2步-數據準備》,連結:https://www.jianshu.com/p/3d9436b4cb66現在桌面的目標檢測文件夾中需要有object_detection工程文件夾和training
  • 2020「水下目標檢測算法賽」賽題解析——聲學圖像
    《2020「水下目標檢測算法賽」——聲納設備及其圖像判讀應用》:http://www.mooc.ai/open/course/760  《2020「水下目標檢測算法賽」 ——水下聲納圖像目標識別研究》:http://www.mooc.ai/open/course
  • HiPU設計簡介——DAC19目標檢測設計競賽FPGA賽道亞軍方案介紹| AI...
    目標檢測設計是一個面向移動端的單目標物體檢測的比賽,檢測精度高且能耗低者勝出。我們團隊設計了單目標檢測的深度學習算法ShuffleDet,和面向Xilinx ZU3的AI硬體加速器,獲得了FPGA賽道的第二名。本次分享主要介紹我們團隊的設計方案。
  • 【ICML2020】小樣本目標檢測
    我們發現,在小樣本目標檢測任務中,僅對稀有類上現有檢測器的最後一層進行微調是至關重要的。這種簡單的方法比元學習方法在當前基準上的表現高出約2 ~ 20點,有時甚至比以前的方法的準確度還要高出一倍。然而,少數樣本的高方差常常導致現有基準的不可靠性。我們通過對多組訓練樣本進行抽樣,以獲得穩定的比較,並在PASCAL VOC、COCO和LVIS三個數據集的基礎上建立新的基準。
  • 視頻目標檢測大盤點
    這樣,產生的檢測框既與軌跡一致,又具有高檢測響應,而不是像後期集成技術中只能選兩個中的一個。該模型(使用 R-FCN ResNet101 主幹)在 imageenet VID 上在線設置中實現了83.5 MAP。
  • 百度AI獲ECCV 2020 挑戰賽「雙冠王」目標檢測技術領先國際
    2020年8月23-28日,原定於在英國格拉斯哥舉行的ECCV 2020受疫情影響,改為虛擬形式在線上進行,但這並未影響參加者的熱情,依然輸出了相當多計算機視覺領域優質內容。百度作為計算機視覺領域的「佼佼者」,在ECCV 2020上也有不菲的成績,先有10篇論文中選被收錄,如今又「連中兩元」拿下兩個Workshop冠軍,分別是Tiny Object Detection和目標檢測領域最權威的比賽COCO。  在目標檢測領域,百度可謂是獲獎「常客」。
  • AI內參|目標檢測算法YOLO更新;Zoom集成AI會議速記功能
    新技術、新產品和新應用1、目標檢測算法YOLO後繼有人,YOLO v4正式更新第一條重磅的技術消息是,知名目標檢測項目YOLO,現在有了繼承人。今年2月,YOLO之父Jeseph Redmon因「無法忽視工作帶來的負面影響」,突然宣布隱退,讓學術界唏噓不已,許多人擔心這個強大的目標檢測算法研究會因此偃旗息鼓。這次的YOLO v4在性能上相比前代也有巨大提升,在保持和前代相同運行速度下,精確度大幅提高。
  • 模型的跨界:我拿Transformer去做目標檢測,結果發現效果不錯
    處理目標檢測任務的全新架構DETR 將目標檢測任務視為一種圖像到集合(image-to-set)的問題。給定一張圖像,模型必須預測所有目標的無序集合(或列表),每個目標基於類別表示,並且周圍各有一個緊密的邊界框。這種表示方法特別適合 Transformer。
  • 目標檢測:Anchor-Free時代
    自從2018年8月CornerNet開始,Anchor-Free的目標檢測模型層出不窮,最近達到了井噴的狀態,宣告著目標檢測邁入了Anchor-Free時代。其實Anchor-Free並不是一個新概念了,大火的YOLO算是目標檢測領域最早的Anchor-Free模型,而最近的Anchor-Free模型如FASF、FCOS、FoveaBox都能看到DenseBox的影子。
  • Facebook AI的DETR:一種基於Transformer的目標檢測方法
    前不久,Facebook開源了一個這樣的框架,DETR(DEtection TRansformer)在本文中,我們將快速了解目標檢測的概念,然後研究DETR及其帶來的好處。目標檢測在計算機視覺中,目標檢測是一項將對象與背景區分開,並預測圖像中存在的對象的位置和類別的任務。當前的深度學習方法試圖將其作為分類問題或回歸問題或綜合兩者的目標檢測任務來解決。
  • ILSVRC2016目標檢測任務回顧:圖像目標檢測DET
    2016年,在該比賽的圖像目標檢測任務中,國內隊伍大放異彩,包攬該任務前五名(如圖1所示)。我們將根據前五名參賽隊伍提交的摘要與公開發表的論文或技術文檔,簡析比賽中用到的圖像目標檢測方法。圖1.CUImage、Hikvision、Trimps Soushen、360+MCG-ICT-CAS_DET、NUIST都用不同的基礎網絡訓練了多個模型用於融合。在訓練目標檢測模型之前,具有針對性的模型預訓練通常可以使得最後訓練的目標檢測模型能收斂到更優的位置。Hikvision提到在初始化global context的分支時使用預訓練的模型效果遠遠好於隨機初始化。
  • ILSVRC2016目標檢測任務回顧:圖像目標檢測(DET)
    不同的網絡通常能收斂到不同的極值點,這種網絡差異性是模型融合獲得較大提升的關鍵。CUImage、Hikvision、Trimps Soushen、360+MCG-ICT-CAS_DET、NUIST都用不同的基礎網絡訓練了多個模型用於融合。在訓練目標檢測模型之前,具有針對性的模型預訓練通常可以使得最後訓練的目標檢測模型能收斂到更優的位置。
  • CVPR 2020 目標檢測論文精選
    字幕組雙語原文:CVPR 2020 目標檢測論文精選英語原文:CVPR 2020: The Top Object Detection Papers翻譯:雷鋒字幕組(李珺毅、沫年惜雪)一、基於在點雲上的3D目標檢測的分層圖形網絡原文標題:A Hierarchical Graph Network for 3D Object Detection on Point Clouds這篇論文提出了一種基於圖卷積(gconv)的三維目標檢測層次圖網絡(hgnet)。
  • 全新視角探究目標檢測與實例分割的互惠關係 | AAAI 2020
    論文對當前目標檢測及實例分割算法的現狀進行了簡要的概述,並對各種方法的優劣進行了簡要的分析,據此提出了一套完整的框架,同時完成目標檢測與實例分割任務,並且兩個任務相互輔助,同時取得了性能的提升。因此便設計了如圖所示的雙流網絡,上面的 object stream 重點完成目標檢測任務,可以是 SSD, YOLO, RetinaNet 等任一 anchor-based 的目標檢測算法(文中採用了 RetinaNet);下面 pixel stream 重點完成分割的任務,解析度很高(文中採用了類似 PanopticFPN 的方式融合了多尺度的特徵,得到了高解析度的輸出);後續的若干操作則是文章的重點
  • AAAI 2020論文解讀:商湯科技提出新弱監督目標檢測框架
    現有的弱監督目標檢測方法大多數是基於多實例學習框架的,對於每個物體類別,基於多實例學習框架的方法傾向於學習圖像中該類中特徵最明顯的物體,並對於每張圖片選取得分最大的一個物體框進行訓練,其他被忽略的物體實例容易使學習網絡陷入局部最優,進而影響弱監督目標檢測的性能。