国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于全卷積網(wǎng)絡(luò)的圖像語義分割算法

2020-09-02 01:22李英杰張?bào)@雷
關(guān)鍵詞:池化卷積像素

李英杰 張?bào)@雷

1(天津市復(fù)雜系統(tǒng)控制理論及應(yīng)用重點(diǎn)實(shí)驗(yàn)室 天津 300384)2(天津理工大學(xué)電氣電子工程學(xué)院 天津 300384)

0 引 言

語義分割通過為圖像中每個(gè)像素分配特定標(biāo)簽來解決像素的分類問題[1],長(zhǎng)期以來是計(jì)算機(jī)視覺中重要且具有挑戰(zhàn)性的課題,其成果廣泛應(yīng)用于自動(dòng)駕駛、場(chǎng)景分析、醫(yī)療影像、圖像搜索等領(lǐng)域[2]。隨著深度學(xué)習(xí)算法尤其是深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)[3-4]的迅速發(fā)展,傳統(tǒng)的基于人工標(biāo)記提取圖像低級(jí)特征進(jìn)行模型訓(xùn)練的語義分割技術(shù)逐漸被基于深度學(xué)習(xí)的方法取代?;谏疃染矸e網(wǎng)絡(luò)的語義分割技術(shù)不僅可以實(shí)現(xiàn)端到端的訓(xùn)練,而且能獲得更精確的結(jié)果,受到了研究者的廣泛重視。

文獻(xiàn)[5]于2014年提出了全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN),這是深度學(xué)習(xí)首次應(yīng)用在語義分割領(lǐng)域,其具體操作是用卷積層代替全連接層,在端到端的卷積網(wǎng)絡(luò)中進(jìn)行密集預(yù)測(cè),實(shí)現(xiàn)圖像任意大小的輸出。此后許多學(xué)者提出的算法都是基于這種思想進(jìn)行改進(jìn)。Badrinarayanan等[6]提出的SegNet,使用最大池化定位來得到更準(zhǔn)確的位置信息; Yu等[7]提出的Dilated Convolutions,通過空洞卷積進(jìn)行密集預(yù)測(cè);Lin等[8]提出的RefineNet,通過改進(jìn)編碼解碼結(jié)構(gòu),提升了網(wǎng)絡(luò)性能;Zhao等[9]提出的PSPNet,使用金字塔池化模塊聚合多尺度信息,并在ResNet網(wǎng)絡(luò)中加入附加損失,獲得了較好的效果;Peng等[10]提出的Large Kernel Matters,雖然可以獲得較大感受野,但大卷積核計(jì)算量大、占用內(nèi)存多,增加了計(jì)算成本;Yu等[11]提出的判別特征網(wǎng)絡(luò)(Discriminative Feature Network,DFN),解決了圖像中類內(nèi)不一致和類間無差別的問題。

對(duì)于全卷積網(wǎng)絡(luò)(FCN),語義分割系統(tǒng)的改進(jìn)主要集中在兩個(gè)方面。一是改進(jìn)深層次網(wǎng)絡(luò)模型的結(jié)構(gòu)。深層網(wǎng)絡(luò)的建模能力更強(qiáng),能應(yīng)對(duì)各種復(fù)雜的表示,學(xué)習(xí)到分辨力更強(qiáng)的特征,提升算法效果。二是使用概率圖模型條件隨機(jī)場(chǎng)(CRF)[12]。條件隨機(jī)場(chǎng)作為圖像后端處理的工具,能聯(lián)系上下文信息將相似的像素歸為一類,優(yōu)化目標(biāo)邊緣,得到更加良好的分割效果。

本文在DeepLab v3算法的基礎(chǔ)上對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),在激活層使用LeakyReLU激活函數(shù),解決網(wǎng)絡(luò)在特征較弱區(qū)域無法提取弱特征的問題。經(jīng)過逐次的下采樣后特征圖分辨率會(huì)降低,因此在解碼階段采用密集上采樣卷積(DUC)來獲得最終的輸出預(yù)測(cè)圖。雙線性上采樣是不可學(xué)習(xí)的,在恢復(fù)原圖大小時(shí)會(huì)不可避免地丟失細(xì)節(jié)信息,本文使用的密集上采樣卷積(DUC)能學(xué)習(xí)到相鄰像素之間的聯(lián)系,使得到的物體分割更加準(zhǔn)確。在網(wǎng)絡(luò)訓(xùn)練時(shí)采用Nadam優(yōu)化器,有效降低了訓(xùn)練時(shí)間。

1 DeepLab v3算法

