點(diǎn)云數(shù)據(jù)的配準(zhǔn)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種點(diǎn)云數(shù)據(jù)的配準(zhǔn)方法及裝置。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,三維重建技術(shù)在計(jì)算機(jī)輔助幾何設(shè)計(jì)、計(jì)算機(jī)圖形 學(xué)、計(jì)算機(jī)動(dòng)畫、醫(yī)學(xué)圖像處理等領(lǐng)域得到了廣泛應(yīng)用。影響三維重建技術(shù)的基礎(chǔ)而核心問 題是如何準(zhǔn)確、快速獲取場景、物體等目標(biāo)對(duì)象的空間位置信息。具體地,在獲取目標(biāo)對(duì)象 的空間位置信息時(shí),通常會(huì)使用激光雷達(dá)等掃描設(shè)備在不同姿態(tài)下對(duì)目標(biāo)對(duì)象進(jìn)行多次掃 描。點(diǎn)云數(shù)據(jù)即是通過掃描設(shè)備掃描到的目標(biāo)對(duì)象表面離散點(diǎn)的空間坐標(biāo)。由于受目標(biāo)對(duì) 象大小、環(huán)境以及測量器具等因素的限制,掃描設(shè)備在每次掃描時(shí)可能只能測量到目標(biāo)對(duì) 象的一個(gè)側(cè)面。因此,為獲得目標(biāo)對(duì)象的完整數(shù)據(jù)信息,需要控制掃描設(shè)備以不同姿態(tài)對(duì)目 標(biāo)對(duì)象行多次掃描。其中,每次掃描可以得到一幀點(diǎn)云數(shù)據(jù),將不同幀點(diǎn)云數(shù)據(jù)進(jìn)行匹配和 拼接,以統(tǒng)一到同一坐標(biāo)系中的過程為點(diǎn)云數(shù)據(jù)的配準(zhǔn)。
[0003] 相關(guān)技術(shù)在進(jìn)行點(diǎn)云數(shù)據(jù)的配準(zhǔn)時(shí),通常通過如下兩種方式實(shí)現(xiàn):
[0004] 第一種方式為ICP(IterativeClosestPoint,迭代最近點(diǎn)法)。具體地,該種方 式的實(shí)現(xiàn)過程為:獲取相鄰的每兩幀點(diǎn)云數(shù)據(jù);確定相鄰的每兩幀點(diǎn)云數(shù)據(jù)中的所有匹配 點(diǎn);根據(jù)相鄰的每兩幀點(diǎn)云數(shù)據(jù)的所有匹配點(diǎn),對(duì)ICP目標(biāo)函數(shù)進(jìn)行迭代計(jì)算,得到相鄰的 每兩幀點(diǎn)云數(shù)據(jù)之間的姿態(tài)變換參數(shù)。根據(jù)各幀點(diǎn)云數(shù)據(jù)和相鄰的每兩幀點(diǎn)云數(shù)據(jù)之間的 姿態(tài)變換參數(shù),對(duì)各幀點(diǎn)云數(shù)據(jù)進(jìn)行累積,得到目標(biāo)配準(zhǔn)點(diǎn)云數(shù)據(jù)。
[0005] 第二種方式為NDT(NormalDistributionTransformation,正態(tài)分布變換法)。具 體地,該種方式的實(shí)現(xiàn)過程為:獲取相鄰的每兩幀點(diǎn)云數(shù)據(jù);使用指定尺寸的立方單元格 劃分相鄰的每兩幀點(diǎn)云數(shù)據(jù)中的第二幀點(diǎn)云數(shù)據(jù),并確定每個(gè)立方單元格中包括的第二幀 點(diǎn)云數(shù)據(jù)中各個(gè)空間點(diǎn)的正態(tài)分布函數(shù);根據(jù)相鄰的每兩幀點(diǎn)云數(shù)據(jù)中第一幀點(diǎn)云數(shù)據(jù)中 各個(gè)空間點(diǎn)在立方單元格中的位置及正態(tài)分布函數(shù)優(yōu)化NDT目標(biāo)函數(shù),將得到NDT目標(biāo)函 數(shù)的最大值時(shí)的姿態(tài)變換參數(shù)作為相鄰的兩幀點(diǎn)云數(shù)據(jù)之間的姿態(tài)變換參數(shù)。根據(jù)相鄰的 每兩幀點(diǎn)云數(shù)據(jù)之間的姿態(tài)變換參數(shù)對(duì)各幀點(diǎn)云數(shù)據(jù)進(jìn)行累積,得到目標(biāo)配準(zhǔn)點(diǎn)云數(shù)據(jù)。
[0006] 在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)至少存在以下問題:
[0007] 相關(guān)技術(shù)在進(jìn)行點(diǎn)云數(shù)據(jù)的配準(zhǔn)時(shí),會(huì)根據(jù)各幀點(diǎn)云數(shù)據(jù)及相鄰的每兩幀點(diǎn)云數(shù) 據(jù)之間的姿態(tài)變換參數(shù),對(duì)各幀點(diǎn)云數(shù)據(jù)進(jìn)行累積,而在配準(zhǔn)相鄰的每兩幀點(diǎn)云數(shù)據(jù)時(shí),可 能會(huì)由于存在噪聲數(shù)據(jù)等原因而出現(xiàn)配準(zhǔn)誤差問題,此時(shí),在對(duì)一個(gè)點(diǎn)云序列中的各幀點(diǎn) 云數(shù)據(jù)進(jìn)行累積時(shí),誤差會(huì)被進(jìn)一步放大,容易出現(xiàn)誤差累計(jì)的情況,導(dǎo)致配準(zhǔn)結(jié)果不準(zhǔn) 確。
【發(fā)明內(nèi)容】
[0008] 為了解決相關(guān)技術(shù)的問題,本發(fā)明實(shí)施例提供了一種點(diǎn)云數(shù)據(jù)的配準(zhǔn)方法及裝 置。所述技術(shù)方案如下:
[0009] 第一方面,提供了一種點(diǎn)云數(shù)據(jù)的配準(zhǔn)方法,所述方法包括:
[0010] 對(duì)相鄰的每兩幀點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn),得到相鄰的每兩幀點(diǎn)云數(shù)據(jù)之間的目標(biāo)姿態(tài) 變換參數(shù);
[0011] 根據(jù)每個(gè)目標(biāo)姿態(tài)變換參數(shù),對(duì)各幀點(diǎn)云數(shù)據(jù)進(jìn)行累積,得到初始配準(zhǔn)點(diǎn)云數(shù) 據(jù);
[0012] 從所述初始配準(zhǔn)點(diǎn)云數(shù)據(jù)中,提取配準(zhǔn)參考數(shù)據(jù),所述配準(zhǔn)參考數(shù)據(jù)為配準(zhǔn)度高 的數(shù)據(jù);
[0013] 以所述配準(zhǔn)參考數(shù)據(jù)為參考,再次對(duì)各幀點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn),得到目標(biāo)配準(zhǔn)點(diǎn)云 數(shù)據(jù)。
[0014] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述對(duì)相鄰的每兩幀點(diǎn) 云數(shù)據(jù)進(jìn)行配準(zhǔn)之前,還包括:
[0015] 濾除掃描設(shè)備掃描到的每幀點(diǎn)云數(shù)據(jù)中的第一噪聲數(shù)據(jù),得到各幀點(diǎn)云數(shù)據(jù),所 述第一噪聲數(shù)據(jù)為與坐標(biāo)原點(diǎn)之間的距離在第一預(yù)設(shè)數(shù)值范圍外的點(diǎn)云數(shù)據(jù),所述坐標(biāo)原 點(diǎn)為所述掃描設(shè)備所在位置處的坐標(biāo)。
[0016] 結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述對(duì)相鄰的每兩幀點(diǎn) 云數(shù)據(jù)進(jìn)行配準(zhǔn)之前,還包括:
[0017] 對(duì)于掃描設(shè)備掃描到的任一幀點(diǎn)云數(shù)據(jù),計(jì)算所述點(diǎn)云數(shù)據(jù)中每個(gè)空間點(diǎn)第二預(yù) 設(shè)范圍內(nèi)的所有鄰域點(diǎn)與所述每個(gè)空間點(diǎn)之間的平均距離;
[0018] 根據(jù)每個(gè)空間點(diǎn)對(duì)應(yīng)的平均距離確定第一高斯分布函數(shù),其中,第一高斯分布函 數(shù)的均值為第一數(shù)值,方差為第二數(shù)值;
[0019] 對(duì)于所述點(diǎn)云數(shù)據(jù)中的任一空間點(diǎn),當(dāng)所述空間點(diǎn)對(duì)應(yīng)的平均距離與所述第一數(shù) 值之間的差值大于所述第二數(shù)值時(shí),將所述空間點(diǎn)作為一個(gè)第二噪聲數(shù)據(jù);
[0020] 濾除所述掃描設(shè)備掃描到的每幀點(diǎn)云數(shù)據(jù)中的所有第二噪聲數(shù)據(jù),得到各幀點(diǎn)云 數(shù)據(jù)。
[0021] 結(jié)合第一方面,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述對(duì)相鄰的每兩幀點(diǎn) 云數(shù)據(jù)進(jìn)行配準(zhǔn),得到相鄰的每兩幀點(diǎn)云數(shù)據(jù)之間的目標(biāo)姿態(tài)變換參數(shù),包括:
[0022] 對(duì)于任一組相鄰的兩幀點(diǎn)云數(shù)據(jù),使用ICP對(duì)所述相鄰的兩幀點(diǎn)云數(shù)據(jù)進(jìn)行配 準(zhǔn),得到所述相鄰的兩幀點(diǎn)云數(shù)據(jù)之間的第一姿態(tài)變換參數(shù);
[0023] 根據(jù)所述第一姿態(tài)變換參數(shù)將所述相鄰的兩幀點(diǎn)云數(shù)據(jù)中的第一幀點(diǎn)云數(shù)據(jù)拼 接至第二幀點(diǎn)云數(shù)據(jù),得到第一配準(zhǔn)點(diǎn)云數(shù)據(jù);
[0024] 使用NDT對(duì)所述第一配準(zhǔn)點(diǎn)云數(shù)據(jù)和所述第二幀點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn),得到所述第 一配準(zhǔn)點(diǎn)云數(shù)據(jù)與所述第二幀點(diǎn)云數(shù)據(jù)之間的第二姿態(tài)變換參數(shù),將所述第二姿態(tài)變換參 數(shù)作為所述相鄰的兩幀點(diǎn)云數(shù)據(jù)之間的目標(biāo)姿態(tài)變換參數(shù)。
[0025] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式 中,所述對(duì)于任一組相鄰的兩幀點(diǎn)云數(shù)據(jù),使用迭代最近點(diǎn)法ICP對(duì)所述相鄰的兩幀點(diǎn)云 數(shù)據(jù)進(jìn)行配準(zhǔn),得到所述相鄰的兩幀點(diǎn)云數(shù)據(jù)之間的第一姿態(tài)變換參數(shù),包括:
[0026] 對(duì)于任一組相鄰的兩幀點(diǎn)云數(shù)據(jù),確定所述相鄰的兩幀點(diǎn)云數(shù)據(jù)中第一幀點(diǎn)云數(shù) 據(jù)和第二幀點(diǎn)云數(shù)據(jù)之間的所有匹配點(diǎn)對(duì);
[0027] 使用所述第一幀點(diǎn)云數(shù)據(jù)和第二幀點(diǎn)云數(shù)據(jù)之間的所有匹配點(diǎn)對(duì),對(duì)ICP目標(biāo)函 數(shù)進(jìn)行迭代計(jì)算,以最小化所述ICP目標(biāo)函數(shù)的值,將得到所述ICP目標(biāo)函數(shù)的最小值時(shí)的 姿態(tài)變換參數(shù)作為第一初始姿態(tài)變換參數(shù);
[0028] 根據(jù)所述第一初始姿態(tài)變換參數(shù),將所述相鄰的兩幀點(diǎn)云數(shù)據(jù)中的第一幀點(diǎn)云數(shù) 據(jù)拼接至第二幀點(diǎn)云數(shù)據(jù),得到第一初始配準(zhǔn)點(diǎn)云數(shù)據(jù);
[0029] 確定所述第一初始配準(zhǔn)點(diǎn)云數(shù)據(jù)與所述第二幀點(diǎn)云數(shù)據(jù)之間的所有匹配點(diǎn)對(duì);
[0030] 從所述第一初始配準(zhǔn)點(diǎn)云數(shù)據(jù)與所述第二幀點(diǎn)云數(shù)據(jù)之間的所有匹配點(diǎn)對(duì)中,篩 選出匹配點(diǎn)對(duì)之間的距離不大于第一指定數(shù)值的部分匹配點(diǎn)對(duì);
[0031] 使用所述部分匹配點(diǎn)對(duì),對(duì)所述ICP目標(biāo)函數(shù)進(jìn)行迭代計(jì)算,以最小化所述ICP目 標(biāo)函數(shù)的值,將得到所述ICP的目標(biāo)函數(shù)的最小值時(shí)的姿態(tài)變換參數(shù)作為第二初始姿態(tài)變 換參數(shù),并繼續(xù)進(jìn)行篩選部分匹配點(diǎn)的過程及最小化所述ICP目標(biāo)函數(shù)的值的過程,直至 所述第一指定數(shù)值不大于第一預(yù)設(shè)閾值時(shí),將迭代得到的姿態(tài)變換參數(shù)作為第一姿態(tài)變換 參數(shù)。
[0032] 結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式或第一方面的第四種可能的實(shí)現(xiàn)方式,在 第一方面的第五種可能的實(shí)現(xiàn)方式中,所述使用NDT對(duì)所述第一配準(zhǔn)點(diǎn)云數(shù)據(jù)和所述第二 幀點(diǎn)云數(shù)據(jù)進(jìn)行配準(zhǔn),得到所述第一配準(zhǔn)點(diǎn)云數(shù)據(jù)與所述第二幀點(diǎn)云數(shù)據(jù)之間的第二姿態(tài) 變換參數(shù),包括:
[0033] 使用第一尺寸的立方單元格劃分所述第二幀點(diǎn)云數(shù)據(jù);
[0034] 對(duì)于任一第一尺寸的立方單元格,確定所述第一尺寸的立方單元格中空間點(diǎn)的第 二高斯分布函數(shù);
[0035] 根據(jù)所述第一尺寸、所述第一尺寸的立方單元格中空間點(diǎn)的第二高斯分布函數(shù)及 所述第一配準(zhǔn)點(diǎn)云數(shù)據(jù)中各個(gè)空間點(diǎn)在所述第一尺寸的立方單元格中的位置,對(duì)NDT目標(biāo) 函數(shù)進(jìn)行迭代計(jì)算,將得到NDT目標(biāo)函數(shù)的最大值時(shí)的姿態(tài)變換參數(shù)作為第三初始姿態(tài)變 換參數(shù);
[0036] 根據(jù)所述第三初始姿態(tài)變換參數(shù),將所述第一配準(zhǔn)點(diǎn)云數(shù)據(jù)拼接至所述第二幀點(diǎn) 云數(shù)據(jù),得到第二配準(zhǔn)點(diǎn)云數(shù)據(jù);
[0037] 縮小所述第一尺寸的立方單元格的尺寸,并繼續(xù)進(jìn)行最大化NDT目標(biāo)函數(shù)值的過 程,直至所述第一尺寸的立方單元格的邊長不大于第二預(yù)設(shè)閾值時(shí),將迭代得到的姿態(tài)變 換參數(shù)作為第二姿態(tài)變換參數(shù)。
[0038] 結(jié)合第一方面,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述從所述初始配準(zhǔn)點(diǎn) 云數(shù)據(jù)中,提取配準(zhǔn)參考數(shù)據(jù),包括:
[0039] 使用第二尺寸的立方單元格劃分所述初始配準(zhǔn)點(diǎn)云數(shù)據(jù);
[0040] 確定所有第二尺寸的立方單元格的數(shù)據(jù)矩陣,其中,每個(gè)數(shù)據(jù)矩陣中的一行元素 表示一個(gè)空間點(diǎn)的三維坐標(biāo),每個(gè)數(shù)據(jù)矩陣的行數(shù)與每個(gè)第二尺寸的立方單元格中包括的 初始配準(zhǔn)點(diǎn)云數(shù)據(jù)的空間點(diǎn)數(shù)量相同;
[0041] 根據(jù)每個(gè)第二尺寸的立方單元格的數(shù)據(jù)矩陣,計(jì)算每個(gè)第二尺寸的立方單元格的 協(xié)方差矩陣;
[0042] 對(duì)每個(gè)協(xié)方差矩陣進(jìn)行特征值分解,得到每個(gè)協(xié)方差矩陣的三個(gè)特征值及對(duì)應(yīng)特 征向量;
[0043] 當(dāng)任一協(xié)方差矩陣的三個(gè)特征值中的任兩個(gè)特征值與第三個(gè)特征值之間的差值 超過第三預(yù)設(shè)閾值時(shí),將所述協(xié)方差矩陣對(duì)應(yīng)的第二尺寸的立方單元格所包括的空間點(diǎn)作 為一個(gè)配準(zhǔn)參考數(shù)據(jù)。
[0044] 結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式 中,所述對(duì)每個(gè)協(xié)方差矩陣進(jìn)行特征值分解,得到每個(gè)協(xié)方差矩陣的三個(gè)特征值及對(duì)應(yīng)特 征向量之后,還包括:
[0045] 統(tǒng)計(jì)各個(gè)第二尺寸的立方單元格的平面法向量中同一法向量的出現(xiàn)次數(shù);
[0046] 根據(jù)所述出現(xiàn)次數(shù)確定三個(gè)主方向,所述三個(gè)主方向兩兩垂直;
[0047] 當(dāng)任一第二尺寸的立方單元格的平面的法向量與任一主方向之間的角度不大于 第四預(yù)設(shè)閾值時(shí),將所述第二尺寸的立方單元格所包括的空間點(diǎn)作為所述主方向上的一個(gè) 配準(zhǔn)參考數(shù)據(jù)。
[0048] 結(jié)合第一方面的第七種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式 中,所述方法還包括:
[0049] 對(duì)于提取到的任一主方向上的各個(gè)配準(zhǔn)參考數(shù)據(jù),確定各個(gè)空間點(diǎn)所在平面與坐 標(biāo)原點(diǎn)之間的距離;
[0050] 根據(jù)每個(gè)空間點(diǎn)所在平面與坐標(biāo)原點(diǎn)之間的距離,將所述主方向上的配準(zhǔn)參考數(shù) 據(jù)劃分為多個(gè)不相交的子集;
[0051] 對(duì)每個(gè)子集中的空間點(diǎn)進(jìn)行平面擬合,得到每個(gè)子集對(duì)應(yīng)的擬合平面;
[0052] 將所述主方向的配準(zhǔn)參考數(shù)據(jù)中的各個(gè)空間點(diǎn)投影到對(duì)應(yīng)的擬合平面上,將所述 擬合平面上的投影點(diǎn)作為配準(zhǔn)參考數(shù)據(jù)。
[0053] 結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式至第一方面的第八種可能的實(shí)現(xiàn)方式中 的任一種可能的實(shí)現(xiàn)方式,在第一方面的第九種可能的實(shí)現(xiàn)方式中,所述以所述配準(zhǔn)參考 數(shù)據(jù)為參考,