李?yuàn)?/p>
(成都信息工程大學(xué)計(jì)算機(jī)學(xué)院,成都 610225)
道路病害(裂隙、坑洞)檢測一直以來在道路安全領(lǐng)域中起著舉足輕重的作用,及時(shí)發(fā)現(xiàn)道路上的裂隙和坑洞并進(jìn)行修補(bǔ)可以有效地減少路面病害(裂隙、坑洞)帶來的損失,進(jìn)而減少對(duì)路面行車安全的影響。早期的道路病害檢測以傳統(tǒng)LBP、Gabor等紋理特征提取為主,往往在實(shí)際中表現(xiàn)不佳。由于近年發(fā)展起來的深度學(xué)習(xí)技術(shù)可發(fā)揮從數(shù)據(jù)中學(xué)習(xí)表征的優(yōu)勢,基于深度學(xué)習(xí)的檢測方法相對(duì)于傳統(tǒng)的檢測算法來說,其道路病害的檢測精度已經(jīng)有了很好的提升。
基于深度學(xué)習(xí)的道路病害(裂隙、坑洞)檢測方法一般有三種:①圖像分類。對(duì)不同病害類別或等級(jí)的路況圖像進(jìn)行標(biāo)注,并在采集到的圖像中進(jìn)行重疊式區(qū)域劃分,進(jìn)行分類,可以是二類(有無病害)和多類(不同病害級(jí)別)。②語義分割。對(duì)道路病害進(jìn)行像素級(jí)標(biāo)注,使用U-Net等語義分割方法進(jìn)行像素級(jí)分類。好處是可以刻畫病害形態(tài),但標(biāo)注代價(jià)極其大。③目標(biāo)檢測。將病害位置標(biāo)成目標(biāo)框,在采集的圖像中進(jìn)行目標(biāo)檢測,既可得到位置也可以得到類別。本研究采用基于深度學(xué)習(xí)的目標(biāo)檢測算法進(jìn)行檢測。傳統(tǒng)的目標(biāo)檢測算法主要是基于設(shè)計(jì)好的手工特征來進(jìn)行檢測,檢測的效果主要與設(shè)計(jì)的特征質(zhì)量有關(guān)。對(duì)于不同的目標(biāo)而言,沒有一種通用的特征,只能根據(jù)檢測對(duì)象的特點(diǎn)有針對(duì)性地設(shè)計(jì)特征,所以魯棒性很差[1-2]。近年來,基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)取得了長足的進(jìn)步,無論是在檢測效率還是準(zhǔn)確率上都取得了很好的效果。
目前基于深度學(xué)習(xí)的目標(biāo)檢測算法大致可以分為兩種方式:Two-stage目標(biāo)檢測算法與Onestage目標(biāo)檢測算法。Two-stage系列算法在目標(biāo)檢測過程中分兩步完成,首先通過算法生成一系列的候選區(qū)域,然后再通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類 , 代 表 性 的 算 法 有 RCNN[3]、 Fast RCNN[4]、Faster RCNN[5]等,這一系列算法在檢測的準(zhǔn)確率和定位精度上相對(duì)要好一些,但在檢測速度上無法滿足實(shí)時(shí)性的需求。One-stage系列算法將目標(biāo)檢測問題直接當(dāng)作回歸問題來處理,不產(chǎn)生候選區(qū)域,直接預(yù)測出目標(biāo)位置與類別;代表性的算法有 YOLO[6]、YOLOv2[7]、YOLOv3[8]、SSD[9-10]、RetinaNet[11]等,One-stage系列的算法精度上相對(duì)于Two-stage系列算法要低一些,但是檢測速度要快很多。
相比于其他檢測,道路病害檢測具有兩個(gè)非常大的困難:①道路圖像擁有很多不規(guī)則形狀的目標(biāo)。②高分辨率致使背景復(fù)雜,語義信息豐富。因此,該文以O(shè)ne-stage系列算法中的YO?LOv5為基礎(chǔ),針對(duì)道路上的裂縫和坑洞目標(biāo),提出了一種基于pytorch實(shí)現(xiàn)的改進(jìn)型YOLOv5。相比于YOLOv5,本文的貢獻(xiàn)總結(jié)如下:①縮短算法的訓(xùn)練時(shí)間到以前的40%,這意味著我們?cè)诘缆穲D像中可以更加高效地訓(xùn)練得到一個(gè)效果很好的目標(biāo)檢測器。②將注意力機(jī)制引入目標(biāo)檢測算法,并且以多個(gè)視角聚焦在我們感興趣的區(qū)域去訓(xùn)練。③將Transformer模型引入目標(biāo)檢測算法,解決了圖像在訓(xùn)練的過程中因分辨率降低所造成的信息丟失。
基于深度學(xué)習(xí)的目標(biāo)檢測算法通常由四部分組成:input,backbone,neck,head。它主要有兩個(gè)分支:一階段和二階段。二階段算法主要由候選區(qū)域提取和目標(biāo)的分類與回歸組成。一階段算法不用提取候選區(qū)域提取,可以直接確定物體的類別和位置。因此,兩階段算法精度高、速度慢,一階段算法精度略低、速度快。
一個(gè)通用的目標(biāo)檢測器在backbone主要有以下 6 種 : VGG16, ResNet-50, SpineNet, Effifi?cient Net-B0/B7, CSPResNeXt50, CSPdarket53。它們都以一個(gè)視角去做特征提取,致使往往需要更多的層來達(dá)到提取相對(duì)充分的特征。但這遠(yuǎn)遠(yuǎn)不夠,而且還使整個(gè)目標(biāo)檢測器的效率低下。
目前,在neck階段的方式主要有:FPN,PAN。 NAS-FPN, Fully-connected FPN, Bifpn,ASFF,SDAM。按照融合和預(yù)測的分類順序,它們的融合方式主要分為早融合和晚融合。它們?cè)谌诤线^程中并沒有關(guān)注到所有的特征層,僅僅通過簡單的堆疊和疊加操作進(jìn)行融合,并且在融合階段過多地使用下采樣損失了過度的位置和細(xì)節(jié)信息,直接導(dǎo)致了算法的性能沒有達(dá)到一個(gè)更好的水平。
YOLOv5算法作為一種端到端的目標(biāo)檢測模型,只需要在輸入端輸入圖像數(shù)據(jù)即可,在輸出端得到一個(gè)預(yù)測結(jié)果,預(yù)測結(jié)果為邊界框的位置信息、置信度以及所屬類別。如圖1所示,其基本思想是將輸入圖片分割成S×S個(gè)網(wǎng)格,如果標(biāo)注的目標(biāo)中心坐標(biāo)落在某個(gè)網(wǎng)格中,那么就由該網(wǎng)絡(luò)來檢測這個(gè)目標(biāo)。每一個(gè)網(wǎng)格都會(huì)預(yù)測出B個(gè)邊界框,每個(gè)邊界框都包含位置信息(x,y,w,h)、置信度(Confidence)以及C個(gè)類別的概率,對(duì)于輸出層來說,最終的輸出維度為S×S×B×(4+1+C)的張量。置信度是指邊界框包含目標(biāo)的可能性Pr(object)以及包含目標(biāo)情況下邊界框準(zhǔn)確度IoU的乘積。
當(dāng)檢測目標(biāo)位于該網(wǎng)格中,Pr(object)=1,否則為0。IoU用于表達(dá)真實(shí)框與預(yù)測框的重疊度,表示的是預(yù)測框和真實(shí)框的交集與并集的比值。當(dāng)一個(gè)目標(biāo)被多個(gè)檢測框所預(yù)測時(shí),通過設(shè)定閾值,將置信度低于閾值的邊界框去除,并且對(duì)高于閾值的邊界框進(jìn)行非極大值抑制,去除多余的邊框,最終得到最佳邊界框。
YOLOv5采用Cspdarket53作為特征提取網(wǎng)絡(luò)。Cspdarket53相對(duì)于darket53來說,加入了cross stage partial結(jié)構(gòu),擁有特征復(fù)用和截?cái)嗳哂嗵荻刃畔鬟f的優(yōu)點(diǎn)。Cspdarket53有一個(gè)Darket?Conv2D_BN_Mish和數(shù)個(gè)Resblock_body組成。YOLOv5在cspdarket53之后介入了FPN+PAN結(jié)構(gòu),增加了模型的感受域,借用了PANET的思想,用來聚合不同尺度的特征層對(duì)應(yīng)的參數(shù)。
由于YOLOv5的最初版本在backbone階段,有過多卷積層的無效堆疊。這造成了三個(gè)現(xiàn)象:特征提取并不充分和目標(biāo)檢測器的泛化能力差。為此,我們將Transformer模型引入backbone。并且與注意力機(jī)制相結(jié)合。這樣,我們的目標(biāo)檢測器就可以得到不同的數(shù)據(jù)表示并時(shí)刻聚焦在我們感興趣的區(qū)域。
在neck階段,沒有對(duì)特征進(jìn)行有效融合,采用無效的卷積操作。直接導(dǎo)致了目標(biāo)檢測器效果差、訓(xùn)練時(shí)間長和實(shí)時(shí)性低下的問題。在深度學(xué)習(xí)的目標(biāo)檢測算法中,為了提高算法的性能,在neck階段主要做的工作是融合不同尺度的特征。低層特征的分辨率更高,包含更多的位置和細(xì)節(jié)信息,但語義性更低、噪聲更多。高層特征的分辨率更低,對(duì)細(xì)節(jié)的感知能力較差,但其包含更多的語義特征。為了將兩者做一個(gè)有效的融合,很多人做了大量的工作。針對(duì)這些問題,本文將backbone提取的所有的特征層都引入到neck,在融合階段加入注意力機(jī)制,去除了在neck階段的多余卷積操作。
在backbone部分。其改進(jìn)主要如下:①在SPP之后引入Transformer模型和SE注意力機(jī)制;②采用C3特征提取模型和注意力機(jī)制交叉結(jié)合的方式。
在head部分。其改進(jìn)主要如下:①將C3TR Transformer模型替代Yolo-v5中的C3特征提取模型,將backbone提取的所有特征層都接入neck。②在concat階段,采用和注意力機(jī)制結(jié)合的方式。
這項(xiàng)研究使用的是2020年IEEE大數(shù)據(jù)國際會(huì)議大數(shù)據(jù)杯組織的全球道路損傷檢測挑戰(zhàn)賽(GRDDC)的數(shù)據(jù)集,該數(shù)據(jù)集是從印度、日本和捷克共和國收集的26336個(gè)道路圖像。包括三個(gè)部分:Train,Test1,Test2。Testl和 Test2 包括2631和2664張圖像,約50%的圖像來自日本,37%來自印度,約13%來自捷克共和國。Train則包括帶有PASCAL VOC格式XML文件標(biāo)注的道路圖像,包含來自日本的10506張圖像,來自捷克共和國的2829張圖像和來自印度的7706張圖像,如表1所示。所有路面裂縫分為縱向裂縫、橫向裂縫、鱷魚裂縫和坑洼裂縫,如圖1所示。每個(gè)損壞類型都用類名(如D0)表示。從表2可以看出,損害類型分為七類。
表2 損傷類型統(tǒng)計(jì)
圖1 訓(xùn)練數(shù)據(jù)中不同損傷類型實(shí)例的分布
文中算法是在Pytorch深度學(xué)習(xí)框架上實(shí)現(xiàn)的,實(shí)驗(yàn)使用的配置NVIDIA TITAN RTX GPU、16 G內(nèi)存、操作系統(tǒng)為Ubuntu20.04的硬件平臺(tái)上訓(xùn)練與檢測。模型訓(xùn)練策略如表3所示。
表3 檢測模型訓(xùn)練策略
文中通過計(jì)算一張圖片耗時(shí)、幀率、準(zhǔn)確度與平均精度進(jìn)行模型性能評(píng)估。
為了加快訓(xùn)練速度,提高檢測精度,采用了SE注意力機(jī)制和Transformer模型,在計(jì)算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域,注意力機(jī)制被廣泛用于學(xué)習(xí)技術(shù)。本研究使用在ImageNet上預(yù)先訓(xùn)練的yolo權(quán)值作為道路損傷檢測任務(wù)的初始化權(quán)值。由于訓(xùn)練數(shù)據(jù)集由三個(gè)不同國家的圖像組成,路面和開裂紋理之間存在一定的差異。雖然日本和捷克共和國的圖像有一些相似之處,但它們與印度的路面圖像仍有很大差距。因此,很明顯,在一個(gè)綜合的三國數(shù)據(jù)集上訓(xùn)練的單一模型會(huì)產(chǎn)生較差的檢測和表征結(jié)果。因此,考慮到這一點(diǎn),本研究訓(xùn)練了一個(gè)模型僅檢測日本和捷克共和國的路面損害,而另一個(gè)模型則訓(xùn)練檢測印度的路面病害。在NVIDIA TITAN RTX GPU上運(yùn)行時(shí),提出的模型實(shí)現(xiàn)了大約每秒65幀的推理速度。類似地,一個(gè)針對(duì)日本和捷克共和國數(shù)據(jù)集提出的模型經(jīng)過54個(gè)epoch訓(xùn)練的模型大約為381兆字節(jié)。經(jīng)過66個(gè)epoch訓(xùn)練的模型平均約為729兆字節(jié)。在這里,總訓(xùn)練時(shí)間大約是15小時(shí)。為了了解基于YOLO模型的性能,網(wǎng)絡(luò)以恒定的學(xué)習(xí)率、權(quán)重和動(dòng)量訓(xùn)練了300個(gè)epoch。從實(shí)驗(yàn)結(jié)果可以看出,在50-70個(gè)epoch訓(xùn)練的模型性能要優(yōu)于150-300個(gè)epoch訓(xùn)練的模型。
為了驗(yàn)證文中提出模型的性能,將改進(jìn)算法與YOLOv5進(jìn)行性能測試對(duì)比,結(jié)果見表3和表4。通過對(duì)表格數(shù)據(jù)的分析可以發(fā)現(xiàn)改進(jìn)之后的算法在均值平均精度(mAP)和檢測耗時(shí)上都較YOLOv3有了不同程度的提升,這反映出了文中算法改進(jìn)的有效性。
表4 改進(jìn)算法與YOLOv5模型檢測準(zhǔn)確率對(duì)比
本研究提出了一種路面自動(dòng)化處理方法使用深度學(xué)習(xí)的遇險(xiǎn)檢測和表征。研究表明,模型在檢測鱷魚裂縫和橫向裂縫檢測困難。特別是,從印度獲得的數(shù)據(jù)庫非常少可以看到橫向裂縫的實(shí)例。這引起了一些錯(cuò)誤的分類來自印度的圖像,并導(dǎo)致了一個(gè)與縱向裂縫混淆。此外,從印度和捷克共和國的數(shù)據(jù)顯示,道路損傷等級(jí)似乎有些不平衡。不管怎樣,來自日本的數(shù)據(jù)集幫助模型實(shí)現(xiàn)了非常準(zhǔn)確的檢測。本文在道路病害圖像檢測的實(shí)際問題的啟發(fā)下,針對(duì)基于深度學(xué)習(xí)的目標(biāo)檢測算法在道路圖像具有的復(fù)雜背景和目標(biāo)難以分辨的特點(diǎn)下難以充分提取特征和有效進(jìn)行特征融合的問題。在YOLOv5的基礎(chǔ)上,引入了C3TR Transformer模型和注意力機(jī)制。經(jīng)實(shí)驗(yàn)表明,該模型能更充分的提取特征與更有效地進(jìn)行特征融合,提高了檢測性能。并且在檢測精度方面也優(yōu)于現(xiàn)有的目標(biāo)檢測方法。其中,由于第一次將Transformer模型引入目標(biāo)檢測算法,有著很好的效果。因此,今后的研究方向可能更關(guān)注Transformer模型在目標(biāo)檢測領(lǐng)域的應(yīng)用。