語義分割領域開山之作:Google提出用神經網絡搜索實現語義分割

2020-12-05 雷鋒網

雷鋒網(公眾號:雷鋒網) AI 科技評論按:本文作者陳泰紅,郵箱 ahong007@yeah.net,他為雷鋒網 AI 科技評論撰寫了 Google 利用神經網絡搜索實現語義分割的獨家解讀。

1. Introduction

在 arxiv 瀏覽論文的時候,單獨看文章名不知道屬於 CV 哪個領域,懷著對一作 Liang-Chieh 敬畏的心,在摘要中掃描到 PASCAL VOC 2012 (semantic image segmentation),瀏覽全文才明白,Google 又發大招。

Google 在 Cloud AutoML 不斷發力,相比較而言之前的工作只是在圖像分類領域精耕細作,如今在圖像分割開疆擴土,在 arxiv 提交第一篇基於 NAS(Neural network architecture)的語義分割模型[1](DPC,dense prediction cell)已經被 NIPS2018 接收,並且在 Cityscapes,PASCAL-Person-Part,PASCAL VOC 2012 取得 state-of-art 的性能(mIOU 超過 DeepLabv3+)和更高的計算效率(模型參數少,計算量減少)。

Google 儼然已是圖像語義分割領域的高產霸主,Liang-Chieh 從 Deeplabv1- Deeplabv3+ 持續發力,還是 MobileNetV2 共同作者,如今在 NAS 領域開發處女地:基於 NAS 的語義分割模型,性能超過之前的基於 MobileNetV2 的 Network Backbone。

2. Motivation

深度學習技術已經成為當前人工智慧領域的一個研究熱點,其在圖像識別、語音識別、自然語言處理等領域展現出了巨大的優勢,並且仍在繼續發展變化。自 Google 提出 Cloud AutoML,NAS(Neural Architecture Search,神經網絡架構搜索)也取得重大進展,但更多的是在圖像分類和自然語言處理方面的應用。在過去的一年中,元學習(meta-learning)在大規模圖像分類問題上,性能已經實現超越人類手工設計的神經網架構。

基於 NAS 的圖像分類遷移到高解析度的圖像處理(語義分割、目標識別、實例分割)有很大的挑戰:(1)神經網絡的搜索空間和基本運算單元有本質不同。(2)架構搜索必須固有地在高解析度圖像上運行,因此不能實現從低解析度圖像訓練模型遷移到高解析度圖像。

論文首次嘗試將元學習應用於密集圖像預測(本人理解就是像素級圖像分割)。語義分割領域一般使用 encoder-decoder 模型,空間金字塔結構,空洞卷積等,目標是實現構建高解析度圖像的多尺度特徵,密集預測像素級標籤。論文利用這些技術構建搜索空間,同時構建計算量少、處理簡單的代理任務,該任務可為高解析度圖像提供多尺度架構的預測信息。

論文提出的模型在 Cityscapes dataset 驗證測試,取得 82.7% mIOU,超過人類手工設計模型 0.7%。在 person-part segmentation 和 VOC 2012 也取得 state-of-art 性能。具體可參考原論文。

3. Architecture

深度學習在感知任務中取得的成功主要歸功於其特徵工程過程自動化:分層特徵提取器是以端到端的形式從數據中學習,而不是手工設計。然而,伴隨這一成功而來的是對架構工程日益增長的需求,越來越多的複雜神經架構是由手工設計的。算法工程師一般自我調侃「煉丹師」,就是因為超參數的設計選取存在太多偶然性,是一門玄學,沒有明顯的規律性。

Neural Architecture Search (NAS) 是一種給定模型結構搜索空間的搜索算法,代表機器學習的未來方向。NAS 是 AutoML 的子領域,在超參數優化和元學習等領域高度重疊。本人最近寫過一篇 NAS 的綜述文章(讓算法解放算法工程師——NAS 綜述),NAS 根據維度可分為三類:搜索空間、搜索策略和性能評估策略。

3.1 搜索空間

搜索空間原則上定義了網絡架構。在圖像分類任務中分為三類:鏈式架構空間、多分支架構空間、Cell/block 構建的搜索空間。

