常 瑩, 蔡蓉賓
1.上海城建城市運(yùn)營(yíng)(集團(tuán))有限公司 上海 200023 2.上海市政養(yǎng)護(hù)管理有限公司 上海 201103
市政道路是城市公共基礎(chǔ)設(shè)施的重要組成部分之一,城市公共基礎(chǔ)設(shè)施的建設(shè)和維護(hù)則是衡量一個(gè)地區(qū)經(jīng)濟(jì)狀況的重要指標(biāo)。雨水、老化、超重車(chē)輛擠壓等許多因素都會(huì)對(duì)市政道路健康狀況產(chǎn)生嚴(yán)重影響,所導(dǎo)致的各種路面病害不僅給行車(chē)帶來(lái)安全隱患,而且對(duì)車(chē)輛本身造成損壞。對(duì)此,各國(guó)每年都會(huì)為市政道路維護(hù)和修繕投入大量預(yù)算資金。美國(guó)聯(lián)邦公路管理局于2013年發(fā)布的一項(xiàng)統(tǒng)計(jì)報(bào)告顯示,美國(guó)公路網(wǎng)總長(zhǎng)已達(dá)412萬(wàn)mi(1 mi=1.609 34 km),政府部門(mén)每年需投入超過(guò)300億美元的資金來(lái)新建市政道路及維護(hù)、修繕已有的市政道路。
高效實(shí)施市政道路日常養(yǎng)護(hù)工作,前提是需要一套穩(wěn)定的監(jiān)控巡檢系統(tǒng)。若依靠人工進(jìn)行日常目視檢查,則雖然直觀有效,但是非常耗時(shí)耗力,效率低下,并且人工成本在日益提高。為改善市政道路人工日常巡檢方式性價(jià)比低的情況,技術(shù)人員研發(fā)了各種自動(dòng)路面病害檢測(cè)方法,主要包括基于振動(dòng)傳感的檢測(cè)方法、基于激光掃描探傷的檢測(cè)方法、基于計(jì)算機(jī)視覺(jué)圖像處理的檢測(cè)方法等[1-6]。采用基于振動(dòng)傳感的檢測(cè)方法,成本較低,但由于受到振動(dòng)傳感器與路面接觸部分的限制,無(wú)法大規(guī)模進(jìn)行應(yīng)用。采用基于激光掃描探傷的檢測(cè)方法,雖然能夠提供準(zhǔn)確的路面信息,但是成本高昂,并且在實(shí)施過(guò)程中,需要對(duì)相關(guān)路段進(jìn)行封閉。采用基于計(jì)算機(jī)視覺(jué)圖像處理的檢測(cè)方法,雖然成本低廉,但是由于還處于研究初期,缺乏足夠的精準(zhǔn)度。近幾年,圖像分析技術(shù)快速發(fā)展,在交通流量分析、災(zāi)害預(yù)警、圖像搜索等方面進(jìn)行應(yīng)用,取得了令人較為滿意的結(jié)果。目前,技術(shù)人員正在推進(jìn)圖像分析技術(shù)在路面病害識(shí)別方面的研究。一些研究人員開(kāi)始采用最新的深度學(xué)習(xí)技術(shù)來(lái)開(kāi)發(fā)基于計(jì)算機(jī)視覺(jué)的路面病害自動(dòng)檢測(cè)方法。但是,這些方法大部分僅僅能夠區(qū)分路面是否有損傷,或僅僅能夠區(qū)分不同種類(lèi)的裂縫,如橫向裂縫、縱向裂縫、龜裂等。在實(shí)際場(chǎng)景中,市政道路養(yǎng)護(hù)單位在開(kāi)展維修作業(yè)之前,還需要明確路面病害的具體類(lèi)別,如坑塘、裂縫,或其它病害。筆者基于卷積神經(jīng)網(wǎng)絡(luò),對(duì)多類(lèi)別路面病害進(jìn)行識(shí)別研究,通過(guò)對(duì)不同類(lèi)別路面病害樣本進(jìn)行訓(xùn)練,得到能夠有效識(shí)別多達(dá)八種不同類(lèi)別的分類(lèi)器,識(shí)別準(zhǔn)確率最高可達(dá)0.934 8。
根據(jù)路面病害具體情況,設(shè)計(jì)了專門(mén)針對(duì)路面病害的檢測(cè)識(shí)別深度卷積神經(jīng)網(wǎng)絡(luò)框架。這一框架基于最新的YOLO算法第三版目標(biāo)檢測(cè)網(wǎng)絡(luò),提出用九個(gè)錨(anchor)進(jìn)行檢測(cè),這些錨是根據(jù)各類(lèi)別道路病害樣本聚類(lèi)得到的。原始YOLO算法中用五個(gè)錨進(jìn)行檢測(cè),考慮到路面病害樣式較多,形狀變化大,并且不是剛性變形,與人臉、物體等檢測(cè)對(duì)象完全不同,對(duì)于傳統(tǒng)的基于邊框進(jìn)行檢測(cè)而言是一種挑戰(zhàn),因此決定使用更多個(gè)不同尺度的錨去進(jìn)行檢測(cè)。原始YOLO算法目標(biāo)檢測(cè)框架原理如圖1所示。圖1中,(x,y)為錨框(anchor box)中心點(diǎn)坐標(biāo),w為錨框?qū)?h為錨框高。
圖1 原始YOLO算法目標(biāo)檢測(cè)框架原理
對(duì)于一些路面病害而言,差異性較小,如裂縫與路面拼接處的接縫、線性裂縫與龜裂,兩者之間在視覺(jué)上的差異非常小。為了能夠得到可以區(qū)分差異性較小的不同種類(lèi)路面病害的檢測(cè)方法,采用一種在人臉識(shí)別中較為經(jīng)典的損失函數(shù)——三元組損失函數(shù)。采用常規(guī)三元組損失函數(shù)時(shí),為了能夠描述整個(gè)數(shù)據(jù)集的分布,需要嘗試所有可能的三元組組合。隨著數(shù)據(jù)量的增大,三元組組合的數(shù)量會(huì)成指數(shù)級(jí)增加。可見(jiàn),怎樣合理、高效地采樣,進(jìn)而選取具有代表性的三元組,是亟需解決的問(wèn)題。筆者受線性判別分析啟發(fā),設(shè)計(jì)了一種新的選取三元組的方法。區(qū)別于常規(guī)三元組損失函數(shù),新方法聚焦于樣本類(lèi)別層面,而并非每個(gè)樣本個(gè)體,即利用樣本聚類(lèi)后形成的各類(lèi)別中心來(lái)代表某個(gè)類(lèi)別的整體分布情況。對(duì)于特別情況,在低維度空間中,使輸入的樣本盡可能接近自身所屬類(lèi)別的中心,同時(shí)盡可能遠(yuǎn)離其它類(lèi)別的中心。如圖2所示,假設(shè)一個(gè)數(shù)據(jù)集包含k個(gè)類(lèi)別的樣本,每個(gè)類(lèi)別有n個(gè)樣本,采用常規(guī)三元組損失函數(shù),會(huì)有n(n-1)k個(gè)可能的三元組組合;若采用新的基于類(lèi)別中心的三元組損失函數(shù)構(gòu)建方法,則需要k-1個(gè)三元組,這樣可以大大減少三元組數(shù)量,從而顯著降低訓(xùn)練模型的成本。
圖2 三元組損失函數(shù)原理對(duì)比
YOLO是一個(gè)專為目標(biāo)檢測(cè)任務(wù)而設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)算法,能在取得較高多類(lèi)別平均識(shí)別準(zhǔn)確率均值的同時(shí),具有較快的運(yùn)算速度[7]。另外,YOLO算法能夠依靠單獨(dú)一個(gè)卷積神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)目標(biāo)的區(qū)域和所屬類(lèi)別。YOLO算法的一個(gè)優(yōu)勢(shì)特征是處理速度相當(dāng)快,原因是YOLO算法將目標(biāo)檢測(cè)問(wèn)題僅僅作為回歸問(wèn)題來(lái)處理,通過(guò)考慮圖像背景信息來(lái)檢測(cè)候選目標(biāo)。在輸入一張待檢測(cè)圖像后,YOLO算法最終輸出候選目標(biāo)檢測(cè)邊框的坐標(biāo),以及推理的置信度。在原始YOLO算法中,以Darknet19為主干網(wǎng)模型,該模型由19個(gè)卷積層和5個(gè)池化層組成。
Tiny YOLO算法第二版是YOLO算法第二版的簡(jiǎn)化版本之一,構(gòu)建了一個(gè)具有較高實(shí)時(shí)性,用于檢測(cè)多達(dá)20種不同類(lèi)型目標(biāo)的卷積神經(jīng)網(wǎng)絡(luò)模型,由9個(gè)卷積層和6個(gè)池化層組成。相較于原始YOLO算法,Tiny YOLO算法的優(yōu)勢(shì)是處理速度更快,缺點(diǎn)是由于主干網(wǎng)絡(luò)層次較淺,無(wú)法提取高層次特征,檢測(cè)準(zhǔn)確度較低[8]。
VGG16是由Simonyan和Zisserman于2014年在ImageNet大規(guī)模圖像識(shí)別挑戰(zhàn)賽上提出的一種算法,構(gòu)建了16層卷積神經(jīng)網(wǎng)絡(luò)模型,包含13個(gè)卷積層、3個(gè)全連接層、5個(gè)池化層[9]。由于具有深度模型層次,VGG16算法在2014年ImageNet大規(guī)模圖像識(shí)別挑戰(zhàn)賽,以及對(duì)微軟Common Objects in Context數(shù)據(jù)集檢測(cè)方面均取得了不錯(cuò)的成績(jī)。
MobileNet算法能夠達(dá)到與VGG16相當(dāng)?shù)淖R(shí)別準(zhǔn)確率,并且僅僅使用了后者1/30的計(jì)算資源和模型尺寸[10]。MobileNet算法構(gòu)建了專門(mén)用于各種移動(dòng)平臺(tái)視覺(jué)應(yīng)用程序領(lǐng)域進(jìn)行高效推理的深度卷積神經(jīng)網(wǎng)絡(luò)模型,模型的核心特點(diǎn)和構(gòu)建基石是深度可分離卷積。這種卷積可以將一個(gè)標(biāo)準(zhǔn)卷積分解為一個(gè)深度(DW)卷積和逐點(diǎn)(PW)卷積,從而可以有效降低計(jì)算成本,減少參數(shù)數(shù)量。
Inception算法第二版和第三版能夠在不增加參數(shù)數(shù)量、不提高計(jì)算復(fù)雜度的前提下,通過(guò)引入所謂Inception單元,對(duì)原有卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行升級(jí),從而提升原有網(wǎng)絡(luò)的深度和廣度[11]。
筆者在Linux操作系統(tǒng)下TensorFlow系統(tǒng)中完成訓(xùn)練和測(cè)試,中央處理器選用2 GHz第三代英特爾至強(qiáng)E5-2683處理器,圖形處理器選用英偉達(dá)泰坦XP處理器,操作系統(tǒng)選用烏班圖18.04版本,由TensorFlow和Keras完成算法編程。
用于路面病害識(shí)別算法訓(xùn)練及測(cè)試的數(shù)據(jù)集來(lái)自2018年電氣和電子工程師協(xié)會(huì)大數(shù)據(jù)杯挑戰(zhàn)賽中的道路損傷檢測(cè)與分類(lèi)挑戰(zhàn)賽,是車(chē)載智能移動(dòng)電話采集的日本千葉縣市原市、千葉縣千葉市、愛(ài)知縣長(zhǎng)久手市、靜岡縣沼津市、北海道室蘭市、東京都墨田區(qū)、東京都足立區(qū)高清路面圖片。每張圖片都由手工標(biāo)記了一個(gè)或多個(gè)感興趣區(qū)域,用矩形框坐標(biāo)進(jìn)行標(biāo)記,作為真值標(biāo)記邊框,每個(gè)真值標(biāo)記邊框給定一種路面病害類(lèi)別。
路面病害識(shí)別算法訓(xùn)練及測(cè)試數(shù)據(jù)集見(jiàn)表1,訓(xùn)練樣本總量為12 397,測(cè)試樣本總量為3 038,合計(jì)為15 435。數(shù)據(jù)集中的路面病害分布與占比情況如圖3、圖4所示。
表1 路面病害識(shí)別算法訓(xùn)練及測(cè)試數(shù)據(jù)集
圖3 訓(xùn)練及測(cè)試數(shù)據(jù)集中路面病害分布
圖4 訓(xùn)練及測(cè)試數(shù)據(jù)集中路面病害占比
交并比是視覺(jué)目標(biāo)檢測(cè)任務(wù)評(píng)價(jià)體系中的一個(gè)評(píng)價(jià)標(biāo)準(zhǔn),指算法輸出的目標(biāo)邊框與真值標(biāo)記邊框的重疊程度,即目標(biāo)檢測(cè)結(jié)果與事先人工標(biāo)定好的真值的交集除以目標(biāo)檢測(cè)結(jié)果與事先人工標(biāo)定好的真值的并集。交并比的取值范圍在0~1之間,交并比越大,在其它評(píng)價(jià)標(biāo)準(zhǔn)相同的前提下,目標(biāo)檢測(cè)的效果越好。當(dāng)交并比大于0.5時(shí),定性分析得到的結(jié)果可以認(rèn)為比較不錯(cuò)。
檢測(cè)結(jié)果的交并比大于等于閾值時(shí),得到正確的檢測(cè)。正確的檢測(cè)用于統(tǒng)計(jì)算法模型預(yù)測(cè)得到的所有檢測(cè)結(jié)果中,分類(lèi)信息正確且邊框準(zhǔn)確的檢測(cè)結(jié)果的數(shù)量。檢測(cè)結(jié)果的交并比小于閾值時(shí),得到錯(cuò)誤的檢測(cè)。錯(cuò)誤的檢測(cè)用于統(tǒng)計(jì)算法模型預(yù)測(cè)得到的所有檢測(cè)結(jié)果中,分類(lèi)信息錯(cuò)誤或邊框不準(zhǔn)確的檢測(cè)結(jié)果的數(shù)量。
如果有M個(gè)真值標(biāo)記邊框,而且算法模型預(yù)測(cè)得到的分類(lèi)信息正確且邊框準(zhǔn)確的檢測(cè)結(jié)果數(shù)量少于M,那么沒(méi)有被算法模型檢測(cè)出來(lái)的目標(biāo)數(shù)量稱為遺漏的檢測(cè)。
召回率用于評(píng)價(jià)一個(gè)算法模型預(yù)測(cè)得到的檢測(cè)結(jié)果最多可以覆蓋多少真實(shí)目標(biāo)的能力,由正確的檢測(cè)除以正確的檢測(cè)與遺漏的檢測(cè)之和得到。識(shí)別準(zhǔn)確率用于評(píng)價(jià)一個(gè)算法模型預(yù)測(cè)得到的所有檢測(cè)結(jié)果能命中多少真實(shí)目標(biāo)的能力,由正確的檢測(cè)除以正確的檢測(cè)與錯(cuò)誤的檢測(cè)之和得到。
以召回率為橫軸,以識(shí)別準(zhǔn)確率為縱軸構(gòu)建坐標(biāo)系,召回率和識(shí)別準(zhǔn)確率圍成的面積稱為平均識(shí)別準(zhǔn)確率。在測(cè)試時(shí),針對(duì)每個(gè)類(lèi)別的目標(biāo),通過(guò)算法模型預(yù)測(cè)結(jié)果得到平均識(shí)別準(zhǔn)確率,再對(duì)所有平均識(shí)別準(zhǔn)確率求平均值,即得到算法模型的多類(lèi)別平均識(shí)別準(zhǔn)確率均值。
在研究中,考慮到比較筆者所提新方法與其它深度學(xué)習(xí)算法模型在路面坑塘與裂縫檢測(cè)性能方面的客觀公正性,給定交并比為0.3、召回率為0.7時(shí)的識(shí)別準(zhǔn)確率和平均識(shí)別準(zhǔn)確率,以及給定交并比為0.3時(shí)的多類(lèi)別平均識(shí)別準(zhǔn)確率均值,作為三種不同的評(píng)價(jià)指標(biāo)。其中,多類(lèi)別平均識(shí)別準(zhǔn)確率均值最能反映某個(gè)算法模型在多類(lèi)別樣本數(shù)據(jù)上的全局檢測(cè)性能。
基于筆者所提出的新方法,各常見(jiàn)主干網(wǎng)算法模型路面病害的識(shí)別效果如圖5所示,各常見(jiàn)主干網(wǎng)算法模型的評(píng)價(jià)指標(biāo)結(jié)果見(jiàn)表2~表4,識(shí)別準(zhǔn)確率柱狀圖如圖6所示,平均識(shí)別準(zhǔn)確率柱狀圖如圖7所示,多類(lèi)別平均識(shí)別準(zhǔn)確率均值柱狀圖如圖8所示。
圖5 主干網(wǎng)算法模型路面病害識(shí)別效果
表2 主干網(wǎng)算法模型識(shí)別準(zhǔn)確率
表3 主干網(wǎng)算法模型平均識(shí)別準(zhǔn)確率
表4 主干網(wǎng)算法模型多類(lèi)別平均識(shí)別準(zhǔn)確率均值
圖6 主干網(wǎng)算法模型識(shí)別準(zhǔn)確率柱狀圖
圖7 主干網(wǎng)算法模型平均識(shí)別準(zhǔn)確率柱狀圖
在所有測(cè)試中,基于筆者提出的新方法,采用YOLO算法模型,對(duì)各種線性裂縫等細(xì)小路面病害目標(biāo)的檢測(cè)識(shí)別準(zhǔn)確率最高。同樣基于筆者提出的新方法,采用Inception第三版算法模型,對(duì)坑塘、龜裂等較大尺寸路面病害目標(biāo)的檢測(cè)識(shí)別準(zhǔn)確率最高。對(duì)以上測(cè)試結(jié)果進(jìn)行分析,Inception算法模型網(wǎng)絡(luò)層次有159層,而YOLO算法模型只有22層,層次數(shù)越多,感受野會(huì)越大,對(duì)坑塘、龜裂等大目標(biāo)的檢測(cè)效果就越好。與此同時(shí),由于感受野過(guò)大,造成對(duì)小物體不敏感,因此對(duì)各種線性裂縫小目標(biāo)的檢測(cè)效果,Inception算法模型就不如YOLO算法模型了。
圖8 主干網(wǎng)算法模型多類(lèi)別平均識(shí)別準(zhǔn)確率均值柱狀圖
筆者基于卷積神經(jīng)網(wǎng)絡(luò),對(duì)多類(lèi)別路面病害進(jìn)行識(shí)別研究,提出一種新方法,并應(yīng)用于常見(jiàn)主干網(wǎng)算法模型中。通過(guò)測(cè)試,確認(rèn)采用新方法,多類(lèi)別路面病害的識(shí)別準(zhǔn)確率最高可達(dá)0.934 8,效果良好。