DeepLab v3算法是2017年提出的,其使用串行和并行的多孔卷積擴(kuò)大感受野,采用多孔空間金字塔池化(ASPP)提取不同尺度的特征,在PASCAL VOC 2012數(shù)據(jù)集上取得了良好的效果。

1.1 算法框架

算法框架如圖1所示。首先將圖像輸入到卷積神經(jīng)網(wǎng)絡(luò),經(jīng)過級(jí)聯(lián)的多孔空間金字塔池化(ASPP)模塊提取稠密特征后,獲得不同尺寸的特征圖;其次將這些尺寸不一的特征圖進(jìn)行融合,經(jīng)過1×1的卷積降維后進(jìn)行雙線性上采樣,得到與輸入圖像大小一致的預(yù)測(cè)圖;最后逐像素進(jìn)行預(yù)測(cè)得到分割結(jié)果。

圖1 DeepLab v3算法框圖

1.2 用于稠密特征提取的多孔卷積

深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)以全卷積的形式已經(jīng)證明了在語義分割領(lǐng)域的有效性,然而DCNN網(wǎng)絡(luò)最初是為圖像分類任務(wù)設(shè)計(jì)的,其按一定步長(zhǎng)進(jìn)行連續(xù)的卷積和池化會(huì)導(dǎo)致特征映射的空間分辨率明顯降低。為了恢復(fù)空間分辨率,研究人員提出了多種方法。早期學(xué)者大多使用反卷積(也叫轉(zhuǎn)置卷積),DeepLab v3算法使用多孔卷積,通過在標(biāo)準(zhǔn)卷積的非零像素之間插入零來進(jìn)行構(gòu)造。對(duì)于大小為k×k的卷積核,經(jīng)過擴(kuò)張后的新卷積核大小為kd×kd,其中kd=k+(k-1)·(r-1)。

假設(shè)一個(gè)二維信號(hào),x[i]是輸入信號(hào),y[i]是輸出信號(hào),w是卷積核,r是卷積核擴(kuò)張率,指的是對(duì)輸入圖像進(jìn)行采樣的步長(zhǎng)。輸入圖像x在多孔卷積上的計(jì)算如下:

(1)

多孔卷積是通過改變擴(kuò)張率從而在不增加參數(shù)的情況下擴(kuò)大感受野,在這個(gè)意義上,標(biāo)準(zhǔn)卷積只是多孔卷積擴(kuò)張率r=1的一個(gè)特例。

1.3 多孔空間金字塔池化

多孔空間金字塔池化(ASPP)來源于空間金字塔池化(SPP)[13],包含了4個(gè)不同擴(kuò)張率的多孔卷積,可以有效捕捉多尺度信息。然而隨著擴(kuò)張率的增大,卷積核的有效權(quán)重(即作用于特征區(qū)域的像素,而不是填充的零)的數(shù)量卻在變少,當(dāng)作用于分辨率低的特征圖時(shí),擴(kuò)張率在接近特征映射大小的情況下,只有中心的像素起作用,3×3的卷積核會(huì)退化為1×1的卷積核,無法捕捉圖像的完整信息。為了克服這個(gè)問題并考慮全局上下文信息,DeepLab v3算法在ASPP中加入全局平均池化。因此,ASPP包括1個(gè)1×1卷積、3個(gè)3×3卷積(擴(kuò)張率分別為6、12、18)和全局平均池化模塊,同時(shí)在每個(gè)卷積核之后加入批歸一化層以提升模型訓(xùn)練精度。ASPP是對(duì)不同尺度的特征進(jìn)行重采樣,可以對(duì)任意尺度的區(qū)域進(jìn)行準(zhǔn)確而有效的分類,很好地解決了圖像存在的多尺度問題。

該算法和之前提出的各種算法相比提升效果明顯,但是仍存在以下局限:一是激活函數(shù)提取弱特征能力有待加強(qiáng);二是采用了簡(jiǎn)單的雙線性上采樣,恢復(fù)原圖大小的預(yù)測(cè)圖效果不太理想;三是參數(shù)較多,計(jì)算量大,網(wǎng)絡(luò)訓(xùn)練時(shí)間長(zhǎng)。

2 算法設(shè)計(jì)

本文算法在DeepLab v3的基礎(chǔ)上進(jìn)行改進(jìn),整體框架如圖2所示。