論文提出了基於 Dense Prediction Cell (DPC)構建的遞歸搜索空間,對多尺度上下文信息編碼,實現語義分割任務。

圖 1 DPC 模型架構

DPC 由有向無環圖(directed acyclic graph ,DAG)表示,每個 Cell 包含 B 個分支,每個分支映射輸入到輸出的張量。每個 Cell 的操作類型包括 1x1 卷積,不同比率的 3x3 空洞卷積,不同尺寸的均值空間金字塔池化。

圖 2 3x3 空洞卷積比率類型

根據論文提供的操作方式,3x3 空洞卷積有 8x8,均值空間金字塔池化有 4x4 操作,即操作函數共有 1+8*8+4*4=81 種類型,對於 B 分支的 Cell,搜索空間為 B!*81B,當 B=5,搜索空間為 5!*815≈4.2*1011

3.2 搜索策略

搜索策略定義了使用怎樣的算法可以快速、準確找到最優的網絡結構參數配置。

機器學習模型超參數調優一般認為是一個黑盒優化問題,所謂黑盒問題就是我們在調優的過程中只看到模型的輸入和輸出,不能獲取模型訓練過程的梯度信息,也不能假設模型超參數和最終指標符合凸優化條件。

自動調參算法一般有 Grid search(網格搜索)、Random search(隨機搜索),還有 Genetic algorithm(遺傳算法)、Paticle Swarm Optimization(粒子群優化)、Bayesian Optimization(貝葉斯優化)、TPE、SMAC 等方式。

論文採用隨機搜索的方式,基於 Google Vizier 實現[3]。Github 上有開源實現的 advisor[4](非Google 開源,第三方),包括隨機搜索,網格搜索,貝葉斯優化等調參算法實現,感興趣可以關注一下。

3.3 性能評估策略

因為深度學習模型的效果非常依賴於訓練數據的規模,通常意義上的訓練集、測試集和驗證集規模實現驗證模型的性能會非常耗時,例如 DPC 在 Cityscapes dataset 上訓練,使用 1 個 P100 GPU 訓練候選架構(90 迭代次數)需要一周以上時間,所以需要一些策略去做近似的評估,同時滿足快速訓練和可以預測大規模訓練集的性能。

圖像分類任務中通常在低解析度圖像中訓練模型,再遷移到高解析度圖像模型中。但是圖像分割需要多尺度上下文信息。論文提出設計代理數據集:(1)採用較小的骨幹網絡(network backbone),(2)緩存主幹網絡在訓練集生成的特徵圖,並在其基礎上構建單個 DPC。(個人理解應該是權值共享的方式)。(3)訓練候選架構時提前終止(實驗中佔用 30K 迭代訓練每個候選架構)。

論文採用以上策略,在 GPU 上訓練只運行 90 分鐘,相比一周的訓練時間大幅度縮短。

在架構搜索後,論文對候選架構進行 reranking experiment,精準測量每個架構在大規模數據集的性能。reranking experiment 中,主幹網絡經過微調和訓練完全收斂,生成的最優模型作為最佳 DPC 架構。

4. Experiment&Result

論文在場景理解(Cityscapes),人體分割(PASCAL- Person-Part),語義分割(PASCAL VOC 2012)對比展示 DPC 模型的性能。主幹網絡在 COCO 數據集預訓練,訓練學習率採用多項式學習率,初始化為 0.01,裁剪圖像,fine-tuned BN 參數(batch size=8,16)。評測和架構搜索中,圖像尺寸採用單一類型。對比其他 state-of-the-art 系統時,通過對給定圖像的多個縮放進行平均來執行評估。

論文使用提出的 DPC 架構搜索空間,在 Cityscapes 部署生成的代理任務,370 個 GPU 在一周時間中評估 28K 個 DPC 架構。論文採用 MobileNet-v2 主幹網絡對整個模型進行微調,選擇前 50 個架構進行重新排序。

