傅幼華,羅文婷,李 林,倪昌雙,楊 振
(1.福建農林大學 交通與土木工程學院, 福州 350108; 2.南京工業(yè)大學 交通運輸工程學院,南京 211816)
裂縫是瀝青路面最常見的病害表現形式之一,如果不能及時修復路面上的破損裂縫,將會嚴重影響道路的使用性能。目前,我國大部分公路路面裂縫檢測仍然采用傳統(tǒng)的人工檢測方法[1],但由于傳統(tǒng)的人工檢測存在勞動強度大、人員主觀性大、工作效率低、檢測時影響正常通行和具有危險性等諸多缺陷,因此,人工檢測已無法滿足當前公路路面裂縫的檢測要求。
近年來,人工智能技術迅速發(fā)展,路面裂縫自動化檢測法的產生不僅提高了裂縫的檢測效率,更克服了傳統(tǒng)人工檢測存在的各方面制約,使路面病害檢測更加精準和科學。
自動化檢測法分為基于傳統(tǒng)圖像識別技術的檢測方法和基于深度學習的檢測方法。傳統(tǒng)圖像識別技術的檢測方法主要通過圖像灰度值的變化來定義病害區(qū)域,主要包括區(qū)域生長算法[2]、邊緣檢測算法[3-4]和閾值分割[5-6]等,這些方法在病害圖像中灰度差異值較大時檢測效果較好,但在復雜背景下檢測的誤檢率較高,為克服復雜背景的影響:張德津等[7]參考裂縫的幾何特征和空間分布等,提出基于空間聚集特征的瀝青路面裂縫檢測方法;陶健等[8]針對路面不均勻光照等因素,利用圖像局部紋理特征和連通域鄰域來實現裂縫提取。自動化路面裂縫檢測法中基于深度學習的檢測方法可以更好地實現目標特征的學習和分類,主要的目標檢測算法有Faster R-CNN[9]、FPN[10]、SSD[11]和YOLO[12]系列等:Liu等[13]在 FPCNet 網絡的基礎上添加多擴展模塊和上采樣結構,較好地實現了像素級的裂紋檢測;陳旭丹等[14]采用YOLO 目標檢測算法來實現對路面常見病害的精確識別;孫朝云等[15]改進 Faster R-CNN 檢測算法,并對路面裂縫進行檢測,達到了較高的檢測精度。針對復雜背景,章世祥等[16]對Mask R-CNN 的主干網絡進行改進,添加Res Net模型與FPN擴展,有效保留裂縫的紋理與輪廓,提高裂縫細節(jié)信息的提取能力,實現復雜背景下裂縫的有效識別。
綜上所述,目前基于深度學習的自動化檢測方法大多是針對路面裂縫檢測模型算法的研究,對深度學習模型數據集的處理研究較少。在劃分訓練集和驗證集時,大多使用隨機分割的方式,使裂縫特征不能合理地分布在訓練集和驗證集中。而傳統(tǒng)圖像識別技術有利于裂縫特征的提取,為裂縫數據微觀精分奠定基礎。因此,結合傳統(tǒng)的圖像識別技術,對深度學習裂縫數據集進行微觀精分處理,提高瀝青路面裂縫檢測模型精度。
目前,深度學習數據庫大多采用隨機分割的方式劃分訓練集和驗證集,這可能使瀝青路面病害的某一類典型特征全部分布在訓練集或驗證集中,導致深度學習模型并不能全面地學習裂縫特征并調整模型超參數。對瀝青路面裂縫數據進行微觀精分,能夠有針對性地將裂縫特征分布到訓練集和驗證集中。深度模型會使裂縫特征學習更加均衡,提高路面裂縫檢測模型的準確性和泛化性。在進行深度學習模型訓練前,需要將裂縫數據通過標注軟件Labelimg進行標注,此時裂縫數據庫未精分。標注完裂縫數據后,對裂縫數據進行初步分析,發(fā)現裂縫具有較大區(qū)別的線性狀態(tài)和龜裂網狀2種形態(tài),因此,將裂縫宏觀精分為線性裂縫和龜裂,并將標簽進行相應修改。對于線性裂縫和龜裂,同一種病害可能具有幾種不同的形態(tài)特征。根據病害的具體特征,對線性裂縫和龜裂進行微觀精分,數據精分的最終結果如圖1所示。
圖1 數據精分最終分類結果
將標注好的裂縫圖片進行宏觀精分處理,主要可以分為裂縫特征提取和裂縫特征分類兩部分。
1.1.1 裂縫特征提取
裂縫特征提取首先是將裂縫的感興趣區(qū)域進行截取,然后通過基于迭代法的局部自適應閾值化對裂縫的骨干特征進行提取,最后通過去除孤立點完成裂縫圖片的降噪,裂縫特征的提取流程如圖2所示。
圖2 裂縫特征提取流程
1)感興趣區(qū)域截取。文中研究是基于激光車采集的裂縫圖片,圖片的像素為3 360像素×1 900像素。圖片的尺寸較大,若將整張圖片進行處理,所需時間較長。為了對裂縫數據進行宏觀精分,需對裂縫的骨架進行提取。裂縫相對于背景顏色較黑、灰度值較低,而道路中卻普遍存在白色的車道線,為消除車道線的影響,根據已經標注好的裂縫區(qū)域,獲取標注文件xml中的裂縫坐標,將裂縫圖片中的裂縫部分進行截取。
2)基于迭代法的局部自適應閾值化對裂縫圖像進行處理。路面具有多紋理性、裂縫上灰度的多變性、裂縫弱信號性以及輸出端存在干涉現象等都會導致圖片灰度不均。因此,通常的閾值選取方法很難得到最佳閾值,采用一種基于迭代法的局部自適應閾值化方法對裂縫特征進行提取。局部自適應閾值化是根據像素鄰域塊的像素值分布來確定該像素位置上的二值化閾值,常用的局部自適應閾值有局部鄰域塊的均值法和高斯加權和,但該閾值法提取裂縫效果較差,存在較多噪點。而基于迭代法的局部自適應閾值化對裂縫的提取效果較好,算法步驟如下所述。
步驟2:根據T將該局部鄰域塊分為裂縫和背景兩部分,將其中灰度值小于T的像素劃分為裂縫、灰度值大于T的像素劃分為背景,分別求出裂縫的灰度平均值V1和背景灰度平均值V2。
步驟4:根據求得各局部鄰域塊的最佳閾值T進行圖像的閾值分割,分割后的二值化圖像如式(1)所示,其中I(i,j)是指第i行第j列的灰度值。裂縫局部自適應閾值化效果對比如圖3所示。
圖3 裂縫局部自適應閾值化效果對比
(1)
3)通過去除孤立點完成裂縫圖片降噪?;诘ǖ木植孔赃m應閾值化對裂縫圖像進行二值化處理,雖然相比于其他閾值化方法效果較好,但仍存在一部分噪點。結合形態(tài)學方法和區(qū)域生長算法,根據八鄰域將所有符合條件的連通域遍歷出來,設置連通域最小閾值。若連通域小于最小閾值,則該連通域中的點為孤立點,將該點的灰度值填充為背景灰度值,實現裂縫圖片降噪。
1.1.2 裂縫特征分類
經過傳統(tǒng)圖像處理的裂縫特征提取,得到具有明顯裂縫特征的二值圖像。通過對裂縫圖像輪廓的提取,根據孔邊界輪廓的個數和面積,對裂縫圖片進行分類。將裂縫宏觀精分為線性裂縫和龜裂,如圖4所示。
圖4 宏觀精分流程
根據裂縫特征,對裂縫進行宏觀精分的核心算法如下:
1)將獲得的裂縫二值圖像,通過Open CV提供find Contours函數進行輪廓提取,其中的參數選取為mode=RETR_LIST, method=CHAIN_APPROX_NONE,并將識別出來的所有輪廓保存在輪廓數組Contours={C0,C1,…,Cn}中。
2)將輪廓數組C的每個輪廓值進行遍歷,計算圖片上每個輪廓包圍內的灰度平均值,若存在灰度平均值為0,則存在孔邊界輪廓;若灰度平均值為255,則為外邊界輪廓,此時的裂縫特征為線性狀態(tài),故分類為線性裂縫。
3)若裂縫存在孔邊界輪廓,則將孔邊界輪廓個數進行累加得n,若n大于等于設定閾值N,則裂縫可劃分為龜裂,經多次測試可得,N取5時達到最佳分類效果。若n小于設定閾值N,則考慮孔邊界輪廓包圍的面積,通過式(2)計算總孔輪廓包圍面積s,若s≥設定閾值S,則裂縫分類為龜裂,若s<設定閾值S,則裂縫分為線性裂縫,經多次測試可得S取800時達到最佳分類效果,式中f(i,j)指孔輪廓包圍內坐標(i,j)處的像素點,龜裂和線性裂縫的宏觀精分如圖5所示。
圖5 龜裂與線性裂縫宏觀精分
(2)
1.2.1 龜裂微觀精分
將經過宏觀精分的龜裂數據,根據龜裂的灰度值進行微觀精分,具體流程如圖6所示。將標注文件xml中的龜裂坐標進行提取,得到標注框的4點坐標信息Xmin、Xmax、Ymin、Ymax。確定龜裂在圖片中的位置,遍歷被標注區(qū)域內的灰度值,累計灰度值大于100的個數為A。若A大于等于所設定的閾值,將龜裂分類為白色龜裂;反之,龜裂可分類為黑色龜裂。根據多次測試以及圖片的具體分析可得,取設定閾值為50時,能較好區(qū)分白色龜裂和黑色龜裂,分類示意如圖7所示。
圖6 龜裂微觀精分流程
圖7 龜裂微觀精分
1.2.2 線性裂縫微觀精分
將經過宏觀精分的線性裂縫數據,根據線性裂縫的傾斜度和長度值進行微觀精分。圖片的總長度為L,總寬度為W。將標注文件xml中線性裂縫的坐標進行提取,得到標注框的4點坐標信息Xmin、Xmax、Ymin、Ymax,根據式(3)計算線性裂縫的傾斜角和長度值。根據傾斜角的范圍和裂縫長度值將線性裂縫分為橫長向裂縫、橫短向裂縫、縱長向裂縫、縱短向裂縫、傾斜長向裂縫和傾斜短向裂縫,線性裂縫微觀精分情況如圖8所示。
圖8 線性裂縫微觀精分
(3)
式中:θ為線性裂縫傾斜角,r為線性裂縫長度,R為圖片對角線長度,L為圖片總長度,W為圖片總寬度。
目前,在基于深度學習的目標檢測模型中較為常用的是YOLO系列模型,該系列模型在COCO等目標檢測數據集中具有檢測速度較快和檢測精度較高等優(yōu)勢。因此,文中選取Yolov5模型對改進的數據集進行驗證實驗,測試數據集精分后能否提高路面裂縫檢測模型的精度。
文中用于訓練的圖片共1 200張,圖片大小為3 360像素×1 900像素。為測試數據集微觀精分是否能夠提高路面裂縫檢測模型的精度,共準備了3個數據集。在劃分訓練集和驗證集時,將精分后的數據類別采用4∶1的數據分配比例,分配到相應的訓練集和驗證集中。
首先,未精分數據集。將1 200張圖片中的所有裂縫標注為統(tǒng)一標簽裂縫Crack,不對數據進行精分,如表1所示。其次,宏觀精分數據集。根據裂縫的宏觀精分方法,將裂縫圖片宏觀精分為龜裂和線性裂縫,將統(tǒng)一標簽Crack相應修改為龜裂AlligatorCrack和線性裂縫LinearCrack,如表2所示。最后,微觀精分數據集。根據龜裂和線性裂縫的微觀精分方式,將宏觀精分數據集中的龜裂分為白色龜裂和黑色龜裂,將線性裂縫分為橫長向裂縫、橫短向裂縫、縱長向裂縫、縱短向裂縫、傾斜長向裂縫和傾斜短向裂縫,標簽名稱不改變,如表3所示。
表1 未精分數據庫數據分布
表2 宏觀精分數據庫數據分布
表3 微觀精分數據庫數據分布
2.3.1 裂縫檢測模型的評價指標對比
實驗采用的硬件環(huán)境為:NVIDIA GeForce RTX3080GPU顯卡,Intel Core i7 CPU 處理器,內存10 GB。軟件環(huán)境為:Window10操作系統(tǒng),Python 3.7.10,torch1.9.0。在訓練過程中batch size設置為8,圖片輸入尺寸為896像素×896像素,epochs設置為300輪。
文中在公路路面裂縫檢測過程中,采用查準率、召回率和mAP@.5作為路面裂縫檢測模型的評價指標。一般來說,查準率越高則召回率越低,而查準率-召回率(P-R)曲線則沒有這個問題,能較好地反映模型性能好壞。P-R曲線下包圍的面積為平均精確度,各類平均精確度的均值為mAP。mAP@.5指當交并比IOU取0.5時,算法找到框中的IOU>0.5就是一個有效檢測。mAP@.5的值越高,模型檢測性能就越好,如式(4)所示。
(4)
式中:TP為算法識別為裂縫,且與人工標注一致的數量;FP為算法識別為裂縫,但人工標注為非裂縫數量;FN為算法識別為非裂縫,但人工標注為裂縫數量;P為查準率;R為召回率;N為類別數。
在Yolov5模型訓練中未精分數據庫、宏觀精分數據庫和微觀精分數據庫下的路面裂縫檢測模型分別在237輪、251輪和216輪取得最優(yōu)模型。各數據庫下最優(yōu)模型的評價指標如圖9~11所示。
圖9 各數據庫下的模型指標對比
圖10 不同數據庫模型中龜裂指標對比
圖11 不同數據庫模型中線性裂縫指標對比
通過對比Yolov5模型在不同訓練庫下的路面裂縫模型評價指標,數據庫經過微觀精分后,路面裂縫模型的性能有了明顯提高。與整體裂縫的mAP@.5值對比可得,微觀精分相較于宏觀精分的裂縫病害模型mAP@.5提高了8.9%,宏觀精分相較于未精分的裂縫病害模型mAP@.5提高了5.8%。對比微觀精分和宏觀精分的龜裂和線性裂縫可得,經過微觀精分后的龜裂查準率、召回率和mAP@.5都有明顯提升;線性裂縫的查準率提升召回率卻下降,但整體mAP@.5提升了5.1%。龜裂病害產生時,面積一般較大,在標注框內特征較多,而線性裂縫通常是一條裂縫,可供算法學習的特征相對較少。因此微觀精分后,瀝青路面裂縫檢測模型對于龜裂的檢測性能提高較為明顯。
2.3.2 裂縫檢測模型的測試結果對比
為測試未精分數據庫、宏觀精分數據庫和微觀精分數據庫訓練所得的路面裂縫檢測模型對實際路面裂縫的檢測效果,實驗隨機選取福建省福銀高速上行二車道AK213中的2 km路段為測試路段,激光車以2 m為間隔采集路面圖片,共采集1 000張圖片進行測試。每10張路面圖片進行一次P-R值計算,測試結果通過繪制P-R空間點圖來對比3個模型的檢測效果,如圖12~14所示。
圖12 未精分數據庫模型P-R空間點
圖13 宏觀精分數據庫模型P-R空間點
圖14 微觀精分數據庫模型P-R空間點
通過3個模型的P-R空間點圖對比可得,微觀精分數據庫模型的查準率和召回率都集中在右上角,檢測效果較佳。相比之下,未精分數據庫模型和宏觀精分數據庫模型檢測結果的P-R空間點比較離散,對實際路面病害裂縫的檢測泛化性不足。
文中提出了一種基于裂縫數據微觀精分的深度學習裂縫數據集處理方法。該方法結合傳統(tǒng)圖像處理方法對深度學習模型的數據集進行改進,以此來提高路面裂縫檢測模型的精度。通過YOLOv5模型的驗證實驗,得到以下結論。
1)深度學習數據集經過微觀精分后,相較于宏觀精分和未精分的裂縫病害模型,模型的整體性能有明顯提高。
2)在隨機路段上,微觀精分的路面病害模型對瀝青路面上的裂縫有較好檢測效果,相比于宏觀精分和未精分的裂縫病害模型,其泛化性更強。
3)對瀝青路面裂縫的數據集進行微觀精分處理,能夠有效提高路面裂縫檢測模型的檢測效果,為瀝青路面病害自動化檢測提供一種新的思路及方法。