彙總|實時性語義分割算法

作者:明澤Danny

來源:公眾號|計算機視覺工坊(系投稿)

前言

本次給大家更新的是關於實時語義分割的工作。

語義分割論文

語義圖像分割是計算機視覺中發展最快的領域之一,有著廣泛的應用。在許多領域,如機器人和自動駕駛汽車,語義圖像分割是至關重要的,因為它提供了必要的上下文,以採取行動,基於對場景的理解在像素級。

對於圖像的理解有一下幾個層次:

  1. 分類,即將圖像中最具代表性的物體歸為某一個類;
  2. 帶有定位的分類,對分類任務的一個擴展,使用邊界框將對象框起來在分類;
  3. 目標檢測,對多個不同類型的對象進行分類和定位;
  4. 語義分割,是對圖像中的每個像素進行分類和定位;
  5. 實例分割,是語義分割的擴展,在實例分割中,相同類型的不同對象被視為不同的對象;
  6. 全景分割,結合語義分割和實例分割,所有像素被分配一個類標籤,所有對象實例都被獨立分割

【1】自主駕駛車輛實時語義分割的比較研究

《A Comparative Study of Real-time Semantic Segmentation for Autonomous Driving》

鏈接:

https://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w12/Siam_A_Comparative_Study_CVPR_2018_paper.pdf

彙總|實時性語義分割算法

該文構建了一個實時語義分割框架,通過不同的編碼解碼框架,提供了幾個例子編碼器,包括VGG16, Resnet18, MobileNet,和ShuffleNet和解碼器,包括SkipNet, UNet和膨脹前端。該框架是可擴展的,可以添加新的編碼器和解碼器。

語義分割方法的分類:

彙總|實時性語義分割算法


【2】高效的語義分割CNN設計技術分析

《Analysis of efficient CNN design techniques for semantic segmentation》

鏈接:

https://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w12/Briot_Analysis_of_Efficient_CVPR_2018_paper.pdf

與上一個一樣都是編碼解碼結構:

彙總|實時性語義分割算法

簡單的編碼器:

彙總|實時性語義分割算法

Handling scale of objects

彙總|實時性語義分割算法

a)Cross channel filters

b)Cross layer connections

c)Wider bank of filters

d)Split branching and summation joining


彙總|實時性語義分割算法

量化:

使用tensorflow或Nvidia TensorRT將神經網絡的float32類型計算量化為int8類型的計算,實現加速,直接用int8類型計算對神經網絡進行訓練

高效結構設計原則

1.通過約束結構超參數平衡模型大小和準確率:增加網絡深度,減少每一個卷積層輸入的通道數,減小輸入圖片的分辨率

2.減少冗餘的卷積核:卷積核分解(一個7x7卷積層分解為3個3x3卷積層, kxk卷積層分解為1xk卷積層和kx1卷積層)

3.通過激活函數校準卷積核(CReLU)

使用對稱性校準卷積核(G-CNN)

卷積設計

  1. 1x1卷積降維,減少卷積的輸入通道數
  2. Group convolution
  3. Depth-wise Separable convolution

實驗結果:

彙總|實時性語義分割算法


【3】基於空間稀疏性的實時語義圖像分割

《Real-time Semantic Image Segmentation via Spatial Sparsity》

鏈接:
https://arxiv.org/pdf/1712.00213.pdf

對於一個典型的兩輸入的全卷積網絡引入了空間稀疏性,展示了在提高Inference速度的同時並沒有隨時太多精度;

展示了使用空間稀疏性,使用in-column和cross-column的鏈接、移除殘差單元,能夠25倍的縮小計算開銷,丟掉一點精度。

彙總|實時性語義分割算法

三種典型方法:

彙總|實時性語義分割算法

下面是該問提出的框架:

彙總|實時性語義分割算法

實驗結果:

彙總|實時性語義分割算法


【4】ENet:一種用於實時語義分割的深度神經網絡架構

《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》

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

ENet是為移動端開發而設計的分割框架,其主要結構為如下圖中的bottleneck模塊

彙總|實時性語義分割算法

其模型架構如下:

彙總|實時性語義分割算法

1.為了減少內核調用和內存操作,沒有在任何投影中使用bias,因為cuDNN會使用單獨的內核進行卷積和bias相加。這種方式對準確性沒有任何影響。