論文中圖 5 、圖 6 展示了頂級 DPC 架構的示意圖。在圖 5b 每個分支(通過 1*1 卷積)的 L1 正則化權重,我們觀察到具有 3×3 卷積(速率= 1×6)的分支貢獻最大,而具有大速率(即較長背景)的分支貢獻較少。換句話說,來自更接近(即最終空間尺度)的圖像特徵的信息對網絡的最終輸出貢獻更多。相反,性能最差的 DPC(圖 6c)不保留精細空間信息,因為它在全局圖像池操作之後級聯四個分支。

論文實驗中,表 1,表 2,表 3分別對應在場景理解(Cityscapes),人體分割(PASCAL- Person-Part),語義分割(PASCAL VOC 2012)的模型性能,DPC 在各個數據集取得 state-of-art 性能。

5. Discussion

1、論文提出的 DPC 架構基於 Cell 構建的搜索空間,每個 Cell 有語義分割採用經典的空洞卷積,空間金字塔池化,1x1 卷積,在 mIOU 實現 state-of-art 水準。

2、論文的搜索策略採用隨機搜索,評價指標也只有 mIOU,相比 Google 另一篇論文 MnasNet,在準確率和推斷時間上均有顯著提高。

3、論文摘要選擇只需要一半的參數和一半的計算效率,但是只在論文的表 1 即 Cityscapes 數據集對比了 MobileNet-v2 和 modified Xception 的實現方式,其他數據集沒有體現計算效率的優越性。論文架構搜索和訓練時的目標函數沒有計算效率的體現。

Additionally, the resulting architecture is more computationally efficient, requiring half the parameters and half the computational cost as previous state of the art systems

4、作為 Google 在語義分割領域的開山之作,目測會有一大批基於 NAS 實現的目標檢測、實例分割的優秀論文,NAS 應用到工業界產品指日可待。

5、語義分割是一種廣義上的圖像分類(對圖像的每個像素進行分類),和圖像分類在搜索空間有很多相似之處,但是目標檢測需要 Region Proposal,Bounding-Box Regression 等,增加搜索空間的難度,NAS 在目標檢測領域可能還需要很長一段路要走。

以上僅為個人閱讀 MnasNet 論文後的理解,總結和一些思考,觀點難免偏差,望讀者以懷疑的態度閱讀,歡迎交流指正。

6. 參考文獻

1. Searching for Efficient Multi-Scale Architectures for Dense Image Prediction

arXiv:1809.04184 (2018)

2. Neural Architecture Search: A Survey

arXiv:1808.05377 (2018)

3. A service for black-box optimization

4. https://github.com/tobegit3hub/advisor

5. MnasNet:終端輕量化模型新思路

https://zhuanlan.zhihu.com/p/42474017

6. 讓算法解放算法工程師----NAS綜述

