任東東 , 李金寶 , 趙俊一
(1.黑龍江大學(xué) 計算機科學(xué)技術(shù)學(xué)院, 哈爾濱 150080; 2.齊魯工業(yè)大學(xué)(山東省科學(xué)院) 山東省人工智能研究院,濟南 250014; 3.黑龍江大學(xué) 電子工程學(xué)院, 哈爾濱 150080)
圖像語義分割是圖像處理和計算機視覺領(lǐng)域一項重要且富有挑戰(zhàn)性的任務(wù),其目的是為輸入圖像預(yù)測一個密集的標(biāo)簽映射,從而為每個像素生成一個唯一的類別標(biāo)簽。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)的方法在語義分割方面取得了顯著成果[1-3],并在自動駕駛和視頻監(jiān)控等領(lǐng)域顯示出巨大的應(yīng)用潛力。 然而,這些應(yīng)用系統(tǒng)在面臨惡劣的天氣環(huán)境時,由于采集到的圖像質(zhì)量較差,其分割準(zhǔn)確率會受到較大影響[4]。
在各種惡劣的天氣環(huán)境中,霧是一種較為常見的大氣現(xiàn)象,它是由空氣中的水汽凝結(jié)物、灰塵、煙霧等微小的懸浮顆粒產(chǎn)生的。由于光線在傳播過程中與大量懸浮顆粒發(fā)生交互作用,光能被重新分布,使得霧天圖像通常呈現(xiàn)模糊泛白、色彩飽和度下降、觀測目標(biāo)嚴重退化的現(xiàn)象,這將導(dǎo)致基于逐像素分類的語義分割任務(wù)性能急劇下降。因此,在霧天,尤其是大霧的天氣條件下,如何準(zhǔn)確、快速地分割圖像對于室外應(yīng)用系統(tǒng)來說十分關(guān)鍵[5-7]。
預(yù)處理法對有霧圖像提前進行去霧處理,使圖像恢復(fù)到無霧狀態(tài),不改變原始的語義分割模型。然而,這種方法主要存在以下兩方面問題:(1) 通常是最小化有霧圖像與無霧圖像之間的均方誤差,容易丟失高頻的圖像細節(jié)信息,在大霧情況下,該方法可能會對于一些紋理邊界豐富的區(qū)域造成過渡平滑并產(chǎn)生偽影,嚴重影響邊界處的語義分割精度; (2) 預(yù)處理方法需要對有霧圖像進行端到端的目標(biāo)映射,給語義分割任務(wù)增加了額外的成本和計算量,限制了在低功耗、高實時性系統(tǒng)上的部署和應(yīng)用[8]。
特定訓(xùn)練法通過在大規(guī)模分割數(shù)據(jù)集上添加一定程度的噪聲和合成霧來提高分割模型的魯棒性。 然而,霧噪聲會降低分割模型的特征提取能力,尤其在重霧情況下,圖像整體泛白且邊界模糊。這種方法不但限制了網(wǎng)絡(luò)的特征提取能力,并且容易使分割模型在訓(xùn)練過程中發(fā)生梯度消散。
針對上述問題,本文提出了一種多任務(wù)融合注意力網(wǎng)絡(luò)(MFANet: Multi-task fusion attention network)。如圖1所示,MFANet將圖像去霧與語義分割任務(wù)融合到一個網(wǎng)絡(luò)框架中,提高了模型分割魯棒性,避免了任務(wù)級聯(lián)處理的復(fù)雜性,降低了模型的存儲和計算成本。
圖1 MFANet整體框架結(jié)構(gòu)Fig.1 Integral frame construction of MFANet
MFANet以編碼解碼器網(wǎng)絡(luò)為基礎(chǔ),包含去霧編碼模塊,分割解碼模塊和特征轉(zhuǎn)移模塊三部分,具體貢獻: 1) 為避免深層網(wǎng)絡(luò)中高頻細節(jié)信息的丟失,去霧編碼模塊采用跨尺度殘差連接來增強特征信息的流動,并使用卷積下采樣來彌補由于池化下采樣造成的信息損失,使網(wǎng)絡(luò)在有效去霧的同時避免了細節(jié)特征的丟失; 2) 分割解碼模塊通過連續(xù)上采樣恢復(fù)圖像的特征分辨率,通過多尺度特征融合增強不同分辨率的特征利用率,并使用注意力機制進一步突出目標(biāo)特征,增強了分割結(jié)果的準(zhǔn)確性; 3) 特征轉(zhuǎn)移模塊以跳躍連接的形式連接去霧編碼模塊和分割解碼模塊,既保證了兩個不同任務(wù)模塊間的特征過渡,又使去霧結(jié)果更加適用于圖像語義分割。
近年來,端到端CNNs被設(shè)計成直接從輸入霧圖像中學(xué)習(xí)干凈圖像以進行去霧。 Li等將VGG特征和L1正則化梯度引入條件生成對抗網(wǎng)絡(luò)(cGAN)進行無霧圖像重建[9]。Ren等設(shè)計了一個編碼-解碼器網(wǎng)絡(luò)(GFN),從三個由不同物理模型生成的霧圖像中學(xué)習(xí)置信度圖,并將它們?nèi)诤系阶罱K的去霧結(jié)果中[10]。Liu等將語義分割任務(wù)中的GridNet網(wǎng)絡(luò)引入到圖像去霧任務(wù)上,提出了一個GridDehazeNet用于端到端圖像去霧[11]。Qu等提出了一個增強型Pix2Pix去霧網(wǎng)絡(luò),通過分階段的去霧模塊來增強去霧效果[12]。Deng等提出了一種深度多模型融合網(wǎng)絡(luò),將多個物理模型得到的結(jié)果融合到不同的層中,大幅提高了圖像去霧的性能[13]。上述方法在圖像去霧任務(wù)上效果顯著,然而,在去霧過程中,圖像的高級語義信息并未得到充分考慮,去霧結(jié)果也不能完全適用于圖像語義分割。為了克服這一缺點,本研究將圖像去霧與語義分割算法融合到統(tǒng)一的網(wǎng)絡(luò)框架中,通過圖像重建損失、分割交叉熵損失共同優(yōu)化去霧模塊。在圖像語義信息的約束下,去霧網(wǎng)絡(luò)產(chǎn)生了更加突出的語義特征,進一步提高了分割的精確度和魯棒性。
傳統(tǒng)的語義分割方法通過使用支持向量機(Support vector machines, SVM)等手工先驗分類器實現(xiàn)逐像素分割。 Brian等使用超像素作為類分割和像素定位方法的基本單元,根據(jù)每個超像素中找到的局部特征直方圖構(gòu)造分類器,并通過在每個超像素的鄰域內(nèi)聚合直方圖來規(guī)范分類器,然后使用條件隨機場進一步細化分割結(jié)果[14]。Gabriel和Florent提出了一種簡單的語義分割方法,通過強制執(zhí)行局部一致性來指導(dǎo)圖像低層次分割,并使用全局圖像分類器增強圖像級別的一致性[15]。Shotton等通過對圖像紋理、布局和上下文信息的聯(lián)合建模來實現(xiàn)多類對象的識別和分割[16]。
隨著深度學(xué)習(xí)技術(shù)的進步和大規(guī)模數(shù)據(jù)集的開發(fā),語義分割任務(wù)得到了突飛猛進的發(fā)展。Vijay等提出了一個新穎的深度分割網(wǎng)絡(luò)模型,簡稱SegNet[1]。該網(wǎng)絡(luò)由一個編碼器網(wǎng)絡(luò)、一個相應(yīng)的解碼器網(wǎng)絡(luò)和一個像素級的分類層組成,具有高效的存儲內(nèi)存和計算時間。Long等通過融合深層和淺層的特征信息[17],將分類網(wǎng)絡(luò)(AlexNet[18]、VGG[19]和GoogLeNet[20]) 改造為完全卷積網(wǎng)絡(luò),并微調(diào)最終的表示形式,實現(xiàn)分割任務(wù)的要求。Chen等通過使用擴張卷積來獲取上下文信息,并提出了一種基于空間特征金字塔的上下文信息聚合語義分割網(wǎng)絡(luò)[21]。Zhao等提出了一種圖像級聯(lián)網(wǎng)絡(luò)(ICNet),通過處理多分辨率的圖像,減少像素級標(biāo)簽預(yù)測產(chǎn)生的高計算量,通過級聯(lián)特征融合實現(xiàn)高質(zhì)量的語義分割結(jié)果[3]。Jiao等提出了一種專門用于語義分割的知識蒸餾方法,提高了整體跨距大的緊湊FCNs的性能[22]。此外,為了解決學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)之間特征不一致的問題,通過利用預(yù)先訓(xùn)練好的自動編碼器轉(zhuǎn)移潛在域的特征相似度,通過計算整個圖像的非局部相互作用來獲取特征間長期依賴關(guān)系。然而,上述語義分割算法使用的數(shù)據(jù)集大都是在亮度適當(dāng)、輪廓清晰和色彩均衡條件下收集的,當(dāng)在霧天環(huán)境,特別是大霧環(huán)境下測試時,其準(zhǔn)確率會大幅降低。因此,本文使用有霧情況下的圖像數(shù)據(jù)集,通過去霧編碼模塊和特征轉(zhuǎn)移模塊,實現(xiàn)有霧特征到無霧特征的轉(zhuǎn)移,增強了算法對有霧天氣的適應(yīng)性和魯棒性。
多任務(wù)學(xué)習(xí)被廣泛應(yīng)用于計算機視覺問題中。Teichman等提出了一種使用統(tǒng)一架構(gòu)進行聯(lián)合分類、檢測和分割的方法,其中編碼器在三種任務(wù)中共享[23]。Kokkinos提出了一個UberNet網(wǎng)絡(luò),該網(wǎng)絡(luò)通過聯(lián)合處理進行邊緣檢測、角點估計、顯著性估計、語義分割、人體部分分割、語義邊界檢測和目標(biāo)檢測等低、中、高級的任務(wù)[24]。Eigen等使用多尺度CNN來處理深度預(yù)測、表面法線估計和語義標(biāo)記三種不同的計算機視覺任務(wù)[25]。Xu等提出了一種多任務(wù)引導(dǎo)的預(yù)測蒸餾網(wǎng)PAD-net,從低級特征到高級特征的轉(zhuǎn)換,將轉(zhuǎn)換特征作為最終任務(wù)的多模態(tài)輸入[26]。目前,多任務(wù)學(xué)習(xí)都是提取聯(lián)合特征,然后進行任務(wù)分類,最后實現(xiàn)多任務(wù)的目標(biāo),屬于并行處理機制。本文以語義分割作為唯一的任務(wù)目標(biāo),通過去霧和分割兩項任務(wù)順序處理,實現(xiàn)任務(wù)間的影響和相互促進。
為提高霧天語義分割的準(zhǔn)確率和魯棒性,降低語義分割模型的存儲和計算成本,設(shè)計了一種圖像去霧和語義分割任務(wù)融合的深度學(xué)習(xí)模型,如圖1所示。MFANet以編碼解碼器網(wǎng)絡(luò)為基礎(chǔ),將編碼模塊和解碼模塊分別應(yīng)用于圖像去霧和語義分割,通過特征轉(zhuǎn)移模塊連接編碼和解碼器。
Dehazing encoder module為去霧編碼模塊如圖1 所示,由一個4層的空間金字塔構(gòu)成,通過對輸入圖像進行連續(xù)的卷積和下采樣生成不同分辨率的特征圖。為降低參數(shù)和計算復(fù)雜度,前三層采用兩次卷積操作,最后一層采用一次卷積操作,每一個卷積操作后都伴有一個Relu激活層,卷積核大小為3×3,步長為1,通道數(shù)量分別為32、64、128和256。每層的下采樣方式為最大池化,訓(xùn)練階段輸入圖像的尺寸為256×256,各層的特征分辨率分別為256×256、128×128、64×64和32×32。隨著網(wǎng)絡(luò)深度的增加和池化下采樣次數(shù)的增多,網(wǎng)絡(luò)的高頻特征容易丟失。因此,去霧編碼模塊采用跨尺度殘差連接來恢復(fù)丟失的細節(jié)信息,跨越的尺度層采用卷積核大小為3×3、步長為2的卷積操作對齊不同分辨率的特征圖,并以通道疊加的方式進行特征融合??绯叨葰埐钸B接可以表示為:
xl+1=p(xl)+f(xl)
(1)
式中:l表示不同分辨率的特征層;p(·)為卷積核大小為3×3、步長為2的卷積下采樣;f(·)由兩個步長為1的卷積和一個最大池化構(gòu)成。
分割解碼模塊與去霧模塊相對應(yīng),分割解碼模塊通過連續(xù)的卷積和反卷積逐步上采樣特征圖,每一個尺度的特征均是由上一尺度的反卷積和對應(yīng)的編碼器轉(zhuǎn)移特征層融合組成,并通過卷積和反卷積操作傳輸?shù)礁叻直媛蕦印?在分割解碼器模塊中,最低層采用一次卷積操作,后三層采用兩次卷積操作,每一個卷積操作后都伴有一次Relu激活層,卷積核大小為3×3,步長為1,通道數(shù)量分別為256、128、64和32。每層的上采樣方式為反卷積,訓(xùn)練階段輸出圖像的尺寸為256×256,各層的特征分辨率分別為32×32、64×64、128×128和256×256。在解碼器模塊中,低分辨率的特征圖具有更大的感受視野和全局信息,高分辨率的特征圖具有更多的細節(jié)信息和局部特征。為了使分割算法適應(yīng)不同分辨率圖像,并提高不同尺度目標(biāo)分割的精度,在輸出層采用多尺度融合方法進行特征匯集,具體過程如下:
S=cat(L1,L2,L3,L4)
(2)
式中:S為融合后特征圖;cat(·)為特征圖級聯(lián)疊加;Li為不同層的輸出特征圖。為對齊低分辨率特征到輸出分辨率,采用反卷積方式進行上采樣。
為重點關(guān)注有利于分割的特征信息,弱化噪聲等無關(guān)信息,各尺度特征融合后采用注意力機制進行非線性的特征通道篩選。注意力模塊以SE-block[27]為基礎(chǔ),主要分為通道壓縮和特征激勵兩個階段。利用特征圖的通道間關(guān)系來產(chǎn)生通道注意力圖,通道注意力主要關(guān)注各通道全局的突出特征。首先,為了有效匯集空間信息,計算各通道的非線性關(guān)系,壓縮了輸入要素圖的空間維度,對每個通道實施全局平均池化操作,具體計算公式為:
(3)
式中:Cr表示第r個通道;XCr(i,j)代表第r通道的第i行第j列元素。
激勵階段是由2個全連接層(FC)和一個Relu激活函數(shù)組成,然后再由門控函數(shù)Sigmoid控制輸出,兩次全連接采用中間層8倍降維,即FC(480,60)-FC(60,992)。激勵過程可表示為:
MC(F)=σ(W1δ(W2ZCr))
(4)
式中:δ(·)表示Relu激活函數(shù);σ(·)表示Sigmoid函數(shù)。
MFANet(Feature transfer moduleke)共包含4個特征轉(zhuǎn)移模塊,每一個特征轉(zhuǎn)移模塊都連接一對相應(yīng)的去霧編碼層和分割解碼層,輸入特征層為去霧編碼層,輸出層傳輸?shù)椒指罱獯a層。特征轉(zhuǎn)移模塊的詳細結(jié)構(gòu)如圖2所示,分別由卷積、Relu激活、卷積、Sigmoid、逐像素相乘和逐像素相加組成,其中2個卷積層的卷積核大小為3×3,步長為1。
圖2 特征轉(zhuǎn)移模塊框架結(jié)構(gòu)Fig.2 Architecture of feature transfer module
語義分割的目標(biāo)函數(shù)是分割損失,并不能對輸入的霧圖像進行明確的霧噪聲去除建模。并且隨著網(wǎng)絡(luò)的加深,圖像的高頻紋理特征易出現(xiàn)丟失,不利于精確分割其邊緣細節(jié)。 因此,在每個特征轉(zhuǎn)移模塊,加入了一個重建損失來強制約束去霧編碼階段的特征結(jié)果更接近無霧圖。使用均方誤差MSE作為重建損失,可以表示為:
Lmse=‖XT-Xgt‖2
(5)
式中:XT表示去霧后圖像;Xgt表示清晰的目標(biāo)圖像。
對于最終的分割輸出,使用預(yù)測的偽像素標(biāo)簽和標(biāo)注標(biāo)簽之間的交叉熵作為分割損失。分割損失可以表示為:
(6)
使用Cityscapes數(shù)據(jù)集[28]作為原始圖像數(shù)據(jù)。Cityscapes是一個由車載相機采集的真實城市道路圖像數(shù)據(jù)集,拍攝范圍覆蓋了德國及其附近國家的50個城市。該數(shù)據(jù)集共包含5 000張分割標(biāo)注好的圖像樣本,其中訓(xùn)練集2 975張,驗證集500張,測試集1 525張。所有訓(xùn)練、驗證和測試圖像的每個像素都進行了精準(zhǔn)的類別標(biāo)注,數(shù)據(jù)集中共有34個不同的分類。此數(shù)據(jù)是在晴朗的天氣情況下采集的,圖像質(zhì)量較高,而本文主要解決霧天的圖像語義分割問題,因此,在Cityscapes數(shù)據(jù)集上合成霧噪聲。在高質(zhì)量圖像上添加模擬霧,通常是將霧建模為一個函數(shù),該函數(shù)與場景深度密切相關(guān),并由場景到攝像機的距離參數(shù)化。因此,無霧圖像和其深度圖構(gòu)成了霧天圖像合成的基礎(chǔ)。
在以往的去霧研究中,使用了各種光學(xué)模型來模擬霧對可視化場景的影響。因為有霧和無霧情況下形成圖像的物理過程本質(zhì)上是相似的,所以在無霧圖像合成過程中使用了標(biāo)準(zhǔn)的光學(xué)模型,表示為:
I(x)=R(x)t(x)+L(1-t(x))
(7)
式中:I(x)為有霧圖像的像素;R(x)為無霧圖像的像素;L為全局大氣光程;t(x)為傳輸量,決定了到達相機的場景亮度。在均勻介質(zhì)的情況下,傳輸量取決于場景到相機的距離l(x),可以表示為:
t(x)=exp(-βl(x))
(8)
式中:β表示衰減系數(shù),能有效地控制霧的厚度,值越大則產(chǎn)生的霧越重。
氣象光學(xué)距離(Meteorological optical range,MOR),又稱為能見度,是描述霧嚴重程度的常用指標(biāo),通常相機到場景的距離要大于0.05 m,由式(8)可知,此時的能見度為MOR=2.996/β。根據(jù)氣象標(biāo)準(zhǔn),霧天的能見度要低于1公里,因此,衰減系數(shù)的取值范圍確定為:
β> 2.996 × 10-3m-1
(9)
根據(jù)式(9),原始圖像可被合成為輕霧、中霧和重霧三種類型,對應(yīng)的衰減系數(shù)分別為0.005、0.015和0.030,可視化結(jié)果如圖3所示,合成霧后的數(shù)據(jù)集由原來的5 000張圖像擴充到15 000張。
(a) Clean image
實現(xiàn)細節(jié):MFANet采用ADAM優(yōu)化方法,參數(shù)Beta1和Beta2分別設(shè)置為0.9和0.999,學(xué)習(xí)率為5×10-5,權(quán)重衰減為2×10-4,Batch size為16。實驗環(huán)境為基于Ubuntu 16.04操作系統(tǒng)的PyTorch深度學(xué)習(xí)框架,使用GPU進行訓(xùn)練,配置NVIDIA CUDA 10.1+cuDNNv 7.6.1深度學(xué)習(xí)庫加速GPU運算,用于訓(xùn)練和測試的軟件為Python 3.5,訓(xùn)練階段共使用了3塊NVIDIA Tesla V100 32GB GPU。
評價指標(biāo):IOU (Intersection over unions)是語義分割任務(wù)中常用的評價標(biāo)準(zhǔn),它量化了預(yù)測掩模與標(biāo)簽掩模之間的重疊度。具體來說,對于每個類,IOU為預(yù)測區(qū)域與目標(biāo)區(qū)域的交集與并集之比。表示為:
(10)
式中:I(X)表示交集集合;U(X)表示并集集合,可近似如下:
(11)
當(dāng)存在多個類時,則計算所有類的平均IOU(mIOU)。
不同方法在Cityscapes有霧圖像上的定性分割結(jié)果如圖4所示,所有實驗圖像均為真實車載相機拍攝,前三行為重度霧,后三行為輕度霧。比較了目前在mIOU和FLOPs上表現(xiàn)最好的兩種方法,其他方法由于頁面限制不再展示,定量結(jié)果如表1中所示。如圖4所示,每一類物體場景均由一種顏色標(biāo)簽標(biāo)示,由于霧對圖像色彩、紋理等的影響,ESPNetv2和ERFNet的分割結(jié)果比較差,無法準(zhǔn)確判斷類別,并且邊界分割不清晰。而本文提出的MFANet則有效克服了霧給分割任務(wù)帶來的影響,其結(jié)果在場景分類和邊界分割上更加準(zhǔn)確。
(a) Haze image
不同方法在Cityscapes霧圖像測試集上的定量恢復(fù)結(jié)果如表1所示,分別對比了平均IOU (mIOU)和浮點運算數(shù) (FLOPs)兩個指標(biāo),最好的結(jié)果字體加粗顯示,次好的下劃線顯示??梢钥闯?,在霧圖像上已有方法的mIOU均比較低, 最好的ERFNet只有55.9,而本文方法的mIOU為66.8, 要明顯高于其他方法。在FLOPs指標(biāo)上,盡管本方法包含了去霧模塊和分割模塊,但由于對這兩個任務(wù)模塊融合處理,所以MFANet的FLOPs僅有3.3 B,要遠低于其它方法。雖然比方法ESPNetv2略高,但mIOU卻比其高出12.5,具有更高的綜合性能。
表1 不同方法在Cityscapes霧圖像測試集上的mIOU和FLOPsTable 1 mIOU and FLOPs on the Cityscapes haze image testset by different methods
為了進一步證明本文方法的魯棒性和對環(huán)境的適應(yīng)性,Cityscapes圖像測試集無霧情況下的測試結(jié)果如表2所示。在無霧情況下,本方法依然取得最好的定量分割結(jié)果,在mIOU上比次好的ERFNet高出 6.1。
表2 不同方法在Cityscapes測試集(無霧)上的mIOU和FLOPsTable 2 mIOU and FLOPs on the Cityscapes testset (without haze) by different methods
為驗證各關(guān)鍵技術(shù)對網(wǎng)絡(luò)性能的影響,通過消融實驗進一步證明了各個模塊的有效性。如表3所示,在Cityscapes有霧測試集上,通過分別對跨尺度殘差連接、多尺度特征融合和注意力模塊進行了消融實驗,結(jié)果表明各模塊對分割的性能都有一定程度的提升,證明了其有效性。
表3 不同技術(shù)模塊在Cityscapes有霧測試集上的mIOUTable 3 mIOU on the Cityscapes haze image testset by different technology modules
設(shè)計了一種新穎高效的多任務(wù)融合注意力網(wǎng)絡(luò),有效地解決了霧環(huán)境下的圖像語義分割問題。通過對網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)化,既減少了存儲和計算成本,又有效克服了霧噪聲對分割任務(wù)的影響。實驗結(jié)果表明,本方法分割的霧圖像,可以生成更準(zhǔn)確、更精細的結(jié)果,具有更高的mIOU。所提出的方法可推廣到不同類型的低質(zhì)量圖像語義分割任務(wù),如模糊圖像語義分割和暗圖像語義分割等。