郭 晨,楊玉龍,左 琛,楊冰鑫
(1.長(zhǎng)安大學(xué) 信息工程學(xué)院,西安 710064;2.長(zhǎng)安大學(xué) 運(yùn)輸工程學(xué)院,西安 710064)
瀝青路面是當(dāng)前城市交通中最常見的路面類型,被廣泛應(yīng)用于城市道路、高速公路等交通基礎(chǔ)設(shè)施。然而,由于受到長(zhǎng)期的車輛負(fù)荷、自然環(huán)境等因素的影響,瀝青路面容易出現(xiàn)各種病害[1]。交通運(yùn)輸部2018年12月發(fā)布的《公路技術(shù)狀況評(píng)定標(biāo)準(zhǔn)》[2],將瀝青路面損壞分為龜裂、塊狀裂縫、縱向裂縫、橫向裂縫、沉陷、車轍、波浪擁包、坑槽、松散、泛油等10種類型。這些病害嚴(yán)重影響著瀝青道路的正常使用,不僅導(dǎo)致路面使用壽命縮短,更會(huì)導(dǎo)致交通事故風(fēng)險(xiǎn)增加[3]。其中裂縫損壞和坑槽是常見且對(duì)路面正常使用影響較大的病害類型。裂縫不僅會(huì)破壞瀝青路面結(jié)構(gòu),導(dǎo)致路面整體強(qiáng)度降低,并且會(huì)使得雨水和油污滲透到路面中,加劇路面老化和破損,進(jìn)而使得裂縫發(fā)展成更為嚴(yán)重的病害??硬蹞p壞使得行車舒適性下降,嚴(yán)重的坑槽損壞直接增加了發(fā)生交通事故的風(fēng)險(xiǎn)。因此對(duì)于裂縫和坑槽的精準(zhǔn)識(shí)別分類是十分重要的,可以有效提高交通安全性,延長(zhǎng)路面使用壽命,降低維護(hù)成本。
早期路面病害檢測(cè)主要依賴于人工實(shí)地檢查。這種方法雖然能夠較為準(zhǔn)確發(fā)現(xiàn)病害,然而費(fèi)時(shí)費(fèi)力,影響公路交通正常運(yùn)行[4]。以灰度閾值分割、多尺度以及數(shù)字形態(tài)學(xué)為主的數(shù)字圖像處理檢測(cè)算法可以在圖像中提取出路面病害特征,但是這些算法泛化能力不足,難以滿足實(shí)際需求[5]。隨著計(jì)算機(jī)技術(shù)的發(fā)展,傳統(tǒng)機(jī)器學(xué)習(xí)方法被引入到路面病害檢測(cè)中。這些方法通?;谑止ぴO(shè)計(jì)的特征提取和分類算法,例如支持向量機(jī)(SVM)、K近鄰(KNN)等[6],提高了檢測(cè)效率,并且通過合理的特征選擇和算法優(yōu)化,可以實(shí)現(xiàn)一定程度的病害分類準(zhǔn)確性。然而這些方法特征提取依賴于人工經(jīng)驗(yàn),往往需要大量領(lǐng)域知識(shí)和實(shí)驗(yàn)調(diào)優(yōu),工作量較大,對(duì)于復(fù)雜多樣的路面病害的泛化能力有限,很難提供高度準(zhǔn)確的檢測(cè)結(jié)果[7]。
隨著計(jì)算機(jī)硬件的發(fā)展,尤其是GPU(圖形處理單元)的廣泛應(yīng)用以及深度學(xué)習(xí)算法的不斷優(yōu)化,推動(dòng)了基于深度學(xué)習(xí)的路面病害檢測(cè)的發(fā)展[8]。卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)架構(gòu)于1998年由LeCun[9]等人提出,卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn)在于可以從原始像素?cái)?shù)據(jù)中學(xué)習(xí)到抽象的特征表示,實(shí)現(xiàn)對(duì)復(fù)雜圖像的高級(jí)語(yǔ)義理解。2019年,沙愛民等[10]提出了一種包含3個(gè)CNN的級(jí)聯(lián)模型,進(jìn)行路面裂縫和坑槽檢測(cè)。其中,第一個(gè)CNN判定路面病害類型,其余神經(jīng)網(wǎng)絡(luò)關(guān)注裂縫和坑槽的幾何結(jié)構(gòu)提取。實(shí)驗(yàn)結(jié)果表明,級(jí)聯(lián)CNN對(duì)路面裂縫與坑槽的識(shí)別與測(cè)量具有運(yùn)算高效、結(jié)果精準(zhǔn)等優(yōu)勢(shì)。2020年,陳澤斌等[11]針對(duì)復(fù)雜背景下路面裂縫,對(duì)UNet網(wǎng)絡(luò)上采樣過程的特征融合階段進(jìn)行改進(jìn),進(jìn)一步提升CNN的泛化能力和識(shí)別精度。為提升路面表觀病害檢測(cè)效率與精度,2021年晏班夫等人[12]提出了基于Faster R-CNN,CNN與形態(tài)學(xué)的集成方法對(duì)路面病害進(jìn)行快速識(shí)別,相較于傳統(tǒng)方法提升了效率。然而,卷積神經(jīng)網(wǎng)絡(luò)主要依賴局部卷積操作來提取特征,導(dǎo)致其本身缺乏全局依賴性,對(duì)于長(zhǎng)距離圖像特征的提取準(zhǔn)確率低下。另一方面CNN的性能依賴層級(jí)結(jié)構(gòu)和參數(shù)設(shè)置,導(dǎo)致其面臨精度局限。
Transformer模型在自然語(yǔ)言處理中的成功證明了注意力機(jī)制[13]在建模長(zhǎng)距離依賴和全局上下文方面的卓越能力。研究人員逐漸開始探索將其應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域。2020年Dosovitskiy等人提出的ViT(vision transformer)模型[14]取得了突破性成功,在多個(gè)數(shù)據(jù)集的分類任務(wù)上表現(xiàn)出良好的性能。然而ViT全局注意力機(jī)制由于需要計(jì)算圖像每個(gè)像素之間的關(guān)聯(lián)性,導(dǎo)致計(jì)算資源增加,為處理高分辨率圖像和大規(guī)模數(shù)據(jù)集帶來挑戰(zhàn)。在ViT此基礎(chǔ)上,研究人員設(shè)計(jì)了Swin Transformer[15]。Swin Transformer采用了層級(jí)注意力機(jī)制,在保留長(zhǎng)距離建模優(yōu)勢(shì)的基礎(chǔ)上降低了計(jì)算資源的需求,并且Swin Transformer還表現(xiàn)出強(qiáng)大的擴(kuò)展能力。
2023年LUO等人[16]為了針對(duì)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)容易丟失邊緣細(xì)節(jié)信息、對(duì)于不規(guī)則的路面裂縫形狀檢測(cè)效果不佳等問題,提出了名為STrans-YOLOX的路面裂縫檢測(cè)結(jié)構(gòu)。該結(jié)構(gòu)首先利用CNN進(jìn)行特征提取,然后通過引入Swin Transformer增加長(zhǎng)距離建模能力。實(shí)驗(yàn)結(jié)果表明該結(jié)構(gòu)在RDD2020數(shù)據(jù)集上的mAP值達(dá)到了63.37%,超越了最先進(jìn)的模型。
由此可見Swin Transformer在路面病害檢測(cè)領(lǐng)域具有良好的應(yīng)用前景,為路面病害檢測(cè)領(lǐng)域提供了新的思路和方向。然而目前基于Swin Transformer的路面病害檢測(cè)所用的數(shù)據(jù)采集手段為車載相機(jī)拍攝或者手機(jī)拍攝[16-17],這樣的圖像采集方式成像質(zhì)量不一,且圖像中非路面因素多,對(duì)其進(jìn)行分類或者分割任務(wù)相對(duì)比較困難。本文使用的數(shù)據(jù)集為路面檢測(cè)車在我國(guó)高速公路的實(shí)際采集數(shù)據(jù),具有圖像質(zhì)量高,沒有與路面無關(guān)因素干擾等特點(diǎn)[18]。
文獻(xiàn)[19]的研究成果初步表明,與CNN結(jié)合的ViT混合模型,在長(zhǎng)距離路面裂縫的識(shí)別上具有一定的優(yōu)勢(shì),但是在縱向裂縫的識(shí)別能力上有待提高,對(duì)于坑槽病害的檢測(cè)能力尚未可知。并且純Transformer模型對(duì)于路面病害的識(shí)別能力也有待研究。因此本文基于路面檢測(cè)車采集圖像引入純Swin Transformer模型進(jìn)行瀝青路面病害分類檢測(cè)研究。并與3種經(jīng)典的CNN模型進(jìn)行對(duì)比,探索Swin Transformer在長(zhǎng)距離路面病害結(jié)構(gòu)上的識(shí)別優(yōu)勢(shì)。針對(duì)實(shí)驗(yàn)過程中出現(xiàn)過擬合問題,采用更換損失函數(shù)、調(diào)整初始模型率等方法解決、實(shí)驗(yàn)結(jié)果表明,Swin Transformer不僅對(duì)于橫向裂縫,縱向裂縫等長(zhǎng)距離裂縫結(jié)構(gòu)具有良好的識(shí)別精度,并且對(duì)于龜裂、坑槽等病害也有良好的識(shí)別效果,整體的分類準(zhǔn)確率也要優(yōu)于CNN模型。通過計(jì)算各模型的F1-score,表明Swin Transformer相比于CNN模型具有更好的可靠性。
使用Swin Transformer模型進(jìn)行路面病害圖像分類如圖1所示。Swin Transformer的網(wǎng)絡(luò)結(jié)構(gòu)由4個(gè)階段(Stage)組成,每個(gè)Stage包含若干個(gè)Swin Transformer Block,本文所采用的Swin_base模型在4個(gè)階段分別有2,2,18,2個(gè)Swin Transformer Block。對(duì)于輸入的路面病害圖像,Swin Transformer在圖像分割層使用4×4的窗口對(duì)圖像進(jìn)行分割,分割后的窗口圖像在通道方向展平[20]。原始圖像的高和寬縮減為原來的1/4,通道數(shù)變?yōu)樵瓉淼?6倍。在首個(gè)Stage中通過線性映射將圖像塊轉(zhuǎn)換為一維向量輸入到Swin Transformer Block中。在后續(xù)每個(gè)Stage都通過圖像塊拼接層對(duì)圖像塊進(jìn)行下采樣。最后的輸出經(jīng)過一個(gè)全局池化層和一個(gè)全連接層得到病害的分類結(jié)果。
圖1 使用Swin Transformer進(jìn)行路面病害圖像分類
兩個(gè)Swin Transformer Block結(jié)構(gòu)如圖2所示,Swin Transform Block都是成對(duì)出現(xiàn)的。這是由于在第一個(gè)Block中Swin Transformer將原始Transformer中的多頭自注意力(MSA,multi-head self-attention)模塊替換成了窗口自注意力模塊(W-MSA,window multi-head self-attention)。W-MSA不計(jì)算整幅圖像中所有的像素之間的注意力,而是將圖像劃分為若干個(gè)窗口,對(duì)于每個(gè)窗口只計(jì)算窗口內(nèi)部圖像像素之間的注意力,而不與其他窗口進(jìn)行交互。單頭窗口注意力的計(jì)算公式如下:
(1)
圖2 兩個(gè)連續(xù)的Swin Transformer Block結(jié)構(gòu)
式中,Q,K,V分別代表查詢矩陣Q(Query)、鍵矩陣K(Key)和值矩陣V(value)。它們是由輸入特征進(jìn)行線性映射后得到的。假設(shè)輸入特征X的形狀為[B,H,W,C]。B代表一次輸入數(shù)量,H,W,C分別代表輸入特征的高、寬和通道數(shù)。則X分別與查詢權(quán)重矩陣WQ,鍵權(quán)重矩陣WK和值權(quán)重矩陣WV相乘得到Q,K,V。B代表相對(duì)位置編碼,用來將注意力的計(jì)算范圍限制在劃定的窗口之內(nèi)。dk表示鍵矩陣K的維度,用來幫助模型在不同注意力頭之間捕獲不同層次特征關(guān)系。多頭注意力機(jī)制是將多個(gè)單頭注意力模塊級(jí)聯(lián)起來,每個(gè)注意力頭可以捕獲不同特征之間的依賴關(guān)系,允許模型在多個(gè)抽象層次上對(duì)輸入特征進(jìn)行編碼。多頭窗口自注意力公式表示為:
MultiHead(Q,K,V)=Concat(head1,…h(huán)eadh)Wo
(2)
headi=Attention(Qi,Ki,Vi)
(3)
式(2)中,Wo是一個(gè)可學(xué)習(xí)的權(quán)重矩陣,用于將注意力頭的輸出進(jìn)行線性變換,使得最終的輸出與輸入特征具有相同的維度。
只在窗口之間計(jì)算注意力雖然降低了計(jì)算量,但是由于窗口和窗口之間沒有信息的交互導(dǎo)致無法獲取圖像整體的信息。因此Swin Transformer在緊跟著下一個(gè)Block中采用滑動(dòng)窗口注意力機(jī)制(SW-MSA,shifted window based multi-head self attention),SW-MSA在W-MSA劃分的窗口的基礎(chǔ)上將所有窗口通過循環(huán)移位的方式進(jìn)行移動(dòng),在移動(dòng)后的窗口內(nèi)部再進(jìn)行注意力計(jì)算,將各個(gè)窗口的信息重新組合為新的圖像表示。使得在計(jì)算量不增加的情況下,每個(gè)窗口之間有了信息的交互,從而可以獲取到圖像的全局信息。因此在Swin Transformer中W-MSA和SW-MSA是兩兩交替出現(xiàn),除了注意力機(jī)制的不同,兩個(gè)連續(xù)Swin Transformer Block中其他組件都是完全相同的,包括兩個(gè)歸一化層(LN,layer normalization),兩個(gè)殘差連接層和一個(gè)多層感知機(jī)層(MLP,multilayer pereptron)。
為了客觀全面地評(píng)估Swin Transformer在路面病害圖像分類任務(wù)上的表現(xiàn)。本文選擇ResNet101,Densenet161和EfficientNet_b3三個(gè)模型作為對(duì)比模型。
ResNet由微軟研究院的He等人[21]提出,是深度學(xué)習(xí)中的一種經(jīng)典模型。其關(guān)鍵創(chuàng)新是引入了殘差連接(Residual Connection),使得網(wǎng)絡(luò)能夠更容易地訓(xùn)練深層模型,有效地解決了傳統(tǒng)深層網(wǎng)絡(luò)中的梯度消失和梯度爆炸問題。ResNet101是ResNet系列中較深、較復(fù)雜的一個(gè)模型,總共有101層。適用于計(jì)算機(jī)視覺任務(wù)中的圖像分類、語(yǔ)義分割等任務(wù)。
DenseNet 是由Huang[22]等人提出的一種深度學(xué)習(xí)架構(gòu)。它的核心思想是在網(wǎng)絡(luò)中引入密集連接,以解決深度神經(jīng)網(wǎng)絡(luò)中的梯度消失和梯度爆炸問題,同時(shí)改進(jìn)了模型的訓(xùn)練效率和準(zhǔn)確性。是深度學(xué)習(xí)領(lǐng)域重要模型之一。DenseNet161是DenseNet的一個(gè)變體,每個(gè)Dense Block中包含161層。模型深度和參數(shù)量相對(duì)較大,在計(jì)算機(jī)視覺任務(wù)上具有強(qiáng)大的特征提取能力。
EfficientNet是由谷歌研究人員Tan等人[23]提出的一種神經(jīng)網(wǎng)絡(luò)架構(gòu)。它的核心思想是通過對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行均衡縮放來實(shí)現(xiàn)高效且優(yōu)秀的性能。已經(jīng)在圖像分類,目標(biāo)檢測(cè)和語(yǔ)義分割等計(jì)算機(jī)視覺任務(wù)上取得了顯著成績(jī)。EfficientNet_b3是其中一個(gè)較大規(guī)模的變體。
這些模型在多個(gè)數(shù)據(jù)集和任務(wù)上都經(jīng)過充分驗(yàn)證,是深度學(xué)習(xí)領(lǐng)域經(jīng)典且性能強(qiáng)大的模型,因此可以提供一個(gè)相對(duì)穩(wěn)定的基準(zhǔn)。
本文數(shù)據(jù)采集地點(diǎn)位于我國(guó)遼寧省某段高速公路,由路面檢測(cè)車進(jìn)行采集。共采集瀝青路面圖像2 000張,圖像尺寸為1 590×2 048。
路面檢測(cè)車采集到的原始圖像如圖3(a)所示,由于采集設(shè)備能力的限制,原始圖像整體呈現(xiàn)為灰黑色,對(duì)比度較低,從視覺效果上很難分辨出路面病害的類型。其灰度直方圖如圖3(c)所示,灰度值主要集中在50~60之間。這樣的圖像對(duì)于深度學(xué)習(xí)模型的訓(xùn)練是十分不利的。因此需要一種能夠增強(qiáng)圖像對(duì)比度的方法來對(duì)原始圖像進(jìn)行處理,增強(qiáng)圖像可視化效果。
圖3 直方圖
在圖像處理領(lǐng)域常見的增強(qiáng)圖像對(duì)比度方法有直方圖均衡[24]、直方圖拉伸[25]、直方圖規(guī)定化[26]和小波變換[27]等。其中直方圖拉伸需要手動(dòng)調(diào)整參數(shù)、適用性窄,并且容易導(dǎo)致圖像亮度過于增強(qiáng)。直方圖規(guī)定化需要目標(biāo)直方圖來進(jìn)行匹配,復(fù)雜度較高,容易受噪聲干擾。小波變換方法參數(shù)選擇比較困難,容易造成信息損失導(dǎo)致圖像細(xì)節(jié)不夠清晰。相對(duì)于以上3種圖像處理方式,直方圖均衡技術(shù)具有能夠自動(dòng)增強(qiáng)圖像對(duì)比度,無需人工干預(yù)、避免像素浪費(fèi)、可以更好地保持圖像亮度平衡以及適用性廣泛等優(yōu)勢(shì)。
因此,選用直方圖均衡技術(shù)對(duì)原始圖像進(jìn)行處理。它的核心思想是以像素灰度值的累積分布函數(shù)作為轉(zhuǎn)換函數(shù),重新映射圖像的灰度值,使得圖像的像素灰度值在整個(gè)灰度范圍內(nèi)的分布更加均勻,從而增加圖像對(duì)比度。
經(jīng)過直方圖均衡后的圖像如圖3(b)所示,可以看出經(jīng)過處理后的圖像可視化效果得到很大增強(qiáng)。圖3(d)展示了其灰度直方圖,相較于原圖,處理后圖像灰度值的分布更加均勻。
為了增加數(shù)據(jù)樣本的多樣性并擴(kuò)充數(shù)據(jù)集,使用圖像裁剪將圖像一分為四。并且為了契合在實(shí)際中的應(yīng)用,對(duì)于裁剪后的圖像采用圖像處理方法重新resize為原始圖像的大小。然后進(jìn)行數(shù)據(jù)清洗,剔除掉不能使用的數(shù)據(jù),共有圖像7 650張。按照《公路技術(shù)狀況評(píng)定標(biāo)準(zhǔn)》中對(duì)于瀝青路面損壞評(píng)定標(biāo)準(zhǔn),將7 560張圖像分為橫向裂縫、縱向裂縫、塊狀裂縫、龜裂、坑槽及無病害共6種類型。各病害圖像如圖4所示。
圖4 各病害圖像
對(duì)于各病害類別圖像按照8∶1∶1的方式劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。劃分后各數(shù)據(jù)集病害數(shù)量如表1所示。
表1 各病害類別圖像數(shù)量
選用準(zhǔn)確率(accuracy),查全率(recall)和F1-score這3種常用的圖像分類評(píng)價(jià)指標(biāo)來評(píng)估模型的性能。
準(zhǔn)確率是最簡(jiǎn)單直觀的評(píng)價(jià)指標(biāo),代表模型正確分類的樣本比例,準(zhǔn)確率越高表示模型在數(shù)據(jù)總體上的分類表現(xiàn)越好。計(jì)算公式表示為:準(zhǔn)確率=正確分類的樣本數(shù)/所有的樣本數(shù)。
查全率衡量模型正確預(yù)測(cè)為正例的樣本占所有正例的比例,強(qiáng)調(diào)模型正確捕捉到所有實(shí)際正例的能力,查全率越高說明模型識(shí)別實(shí)際正例的能力越高。查全率的公式為:
Recall=TP(TP+FN)
(4)
其中:TP和FN是混淆矩陣中的基本術(shù)語(yǔ),TP表示真正例,指模型正確地預(yù)測(cè)為正例的樣本數(shù);FN表示假反例,指模型錯(cuò)誤地預(yù)測(cè)為負(fù)例的樣本數(shù)。此外還有TN表示真反例,指模型正確地預(yù)測(cè)為負(fù)例的樣本數(shù);FP表示假正例,指模型錯(cuò)誤地預(yù)測(cè)為正例的樣本數(shù)。
F1-score是查準(zhǔn)率和查全率的調(diào)和平均值,用于綜合評(píng)估模型的分類性能。F1-score越高,表明模型越可靠。F1-score公式為:
F1-score=(2*Recall*Precision)/(Recall+Precision)
(5)
式(5)中Precision代表查準(zhǔn)率,計(jì)算公式為:
Precision=TP(/TP+FP)
(6)
式(5)的計(jì)算的是二分類問題的F1-score,本文為六分類問題,所以本文的F1-score計(jì)算公式如式(7)所示,其中i代表類別序號(hào)。
(7)
本文采用雙階段訓(xùn)練模型方法。實(shí)驗(yàn)分為初次實(shí)驗(yàn)和二次實(shí)驗(yàn)。二次實(shí)驗(yàn)在初次實(shí)驗(yàn)的基礎(chǔ)上通過調(diào)整初始模型,修改訓(xùn)練參數(shù)來解決初次實(shí)驗(yàn)中出現(xiàn)的過擬合問題。過擬合通常是指深度學(xué)習(xí)模型在訓(xùn)練過程中對(duì)于訓(xùn)練數(shù)據(jù)擬合得過于好,以至于捕捉了數(shù)據(jù)中的噪聲和隨機(jī)性,導(dǎo)致在未見過的新數(shù)據(jù)上表現(xiàn)較差。一般過擬合現(xiàn)象的表現(xiàn)形式為訓(xùn)練Loss在訓(xùn)練過程中不斷下降,而驗(yàn)證Loss先下降再上升。
調(diào)整初始模型是將初次實(shí)驗(yàn)訓(xùn)練好的模型作為二次實(shí)驗(yàn)初始模型。這樣的選擇是考慮到初次實(shí)驗(yàn)完成的模型已經(jīng)在初次實(shí)驗(yàn)參數(shù)條件下本文數(shù)據(jù)集有了較為均衡的擬合效果,故選擇其作為初始模型可以對(duì)本文的數(shù)據(jù)具有更加針對(duì)性的學(xué)習(xí),降低出現(xiàn)過擬合現(xiàn)象的風(fēng)險(xiǎn)。
修改訓(xùn)練參數(shù)包括更換損失函數(shù),增加圖像增強(qiáng)手段,降低學(xué)習(xí)率等。
修改損失函數(shù)是將交叉熵?fù)p失函數(shù)更換為MultiClassFocalLossWithAlpha()損失函數(shù)。初步實(shí)驗(yàn)選擇的交叉熵?fù)p失函數(shù)雖然可以幫助多分類模型判斷預(yù)測(cè)的類別和真實(shí)類別之間的相似度。但是它并沒有考慮數(shù)據(jù)量不平衡的情況。故而將損失函數(shù)更換為MultiClassFocalLossWithAlpha()損失函數(shù)。這是一種擴(kuò)展的損失函數(shù),通過引入Alpha參數(shù)來調(diào)整不同類別在損失函數(shù)中的權(quán)重,以解決多類別分類問題中類別數(shù)量不平衡的問題。通過給橫向裂縫,縱向裂縫,坑槽等數(shù)據(jù)量較少的類別增加權(quán)重提高在它們?cè)谀P陀?xùn)練過程中的影響力。
數(shù)據(jù)增強(qiáng)手段可以提升模型泛化性能,降低過擬合出現(xiàn)的風(fēng)險(xiǎn),因此在初次實(shí)驗(yàn)的基礎(chǔ)上增加隨機(jī)灰度數(shù)據(jù)增強(qiáng)方式。學(xué)習(xí)率用于控制模型在優(yōu)化過程中更新參數(shù)的步長(zhǎng),降低學(xué)習(xí)率可以使得模型在訓(xùn)練數(shù)據(jù)上的學(xué)習(xí)過程更為平緩,減緩模型對(duì)訓(xùn)練數(shù)據(jù)中噪聲和異常樣本的過度擬合[28]。選擇將初次實(shí)驗(yàn)中的學(xué)習(xí)率降低十倍進(jìn)行二次實(shí)驗(yàn)。
本文所有實(shí)驗(yàn)均在Linux下,ubuntu操作系統(tǒng),版本為18.04。CPU型號(hào)為Intel Xeon Platinum 8255C,有12個(gè)虛擬cpu核心。GPU型號(hào)為RTX 3080,顯存為10 G。深度學(xué)習(xí)框架為pytorch,版本為1.1。python版本為3.8。
初次實(shí)驗(yàn)中,所有模型訓(xùn)練時(shí)Batch設(shè)置為16,優(yōu)化器使用隨機(jī)梯度下降優(yōu)化器(SGD),損失函數(shù)采用交叉熵?fù)p失函數(shù)(CrossEntropyLoss),學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練迭代次數(shù)設(shè)置為100。同時(shí)為了在訓(xùn)練過程中增加數(shù)據(jù)的多樣性,提高模型的泛化能力,選擇兩種數(shù)據(jù)增強(qiáng)手段,分別為隨機(jī)裁剪縮放和隨機(jī)水平翻轉(zhuǎn)。選擇訓(xùn)練過程中在驗(yàn)證集上準(zhǔn)確率最高的模型作為最終模型。
二次實(shí)驗(yàn)損失函數(shù)選擇為MultiClassFocalLossWithAlpha(),學(xué)習(xí)率設(shè)置為0.000 1,數(shù)據(jù)增強(qiáng)手段增加隨機(jī)灰度方式。仍然選擇訓(xùn)練過程中驗(yàn)證精度最高的模型作為最終模型,訓(xùn)練Epoch設(shè)置為50輪。其他設(shè)置均與初次實(shí)驗(yàn)相同。
初次實(shí)驗(yàn)中Swin Transformer和DenseNet的訓(xùn)練Loss曲線分別如圖5和圖6所示。從它們的Loss曲線圖可以看出符合過擬合現(xiàn)象的表現(xiàn)。
圖5 Swin Trasformer訓(xùn)練過程Loss值
圖6 DenseNet訓(xùn)練過程Loss值
Swin Transformer和DenseNet二次實(shí)驗(yàn)最終模型分別在訓(xùn)練集、驗(yàn)證集和測(cè)試集上的分類準(zhǔn)確率如圖7所示??梢钥闯鰞蓚€(gè)模型3個(gè)準(zhǔn)確率比較接近,說明模型過擬合問題得到了妥善解決。
圖7 Swin Transformer和DenseNet在不同數(shù)據(jù)集上的分類準(zhǔn)確率
為了驗(yàn)證調(diào)整初始模型并在新的損失函數(shù)上訓(xùn)練是否使得分類模型在本文數(shù)據(jù)集上有更好的表現(xiàn)。選擇初次實(shí)驗(yàn)使用的初始模型在新的損失函數(shù)上進(jìn)行100個(gè)Epoch的訓(xùn)練,并與二次實(shí)驗(yàn)的結(jié)果進(jìn)行對(duì)比。結(jié)果如圖8所示,實(shí)驗(yàn)1為不調(diào)整初始模型使用新的損失函數(shù)后,最終模型在測(cè)試集上的測(cè)試結(jié)果。實(shí)驗(yàn)2為調(diào)整初始模型并使用新的損失函數(shù)在測(cè)試集上的測(cè)試結(jié)果。從圖8可以看出,實(shí)驗(yàn)2的所有模型的分類準(zhǔn)確率整體要比實(shí)驗(yàn)1所有模型的分類準(zhǔn)確率高,證明所采用的調(diào)整初始模型方法可以使得訓(xùn)練模型更好地?cái)M合本文數(shù)據(jù)集。
圖8 不同實(shí)驗(yàn)各模型在測(cè)試集上的分類準(zhǔn)確率
將二次實(shí)驗(yàn)完成后所有模型在測(cè)試集上的分類結(jié)果進(jìn)行混淆矩陣圖繪制,如圖9~12所示。
圖9 Swin Transformer分類混淆矩陣圖
圖10 ResNet分類混淆矩陣圖
圖11 DenseNet分類混淆矩陣圖
圖12 EfficientNet分類混淆矩陣圖
并通過混淆矩陣圖計(jì)算出各模型的分類準(zhǔn)確率,橫向裂、縱向裂縫、塊狀裂縫的查全率以及F1-score如表2所示。
表2 各模型評(píng)價(jià)指標(biāo)對(duì)比
從表2可得,Swin Transformer相較于CNN模型表現(xiàn)出了更高的分類準(zhǔn)確率。相較于ResNet,Densenet和EfficientNet,準(zhǔn)確率分別提升了2%,1.6%,和2.6%。對(duì)于路面病害而言,橫向裂縫、縱向裂縫、塊狀裂縫數(shù)據(jù)長(zhǎng)距離裂縫信息,對(duì)于它們進(jìn)行精準(zhǔn)識(shí)別分類并做出及時(shí)修復(fù),可以避免它們發(fā)展成更為嚴(yán)重的病害,有助于節(jié)約維護(hù)成本。從表2可以看出Swin Transformer在這3類病害上的查全率也都要優(yōu)于CNN模型。說明Swin Transformer在長(zhǎng)距離裂縫結(jié)構(gòu)識(shí)別方面具有優(yōu)勢(shì)。
對(duì)于龜裂類型病害,圖像中裂縫塊更為密集,相較于長(zhǎng)距離裂縫病害而言是更為嚴(yán)重的病害類型,同時(shí)也是圖像數(shù)量最多的病害類型,對(duì)其精準(zhǔn)識(shí)別也尤為重要。從各模型分類混淆矩陣圖可以看出,Swin Transformer對(duì)此類病害也具有良好的分類準(zhǔn)確率,與DenseNet并列第一。同時(shí)對(duì)于坑槽型病害,直接影響著行車安全。對(duì)其進(jìn)行精準(zhǔn)識(shí)別并及時(shí)修復(fù)有助于減少安全事故的發(fā)生。從圖中可以看出,在此類病害的識(shí)別上,Swin Transformer也表現(xiàn)出了良好的分類性能,與ResNet并列第一。
為了解決傳統(tǒng)CNN模型在路面病害檢測(cè)領(lǐng)域?qū)τ陂L(zhǎng)距離病害結(jié)構(gòu)識(shí)別能力不足以及精度局限等問題,本文引入Swin Transformer進(jìn)行瀝青路面病害分類檢測(cè)研究。
本文數(shù)據(jù)來自路面檢測(cè)車采集數(shù)據(jù),雖然具有圖像清晰,無與路面無關(guān)因素干擾等優(yōu)點(diǎn)。但是存在對(duì)比度低,數(shù)據(jù)量少等情況。并且由于是灰度圖像,相對(duì)于常見數(shù)據(jù)具有一定的特殊性,因此在訓(xùn)練時(shí)容易出現(xiàn)過擬合現(xiàn)象。因此本文首先采用直方圖均衡技術(shù)處理圖像,增強(qiáng)對(duì)比度,并對(duì)數(shù)據(jù)進(jìn)行裁剪擴(kuò)充數(shù)據(jù)集。其次針對(duì)訓(xùn)練過程中模型過擬合問題,采用更換損失函數(shù)并調(diào)整初始模型的手段解決。不僅解決了過擬合問題,并且使得模型對(duì)本文數(shù)據(jù)的學(xué)習(xí)效果得到增加。最終實(shí)驗(yàn)結(jié)果證明,本文所采用的Swin Trsnformer在路面病害檢測(cè)任務(wù)上相對(duì)于CNN模型具有更好的分類檢測(cè)效果。整體分類準(zhǔn)確率達(dá)到了80.6%,超越了所有對(duì)比模型。不僅在橫向裂縫,縱向裂縫,塊狀裂縫等這些長(zhǎng)距離病害結(jié)構(gòu)識(shí)別上面具有優(yōu)勢(shì)并且對(duì)于非長(zhǎng)距離病害結(jié)構(gòu)也有很好的分類效果。F1-score計(jì)算結(jié)果也證明訓(xùn)練好的Swin Transformer模型具有良好的可靠性,能夠滿足實(shí)際工程中對(duì)瀝青路面病害實(shí)現(xiàn)高效精準(zhǔn)分類檢測(cè)的需求。