當前位置:
首頁 > 新聞 > 從全連接層到大型卷積核:深度學習的語義分割全指南

從全連接層到大型卷積核:深度學習的語義分割全指南

選自qure.ai

機器之心編譯

參與:路雪、蔣思源


語義分割一直是計算機視覺中十分重要的領域,隨著深度學習的流行,語義分割任務也得到了大量的進步。本文首先闡釋何為語義分割,然後再從論文出發概述多種解決方案。本文由淺層模型到深度模型,簡要介紹了語義分割各種技術,雖然本文並沒有深入講解語義分割的具體實現,但本文簡要地概述了每一篇重要論文的精要和亮點,希望能給讀者一些指南。

什麼是語義分割?

語義分割指像素級地識別圖像,即標註出圖像中每個像素所屬的對象類別。如下圖:

從全連接層到大型卷積核:深度學習的語義分割全指南

左:輸入圖像,右:該圖像的語義分割

除了識別車和騎車的人,我們還需要描繪出每個物體的邊界。因此,與圖像分類不同,語義分割需要根據模型進行密集的像素級分類。

VOC2012 和 MSCOCO 是語義分割領域最重要的數據集。

有哪些不同的解決方案?

在深度學習應用到計算機視覺領域之前,人們使用 TextonForest 和 隨機森林分類器進行語義分割。卷積神經網路(CNN)不僅對圖像識別有所幫助,也對語義分割領域的發展起到巨大的促進作用。

語義分割任務最初流行的深度學習方法是圖像塊分類(patch classification),即利用像素周圍的圖像塊對每一個像素進行獨立的分類。使用圖像塊分類的主要原因是分類網路通常是全連接層(full connected layer),且要求固定尺寸的圖像。

2014 年,加州大學伯克利分校的 Long 等人提出全卷積網路(FCN),這使得卷積神經網路無需全連接層即可進行密集的像素預測,CNN 從而得到普及。使用這種方法可生成任意大小的圖像分割圖,且該方法比圖像塊分類法要快上許多。之後,語義分割領域幾乎所有先進方法都採用了該模型。

除了全連接層,使用卷積神經網路進行語義分割存在的另一個大問題是池化層。池化層不僅擴大感受野、聚合語境從而造成了位置信息的丟失。但是,語義分割要求類別圖完全貼合,因此需要保留位置信息。本文將介紹兩種不同結構來解決該問題。

第一個是編碼器-解碼器結構。編碼器逐漸減少池化層的空間維度,解碼器逐步修復物體的細節和空間維度。編碼器和解碼器之間通常存在快捷連接,因此能幫助解碼器更好地修複目標的細節。U-Net 是這種方法中最常用的結構。

從全連接層到大型卷積核:深度學習的語義分割全指南

U-Net:一種編碼器-解碼器結構

第二種方法使用空洞/帶孔卷積(dilated/atrous convolutions)結構,來去除池化層。

從全連接層到大型卷積核:深度學習的語義分割全指南

Dilated/atrous 卷積,rate=1 是典型的卷積結構

條件隨機場(CRF)預處理通常用於改善分割效果。CRF 是一種基於底層圖像像素強度進行「平滑」分割的圖模型。它的工作原理是灰度相近的像素易被標註為同一類別。CRF 可令分值提高 1-2%。

從全連接層到大型卷積核:深度學習的語義分割全指南

CRF 示意圖。(b)一元分類器作為 CRF 的分割輸入。(c、d、e)是 CRF 的變體,其中(e)是廣泛使用的一種 CRF

下面,我將總結幾篇論文,介紹分割結構從 FCN 以來的發展變化。所有這些架構都使用 VOC2012 評估伺服器進行基準測試。

論文概述

下列論文按照時間順序進行介紹:

1. FCN

2. SegNet

3. Dilated Convolutions

4. DeepLab (v1 & v2)

5. RefineNet

6. PSPNet

7. Large Kernel Matters

8. DeepLab v3

我列出了每篇論文的主要貢獻,並稍加解釋。同時我還展示了這些論文在 VOC2012 測試數據集上的基準測試分數(IOU 均值)。

