文/朱明君
作為圖像理解和計(jì)算機(jī)視覺(jué)領(lǐng)域的重要的環(huán)節(jié),圖像分割一直受到人們的關(guān)注。在深度學(xué)習(xí)迅速發(fā)展之后,基于卷積神經(jīng)網(wǎng)絡(luò)的全卷積神經(jīng)網(wǎng)絡(luò)(Fully convolutional networks,F(xiàn)CN)等網(wǎng)絡(luò)的提出使得圖像分割進(jìn)入了新的階段,像素不僅能夠按照物體類別進(jìn)行分類,圖像分割精度也得以提升。
卷積神經(jīng)網(wǎng)絡(luò)的意義在于訓(xùn)練出能夠識(shí)別圖像特征的卷積核。當(dāng)卷積核在整個(gè)圖像上滑動(dòng)之后,輸出特征圖中的相應(yīng)位置就被賦予了高低不一的數(shù)值,特定曲線及周邊區(qū)域所對(duì)應(yīng)的位置數(shù)值高,其他區(qū)域數(shù)值低。也就是說(shuō),特定的卷積核能夠?qū)⑻囟ǖ奶卣鳈z測(cè)出來(lái)。而卷積神經(jīng)網(wǎng)絡(luò)的目的就在于訓(xùn)練出能夠識(shí)別出事物不同的特征的不同卷積核,從而實(shí)現(xiàn)對(duì)圖片上信息的分類。
對(duì)圖像卷積即卷積核在輸入圖像上從左到右,從上到下滑動(dòng),卷積核的每個(gè)系數(shù)和輸入圖像對(duì)應(yīng)的像素值相乘再累加,作為新的像素值賦值給輸出特征圖的相應(yīng)位置。輸出特征圖的尺寸o與卷積核的大小k、輸入圖像的尺寸n、步長(zhǎng)s、填充(padding)p有關(guān)。
輸入圖像經(jīng)過(guò)卷積核作用之后得到的特征圖還要經(jīng)過(guò)激活函數(shù)的作用,將輸出的數(shù)值回歸至一定范圍內(nèi),從而實(shí)現(xiàn)將非線性可分的數(shù)據(jù)進(jìn)行分類。
在卷積神經(jīng)網(wǎng)絡(luò)中,當(dāng)特征圖經(jīng)過(guò)激活函數(shù)作用之后得到的激活圖還要經(jīng)過(guò)池化層。
池化,也叫下采樣,就是將圖片尺寸縮小。一般采用最大池化和平均池化。最大池化就是在特定n×n的區(qū)域選出該區(qū)域內(nèi)最大的數(shù)值,賦予輸出的相應(yīng)位置。而平均池化就是在特定n×n的區(qū)域?qū)⑦@n2個(gè)數(shù)值取平均,賦予輸出的相應(yīng)位置。
圖1:語(yǔ)義分割示例
圖2
圖3
在卷積神經(jīng)網(wǎng)絡(luò)中,當(dāng)卷積層的濾波器尺寸與待處理的特征圖的尺寸相同時(shí),一個(gè)卷積核輸出一個(gè)值,這樣的卷積層便是全連接層。在網(wǎng)絡(luò)的最后通過(guò)加上全連接層能夠輸出一組向量,即大小不同的數(shù)值,個(gè)數(shù)為卷積核的數(shù)量。這些數(shù)值最終經(jīng)過(guò)softmax函數(shù)作用,輸出一組大小在0到1間的概率值,代表這張圖片輸于各個(gè)類別的可能性。
圖4:出自論文
卷積神經(jīng)網(wǎng)絡(luò)的目的是訓(xùn)練出能夠識(shí)別圖像特征的卷積核,也就是要確定這些卷積核的系數(shù)。輸入訓(xùn)練集的圖像,經(jīng)過(guò)特定的卷積神經(jīng)網(wǎng)絡(luò),輸出一組概率,通過(guò)與標(biāo)簽比對(duì),計(jì)算誤差值,通過(guò)反向傳播算法更新權(quán)重,直至最終整個(gè)網(wǎng)絡(luò)損失函數(shù)達(dá)到最小。
2.5.1 損失函數(shù)
2.5.2 反向傳播算法
圖像語(yǔ)義分割就是對(duì)圖像進(jìn)行分割并識(shí)別出相應(yīng)的內(nèi)容,比如圖1中一個(gè)人騎著摩托車(chē),那么圖像語(yǔ)義分割的任務(wù)就是將這張圖片的人和摩托車(chē)以及背景(background)分割開(kāi)并識(shí)別出他們相應(yīng)的類別。
全卷積網(wǎng)絡(luò)和傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)相比,區(qū)別在于最終輸出的不是一組向量,而仍然是一張圖片,主要是通過(guò)將CNN中的全連接層當(dāng)作是卷積層。在FCN論文中,作者通過(guò)5層卷積層和5層池化層將輸入圖片的尺寸縮小到了原圖的1/32,最后加的卷積層是21通道,故最終是21張尺寸為原圖的1/32的熱圖。接下來(lái)FCN做的是反卷積,將圖像尺寸還原成輸入圖像,輸出21張由heatmap經(jīng)過(guò)upsampling變?yōu)樵瓐D大小的圖片;為了對(duì)每個(gè)像素進(jìn)行分類預(yù)測(cè)label,對(duì)像素逐個(gè)求其在21張圖像中位置的最大概率作為該像素的分類,這便是即語(yǔ)義分割的核心所在。
3.2.1 反卷積
什么是反卷積呢,簡(jiǎn)單說(shuō)就是卷積對(duì)應(yīng)的反過(guò)來(lái)的操作,具體含義可以通過(guò)以下例子理解。如圖2,3×3的卷積核在4×4的特征圖上以步長(zhǎng)為1進(jìn)行滑動(dòng),輸出2×2的特征圖,其對(duì)應(yīng)的反卷積如圖3所示,即3×3的卷積核在尺寸為2×2的特征圖上以步長(zhǎng)為1進(jìn)行滑動(dòng)(padding=2),輸出4×4的特征圖。
圖5:來(lái)自論文
圖6
3.2.2 融合
由于較深層的圖像感受野較大,對(duì)于局部細(xì)節(jié)的感受能力不足,故在反卷積還原圖像尺寸時(shí)可以將加入較淺層的圖像信息。比如圖4中進(jìn)行16倍上采樣時(shí),是先將第四個(gè)池化層的結(jié)果和第五個(gè)池化層的輸出特征圖上采樣兩倍的結(jié)果融合之后,再進(jìn)行16倍上采樣,這樣輸出的圖片即FCN-16s。
3.2.3 結(jié)果
圖5即為經(jīng)過(guò)訓(xùn)練的卷積網(wǎng)絡(luò)所測(cè)試的結(jié)果,可以看出隨著上采樣倍數(shù)的降低,分割的結(jié)果也更為清晰精確。
帶孔卷積就是在卷積核的各個(gè)系數(shù)間根據(jù)不同的dilation rate加上不同個(gè)數(shù)的0,從而實(shí)現(xiàn)卷積核尺寸的膨脹。
圖6是上述關(guān)于dilated convolutions論文中的一張圖,分別顯示了三個(gè)dilation rate不同的遞進(jìn)的卷積層中尺寸為3×3的卷積核對(duì)輸出特征圖的感受野影響。用第三層做具體說(shuō)明,卷積層15×15的區(qū)域通過(guò)無(wú)洞3×3卷積核映射到13×13的區(qū)域,13×13通過(guò)dilation=2的3×3卷積核映射到一個(gè)9×9的區(qū)域,最后該9×9的區(qū)域通過(guò)dilation=3的3×3的卷積核映射到一個(gè)特征單元,說(shuō)明該層卷積層輸出的一個(gè)單元能夠包含原始尺寸為15×15區(qū)域的信息,故該卷積層感受野RF=15。而第一層卷積核的感受野僅為3,可以看出,dilated convolutions在不經(jīng)池化減小圖像尺寸造成信息損失的前提下仍然擴(kuò)大了感受野,同時(shí)不增加卷積核的系數(shù),將計(jì)算量保持在一定范圍內(nèi)。研究結(jié)果標(biāo)明,使用dilated convolutions的網(wǎng)絡(luò)進(jìn)行分割的結(jié)果更接近于真值。
本文在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上通過(guò)介紹全卷積神經(jīng)網(wǎng)絡(luò)和帶孔卷積及其相關(guān)概念,闡述了其在圖像語(yǔ)義分割領(lǐng)域上的應(yīng)用,全卷積神經(jīng)網(wǎng)絡(luò)通過(guò)將全連接層轉(zhuǎn)化為全連接層和反卷積等過(guò)程實(shí)現(xiàn)了將像素根據(jù)語(yǔ)義進(jìn)行分割,帶孔卷積通過(guò)在卷積核的系數(shù)間插入不同個(gè)數(shù)的0優(yōu)化了分割效果。
參考文獻(xiàn)
[1]成穎,史九林.自動(dòng)分類研究現(xiàn)狀與展望[J].情報(bào)學(xué)報(bào),1999,18(01):20-26.
[2]李湘東,阮濤,劉康.基于維基百科的多種類型文獻(xiàn)自動(dòng)分類研究[J].數(shù)據(jù)分析與知識(shí)發(fā)現(xiàn),2017(10).