算法在卷積網(wǎng)絡(luò)中采用LeakyReLU激活函數(shù),并重新設(shè)計(jì)了解碼模塊,使用密集上采樣卷積(DUC)得到輸出預(yù)測(cè)圖。同時(shí)在訓(xùn)練時(shí)采用Nadam優(yōu)化器,減少了網(wǎng)絡(luò)的訓(xùn)練時(shí)間。本文算法語義分割具體流程如圖3所示。

圖3 語義分割流程圖

具體步驟為:

第一步輸入原圖到卷積神經(jīng)網(wǎng)絡(luò);

第二步ASPP對(duì)從卷積神經(jīng)網(wǎng)絡(luò)獲得的圖像特征重采樣,獲得多尺度特征;

第三步將ASPP提取到的特征圖融合降維;

第四步使用DUC得到與輸入大小一致的預(yù)測(cè)圖,逐像素預(yù)測(cè)得到分割結(jié)果。

2.1 密集上采樣卷積

本文算法采用密集上采樣卷積(Dense Upsampling Convolution,DUC)直接對(duì)特征圖進(jìn)行卷積運(yùn)算,得到密集的像素級(jí)預(yù)測(cè)圖。DUC是一種易于實(shí)現(xiàn)的,可以達(dá)到像素級(jí)精度的方法,它可將縮小的特征映射恢復(fù)到與輸入圖像大小相同的密集特征映射。

假設(shè)輸入一個(gè)高度為H、寬度為W、顏色通道為C的圖像,經(jīng)過像素級(jí)語義分割會(huì)生成一個(gè)大小為H×W的標(biāo)簽映射,并且每個(gè)像素都有一個(gè)獨(dú)特的類別標(biāo)簽。圖像經(jīng)過深度卷積神經(jīng)網(wǎng)絡(luò)后得到尺寸為h×w×c的特征映射圖,其中h=H/d,w=W/d,d為下采樣因子。DUC對(duì)從ResNet-101網(wǎng)絡(luò)輸出為h×w×c的特征圖進(jìn)行卷積,得到h×w×(d2×L)的特征圖,其中L是語義分割任務(wù)中的類別總數(shù),這表明密集卷積的每一層都在學(xué)習(xí)像素的預(yù)測(cè)。經(jīng)過Softmax層后將特征圖重置為h×w×L,并運(yùn)行argmax算子得到最終的預(yù)測(cè)圖。DUC的核心思想是將整個(gè)標(biāo)簽映射分成相同的d2個(gè)子圖,其高度和寬度與輸入的特征映射相同。換句話說,DUC將整個(gè)標(biāo)簽圖轉(zhuǎn)換為具有多個(gè)通道的較小標(biāo)簽圖,這種轉(zhuǎn)換可直接在輸入特征映射和輸出標(biāo)簽映射之間應(yīng)用卷積運(yùn)算,而不需要像反卷積那樣插入額外的值。

雙線性插值在上采樣時(shí)通常會(huì)丟失信息,例如本文網(wǎng)絡(luò)采用1/16的下采樣率。如果目標(biāo)的長(zhǎng)度或?qū)挾刃∮?6個(gè)像素(比如較小的物體),則雙線性上采樣恢復(fù)這個(gè)對(duì)象的效果不佳。DUC是可學(xué)習(xí)的,它不僅能夠捕獲和恢復(fù)雙線性上采樣操作中通常缺少的細(xì)節(jié)信息,而且可以在原始分辨率下進(jìn)行預(yù)測(cè),實(shí)現(xiàn)像素級(jí)解碼,獲得比雙線性上采樣更精確的結(jié)果。另外,DUC在解碼過程中可以自然地集成到全卷積網(wǎng)絡(luò)框架中,實(shí)現(xiàn)端到端的訓(xùn)練。

密集上采樣卷積重塑形狀的代碼如下:

#reshape操作

cls_score_reshape = mx.symbol.Reshape(

data=summ, shape=(

0, label_num, -1),

name=’cls_score_

reshape’)

#reshape操作完成后送入Softmax

cls = mx.symbol.SoftmaxOutput(data=

cls_score_reshape,

multi_output=True,

normalization=’valid’,

use_ignore=True,

ignore_label=ignore_label,

name=’seg_loss’)

2.2 激活函數(shù)

本文算法基礎(chǔ)網(wǎng)絡(luò)采用的ResNet-101,該網(wǎng)絡(luò)由4組卷積塊組成。與原網(wǎng)絡(luò)不同的是,本文算法在卷積層后采用的激活函數(shù)是LeakyReLU,如圖4所示。

圖4 殘差塊

本文算法中LeakyReLU代碼如下:

#激活層函數(shù)

tf.nn.leaky_relu(features,alpha=0.02,

name=None)

