匯總|實(shí)時(shí)性語義分割算法
來源:公眾號|3D視覺工坊(系投稿)
作者:明澤Danny
「3D視覺工坊」技術(shù)交流群已經(jīng)成立,目前大約有12000人,方向主要涉及3D視覺、CV&深度學(xué)習(xí)、SLAM、三維重建、點(diǎn)云后處理、自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫(yī)療影像、缺陷檢測、行人重識別、目標(biāo)跟蹤、視覺產(chǎn)品落地、視覺競賽、車牌識別、硬件選型、學(xué)術(shù)交流、求職交流、ORB-SLAM系列源碼交流、深度估計(jì)等。工坊致力于干貨輸出,不做搬運(yùn)工,為計(jì)算機(jī)視覺領(lǐng)域貢獻(xiàn)自己的力量!歡迎大家一起交流成長~
添加小助手微信:CV_LAB,備注學(xué)校/公司+姓名+研究方向即可加入工坊一起學(xué)習(xí)進(jìn)步。
QQ群「3D視覺研習(xí)社」,群號:574432628
前言
本次給大家更新的是關(guān)于實(shí)時(shí)語義分割的工作。
語義分割論文
語義圖像分割是計(jì)算機(jī)視覺中發(fā)展最快的領(lǐng)域之一,有著廣泛的應(yīng)用。在許多領(lǐng)域,如機(jī)器人和自動駕駛汽車,語義圖像分割是至關(guān)重要的,因?yàn)樗峁┝吮匾纳舷挛模圆扇⌒袆?,基于對場景的理解在像素級?/p>
對于圖像的理解有一下幾個(gè)層次:
分類,即將圖像中最具代表性的物體歸為某一個(gè)類;
帶有定位的分類,對分類任務(wù)的一個(gè)擴(kuò)展,使用邊界框?qū)ο罂蚱饋碓诜诸悾?/p>
目標(biāo)檢測,對多個(gè)不同類型的對象進(jìn)行分類和定位;
語義分割,是對圖像中的每個(gè)像素進(jìn)行分類和定位;
實(shí)例分割,是語義分割的擴(kuò)展,在實(shí)例分割中,相同類型的不同對象被視為不同的對象;
全景分割,結(jié)合語義分割和實(shí)例分割,所有像素被分配一個(gè)類標(biāo)簽,所有對象實(shí)例都被獨(dú)立分割
【1】自主駕駛車輛實(shí)時(shí)語義分割的比較研究
《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

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

【2】高效的語義分割CNN設(shè)計(jì)技術(shù)分析
《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
與上一個(gè)一樣都是編碼解碼結(jié)構(gòu):

簡單的編碼器:

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將神經(jīng)網(wǎng)絡(luò)的float32類型計(jì)算量化為int8類型的計(jì)算,實(shí)現(xiàn)加速,直接用int8類型計(jì)算對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練
高效結(jié)構(gòu)設(shè)計(jì)原則
1.通過約束結(jié)構(gòu)超參數(shù)平衡模型大小和準(zhǔn)確率:增加網(wǎng)絡(luò)深度,減少每一個(gè)卷積層輸入的通道數(shù),減小輸入圖片的分辨率
2.減少冗余的卷積核:卷積核分解(一個(gè)7x7卷積層分解為3個(gè)3x3卷積層, kxk卷積層分解為1xk卷積層和kx1卷積層)
3.通過激活函數(shù)校準(zhǔn)卷積核(CReLU)
使用對稱性校準(zhǔn)卷積核(G-CNN)
卷積設(shè)計(jì)
1x1卷積降維,減少卷積的輸入通道數(shù)
Group convolution
Depth-wise Separable convolution
實(shí)驗(yàn)結(jié)果:

【3】基于空間稀疏性的實(shí)時(shí)語義圖像分割
《Real-time Semantic Image Segmentation via Spatial Sparsity》
鏈接:https://arxiv.org/pdf/1712.00213.pdf
對于一個(gè)典型的兩輸入的全卷積網(wǎng)絡(luò)引入了空間稀疏性,展示了在提高Inference速度的同時(shí)并沒有隨時(shí)太多精度;
展示了使用空間稀疏性,使用in-column和cross-column的鏈接、移除殘差單元,能夠25倍的縮小計(jì)算開銷,丟掉一點(diǎn)精度。

三種典型方法:

下面是該問提出的框架:

實(shí)驗(yàn)結(jié)果:

【4】ENet:一種用于實(shí)時(shí)語義分割的深度神經(jīng)網(wǎng)絡(luò)架構(gòu)
《ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation》
鏈接:https://arxiv.org/abs/1606.02147
ENet是為移動端開發(fā)而設(shè)計(jì)的分割框架,其主要結(jié)構(gòu)為如下圖中的bottleneck模塊