2.在每個卷積層和隨後的非線性層之間,使用BN

3.在解碼器中,用max unpooling代替max pooling,用無bias的spatial convolution代替padding

4.在最後一個上採樣模塊中沒有使用池化索引,因為initial初始塊是在輸入圖的3個通道上進行的操作,而最終的輸出具有C個特徵圖(分割對象類別的數量)。


【5】ICNet用於高分辨率圖像的實時語義分割

《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》

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

ICNet使用了級聯的圖像輸入(即低、中、高分辨率圖像),採用了級聯的特徵融合單元,訓練時使用了級聯的標籤監督。

彙總|實時性語義分割算法


ICNet包括三個分支:

1.低分辨率分支來獲取語義信息,將原圖1/4大小的圖像輸入到PSPNet中,降採樣率為8,產生了原圖1/32的特徵圖。

2.中分辨率和高分辨率的分支進行粗糙預測的恢復和細化,圖2中部和底部分支,獲得高質量的分割。

3.高分辨率分支採用輕加權的CNNs(綠色虛線框,底部分支和中部分支);不同分支輸出的特徵圖採用級聯特徵融合單元進行融合,訓練時接受梯級標籤監督。

級聯特徵融合:

彙總|實時性語義分割算法


【6】加速自動駕駛的語義分割

《Speeding up Semantic Segmentation for Autonomous Driving》

鏈接:
https://openreview.net/pdf?id=S1uHiFyyg


該架構包括ELU激活功能、一個類似擠壓式的編碼器、隨後的並行擴展卷積以及一個具有類似於sharpmask的細分模塊的解碼器

彙總|實時性語義分割算法

譯文:該編碼器是一個改進的SqueezeNet 架構,它被設計為一個低延遲的網絡,用於圖像識別,同時保持AlexNet的準確性。

彙總|實時性語義分割算法

實驗結果:

彙總|實時性語義分割算法


【7】高效卷積網絡用於實時語義分割

實時語義分割的《Efficient ConvNet for Real-time Semantic Segmentation》

鏈接:

http://www.robesafe.uah.es/personal/eduardo.romera/pdfs/Romera17iv.pdf

Efficient ConvNet模型整體結構遵循編碼-解碼結構,

彙總|實時性語義分割算法

彙總|實時性語義分割算法

詳細構造如下表:

彙總|實時性語義分割算法

整個模型包含23層,其中1-16層為Encoder,17-23層為Decoder。

編碼部分包含1、2、8層的下采樣過程,以及餘下層的Non-bt-1D提取特徵。其中Non-bt-1D、Downsample構造如下:

彙總|實時性語義分割算法

實驗結果:

彙總|實時性語義分割算法

彙總|實時性語義分割算法


【8】ERFNet:用於實時語義分割的高效殘差分解卷積網絡

《ERFNet: Efficient Residual Factorized ConvNet for Real-time Semantic Segmentation》

鏈接:

http://www.robesafe.es/personal/eduardo.romera/pdfs/Romera17tits.pdf

REFNet沿用了編碼-解碼結構,其詳細結構如表所示。

彙總|實時性語義分割算法

彙總|實時性語義分割算法

整個網絡包含23層,其中1-16層為Encoder, 17-23層為Decoder。

Downsampler block受另一個實時語義分割網絡Enet的設計,其實本文不少靈感也來自於Enet:

例如在初始圖像輸入1024X512X3,左邊經過3X3卷積,步長strides = 2,得到16 channels,

右邊經過MaxPooling 得到3 channels,經過concat操作後得到16channels,最終圖像變為 512X256X16,然後使用Relu函數激活傳入下一層。

優點在於從輸入圖像一開始就進行了減少輸入圖像尺寸的操作,本身視覺信息就存在大量冗餘,這樣節省了大量的計算。


【9】EDANet:用於實時語義分割的高效的非對稱卷積密集模塊

《Efficient Dense Modules of Asymmetric Convolution for Real-Time Semantic Segmentation》

鏈接:
https://github.com/shaoyuanlo/EDANet

模型框架如下:

彙總|實時性語義分割算法


主要分為這麼幾個模塊,Downsampling Block和EDA Block和最後的Projection Layer。其中的EDA Block又包括多個EDA module。其中EDA module的結構如下所示:

彙總|實時性語義分割算法

