本發明涉及一種基于局部區間極大值的激光掃描點云樹木自動提取方法。
背景技術:
利用激光掃描技術進行森林調查,可以安全高效地獲得掃描樣地內的完整三維點云數據。該點云數據反映了掃描樣地內植被,樹木,地形等對象完整的形態結構,為樹木參數調查提供了可靠的數據支持。在三維點云數據中進行單株木提取是進行樹木參數調查和森林資源調查的基礎和前提,其結果直接決定了后續調查及計算的正確性。然而點云林區場景的數據量極大,且場景的可視性受森林冠層的干擾嚴重,不利于從整體上直接進行觀測。此外,采用交互式手動割取單株木的方法工作量大,需要在三維空間上進行切割,操作難度大,分割效果粗糙,易帶入噪聲。而基于點云數據的樹木自動提取技術將各株樹木所屬數據點單獨劃分出來,可以為自動森林資源調查提供有效的解決途徑。
在三維點云數據中進行樹木自動檢測和提取,是將屬于同一株樹木(包括樹干和樹冠)的數據點集從原始數據中提取出來。一方面,提取的樹木需要保留完整的結構,即提取完整的樹干以及樹冠數據,從而滿足單株胸徑和樹高等參數的測量需求。另一方面,提取的樹木數據應該盡可能排除雜草以及地面的數據點,為后續計算減少負擔。
林區通常環境復雜,不僅地形坡度大,且局部地形起伏不平,對自動提取方法帶來考驗。此外,各林區樹種存在差異,而不同的樹種形態、高度、大小各異,變化多樣,要適應不同樹種的有效提取,對提取方法的魯棒性產生極大的要求。而點云數據本身受掃描儀位置影響,其數據密度分布不均、數據遮擋缺失等問題也容易對提取結果的穩定性造成負面影響。從海量點云中快速、自動地提取樹木雖然難度大,要求高,但該技術具有重要的經濟和實用價值,一直是國內外的研究熱點。
目前,已有的面向三維激光點云的單木自動提取方法主要分為面向機載點云提取方法和面向地面點云提取方法兩類:面向機載激光點云數據的提取方法主要考慮的是樹冠的提取,這是由于機載點云俯視掃描的特點,使樹木信息更多的表現在樹冠結構上,常用的方法為基于局部鄰域主成分分析(PCA)的方法,基于分水嶺的方法,基于幾何分割規則的方法等,其缺陷在于:利用樹冠進行處理難以克服樹冠頂端被冠層遮擋的情況,也難以保證樹干的完整提取。而面向地面激光的單木提取方法主要考慮了樹干和樹冠的完整保留,對于林區場景,主要方法是在固定高度(如1.3米)采用截面擬合圓判定的方法,對于城區場景,則通常采用去除地面后,歐式聚類或超體素分割的方法,然后通過計算PCA維數,RGB顏色,FPFH等特征,從而識別和提取樹木目標,其缺陷主要在于:
1、采用固定高度截面擬合圓判定的方法在數據部分遮擋缺失的情況下容易遇到困難,森林植被茂密,數據獲取時遠處的樹木因為前面物體的遮擋會導致部分樹干缺失,從而導致無法擬合圓形,最終丟失樹木;
2、采用先去除地面,再利用歐式聚類構建目標對象的方法,首先地面濾除在起伏較大的林區場景中容易留下地面點噪聲,此外,歐式聚類難以克服重疊目標的分割,林區中樹冠容易交錯,聚類后易形成大片樹木相連的情況,森林層次復雜,雜草的生長和特異的樹木形態干擾形態特征的計算,而顏色信息也會受到林地郁閉度的影響(光照)而不穩定。
技術實現要素:
本發明的目的在于克服上述現有技術的不足,提供一種基于局部區間極大值的激光掃描點云樹木自動提取方法。
為實現上述目的,本發明采用以下技術方案:
基于局部區間極大值的激光掃描點云樹木自動提取方法,包括以下步驟:
(1)對獲得的三維點云數據進行網格劃分,建立非空網格索引,將空網格排除;
(2)遍歷每一個非空網格,計算非空網格中高程區間的累積值;
(3)獲取樹木的中心點集:
a、設置能量粗分隔TE對網格進行閾值粗分割,保留累積值E≥TE的網格,排除累積值E<TE的網格并將其置為空網格;
b、計算閾值粗分割后保留下來的每個網格的水平中心c=[cx,cy],所有保留網格水平中心c=[cx,cy]構成了嫌疑樹干中心點集C;
c、為嫌疑樹干中心點集C構建Kd-tree索引結構,設置樹木半徑r,遍歷嫌疑樹干中心點集C中的點ci,以該點為查詢點,搜尋其鄰域半徑內的鄰域中心點cj(cj∈C),若為空集(除查詢點本身)則保留,若非空則依次查找各個鄰域中心點cj,比較該鄰域中心點cj與查詢點ci的高程區間累積值,若查詢點的累積值為該鄰域內所有中心點中的最大值則標記為樹木中心點,并將其他點標記為非樹木中心點,若查詢點不是最大值,則標記為非樹木中心點,在遍歷完所有點后將該點排除,最終得到樹木中心點集為
(4)樹木的提取
將原始的三維點云數據集P投影于XOY平面上,從而獲得投影點并為該點集建立Kd-tree索引,然后遍歷每一個樹木中心點ctr(ctr∈Ctr),每遍歷一個樹木中心點,以該中心點作為查詢點,搜索投影點集中距離小于r的數據點并記錄該索引值i,構成單株木的點云索引序列,最后在原始點云中將屬于該索引序列的點集提取出來作為單株樹木點云,完成提取樹木操作。
進一步地,步驟(1)具體包括以下步驟:
a、對獲得的整個三維點云數據集P,按照XOY平面進行網格劃分,其中網格為正方形網格,設置網格邊長為l,將每個點pi=[xi,yi,zi],pi∈P,其中i=1,2,...,s,s為點的個數,按每個點的[px,py]值分別將點劃入對應所屬的網格中,并建立相應的索引關系;
b、記錄非空網格的索引值,將空網格排除。
進一步地,步驟(2)具體包括:
a、計算每一個非空網格的區間的最大值及最小值,建立高程區間[zmin,zmax],利用高程區間分辨率zres對高程區間進行分段統計,分段操作為
bin(n)=[zmin+(n-1)zres,zmin+nzres)
式中bin(n)為高程區間,該高程區間包含區間內所有的三維數據點,n為高程區間的序號;
b、通過高程分段統計后,計算每個分段區間是否有數據占據該空間,因此對于高程區間的判斷有二值函數
其中#表示統計當前高程區間內的點個數,n為當前高程區間的序號,N為個數閾值,
則高程區間的累積值定義為:
其中m為高程區間數量,從而每一個網格獲得對應的累積值E,并記錄。
進一步地,在步驟(2)與步驟(3)之間還有對網格進行重疊平移劃分的步驟,具體為:采用部分重疊網格劃分法對已劃分的網格頂點V=[xv,yv]重新計算新的頂點位置V′=[xv',yv'],并將每個原始點pi=[xi,yi,zi]重新劃入對應的網格,再次建立新的網格與原始點的索引關系,在新的網格上重復進行非空網格索引建立和非空網格高程區間累積計算操作,獲取新劃分網格坐標下每個網格對應的累積值E′。
進一步地,所述部分重疊網格劃分法的重疊部分取決于設置的重疊比例noffset,則新的網格頂點位置V′=[xv',yv']=[xv+l/noffset,yv+l/noffset]。
進一步地,在步驟(3)中利用能量粗分隔TE分別對兩次網格劃分后的結果進行分割,獲得兩次的網格中心點集C1及C2,則所述嫌疑樹干中心點集C=C1∪C2。
采用上述技術方案后,本發明與背景技術相比,具有如下優點:
1、本發明通過計算高程區間累積值來描述各個網格內的點集空間分布情況,利用樹干在垂直空間相對于地面和雜草對象顯著性強的特點,通過尋找高程累積值較大的網格來獲取潛在的樹干位置。該方法考慮的是空間點集累積的結果,對密度和遮擋不敏感,對樹干任意局部缺失具備抵抗力,克服了點云數據密度遠近(距離掃描儀)分布不均的缺點,使得結果受采集設備影響小,更具穩定性;
2、本發明通過對網格的半重疊平移,進行多次區間累積計算,從而精確獲得局部潛在的高程空間累積極值,避免了樹木定位不精確的提取結果,也間接避免了在提取計算過程中樹邊雜草對樹干定位的干擾;
3、本發明采用了非極大值抑制的方法對中心點集進行判定,從而精確定位潛在樹干的位置,可以更好地區別地面與雜草的干擾,避免了形態特征在不同樹種間計算的不穩定,對多種樹木的自動提取都具有有效性,采用將潛在樹干附近的中心點(即樹冠位置)消除的方法,并在最后以樹干中心點為基點,將范圍內的點集一并提取,達到整樹合并的效果,避免了同一株木的反復提取,使結果具有可靠性;
4、本發明采用網格塊為單元進行計算,計算速度快,可以快速,自動提取林區場景三維點云數據中的單株樹木點集,提取的單株樹木包含樹干和樹冠結構,更適用于大規模點云場景,具有實際意義和應用價值。
附圖說明
圖1為本發明算法的流程示意圖;
圖2a為本發明實施例原始點云數據;
圖2b為本發明樹木提取結果示意圖;
圖3為實施例中不同樹種的單株木提取結果示意圖,由左往右依次為馬尾松、杉木、闊葉林。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
實施例
如圖1所示,基于局部區間極大值的激光掃描點云樹木自動提取方法包括以下步驟:
(1)對獲得的三維點云數據進行網格劃分,建立非空網格索引,具體為:
a、輸入整個三維點云數據集P,計算點集P在三個正交坐標軸方向上的最大最小值,然后設置正方形網格,每個網格的邊長設置為l(本實施例中l=0.2米),根據計算獲得的最大最小值在XOY平面對原始點云進行網格劃分,將每個點pi=[xi,yi,zi](pi∈P,i=1,2,...,s,s為點的個數)按每個點的[px,py]值將該點劃入對應所屬的網格中,并建立相應的索引關系;
b、在遍歷每個點的過程中,記錄每個網格內存在點的個數,建立非空網格索引,并在后續的處理中將空網格排除;
(2)遍歷每一個非空網格,計算非空網格中非空高程區間的累積值E,具體為:
遍歷每一個非空網格,每遍歷一個非空網格時,先計算該區間的最大最小高程值,建立高程區間[zmin,zmax],設置高程區間分辨率zres(如zres=0.1米),則利用高程區間的范圍,進行高程分段統計,分段操作為
bin(n)=[zmin+(n-1)zres,zmin+nzres)
通過高程分段統計后,計算每個分段區間是否有數據占據該空間,因此對于高程區間的判斷有二值函數f(bin(n))有
式中,bin(n)為高程區間,該高程區間包含區間內所有的三維數據點,#表示統計當前高程區間內的點個數,n為當前高程區間的序號,N為個數閾值。遍歷每一個區間段進行統計,然后定義該網格的高程能量為該網格內非空高程區間的累積值E,因此該能量累積函數定義為:
式中,m為高程區間數量,即m=(zmax-zmin)/zres,從而每一個網格獲得對應的累積值E,并記錄。
完成步驟(2)后進行網格重疊平移劃分,具體如下:
采用部分重疊網格劃分法對已劃分的網格頂點V=[xv,yv]重新計算新的頂點位置V′=[xv',yv'],所述部分重疊網格劃分法的重疊部分取決于設置的重疊比例noffset,則新的網格頂點位置V′=[xv',yv']=[xv+l/noffset,yv+l/noffset]。本實施例中采用半重疊網格劃分法,則對于已劃分的網格頂點V=[xv,yv]重新計算新的頂點位置V′=[xv+l/2,yv+l/2],并將每個原始點pi=[xi,yi,zi]重新劃入對應的網格,再次建立新的網格與原始點的索引關系。在新的網格上重復進行非空網格索引建立和非空網格高程區間累積計算操作,獲取新劃分網格坐標下,每個網格對應的累積值E′;
(3)以非極大值抑制法獲取樹木的中心點集:
首先設置能量粗分割閾值TE,TE為無量綱變量,例如利用TE=10。粗分割閾值TE將兩次網格劃分后的結果(設為E,E′)進行分割,保留大于等于該閾值的網格(E≥TE或E′≥TE),排除小于該閾值的網格,將網格置為空網格;
計算閾值粗分割后保留下來的每個網格的水平中心c=[cx,cy],就是計算該網格內點集的水平中心,所有保留的網格中心構成了中心點集Cn作為嫌疑樹干中心點集,將兩次網格的中心點集C1,C2進行合并操作,則最終的嫌疑樹干中心點集即為C=C1∪C2,c∈C。
為嫌疑樹干中心點集C構建Kd-tree索引結構,首先設置樹木半徑r,遍歷每個中心點集中的點ci,ci∈C,以該點為查詢點,搜尋其鄰域半徑內的鄰域中心點cj,cj∈C,若為空集(除查詢點本身),則保留;若非空,則依次查找各個鄰域中心點cj,比較該鄰域中心點cj與查選點ci之間的高程區間累積值Ec,若查詢點的累積值為該鄰域內所有中心點的最大值則標記為樹木中心點,并將其他點標記為非樹木中心點,該步驟即獲得k為該中心點在中心點集中的索引值;若查詢點不是最大值,則標記為非樹木中心點,在遍歷完所有點后,將該點排除。因此,在經過極大值抑制后得到的樹木中心點集為
5.樹木提取
將原始點集P投影于XOY平面上,從而獲得投影點集并為該點集建立Kd-tree索引。然后遍歷每一個樹木中心點ctr(ctr∈Ctr),每遍歷一個樹木中心點,以該中心點作為查詢點,搜索投影點集中距離小于r的數據點并記錄該索引值i,構成單株木的點云索引序列。最后在原始點云中將屬于該索引序列的點集提取出來作為單株樹木點云,完成提取樹木操作。
如圖2a所示的是本實施例原始點云數據,如圖2b為本實施例樹木提取結果示意圖,圖2b中灰色為背景點,黃色為植被提取點。如圖3為實施例中不同樹種的單株木提取結果示意圖,由左往右依次為馬尾松、杉木、闊葉林的提取結果。
綜上所述,本發明可以快速,自動提取林區場景三維點云數據中的單株樹木點集,提取的單株樹木包含樹干和樹冠結構。與現有技術相比,本發明采用高程區間累積值進行樹木定位,在樹干數據部分丟失的情況下依然可以有效提取,由于采用了累積量作進行計算,克服了點云數據密度遠近(距離掃描儀)分布不均的缺點,使得結果受采集設備影響小,更具穩定性。此外,由于采用局部極大值方法進行樹木檢測,可以更好地區別地面與雜草的干擾,避免了形態特征在不同樹種間計算的不穩定,對多種樹木的自動提取都具有有效性。本發明采用網格塊為單元進行計算,計算速度快,更適用于大規模點云場景,具有實際意義和應用價值。
以上所述,僅為本發明較佳的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。