在卷積神經(jīng)網(wǎng)絡(luò)中,研究者使用的激活函數(shù)主要有Sigmoid、tanh和ReLU。與Sigmoid和tanh函數(shù)相比,ReLU函數(shù)的優(yōu)點(diǎn)是收斂速度更快,梯度不會(huì)飽和,但在網(wǎng)絡(luò)訓(xùn)練時(shí)其通過一個(gè)閾值得出激活值,可能會(huì)出現(xiàn)神經(jīng)元“壞死”的現(xiàn)象,即神經(jīng)元在輸入不大于零的情況下,輸出始終為零使梯度得不到更新,不會(huì)響應(yīng)任何數(shù)據(jù),無法提取特征。為了解決這個(gè)問題,研究人員對(duì)ReLU函數(shù)進(jìn)行改進(jìn),提出了多種具有良好效果的改進(jìn)型。本文使用的LeakyReLU函數(shù)就是其中之一,其數(shù)學(xué)表達(dá)式如下:

(2)

式中:α表示的是偏移量。與ReLU函數(shù)相比,在輸入信號(hào)小于零時(shí),LeakyReLU函數(shù)的輸出不為零,求導(dǎo)之后導(dǎo)數(shù)為固定值。由于這個(gè)特性,數(shù)據(jù)分布會(huì)發(fā)生變化,負(fù)半軸的一些值會(huì)得到保留,信息也不會(huì)因此丟失,解決了ReLU函數(shù)進(jìn)入負(fù)區(qū)間神經(jīng)元不學(xué)習(xí)的問題。圖5、圖6為ReLU函數(shù)及其導(dǎo)數(shù)與LeakyReLU函數(shù)及其導(dǎo)數(shù)的對(duì)比圖。

圖5 ReLU函數(shù)及其導(dǎo)數(shù)

圖6 LeakyReLU函數(shù)及其導(dǎo)數(shù)

2.3 優(yōu)化器

目前卷積網(wǎng)絡(luò)層數(shù)越來越深,不斷增加的數(shù)據(jù)量使得訓(xùn)練時(shí)間也越來越長(zhǎng)。為了減少網(wǎng)絡(luò)的訓(xùn)練時(shí)間,本文采用了Nadam優(yōu)化器。

在卷積神經(jīng)網(wǎng)絡(luò)中,常用的優(yōu)化器主要有隨機(jī)梯度下降優(yōu)化器(Stochastic Gradient Descent,SGD)、Momentum優(yōu)化器以及自適應(yīng)優(yōu)化器。SGD優(yōu)化器的學(xué)習(xí)率主要依靠人為經(jīng)驗(yàn)選取,選取一個(gè)合適的學(xué)習(xí)率需要不斷的嘗試。此外這種優(yōu)化器易困在鞍點(diǎn),得到局部最優(yōu)解。Momentum優(yōu)化器相比于SGD優(yōu)化器可使梯度更新更靈活,但效果仍不及自適應(yīng)優(yōu)化器。目前使用較多的自適應(yīng)優(yōu)化器是Adam優(yōu)化器。Adam可以看作是RMSprob和Momentum的結(jié)合,通過梯度的一階以及二階矩陣估計(jì)調(diào)試每一個(gè)參數(shù)的學(xué)習(xí)率,將學(xué)習(xí)率控制在一定的范圍內(nèi),使其不會(huì)出現(xiàn)較大波動(dòng)。本文使用的Nadam優(yōu)化器[14]結(jié)合了NAG和Adam的優(yōu)點(diǎn),與Adam優(yōu)化器相比,對(duì)學(xué)習(xí)率的約束性更強(qiáng),對(duì)梯度更新的影響更直接,效果更好。

3 實(shí) 驗(yàn)

3.1 實(shí)驗(yàn)配置

本文算法采用的編程語言是通俗易懂、解釋性好的Python 3.5,深度學(xué)習(xí)框架是當(dāng)前流行的TensorFlow。TensorFlow是谷歌研發(fā)的人工智能學(xué)習(xí)系統(tǒng),其靈活性好、可擴(kuò)展性高,廣泛應(yīng)用于深度學(xué)習(xí)中。實(shí)驗(yàn)在機(jī)架式浪潮NF5280M4服務(wù)器上進(jìn)行,顯卡為GTX 1080Ti,顯存12 GB。操作系統(tǒng)為Ubuntu16.04,cuda版本是v9.0.176。

激活函數(shù)LeakyReLU的偏移量α為0.02。此時(shí)模型的收斂速度和提取弱特征能力是最優(yōu)的,既解決了負(fù)區(qū)間神經(jīng)元梯度不更新的問題,又使模型收斂較快。

