一種基于聚類(lèi)的點(diǎn)云分割方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明提出一種基于聚類(lèi)的點(diǎn)云分割方法及系統(tǒng),包括計(jì)算每個(gè)點(diǎn)的法向量、平面曲率和相容集,首先對(duì)輸入的點(diǎn)云構(gòu)建k?d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的法向量和平面曲率;對(duì)點(diǎn)云進(jìn)行聚類(lèi),構(gòu)建鏈接表和聚類(lèi)中心表,得到所有聚類(lèi)的集合;面片處理,包括以構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合中的每一個(gè)聚類(lèi),對(duì)應(yīng)的點(diǎn)云用一個(gè)平面近似擬合,得到的MCS擬合平面,法向量和平面曲率、相容集;面片合并,得到最終的點(diǎn)云分割結(jié)果。本發(fā)明在傳統(tǒng)的基于區(qū)域生長(zhǎng)的算法基礎(chǔ)之上,直接利用點(diǎn)云的法向量和平面曲率來(lái)進(jìn)行快速分類(lèi),不需要增加額外的計(jì)算,具有快速分割的優(yōu)點(diǎn)。
【專(zhuān)利說(shuō)明】
-種基于聚類(lèi)的點(diǎn)云分割方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于點(diǎn)云處理技術(shù)領(lǐng)域,特別是設(shè)及一種基于聚類(lèi)的點(diǎn)云分割技術(shù)方案。
【背景技術(shù)】
[0002] 隨著激光掃描技術(shù)的不斷升級(jí),=維激光掃描儀能夠快速、方便地獲取目標(biāo)物的 高精度點(diǎn)云數(shù)據(jù),利用點(diǎn)云數(shù)據(jù)建模即可得到相應(yīng)的=維模型,該技術(shù)方法已滲透到智慧 城市建設(shè)、機(jī)械制造、逆向工程等多個(gè)行業(yè)。由于激光點(diǎn)云散亂無(wú)章、曲面性質(zhì)異同,對(duì)海量 的點(diǎn)云數(shù)據(jù)統(tǒng)一建模處理會(huì)加大算法的難度和數(shù)學(xué)表示的復(fù)雜性,因此首先要對(duì)點(diǎn)云進(jìn)行 分割分類(lèi),區(qū)分對(duì)待處理。
[0003] 當(dāng)前較為通用的點(diǎn)云分割方法主要有:基于邊緣檢測(cè)的分割,基于區(qū)域生長(zhǎng)的分 割和基于聚類(lèi)的分割。
[0004] 基于邊緣檢測(cè)的分割根據(jù)數(shù)據(jù)點(diǎn)的局部幾何特性在點(diǎn)集中檢測(cè)到邊界點(diǎn),再進(jìn)行 邊界點(diǎn)的連接,最后根據(jù)檢測(cè)的邊界點(diǎn)將整個(gè)數(shù)據(jù)集分割成獨(dú)立的多個(gè)點(diǎn)集。該方法提取 邊界效果較好,速度快,但點(diǎn)云曲率或法矢量對(duì)雜點(diǎn)敏感度高,提取輪廓容易斷裂而且對(duì)于 型面緩變或圓角半徑較大的曲面往往找不準(zhǔn)邊界。
[0005] 基于區(qū)域生長(zhǎng)的分割將點(diǎn)云幾何特性一致的相鄰空間點(diǎn)劃定為一個(gè)集合。該方法 首先按照一定的策略選定一個(gè)種子點(diǎn)(seed points),由種子點(diǎn)向外延伸,判斷其周?chē)徲?的點(diǎn)是否屬于同一個(gè)曲面,直到在其鄰域不存在連續(xù)的點(diǎn)集為止,最后將運(yùn)些鄰域組合在 一起,構(gòu)成一個(gè)分割區(qū)域。如此迭代進(jìn)行,直到處理完所有的點(diǎn)云。該方法存在的問(wèn)題是難 W選擇合適的種子點(diǎn)W及難W區(qū)分光滑邊界,而且其區(qū)域生長(zhǎng)受設(shè)定闊值的影響較大,選 擇合適的生長(zhǎng)準(zhǔn)則也比較困難。
[0006] 基于聚類(lèi)的區(qū)域分割方法認(rèn)為區(qū)域分割的實(shí)質(zhì)就是將具有相似局部幾何特征參 數(shù)的數(shù)據(jù)點(diǎn)進(jìn)行分類(lèi)。常用的點(diǎn)云特征包括:點(diǎn)的坐標(biāo)、法向量、平面曲率等等。該方法利用 數(shù)據(jù)點(diǎn)特征,將具有類(lèi)似幾何特征的點(diǎn)集聚為一類(lèi),從而實(shí)現(xiàn)點(diǎn)云數(shù)據(jù)分割。傳統(tǒng)的基于聚 類(lèi)的方法對(duì)于曲面類(lèi)型較為明顯的曲面分塊存在一定的優(yōu)勢(shì),但是對(duì)于復(fù)雜的曲面而言, 要直接確定曲面的分類(lèi)個(gè)數(shù)和曲面類(lèi)型比較困難,對(duì)容易出現(xiàn)的細(xì)碎面片進(jìn)行二次處理也 增加了算法的難度。
【發(fā)明內(nèi)容】
[0007] 為了解決W上方法中存在的問(wèn)題,本發(fā)明提供了一種基于聚類(lèi)的點(diǎn)云分割技術(shù)。 [000引本發(fā)明技術(shù)方案提供一種基于聚類(lèi)的點(diǎn)云分割方法,包括W下步驟:
[0009] 步驟1,計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi)、平面曲率A(Pi)和相容集CS(Pi),首先對(duì)輸入 的點(diǎn)云構(gòu)建k-d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的法向量和 平面曲率,K為預(yù)設(shè)的值;
[0010] 步驟2,對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合e,包括W下子步驟,
[001。 步驟2.1,構(gòu)建鏈接表%姆和聚類(lèi)中屯、表Lc觸滬實(shí)現(xiàn)如下,
[0012]對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,捜索相容集CS(Pi)中的每一個(gè)點(diǎn),找到平面曲率小于 Mpi)的點(diǎn)中與Pi的法向量偏差最小的點(diǎn),如果找到則記為CNP(Pi),將Pi與CNP(Pi)作為一個(gè) 鏈接添加到1齡里面;如果未找到,當(dāng)A(Pi)小于闊值thA,則將Pi作為一個(gè)聚類(lèi)中屯、添加到 Lce姑er中;
[OOU]步驟2.2,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合e泡括從Lcenter中的每一個(gè)聚類(lèi)中 屯、點(diǎn)開(kāi)始,在L!如k中迭代捜索所有與能被該聚類(lèi)中屯、點(diǎn)連接到的點(diǎn),直到捜索不到新的點(diǎn) 為止,將運(yùn)些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合C中;
[0014] 步驟3,面片處理,包括W下子步驟,
[0015] 步驟3.1,構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合中的每一個(gè)聚類(lèi)每,對(duì)應(yīng)的點(diǎn)云用 一個(gè)平面近似擬合,得到Cp的MCS擬合平面Sp,毎的法向量和平面曲率記為化換)和 每的相容集記為CS知P);
[0016] 步驟3.2,面片合并,得到最終的點(diǎn)云分割結(jié)果,包括W下子步驟,
[0017] 步驟3.2.1,尋找鄰近面片,包括對(duì)每一個(gè)面片毎,捜索相容義中的每一個(gè) 點(diǎn),如果其中某個(gè)點(diǎn)Pi滿足W下條件:
[001 引
[0019] 則認(rèn)為每與馬是一對(duì)相互鄰近面片;
[0020] 步驟3.2.2,鄰近面片合并,包括兩個(gè)相鄰面片如果滿足W下條件則合并:
[0021]
[0022] 式中,)和化(為)依次為毎和為的法向量,0代表兩個(gè)向量之間夾角的闊值;
[0023] 對(duì)所有的面片按照平面曲率由小到大進(jìn)行排序,從當(dāng)前面片中沒(méi)有被合并的曲率 最小的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能合并的相鄰面片,新合并的面片在之 后的迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所有合并在一起的面片都被處理 & TCi O
[0024] 而且,步驟2.1中thA的計(jì)算方法如下:
[0025]
[00%]式中,I代表所有點(diǎn)云的平整度的平均值,OA代表點(diǎn)云的平整度的中誤差。
[0027] 而且,步驟3.1中采用Maximum Consistent Set算法實(shí)現(xiàn)點(diǎn)云用一個(gè)平面近似擬 合。
[0028] 本發(fā)明相應(yīng)提供一種基于聚類(lèi)的點(diǎn)云分割系統(tǒng),包括W下模塊,
[0029] 第一模塊,用于計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi)、平面曲率A(Pi)和相容集CS(Pi),首 先對(duì)輸入的點(diǎn)云構(gòu)建k-d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的 法向量和平面曲率,K為預(yù)設(shè)的值;
[0030] 第二模塊,用于對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合6,包括W下操作,
[003。 首先,構(gòu)建鏈接表L姑Ifc和聚類(lèi)中屯、表Lceftter,實(shí)現(xiàn)如下,
[0032]對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,捜索相容集CS(pi)中的每一個(gè)點(diǎn),找到平面曲率小于 Mpi)的點(diǎn)中與Pi的法向量偏差最小的點(diǎn),如果找到則記為CNP(Pi),將Pi與CNP(Pi)作為一個(gè) 鏈接添加到Lunfc里面;如果未找到,當(dāng)A(Pi)小于闊值thA,則將Pi作為一個(gè)聚類(lèi)中屯、添加到 Lc腳脫沖;
[0033] 然后,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合e,包括從Lcenter中的每一個(gè)聚類(lèi)中屯、 點(diǎn)開(kāi)始,在叫"^中迭代捜索所有與能被該聚類(lèi)中屯、點(diǎn)連接到的點(diǎn),直到捜索不到新的點(diǎn)為 止,將運(yùn)些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合e中;
[0034] 第S模塊,用于面片處理,實(shí)現(xiàn)如下,
[0035] 首先,構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合它中的每一個(gè)聚類(lèi)Cp,對(duì)應(yīng)的點(diǎn)云用一 個(gè)平面近似擬合,得到馬的版5擬合平面毒,為的法向量和平面曲率記為n(Sp)和為為),Sp 的相容集記為CS(Sp);
[0036] 然后,面片合并,得到最終的點(diǎn)云分割結(jié)果,包括W下操作,
[0037] 尋找鄰近面片,包括對(duì)每一個(gè)面片每,捜索相容集CS(Sp)中的每一個(gè)點(diǎn),如果其中 某個(gè)點(diǎn)Pi滿足W下條件:
[00;3 引
[0039] 則認(rèn)為馬與《《是一對(duì)相互鄰近面片;
[0040] 鄰近面片合并,包括兩個(gè)相鄰面片如果滿足W下條件則合并:
[0041]
[0042] 式中,打換)和W(Sy)依次為毎和為的法向量,目代表兩個(gè)向量之間夾角的闊值;
[0043] 對(duì)所有的面片按照平面曲率由小到大進(jìn)行排序,從當(dāng)前面片中沒(méi)有被合并的曲率 最小的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能合并的相鄰面片,新合并的面片在之 后的迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所有合并在一起的面片都被處理 yn O
[0044] 而且,thA的計(jì)算方法如下:
[0045]
[0046] 巧甲a代巧所有點(diǎn)云的平整度的平均值,OA代表點(diǎn)云的平整度的中誤差。
[0047] 而且,構(gòu)建初始面片時(shí),采用Maximum Consistent Set算法實(shí)現(xiàn)點(diǎn)云用一個(gè)平面 近似擬合。
[0048] 本發(fā)明對(duì)點(diǎn)云獲取設(shè)備沒(méi)有限制,適用于車(chē)載激光點(diǎn)云、機(jī)載點(diǎn)云和手持式掃描 儀點(diǎn)云。對(duì)點(diǎn)云的場(chǎng)景沒(méi)有限制,適用于道路點(diǎn)云、航空點(diǎn)云和室內(nèi)點(diǎn)云。本發(fā)明基于聚類(lèi) 的思想對(duì)點(diǎn)云進(jìn)行快速分類(lèi),其中的聚類(lèi)算法能夠在邊緣處將點(diǎn)云分割成為不同的部分, 因此聚類(lèi)得到的初始面片具有一定的邊緣信息。在得到的初始面片的基礎(chǔ)上,通過(guò)面片合 并來(lái)得到最終的點(diǎn)云分割結(jié)果。本發(fā)明在傳統(tǒng)的基于區(qū)域生長(zhǎng)的算法基礎(chǔ)之上,直接利用 傳統(tǒng)算法計(jì)算過(guò)程中已有的點(diǎn)云的法向量和平面曲率來(lái)進(jìn)行快速分類(lèi),不需要增加額外的 計(jì)算,具有快速分割的優(yōu)點(diǎn)。
【附圖說(shuō)明】
[0049] 圖1為本發(fā)明實(shí)施例的整體流程圖。
【具體實(shí)施方式】
[0050] 下面通過(guò)實(shí)施例,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說(shuō)明。
[0051] 本發(fā)明所采用的技術(shù)方案提供了一種基于聚類(lèi)的點(diǎn)云分割方法,包括W下步驟:
[0052] 步驟1,計(jì)算每個(gè)點(diǎn)的法向量,平面曲率和相容集,首先對(duì)輸入的點(diǎn)云構(gòu)建k-d tree,然后對(duì)每一個(gè)點(diǎn)利用其周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的法向量和平面曲率,包括 W下子步驟:
[0化3] 步驟1.1,構(gòu)建k-d tree。利用開(kāi)源代碼庫(kù)MN libra巧可對(duì)輸入的點(diǎn)云快速構(gòu)建 k-d tree。生成k-d化ee之后,對(duì)每一個(gè)點(diǎn)都能索引到其最鄰近的K個(gè)點(diǎn),具體實(shí)施時(shí)本領(lǐng) 域技術(shù)人員可自行預(yù)設(shè)K的取值,考慮到算法效率和穩(wěn)定性,一般建議設(shè)K = 50。
[0054]步驟1.2,對(duì)每個(gè)點(diǎn)Pi,利用主成分分析算法(PCA)對(duì)Pi的K個(gè)最鄰近點(diǎn)構(gòu)成的集合 3進(jìn)行平面擬合,并計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi),平面曲率A(Pi),其計(jì)算方法如下:
[0化5]步驟1.2.1,構(gòu)建協(xié)方差矩陣S :
[0化6]
[0化7]式中,E代表3X3的協(xié)方差矩陣,K是中點(diǎn)的個(gè)數(shù),巧是3;中點(diǎn)的平均值。
[0058] 步驟1.2.2,解求協(xié)方差矩陣S的特征值和特征向量。首先構(gòu)成特征值方程:
[0059] AV=EV
[0060] 式中,A代表協(xié)方差矩陣S的3個(gè)特征值構(gòu)成的3 X 1向量,V代表協(xié)方差矩陣5:的3 個(gè)特征向量構(gòu)成的3X3矩陣。對(duì)該方程進(jìn)行奇異值分解(SVD分解)可W得到S個(gè)特征值和 與之對(duì)應(yīng)的=個(gè)特征向量,也稱為主成分(PCs)。將運(yùn)=個(gè)特征值從大到小排列:A2>Ai> 入0,與之對(duì)應(yīng)的立個(gè)特征向量依次記為V2、Vl和VO。前兩個(gè)主成分V2和Vl相互正交,構(gòu)成了式 的最佳擬合=維面,第=個(gè)主成分VO與前兩個(gè)主成分正交,因此可W用來(lái)作為Pi的法向量n (Pi)。與VO對(duì)應(yīng)的特征值A(chǔ)o代表的是取中的點(diǎn)云在VO所代表的方向上的變化程度,因此可W 用來(lái)作為Pi的平面曲率MpO。
[0061] 步驟1.3,計(jì)算每個(gè)點(diǎn)Pi的相容集CS(Pi),計(jì)算方法如下:
[0062] 步驟1.3.1,計(jì)算3沖每一個(gè)點(diǎn)到Pi的最佳擬合S維面之間的垂直距離。其中第k個(gè) 點(diǎn)的垂直距離記為巧,所有點(diǎn)的垂直距離的集合記為.
[0063] 巧驟1.3.2,計(jì)算WJyn的絕對(duì)離差中位數(shù)MAD(Median Absolute Deviation):
[0064]
[0065] 式中,曰=1.4826是根據(jù)絕對(duì)離差中位數(shù)相關(guān)性質(zhì)推算得到的常量,瓜純組(獨(dú)^〇) 代表馬0的中值。
[0066] 步驟1.3.3,計(jì)算每個(gè)點(diǎn)的Rz值(離差相對(duì)值):
[0067]
[0068] 如果菲中的某一個(gè)點(diǎn)對(duì)應(yīng)的Rz值小于2.5,則認(rèn)為運(yùn)個(gè)點(diǎn)與Pi的擬合=維面較為貼 近,因此將其存入Pi的相容集CS(Pi)中,否則認(rèn)為該點(diǎn)是噪聲點(diǎn)。
[0069] 步驟 1.3的具體實(shí)現(xiàn)可參見(jiàn)P.J.Rousseeuw,M.Hube;rt,Robust statistics for outlier detection,Wiley Interdisciplinary Reviews:Data Mining and Knowledge Discovery I (1)(2011)73-79.
[0070] 步驟2,對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合e。
[007。 步驟2.1,構(gòu)建鏈接表和聚類(lèi)中屯嗦ILcenter。對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,捜索 其相容集CS(Pi)中的每一個(gè)點(diǎn),找到平面曲率小于MpO的點(diǎn)中與Pi的法向量偏差最小的 點(diǎn)。其中兩個(gè)點(diǎn)P謝P2的法向量偏差計(jì)算公式如下:
[0072] An(pi,p2)=a;rccos In(Pi)T ? n(p2)
[0073] 式中,n(.)代表某一點(diǎn)的法向量。如果在CS(Pi)中找到了運(yùn)樣的點(diǎn),則將其記為 CNP(Pi),并認(rèn)為Pi應(yīng)該與CNP(Pi)分在同一個(gè)聚類(lèi)里面,將Pi與CNP(Pi)之間的關(guān)系稱為"鏈 接"(linkage),因此將Pi與CNP(Pi)作為一個(gè)鏈接添加到Lzwfc里面。如果不存在運(yùn)樣的點(diǎn) CNP(Pi),即Pi是其相容集CS(Pi)中最平的,此時(shí)如果A(Pi)小于一定的闊值thA,則認(rèn)為Pi是 一個(gè)聚類(lèi)中屯、,并將其添加到Lcewer中。其中thA的計(jì)算方法如下:
[0074]
[0075] 式中,完代表所有點(diǎn)云的平整度的平均值,OA代表點(diǎn)云的平整度的中誤差。
[0076] 步驟2.2,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合e。從Lcen妃r中的每一個(gè)聚類(lèi)中屯、點(diǎn) 開(kāi)始,在Ltefc中迭代捜索所有與能被該聚類(lèi)中屯、點(diǎn)連接(直接連接和間接鏈接巧Ij的點(diǎn),直 到捜索不到新的點(diǎn)為止,將運(yùn)些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合C中。
[0077] 步驟3,面片處理,包括W下子步驟:
[0078] 步驟3.1,構(gòu)建初始面片。對(duì)于聚類(lèi)的集合e中的每一個(gè)聚類(lèi)Cp,其對(duì)應(yīng)的點(diǎn)云都可 W用一個(gè)平面來(lái)近似擬合。與步驟1 . 2中的平面擬合方法不同,運(yùn)里采用Maximum Consistent Set(MCS)算法來(lái)獲得精確的平面擬合結(jié)果。MCS的步驟如下:
[0079] 步驟3.1.1,計(jì)算迭代次數(shù)。MCS算法通過(guò)對(duì)一組點(diǎn)云多次取樣,利用樣本點(diǎn)云擬合 =維平面,然后選取其中與所有點(diǎn)云偏差最小的=維平面作為當(dāng)前點(diǎn)云的最佳擬合平面。 其中迭代次數(shù)It的計(jì)算方法如下:
[0080]
[0081] 式中,P代表MCS算法獲得的S維平面是最貼合與所有點(diǎn)云的置信度,一般設(shè)P = 0.9999; G是當(dāng)前點(diǎn)云中的噪聲點(diǎn)的百分比,一般設(shè)G =50% ;h〇 = 3,代表構(gòu)成一個(gè)S維平 面至少需要3個(gè)=維點(diǎn)。給定P、G和ho之后,可W計(jì)算得出迭代次數(shù)It。
[0082] 步驟3.1.2,選取具有最大相容集的擬合平面。每次迭代中,首先隨機(jī)選取3個(gè)點(diǎn), 然后利用步驟1.2中同樣的方法(主成分分析算法)對(duì)運(yùn)3個(gè)點(diǎn)擬合得到一個(gè)=維平面,接著 計(jì)算當(dāng)前Cp中的每一個(gè)點(diǎn)到運(yùn)個(gè)=維平面之間的垂直距離,并對(duì)其從小到大進(jìn)行排序,選 取其中的前1/2的點(diǎn)云再次進(jìn)行平面擬合,記錄下擬合得到的平面的法向量和平面曲率。經(jīng) 過(guò)It次迭代,選取其中平面曲率最小的那個(gè)平面作為每的MCS擬合平面為,餐的法向量和平 面曲率依次記為n(卻)和A(X,)。
[0083] 步驟3.1.3,得到MCS擬合平面之后為,再利用步驟1.3中的方法得到餐的相容集, 記為CS〇p)。
[0084] 步驟 3.1 的具體實(shí)現(xiàn)可參見(jiàn) Nurunnabi ,Abdul ,Geoff West ,and David Belton/' Outlier detection and robust normaI-curvature estimation in mobile laser scanning 3D point cloud data."Pattern 民ecognition 48.4(2015):1404-1419.
[008日]步驟3.2,面片合并。步驟3.1得到的面片是對(duì)點(diǎn)云的過(guò)分割(over segmentation) 結(jié)果,因此需要對(duì)這些面片進(jìn)行合并,得到最終的點(diǎn)云分割結(jié)果。包括^下子步驟:
[00化]步驟3.2.1,尋找鄰近面片。對(duì)每一個(gè)面片<^捜索其相容集CS(Sp)中的每一個(gè)點(diǎn), 如果其由立個(gè)占 n J品田W下簽化?
[0087]
[0088] 則認(rèn)為每與鳴是一對(duì)相互鄰近面片。
[0089] 步驟3.2.2,鄰近面片合并。兩個(gè)相鄰面片如果滿足W下條件則將其合并:
[0090]
[0091] 式中,》堿)和n(<y依次為邸和為的法向量,e代表兩個(gè)向量之間夾角的闊值,具 體實(shí)施時(shí)本領(lǐng)域技術(shù)人員可自行預(yù)設(shè)取值,0較小則合并的面片較少,反之亦然。
[0092] 對(duì)所有的面片按照其平面曲率由小到大進(jìn)行排序。從當(dāng)前面片中沒(méi)有被合并的曲 率最小的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能與其合并的相鄰面片,新合并的面 片在之后的迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所W合并在一起的面片都 被處理完。
[0093] 具體實(shí)施時(shí),本發(fā)明所提供方法可基于軟件技術(shù)實(shí)現(xiàn)自動(dòng)運(yùn)行流程,也可采用模 塊化方式實(shí)現(xiàn)相應(yīng)系統(tǒng)。
[0094] 本發(fā)明相應(yīng)提供一種基于聚類(lèi)的點(diǎn)云分割系統(tǒng),包括W下模塊,
[00M]第一模塊,用于計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi)、平面曲率A(Pi)和相容集CS(Pi),首 先對(duì)輸入的點(diǎn)云構(gòu)建k-d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的 法向量和平面曲率,K為預(yù)設(shè)的值;
[0096] 第二模塊,用于對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合e,包括W下操作,
[0097] 首先,構(gòu)建鏈接表LKnfc郝聚類(lèi)中屯嗦Leenter,實(shí)現(xiàn)如下,
[0098] 對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,捜索相容集CS(Pi)中的每一個(gè)點(diǎn),找到平面曲率小于 Mpi)的點(diǎn)中與Pi的法向量偏差最小的點(diǎn),如果找到則記為CNP(Pi),將Pi與CNP(Pi)作為一個(gè) 鏈接添加到帖。^里面;如果未找到,當(dāng)A(Pi)小于闊值thA,則將Pi作為一個(gè)聚類(lèi)中屯、添加到 正Ce巧始r?中;
[0099] 然后,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合C,包括從Lcenter中的每一個(gè)聚類(lèi)中屯、 點(diǎn)開(kāi)始,在中迭代捜索所有與能被該聚類(lèi)中屯、點(diǎn)連接到的點(diǎn),直到捜索不到新的點(diǎn)為 止,將運(yùn)些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合位中;
[0100] 第S模塊,用于面片處理,實(shí)現(xiàn)如下,
[0101] 首先,構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合C中的每一個(gè)聚類(lèi)每,對(duì)應(yīng)的點(diǎn)云用一 個(gè)平面近似擬合,得到Cp的MCS擬合平面每每的法向量和平面曲率記為n(Sp)和 Sp的相容集記為CSGSp);
[0102] 然后,面片合并,得到最終的點(diǎn)云分割結(jié)果,包括W下操作,
[0103] 尋找鄰近面片,包括對(duì)每一個(gè)面片為,捜索相容集CS(&,)中的每一個(gè)點(diǎn),如果其中 某個(gè)點(diǎn)Pl滿足W下條件:
[0104]
[01化]則認(rèn)為毎與兩是一對(duì)相互鄰近面片;
[0106] 鄰近面片合并,包括兩個(gè)相鄰面片如果滿足W下條件則合并:
[0107]
[010引式中,》(每)和化(冷)依次為冷和的法向量,0代表兩個(gè)向量之間夾角的闊值;
[0109] 對(duì)所有的面片按照平面曲率由小到大進(jìn)行排序,從當(dāng)前面片中沒(méi)有被合并的曲率 最小的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能合并的相鄰面片,新合并的面片在之 后的迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所有合并在一起的面片都被處理 & TCi O
[0110] 各模塊具體實(shí)現(xiàn)可參見(jiàn)相應(yīng)步驟,本發(fā)明不予寶述。
[0111] 需要強(qiáng)調(diào)的是,本發(fā)明所述的實(shí)施例是說(shuō)明性的,而不是限定性的。因此本發(fā)明包 括并不限于【具體實(shí)施方式】中所述的實(shí)施例,凡是由本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的技術(shù)方案 得出的其他實(shí)施方式,同樣屬于本發(fā)明保護(hù)的范圍。
【主權(quán)項(xiàng)】
1. 一種基于聚類(lèi)的點(diǎn)云分割方法,其特征在于:包括以下步驟, 步驟1,計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi)、平面曲率A(pi)和相容集CS(pi),首先對(duì)輸入的點(diǎn) 云構(gòu)建k-d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的法向量和平面 曲率,K為預(yù)設(shè)的值; 步驟2,對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合C,包括以下子步驟, 步驟2.1,構(gòu)建鏈接表%01&和聚類(lèi)中心表Lce"ter,實(shí)現(xiàn)如下, 對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,搜索相容集CS(p〇中的每一個(gè)點(diǎn),找到平面曲率小于λ (Pi)的點(diǎn)中與Pi的法向量偏差最小的點(diǎn),如果找到則記為CNP(pi),將Pi與CNP(pi)作為一個(gè) 鏈接添加到里面;如果未找到,當(dāng)λ( Ρι)小于閾值tlu,則將Pl作為一個(gè)聚類(lèi)中心添加到 ^center Φ ; 步驟2.2,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合e,包括從中的每一個(gè)聚類(lèi)中心點(diǎn) 開(kāi)始,在I^nfc中迭代搜索所有與能被該聚類(lèi)中心點(diǎn)連接到的點(diǎn),直到搜索不到新的點(diǎn)為止, 將這些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合e中; 步驟3,面片處理,包括以下子步驟, 步驟3.1,構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合(3中的每一個(gè)聚類(lèi)ep,對(duì)應(yīng)的點(diǎn)云用一個(gè) 平面近似擬合,得到&的MCS擬合平面\,4的法向量和平面曲率記為的 相容集記為csf%); 步驟3.2,面片合并,得到最終的點(diǎn)云分割結(jié)果,包括以下子步驟, 步驟3.2.1,尋找鄰近面片,包括對(duì)每一個(gè)面片冬,搜索相容集中的每一個(gè)點(diǎn),如 果其中某個(gè)點(diǎn)Pl滿足以下條件:則認(rèn)為知與4是一對(duì)相互鄰近面片; 步驟3.2.2,鄰近面片合并,包括兩個(gè)相鄰面片如果滿足以下條件則合并:式中,W(5P)和11(?)依次為各和<^的法向量,θ代表兩個(gè)向量之間夾角的閾值; 對(duì)所有的面片按照平面曲率由小到大進(jìn)行排序,從當(dāng)前面片中沒(méi)有被合并的曲率最小 的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能合并的相鄰面片,新合并的面片在之后的 迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所有合并在一起的面片都被處理完。2. 根據(jù)權(quán)利要求1所述基于聚類(lèi)的點(diǎn)云分割方法,其特征在于:步驟2.1中tlu的計(jì)算方 法如下:式中,X代表所有點(diǎn)云的平整度的平均值,取代表點(diǎn)云的平整度的中誤差。3. 根據(jù)權(quán)利要求1或2所述基于聚類(lèi)的點(diǎn)云分割方法,其特征在于:步驟3.1中采用 Maximum Consistent Set算法實(shí)現(xiàn)點(diǎn)云用一個(gè)平面近似擬合。4. 一種基于聚類(lèi)的點(diǎn)云分割系統(tǒng),其特征在于:包括以下模塊, 第一模塊,用于計(jì)算每個(gè)點(diǎn)Pi的法向量n(pi)、平面曲率λ(!Η)和相容集CS(pi),首先對(duì)輸 入的點(diǎn)云構(gòu)建k_d tree,然后對(duì)每一個(gè)點(diǎn)利用周?chē)钹徑腒個(gè)點(diǎn)擬合得到該點(diǎn)的法向量 和平面曲率,K為預(yù)設(shè)的值; 第二模塊,用于對(duì)點(diǎn)云進(jìn)行聚類(lèi),得到所有聚類(lèi)的集合e,包括以下操作, 首先,構(gòu)建鏈接表以滅和聚類(lèi)中心表,實(shí)現(xiàn)如下, 對(duì)所有點(diǎn)云中的每一個(gè)點(diǎn)Pi,搜索相容集CS(p〇中的每一個(gè)點(diǎn),找到平面曲率小于λ (Pi)的點(diǎn)中與Pi的法向量偏差最小的點(diǎn),如果找到則記為CNP(pi),將Pi與CNP(pi)作為一個(gè) 鏈接添加到I勵(lì)里面;如果未找到,當(dāng)λ( Ρι)小于閾值th,則將Pl作為一個(gè)聚類(lèi)中心添加到 [center 中; 然后,點(diǎn)云快速聚類(lèi),得到所有聚類(lèi)的集合β,包括從中的每一個(gè)聚類(lèi)中心點(diǎn)開(kāi) 始,在知械:中迭代搜索所有與能被該聚類(lèi)中心點(diǎn)連接到的點(diǎn),直到搜索不到新的點(diǎn)為止,將 這些點(diǎn)的集合記為一個(gè)聚類(lèi),添加到聚類(lèi)的集合e中; 第三模塊,用于面片處理,實(shí)現(xiàn)如下, 首先,構(gòu)建初始面片,包括對(duì)于聚類(lèi)的集合e中的每一個(gè)聚類(lèi)ep,對(duì)應(yīng)的點(diǎn)云用一個(gè)平 面近似擬合,得到G^MCS擬合平面心,;的法向量和平面曲率記為11?)和的相 容集記為cs〇p;) : 然后,面片合并,得到最終的點(diǎn)云分割結(jié)果,包括以下操作, 尋找鄰近面片,包括對(duì)每一個(gè)面片·%,搜索相容集cs〇'p;)中的每一個(gè)點(diǎn),如果其中某個(gè) 點(diǎn)Pi滿足以下條件:則認(rèn)為4與&是一對(duì)相互鄰近面片; 鄰近面片合并,包括兩個(gè)相鄰面片如果滿足以下條件則合并:式中,w(<yp)和11(?)依次為Sp和4的法向量,Θ代表兩個(gè)向量之間夾角的閾值; 對(duì)所有的面片按照平面曲率由小到大進(jìn)行排序,從當(dāng)前面片中沒(méi)有被合并的曲率最小 的面片開(kāi)始,將其作為當(dāng)前種子面片,合并所有能合并的相鄰面片,新合并的面片在之后的 迭代過(guò)程中也被選為種子面片,如此迭代生長(zhǎng),直到所有合并在一起的面片都被處理完。5. 根據(jù)權(quán)利要求4所述基于聚類(lèi)的點(diǎn)云分割系統(tǒng),其特征在于:tlu的計(jì)算方法如下:式中,X代表所有點(diǎn)云的平整度的平均值,取代表點(diǎn)云的平整度的中誤差。6. 根據(jù)權(quán)利要求4或5所述基于聚類(lèi)的點(diǎn)云分割系統(tǒng),其特征在于:構(gòu)建初始面片時(shí),采 用Maximum Consistent Set算法實(shí)現(xiàn)點(diǎn)云用一個(gè)平面近似擬合。
【文檔編號(hào)】G06T15/00GK105957076SQ201610269680
【公開(kāi)日】2016年9月21日
【申請(qǐng)日】2016年4月27日
【發(fā)明人】姚劍, 魯小虎, 涂金戈, 項(xiàng)彬彬, 李禮
【申請(qǐng)人】武漢大學(xué)