FCN

  • 使用全卷積網路進行語義分割(Fully Convolutional Networks for Semantic Segmentation)

  • 2014 年 11 月 14 日提交

  • arXiv 鏈接(https://arxiv.org/abs/1411.4038)

主要貢獻:

  • 推廣端到端卷積網路在語義分割領域的應用

  • 修改 Imagenet 預訓練網路並應用於語義分割領域

  • 使用解卷積層進行上採樣

  • 使用跳躍連接,改善上採樣的粒度程度

相關解釋:

本論文的關鍵點是分類網路中的全連接層可視為使用卷積核覆蓋整個輸入區域的卷積操作。這相當於根據重疊的輸入圖像塊評估原始分類網路,但由於計算過程由圖像塊的重疊部分共同分擔,這種方法比之前更加高效。儘管該結論並非獨一無二,但它顯著提高了 VOC2012 數據集上模型的最佳效果。

從全連接層到大型卷積核:深度學習的語義分割全指南

全連接層作為卷積操作

將全連接層在 VGG 等 Imagenet 預訓練網路中進行卷積操作後,由於 CNN 中的池化操作,特徵圖仍舊需要上採樣。解卷積層不使用簡單的雙線性插值,而是學習所進行的插值。解卷積層又被稱為上卷積(upconvolution)、完全卷積、轉置卷積或微步卷積(fractionally-strided convolution)。

但是,由於池化過程造成信息丟失,上採樣(即使帶有解卷積層)生成的分割圖較為粗糙。因此我們可以從高解析度的特徵圖中引入跳躍連接(shortcut/skip connection)來改善上採樣的粗糙程度。

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

個人評價:

這是一項重要的貢獻,但是當前的技術水平又有了很大發展。

SegNet

  • SegNet:用於圖像分割的一種深度卷積編碼器-解碼器架構(SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation)

  • 2015 年 11 月 2 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1511.00561)

主要貢獻:

將最大池化索引(Maxpooling indices)轉移到解碼器,從而改善分割解析度。

相關解釋:

在 FCN 網路中,儘管使用了解卷積層和一些跳躍連接,但輸出的分割圖仍然比較粗糙。因此,更多的跳躍連接被引入 FCN 網路。但是,SegNet 沒有複製 FCN 中的編碼器特徵,而是複製了最大池化索引。這使得 SegNet 比 FCN 更節省內存。

從全連接層到大型卷積核:深度學習的語義分割全指南

Segnet 結構

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

個人評價:

  • FCN 和 SegNet 都是最早出現的編碼器-解碼器結構。

  • SegNet 的基準測試分數不夠好,不宜繼續使用。

空洞卷積(Dilated Convolutions)

  • 使用空洞卷積進行多尺度背景聚合(Multi-Scale Context Aggregation by Dilated Convolutions)

  • 2015 年 11 月 23 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1511.07122)

主要貢獻:

  • 使用空洞卷積,一種可進行稠密預測的卷積層。

  • 提出「背景模塊」(context module),該模塊可使用空洞卷積進行多尺度背景聚合。

相關解釋:

池化使感受野增大,因此對分類網路有所幫助。但池化會造成解析度下降,不是語義分割的最佳方法。因此,論文作者使用空洞卷積層(dilated convolution layer),其工作原理如圖:

從全連接層到大型卷積核:深度學習的語義分割全指南

空洞/帶孔卷積

空洞卷積層(DeepLab 將其稱為帶孔卷積)可使感受野呈指數級增長,而空間維度不至於下降。

從預訓練好的分類網路(此處指 VGG)中移除最後兩個池化層,之後的卷積層都使用空洞卷積。尤其是,pool-3 和 pool-4 之間的卷積是空洞卷積 2,pool-4 後面的卷積是空洞卷積 4。使用這個模塊(論文中稱為前端模塊 frontend module)之後,無需增加參數即可實現稠密預測。另一個模塊(論文中稱為背景模塊 context module)將使用前端模塊的輸出作為輸入進行單獨訓練。該模塊是多個不同擴張程度的空洞卷積級聯而成,因此該模塊可聚合多尺度背景,並改善前端模塊獲取的預測結果。

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

