王 哲 馬朝帥
( 1、北京四維遠見信息技術(shù)有限公司,北京100070 2、北京四維圖新科技股份有限公司,北京100094)
交通標牌是一種重要的交通設(shè)施, 對交通安全有重要的警示以及提示作用, 標牌信息的獲取與更新異常重要。 由于采集環(huán)境以及傳感器的各種誤差導(dǎo)致了上下行同一地物的點云存在較大的誤差, 因此需要進行點云數(shù)據(jù)的融合。 而標牌作為一種獨立的地物,具有規(guī)則的形狀可以為點云配準提供大量的同名點。 因此,研究了一種標牌點云數(shù)據(jù)同名點自動識別的算法。首先交互獲取包含標牌的上下行點云數(shù)據(jù),通過軌跡過濾地面點;然后通過統(tǒng)計濾波器剔除離群點,然后進行聚類分割,得到若干個類似平面的點集,根據(jù)法向量以及牌子的面積、點云反射強度等篩選出標牌所在的點集;然后進行旋轉(zhuǎn),接著提取平面點集的凸包點,并進行形狀的判斷,分別擬合直線和圓,根據(jù)擬合的誤差,判斷是圓還是直線,最后進行角點的提取,如果是圓,提取四個頂點,如果是直線,進行直線擬合并進行直線求交,得到四個角點。 對上下行點云分別進行上述操作, 然后得到兩組角點,對這兩組角點進行匹配,從而得到同名點。 對上述算法進行了實驗驗證,結(jié)果表明本文方法準確度、效率都能滿足地圖數(shù)據(jù)生成環(huán)節(jié)的要求。
現(xiàn)有的交通標牌識別算法主要是基于計算機視覺的方法,未考慮三維空間中距離、視角和障礙物遮擋等因素對交通標志牌可見性的影響,適用性有限。 文獻[2]根據(jù)標牌的高強度值特點以及平面特性,采用了反射強度和主成分分析來檢測交通標志牌,由于標牌具有一定的厚度而且有正反面,同時反面的反射強度很小,因此只適合于正面掃描到的標牌數(shù)據(jù)。 文獻[3]采用了點云結(jié)合影像的方法進行標牌的語義識別, 過程過于繁瑣,適用性有限, 很難用于實際的生產(chǎn)作業(yè)環(huán)節(jié)。 現(xiàn)有的標牌識別算法效率不高,大多數(shù)還要基于軌跡信息,并且涉及到額外的點云信息( 掃描角度等),不同的設(shè)備獲取的信息不一樣,因此適用性有限,為此我們研究了一種新的標牌識別算法。
本文提出了一種交通標牌的識別算法, 首先交互選取包含標牌點云的區(qū)域,然后通過聚類分割,得到標牌對應(yīng)的點云數(shù)據(jù);然后通過擬合算法得到平面的相關(guān)參數(shù),并把平面旋轉(zhuǎn)到一個標準方向上( Z 軸);接著提取平面的凸包點,對凸包點進行加密處理;然后進行形狀的判斷,根據(jù)判斷的結(jié)果,求取標牌的角點。 算法的流程圖如圖1 所示。
考慮到數(shù)據(jù)的實際生產(chǎn)環(huán)節(jié),我們采用的是半自動的方式,獲取標牌數(shù)據(jù)。作業(yè)員通過數(shù)據(jù)生產(chǎn)軟件可以很方便地得到標牌對應(yīng)的數(shù)據(jù)。由于原始數(shù)據(jù)存在大量的雜點( 地面、樹木、草等),而且地面點在原始數(shù)據(jù)中占據(jù)很大的比例,因此我們通過高度信息,過濾掉高度較低的點,以達到減少數(shù)據(jù)量的目的,大大提高了算法的運行效率。由于原始數(shù)據(jù)存在噪聲點,因此需要進行濾波操作,我們采用的是統(tǒng)計濾波器將離群點從數(shù)據(jù)中去除。
我們采用的是結(jié)合了距離和法向量的方法進行聚類,提高了分割的成功率。 由于聚類的結(jié)果通常會得到若干類, 因此我們需要對聚類結(jié)果進行篩選。聚類結(jié)果如圖2 所示。定義的篩選原則為:( 1)分類結(jié)果按個數(shù)從大到小排列( 感興趣的占多數(shù),不一定是最多)。( 2)反射強度優(yōu)先,統(tǒng)計高強度的點的個數(shù)。( 3)計算平均高度。
其中:
圖1 算法流程圖
圖2 聚類分割效果圖
通過3.3 環(huán)節(jié),我們將平面旋轉(zhuǎn)到一個標準方向上(Z 軸),進而提取凸包點。采用的是Convex Hull 算法,利用一個的凸多邊形圍住所有的點。提取結(jié)果如圖3 所示。
根據(jù)3.4 環(huán)節(jié)得到的凸包點進行加密,然后進行形狀的判斷。如果判斷結(jié)果為直線,則要進行分段直線擬合[5],然后進行直線求交;如果是圓則提取四個頂點位置,進而得到標牌角點的初始位置。
由于原始掃描數(shù)據(jù)存在噪點以及中間計算過程會產(chǎn)生各種誤差,因此我們得到的角點跟真實的標牌角點會存在一定的偏差,因此需要根據(jù)角點推薦真實的角點。
我們的原則如下:(1)距離優(yōu)先;(2)考慮反射強度。
首先根據(jù)初始得到的角點,進行K 鄰域搜索,找到近鄰點。其中的搜索閾值K 不能太小,否則容易出現(xiàn)桿子上的點,我們采用的值為5。然后根據(jù)這些鄰近點選擇反射強度大的點,作為標牌的角點。根據(jù)上下行分別找到的角點,便可以組成同名點對。
為了驗證上述算法的性能,基于團隊開發(fā)的軟件進行了驗證。系統(tǒng)開發(fā)環(huán)境為Visual Studio 2013 軟件,采用C++語言與DirectX 11 相結(jié)合,渲染架構(gòu)為微軟的DXUT 架構(gòu),后臺數(shù)據(jù)庫為Postgresql。實驗結(jié)果如圖4 所示。
本文詳細介紹了一種交通標牌識別的算法并進行了實驗驗證,證明了該算法的魯棒性以及高效性。該方法可用于地圖數(shù)據(jù)的生成環(huán)節(jié),解決精度檢查過程中效率低下的問題,通過較少的人工交互解決特征點提取的問題。
本算法的關(guān)鍵技術(shù)改進點:
(1)半自動結(jié)合軌跡高度排除地面等雜點。(2)采用了改進的聚類分割算法,根據(jù)點對的連通關(guān)系并結(jié)合距離和法向量進行聚類。(3)采用了點云反射率、平面的法向量以及面積和邊長等約束去篩選標牌所在的類別。(4)對得到的標牌點云進行形狀的判斷,得到標牌的角點,并在原始數(shù)據(jù)中根據(jù)距離和強度去得到真實的角點。
通過以上改進,算法執(zhí)行效率大大提高,同時提高了標牌分割的成功率,能適用于多種復(fù)雜的場景,保證角點的正確性。
針對本文的研究內(nèi)容,由于時間以及能力的局限,還需要下面的完善:(1)該算法涉及到少量人工交互,如何全自動識別角點,還需深入研究。(2)本論文僅僅是實現(xiàn)了相關(guān)的算法,并進行了初步的優(yōu)化,并未涉及到算法的并行加速,以后的重點將放在算法的并行加速上,并進行深入的優(yōu)化。