• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ENet的輕量級語義分割算法研究*

      2021-09-24 12:06:50徐世杰吳思凡
      計算機工程與科學 2021年8期
      關鍵詞:空洞注意力語義

      徐世杰,杜 煜,鹿 鑫,吳思凡

      (北京聯(lián)合大學智慧城市學院,北京 100101)

      1 引言

      語義分割算法廣泛應用于無人駕駛感知、醫(yī)學圖像識別和視頻特效等領域,具有重要的研究價值。目前語義分割算法的研究重點在于降低算法參數(shù)量級,提升算法實時性[1]。Paszke 等人[2]提出的ENet(Efficient Net)算法是經典的輕量級語義分割算法,具有推理速度快、參數(shù)量少和精度較高的特點。但是,隨著相關研究的深入,ENet簡單的線性編碼-解碼結構無法滿足更高的應用要求。ENet使用較為對稱的編碼-解碼結構,采用傳統(tǒng)的逐級下采樣方式緩慢減小特征圖尺度。然而淺層卷積結果雖具有豐富空間信息,但特征感受野較小、經過的非線性結構少,不能獲得有效的語義信息。并且,空間信息傳遞損失會隨著網絡層數(shù)的加深而增加。Yu等人[3]認為淺層卷積進行了較多大尺寸矩陣運算,減少淺層卷積數(shù)量能有效降低計算量。ENet采用逐級上采樣的解碼方式恢復特征尺度,造成解碼器過于龐大,也增加了大尺寸矩陣運算。此外,ENet在bottleneck2.0~3.0中穿插了大量空洞卷積[4]以提升算法感受野[5,6,7],過多的空洞卷積不僅增加了內存占用,其疊加結構還造成了網格效應[8],而文獻[9]的實驗表明感受野過大會造成過擬合現(xiàn)象。

      針對以上問題,本文提出了改進的ENet算法 C-ENet+AM+RAM,首先對ENet編解碼部分進行剪裁,以加快特征圖采樣過程并降低空洞卷積的使用率,然后引入通道注意力機制[10],并受其啟發(fā)設計了空間注意力機制,將2種注意力機制結合設計了注意力模塊AM(Attention Module),將淺層的空間特征與解碼器的語義特征融合,最后利用金字塔結構[11]的擴張率疊加空洞卷積,設計感受野聚合模塊RAM(Receptive field Aggregation Module)改善算法感受野。改進后的算法參數(shù)量降低了22%,在公開數(shù)據(jù)集Cityscapes[12]和BDD100K[13]上的實驗結果超越了原有算法,推理速度提升了23%和17%,分割結果的平均交并比在2個數(shù)據(jù)集上分別提升了0.9%和0.5%。

      2 ENet算法優(yōu)化

      2.1 結構剪裁

      ENet算法的基本卷積結構為bottleneck結構,本文以此為最小裁剪單元。若輸入數(shù)據(jù)尺寸為P×Q×3,有C個類別,則其原始結構與裁剪部分如表1所示,其中加粗部分為裁剪部分。網絡結構名稱為ENet的各個卷積結構,操作類型為此結構的主要卷積類型(空為普通卷積),輸出尺寸是當前卷積結構的輸出尺寸。

      Table 1 ENet structure cutting表1 ENet結構剪裁

      2.2 模塊設計

      本文不再依賴解碼器提取淺層的空間信息,而是將空間信息直接傳至解碼器,通過設計的空間注意力模塊SAM(Spatial Attention Module)與通道注意力模塊CAM(Channel Attention Module)融合淺層的空間信息與深層的語義信息,降低空間信息的傳遞損失;通過對感受野模塊的設計,改善算法的感受野,消除網格效應。

      Figure 1 Structure overview of improved ENet圖1 改進的ENet結構總覽

      改進的ENet算法的模塊結構圖如圖1所示。其中,⊕為通道相加以形成殘差結構;?為相乘加權以實現(xiàn)注意力機制;M(Mean)為通道求平均操作。首先,以bottleneck1.2與bottleneck4.0的輸出作為輸入,2個輸入分別包含了淺層的空間信息與深層的語義信息,通過將輸入信息進行通道串聯(lián)聚合2種信息,將聚合信息嵌入其中的感受野聚合模塊,提升特征圖的感受野并進行初步融合;然后,再利用注意力機制對信息進行通道維與空間維加權,進一步融合聚合信息;最后,對特征圖進行2倍上采樣恢復至輸入圖像尺寸并進行像素分類。

      2.2.1 感受野聚合模塊

      ENet算法在bottleneck2.1~3.7部分循環(huán)了2次擴張率為2,4,8,16的空洞卷積。但是,根據(jù)混合空洞卷積理論HDC(Hybrid Dilated Convolution),這種擴張率的組合會造成網格效應。

      HDC提出了連續(xù)串聯(lián)空洞卷積的3個設計原則:

      (1)多層空洞卷積的擴張率不能有大于1的公約數(shù)。

      (2)連續(xù)的空洞卷積的擴張率應設計成鋸齒狀結構。

      (3)每層空洞卷積的擴張率應滿足式(1):

      Mi=max[Mi+1-2di,Mi+1-2(Mi+1-di),di]

      (1)

      其中,Mi是第i層的最大擴張率(默認Mi=di,di是第i層的擴張率)。通過調整卷積的擴張率滿足上述3個設計原則以避免網格效應。在ENet算法中,每層的擴張率設計如表1中的操作類型所示,除去dilatedn表示擴張率為n的卷積操作外,其余卷積結構的擴張率均為1。

      在bottleneck結構中,1×1卷積不影響感受野,而尺度為5的非對稱卷積對感受野的影響等同于5×5卷積。因此,bottleneck3.2可看做擴張率為1的普通卷積,bottleneck3.3可看作擴張率為4的空洞卷積,不滿足HDC第3個設計原則,會造成網格效應,并且后續(xù)結構會加重這種效應。

      本文采用并聯(lián)結構設計空洞卷積,避免了HDC嚴格的設計要求。將擴張率D為1,2,4,8的空洞卷積進行通道并聯(lián)(取消了擴張率為16的操作),這種擴張率遞增的并聯(lián)結構能夠避免網格效應的產生,緩解感受野過大造成的過擬合現(xiàn)象和減少大擴張率造成的內存占用問題。感受野聚合模塊細節(jié)如圖2所示,若設bottleneck1.2與bottleneck4.0的輸出為x1,x2,則RAM的輸入f可表示為式(2)所示:

      f=conv(cat(x1,x2))

      (2)

      其中,cat是通道串聯(lián)操作,conv是卷積操作。則RAM的輸出FRAM可表示為式(3)所示:

      FRAM=conv[cat(D1,D2,D4,D8)]

      (3)

      其中,Dn表示對f進行擴張率為n的空洞卷積后的輸出。

      Figure 2 Receptive field aggregation module圖2 感受野聚合模塊

      擴張率為1的卷積保證了特征點近距離感受野的完整性,擴張率為2,4,8的空洞卷積并聯(lián)用于提升特征點感受野,并聯(lián)方式不會產生感受野的重疊,并且疊加后的空洞卷積核的權重分布為放射狀,即特征點更加重視近距離信息,更符合信息的處理原則。

      一個特征點分別經過bottleneck3.0~3.7與感受野聚合模塊后,對輸入信息的感受野可視化如圖3所示。其中圖3a為bottleneck的感受野可視化圖,可以看出特征點的感受野有嚴重的網格效應,特征點忽視了近距離信息,卻包含了豐富的遠距離信息。圖3b為感受野聚合模塊的感受野可視化圖,沒有網格效應,包含了更豐富的近處信息,感受野強度由近及遠變化均勻,可減少信息傳遞損失和信息位置偏差。

      Figure 3 Receptive field visualization圖3 感受野可視化

      并聯(lián)結構的感受野增大速率比串聯(lián)結構的感受野增大速率慢,因此由圖2可以看出,感受野聚合模塊最終輸出的感受野不能達到原結構輸出的感受野的大小,但本文認為遠距離的信息并不一定對特征點的正確分類起增益效果,且大于圖像尺寸的感受野不合理,即感受野并不是越大越好,分析如下:

      卷積神經網絡每層感受野大小可使用式(4)計算:

      (4)

      其中,lk是第k層特征的感受野,fk和dk是第k層卷積核的尺寸與擴張率,si是第i層的卷積步長。由于1×1卷積與上采樣不影響感受野,則原算法與改進后算法的感受野變化趨勢如圖4所示。圖4的橫坐標為使感受野增加的有效卷積層數(shù),縱坐標為特征點對應輸入圖像的感受野大小,鏈狀曲線為ENet算法感受野增長曲線,實線為剪裁后算法的感受野增長曲線,點狀曲線顯式了剪裁后算法增加本文設計模塊后的感受野變化。

      Figure 4 Receptive field growth curve圖4 感受野增長曲線

      ENet算法最終感受野大小為1 265,剪裁后的最終感受野大小為625,增添所設計模塊后的感受野大小增長到801。感受野大于輸入圖像尺寸時,會造成過擬合,導致準確率降低,對于常見的圖像尺寸,如512×1024, 720×1280或者1080×1920,改進后算法的感受野更加合適。

      2.2.2 注意力模塊

      注意力模塊包含通道注意力和空間注意力2個部分,本文分別對輸入數(shù)據(jù)進行通道維和空間維的加權,將傳入的空間信息與語義信息進行進一步融合。本文引入通道壓縮理論[10]設計了通道注意力機制。

      通道注意力的實現(xiàn)如圖5所示,輸入為感受野聚合模塊的輸出FRAM。對輸入數(shù)據(jù)每個通道進行全局平均池化GAP(Global Average Pooling)得到特征圖每個通道的平均值,再經過2層全連接FC(Fully Connected)層得到通道維權重,對特征通道維進行加權。

      Figure 5 Channel attention mechanism圖5 通道注意力機制

      通道注意力模塊的輸出FCAM可表示為式(5)所示:

      FCAM=FC2(FC1(GAP(FRAM)))

      (5)

      其中,FC為全連接操作,第1個全連接操作(FC1)壓縮通道降低計算量,激活函數(shù)為RuLU,第2個全連接操作(FC2)恢復通道數(shù)生成對應通道數(shù)的權重,激活函數(shù)為Sigmod。由于通道注意力機制處于解碼部分,特征圖的通道數(shù)僅有128,將第1次全連接操作FC1的通道壓縮率設置為2(原最佳壓縮率為16),取得了計算量與精度上的較好平衡。

      其中全局平均池化操作如式(6)所示:

      (6)

      其中,F(xiàn)RAMx為輸入特征的第x個通道的特征圖,F(xiàn)RAMx(i,j)為輸入特征第x通道在位置(i,j)處的值,通過當前通道特征權重平均值衡量其在所有通道中的重要性,若輸入特征維度為H×W×N,則得到N個特征平均值,之后通過2次全連接層得到N個通道維權重,再對輸入特征的每個通道進行加權突出重要特征通道,實現(xiàn)通道維的注意力機制。

      空間注意力的實現(xiàn)如圖6所示,輸入為通道注意力模塊的輸出FCAM。受通道注意力機制的啟發(fā),本文通過對每個空間位置的所有通道求平均獲取對應空間位置的特征強度,利用空間的特征強度設計了空間注意力機制。首先,對輸入特征矩陣的每個位置的所有通道求平均,獲得包含每個空間位置均值的單通道矩陣,再通過2次3×3卷積層得到空間權重矩陣,然后,將空間權重矩陣在通道維進行復制使得特征維度與輸入特征維度對齊,最后利用權重矩陣對輸入特征進行加權。

      Figure 6 Spatial attention mechanism圖6 空間注意力機制

      則空間注意力模塊的輸出FSAM可表示為式(7)所示:

      FSAM=conv(conv(M(FCAM(i,j))))

      (7)

      (8)

      其中,F(xiàn)CAMk(i,j)為輸入特征第k個通道在位置(i,j)處的值,通過對當前位置所有通道求平均獲得此位置空間均值,之后通過2次3×3卷積獲得對應空間位置權重,激活函數(shù)均為ReLU。若輸入特征維度為H×W×N,則得到維度為H×W×1的空間權重圖,最后進行通道復制,將其維度擴充到H×W×N,與輸入特征進行加權突出重要特征空間位置,實現(xiàn)空間維的注意力機制。

      3 實驗

      在同一軟件框架與硬件水平下(Keras深度學習框架;AMD Ryzen 5 3600X處理器;GTX1080ti顯卡)和大型公開數(shù)據(jù)集Cityscapes和BDD100K上進行實驗,以驗證本文提出的結構剪裁方法和輕量級注意力機制的正確性(所有數(shù)據(jù)進行2倍縮小,未進行數(shù)據(jù)增強)。

      3.1 參數(shù)分析

      對ENet、裁剪后的ENet C-ENet和及C-ENet+AM+RAM進行浮點量與參數(shù)量統(tǒng)計,結果如表2與表3所示。

      Table 2 Calculation volume statistics表2 計算量統(tǒng)計 Flops

      Table 3 Parameter statistics表3 參數(shù)統(tǒng)計

      從表2中可以看出,浮點量的差距主要產生在Mul節(jié)點和Add節(jié)點,分別對應卷積計算中的乘法和加法運算。原算法浮點計算量為745 451,參數(shù)量為3.7×106B。通過算法剪裁后,計算量與參數(shù)量降至412 078與2.1×106B,精簡算法并增加本文設計模塊后計算量與參數(shù)量為586 607與2.9×106B。

      改進后的算法計算量降低了21.3%,參數(shù)量降低了21.6%。

      3.2 消融實驗

      對算法與各模塊在Cityscapes與BDD100K上進行消融實驗,使用平均交并比MIoU(Mean Intersection over Union)與每秒分割圖像數(shù)FPS(Frames Per Second)作為評價指標,結果如表4和表5所示。

      Table 4 Performance of algorithms on Cityscapes表4 算法在Cityscapes上的表現(xiàn)

      Table 5 Performance of algorithms on BDD100K表5 算法在BDD100K上的表現(xiàn)

      圖7a和圖7b為本文改進后算法(C-ENet+AM+RAM)與原算法ENet在Cityscapes與BDD100K數(shù)據(jù)集上部分分割結果可視化,圖7中從左至右、從上至下分別為原圖、標簽、ENet分割結果和本文算法分割結果。

      Figure 7 Visualization of partial segmentation results of ours and ENet on Cityscapes and BDD100K datasets圖7 本文算法和ENet在Cityscapes 與BDD100K上的部分分割結果可視化

      3.3 對比實驗

      實驗還將本文算法(C-ENet+AM+RAM)與當今主流語義分割算法進行了實驗對比。具體結果如表6所示(最優(yōu)結果使用方框黑體標注,次優(yōu)結果使用黑體標注)。

      表6中,F(xiàn)CN8S、UNet和SegNet都是經典的語義分割算法。FCN8S最大進行了8倍下采樣,采用跨通道相加的方法增強信息傳遞性;UNet精度較高,常用于醫(yī)學圖像處理,算法結構為U型結構,對相同尺度的編解碼使用加法進行信息融合;SegNet算法的結構類似FCN,不同之處在于編碼部分采用了VGG-16結構的前13層,解碼部分的上采樣操作使用了空間的索引信息(在編碼時的pooling操作記錄了相應的索引信息)。

      Table 6 Result comparisons of various algorithms表6 各算法實驗對比結果

      在Keras(TensorFlow)深度學習框架和GTX1080ti顯卡計算下,各算法在Cityscapes上的性能對比如圖8所示。

      Figure 8 Performance comparison of various algorithms圖8 各算法性能對比

      圖8中,縱坐標為分割精度指標——平均交并比(MIoU),橫坐標為每秒鐘分割圖像的數(shù)量(FPS),坐標軸上的實心圓對應各個算法,實心圓的直徑大小與算法參數(shù)量成正比??梢姳疚乃惴ㄔ诒姸嗨惴ㄖ?,參數(shù)量最少,推理速度最快,并且精度達到了第2的高水平(越靠近右上方性能越好)。

      4 結束語

      本文通過對輕量級語義分割算法ENet進行改進,提出了一種優(yōu)化基于編碼-解碼結構的語義分割算法的思路,通過注意力機制與空洞卷積理論,創(chuàng)新性地設計了2種計算復雜度較小的網絡模塊,提升了算法的精度與推理速度。本文所提出的算法對于需要實時分割的應用場景,如無人駕駛場景有較大價值。

      猜你喜歡
      空洞注意力語義
      讓注意力“飛”回來
      語言與語義
      “揚眼”APP:讓注意力“變現(xiàn)”
      傳媒評論(2017年3期)2017-06-13 09:18:10
      空洞的眼神
      A Beautiful Way Of Looking At Things
      “上”與“下”語義的不對稱性及其認知闡釋
      用事實說話勝過空洞的說教——以教育類報道為例
      新聞傳播(2015年20期)2015-07-18 11:06:46
      認知范疇模糊與語義模糊
      臭氧層空洞也是幫兇
      世界科學(2013年11期)2013-03-11 18:09:47
      語義分析與漢俄副名組合
      外語學刊(2011年1期)2011-01-22 03:38:33
      闸北区| 阿拉善盟| 成武县| 赤峰市| 临夏县| 托克托县| 海兴县| 裕民县| 浦东新区| 屯门区| 乌鲁木齐县| 普兰县| 松原市| 丰城市| 洛阳市| 瑞安市| 巴马| 游戏| 丽水市| 南昌市| 西乌珠穆沁旗| 民权县| 拉孜县| 红河县| 太仓市| 错那县| 白河县| 彰武县| 丹江口市| 日照市| 定襄县| 墨玉县| 辰溪县| 邻水| 临漳县| 青冈县| 达拉特旗| 平果县| 肇东市| 双柏县| 渭源县|