個人評價:

預測分割圖的大小是圖像大小的 1/8。幾乎所有的方法都存在這個現象,通常使用插值的方法獲取最終分割圖。

DeepLab (v1 & v2)

  • v1: 使用深度卷積網路和全連接 CRF 進行圖像語義分割(Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs)

  • 2014 年 12 月 22 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1412.7062)

  • v2 : DeepLab: 使用深度卷積網路、帶孔卷積和全連接 CRF 進行圖像語義分割(DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs)

  • 2016 年 6 月 2 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1606.00915)

主要貢獻:

  • 使用帶孔/空洞卷積。

  • 提出金字塔型的空洞池化(ASPP)

  • 使用全連接 CRF

相關解釋:

帶孔/空洞卷積在不增加參數的情況下增大感受野。如上文中空洞卷積論文中所述,分割網路得到改進。

將原始圖像的多個重新縮放版本傳遞到 CNN 網路的並行分支(圖像金字塔)中,或者使用採樣率不同的多個並行空洞卷積層(ASPP),實現多尺度處理。

結構化預測可通過全連接 CRF 實現。CRF 的訓練/微調需作為後處理的步驟單獨進行。

從全連接層到大型卷積核:深度學習的語義分割全指南

DeepLab2 流程圖

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

RefineNet

  • RefineNet:使用多路徑精鍊網路進行高解析度語義分割(RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation)

  • 2016 年 11 月 20 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1611.06612)

主要貢獻:

  • 具備精心設計解碼器模塊的編碼器-解碼器架構

  • 所有組件遵循殘差連接設計

相關解釋:

使用空洞/帶孔卷積的方法也有弊端。由於空洞卷積需要大量高解析度特徵圖,因此其計算成本高昂,且佔用大量內存。這妨礙了高解析度預測的計算。例如,DeepLab 的預測結果大小是原始輸入圖像的 1/8。

因此,這篇論文提出使用編碼器-解碼器結構。編碼器是 ResNet-101 模塊,解碼器是 RefineNet 模塊,該模塊融合了編碼器中的高解析度特徵和先前 RefineNet 模塊中的低解析度特徵。

從全連接層到大型卷積核:深度學習的語義分割全指南

RefineNet 架構

每一個 RefineNet 模塊都有兩個組件,一個組件通過對低解析度特徵進行上採樣來融合多解析度特徵,另一個組件基於步幅為 1、5 x 5 大小的重複池化層來獲取背景信息。這些組件遵循單位映射的思想,採用殘差連接設計。

從全連接層到大型卷積核:深度學習的語義分割全指南

RefineNet 模塊

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

PSPNet

  • 金字塔型場景解析網路

  • 2016 年 12 月 4 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1612.01105)

主要貢獻:

  • 提出金字塔池化模塊幫助實現背景聚合。

  • 使用輔助損失(auxiliary loss)。

相關解釋:

全局場景分類為分割的類別分布提供線索,因此很重要。金字塔池化模塊(Pyramid pooling module)通過應用較大核池化層的獲取這些信息。如上文中空洞卷積論文中所述,PSPNet 也使用空洞卷積改善 ResNet,並添加一個金字塔池化模塊。該模塊將 ResNet 的特徵圖與並行池化層的上採樣輸出結果連接起來,其中卷積核核覆蓋了圖像的全部、一半和小塊區域。

在 ResNet 的第四階段之後(即輸入到金字塔池化模塊),在主分支損失之外又增加了附加損失。這個想法在其他研究中也被稱為中間監督(intermediate supervision)。

從全連接層到大型卷積核:深度學習的語義分割全指南

PSPNet 架構

VOC2012 基準測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

Large Kernel Matters

  • 大型核的問題——通過全局卷積網路改善語義分割(Large Kernel Matters -- Improve Semantic Segmentation by Global Convolutional Network)

  • 2017 年 3 月 8 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1703.02719)

主要貢獻:

提出使用帶有大型卷積核的編碼器-解碼器結構

相關解釋:

