廖飛欽, 馬榮貴, 王 朵, 陳鑫龍
1(長安大學 信息工程學院, 西安 710064)
2(陜西交通控股集團有限公司 寶雞分公司, 寶雞 721399)
截止2021 年4 月, 全國汽車保有量已達到2.87 億輛, 呈逐年累加趨勢. 巨大的車流量使得公路路面病害也在逐年累加, 給公路進行預防性養(yǎng)護工作帶來了很大的困難[1,2]. 其中, 坑槽是公路路面常見的病害之一,其不但影響行車駕駛的舒適度, 而且會導致嚴重的安全隱患. 因此, 路面坑槽檢測技術對進行公路預防性養(yǎng)護工作具有重要的意義[3].
目前檢測公路路面坑槽病害的途徑主要是以下3 種: 一是震動法[4], 該方法利用加速度傳感器的信號反饋來檢測坑槽病害, 設備價格低廉, 處理速度快, 但存在漏檢的缺點, 不適用于準確提取路面坑槽病害. 二是二維圖像分析法[5,6]. 王朋輝等人[6]提出了基于圖像紋理特征以及灰度特征的坑槽提取算法. 該方法主要利用了坑槽與正常路面之間的灰度差異, 但其缺點在于采集圖像的灰度值容易受到采集場地環(huán)境的限制,即光照、天氣變化、陰影、水漬等因素嚴重影響圖像的灰度分布. 這樣將影響到坑槽識別所獲取的面積、深度等信息的精度與準確性. 三是三維重建法, 采用三維技術來重建坑槽的立體模型, 該方法包括立體視覺法[7,8]和三維激光掃描法[9-11]. 張豐梁[7]采用車載雙目識別技術的被動檢測算法來實現(xiàn)坑槽深度的檢測. 該方法易受環(huán)境光照變化、單一紋理等因素的影響, 從而導致圖像匹配具有不穩(wěn)定性, 并且大量的像素點計算使得算法要求較高, 故不適應于公路路面的坑槽提取. Zhang等人[8]基于立體視覺, 使用視差算法生成的視差圖, 根據(jù)坑槽與擬合的二次曲面之間的距離來檢測坑槽. 楊雷等人[10]以激光點云為研究對象, 提出一種剖面自適應曲線擬合的坑槽提取算法, 該方法以剖面中的高曲率點作為坑槽邊界候選點, 之后進行聚類優(yōu)化提取出坑槽輪廓. 該方法需要對每個點計算曲率, 計算量較大.暢陳豪等人[11]提出了基于點云剖面特征描述的坑槽提取算法. 該方法對點云的橫斷剖面以及縱斷剖面分別計算坑槽特征描述, 構建坑槽特征描述算子來自動識別坑槽. 基于三維激光點云, 通過分析點云特征提取坑槽. 該方法可以克服天氣、光照、水漬、陰影等環(huán)境因素的干擾, 具有較高的實用性. 但是該方法受點云密度的影響, 對點云特征點的計算量大、耗時長, 對算法以及處理設備要求較高.
針對車載三維激光點云掃描計算量大的問題, 本文結合RANSAC 算法思想, 快速掃描橫斷面數(shù)據(jù)并判斷坑槽點, 并且與曲率特征檢測坑槽的掃描算法進行對比. 實驗結果顯示, 該方法具有較高的效率, 并且由此采集到的坑槽深度、面積等數(shù)據(jù)準確程度高.
隨機抽樣一致性算法RANSAC (random sample consensus)[12,13], 是通過重復的隨機選取樣本集去估算出一個適用于數(shù)據(jù)集的比較好的數(shù)據(jù)模型. RANSAC算法能夠很好的避開噪聲數(shù)據(jù)對結果的影響, 是比較穩(wěn)健的模型估計方法.
RANSAC 的主要步驟分為以下幾步:
(1)從數(shù)據(jù)集N中隨機抽樣選取建模所需最小樣本集n;
(2)使用最小樣本集n來計算出符合該數(shù)據(jù)集N的數(shù)據(jù)模型參數(shù);
(3)計算所有數(shù)據(jù)與這個模型的誤差, 在誤差閾值內符合這個模型的數(shù)據(jù)記為“內點”, 反之則為“外點”;
(4)比較當前模型與先前計算所得最好模型的“內點”個數(shù), “內點”數(shù)目越多則模型越好, 保存更好模型;
(5)重復步驟(1)-(4), 直到達到設定的迭代次數(shù)k,得出最優(yōu)模型參數(shù).
由于最小二乘法是對所有的數(shù)據(jù)進行的整體最優(yōu)策略, 容易受到異常數(shù)據(jù)的影響, 進而影響實驗效果的精度. RANSAC 算法不僅常用于計算機視覺領域特征點匹配問題上, 同樣在路面點云數(shù)據(jù)優(yōu)化處理上也有非常好的效果[14]. 在存在坑槽的路面橫斷面數(shù)據(jù)上, 計算橫斷面回歸線, 采用最小二乘法與RANSAC 算法計算結果示意圖如圖1 所示.
圖1 RANSAC 算法與最小二乘法比較示意圖
該測試示例數(shù)據(jù)包含16 個正常路面點以及4 個異常點, 可以看出采用最小二乘法受到異常點的影響,在一定程度上偏離了大部分的正常路面點, 即存在了明顯的誤差. 而采用RANSAC 算法, 則能很好的避開異常點, 誤差較小, 實驗效果良好. 因此, 在存在異常數(shù)據(jù)的情況下去估計數(shù)據(jù)模型, 采用RANSAC 算法要更優(yōu)于最小二乘法.
由激光檢測車采集的三維高程點云數(shù)據(jù), 可以簡化為一個個二維的橫斷面數(shù)據(jù). 由于路面點云的橫斷面數(shù)據(jù)大多數(shù)是不存在坑槽的, 需要避免對點云中大量的正常路面點進行復雜的特征點提取判斷, 節(jié)省計算量及計算時間, 首先使用RANSAC 對點云橫斷面數(shù)據(jù)進行基準線分析, 矯正車載檢測橫梁帶來的擾動, 并且初步判斷該橫斷面上是否存在坑槽點及記錄其位置;對于存在坑槽的橫斷面, 選出存在坑槽點的局部區(qū)域,可認為局部區(qū)域是一個平面, 使用RANSAC 計算回歸基準平面, 即路面所在平面; 之后由點云數(shù)據(jù)與局部基準平面的關系, 將坑槽點進行連通域提取, 從而得出屬于同一個坑槽的點集; 然后對坑槽點集進行邊界提取并優(yōu)化, 利用點云領域內點的均勻程度來判斷邊界點;最后得出坑槽輪廓, 使用三次B 樣條插值進行擬合, 將坑槽邊界映射到二維平面上進行積分運算, 從而分析出該坑槽的面積信息. 該流程如圖2 所示.
圖2 坑槽提取流程圖
2.1.1 路面三維坐標系
將路面三維點云數(shù)據(jù)融合到以X 軸為里程、Y 軸為橫斷面坐標、Z 軸為點高程的三維坐標系[15]里, 如圖3 所示. 基準平面是一個平行于平面XOY, 為方便分析, 一般選取平面XOY 為基準平面. 則路面上任意一點P相對于基準平面的坐標為(x,y,z), 那么整個路面R可以表示為:
圖3 路面點云三維坐標系
因此, 對三維點云的分析可簡化為對橫斷面數(shù)據(jù)的分析. 為了較好的分析橫斷面信息, 將數(shù)據(jù)點映射到二維坐標平面YOZ 上, 則當前橫斷面數(shù)據(jù)T:
由于在道路檢測車的檢測過程中, 容易出現(xiàn)車身顛簸震動, 導致檢測車的檢測橫梁不能始終保持在同一測量基準線上, 造成所測量的路面高程線已偏離實際高程線, 導致無準確參考基準面判斷路面破損, 如圖4 所示.
圖4 橫梁傾斜時的橫斷面檢測情況
因此, 為了使數(shù)據(jù)高程更接近實際值, 需要矯正檢測數(shù)據(jù), 使其以理想基準線為基準. 當檢測橫梁存在震動時, 橫斷面Y 坐標不會改變, 而高程坐標Z 則會存在一個偏移, 則偏移后的橫斷面數(shù)據(jù)為:
2.1.3 RANSAC 初步判斷坑槽點
根據(jù)實際情況需求, 本文采用RANSAC 算法, 進行橫斷面基準線分析. 橫斷面上所有的點都以橫斷面基準線為基準, 即所有點高程都是相對于基準路面的高度. 點高程越接近于0, 則表示點越接近基準路面, 即不是坑槽點. 反之, 當點高程越小于0 則表示點高程向下凹陷越深, 即坑槽點.
參照JTC 5210-2018《公路技術狀況評定標準》,對于瀝青路面的坑槽破損程度, 由坑槽深度作為判定標準有: 坑槽深度小于25 mm 為輕度; 坑槽深度大于或者等于25 mm 為重度. 因此, 參考上述判定標準, 設定深度閾值T1, 當整個橫斷面數(shù)據(jù)高度值都在閾值T1以內,則認為該橫斷面不存在坑槽, 或者認為坑槽特征不明顯, 還未成為坑槽病害. 將超出閾值T1的點高程數(shù)據(jù)認為坑槽數(shù)據(jù), 并且標記為坑槽點. 由閾值T1可以確定坑槽深度范圍, 用以區(qū)分坑槽的嚴重程度. 橫斷面高程點經過RANSAC 初步判定坑槽點, 結果示意圖如圖5 所示.
圖5 RANSAC 初步判定坑槽點
在實際情況下, 大部分路面是完好的, 少數(shù)會出現(xiàn)坑槽病害. 因此, 在龐大的路面點云數(shù)據(jù)中, 只有少部分數(shù)據(jù)是存在坑槽的. 使用RANSAC 進行橫斷面初步分析, 能夠很好的定位到存在坑槽的位置, 記錄坑槽點云位置并且取出相鄰的橫斷面點云, 之后再對該位置進行詳細的坑槽提取分析. 該方法能夠很好地解決路面點云計算量大的問題.
由第2.1 節(jié)橫斷面分析可以初步判斷出坑槽的位置以及部分被標記的坑槽點. 為了減少各個橫斷面之間的誤差, 還原更加準確的坑槽形狀, 需要對坑槽附近的局部橫斷面數(shù)據(jù)進行整體處理. 因此, 需要計算坑槽附近的局部基準路面, 即相對高程基準路面. 局部平面上的點與該基準面的相對高程即為坑槽深度. 當相對高程接近0 時, 這說明該點在基準面附近, 屬于正常路面點; 當高程小于0 時, 說明該點向下凹陷, 越是偏離基準面, 則其下陷程度越明顯, 即屬于坑槽點. 因為考慮的是局部坑槽路面, 可認為該局部路面是接近于平面而非曲面. 為此, 使用RANSAC 算法計算坑槽的局部基準面, 用于計算平面模型的采樣數(shù)據(jù)為坑槽周圍為未被標記的路面點, 這樣能夠更好地估計平面模型.
選出坑槽局部區(qū)域點云, 計算每個點到達局部坑槽基準面的相對高程. 設定坑槽判定規(guī)則: 當點相對高程小于設定閾值T2, 即認為當前點與基準路面差距較小, 應歸類為路面點; 反之, 則認為坑槽點. 使用種子填充算法, 令其中一個坑槽點作為種子點, 如果相鄰的點被判斷為坑槽點, 則將其加入坑槽點集S; 重復操作, 直至沒有種子點, 停止. 則點集S即為一個完整的坑槽點集. 然后在下一個坑槽種子點開始新的聚類. 點數(shù)較少的坑槽點集認為存在錯誤數(shù)據(jù)或者坑槽特征不明顯,應去掉. 如圖6 所示, 經過局部基準面計算, 并且進行坑槽點連通域提取, 可以分離出坑槽點與路面點.
由于邊界點一側不存在其他的點; 而非邊界點其周圍均勻分布其他點. 本文采用的是文獻[16]中的坑槽邊界提取方法, 利用點云領域內點的均勻程度來判斷邊界點, 即邊界點的外側無其他坑槽點, 而其內側則均為坑槽點. 總體方法為計算某點P與其近鄰點組成的向量之間的夾角, 然后對個夾角進行排序, 計算連續(xù)夾角間的最大差值, 將這個差值與設置的閾值進行比較, 若大于則該點則為邊界點, 否則不是.
計算所得的邊界點為了使邊界線平滑, 更接近實際形狀, 并且方便與后續(xù)的面積積分操作, 需要進行插值擬合優(yōu)化處理. 本文采用三次樣條插值法進行邊界擬合處理, 所得結果為坑槽邊界點集B.
圖7 坑槽面積積分示意圖
本文的實驗數(shù)據(jù)分為室內及室外兩部分. 室內數(shù)據(jù)是由激光測距儀, 固定測量高度后, 在實驗室測試矩形以及圓形等規(guī)則的坑槽模型. 點云掃描橫斷面間距為10 mm, 橫斷面每個點的距離也為10 mm, 測距精度為1 mm. 室外路面數(shù)據(jù)是由低速道路檢測車采集獲得,采集數(shù)據(jù)為校園瀝青路段中的一條車道. 該實驗路段的長度100 m, 掃描寬度為3.5 m, 點云間間距為10 mm,掃描線間距為10 mm, 測距精度為1 mm, 每個橫斷面的點數(shù)量為350 個, 數(shù)據(jù)總量為3 500 000 個. 處理數(shù)據(jù)設備為筆記本電腦, 配置CPU 為Intel 9 代i7, 主頻為2.6 GHz, 顯卡型號為GTX1650, 并使用Matlab 處理數(shù)據(jù).
本文方法提高點云計算效率在于進行快速的掃描,而掃描出存在坑槽的橫斷面則由坑槽形狀提取算法進行處理. 對橫斷面掃描檢測坑槽算法進行效率性分析,使用文獻[10]中的曲率特征點檢測方法作為對照方法.文獻[10]采用的橫斷面坑槽掃描算法步驟為: (1)采用最小二乘法對橫斷面進行曲線擬合; (2)計算橫斷面上每個點的曲率, 并計算高于平均曲率的高曲率點;(3)由高曲率點進一步計算并進行坑槽特征點判定. 計算橫斷面上的每一個點的曲率K, 計算公式為:
其中,y'和y''分別為當前點在橫斷面擬合曲線曲線上的一階導數(shù)和二階導數(shù).
對照實驗所使用的數(shù)據(jù)為100 m 路段點云, 點云數(shù)量為3 500 000 個. 使用本文橫斷面掃描算法與曲率特征點算法, 對該數(shù)據(jù)進行10 次橫斷掃描檢測計算,其對照實驗結果如表1 所示.
由表1 結果, 采用曲率特征點算法所需要的平均時間12.554 s, 方差為0.025 6, 標準差為0.160; 采用本文方法所需的平均時間為5.466 s, 方差為0.018 9, 標準差為0.137. 采用曲率特征點方法與本文掃描方法的計算時間的平均差值為7.088 s, 使用本文方法相對于曲率特征點算法平均提升的效率為56.46%. 由此結果顯示,采用本文的掃描方法, 同一數(shù)據(jù)量的計算時間要明顯低于使用曲率特征點的算法, 計算時間的分布更為收斂.
使用RANSAC 算法計算橫斷面直線模型只需要兩個樣本點, 迭代多次后, 遍歷每個點與最優(yōu)模型的高度差, 所涉及的計算復雜度較低; 而采用計算特征點的方法, 使用最小二乘法計算橫斷面擬合曲線, 并求出橫斷面上每個點的一階和二階導數(shù), 最后取平均曲率為閾值去比較每個點的曲率, 該方法計算復雜度較高, 計算量較大. 針對點云的數(shù)量到達千萬甚至億級別, 本文算法能夠快速掃描出坑槽點的位置, 并將存在坑槽點的局部橫斷面提取出, 以供后續(xù)的坑槽詳細信息提取,使得掃描橫斷面點云與提取詳細坑槽信息算法可以并發(fā)執(zhí)行, 提高執(zhí)行效率.
圖8 所示為在室內使用木板模型采集數(shù)據(jù)處理的結果. 圖9 和圖10 為在公路采集到的坑槽及實驗結果.實驗結果顯示, 本文方法能夠很好的提取出坑槽的形狀輪廓. 本文以坑槽的深度及面積為指標驗證本文方法效果, 采集到坑槽樣本12 個, 對每個樣本進行10 次計算, 結果取平均值. 用人工測量的方法與本文方法進行對比, 實驗結果如表2 所示.
圖9 路面坑槽1 實驗結果
圖10 路面坑槽2 實驗結果
由表2 本文方法與人工方法的對比結果, 坑槽深度采集精度為1 mm, 其誤差范圍在0.9-2.3 mm 之間,相對誤差范圍在3.00%-6.59%之間, 平均相對誤差為4.73%. 由坑槽面積結果顯示, 其相對誤差范圍在2.43%-5.65%, 平均相對誤差為4.50%. 由此數(shù)據(jù)可知,本文實驗結果的深度及面積平均相對誤差都小于5%,實驗結果良好, 能夠有效地提取出坑槽的信息.
表2 路面坑槽實驗結果比較
由JC 510-2018《公路技術狀況評定標準》定義坑槽標準損壞程度: 坑槽深度小于25 mm, 或面積小于0.1 m2屬于輕度坑槽; 坑槽深度大于或等于25 mm,或大于或等于0.1 m2屬于重度坑槽. 由該標準, 坑槽編號為1、5、10 為輕度坑槽; 其余編號的為重度坑槽.由表結果顯示, 屬于重度坑槽的平均誤差為4.21%, 誤差較小; 而輕度坑槽平均誤差為5.38%, 誤差較大. 產生該結果的原因為采集間隔為10 mm, 在坑槽較小的時候, 該采集精度對計算結果的精度影響較大.
依照本文算法進行坑槽面積計算, 其結果比實際值要小. 產生該問題的原因在于計算坑槽局部0 高程平面后, 聚類坑槽點云方法決定的. 因為設定距離0 高程平面的閾值作為劃分坑槽點與平面點, 所以部分坑槽邊緣點距離0 高程平面較近而被劃分為路面點, 導致缺少部分邊界點而計算出的面積要小于實際值.
針對車載三維點云掃描提取坑槽特征點計算量大的問題, 本文使用RANSAC 算法思想, 以整體基準判定異常點的方法去提取坑槽. 首先使用橫斷面基準線整體判斷并標記坑槽點, 然后針對坑槽區(qū)域進行局部基準面整體判斷坑槽點集, 之后使用種子填充算法進行坑槽連通域點集提取, 最后對坑槽點集進行邊界提取以及插值擬合, 從而可以計算出坑槽有效信息.
實驗結果表明, 相較于由曲率特征點判定坑槽的方法, 本文使用RANSAC 掃描檢測橫斷面方法的效率平均提升56.46%, 能夠快速掃描出坑槽點的位置, 提高識別提取的效率. 采集坑槽樣本12 個, 深度指標平均誤差為4.73%, 面積指標平均誤差為4.50%. 實驗結果誤差較小, 具有良好的識別效果.
本文方法針對橫斷面掃描檢測坑槽位置進行處理,避免了在正常路面點云上的大量分析和處理, 能夠準確地提取出不規(guī)則坑槽的輪廓形狀、面積和深度等信息. 本文算法處理后提取的坑槽與實際路面坑槽存在一定范圍的誤差, 但該誤差較小, 提取結果與真實結果之間具有較高的一致性.