1. 程式人生 > >基於八叉樹的區域增長點雲分割演算法

基於八叉樹的區域增長點雲分割演算法

該篇文章出自2015年ICIP會議,主要介紹影象分割領域一種新的區域生長演算法 
[TOC]

參考:https://blog.csdn.net/cjx2lxj/article/details/50529618 

提出的問題

鐳射雷達探測到城市環境的物體表面構成三維幾何點,相應的點雲分割技術常用於建築物重建。由於建築物的複雜性,資料分割計算量很大,傳統的點雲分割方法需人工干預,又很耗時。為了提高分割演算法的效率和精確度,本文采用了一種高效的區域增長演算法,對航空鐳射掃描到的建築物點資料進行分割,提取出關注的特徵。

相關工作

三種資料分割方法的比較: 
1)基於模型擬合的方法 
常見的有Hough變換法,RANSAN法 
優點:主要用於3D點雲分割,不受噪聲和異常資料干擾 
缺點:分割質量受畫素點特徵影響較大,不適於大量資料的分割 
2)基於區域增長的方法 
優點:廣泛應用在3D點雲分割中,執行簡單 
缺點:魯棒性不是很好,受分割的多種評判標準的影響,計算時間長 
3)基於聚類特徵的方法 
優點:魯棒性較好,不需要查詢點或查詢區域 
缺點:大資料量的分割計算量很大,無法檢測連續的邊界點,分割後需細化處理。

提出的方案

對獲取到的點雲資料集使用基於八叉樹的區域生長演算法,把點雲分割成子資料塊,再把得到的不完整的資料塊進行細化處理。該演算法主要由粗分割和細化兩部組成。粗分割階段(A),點雲資料集經體素化表示後(A.1),迅速聚類成多個平滑的子資料塊,採用區域增長方法,逐步對相鄰的有相似特徵的體素進行分組(A.2);細化階段(B),把未分配點(點還沒有分配給任何片段)合併到不完整的資料塊中使其變成平滑完整的片段。 
演算法結構圖如圖所示: 
演算法結構圖

粗分割

3.1. 體素化處理 
體素化即為基於八叉樹的分解過程,首先確定封閉的最小立方體,作為根節點或零級節點。根節點遞迴細分為八個子畫素,非空體素繼續劃分,直到劃分到剩餘閾值或達到最小畫素尺寸的標準時終止。分解過程如圖所示。 
八叉樹分解


體素在這種樹狀形式下,進行一致的空間分解——所有節點分裂成八個相同大小的子區域。此外,指標被儲存在每一個非葉節點,從而顯式地連線到子節點,以方便樹橫向連線。從父節點到子節點的連結是單向的。每個節點以其中樣本點的數目為準再分類。在這裡,一個節點如果包含超過三個點,則被定義為非空節點,否則為空節點。值得注意的是,只有非空的節點才能進行細分。 
可以採用多種終止標準,如最小畫素尺寸,一個預定義的最大深度的樹,或每個體素的樣本點的最大數目。這裡選擇剩餘閾值r和最小體素的大小d,作為終止條件。體素的大小選擇以點雲的最小密度為基準。在密集資料的情況下,可以參照預期的分割等級。 
為了使分割塊的表面更加平滑,這裡採用自適應八叉樹的分解方法,這樣可以明顯減少體素的數量,從而減少在這個區域生長步驟的工作量。分割過程中,採用剩餘值繼續分割八叉樹使分割的表面平滑,如圖3.3所示,體素的大小以不同的顏色標記,其中較大的體素出現在平滑區域,較小的畫素出現在邊緣、角落、及周圍的粗糙區域。 
自適應八叉樹分解效果

3.2. 特徵顯著性估計 
計算體素化處理後的體素的特徵向量和剩餘值,在後面的基於體素的區域增長中過程中,會應用這兩種顯著性特徵。這裡採用主成分分析法計算顯著性特徵。 
剩餘向量求法:剔除資料缺失點後,用剩餘的點建立協方差矩陣M,對M進行特徵值分解,對應於M的最小特徵值的特徵向量,即為該點的法向量。 
點資料的擬合平面由中心P和法向量N決定,點Pi到平面正交距離為di;平面上所有點偏差均方根r,r即為本文中的剩餘值,它與資料噪聲級和曲率成比例。 
 
3.3. 基於八叉樹的區域生長演算法 
基於八叉樹的區域增長分割後相鄰的體素具有相似的特徵,區域生長過程是把具有相似特徵的資料塊分組分類。下圖描述了八叉樹的區域增長演算法,返回一組大致光滑的表面塊。 
區域增長演算法 
然而,得到的分割片段是不完整的,這意味著還有多個點尚未分配。由於在建築邊緣的畫素可能包含來自多個曲面資料點,這些點不在基於體素化步驟中。因此,提取的片段都需要進一步的細化步驟。

細化

在細化過程中,為了加快程序,只把與不完整的片段邊界相鄰的體素合併到片段中,每一個不完整的叢集擴充套件到附近成為完整的片段。 
1. 提取邊界畫素點,查詢叢集附近的鄰近邊界點 
為了提高細化步驟的效率,只有邊界體素和叢集內部的邊界周圍的緩衝區的畫素被細化處理。體素具有少於八個相鄰的有限段(具有相同的段ID的體素)可能位於一段邊界。緩衝區是由一定的距離擴充套件叢集邊界的確定。 
2.快速細化 
細化演算法過程如圖所示。 
目標點即為上述的邊界點(不完整點),求目標點與其鄰近的叢集的最佳擬合平面的距離,如果小於給定的閾值,就把目標點劃分到對應的叢集中,如果大於,則繼續查詢。 
細化演算法

達到的效果

實驗測試樣本模型
實驗採用了兩個陸地探測的古老建築及一個空中探測的現代建築模型,將古老建築與現代複雜的樣本作對比,同時,將基於八叉樹的區域增長演算法與原始的基於點的分割演算法作對比。分割效果圖如圖所示。 
1970S建築分割結果圖
300年前校園古老建築分割結果圖
現代建築分割結果圖
實驗結果圖上方使用的是本文提出的區域增長點雲分割演算法,下方使用的是原始的基於點的區域增長分割演算法,可以看出,本文演算法分割的效果很平滑,原始演算法分割後略粗糙。且本文的演算法準確度更高,執行效率更高。 
實驗的結果表明,該演算法確定了演算法的效率和魯棒性,比傳統的區域分割演算法快至少一個數量級,適應性比例在75-95%之間,分割效果較好,得到的分割影象很平滑。

認為的優點

(1)八叉樹演算法的高效利用,分割過程與傳統演算法相比較耗時最小。採用八叉樹的好處有以下三點: 
1)體素的數量比點數量明顯要小,從而大大加快區域增長過程。 
2)基於鄰域計算法向量有助於避免對初始資料點的大量的最近鄰搜尋。 
3)體素網格本身具有一種內在的空間結構,從而允許快速和容易尋找相鄰的體素。 
(2)本文的演算法有效的融合了八叉樹和聚類分割區域生長演算法,大大提高了演算法的效率,準確度也有所提升。

可能的改進

(1)選擇適當體素的大小依然需要人工干預,才能使體素網格能夠精確呈現出點雲的區域性表面特徵,因此體素大小選擇上有待改進。 
(2)現代建築測試中,彎道等比較複雜的部分,分割效果不是很平滑,演算法有待優化。