語義分割不僅需要分割,同時還需要對分割目標進行分類。由於分割結構中無法使用全連接層,因此帶有大核函數的卷積可以替代全連接層得到應用。

使用大型核的另一個原因是,儘管 ResNet 等更深層的網路擁有較大的感受野,但相關研究顯示這樣的網路更易收集較小範圍(即有效感受野)內的信息。大型核的計算成本高昂,且擁有大量參數。因此,k x k 卷積可近似成 1 x k + k x 1、k x 1 和 1 x k。這篇論文中將該模塊稱為全局卷積網路(GCN)。

再來看結構,ResNet(沒有空洞卷積)構成該結構的編碼器部分,而 GCN 和反卷積構成了解碼器部分。該結構還採用了一個叫做邊界細化(BR)的簡單殘差塊。

從全連接層到大型卷積核:深度學習的語義分割全指南

GCN 結構

VOC2012 測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

DeepLab v3

  • 重新思考使用空洞卷積進行圖像語義分割(Rethinking Atrous Convolution for Semantic Image Segmentation)

  • 2017 年 6 月 17 日提交

  • Arxiv 鏈接(https://arxiv.org/abs/1706.05587)

主要貢獻:

  • 改進了金字塔型的空洞池化(ASPP)

  • 模型級聯了多個空洞卷積

相關解釋:

與 DeepLabv2 和空洞卷積論文一樣,該研究也使用空洞/擴張卷積來改進 ResNet 模型。改進後的 ASPP 包括圖像層級特徵連接、一個 1x1 的卷積和三個 3x3 的不同比率空洞卷積。每一個並行卷積層之後使用批量歸一化操作。

級聯模型是一個 ResNet 模塊,但其中的卷積層是不同比率的空洞卷積。該模型與空洞卷積論文中的背景模塊相似,但是它直接應用於中間特徵圖,而不是可信度地圖(信念圖是通道數與類別數相同的最終 CNN 特徵圖)。

該論文分別評估了這兩個已提出的模型。兩個模型在 驗證集上的性能相似,帶有 ASPP 的模型性能稍好,且未使用 CRF。這兩個模型優於 DeepLabv2 中最優的模型。論文作者還提到性能的改進來自於批量歸一化操作和更好的多尺度背景編碼方式。

從全連接層到大型卷積核:深度學習的語義分割全指南

DeepLabv3 ASPP

VOC2012 測試分數:

從全連接層到大型卷積核:深度學習的語義分割全指南

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

「當我想像未來的醫院時,我想到空中交通管制塔」
專訪喬治亞理工終身教授藍光輝:開創隨機加速梯度法助力深度學習
全球最權威人臉識別測試,中國團隊依圖科技奪得第一
谷歌「虛擬攝影師」:利用深度學習生成專業級攝影作品
AI 助理四大應用趨勢,或決定生態系統發展前景

TAG:機器之心 |

您可能感興趣

卷積神經網路壓縮、多模態的語義分析研究
語義分割和轉置卷積
重新發現語義分割,一文簡述全卷積網路
「CV學霸開講」卷積神經網路壓縮、多模態的語義分析研究
張覓:基於深度卷積網路的遙感影像語義分割層次認知方法
使用卷積神經網路做語義分割
使用深度學習做語義分割:簡介和代碼
滿洲地區主要河流的滿語來源和語義
在大規模數據集上應用潛在語義分析的三種方式
詳解計算機視覺五大技術:圖像分類、對象檢測、目標跟蹤、語義分割和實例分割
基於語義分割的級聯光流法三維重建
9102年了,語義分割的入坑指南和最新進展都是什麼樣的
突破多模態深度語義理解技術,深思考打造智能座艙「AI大腦」
農業語義分割的數據合成方法:辣椒數據集
圖像分類、定位、檢測,語義分割和實例分割方法梳理
金字塔注意力網路:一種利用底層像素與高級特徵的語義分割網路
邱振中:被封閉的語義、被打開的可能、部分揭示與全部被揭示的關係
谷歌開源語義圖像分割模型:該領域當前最優模型
的四條標準語義
用大數據和語義分析撬動專家網路市場,「六度智囊」獲百萬級Pre-A輪投資