一種建筑sfm點云的自動分割方法
【專利摘要】一種建筑SFM點云的自動分割方法,使用從運動恢復(fù)結(jié)構(gòu)(SFM)算法得到的三維點云,用j-Linkage算法預(yù)聚類點云,計算法向,自動提取地平面方向和建筑立面方向,然后將點云沿著地平面方向自上而下分割,再沿著建筑立面方向分割,得到建筑的多層次結(jié)構(gòu)。本發(fā)明充分利用建筑物和SFM點云的特點,給出一種魯棒的、可用于稀疏建筑SFM點云的自動分割算法。
【專利說明】一種建筑SFM點云的自動分割方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種建筑SFM點云的自動分割的方法,為基于圖像建筑建模的一部分,屬于計算機虛擬現(xiàn)實【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]基于圖像的建筑建模是計算機圖形學(xué)與計算機視覺相結(jié)合的產(chǎn)物,通過采集建筑圖像數(shù)據(jù),恢復(fù)三維建筑模型。從運動恢復(fù)結(jié)構(gòu)(Structure From Motion, SFM)的方法,先提取圖像的特征點并匹配不同圖像之間的對應(yīng)點,然后根據(jù)這些對應(yīng)點恢復(fù)相機的內(nèi)外參數(shù)進行優(yōu)化,最后生成的三維點云。但由圖像生成的三維點云一般稀疏,并且沒有結(jié)構(gòu)信息,需要進一步分割才能得到可用的三維模型。
[0003]點云分割是指將三維空間中的點劃分成更小的、連貫和連接的子集的過程。經(jīng)過分割后,具有相似屬性的點歸為一類。這些點的子集應(yīng)該是“有意義的”,分割后應(yīng)該得到一系列我們感興趣的對象,如屋頂、樹木、街道等。
[0004]現(xiàn)有點云分割方法主要分為基于邊界的分割方法和基于區(qū)域的分割方法。基于邊界的分割方法主要是根據(jù)曲面片間的相交,過渡等不連續(xù)性來識別各曲面片之間的邊界點?;趨^(qū)域的分割方法是先從點云數(shù)據(jù)中選取種子點,并且預(yù)先假定該種子點及其鄰域點屬于可用數(shù)學(xué)表達的某一特定類型的曲面,然后從該種子點開始向其周圍進行擴張搜索,基于曲面微分幾何參數(shù)的性質(zhì)等逐漸將屬于該曲面類型的鄰接點包含進來,直到所有滿足條件的鄰接點都被包含進來。但現(xiàn)有方法一般用于三維掃描儀得到的點云數(shù)據(jù),不適用于SFM算法生成的稀疏點云。
【發(fā)明內(nèi)容】
[0005]本發(fā)明解決的技`術(shù)問題:克服現(xiàn)有技術(shù)的不足,提供一種建筑SFM點云的自動分割方法。該方法結(jié)合建筑知識,可魯棒地確定建筑坐標(biāo)軸,分割出多層建筑的前后層組件,供建筑建模使用。
[0006]本發(fā)明的技術(shù)解決方案:一種建筑SFM點云的自動分割方法,實現(xiàn)步驟如下:
[0007](I)預(yù)處理點云數(shù)據(jù),去掉離群點,粗略聚類點云,生成平面片,計算每類平面片的法向;
[0008](2)對平面片的法向進行kmeans聚類,求每類與SFM坐標(biāo)系(即某相機坐標(biāo)系)豎直軸的夾角,由此提取地平面和建筑正面的方向,確定地平面方向,得到建筑坐標(biāo)軸;旋轉(zhuǎn)坐標(biāo)軸,使X軸為建筑側(cè)面方向,使Y軸為地平面方向,Z軸為建筑正面方向;
[0009](3)沿地平面方向,豎直分割建筑點云,得到為水平區(qū)域,Q1-Q1^
[0010](4)對每個水平區(qū)域Qi,判斷該區(qū)域法向是否與建筑正面方向接近;若是,則沿著建筑正面方向,分割出該區(qū)域前后層Cil-Cin ;
[0011](5)計算每個區(qū)域的Y值范圍,合并重疊平面區(qū)域。
[0012]所述的步驟(1)中法向確定方法:去掉離群點后,使用j-Linkage算法擬合平面,每一類點用最小二乘擬合平面,計算出平面法向。[0013]所述步驟(2)中的確定建筑坐標(biāo)軸方法:先對平面片的法向進行kmeans聚類,聚類參數(shù)K的選取由類簇的平均質(zhì)心距離的加權(quán)平均值確定;然后求類簇中心與原Y軸的夾角,最接近90度的兩類,分別為立面法向方向和立面方向,其中類鏃內(nèi)點數(shù)量相對較多的,為立面法向,數(shù)量相對較少的為立面方向;地平面方向由這兩個方向確定。
[0014]所述步驟(3)中的沿地平面方向豎直分割建筑點云方法:定義P為點云點集,Yfflin為點云中點坐標(biāo)I分量的極小值;用平行于地面的平面以Clthidi為間隔均勻分割點云,得到至上而下 η 組點集 S1,..., Sn,使得 Sk = {p e P | yk < py < yk+1},其中,yk = ymin+dthick*k,Clthidi為相鄰分割平面的距離;計算點集Sk的y分量方差Vk,構(gòu)成序列Vf"Vn;尋找序列中的局部極大值,作分割平面,形成m個水平區(qū)域,(V..Qm。
[0015]所述步驟(4)中的水平區(qū)域前后層分割方法:對于Qi,類似(3)地,用平行于建筑正面的平面均勻分割點云,得到每個區(qū)域內(nèi)點集Tk,即Tk= {p e P|Zk<Pz< Zk+1},其中,zk=zmin+dthick*k ;構(gòu)造序列{I TkI},其中I TkI表示Tk中的點數(shù);求{I TkI}序列的局部極大極小值,做分割平面,形成前后層Cil…cin。
[0016]所述步驟(5)中的相鄰的平面區(qū)域合并方法:對任意前后層點集Cij, i =
j = 1...η,求其軸對齊包圍盒;每個點集初始化為一類,記為Rk,k = 1,2,;對任意
一對點集Rp,Rq(l≤P,q≤m*n),滿足:I)Rp,Rq在包圍盒的Z方向范圍小于ε,可被判斷為平面;2) Rp, Rq包圍盒中心的Z分量接近;3) Rp, Rq包圍盒在Y方向有交叉;則Rp可與Rq合并;最后生成分割結(jié)果。
【專利附圖】
【附圖說明】
[0017]圖1為本發(fā)明的實現(xiàn)流程圖(①為點云預(yù)處理和主方向恢復(fù);②為沿地平面方向,豎直分割建筑點云;③為沿建筑正面方向,分割前后層并合并重疊平面區(qū)域,圖1(a)為SFM輸入點云。圖1(b),(c),(d)為不同步驟的聚類結(jié)果,相同顏色的點屬于同一的類別。圖1(d)為最終分割的正面和側(cè)面視圖);
[0018]圖2為沿地平面方向,豎直分割建筑點云,得到為水平區(qū)域,(V"Qm,(a)為分割結(jié)果,(b)為點集方差序列{Vk};
[0019]圖3最終聚類結(jié)果。
【具體實施方式】
[0020]如圖1所示,本發(fā)明的具體步驟如下:
[0021]1.點云數(shù)據(jù)預(yù)處理
[0022]首先去掉離群點。對每一個三維點P,用kdtree查找其領(lǐng)域r內(nèi)的點。若數(shù)量小于k,則P為一離群點。然后使用j-Linkage算法擬合平面,對點云分類,每一類點用最小二乘擬合平面,計算出平面法向。
[0023]2.恢復(fù)建筑主方向
[0024]先對平面片的法向進行kmeans聚類,聚類參數(shù)K的選取由類簇的平均質(zhì)心距離的加權(quán)平均值σ確定。一般初始取Κ=3,然后增加K,直到σ小于一給定參數(shù)ε。
[0025]然后求類簇中心與原Y軸的夾角。最接近90度的兩類,為建筑正面法向方向和建筑側(cè)面的方向。其中類鏃內(nèi)點較多的,為建筑正面法向方向,較少的為建筑側(cè)面的方向。地平面方向由這兩個方向確定。
[0026]3.沿地平面方向,豎直分割建筑點云
[0027]旋轉(zhuǎn)坐標(biāo)軸,使X軸為建筑側(cè)面方向,使Y軸為地平面方向,Z軸為建筑正面方向;
[0028]定義P為點云點集,ymin為點云中點坐標(biāo)y分量的極小值;用平行于地面的平面以dthkk為間隔均勻分割點云,得到至上而下n組點集S1,...,Sn,使得Sk = {p e PI yk < py
<yk+1},其中,yk = ymin+dthick*k, dthick為相鄰分割平面的距離;計算點集Sk的y分量方差Vk,構(gòu)成序列V^..Vn ;尋找序列中的局部極大值,作分割平面,形成m個水平區(qū)域,(V..Qm,如圖 3 (b)。
[0029]4.沿著建筑正面方向,分割水平區(qū)域前后層
[0030]用平行于建筑正面的平面均勻分割點云,得到每個區(qū)域內(nèi)點集Tk,即Tk =(P e P|zk < pz < zk+1},其中,zk = zmin+dthick*ko 構(gòu)造序列{|Tk|},其中 I Tk I 表示 Tk 中的點數(shù);求{|Tk|}序列的局 部極大極小值,做分割平面,形成前后層Cn-Cin。
[0031]5.合并重疊平面區(qū)域
[0032]對任意前后層點集Cij, i=l...m, j=l...η,求其軸對齊包圍盒;每個點集初始化為一類,記為 Rk,k = 1,2,..., m*n;對任意一對點集 Rp, Rq(l ^ p, q ^ m*n),,滿足:I)Rp,Rq在包圍盒的Z方向范圍小于ε,可被判斷為平面;2) Rp,Rq包圍盒中心的Z分量接近;3)Rp,Rq包圍盒在Y方向有交叉;則Rp可與Rq合并;最后生成分割結(jié)果。
【權(quán)利要求】
1.一種建筑SFM點云的自動分割方法,其特征在于如下步驟: (1)預(yù)處理點云數(shù)據(jù),去掉離群點,粗略聚類點云,生成平面片,計算每類平面片的法向; (2)對平面片的法向進行kmeans聚類,求每類與SFM坐標(biāo)系(即某相機坐標(biāo)系)豎直軸的夾角,由此提取地平面和建筑正面的方向,確定地平面方向,得到建筑坐標(biāo)軸;旋轉(zhuǎn)坐標(biāo)軸,使X軸為建筑側(cè)面方向,使Y軸為地平面方向,Z軸為建筑正面方向; (3)沿地平面方向,豎直分割建筑點云,得到為水平區(qū)域,(V-Qm; (4)對每個水平區(qū)域Qi,判斷該區(qū)域法向是否與建筑正面方向接近;若是,則沿著建筑正面方向,分割出該區(qū)域前后層Cil-Cin ; (5)計算每個區(qū)域的Y值范圍,合并重疊平面區(qū)域。
2.根據(jù)權(quán)利要求1所述的建筑SFM點云的自動分割方法,其特征在于:所述步驟(1)中的法向確定方法:去掉離群點后,使用j-Linkage算法擬合平面,每一類點用最小二乘擬合平面,計算出平面法向。
3.根據(jù)權(quán)利要求1所述的建筑SFM點云的自動分割方法,其特征在于:所述步驟(2)中的確定建筑坐標(biāo)軸方法:先對平面片的法向進行kmeans聚類,聚類參數(shù)K的選取由類簇的平均質(zhì)心距離的加權(quán)平均值確定;然后求類簇中心與原Y軸的夾角,最接近90度的兩類,分別為立面法方向和立面方向,其中類鏃內(nèi)點數(shù)量相對較多的,為立面法向,數(shù)量相對較少的為立面方向;地平面方向由這兩個方向確定。
4.根據(jù)權(quán)利要求1所述的建筑SFM點云的自動分割方法,其特征在于:所述步驟(3)中的沿地平面方向豎直分割建筑點云方法:定義P為點云點集,ymin為點云中點坐標(biāo)I分量的極小值;用平行于地面的平面以Clthidi為間隔均勻分割點云,得到至上而下η組點集S1,…,Sn,使得 Sk = {pep I yk < Py < yk+1},其中,yk = ymin+dthiek*k, dthick 為相鄰分割平面的距離;計算點集Sk的y分量方差Vk,構(gòu)成序列 \ ;尋找序列中的局部極大值,作分割平面,形成m個水平區(qū)域,Q^..Qm。
5.根據(jù)權(quán)利要求1所述的建筑SFM點云的自動分割方法,其特征在于:所述步驟(4)中的水平區(qū)域前后層分割方法:對于Qi,類似(3)地,用平行于建筑正面的平面均勻分割點云,得到每個區(qū)域內(nèi)點集Tk,即Tk = {p e P I zk < pz < zk+1},其中,zk = zmin+dthick*k ;構(gòu)造序列{|Tk|},其中|Tk|表示Tk中的點數(shù);求{|Tk|}序列的局部極大極小值,做分割平面,形成前后層Cil…cin。
6.根據(jù)權(quán)利要求1所述的建筑SFM點云的自動分割方法,其特征在于:所述步驟(5)中的合并重疊平面區(qū)域方法:對任意前后層點集Cu,i = Ρ..πι,j=l...n,求其軸對齊包圍盒;每個點集初始化為一類,記為Rk,k = 1,2, ---,m*]!;對任意一對,點集Rp, Rq(I ( p,q^m*n),滿足:1)RP,Rq在包圍盒的Z方向范圍小于ε,可被判斷為平面;2)Rp,Rq包圍盒中心的Z分量接近;3)RP,Rq包圍盒在Y方向有交叉;則Rp可與Rq合并;最后生成分割結(jié)果。
【文檔編號】G06T7/00GK103514598SQ201310312532
【公開日】2014年1月15日 申請日期:2013年7月20日 優(yōu)先權(quán)日:2013年7月20日
【發(fā)明者】胡勇, 齊越, 仲唐 申請人:北京航空航天大學(xué)