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