張海山,張正軍,宋宗瑩,柳紅利,姜大佐,曾 杉
(1. 中國神華能源股份有限公司,北京 100011; 2. 中科吉芯(秦皇島)信息技術有限公司,河北 秦皇島 066000; 3. 國能包神鐵路集團有限責任公司,內蒙古 包頭 014000;4. 中國科學院地理科學與資源研究所,北京 100101)
近年來我國高鐵在各方面取得了巨大發展,鐵路運輸高速發展,列車高速行駛、貨物的運載及列車高密度的運行,對鐵路軌道造成了越來越嚴重的傷害[1],因此鐵路的安全性要求也更加嚴格。為了確保列車安全運行,需要及時準確地對鋼軌進行各項參數檢測。
目前我國的軌道檢測方式主要是手工檢測,精度和效率都比較低,并且獲取的檢測參數單一[2],同時需要大量的人力成本。結構光三維成像技術是一種非接觸式的輪廓點云獲取技術[3],它能夠完整地獲取鋼軌表面輪廓的點云數據,并且能對各種鋼軌參數進行檢測,滿足了鋼軌檢測對于精度和效率的要求。結構光三維成像技術獲取的點云被廣泛應用于許多領域[4]。
三維結構光掃描獲取點云數據時,由于實際天氣條件的復雜性、掃描物體的特殊反射率及鐵路軌道存在著各種軌道連接件[5],導致三維結構光掃描獲取的原始鋼軌點云數據有著大量的冗余點,還包含著各種噪聲點及離群點,大量的噪點對于點云數據處理的精度和效率有著嚴重的影響。 因此從點云中去除噪聲點并對其進行數據精簡至關重要[6]。傳統的點云濾波方法有直通濾波、統計濾波、體素濾波等。文獻[7]提出了引入法向離群因子的自適應點云雙邊濾波平滑算法,相比傳統的算法平滑效果更好??紤]目前各種濾波算法受人為因素影響大,文獻[8]提出了一種改進自適應閾值濾波算法,能實現對復雜地形點云的濾波。文獻[9]研究出了一種使用移動最小二乘法的全自動點云數據濾波算法應用于地面點云濾波。文獻[10]通過使用空間距離、邊界匹配、K-means算法、RGB顏色特征值等實現了對點云離群點的去除,但是對于與點云主體相連的噪聲點無法去除。文獻[11]提出一種融合自適應密度聚類和雙邊濾波的點云去噪方法,可以有效地對點云進行去噪平滑。針對點云濾波過程中曲面擬合不連續的問題,文獻[12]提出了一種基于混合整體最小二乘的曲面擬合約束點云濾波算法。
結合上述內容,可以看出點云濾波算法一直在不斷改進。因為點云數據和其噪聲點的復雜性,不同類型的點云都需要不同的濾波算法。但是鋼軌點云中噪聲點大多分布密集且與鋼軌點云距離相近,使用單一的傳統點云濾波算法對其去噪效果不理想。針對鋼軌點云中雜散點的復雜性,本文提出將傳統濾波方法與歐式聚類融合的點云自適應精簡算法,充分考慮鋼軌點云噪點分布的復雜性,針對不同的噪點采用不同的方法去除,以期實現對彎曲鋼軌點云的去噪精簡。
針對原始鋼軌點云中雜散點的復雜性,綜合利用歐式聚類和傳統點云濾波方式對其進行濾波處理,具體流程如圖1所示。首先對原始點云數據進行統計濾波去除離群點,使之后的歐式聚類效果更好,由于原始鋼軌點云密度過大,因此使用均勻體素下采樣精簡點云數據。然后使用歐式聚類將鋼軌點云數據與噪聲點云數據分類并去除噪聲點云,經過歐式聚類后,鋼軌點云上還有無法通過歐式聚類去除的軌底粘連噪點。最后使用直通濾波將其去除,經過一系列的濾波處理,可有效去除點云數據中的噪聲點和離群點,并精簡點云數據,為之后的點云數據處理奠定基礎。

圖1 點云數據處理流程
統計濾波能夠很好地去除點云數據中的離群點[13],但是對于點云數據中分布密集的噪聲點無法去除,需要依靠其他的濾波方式。統計濾波的主要思路為:首先對原始鋼軌點云數據中的所有點進行統計分析;然后隨機選取點云數據中一個點,計算該點與K個臨近點的平均距離; 最后根據均值和標準差確定一個距離閾值,選取的點計算得到的平均距離在預設距離閾值之外的點就是離群點,需要剔除。
原始鋼軌點云在進行統計濾波去除離群點后,點云數據量仍很大。結構光掃描獲取的原始鋼軌點云數據密度過大,將嚴重影響之后的點云濾波效率,因此需要對其進行精簡。同時為了減少后續對點云數據處理的影響,精簡后的點云應該與原始點云有一樣的幾何結構信息。
為了在保留原始點云幾何信息的同時最大限度地精簡點云數據,采用均勻體素下采樣對點云數據進行處理[14]。方法是創建體素柵格將點云數據包圍,體素與圖像中的像素類似,是具有預定體積、位置和屬性的抽象三維單元[15],使用AABB包圍盒將點云數據劃分成一個個體素柵格,對于每個體素柵格,其中的點將由體素內的重心點近似表示,最后所有體素柵格的重心點就是采樣后的點云數據,點云數據精簡完成。通過調整包圍盒的大小可以調節每個體素柵格的大小,從而調節采樣后的點云數據量。
歐式聚類是一種基于歐式距離度量的聚類算法,本質是將距離相近的點歸為一類[16]。歐式聚類具體分割流程為:首先對于鋼軌點云數據,選取一個點作為種子點,設定一個半徑鄰域r,對種子點進行半徑r鄰域搜索,將鄰域內的點與種子點歸于一個聚類簇Q,以鄰域內的點為種子點繼續搜索,當聚類簇Q中的點數不再增加時,Q聚類結束。然后在剩余的點云數據中選擇一個新的點作為種子點,開始新一輪聚類過程,直至遍歷完所有點。計算每個點云聚類簇的點數量,同時設置一個聚類點云的閾值區間,保存聚類簇點數量在這個區間中的聚類,不在區間中的作為噪點直接去除。經過統計濾波處理后,歐式聚類能夠很好地將鋼軌點云與噪聲點云分割開來,并且經過均勻體素下采樣的點云精簡,歐式聚類的時間相比之前也大大減少。
直通濾波根據需要在X、Y、Z3個方向上設置一個區間范圍,去除掉范圍外或內的點,保留自己需要的數據[17]。原理是在選定范圍實行濾波,剔除指定區間內的點。經過前面的濾波處理已經去除掉了大部分的噪聲點,但是獲取的原始鋼軌點云數據中存在著與軌底粘連的噪聲點,上述的濾波方法無法去除這些噪聲點,需要直通濾波來去除這些噪聲點。由于只剩底部噪聲點,只需在Z軸設定濾波范圍,范圍為Z軸方向上鋼軌點云頂點到軌底這一段。從圖2的軌道斷面圖可以看出,這段的距離為0.16 m,通過程序自動選取鋼軌點云頂點坐標來確定濾波范圍,從而實現點云的自適應直通濾波。

圖2 實際軌道斷面
為了驗證本文提出的歐式聚類融合多種傳統濾波方式的鋼軌點云自適應濾波算法可實現對彎曲鋼軌點云數據的濾波處理,選取一段彎曲鋼軌點云數據,使用本文算法對其進行濾波處理,觀察濾波結果,算法流程如圖3所示。使用的彎曲鋼軌點云數據如圖4所示,點云數據有2 458 530個,點云噪點分布密集,且部分與鋼軌點云粘連在一起,難以去除。

圖3 算法流程

圖4 彎曲鋼軌點云數據
由圖4可以看出這段鋼軌點云數據有許多噪聲點,并且分布非常密集,使用統計濾波無法去除,只有將點云與噪點分割為不同的聚類,才可去除噪聲數據。直接使用歐式聚類,結果如圖5所示。可以看出還有很多雜點沒有去除,這是因為在部分離群點的影響下,雜點與鋼軌主體點云被歸為一類,并且點云數量過多,導致運行時間過長。

圖5 原始點云直接歐式聚類
對原始鋼軌點云數據進行統計濾波處理,結果如圖6所示,點云整體沒有變化。因為統計濾波只能去除離群點,無法去除分布密集的噪聲點。使用統計濾波是為了去除離群點后歐式聚類的分割效果更好。
對經過統計濾波的點云數據進行歐式聚類,效果如圖7所示??梢钥闯霰戎苯舆M行歐式聚類效果好,但仍然還有部分噪聲點未去除,這說明統計濾波的離群點去除效果不夠理想,需要更改統計濾波算法參數。選取更多的臨近點K計算平均距離,K=10的結果如圖7所示,經過更改K的大小,發現K=80的統計濾波后歐式聚類效果最好,結果如圖8所示。

圖7 統計濾波后歐式聚類

圖8 更改統計濾波參數后的歐式聚類
點云數據經過統計濾波的處理,歐式聚類效果更好。當統計濾波參數調整好后,大部分的噪聲點與鋼軌點云主體數據成功分割,只剩下了軌底的粘連點,無法通過歐式聚類進行分割。并且K=80時,雖然統計濾波的時間變長了,但是歐式聚類所需的時間比K=10時短,整體的濾波時間變短。具體的數據見表1。

表1 統計濾波對歐式聚類的影響
雖然歐式聚類分割效果很好,但是算法運行時間長,因此需要對原始鋼軌點云使用均勻體素下采樣精簡點云數據,提升歐式聚類速度。均勻體素下采樣后結果如圖9所示,點云數據的密度明顯變小,此時點云數據還有212 097個點。

圖9 均勻體素下采樣結果
點云數據精簡完成后,再對其進行歐式聚類,將鋼軌點云和噪聲點分成不同的類,從而去除噪聲點,聚類結果如圖10所示。與統計濾波后直接歐式聚類效果相似,但縮短了算法運行時間。不同過程具體的運行時間見表2。

表2 算法處理運行時間變化

圖10 歐式聚類結果
經過上述濾波處理,大多噪聲點都已去除,剩余噪聲點與軌底相連,無法通過歐式聚類去除,但是這些點都在鋼軌點云數據的底部,可以使用Z軸范圍的直通濾波去除。直通濾波需要的時間為1.257 s,去噪結果如圖11所示。可以看出軌底的噪點均已去除,此時點云數據還剩154 446個點,點云精簡比約為94%。最終整段點云濾波結果如圖12所示,與原始點云相比,保留了鋼軌點云數據,去除了噪聲點云,較好地實現了對彎曲鋼軌點云數據的濾波處理。

圖12 點云濾波結果
本文提出了一種歐式聚類融合多種傳統濾波方式的點云濾波方法。該方法實現了對彎曲鋼軌點云中各種雜散點的完全去除。針對鋼軌點云中噪聲點和離群點分布的復雜性,首先通過統計濾波去除部分離群點,消除了這些離群點對后續歐式聚類的影響;然后使用均勻體素下采樣精簡點云數據,去除了點云數據中的冗余點。在此基礎上,通過歐式聚類對點云數據進行分割去除了噪聲點,再通過直通濾波去除與軌底粘連的噪聲點,最終去除了點云中的雜散點。最后選取一段彎曲鋼軌點云數據進行試驗,通過對其濾波結果的觀察分析,發現點云數據中的噪聲點和離群點均被完全去除,證明了本文的濾波算法能夠有效地去除彎曲鋼軌點云數據中的雜散點。本文提出的濾波算法效果好、效率高,且整體算法實現了自適應性處理,去除了人為干預可能造成的誤差,為之后的點云處理奠定了良好的基礎。