劉致驛,孫韶媛,任正云,劉訓華,卜德飛
(1.東華大學 信息科學與技術學院,上海 201620;2.東華大學 數(shù)字化紡織服裝技術教育部工程研究中心,上海 201620)
圖像語義分割將圖像中每一個像素分類到其所屬的語義類別,其在無人車應用領域對場景理解具有重要意義。目前的語義分割算法多針對于白天的可見光圖像,針對夜間場景的語義分割研究較少。夜視紅外圖像由紅外熱像儀獲取,具有無色彩、紋理簡單、對比度和信噪比低的特點,因此分割難度較大[1]。
隨著完全卷積網(wǎng)絡(fully convolutional networks,FCN)[2]的提出,形成了大量語義分割的網(wǎng)絡模型??斩淳矸e(dilated convolutions)[3]允許網(wǎng)絡在擴大感受野的同時不對原特征圖降采樣,保留空間信息。編碼器-解碼器架構(Encode-Decode)旨在將Encode 模塊的信息加入Decode 模塊中,引入上下文信息(如SegNet[4]、U-Net[5]、RefineNet[6]等)??臻g金字塔模塊實現(xiàn)了擁有不同感受野的特征圖的提取和融合,引入多尺度信息(如PSPNet[7]、DeepLabv2[8]、DeepLabv3[7]等)。條件隨機場(conditional random field, CRF)預測更為精確的目標邊界信息(如DeepLabv1[7]、DeepLabv2 等)。近期的DeepLabv3+[9]使用基于深度分離卷積(Depthwise convolutions)的Xception[10]作為基網(wǎng)絡,并引入空洞卷積空間金字塔模塊(atrous spatial pyramid Pooling, ASPP),同時加入簡單高效的Decode 模塊,達到了目前最先進的分割效果。
本文以DeepLabv3+網(wǎng)絡為基礎,提出了一種基于改進DeepLabv3+網(wǎng)絡的無人車夜間紅外圖像語義分割算法??紤]到自動駕駛場景中的對象往往顯示出非常大的尺度變化,通過重構DeepLabv3+中ASPP 模塊,以密集連接的方式編碼多尺度特征信息,獲得更大和更密集的特征尺度范圍,并控制其參數(shù)量,使得改進后的網(wǎng)絡在速度上與DeepLabv3+基本保持一致。此外,本文在Decode 模塊中加入了更多的上下文信息來改善分割的結果。
DeepLabv3+將DeepLabv3 作為網(wǎng)絡的Encode模塊,其包括基網(wǎng)絡的特征提取、級聯(lián)和并聯(lián)的具有不同空洞速率的空洞卷積層。在級聯(lián)模式下,上層的空洞卷積接受下層的空洞卷積的結果,因此能產生更大的感受野。并聯(lián)模式也稱為ASPP模塊,它接受基網(wǎng)絡提取的高級特征圖作為輸入,經過具有不同空洞速率的空洞卷積,最后將結果融合,達到覆蓋多尺度感受野的目的。假設表示卷積核大小為k、空洞速率為r的卷積操作,則DeepLabv3+中的ASPP 模塊可表示為
同時DeepLabv3+實現(xiàn)了對基網(wǎng)絡的更新,將Xception 用于語義分割,提升了網(wǎng)絡性能;另一方面,DeepLabv3+引入了簡單高效的譯碼器模塊,將其中一層的Encode 模塊的特征圖拼接到對應大小的上采樣結果中,進一步改善了分割效果。
DeepLabv3+網(wǎng)絡結構如圖1 所示?;W(wǎng)絡和ASPP 模塊共同構成網(wǎng)絡的Encode 模塊,輸入任意大小的圖像,可得到對應的高級特征圖,再通過雙線性插值上采樣與Encode 模塊其中一層的低級特征圖進行融合構成網(wǎng)絡的Decode 模塊,最后上采樣回原圖大小,經過Softmax 分類層得到對應的分割圖。值得一提的是,DeepLabv3+將改進后的Xception 作為基網(wǎng)絡,并在基網(wǎng)絡中實現(xiàn)了串行的ASPP 模塊,同時通過空洞卷積控制降采樣系數(shù),提升了網(wǎng)絡的性能。整個網(wǎng)絡采用逐像素的交叉熵損失作為損失函數(shù),對于每個像素x,Softmax 分類器的輸出為
其中:x為二維平面上的像素位置;K為總類別數(shù);αk(x)表示Softmax 輸出的像素x對應的第k個通道的值;pk(x)表示像素x屬于第k類的概率。于是整個網(wǎng)絡的損失可表示為
其中:wl為類別l的損失權重;pl(x)為像素x屬于真實類別l的概率。
圖1 DeepLabv3+網(wǎng)絡結構Fig.1 Structure diagram of DeepLabv3+ network
本文以DeepLabv3+網(wǎng)絡結構為基礎,通過密集連接的方式重構了網(wǎng)絡ASPP 模塊,同時借鑒UNet 等經典Encode-Decode 結構,將Encode 模塊的多層結果特征圖拼接到Decode 模塊中。整體網(wǎng)絡結構圖如圖2 所示。
圖2 改進DeepLabv3+網(wǎng)絡結構圖Fig.2 Structure diagram of improved DeepLabv3+ network
1.2.1 密集連接的ASPP
受DenseNet 的啟發(fā),本文重構了DeepLabv3+的ASPP 模塊,以密集連接的方式獲取更密集的特征金字塔和更大的感受野,更密集的特征金字塔主要體現(xiàn)在更密集的感受野范圍和更密集的像素提取兩個方面。
空洞卷積首次在DeepLabv2 引入,用來在不改變特征圖分辨率的同時擴大感受野。在一維情況下,對于輸出信號y和輸入信號x,空洞卷積的操作可描述如下:
式中:r表示空洞速率;w(k)是濾波器第k個位置的參數(shù);K表示濾波器的尺寸??斩淳矸e相當于在卷積核的兩個值之間插入(r-1)個零,因此它擴大了感受野,且r值越大,感受野越大。對于一個卷積核大小為k、空洞速率為r的空洞卷積,它所能提供的感受野大小為
而兩層級聯(lián)的空洞卷積層可提供的感受野大小為
式中:R1、R2分別為相鄰兩層空洞卷積所提供的感受野,因此密集連接的ASPP 所提供的感受野范圍如圖3 所示。
圖3 密集連接ASPP 感受野范圍Fig.3 Receptive field range of densely connected ASPP
另一方面,與DeepLabv3+中ASPP 模塊相比,密集連接的ASPP 在計算時可以得到更多的像素。由于空洞的存在,空洞卷積比起標準卷積像素采樣更為稀疏。圖4(a)顯示了一維空洞卷積層,其空洞速率為6,感受野為13。然而,在這個大的卷積核中,只有3 個像素被采樣來進行計算,這種現(xiàn)象在二維情況下會變得更糟,雖然獲得了很大的感受野,但在計算過程中卻丟失了大量的信息。
在密集連接ASPP 中,空洞速率逐層增加,上層卷積利用下層的特征使像素采樣更密集。圖4(b)說明了這個過程:空洞速率為3 的卷積層被置于空洞速率為6 的卷積層之下,這樣對于空洞速率為6 的卷積層,有7 個像素參與計算,其密度比原來的3 個像素高。在二維情況下,49 個像素參與計算,而在單層的空洞卷積中,只有9 個像素參與計算,如圖4(c)所示。因此,通過密集連接的方式,具有較大空洞速率的卷積層可以從較小空洞速率的卷積層中獲得幫助,并以更密集的方式對像素進行采樣。
圖4 空洞卷積采樣Fig.4 Sampling of cavity convolutions
密集連接的ASPP 的另一個優(yōu)勢是能提供更大的感受野。以空洞速率(6, 12, 18)為例,遵循(6)式,假設表示卷積核大小為k、空洞速率為r的卷積所能提供的感受野,那么普通ASPP 的最大感受野可表示為
而密集連接的ASPP 的最大感受野為
盡管密集連接的ASPP 能獲得更密集的特征金字塔和更大的感受野,但是它必然會伴隨著網(wǎng)絡參數(shù)量的增加,這對實時性非常不利。因此,本文在密集連接的ASPP 中的每個空洞卷積之前使用1×1 的卷積將特征維度降為輸入特征圖的一半來降低網(wǎng)絡參數(shù)量,同時1×1 卷積也能為網(wǎng)絡增加更多的非線性因素。
假設每個空洞卷積的輸出特征維度為n,密集連接的ASPP 模塊的輸入特征維度為c0,cl表示第l個空洞卷積之前1×1 卷積的輸入特征圖的特征維度,則有
本文使用Xception-65 作為基網(wǎng)絡,其輸出的高級特征圖的特征維度c0為2 048,ASPP 模塊輸出特征圖的特征維度n為256,因此,本文ASPP 模塊的參數(shù)量可計算如下:式中:K為空洞卷積的卷積核的大?。籐為空洞卷積的總個數(shù)。在DeepLabv3+中,ASPP 模塊的參數(shù)量為
由此可見,本文重構的ASPP 模塊在獲得更密集的特征金字塔和更大的感受野的同時,合理地控制網(wǎng)絡參數(shù)與DeepLabv3+中的ASPP 模塊保持一致。
1.2.2 Decode
對于Decode 模塊,本文在DeepLabv3+基礎上引入了更多層的來自Encode 模塊的低級特征圖,如圖2 所示。具體來說,本文使用基網(wǎng)絡中降采樣系數(shù)分別為1/4、1/8 和1/16 的低級特征圖,先通過兩層額外的3×3 卷積提取特征和一層1×1 卷積將特征維度降為21,再引入Decode 模塊,降維的目的是因為我們希望在分割時網(wǎng)絡的高級特征圖能夠對分割的結果起到更大的作用。
本文算法基于Tensorflow 框架,實驗硬件配置為處理器Intel i5-6600,內存8 GB,顯卡NVIDIA GTX1070,操作系統(tǒng)Ubuntu16.04。實驗數(shù)據(jù)來自車載紅外熱像儀采集的視頻,通過對視頻抽幀篩選出900 張圖像作為網(wǎng)絡的訓練集和300 張圖像作為測試集,圖片尺寸為480×360 像素。使用LabelMe工具標注圖像,得到對應的標簽圖。本文數(shù)據(jù)集標有天空、道路、草地、樹木、建筑、標志物、車輛和行人共8 類。
將訓練集及對應的標簽圖生成為適合Tensorflow輸入的Tfrecord 文件,輸入改進DeepLabv3+網(wǎng)絡進行迭代訓練,模型收斂后輸入測試集得到語義分割的結果,實驗流程圖如圖5 所示。
圖5 實驗流程圖Fig.5 Flow chart of experiment
語義分割評價指標通常有3 種。假設nc為總類別數(shù),nij表示實際類別為i、被預測類別為j的像素數(shù)量,為類i的像素總數(shù),為總像素數(shù)量,則有
2)類平均像素精度(mean pixel accuracy, MPA)為;
3)平均交并比(mean intersection over union,MIoU)為
其中MIoU 為真實值與預測值的交集比并集,通常為語義分割最終的評價標準。
2.3.1 ASPP 模塊實驗
為了驗證密集連接ASPP 模塊的效果,本文通過在原DeepLabv3+的基礎上構建具有不同空洞速率的密集連接ASPP 模塊對紅外數(shù)據(jù)集進行分割,結果見表1??梢钥闯觯M管當使用密集連接ASPP(6, 12, 18, 24)時分割精度最佳,但其在分割一幅圖像的時間上比原網(wǎng)絡多出了近1/3 的時間,因此本文選用密集連接ASPP(6, 12, 18)。
表1 ASPP 模塊實驗結果Table 1 Results of ASPP
2.3.2 Decode 模塊實驗
表2 顯示了以密集連接ASPP(6,12,18)為基礎,Decode 模塊中不同低級特征圖加入時對分割結果的影響。當選用降采樣系數(shù)為1/4、1/8、1/16的特征圖均以48 維加入到Decode 模塊中時,分割精度反而大幅下降,這是因為大量的低級特征圖的加入大大減少了ASPP 模塊輸出的高級特征圖的占比,因此本文選用降采樣系數(shù)為1/4、1/8、1/16 的特征圖并控制其降維通道數(shù)為21 維。
表2 Decode 模塊實驗結果Table 2 Results of decode
2.3.3 紅外數(shù)據(jù)集實驗結果與分析
部分實驗結果如圖6 所示,盡管由于人工標記的粗糙,真實標簽里存在少量漏標或錯標的像素,但是本文算法仍能對圖像實現(xiàn)較為準確的分割,具有良好的魯棒性。圖7 顯示了本文算法與DeepLabv3+算法和同類型網(wǎng)絡PSPNet 結果的比較,可以看出本文算法在各個類別都有不同程度的提升。將測試數(shù)據(jù)輸入訓練好的模型,并計算得到PA(像素精度)、MPA(均像素精度)、MIoU(均交并比)和單幅圖像預測時間這4 個評價指標,結果見表3??梢钥闯?,本文的算法較DeepLabv3+在速度上基本持平,但預測效果更好。表4 顯示了每個類別的像素精度比較,盡管本文算法擁有更好的結果,但它們的共同問題是對于數(shù)據(jù)集內本身占比較少的類別,預測的精度不高。據(jù)統(tǒng)計,行人僅占1.65%,標志物僅占1.63%,因此后續(xù)工作除了進一步改善標記質量之外,還需增加這兩類的數(shù)據(jù)進行訓練。
圖6 本文算法結果Fig.6 Results of proposed algorithm
圖7 算法結果比較Fig.7 Comparisons of algorithmic results
表3 評價指標結果Table 3 Results of evaluation indicators
表4 各類像素精度比較Table 4 Comparison of different kinds of pixel accuracy
2.3.4 可見光數(shù)據(jù)集實驗結果與分析
選用來自PASCAL VOC 2012 的可見光數(shù)據(jù)集驗證本文算法在白天場景下的分割效果。數(shù)據(jù)集共2 913 張圖像,其中訓練集1 464 張,測試集1 449張,共20 類。同時加入PSPNet 和DeepLabv3+的結果進行比較,表5 顯示了這3 種算法的指標對比,部分實驗結果對比如圖8 所示。由此可見,本文算法在白天場景也能實現(xiàn)較好的分割效果。
表5 評價指標結果Table 5 Results of evaluation indicators
圖8 算法結果比較Fig.8 Comparisons of Algorithmic Results
本文基于無人車夜視場景,提出了改進的DeepLabv3+網(wǎng)絡,實現(xiàn)了對該場景下獲取的紅外圖像的語義分割。根據(jù)無人車夜視場景下目標尺度范圍較大的特點,引入密集連接的ASPP 模塊實現(xiàn)更密集和更大的多尺度信息的編碼并控制其參數(shù)量,同時引入多層低級特征圖與Encode 模塊輸出的高級特征圖進行融合。該方法在不犧牲速度的情況下,能達到比DeepLabv3+更好的分割效果,具有良好的實時性和準確性。