譚 鐳,孫懷江
(南京理工大學(xué) 計算機科學(xué)與工程學(xué)院,南京 210094)
近年來,深度卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1-3]因其在圖像處理中的高效性而被廣泛應(yīng)用于計算機視覺領(lǐng)域。在圖像語義分割任務(wù)中,CNN在權(quán)威公共數(shù)據(jù)集,如Cityscapes[4]數(shù)據(jù)集上已經(jīng)獲得了很高的精度。相較于一般的分類任務(wù),圖像語義分割[5-7]是基于像素級的多類分割任務(wù),其更具挑戰(zhàn)性。然而,傳統(tǒng)的CNN在進行圖像特征提取時,同一層的神經(jīng)元僅使用相同大小的感受野,導(dǎo)致該層的神經(jīng)元只能獲得固定尺度的信息而丟失了其他大小的尺度信息。因此,對不同的目標對象使用相同大小的感受野時效果較差。
為解決上述問題,文獻[8]提出了選擇核神經(jīng)網(wǎng)絡(luò),其通過對同一區(qū)域使用不同大小的感受野來獲取不同尺度的語義信息。選擇核卷積能夠滿足不同大小的目標對象對感受野的要求,并且可以根據(jù)輸入自適應(yīng)地調(diào)節(jié)感受野大小。Inception[9]采用了類似的機制,在同一區(qū)域采用不同的感受野,但與選擇核卷積不同的是,Inception對于獲取的多尺度信息只進行一個簡單的線性聚集,這導(dǎo)致其模型無法具有較高的自適應(yīng)能力。選擇核卷積的自適應(yīng)調(diào)節(jié)感受野的特性,在語義分割任務(wù)中可以使得模型獲得更多、更豐富的語義信息。
選擇核卷積由于需要對同一輸入進行多次卷積操作,因此在實現(xiàn)對多尺度[10]空間信息的提取時也帶來了大量的網(wǎng)絡(luò)參數(shù),提高了計算量,這不利于模型在無人系統(tǒng)中的應(yīng)用。
為降低網(wǎng)絡(luò)參數(shù)量,多數(shù)模型[11]在網(wǎng)絡(luò)結(jié)構(gòu)中使用分組卷積來達到降參的效果。目前,分組卷積的使用難點在于分組數(shù)沒有一個明確的指標。為降低模型的參數(shù)量和計算量,模型結(jié)構(gòu)需要盡可能地增加分組數(shù)。但是,由于組間相互獨立地進行卷積操作,組間無信息交流,因此過多的分組數(shù)使得模型丟失大量組間的相關(guān)性信息,從而導(dǎo)致模型無法提取豐富的語義信息。但是,過少的分組數(shù)雖能在一定程度上減少組間相關(guān)性信息的丟失,卻也導(dǎo)致模型無法更加輕量化。
為獲得多尺度語義信息并構(gòu)建一個輕量級網(wǎng)絡(luò)模型,本文使用選擇核卷積構(gòu)建一個新的殘差模塊SKAS(Selective-Kernel-Array-Shuffle),利用選擇核卷積能夠根據(jù)輸入信息自適應(yīng)調(diào)節(jié)感受野大小的特性來獲得多尺度語義信息。同時,本文提出一種鋸齒狀逐層分組卷積模型結(jié)構(gòu),該結(jié)構(gòu)以4個SKAS模塊為一組,組內(nèi)每個SKAS模塊的分組數(shù)分別為4、8、16和32,使得模型既不會因為過多的分組數(shù)丟失大量組間相關(guān)性信息,也不會因為過少的分組數(shù)導(dǎo)致模型無法輕量化。鋸齒狀的堆疊方式使得組間能夠進行一定的信息交流,此外,本文還采用文獻[12]提出的通道混合技術(shù)進一步增強組間的信息交流。
圖像語義分割作為計算機視覺領(lǐng)域中的重要分支,在自主導(dǎo)航和機器人系統(tǒng)中得到廣泛應(yīng)用,同時其也為無人系統(tǒng)中的重要一環(huán)。目前,圖像語義分割任務(wù)主要包括提升精度與減小模型參數(shù)2個目標。本文的目的是在不降低分割精度的同時減少模型參數(shù),使模型具有更好的實用價值。
全卷積神經(jīng)網(wǎng)絡(luò)FCNs[13]將分類模型從基于圖像級分類轉(zhuǎn)變?yōu)榛谙袼丶壏诸?實現(xiàn)了輸入輸出均為圖像。同時,FCNs提出了跳躍結(jié)構(gòu),其將淺層特征疊加到輸出,以此提升分割精度。為獲得高精度的分割效果,一些網(wǎng)絡(luò)模型增加了網(wǎng)絡(luò)層數(shù)。然而,當(dāng)網(wǎng)絡(luò)深度達到一定程度時,會出現(xiàn)梯度消失和梯度爆炸問題。ResNets[14]提出了殘差結(jié)構(gòu),其通過恒等映射使網(wǎng)絡(luò)更深,而不會出現(xiàn)梯度消失和梯度爆炸現(xiàn)象。PSPNet[15]是基于ResNets構(gòu)建的一種高精度語義分割模型。
目前,多數(shù)語義分割模型都是編碼-解碼模型。文獻[16]為了實現(xiàn)快速推理以及得到較高的分割精度,提出了ENet模型結(jié)構(gòu)。ENet采用深層編碼器進行特征提取,同時使用淺層解碼器恢復(fù)圖像分辨率。相對于SegNet[17]和U-net[18],ENet采用了一個較小的解碼器,而SegNet與U-net的編碼器和解碼器采用相同的網(wǎng)絡(luò)層數(shù)。此外,ERFNet[19]在ENet的基礎(chǔ)上,采用空間分離卷積,通過文獻[20]提出的空洞卷積搭建網(wǎng)絡(luò)結(jié)構(gòu)。對于空洞卷積,文獻[21]指出不同空洞卷積應(yīng)該以鋸齒狀的形式疊加,并且所疊加的空洞卷積的大小之間不能有大于1的公約數(shù)。此外,文獻[8]為提取多尺度語義信息提出了選擇核卷積,其能夠根據(jù)輸入自適應(yīng)地調(diào)節(jié)感受野大小。
高精度的模型在獲得較好分割效果的同時,也帶來了龐大的模型參數(shù)與較高的計算量。Inception-v2[11]采用分組卷積,在一定程度上降低了參數(shù)數(shù)量。分組卷積較早出現(xiàn)在AlexNet[22]網(wǎng)絡(luò)中,其最初目的是為了解決顯存不足的問題,將網(wǎng)絡(luò)布置在2個顯卡上。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,分組卷積也得到了廣泛應(yīng)用。MobileNets[23]提出了深度可分離卷積,大幅降低了模型參數(shù)。文獻[24]通過簡化Inception-v3[11]提出了Xception,當(dāng)Xception的分支數(shù)達到極限時,其效果就與深度可分離卷積相似。BiSeNet[25]和ContextNet[26]均采用2個深度不同的網(wǎng)絡(luò)分別提取圖像的空間信息和上下文信息,從而降低了模型的計算量。
本文以ERFNet模型為基礎(chǔ),構(gòu)建一種輕量級網(wǎng)絡(luò)結(jié)構(gòu),如表1所示,通過使用SKAS模塊以及逐層分組卷積,以在減小網(wǎng)絡(luò)參數(shù)的同時保持或提高分類精度。
表1 網(wǎng)絡(luò)模型結(jié)構(gòu)Table 1 Network model structure
ERFNet是以ENet模型為基礎(chǔ)的實時高效模型[27-28]。ERFNet使用4個空間可分離卷積,構(gòu)建一個Non-bottleneck-1D殘差模塊,如圖1所示,其中,每2個1維的3×1卷積和1×3卷積為一組,表示一個2維的3×3卷積。
圖1 模型中的核心模塊結(jié)構(gòu)Fig.1 The core module structure in the model
在語義分割任務(wù)中,卷積核的感受野對不同大小的目標對象會產(chǎn)生不一樣的敏感度。為提升模型對不同目標的敏感度,本文采用文獻[8]提出的自適應(yīng)選擇核卷積,這種卷積方式能夠?qū)ν惠斎胧褂貌煌叽绲木矸e核來獲得多尺度語義信息,并對這些多尺度信息進行融合,最終通過一個門結(jié)構(gòu)自適應(yīng)地選擇不同尺度。
本文提出一種新的模塊SKAS,如圖1所示,該模塊的前2層網(wǎng)絡(luò)與Non-bottleneck-1D相同,采用2個一維的3×1卷積和1×3卷積,后2層使用2個一維的SKA選擇核卷積,每個SKA選擇核卷積通過M個不同大小的卷積核提取多尺度特征并進行融合。選擇核卷積SKA的操作過程可以表示為:
(1)
此外,為避免模型出現(xiàn)梯度爆炸或梯度消失的情況,本文還采用文獻[14]提出的殘差結(jié)構(gòu)。由于在實驗中本文對同一輸入使用了2種不同的感受野,因此模型的規(guī)模會大幅提升,本文通過空間分離卷積與分組卷積來降低模型規(guī)模。
為建立輕量級網(wǎng)絡(luò)模型,本文提出一種逐層分組卷積,不同于傳統(tǒng)的分組卷積使用固定的分組數(shù),逐層分組卷積中連續(xù)的幾個SKAS模塊之間的分組數(shù)A是不同的。在實驗過程中,設(shè)置A=(4,8,16,32),并以鋸齒的方式進行堆疊,如表1所示,這樣設(shè)計有如下2個目的:
1)為了避免模型參數(shù)量太大而無法輕量化,或者太小使得模型無法學(xué)習(xí)到足夠的特征信息。若所有卷積層的分組數(shù)g均相同,當(dāng)g太小時,模型參數(shù)量仍然很龐大,模型規(guī)模并沒有得到大幅降低;當(dāng)g太大時,模型參數(shù)量大幅降低,但由于參數(shù)過少,降低了模型的學(xué)習(xí)能力及性能。此外,參數(shù)的變化幅度較大,本文提出的分組形式可以使得參數(shù)的變化過程變得平緩。
2)鋸齒狀的堆疊方式可以在一定程度上避免組間無信息交流的現(xiàn)象。如圖2所示,傳統(tǒng)的分組卷積使得各組之間獨立進行卷積操作,彼此之間無任何信息交流。但是,通道間卻存在著一些相關(guān)性信息,這些信息對于提升模型的學(xué)習(xí)能力具有很大的作用,傳統(tǒng)分組卷積會丟失這些相關(guān)性信息,不利于模型的學(xué)習(xí)。本文提出的鋸齒狀逐層分組卷積并不會使各分組完全獨立地進行卷積操作,因此,其在一定程度上減少了相關(guān)性信息的丟失。
圖2 不同形式的卷積操作Fig.2 Different convolutional operations
為進一步加強組間的信息交流,本文采用ShuffleNet[12]提出的通道混合技術(shù)。該技術(shù)與傳統(tǒng)的堆疊方式相結(jié)合,仍然存在部分通道之間無任何信息交流的問題,如圖2(c)所示。本文提出的鋸齒狀逐層分組卷積能夠有效降低這種損失,如圖2(d)所示。綜上,本文提出的方法不僅降低了網(wǎng)絡(luò)參數(shù),還緩解了分組卷積存在的問題。
本文模型以ERFNet[19]為基礎(chǔ),實驗中使用Cityscapes作為數(shù)據(jù)集,Cityscapes數(shù)據(jù)集在語義分割任務(wù)中主要注釋了19個類,分別為Road、Sidewalk、Building、Wall、Fence、Pole、Traffic light、Traffic sign、Vegetation、Terrain、Sky、Person、Rider、Car、Truck、Bus、Train、Motorcycle、Bicycle。由于其高精度的標簽注釋以及明確分配的訓(xùn)練集、驗證集和測試集,因此廣泛應(yīng)用于語義分割模型的測試中。Cityscapes數(shù)據(jù)集共有5 000張不同城市的分辨率為2 048×1 024的街景圖。其中,2 975張圖片作為訓(xùn)練集,500張圖片作為驗證集,1 525張圖片作為測試集。實驗中的所有模型都只在訓(xùn)練集上進行訓(xùn)練,在驗證集上進行模型性能驗證,最終以測試集上的平均交并比(mean Intersection-over-Union,mIoU)作為模型性能高低的衡量標準。
本文實驗環(huán)境為NVIDIA GTX 1080Ti 11 GB GPU。訓(xùn)練配置:輸入圖像大小為1 024×512,batchsize為5,epoch為150,weight-decay為2e-4,初始學(xué)習(xí)速率為5e-4。分別采用Adam optimizer和交叉熵損失函數(shù)作為隨機梯度下降的優(yōu)化器以及損失函數(shù)。同時,采用一個學(xué)習(xí)速率時刻表,使得學(xué)習(xí)速率隨著epoch次數(shù)的增加不斷減小。整個訓(xùn)練過程分為訓(xùn)練模型的編碼器與解碼器2個步驟。
表2所示為本文逐層分組卷積和傳統(tǒng)分組卷積在Cityscapes的驗證集和測試集上的實驗結(jié)果,其中最優(yōu)結(jié)果加粗表示。模塊SKG與SKA相比,SKG的分組數(shù)固定而SKA的分組數(shù)不固定。當(dāng)使用SKGS(G表示分組數(shù),S表示通道混合技術(shù))模塊時,隨著分組數(shù)的增加,模型參數(shù)大幅減少,但是模型性能也隨之下降,并且參數(shù)數(shù)量處于一種急劇變化的過程。從表2可以看出,SK1、SK8S、SK32S3種模塊的參數(shù)從3.17 M開始急劇降到了1.80 M、1.65 M。在Cityscapes的驗證集上,SK1、SK8S、SK32S 3種模塊分別獲得了70.70%、70.56%、69.84%的mIoU,在測試集上分別獲得了69.8%、68.1%、68.0%的mIoU。該結(jié)果表明,雖然對模型進行適量地降參,能夠有效地避免模型過擬合,提升模型性能,但是,過度地降參不僅不會提升模型性能,反而因為模型復(fù)雜度不夠而導(dǎo)致其無法擁有足夠的學(xué)習(xí)能力。
表2 逐層分組卷積與傳統(tǒng)分組卷積在Cityscapes數(shù)據(jù)集上的Val_mIoU和Test_mIoU對比Table 2 Comparison of Val_mIoU and Test_mIoUbetween layering packet convolution andtraditional packet convolution on Cityscapes dataset
本文提出的逐層分組卷積可以使得模型參數(shù)平緩降低。表2顯示了模塊SKAS和SKA的優(yōu)越性,兩者在Cityscape的驗證集上分別取得了70.64%、70.47%的mIoU,在測試集上分別取得了68.5%、68.3%的mIoU。與SK8S模塊相比,SKAS模塊不僅降低了模型參數(shù),還在Test_mIoU上提升了0.4個百分點,這顯示出本文逐層分組卷積能夠在一定程度上減少組間信息丟失量。SK32S模塊的參數(shù)雖然少于SKAS模塊,但是Test_mIoU很低。此外,實驗結(jié)果表明,使用通道混合技術(shù)有利于提升模型精度。
為更好地驗證本文模型的效果,將其每一個類別的分割精度與基礎(chǔ)模型ERFNet進行比較。從表3可以看出,本文模型能夠更好地分割小物體,如Fence、Pole、Traffic light、Traffic sign、Terrain、Person和Rider。此外,在大物體的分割精度上本文模型也取得了與ERFNet相似的精度。圖3所示為本文模型與ERFNet模型在Cityscapes驗證集上的定性對比。從最右邊一列可以看出,本文模型能夠更好地對Traffic sign這類小物體進行有效分割;從最左邊一列可以看出,本文模型對Bus這類較大的物體同樣具有有效的分割性能。
表3 本文模型與ERFNet模型在Cityscapes測試數(shù)據(jù)集上的分割精度對比Table 3 Comparison of segmentation accuracy betweenthe model in this paper and the ERFNet model onCityscapes test dataset %
圖3 本文模型與ERFNet模型在Cityscapes驗證數(shù)據(jù)集上的定性結(jié)果對比Fig.3 Comparison of qualitative results between the model in this paper and ERFNet model on Cityscapes validation dataset
本文模型旨在盡可能降低模型參數(shù)與計算量的情況下保證獲得與當(dāng)前經(jīng)典模型相似的精度。表4所示為本文模型與一些經(jīng)典模型以及最新模型在模型參數(shù)量、Class_mIoU以及Category_mIoU上的比較結(jié)果,所有對比均在Cityscapes數(shù)據(jù)集的測試集中進行。本文模型在Class_mIoU和Category_mIoU上分別取得了68.5%和86.7%的精度,精度高于多數(shù)模型。與基礎(chǔ)模型ERFNet相比,本文模型不僅在參數(shù)量上降低了19%,并且在Class_mIoU上也提升了0.7%。從表4可以看出,性能較好的PSPNet[15]、ICNet[29]模型都具有龐大的參數(shù)量,分別為本文模型的147.5倍和15.6倍。參數(shù)相對較小的DFANet A’[27]也比本文模型多了3.6倍的參數(shù)量。其他模型不僅在參數(shù)量上遠高于本文模型,在Class_mIoU上也低于本文模型,如DeepLab[5]模型的參數(shù)量是本文模型的154.2倍,但Class_mIoU只有63.1%。經(jīng)典的FCN-8S[13]的參數(shù)量也為本文模型的78.8倍,而Class_mIoU只有65.3%。ENet[16]雖然在參數(shù)量上低于本文模型,但是其Class_mIoU也大幅降低,僅為58.3%。因此,本文實現(xiàn)了以輕量級的網(wǎng)絡(luò)模型獲得高分割精度的目標。
表4 不同模型在Cityscapes測試集上的Class_mIoU和Category_mIoU對比Table 4 Comparison of the Class_mIoU and Category_mIoUof different models on the Cityscapes test set
本文設(shè)計一種逐層分組卷積,結(jié)合該逐層分組卷積與選擇核卷積構(gòu)建高精度的輕量級卷積神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)利用選擇核卷積提取多尺度語義信息,從而提升網(wǎng)絡(luò)精度,同時采用逐層分組卷積降低網(wǎng)絡(luò)參數(shù)量,增強分組間的信息交流。在Cityscapes數(shù)據(jù)集上的實驗結(jié)果驗證了該網(wǎng)絡(luò)模型的高效性。下一步將研究各分組之間的相關(guān)性信息,并探索能夠高效提取相關(guān)性信息的方法。