3.2 數(shù)據(jù)集

本文實(shí)驗(yàn)采用的數(shù)據(jù)集是PASCAL VOC 2012[15]。每年挑戰(zhàn)者在計(jì)算機(jī)視覺挑戰(zhàn)賽上提出的各類算法都會(huì)在這個(gè)數(shù)據(jù)集上進(jìn)行驗(yàn)證,因此在計(jì)算機(jī)視覺領(lǐng)域該數(shù)據(jù)集成為了普遍接受的標(biāo)準(zhǔn)。此數(shù)據(jù)集主要涉及了日常生活中常見的包括人、動(dòng)物、交通工具、室內(nèi)物體等4大類20小類的物體。原始數(shù)據(jù)集中的訓(xùn)練集、驗(yàn)證集、測(cè)試集分別包括1 464幅、1 449幅、1 456幅圖像,每幅圖像大小、分辨率均不一樣,目標(biāo)背景、光照亦不相同。經(jīng)過數(shù)據(jù)增強(qiáng)處理后,訓(xùn)練集圖像可以擴(kuò)增到10 582幅。

3.3 結(jié)果分析

衡量算法優(yōu)劣的指標(biāo)通常有多種,本文采用網(wǎng)絡(luò)訓(xùn)練時(shí)間和平均交并比(mIoU)作為本文算法的性能指標(biāo)。mIoU就是真實(shí)值和預(yù)測(cè)值的交集與并集的比值在每個(gè)類上求平均值。本文算法與DeepLab v3算法訓(xùn)練時(shí)間對(duì)比如表1所示。

表1 兩種算法訓(xùn)練時(shí)間對(duì)比

從表1可以看出,本文算法每迭代10次所需時(shí)間較原算法降低了0.015 s,雖然降低不多,但總的訓(xùn)練時(shí)間降低了0.68 h,縮短時(shí)間明顯。各種算法精度對(duì)比如表2所示。

表2 各種算法精度對(duì)比

針對(duì)遮擋、重疊等因素的影響,本文選取了PASCAL VOC 2012數(shù)據(jù)集中的4幅圖像來說明本文算法的效果。如圖7所示,第1列為原圖,第2列為DeepLab v3算法效果圖,第3列為本文算法效果圖。從a行可以看出,由于樹木遮擋的原因,樹木后的小羊DeepLab v3算法檢測(cè)到的信息較少,有的小特征未檢測(cè)到;從b行可以看出,當(dāng)手掌與兔子重疊之后,DeepLab v3算法檢測(cè)到手掌丟失的信息比本文算法多;從c行可以看出,對(duì)于近景電動(dòng)車,由于車身物件的原因,DeepLab v3算法給同一類的物體分配了不同的像素,類內(nèi)物體檢測(cè)錯(cuò)誤,而本文算法進(jìn)行了正確的分類;從d行可以看出,靠在樹上的自行車因光線較暗,DeepLab v3算法只檢測(cè)到了自行車的大致輪廓,分割較為粗糙。綜上,與DeepLab v3算法相比,相同的圖像在不同因素影響下本文算法對(duì)目標(biāo)的檢測(cè)效果更好。

圖7 本文算法與DeepLab v3在PASCAL VOC 2012數(shù)據(jù)集中部分圖像對(duì)比實(shí)驗(yàn)

4 結(jié) 語

本文算法在DeepLab v3算法的基礎(chǔ)上充分利用了密集上采樣卷積(DUC)、LeakyReLU激活函數(shù)和Nadam優(yōu)化器的優(yōu)點(diǎn),對(duì)原算法進(jìn)行了改進(jìn),并在公開數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,相比于同類算法,本文算法分割精度高、訓(xùn)練時(shí)間短,可以廣泛應(yīng)用在分類服飾、精準(zhǔn)農(nóng)業(yè)、無人駕駛等領(lǐng)域。

猜你喜歡
池化卷積像素
基于高斯函數(shù)的池化算法
像素前線之“幻影”2000
卷積神經(jīng)網(wǎng)絡(luò)中的自適應(yīng)加權(quán)池化
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
一種并行不對(duì)稱空洞卷積模塊①
“像素”仙人掌
從濾波器理解卷積
基于卷積神經(jīng)網(wǎng)絡(luò)和池化算法的表情識(shí)別研究
用于手寫漢字識(shí)別的文本分割方法
基于傅里葉域卷積表示的目標(biāo)跟蹤算法