一種三維點(diǎn)云自動(dòng)補(bǔ)全方法
【專利摘要】本發(fā)明公開了一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,包括以下步驟:S1、基于最后一次回波的點(diǎn)云數(shù)據(jù),對三維點(diǎn)云進(jìn)行缺失邊界檢測,獲取用來反映缺失邊界的邊緣點(diǎn);S2、在三維點(diǎn)云中提取與所述邊緣點(diǎn)相匹配的點(diǎn)云數(shù)據(jù),并將其補(bǔ)入到原始三維點(diǎn)云中的缺失位置,實(shí)現(xiàn)對三維點(diǎn)云的補(bǔ)全。本發(fā)明基于最后一次回波的點(diǎn)云數(shù)據(jù)來獲取三維點(diǎn)云的缺失邊界,并根據(jù)缺失邊界數(shù)據(jù)進(jìn)行三維點(diǎn)云的補(bǔ)全,能夠獲得完整的三維點(diǎn)云數(shù)據(jù),有利于進(jìn)行三維重建等后續(xù)處理;同時(shí),本發(fā)明補(bǔ)全精度高,處理速度快。
【專利說明】-種三維點(diǎn)云自動(dòng)補(bǔ)全方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及三維點(diǎn)云處理領(lǐng)域,尤其涉及一種三維點(diǎn)云自動(dòng)補(bǔ)全方法。
【背景技術(shù)】
[0002] 三維點(diǎn)云是在同一空間參考系下表達(dá)目標(biāo)空間分布和目標(biāo)表面特性的海量點(diǎn)集 合。
[0003] 隨著三維激光掃描技術(shù)的快速發(fā)展并廣泛應(yīng)用,三維點(diǎn)云數(shù)據(jù)尤其是包含點(diǎn)云顏 色信息的三維彩色點(diǎn)云數(shù)據(jù),已經(jīng)成為了一種重要的記錄目標(biāo)空間分布及表面特性的重要 數(shù)據(jù)形式。
[0004] 由于在三維點(diǎn)云的獲取過程中,被掃描的對象往往會(huì)面臨被其他對象遮擋的問 題,使其被遮擋的部分無法被激光掃到,從而造成這部分的數(shù)據(jù)缺失。這就使得對點(diǎn)云缺失 數(shù)據(jù)的補(bǔ)全顯得尤為重要。由于全波形數(shù)據(jù)的出現(xiàn),使得最后一次回波能夠成為點(diǎn)云由于 遮擋產(chǎn)生的缺失數(shù)據(jù)位置的指示,為由遮擋產(chǎn)生的缺失數(shù)據(jù)的檢測提供了一種手段。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于提供一種三維點(diǎn)云自動(dòng)補(bǔ)全方法。
[0006] 為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
[0007] -種三維點(diǎn)云自動(dòng)補(bǔ)全方法,包括以下步驟:
[0008] S1、基于最后一次回波的點(diǎn)云數(shù)據(jù),對三維點(diǎn)云進(jìn)行缺失邊界檢測,獲取用來反映 缺失邊界的邊緣點(diǎn);
[0009] S2、在三維點(diǎn)云中提取與所述邊緣點(diǎn)相匹配的點(diǎn)云數(shù)據(jù),并將其補(bǔ)入到原始三維 點(diǎn)云中的缺失位置,實(shí)現(xiàn)對三維點(diǎn)云的補(bǔ)全。
[0010] 優(yōu)選地,所述步驟S1具體通過以下方法實(shí)現(xiàn):對最后一次回波的點(diǎn)云數(shù)據(jù)中的每 一個(gè)點(diǎn),在非最后一次回波的點(diǎn)云數(shù)據(jù)中找出距離該點(diǎn)最近的點(diǎn)作為邊緣點(diǎn),遍歷最后一 次回波的點(diǎn)云數(shù)據(jù)中的所有點(diǎn),獲得所有用來反映缺失邊界邊緣點(diǎn),然后刪除最后一次回 波的點(diǎn)云數(shù)據(jù)。
[0011] 優(yōu)選地,所述步驟S2包括以下分步驟:
[0012] S21、對步驟S1中得到的每個(gè)邊緣點(diǎn),提取與其對應(yīng)的源塊作為該邊緣點(diǎn)的周圍 數(shù)據(jù)的表達(dá),所述源塊定義為以邊緣點(diǎn)為中心,塊半徑r內(nèi)的所有點(diǎn)的集合;
[0013] S22、對步驟S21中得到的每個(gè)源塊,在三維點(diǎn)云中提取與其相匹配的點(diǎn)云數(shù)據(jù), 并補(bǔ)入到該源塊中。
[0014] 優(yōu)選地,所述步驟S22包括以下子步驟:
[0015] S221、對步驟S21中得到的每個(gè)源塊,提取與其對應(yīng)的擴(kuò)展塊,所述擴(kuò)展塊定義為 以該源塊的中心點(diǎn)為中心,1倍塊半徑r到2倍塊半徑r之間的所有點(diǎn)的集合;
[0016] S222、對所述擴(kuò)展塊中的每一個(gè)點(diǎn),提取與其對應(yīng)的目標(biāo)塊,所述目標(biāo)塊定義為以 該點(diǎn)為中心,塊半徑r內(nèi)的所有點(diǎn)的集合。
[0017] S223、采用迭代最近點(diǎn)方法,將步驟S222中得到的每個(gè)目標(biāo)塊分別與對應(yīng)的源塊 進(jìn)行匹配,獲得最佳匹配目標(biāo)塊,并獲取最佳匹配目標(biāo)塊與源塊匹配過程中的變換矩陣,對 該變換矩陣求逆獲得逆變換矩陣。
[0018] S224、計(jì)算源塊的影響半徑,在源塊中隨機(jī)選取一個(gè)點(diǎn),找出到其距離最近的兩個(gè) 點(diǎn),取這兩個(gè)點(diǎn)到該點(diǎn)的平均距離,即為該源塊的影響半徑。
[0019] S225、對于每個(gè)源塊,將其對應(yīng)的最佳匹配目標(biāo)塊通過逆變換矩陣變換形成要補(bǔ) 入源塊中的數(shù)據(jù)集,對于該數(shù)據(jù)集中的每一個(gè)點(diǎn),在源塊中以影響半徑搜索,如果有源塊中 的點(diǎn)在影響半徑內(nèi),則該點(diǎn)不加入源塊中,如果沒有,則將該點(diǎn)加入源塊中。
[0020] 優(yōu)選地,所述步驟S2還包括以下分步驟:
[0021] S23、對于每個(gè)源塊,根據(jù)補(bǔ)入到其內(nèi)的點(diǎn)云數(shù)據(jù),更新其對應(yīng)的邊緣點(diǎn);
[0022] S24、重復(fù)步驟S21至步驟S23并循環(huán),直至將三維點(diǎn)云的所有缺失位置補(bǔ)全。
[0023] 優(yōu)選地,所述步驟S23包括以下子步驟:
[0024] S231、對于每個(gè)源塊,計(jì)算源塊中心點(diǎn)到所有補(bǔ)入到該源塊內(nèi)的點(diǎn)的方向向量的 平均值作為補(bǔ)全向量,將補(bǔ)全向量的長度歸一化為塊半徑r,找出距離補(bǔ)全向量的終點(diǎn)最近 的點(diǎn)P ;
[0025] S232、計(jì)算點(diǎn)p到源塊中心點(diǎn)的距離;
[0026] S233、判斷點(diǎn)p到源塊中心點(diǎn)的距離是否大于邊緣閾值,若是,則以點(diǎn)p作為新的 邊緣點(diǎn),若否,則先計(jì)算源塊中心點(diǎn)到點(diǎn)P的方向向量,再歸一化其長度為塊半徑r,尋找到 該向量最近的點(diǎn)P'作為新的邊緣點(diǎn)。
[0027] 優(yōu)選地,所述步驟S233中的邊緣閾值為2R/3。
[0028] 采用上述技術(shù)方案后,本發(fā)明與【背景技術(shù)】相比,具有如下優(yōu)點(diǎn):本發(fā)明基于最后 一次回波的點(diǎn)云數(shù)據(jù)來獲取三維點(diǎn)云的缺失邊界,并根據(jù)缺失邊界數(shù)據(jù)進(jìn)行三維點(diǎn)云的補(bǔ) 全,能夠獲得完整的三維點(diǎn)云數(shù)據(jù),有利于進(jìn)行三維重建等后續(xù)處理;同時(shí),本發(fā)明補(bǔ)全精 度高,處理速度快。
【專利附圖】
【附圖說明】
[0029] 圖1為本發(fā)明的工作流程示意圖。
[0030] 圖2為本發(fā)明步驟S2的流程示意圖。
[0031] 圖3顯示了邊緣點(diǎn)周圍數(shù)據(jù)表達(dá)的結(jié)果。
[0032] 圖4本發(fā)明步驟S22的流程示意圖。
[0033] 圖5顯示了擴(kuò)展塊和目標(biāo)塊的提取結(jié)果。
[0034] 圖6顯示了影響半徑的計(jì)算過程。
[0035] 圖7本發(fā)明步驟S23的流程示意圖。
【具體實(shí)施方式】
[0036] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0037] 實(shí)施例
[0038] 請參閱圖1,本發(fā)明公開了一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其包括以下步驟:
[0039] S1、基于最后一次回波的點(diǎn)云數(shù)據(jù),對三維點(diǎn)云進(jìn)行缺失邊界檢測,獲取用來反映 缺失邊界的邊緣點(diǎn)。該步驟具體通過以下方法實(shí)現(xiàn):對最后一次回波的點(diǎn)云數(shù)據(jù)中的每一 個(gè)點(diǎn),在非最后一次回波的點(diǎn)云數(shù)據(jù)中找出距離該點(diǎn)最近的點(diǎn)作為邊緣點(diǎn),遍歷最后一次 回波的點(diǎn)云數(shù)據(jù)中的所有點(diǎn),獲得所有用來反映缺失邊界邊緣點(diǎn),,然后刪除最后一次回波 的點(diǎn)云數(shù)據(jù)。
[0040] 根據(jù)先知經(jīng)驗(yàn),最后一次回波的點(diǎn)云數(shù)據(jù)中的點(diǎn)的坐標(biāo)誤差比較大,而非最后一 次回波的點(diǎn)云數(shù)據(jù)中的點(diǎn)的誤差相對較小,因此,本步驟中選取邊緣點(diǎn)的方式既能夠較準(zhǔn) 確的反映出三維點(diǎn)云的缺失邊界信息,又能能夠有效消除最后一次回波的點(diǎn)云數(shù)據(jù)所帶來 的誤差。
[0041] S2、在三維點(diǎn)云中提取與邊緣點(diǎn)相匹配的點(diǎn)云數(shù)據(jù),并將其補(bǔ)入到原始三維點(diǎn)云 中的缺失位置,實(shí)現(xiàn)對三維點(diǎn)云的補(bǔ)全。參考圖2所示,該步驟具體通過以下步驟實(shí)現(xiàn):
[0042] S21、對步驟S1中得到的每個(gè)邊緣點(diǎn),提取與其對應(yīng)的源塊作為該邊緣點(diǎn)的周圍 數(shù)據(jù)的表達(dá),源塊定義為以邊緣點(diǎn)為中心,塊半徑r內(nèi)的所有點(diǎn)的集合。為了能夠更直觀的 理解本發(fā)明,參考圖3所示,圖中的點(diǎn)f為步驟S1中得到的邊緣點(diǎn),圖中的源塊S為以點(diǎn)f 為中心,塊半徑r內(nèi)的所有點(diǎn)的集合。
[0043] 對于塊半徑r的值,用戶可根據(jù)實(shí)際情況自行設(shè)定,塊半徑r取值過大,會(huì)使得降 低點(diǎn)云數(shù)據(jù)補(bǔ)全的穩(wěn)健性,取值過小會(huì)降低補(bǔ)全處理的效率。在本實(shí)施例中,塊半徑r取值 為 15cm〇
[0044] S22、對步驟S21中得到的每個(gè)源塊,在三維點(diǎn)云中提取與其相匹配的點(diǎn)云數(shù)據(jù), 并補(bǔ)入到該源塊中。
[0045] 參考圖4所示,步驟S22具體通過以下步驟實(shí)現(xiàn):
[0046] S221、對步驟S21中得到的每個(gè)源塊,提取與其對應(yīng)的擴(kuò)展塊,擴(kuò)展塊定義為以該 源塊的中心點(diǎn)為中心,1倍塊半徑r到2倍塊半徑r之間的所有點(diǎn)的集合。為了便于理解, 參考圖5所示,點(diǎn)f (邊緣點(diǎn))為源塊S的中心點(diǎn),擴(kuò)展塊D與源塊S相對應(yīng),擴(kuò)展塊D為以 點(diǎn)f為中心,1倍塊半徑r到2倍塊半徑r之間的所有點(diǎn)的集合。本領(lǐng)域技術(shù)人員應(yīng)該理解 的是,在本發(fā)明中所提到"源塊"和"目標(biāo)塊"指的是以塊半徑r為球半徑的球形區(qū)域內(nèi)的 點(diǎn)的集合,本發(fā)明中所提到"擴(kuò)展塊"指的是具有同一球心的兩個(gè)球形區(qū)域(球半徑為1倍 塊半徑的球形區(qū)域、球半徑為2倍塊半徑的球形區(qū)域)之間的點(diǎn)的集合。
[0047] S222、對擴(kuò)展塊中的每一個(gè)點(diǎn),提取與其對應(yīng)的目標(biāo)塊,目標(biāo)塊定義為以該點(diǎn)為中 心,塊半徑r內(nèi)的所有點(diǎn)的集合。
[0048] S223、采用迭代最近點(diǎn)方法,將步驟S222中得到的每個(gè)目標(biāo)塊分別與對應(yīng)的源塊 進(jìn)行匹配,獲得最佳匹配目標(biāo)塊,并獲取最佳匹配目標(biāo)塊與源塊匹配過程中的變換矩陣,對 該變換矩陣求逆獲得逆變換矩陣。
[0049] 在本實(shí)施例中,目標(biāo)塊與源塊匹配過程中實(shí)際上是源塊到目標(biāo)塊的變換過程,其 變換矩陣為:
[0050] T = t*S*Rx*Ry*Rz
[0051] 其中,t為平移矩陣,s為放縮矩陣,Rx為繞X軸旋轉(zhuǎn)矩陣,Ry為繞y軸旋轉(zhuǎn)矩陣, Rz為繞z軸旋轉(zhuǎn)矩陣。
[0052] S224、計(jì)算源塊的影響半徑,在源塊中隨機(jī)選取一個(gè)點(diǎn),找出到其距離最近的兩個(gè) 點(diǎn),取這兩個(gè)點(diǎn)到該點(diǎn)的平均距離,即為該源塊的影響半徑。參考圖6所示,假定在源塊中 隨機(jī)選取的點(diǎn)為點(diǎn)q,與點(diǎn)q距離最近的兩個(gè)點(diǎn)為點(diǎn)q 2,則分別計(jì)算點(diǎn)1到點(diǎn)q的距離 d"點(diǎn)q2至丨』點(diǎn)q的距離d2,然后計(jì)算屯和d2的平均值,即為該源塊的影響半徑。
[0053] S225、對于每個(gè)源塊,將其對應(yīng)的最佳匹配目標(biāo)塊通過逆變換矩陣變換形成要補(bǔ) 入源塊中的數(shù)據(jù)集,對于該數(shù)據(jù)集中的每一個(gè)點(diǎn),在源塊中以影響半徑搜索,如果有源塊中 的點(diǎn)在影響半徑內(nèi),則該點(diǎn)不加入源塊中,如果沒有,則將該點(diǎn)加入源塊中。
[0054] S23、對于每個(gè)源塊,根據(jù)補(bǔ)入到其內(nèi)的點(diǎn)云數(shù)據(jù),更新其對應(yīng)的邊緣點(diǎn)。
[0055] 參考圖7所示,步驟S23具體通過以下步驟實(shí)現(xiàn):
[0056] S231、對于每個(gè)源塊,計(jì)算源塊中心點(diǎn)到所有補(bǔ)入到該源塊內(nèi)的點(diǎn)的方向向量的 平均值作為補(bǔ)全向量,將補(bǔ)全向量的長度歸一化為塊半徑r,找出距離補(bǔ)全向量的終點(diǎn)最近 的點(diǎn)P。
[0057] S232、計(jì)算點(diǎn)p到源塊中心點(diǎn)的距離。
[0058] S233、判斷點(diǎn)p到源塊中心點(diǎn)的距離是否大于邊緣閾值,若是,則以點(diǎn)p作為新的 邊緣點(diǎn),若否,則先計(jì)算源塊中心點(diǎn)到點(diǎn)P的方向向量,再歸一化其長度為塊半徑r,尋找到 該向量最近的點(diǎn)P'作為新的邊緣點(diǎn)。尋找點(diǎn)P'作為新的邊緣點(diǎn),是為了解決源塊中具有 不同的表面特征,其平均方向偏差較大,檢測到的點(diǎn)P距離中心點(diǎn)較近的情況。在本實(shí)施例 中,邊緣閾值取值為2R/3。
[0059] S24、重復(fù)步驟S21至步驟S23并循環(huán),直至將三維點(diǎn)云的所有缺失位置補(bǔ)全。
[0060] 以上所述,僅為本發(fā)明較佳的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍 為準(zhǔn)。
【權(quán)利要求】
1. 一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,包括以下步驟: 51、 基于最后一次回波的點(diǎn)云數(shù)據(jù),對三維點(diǎn)云進(jìn)行缺失邊界檢測,獲取用來反映缺失 邊界的邊緣點(diǎn); 52、 在三維點(diǎn)云中提取與所述邊緣點(diǎn)相匹配的點(diǎn)云數(shù)據(jù),并將其補(bǔ)入到原始三維點(diǎn)云 中的缺失位置,實(shí)現(xiàn)對三維點(diǎn)云的補(bǔ)全。
2. 如權(quán)利要求1所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S1具體通 過以下方法實(shí)現(xiàn):對最后一次回波的點(diǎn)云數(shù)據(jù)中的每一個(gè)點(diǎn),在非最后一次回波的點(diǎn)云數(shù) 據(jù)中找出距離該點(diǎn)最近的點(diǎn)作為邊緣點(diǎn),遍歷最后一次回波的點(diǎn)云數(shù)據(jù)中的所有點(diǎn),獲得 所有用來反映缺失邊界邊緣點(diǎn),然后刪除最后一次回波的點(diǎn)云數(shù)據(jù)。
3. 如權(quán)利要求1或2所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S2包 括以下分步驟: 521、 對步驟S1中得到的每個(gè)邊緣點(diǎn),提取與其對應(yīng)的源塊作為該邊緣點(diǎn)的周圍數(shù)據(jù) 的表達(dá),所述源塊定義為以邊緣點(diǎn)為中心,塊半徑r內(nèi)的所有點(diǎn)的集合; 522、 對步驟S21中得到的每個(gè)源塊,在三維點(diǎn)云中提取與其相匹配的點(diǎn)云數(shù)據(jù),并補(bǔ) 入到該源塊中。
4. 如權(quán)利要求3所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S22包括以 下子步驟: 5221、 對步驟S21中得到的每個(gè)源塊,提取與其對應(yīng)的擴(kuò)展塊,所述擴(kuò)展塊定義為以該 源塊的中心點(diǎn)為中心,1倍塊半徑r到2倍塊半徑r之間的所有點(diǎn)的集合; 5222、 對所述擴(kuò)展塊中的每一個(gè)點(diǎn),提取與其對應(yīng)的目標(biāo)塊,所述目標(biāo)塊定義為以該點(diǎn) 為中心,塊半徑r內(nèi)的所有點(diǎn)的集合。 5223、 采用迭代最近點(diǎn)方法,將步驟S222中得到的每個(gè)目標(biāo)塊分別與對應(yīng)的源塊進(jìn)行 匹配,獲得最佳匹配目標(biāo)塊,并獲取最佳匹配目標(biāo)塊與源塊匹配過程中的變換矩陣,對該變 換矩陣求逆獲得逆變換矩陣。 5224、 計(jì)算源塊的影響半徑,在源塊中隨機(jī)選取一個(gè)點(diǎn),找出到其距離最近的兩個(gè)點(diǎn), 取這兩個(gè)點(diǎn)到該點(diǎn)的平均距離,即為該源塊的影響半徑。 5225、 對于每個(gè)源塊,將其對應(yīng)的最佳匹配目標(biāo)塊通過逆變換矩陣變換形成要補(bǔ)入源 塊中的數(shù)據(jù)集,對于該數(shù)據(jù)集中的每一個(gè)點(diǎn),在源塊中以影響半徑搜索,如果有源塊中的點(diǎn) 在影響半徑內(nèi),則該點(diǎn)不加入源塊中,如果沒有,則將該點(diǎn)加入源塊中。
5. 如權(quán)利要求4所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S2還包括 以下分步驟: 523、 對于每個(gè)源塊,根據(jù)補(bǔ)入到其內(nèi)的點(diǎn)云數(shù)據(jù),更新其對應(yīng)的邊緣點(diǎn); 524、 重復(fù)步驟S21至步驟S23并循環(huán),直至將三維點(diǎn)云的所有缺失位置補(bǔ)全。
6. 如權(quán)利要求5所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S23包括以 下子步驟: 5231、 對于每個(gè)源塊,計(jì)算源塊中心點(diǎn)到所有補(bǔ)入到該源塊內(nèi)的點(diǎn)的方向向量的平均 值作為補(bǔ)全向量,將補(bǔ)全向量的長度歸一化為塊半徑r,找出距離補(bǔ)全向量的終點(diǎn)最近的點(diǎn) P ; 5232、 計(jì)算點(diǎn)p到源塊中心點(diǎn)的距離; S233、判斷點(diǎn)p到源塊中心點(diǎn)的距離是否大于邊緣閾值,若是,則以點(diǎn)p作為新的邊緣 點(diǎn),若否,則先計(jì)算源塊中心點(diǎn)到點(diǎn)P的方向向量,再歸一化其長度為塊半徑r,尋找到該向 量最近的點(diǎn)P'作為新的邊緣點(diǎn)。
7.如權(quán)利要求6所述的一種三維點(diǎn)云自動(dòng)補(bǔ)全方法,其特征在于,所述步驟S233中的 邊緣閾值為2R/3。
【文檔編號】G06T17/00GK104063898SQ201410308951
【公開日】2014年9月24日 申請日期:2014年6月30日 優(yōu)先權(quán)日:2014年6月30日
【發(fā)明者】王程, 蔡志鵬, 溫程璐, 程明, 李軍 申請人:廈門大學(xué)