其模型架構(gòu)如下:

1.為了減少內(nèi)核調(diào)用和內(nèi)存操作,沒有在任何投影中使用bias,因?yàn)閏uDNN會使用單獨(dú)的內(nèi)核進(jìn)行卷積和bias相加。這種方式對準(zhǔn)確性沒有任何影響。
2.在每個(gè)卷積層和隨后的非線性層之間,使用BN
3.在解碼器中,用max unpooling代替max pooling,用無bias的spatial convolution代替padding
4.在最后一個(gè)上采樣模塊中沒有使用池化索引,因?yàn)閕nitial初始塊是在輸入圖的3個(gè)通道上進(jìn)行的操作,而最終的輸出具有C個(gè)特征圖(分割對象類別的數(shù)量)。
【5】ICNet用于高分辨率圖像的實(shí)時(shí)語義分割
《ICNet for Real-Time Semantic Segmentation on High-Resolution Images》
鏈接:https://arxiv.org/abs/1704.08545
ICNet使用了級聯(lián)的圖像輸入(即低、中、高分辨率圖像),采用了級聯(lián)的特征融合單元,訓(xùn)練時(shí)使用了級聯(lián)的標(biāo)簽監(jiān)督。

ICNet包括三個(gè)分支:
1.低分辨率分支來獲取語義信息,將原圖1/4大小的圖像輸入到PSPNet中,降采樣率為8,產(chǎn)生了原圖1/32的特征圖。
2.中分辨率和高分辨率的分支進(jìn)行粗糙預(yù)測的恢復(fù)和細(xì)化,圖2中部和底部分支,獲得高質(zhì)量的分割。
3.高分辨率分支采用輕加權(quán)的CNNs(綠色虛線框,底部分支和中部分支);不同分支輸出的特征圖采用級聯(lián)特征融合單元進(jìn)行融合,訓(xùn)練時(shí)接受梯級標(biāo)簽監(jiān)督。
級聯(lián)特征融合:

【6】加速自動駕駛的語義分割
《Speeding up Semantic Segmentation for Autonomous Driving》
鏈接:https://openreview.net/pdf?id=S1uHiFyyg
該架構(gòu)包括ELU激活功能、一個(gè)類似擠壓式的編碼器、隨后的并行擴(kuò)展卷積以及一個(gè)具有類似于sharpmask的細(xì)分模塊的解碼器

譯文:該編碼器是一個(gè)改進(jìn)的SqueezeNet 架構(gòu),它被設(shè)計(jì)為一個(gè)低延遲的網(wǎng)絡(luò),用于圖像識別,同時(shí)保持AlexNet的準(zhǔn)確性。

實(shí)驗(yàn)結(jié)果:

【7】高效卷積網(wǎng)絡(luò)用于實(shí)時(shí)語義分割
實(shí)時(shí)語義分割的《Efficient ConvNet for Real-time Semantic Segmentation》
鏈接:
http://www.robesafe.uah.es/personal/eduardo.romera/pdfs/Romera17iv.pdf
Efficient ConvNet模型整體結(jié)構(gòu)遵循編碼-解碼結(jié)構(gòu),


詳細(xì)構(gòu)造如下表:

整個(gè)模型包含23層,其中1-16層為Encoder,17-23層為Decoder。
編碼部分包含1、2、8層的下采樣過程,以及余下層的Non-bt-1D提取特征。其中Non-bt-1D、Downsample構(gòu)造如下:

實(shí)驗(yàn)結(jié)果:


【8】ERFNet:用于實(shí)時(shí)語義分割的高效殘差分解卷積網(wǎng)絡(luò)
《ERFNet: Efficient Residual Factorized ConvNet for Real-time Semantic Segmentation》
鏈接:
http://www.robesafe.es/personal/eduardo.romera/pdfs/Romera17tits.pdf
REFNet沿用了編碼-解碼結(jié)構(gòu),其詳細(xì)結(jié)構(gòu)如表所示。


整個(gè)網(wǎng)絡(luò)包含23層,其中1-16層為Encoder, 17-23層為Decoder。
Downsampler block受另一個(gè)實(shí)時(shí)語義分割網(wǎng)絡(luò)Enet的設(shè)計(jì),其實(shí)本文不少靈感也來自于Enet:
例如在初始圖像輸入1024X512X3,左邊經(jīng)過3X3卷積,步長strides = 2,得到16 channels,
右邊經(jīng)過MaxPooling 得到3 channels,經(jīng)過concat操作后得到16channels,最終圖像變?yōu)?512X256X16,然后使用Relu函數(shù)激活傳入下一層。
優(yōu)點(diǎn)在于從輸入圖像一開始就進(jìn)行了減少輸入圖像尺寸的操作,本身視覺信息就存在大量冗余,這樣節(jié)省了大量的計(jì)算。
【9】EDANet:用于實(shí)時(shí)語義分割的高效的非對稱卷積密集模塊
《Efficient Dense Modules of Asymmetric Convolution for Real-Time Semantic Segmentation》
鏈接:https://github.com/shaoyuanlo/EDANet
模型框架如下:

主要分為這么幾個(gè)模塊,Downsampling Block和EDA Block和最后的Projection Layer。其中的EDA Block又包括多個(gè)EDA module。其中EDA module的結(jié)構(gòu)如下所示:

其中有兩組asymmetric conv,前一組是正常的conv,后一組是dilated conv,這種asymmetic conv可以減少33%的計(jì)算量,并且只會帶來少量的性能下降。
對于網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì),使用了ENet的initial block作為downsampling block,并且分成了兩種模式,其表示如下:

這樣的downsampling block可以讓網(wǎng)絡(luò)具有更大的感知野,用于收集上下文信息,在最后,相對于全解析度的輸入圖片,特征尺寸變?yōu)榱?/8,而其他的網(wǎng)絡(luò)比如SegNet特征尺寸則變?yōu)榱?/32。
【10】ESPNet:擴(kuò)展卷積的高效空間金字塔語義分割
《ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation》
鏈接:https://arxiv.org/pdf/1803.06815.pdf
原理:ESP Module基于卷積分解原理,將標(biāo)準(zhǔn)卷積分解為兩個(gè)步驟:
1)point-wise convolutions 逐點(diǎn)卷積
2)spatial pyramid of dilated convolutions 空間金字塔型膨脹卷積
ESP運(yùn)算高效,并且可以用在CNNs的不同空間級別上(主要是相對ASP而言)
理論上,ESP模塊比Inception 和 ResNext的模塊更高效。另外的試驗(yàn)結(jié)果表明,在相同硬件和計(jì)算條件下,ESP模塊也優(yōu)于現(xiàn)有表現(xiàn)最佳的MobileNet 和 ShuffleNet
ESP模塊:

因?yàn)槭褂昧舜蟾惺芤暗呐蛎浘矸e,導(dǎo)致了gridding artifacts現(xiàn)象,如下圖所示。本文提出了使用HFF方法來解決該問題,具體做法就是從最小的膨脹卷積核輸出的那張feature map開始,逐級疊加。這樣的做法并沒有引入任何新的參數(shù),同時(shí)計(jì)算量上也沒有增加太多,但卻有效地改善了網(wǎng)格效應(yīng)。

【11】ESPNetv2:一個(gè)輕量級、高效、通用的卷積神經(jīng)網(wǎng)絡(luò)
《ESPNetv2: A Light-weight, Power Efficient, and General Purpose Convolutional Neural Network》
鏈接:https://arxiv.org/pdf/1811.11431.pdf
與第一版本相比,其特點(diǎn)如下:
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個(gè)point-wise convolutions;
5)加入平均池化(average pooling ),將輸入圖片信息加入EESP中;
6)使用級聯(lián)(concatenation)取代對應(yīng)元素加法操作(element-wise addition operation );
其總體框架如圖所示:

【12】輕量級語義分段的集中綜合卷積
《Concentrated-Comprehensive Convolutions for lightweight semantic segmentation》
鏈接:https://arxiv.org/pdf/1812.04920v1.pdf
第一階段對來自鄰近像素的壓縮信息使用兩個(gè)深度上的不對稱卷積。第二階段利用與第一階段特征圖在深度上可分離的擴(kuò)張卷積來增加感受野。通過用提議的CCC模塊替換傳統(tǒng)ESP模塊,在不降低Cityscapes數(shù)據(jù)集精度的情況下,與速度最快的模型之一ESPnet相比,減少一半的參數(shù)數(shù)量和35%的失敗數(shù)量。

帶孔卷積中的定位信息缺失
集中綜合卷積(CCC)塊的結(jié)構(gòu)如下:

CCC模塊由信息集中階段和綜合卷積階段組成。信息集中階段使用簡單的卷積核聚合局部特征信息。綜合卷積階段是通過放大看到較大的感受野,然后是混合信道信息的點(diǎn)卷積。將深度卷積應(yīng)用于擴(kuò)張的卷積,以進(jìn)一步減小參數(shù)的大小。
ESP模型結(jié)構(gòu)如下:

本文僅做學(xué)術(shù)分享,如有侵權(quán),請聯(lián)系刪文。