其中有兩組asymmetric conv,前一組是正常的conv,後一組是dilated conv,這種asymmetic conv可以減少33%的計算量,並且只會帶來少量的性能下降。


對於網絡結構的設計,使用了ENet的initial block作為downsampling block,並且分成了兩種模式,其表示如下:

彙總|實時性語義分割算法

這樣的downsampling block可以讓網絡具有更大的感知野,用於收集上下文信息,在最後,相對於全解析度的輸入圖片,特徵尺寸變為了1/8,而其他的網絡比如SegNet特徵尺寸則變為了1/32。


【10】ESPNet:擴展卷積的高效空間金字塔語義分割

《ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation》

鏈接:
https://arxiv.org/pdf/1803.06815.pdf

原理:ESP Module基於卷積分解原理,將標準卷積分解為兩個步驟:

1)point-wise convolutions 逐點卷積

2)spatial pyramid of dilated convolutions 空間金字塔型膨脹卷積

ESP運算高效,並且可以用在CNNs的不同空間級別上(主要是相對ASP而言)

理論上,ESP模塊比Inception 和 ResNext的模塊更高效。另外的試驗結果表明,在相同硬件和計算條件下,ESP模塊也優於現有表現最佳的MobileNet 和 ShuffleNet

ESP模塊:

彙總|實時性語義分割算法


因為使用了大感受野的膨脹卷積,導致了gridding artifacts現象,如下圖所示。本文提出了使用HFF方法來解決該問題,具體做法就是從最小的膨脹卷積核輸出的那張feature map開始,逐級疊加。這樣的做法並沒有引入任何新的參數,同時計算量上也沒有增加太多,但卻有效地改善了網格效應。

彙總|實時性語義分割算法

【11】ESPNetv2:一個輕量級、高效、通用的卷積神經網絡

《ESPNetv2: A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network》

鏈接:
https://arxiv.org/pdf/1811.11431.pdf

與第一版本相比,其特點如下:

1)將原來ESPNet的point-wise convolutions替換為group point-wise convolutions;

2)將原來ESPNet的dilated convolutions替換為depth-wise dilated convolution;

3)HFF加在depth-wise dilated separable convolutions和point-wise (or 1 × 1)卷積之間,去除gridding artifacts;

4)使用group point-wise convolution 替換K個point-wise convolutions;

5)加入平均池化(average pooling ),將輸入圖片信息加入EESP中;

6)使用級聯(concatenation)取代對應元素加法操作(element-wise addition operation );

其總體框架如圖所示:

彙總|實時性語義分割算法


【12】輕量級語義分段的集中綜合卷積


Concentrated-Comprehensive Convolutions for lightweight semantic segmentation》

鏈接:
https://arxiv.org/pdf/1812.04920v1.pdf

第一階段對來自鄰近像素的壓縮信息使用兩個深度上的不對稱卷積。第二階段利用與第一階段特徵圖在深度上可分離的擴張卷積來增加感受野。通過用提議的CCC模塊替換傳統ESP模塊,在不降低Cityscapes數據集精度的情況下,與速度最快的模型之一ESPnet相比,減少一半的參數數量和35%的失敗數量。

彙總|實時性語義分割算法

帶孔卷積中的定位信息缺失

集中綜合卷積(CCC)塊的結構如下:

彙總|實時性語義分割算法


CCC模塊由信息集中階段和綜合卷積階段組成。信息集中階段使用簡單的卷積核聚合局部特徵信息。綜合卷積階段是通過放大看到較大的感受野,然後是混合信道信息的點卷積。將深度卷積應用於擴張的卷積,以進一步減小參數的大小。

ESP模型結構如下:

彙總|實時性語義分割算法

本文僅做學術分享,如有侵權,請聯繫刪文。

下載1

在「計算機視覺工坊」公眾號後臺回覆:深度學習,即可下載深度學習算法、3D深度學習、深度學習框架、目標檢測、GAN等相關內容近30本pdf書籍。


下載2

在「計算機視覺工坊」公眾號後臺回覆:計算機視覺,即可下載計算機視覺相關17本pdf書籍,包含計算機視覺算法、Python視覺實戰、Opencv3.0學習等。


下載3

在「計算機視覺工坊」公眾號後臺回覆:SLAM,即可下載獨家SLAM相關視頻課程,包含視覺SLAM、激光SLAM精品課程。


分享到:


相關文章: