景寧波,馬憲民,郭 衛,秦學斌
(1.西安科技大學 電氣與控制工程學院,陜西 西安 710054;2.西安科技大學 機械工程學院,陜西 西安 710054)
隨著煤礦智能化的發展,激光雷達在煤礦井下機器人建圖[1-6]和無軌膠輪車無人駕駛[7-9]等方面被廣泛應用。由于煤礦井下環境存在大量的粉塵和水霧[10-12],大多數激光雷達傳感器的波長在900納米左右,使得煤礦井下激光雷達獲取的點云數據嚴重降質,存在大量噪點[13]。
國內外學者針對點云濾波問題開展大量的研究,提出越來越多的方法。孫華飛等提出一種基于統計流形的聚類算法,但是差異函數的選擇比較復雜,需要根據噪聲特征進行分析[14]。DINESH等設計特征圖拉普拉斯正則化器,雖然濾波效果很好,但是噪聲需要符合高斯或者拉普拉斯特性[15]。王曉輝等提出一種基于法向量距離分類的去噪方法,采用加權局部最優投影算法和雙邊濾波算法分別對平滑區域和尖銳區域進行濾波去噪,但是對于局部密度較大的近場噪點剔除效果不好[16]。PISTILLI等訓練一種圖卷積神經網絡,根據點的高維特征表示之間的相似性,動態構建鄰域圖來組成復雜的特征層次,但是濾波效果嚴重依賴樣本數量和訓練的噪聲特征[17]。趙凱等針對點云數據密度不均勻,離群噪點多的問題,提出一種基于密度的點云聚類算法,對三維點云先進行體素柵格劃分,再采用隨機抽樣一致性算法,實現點云數據的實時處理,但是遠場離群噪點的濾除效果并不好[18]。伍錫如等通過統計濾波與隨機抽樣一致算法剔除激光雷達數據冗余點及離群點,但是對于遠場的離群點沒有實現有效濾除[19]。HEINZLER等針對濃霧對激光雷達的影響,提出基于卷積神經網絡的方法來區分來自濃霧的散射點和來自被測對象的有效點,過濾點云數據中的噪聲[20]。ZHANG等提出由編碼器和解碼器組成的深度學習方法,通過去除噪聲并保留其高頻特征實現穩健的點云濾波[21]。任彬等采用閾值自適應和基于曲率的去噪算法,分別處理2種噪聲,去噪精確度得到提升,但是提高計算復雜度,增加計算時間[22]。趙夫群等通過構造張量投票矩陣和計算點云曲率特征,實現由粗到精的層次化點云去噪,但是在保持點云尖銳幾何特征的同時,也保留高頻的近場噪聲點[23]。RORIZ等結合動態半徑異常值和低強度異常值去除算法提出動態光強去噪方法,采用現場可編程門陣列實現硬件加速,雖然實時性能得到保證,但是遠場噪點沒有得到有效抑制[24]。張建民等對點云進行預處理后映射到圖像上,通過圖像處理去除噪聲,但是點云遠場濾波效果并不好,有遠場數據丟失的現象[25]。
缺少塵霧對激光雷達的影響模型。煤礦井下環境復雜,不同塵霧環境實測的激光雷達點云數據量偏少,缺少模型無法合成測試數據集,算法的驗證和深度神經網絡的訓練都需要大量的數據;點云遠場和近場的噪聲不能兼顧。點云中距離中心點較近的區域稱為近場。濾波算法在設定參數時過多考慮近場的噪聲就會造成遠場的噪聲處理不好,反之亦然。
針對上述問題,文中首先對礦井塵霧環境進行分析,建立塵霧對激光雷達的影響模型;然后利用改進動態半徑法剔除煤礦井下激光雷達的點云噪聲;最后對不同算法的性能進行試驗比較,驗證該算法的可行性和有效性。
激光雷達傳感器向環境中發射激光脈沖,這些脈沖從周圍物體反射并返回傳感器,根據時間來計算距離,實時生成數百萬個數據點。激光雷達根據激光脈沖飛行時間測量距離。多線激光雷達通過360°水平旋轉多組垂直分布的激光,實現對環境的三維測量。
式中 di為第i束激光的實測距離,m;i為多線激光雷達的激光線束編號;c為光速,m/s;t為激光到達被探測物體并返回探測器的行駛總時間,s。
激光雷達的測量數據稱為點云,采用笛卡爾坐標或者球面坐標來表示,兩者可以相互轉換,如下式
式中 θ為激光的垂直角度,rad;φ為激光的水平旋轉角度,rad;x,y,z為點云坐標,m,是球面坐標到笛卡爾坐標軸上的投影。
煤礦井下環境中對激光雷達性能影響較大的因素是塵霧。當一定功率的激光脈沖信號在塵霧環境中傳播時,會存在信號的吸收和散射,造成激光脈沖信號的衰減。吸收和散射對信號的衰減值與傳播距離成正比。
式中 P為激光脈沖信號的功率,W;λ為激光的波長,m;k為吸收系數;γ為散射系數;β為衰減系數。
接收到的激光脈沖信號主要由2部分組成,分別是塵霧反射信號和被測物反射信號。
式中 IR為接收到的激光脈沖信號光強,cd;ID為塵霧反射信號光強,cd;IT為被測物反射信號光強,cd。
式中 CA為激光雷達的內部參數;Is為發射激光強度;H為塵霧環境傳遞函數。
塵霧環境會造成激光雷達接收到多次反射信號,造成干擾。激光雷達主要采用最強反射原則,選擇信號強度大的作為測量值,其他信號作為噪聲處理。當被測物反射信號強度大于或者等于塵霧反射信號強度時,不會影響測量距離。當塵霧反射信號強度大于被測物反射信號強度時,就會掩蓋被測信號,造成測量結果中存在異常點,需要進行識別和剔除。
基于扇環鄰域的改進動態半徑點云濾波算法,首先將多線激光雷達點云數據通過主成分分析進行降維處理,得到多組二維數據,其次對每組數據采用拉普拉斯算子剔除高頻噪點,然后采用基于扇環鄰域的統計分析,識別數據中的異常點。最后,將經過濾波后的多組二維數據恢復成三維點云數據。
根據多線激光雷達的測量原理,將點云數據通過激光線束分為多組三維數據,每組數據代表一束激光對環境掃描的測量結果。通過主成分分析法(principal component analysis,PCA)將每組數據從三維空間映射到二維子空間,利用映射后的變量特征來表示原有的總體特征。煤礦井下三維激光點云具有稀疏性,降維處理提高子空樣本密度,降低計算復雜度。點云數據中如果存在缺失值,使用交替最小二乘法(alternating least squares,ALS)計算主成分。
PCA是一種正交線性變換,通過創建新的不相關變量來使方差最大化。這些新變量稱為主成分,搜索符合約束條件的新變量的過程,就是對數據的特征值和特征向量的求解過程。PCA把數據變換到一個新坐標系統的同時最小化信息損失,使得數據投影的第一大方差在第一主成分上,第二大方差在第二主成分上。通過對數據的協方差矩陣進行特征分解,得出特征向量與特征值。
式中 X為原始數據;Y為協方差矩陣;W 為協方差矩陣的特征向量矩陣;U為協方差矩陣轉置的特征向量矩陣;∑為對角矩陣,對角線上的非零值是協方差矩陣的非零特征值的平方根,也是協方差矩陣轉置的非零特征值的平方根。
為了得到一種降低數據維度的有效辦法,用二維截斷特征向量矩陣把原始數據映射到二維空間中,實現數據的降維。
式中 Z為降維后的數據;WL為二維截斷特征向量矩陣。
通過降維處理后得到多組二維數據,對每組數據經過拉普拉斯濾波,剔除高頻噪點。拉普拉斯算子是一種二階微分算子,表示梯度的散度,通過尋找數據中的二階微分中的過零點來檢測因塵霧反射造成的異常點。
拉普拉斯算子具有各向同性、線性和位移不變性。相對于常用的Roberts算子、Prewitt算子、Sobel算子等一階算子,拉普拉斯算子對數據中的高頻噪聲敏感,對細線和孤立點的檢測效果好。相對于常用的LoG算子和DoG算子等二階算子,拉普拉斯算子的計算復雜度小,所需要的計算能耗低,能夠滿足煤礦井下設備的實時性要求。
拉普拉斯算子直角坐標見式(8)
式中 Δf為拉普拉斯算子;x為橫軸坐標值,m;y為縱軸坐標值,m。
拉普拉斯算子的極坐標見式(9)
式中 r為極坐標半徑,m;θp為極坐標角度,rad。
在點云處理中使用差分方程近似二階偏導運算。采用卷積核的實現形式,利用芯片中的卷積計算加速器,可以有效提高計算效率,降低計算功耗。
經過降維和拉普拉斯濾波后的點稱為查詢點。通過對查詢點的扇環鄰域進行統計分析,計算該點到所有鄰域點的平均距離,從而對離群點進行剔除。
首先將查詢點的位置轉換成極坐標形式,設置扇環鄰域的搜索范圍,其次計算查詢點到鄰域中每個點的距離;然后計算距離的標準差和均值生成統計模型;最后根據閾值篩選離群點。
將查詢點轉換成極坐標形式,如下式
式中 r為極坐標下的半徑,m;θp為極坐標下的角度,rad。
選擇查詢點附近的半徑范圍和角度范圍組成扇環鄰域,扇環面積的選擇很重要,減小扇環面積會使濾波器對噪聲更敏感,增加面積會增加計算次數。
式中 rf為扇環半徑,m;w為扇環系數;θf為扇環角度,rad。
假設查詢點到扇環鄰域內所有點的距離是一個高斯分布,其形狀是由均值和標準差決定。
式中 L為查詢點到扇環鄰域內每一點的歐式距離,m;μ為均值,m;σ為標準差,m。
根據統計特性,在閾值范圍之外的點后驗概率較小,被定義為離群點。
式中 T為閾值區間,m。
試驗基于Ubuntu 18.04操作系統,ROS環境為ROS-melodic。計算機硬件為Intel Core i7-11800H處理器,4 GHz主頻,16 GB內存,GTX3060顯卡。選用速騰聚創16線激光雷達,型號為RSLidar-16,水平視角360°,水平分辨率0.1°,垂直視角30°,垂直分辨率2.0°,點云幀率10 Hz,測距范圍0.4~150 m,測量精度±2 cm。試驗數據來源為激光雷達采集的井下模擬巷道。對采集的原始數據疊加塵霧噪聲合成測試數據,驗證算法的降噪性能。通過對比文中濾波算法與統計濾波、半徑濾波和動態半徑濾波算法的結果,驗證文中算法的濾波性能。該濾波算法通過在不同塵霧環境下的試驗,確定參數w的取值。
統計濾波遍歷每個點,計算最近鄰點到該點的平均距離,基于高斯分布統計距離的平均值和標準差,剔除閾值區間之外的所有點。試驗參數設置:近鄰個數N=5,閾值系數m=0.1。
半徑濾波通過迭代每個點,并計算球體內以該點為中心的點的數量。如果點數小于近鄰個數,則將其作為異常值刪除,否則將其保留。試驗參數設置:球體半徑R=0.05 m,近鄰個數N=5。
動態半徑濾波利用激光雷達的稀疏性,根據查詢點的極坐標距離調整濾波的球體半徑。距原點近的位置,點云空間密度大,采用較小的球體半徑,反之采用較大的球體半徑。試驗參數設置:半徑系數k=0.02,近鄰個數N=5。
為更客觀地分析不同算法的濾波效果,分別采用準確率、召回率和F1分值作為評價算法的有效依據。準確率是濾波正確的結果占總樣本的百分比,準確率越高,誤去除的非噪點個數就越少,說明過濾器能有效去除塵霧噪聲。召回率表示正確識別的噪點數量占總噪點數量的百分比,分數越高,說明誤保留的非噪點個數越少,能夠有效保存點云結構信息。精確率是濾波正確的點數占總噪聲點的數量,F1分值綜合考慮精確率和召回率。
式中 TP為正確去除的噪點個數;TN為正確保存的非噪點個數;N為點云內的點總數;FN為誤保留的噪點個數;FP為誤去除的非噪點個數。
圖1為塵霧衰減系數為0.1時,采用文中濾波算法不同參數的濾波結果。圖2為塵霧衰減系數為0.3時,不同參數的濾波結果,圖3為塵霧衰減系數為0.5時,不同參數的濾波結果。文中濾波算法的參數w=0.01和w=0.1時,過多的有效數據被識別為噪點;參數w=0.5時,有過多噪點未被濾除。通過對比不同參數在不同塵霧環境下的濾波效果,w=0.3濾波效果最佳。表1為試驗中各濾波算法的參數設置。

圖1 塵霧系數w=0.1的濾波結果Fig.1 Filtering results when w=0.1

圖2 塵霧系數w=0.3時的濾波結果Fig.2 Filtering results when w=0.3

圖3 塵霧系數w=0.5時的濾波結果Fig.3 Filtering results when w=0.5

表1 濾波器參數設定Table 1 Parameters setting for filters
圖4為文中濾波算法的降維處理結果,將三維點云數據降為16組二維數據,在二維空間上進行計算。圖中顯示了第1,5,9,13組原始數據和濾波結果。圖5為3種場景下的算法濾波結果對比。統計濾波的近場噪聲保留較多,半徑濾波遠場有效數據丟失嚴重,動態半徑濾波遠場濾波效果較好,但是近場存在大量噪聲。提出的改進濾波算法兼顧近場和遠場數據,保留點云的細節信息。

圖4 降維濾波結果Fig.4 Filtering results in dimensionality reduction

圖5 3種場景下算法對比Fig.5 Comparison of algorithms in three scenarios
表2為統計濾波、半徑濾波、動態半徑濾波和文中算法的質量評價對比。通過連續采集的3 000幀點云數據,計算評價指標的的平均值。由表2可知,統計濾波算法需要的時間最長,動態半徑濾波算法比半徑濾波算法性能有所提升,計算時間也增加了一倍。文中算法在準確度、召回率和F1分值方面都優于其他3種算法,同時計算時間小于統計濾波和動態半徑濾波方法。

表2 算法質量評價對比Table 2 Comparison of algorithm quality evaluation
1)基于塵霧對激光雷達的影響模型,通過仿真生成數據,可以為算法的評估提供測試基準。通過分析激光脈沖在煤礦井下塵霧環境中的傳播特點,結合激光雷達的測量原理,建立煤礦井下塵霧對激光雷達的影響模型。基于該模型和實測數據可以建立數據集,為深度學習的訓練和驗證提供大樣本。
2)對煤礦井下激光雷達點云進行降維處理,降低計算復雜度。采用拉普拉斯算子的一次濾波,初步剔除數據中的高頻噪點,減少二次精細濾波的樣本數量,縮短處理時間。基于扇環鄰域的二次濾波,實現統計鄰域面積和計算復雜度之間的平衡,在保證濾波精度的前提下,提高系統效率,且具有較好的穩定性。
3)所提算法在消除煤礦井下激光雷達點云噪聲和保留點云細節方面都優于其他算法。后續可以對降維方法做進一步深入研究,集成在井下巡檢機器人上,為激光雷達在煤礦井下應用提供一定的參考。