https://zhuanlan.zhihu.com/p/44576620

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 2019 語義分割指南
    這種分割在計算對象數量的應用程式中非常有用,例如計算商城的行人流量。它的一些主要應用是在自動駕駛、人機互動、機器人和照片編輯/創意工具中。例如,語義分割在汽車自動駕駛和機器人技術中是至關重要的,因為對於一個模型來說,了解其所處環境中的語義信息是非常重要的。
  • CVPR 2018:新型語義分割模型:動態結構化語義傳播網絡DSSPN
    近日,來自 CMU、Petuum 等機構的研究者提出一種新型語義分割模型動態結構化語義傳播網絡 DSSPN,通過將語義概念層次明確地結合到網絡中來構建語義神經元圖。實驗證明 DSSPN 優於當前最優的分割模型。
  • 圖像分割系列<->語義分割
    這期我們就來講講語義分割(Semantic Segmantation), 語義分割是指將圖像中的每一個像素都賦予一個類別標籤,用不同的顏色表示。 二、語義分割SegNet的來源 Segnet模型由Vijat Badrinarayanan, Alex Kendall, Roberto Cipolla在2015年發表, 在FCN的語義分割任務基礎上,搭建編碼器-解碼器對稱結構,實現端到端的像素級別圖像分割。
  • DeepLabv3+:語義分割領域的新高峰
    +,在語義分割領域取得新的 state-of-the-art 水平。DeepLabv1DeepLab 是結合了深度卷積神經網絡(DCNNs)和概率圖模型(DenseCRFs)的方法。在實驗中發現 DCNNs 做語義分割時精準度不夠的問題,根本原因是 DCNNs 的高級特徵的平移不變性,即高層次特徵映射,根源於重複的池化和下採樣。
  • 入門| 一文了解什麼是語義分割及常用的語義分割方法有哪些
    來源:Zhao 等人的 ICNet(2017):語義分割的演示視頻。雖然像聚類這樣的無監督方法可以用於分割,但其結果不一定是有語義的。這些方法無法對它們訓練的類進行細分,但是在搜索區域界限方面更加擅長。與圖像分類或目標檢測相比,語義分割使我們對圖像有更加細緻的了解。
  • 谷歌開源語義圖像分割模型:該領域當前最優模型
    分配這些語義標籤的時候需要精準定位目標的輪廓,因此相比其他的視覺實體識別任務(如圖像級分類或邊界框級檢測等),該任務需要更高的定位準確率。今天,谷歌開源了其最新、性能最優的語義圖像分割模型 DeepLab-v3+ [1],該模型使用 TensorFlow 實現。
  • 語義分割概念及應用介紹
    語義分割將屬於同一目標的圖像部分聚集在一起來解決這個問題,從而擴展了其應用領域。注意,與其他基於圖像的任務相比,語義分割是完全不同的且先進的,例如,你設計的機器學習模型是否需要識別輸入原始平面圖像中的每個像素?在這種情況下,全像素語義分割標註是機器學習模型的關鍵。全像素語義分割根據其所屬的感興趣對象分配圖像中的每個像素具有的類別ID。
  • 9102年了,語義分割的入坑指南和最新進展都是什麼樣的
    在這篇文章中,作者介紹了近來優秀的語義分割思想與解決方案,它可以稱得上是 2019 語義分割指南了。我們可以認為語義分割是像素級別的圖像分類。例如,在一幅有很多輛車的圖像中,分割模型將會把所有的物體(車)標記為車輛。但是,另一種被稱為實例分割的模型能夠將出現在圖像中的獨立物體標記為獨立的實例。這種分割在被用在統計物體數量的應用中是很有用的(例如,統計商城中的客流量)。
  • 從全卷積網絡到大型卷積核:深度學習的語義分割全指南
    By路雪 2017年7月14日  語義分割一直是計算機視覺中十分重要的領域,隨著深度學習的流行,語義分割任務也得到了大量的進步。本文首先闡釋何為語義分割,然後再從論文出發概述多種解決方案。本文由淺層模型到深度模型,簡要介紹了語義分割各種技術,雖然本文並沒有深入講解語義分割的具體實現,但本文簡要地概述了每一篇重要論文的精要和亮點,希望能給讀者一些指南。
  • CVPR 2019 Oral 論文解讀 | 無監督域適應語義分割
    該論文提出了一種從「虛擬域」泛化到「現實域」的無監督語義分割算法,旨在利用易獲取的虛擬場景標註數據來完成對標註成本高昂的現實場景數據的語義分割,大大減少了人工標註成本。 本文是論文作者之一羅亞威為雷鋒網 AI 科技評論提供的論文解讀。
  • ECCV 2020 Oral | 蘇黎世聯邦理工學院提出:弱監督語義分割新網絡
    — 如何改進CAM [1] 只能定位局部判別性區域,提出了不同之前只從改進分割網絡結構或細化分類網絡任務的的方法。作者採用跨圖像(cross image)的方式,獲得了更加豐富的圖片間的上下文信息,從而實現了更高的精度。本篇文章在pacvoc 2012驗證集上mIoU達到了66.2,在測試集上達到了66.9,均為最高。一、簡介如果閱讀過我之前關於弱監督語義分割(WSSS)的論文閱讀筆記的讀者,就一定知道弱監督語義分割從開始到現在的發展大致分為兩個階段。
  • MMSegmentation:標準統一的語義分割框架
    語義分割作為計算機視覺中一項基礎任務,同時在自動駕駛/視頻編輯等領域中有重要的應用,因此一直受到學術界和工業界的廣泛關注。在近幾年的會議中,語義分割的論文層出不窮,但是市面上一直缺乏一款能夠相對公平比較各種方法的框架。為了方便研究員和工程師們,OpenMMLab開源了一套基於 PyTorch 實現的標準統一的語義分割框架:MMSegmentation。
  • 標準統一的語義分割框架
    >語義分割作為計算機視覺中一項基礎任務,同時在自動駕駛/視頻編輯等領域中有重要的應用,因此一直受到學術界和工業界的廣泛關注。在近幾年的會議中,語義分割的論文層出不窮,但是市面上一直缺乏一款能夠相對公平比較各種方法的框架。為了方便研究員和工程師們,我們開源了一套基於 PyTorch 實現的標準統一的語義分割框架:MMSegmentation。
  • 金字塔注意力網絡:一種利用底層像素與高級特徵的語義分割網絡
    選自arXiv機器之心編譯參與:機器之心編輯部目前很多語義分割方法在細節方面做得都不好,近日北京理工、曠視科技、北京大學機器感知重點實驗室的研究者提出金字塔形注意力網絡,它結合注意力機制和空間金字塔去提取精準的密集特徵而用於像素級標註任務,這種方法不再使用複雜化的擴張卷積和人工設計的解碼網絡。
  • 谷歌通過深度度量學習,提出新的語義實例分割方法
    它與目標檢測不同之處在於,輸出是表示每個對象的形狀的掩碼,而不僅僅是一個邊界框。而它與語義分割的不同之處在於,研究目標不僅僅是使用標籤(或背景)對每個像素進行分類,而且還要區分同一類別的各個實例。因此,標籤空間是沒有大小限制的(例如,假設有兩個人和一輛車,可能會標記「人-1」,「人-2」和「車-1」)。這個問題在諸如無人駕車、機器人、照片編輯等領域有許多實際應用。
  • 語義分割中的深度學習方法全解:從FCN、SegNet到各版本DeepLab
    在深度學習應用到計算機視覺領域之前,研究人員一般使用紋理基元森林(TextonForest)或是隨機森林(Random Forest)方法來構建用於語義分割的分類器。 卷積神經網絡(CNN)不僅能很好地實現圖像分類,而且在分割問題中也取得了很大的進展。
  • 圖像語義分割之特徵整合和結構預測
    餘昌黔華中科技大學碩士研究方向為圖像語義分割知乎專欄https://zhuanlan.zhihu.com/semantic-segmentation前言近來閱讀了 PASCAL VOC 2012 排行榜上前幾的文章,包括 PSPNet 和林國省老師的幾篇論文,覺得現在在 semantic segmentation 領域對於 Multi-scale Features
  • CVPR 2019 神經網絡架構搜索進展綜述
    這種說法歪曲自深度學習的Gradient Descent算法,僅作調侃)現在呢,我很想驕傲地宣布——「天天調參的鬼日子結束了!」——但是還為時過早。手動調參尋找神經網絡架構依然是個有趣的工作,尤其是對於那些帶了很多學生的導師而言(開玩笑啦~)。  神經網絡架構搜索(NAS)——前言那麼問題來了,神經網絡架構搜索(NAS)究竟是什麼?為什麼我們要了解NAS呢?
  • 重新發現語義分割,一文簡述全卷積網絡
    選自Medium,作者:Farhan Ahmad,機器之心編譯,參與:李詩萌、路。全卷積網絡自 2012 年出現以來,在圖像分類和圖像檢測領域取得了巨大成功。本文利用筆記本電腦構建了一個小型全卷積網絡,詳細介紹了全卷積網絡的思路、過程等等,值得一看語義分割是一種學習如何識別圖像中對象範圍的機器學習技術。語義分割賦予機器學習系統與人類相似的理解圖像內容的能力。它促使機器學習算法定位對象的精準邊界,無論是街景圖像中的汽車和行人,還是醫療圖像中的心臟、肝臟和腎臟。
  • 如何用PyTorch進行語義分割?一個教程教會你
    正值PyTorch 1.7更新,那麼我們這次便給大家帶來一個PyTorch簡單實用的教程資源:用PyTorch進行語義分割。△圖源:stanford該教程是基於2020年ECCV Vipriors Chalange Start Code實現了語義分割,並且添加了一些技巧。