本發(fā)明屬于三維重建技術(shù)領(lǐng)域,涉及一種基于kinect相機的快速三維重建方法。
背景技術(shù):
三維重建是指通過一定的手段在電腦中建立真實物體或場景的虛擬三維模型,并可以在電腦環(huán)境下對虛擬三維模型進行分析,加工及操作。隨著科技的進步,三維重建已經(jīng)在各個領(lǐng)域發(fā)揮著巨大的作用。在虛擬現(xiàn)實領(lǐng)域,虛擬場景中的物體模型可通過對真實物體的三維重建獲得,比起虛擬建模軟件如3dsmax,由三維重建獲得的物體更加真實。在3d打印技術(shù)中,三維重建也是至關(guān)重要的步驟,三維重建的精度直接影響到3d打印生成模型的效果。在軍事領(lǐng)域,三維重建算法可以直接將衛(wèi)星或無人機拍攝的地形照片轉(zhuǎn)換為三維地形模型,大大有利于正確決策的做出。此外,在文物保護,增強現(xiàn)實等方面三維重建也發(fā)揮著重要的作用。
多視角點云配準是三維重建技術(shù)的重要步驟。點云配準是指通過掃描采樣獲得的兩組有重復(fù)區(qū)域的點云數(shù)據(jù),通過確定一個合適的坐標變換使兩組數(shù)據(jù)點云對齊合并在一個統(tǒng)一的坐標系下,以得到被測物體完整的數(shù)據(jù)模型。統(tǒng)一的坐標系又叫做世界坐標系。若將一系列點云數(shù)據(jù)進行配準,一般以第一片點云作為基準,以第一片點云數(shù)據(jù)所在的坐標系作為世界坐標系,將后續(xù)點云與第一片點云進行配準。點云配準算法以兩片點云作為輸入,以一個坐標變換矩陣作為輸出,這個坐標變換矩陣用來將其中一片點云轉(zhuǎn)到另一片點云的坐標系下,由此實現(xiàn)兩片點云的配準。根據(jù)已有數(shù)據(jù)的信息類型,點云配準又分為傳統(tǒng)點云配準和rgb-d點云配準。傳統(tǒng)點云配準,簡稱點云配準,指對僅含空間信息的點云數(shù)據(jù)進行配準。rgb-d配準,顧名思義,就是對帶有色彩信息的點云數(shù)據(jù)進行配準。而色彩信息,又以色彩圖的形式出現(xiàn)。隨著rgb-d設(shè)備的發(fā)展,基于rgb-d數(shù)據(jù)的配準算法被越來越多的學(xué)者研究。
而對kinect設(shè)備來說,kinect設(shè)備產(chǎn)生的點云數(shù)據(jù)精度相對較差,用傳統(tǒng)的點云配準方法較難實現(xiàn)成功配準,而現(xiàn)有的基于rgb-d數(shù)據(jù)的配準方法,雖然成功率較高,但配準精度較低?,F(xiàn)有技術(shù)多數(shù)利用derees算法與henry的基于rgb-d數(shù)據(jù)的點云配準方案。derees算法與henry的基于rgb-d數(shù)據(jù)的點云配準方案都較好的解決了基于rgb-d數(shù)據(jù)的點云粗配準問題。就是說,通過二者的算法,可以得到較好的初始位姿矩陣。但是,在初始位姿矩陣的基礎(chǔ)上,無法對配準算法進行精配準優(yōu)化。雖然henry的rgb-d數(shù)據(jù)配準方案在精配準方面做過嘗試,但是算法僅針對相鄰數(shù)據(jù)幀位姿差異極小的情況下較為適用。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的是,就是針對上述傳統(tǒng)方法存在問題,提出一種不基于kinect相機的人臉三維點云優(yōu)化處理方法。
本發(fā)明的技術(shù)方案是:如圖1所示,一種基于kinect相機的快速三維重建方法,其特征在于,包括以下步驟:
s1、標定所有的kinect相機;
s2、采用如步驟s1所述的kinect相機對掃描目標進行數(shù)據(jù)采集,每一個kinect相機獲取的數(shù)據(jù)幀包含一張rgb圖像與相應(yīng)的深度數(shù)據(jù);
s3、根據(jù)步驟s2獲得的數(shù)據(jù),將所有視角的掃描目標分別生成單視角點云;
s4、對步驟s3中獲得的所有單視角點云進行優(yōu)化;
s5、選擇一臺kinect相機坐標系作為世界坐標系,利用相對位姿矩陣對所有單視角點云進行坐標系轉(zhuǎn)換,將所有的視角點云轉(zhuǎn)到全局坐標系,獲得拼接后的多視角點云模型。
上述方案中,首先使用張氏標定法對相機進行標定,得到高精度的參數(shù)。這個標定過程對每一個kinect設(shè)備只需執(zhí)行一次即可。因為相機硬件設(shè)備的穩(wěn)定性,這個參數(shù)在相當(dāng)長的時間內(nèi)不會變化。對于每一組深度數(shù)據(jù),將進行兩個層面的優(yōu)化步驟,即深度圖層面的優(yōu)化和點云層面的優(yōu)化。即首先對原始kinect數(shù)據(jù)進行深度圖層面的優(yōu)化,然后依靠相機參數(shù)生成點云,最后進行點云層面的優(yōu)化。
進一步的,所述步驟s3的具體方法為:
通過如下公式1將kinect深度數(shù)據(jù)映射到三維空間中,轉(zhuǎn)換為點云數(shù)據(jù):
公式1中,矩陣c為由張氏標定法計算出的相機內(nèi)參,(u,v)是深度圖上每個點的圖像像素坐標值,x,y,z是此點的空間坐標分量;當(dāng)已知u,v,z,c,可獲得x,y分量;
由于已經(jīng)通過相機標定計算出了深度與色彩坐標系位姿關(guān)系,就打通了深度和彩色信息之間的橋梁。通過公式1已經(jīng)求出了點云中每個點的三維空間坐標,通過如下公式2獲取公式1中點在rgb圖像中的對應(yīng)點:
公式2中,(u,v)是彩色圖上對應(yīng)點坐標值,c是彩色相機內(nèi)參,t是兩個坐標系之間的
則給定深度系上一個點,可以找到在彩色圖像上的對應(yīng)坐標點,從而獲取此點的色彩信息。
進一步的,所述步驟s3的具體方法為:采用主光軸約束的方法來刪除掉成像錯誤點,具體為:
定義點(u,v)坐標值處橫向主光軸夾角θx與縱向主光軸夾角θy為如下公式3和公式4所示:
其中,(xu,v,yu,v,zu,v)代表像素點(u,v)處的三維坐標值,d代表兩點之間的空間距離;
預(yù)設(shè)主光軸夾角閾值θ,若θx>θ或θy>θ成立,則將此點從深度數(shù)據(jù)中刪除。
上述方案中,為經(jīng)過大量的實驗觀察發(fā)現(xiàn),由于kinect成像機理,橫向與縱向主光軸夾角過大的點的深度值極不準確,這些點的錯誤深度值嚴重影響點云配準的效果與三維重建的效果。經(jīng)過大量的實驗,針對kinect數(shù)據(jù),閾值θ設(shè)置為60-70為宜。
進一步的,相對位姿矩陣的獲取方法為:
s51、采用如步驟s1所述的kinect相機采集場景數(shù)據(jù),每個kinect相機僅需拍攝一幀場景數(shù)據(jù);
s52、通過sift特征點計算相鄰兩個kinect相機獲取的rgb圖像的對應(yīng)點對,并將特征點對轉(zhuǎn)換為三維坐標,具體為:
假設(shè)p1為參考幀,p2為目標幀,每幀都包含一張彩色圖片與三維點云數(shù)據(jù),則包括:
s521、從p1的彩色圖像中提取sift特征點,特征點集記為f;
s522、從p2的彩色圖像中提取sift特征點,特征點集記為ft;
s523、從兩個特征點集中提取匹配特征點對,并將所有配對的特征點轉(zhuǎn)換為點云,分別記為pf1與pf2,pf1與pf2中下標相同的點為一對sift匹配點;
s53、用ransac配準方法對點云pf1與pf2中的點進行特征匹配;
s54、獲得若干對應(yīng)點后,用svd分解的方法計算兩kinect之間的初始位姿矩陣h0;
s55、通過初始位姿矩陣h0找到兩個kinect場景數(shù)據(jù)之間的重疊區(qū)域,利用icp算法計算出相對位姿矩陣h,具體為:
s551、將待配準點云p2用初始化矩陣進行更新:
p2=p2*h0
s552、對p1中的每個點,判斷是否為內(nèi)點;如果不是,就跳過,如果是,用kd-tree在p2中尋找最近的點,組成點集sp2;
s553、對兩個點集p1及sp2進行奇異值分解,計算出相對位姿矩陣h;
s554、對初始位姿矩陣進行更新:h0=h;
s555、重復(fù)步驟s551-s555直至滿足收斂,獲得位姿矩陣;
s56、重復(fù)步驟s52至s55直至獲取所有相鄰的kinect相機之間的相對位姿矩陣h1,h2,...hn。
本發(fā)明的有益效果為:相對于傳統(tǒng)技術(shù),本發(fā)明的方法使用主光軸約束的方法刪除掉了單視角點云中成像錯誤點,一定程度上改善了點云質(zhì)量,使得三維重建的精度更高;其次針對點云精度較差,重合度較小等情況,對已有的基于rgb-d數(shù)據(jù)的點云配準算法進行改進,雖然增大了一些計算時間開銷,但極大的提升了算法的配準精度,極大的減少了算法收斂至局部最小值的可能性。
附圖說明
圖1為本發(fā)明總的流程示意圖。
具體實施方式
發(fā)明內(nèi)容部分已經(jīng)對本發(fā)明的技術(shù)方案進行了詳細描述,在此補充說明本發(fā)明在實際中的應(yīng)用方式:
在實際應(yīng)用中,首先固定kinect設(shè)備,布置環(huán)境場景使其具有豐富的紋理信息,然后通過本發(fā)明所述的基于rgb-d數(shù)據(jù)的點云配準算法計算出所有kinect設(shè)備間相對位姿矩陣,即外參矩陣。獲得外參矩陣后,再依次對被掃描物進行數(shù)據(jù)采集,并用外參矩陣直接對多視角的kinect數(shù)據(jù)進行拼接。
相較于傳統(tǒng)的配準方案,本發(fā)明所提出的三維重建方法在外參矩陣計算中可以完全避免任何手動操作,實現(xiàn)自動化。并且外參計算步驟只需執(zhí)行一次即可,后續(xù)重建中,只要使用計算好的外參矩陣對數(shù)據(jù)進行拼接,節(jié)省了大量的時間。