一種基于矩陣恢復(fù)的提高三維重建精度的方法及其裝置制造方法
【專利摘要】本發(fā)明開發(fā)了一種基于矩陣恢復(fù)的提高三維重建精度的方法及其裝置,屬于計算機(jī)視覺領(lǐng)域。該方法包括:使用基于深度合成的方法得到目標(biāo)物體的點云;將點云轉(zhuǎn)化為指定的數(shù)據(jù)矩陣;對數(shù)據(jù)矩陣進(jìn)行矩陣恢復(fù),使用APG算法提高計算速度;將矩陣恢復(fù)得到的結(jié)果矩陣轉(zhuǎn)化為點云;應(yīng)用泊松重建將點云重建出最終的三維表面模型。該裝置包括:原始圖像獲取模塊、標(biāo)定模塊、模型預(yù)處理模塊、深度估計模塊、數(shù)據(jù)矩陣生成模塊、矩陣恢復(fù)模塊、表面模型重建模塊。本發(fā)明通過矩陣恢復(fù)的方法對三維重建中的點云模型進(jìn)行優(yōu)化,在保證效率的前提下大大提高了三維重建模型的精度。
【專利說明】—種基于矩陣恢復(fù)的提高三維重建精度的方法及其裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)視覺領(lǐng)域,特別涉及一種提高多視點三維重建精度的方法及其
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]近年來,隨著計算機(jī)視覺和虛擬現(xiàn)實技術(shù)的發(fā)展,三維建模逐漸在工業(yè)設(shè)計、影視制作、電子游戲、文化遺產(chǎn)保護(hù)以及電子商務(wù)等多個領(lǐng)域中扮演重要角色,如何根據(jù)目標(biāo)物體精確高效地建立三維模型成為一個廣泛關(guān)注的問題?;趫D片的三維重建是這樣一個過程,通過尋找兩幅或者多幅圖像之間的匹配像素點,然后將他們的2D位置轉(zhuǎn)化到3D深度,從而估計出場景的一個3D模型。
[0003]基于圖像序列的多視點三維重建方法是一種易于實現(xiàn)、高效率的三維建模方式,已提出的三維重建算法大體可以分為四大類:
[0004]第一類方法計算三維體積的代價函數(shù),并根據(jù)這個體積提取表面。一種典型代表是像素著色法(voxel coloring algorithm),這種算法對整個體積進(jìn)行一個遍歷,計算代價并使用低于一定閾值的代價重建體素。
[0005]第二類通過迭代展開表面來最小化代價方程。這類方法包括基于體素的、分級的和表面網(wǎng)格的算法。典型代表是空間雕刻算法(space carving methods),這種算法逐漸從初始的形體上去除與圖像沖突的體素,最終得到所求模型。
[0006]第三類是是通過計算每個視點圖像空間上的深度圖來重建模型,這種方法需要連續(xù)的圖像以保證每個深度圖的準(zhǔn)確性,最終將所有深度圖在一個空間中合成為三維模型。
[0007]第四類方法由兩部分組成,首先提取并匹配出一系列特征點,而后根據(jù)這些特征生成合適的模型表面。
[0008]在以上這些算法中,基于深度圖合成的方法以其在適應(yīng)性和精度上的優(yōu)勢成為當(dāng)今世界上認(rèn)可度最高的方法之一。這種三維重建方法大體可以分為兩步:首先,通過雙目視覺計算出每個視點上圖片對應(yīng)的點云;而后,對所有的點云進(jìn)行全局濾波和優(yōu)化,最終合成為一個三維表面模型。
[0009]在實現(xiàn)發(fā)明的過程中,上述現(xiàn)有技術(shù)至少具有以下缺點:由于目標(biāo)物體上的一處會被多個采集裝置捕捉到,在合成多個視點的點云時將產(chǎn)生大量冗余。同時,雙目視覺計算中產(chǎn)生的偏差點和異常點難以去除,導(dǎo)致合后的三維空間中的點云包含大量干擾點,這是三維重建結(jié)果精度受限的主要原因。
[0010]由于最終的3D模型是由點云生成的,去除點云中的異常點和錯誤匹配在提高3D模型精度上起到了重要作用。近年來很多用于點云優(yōu)化的方法被提出,大體可以分為物理濾波方法和數(shù)學(xué)濾波方法兩類。Bradley、Boubekeur和Heidrich發(fā)表的“Accurate mult1-view reconstruction using robust binocular stereo and surfacemeshing” (CVPR2008:1-8)中利用了歸一化互相關(guān)系數(shù)(NCC)作為度量方法來精化點云。這種物理濾波方法易于實現(xiàn),但對點云的優(yōu)化效果有限。Campbell、Vogiatzis、Hernandez和 Cipolla 在發(fā)表的論文“Using multiple hypotheses to improve depth-maps formult1-view stereo”(ECCV2008:766-779)中通過對每個像素提取多個像素候選,而后使用全局的優(yōu)化算法去除錯誤點,實現(xiàn)點云的平滑。Zach、Pock和Bischof在發(fā)表的論文“A duality based approach for realtime tv-lloptical flow,,(PatternRecognition2007:214-223)中使用全變分和L1范數(shù)計算點云。鄧岳和劉燁斌等發(fā)表的論文“Noisy depth maps fusion for multiview stereo via matrix completion” (SelectedTopics in Signal Processing20126 (5): 566-582.)進(jìn)一步提出了基于矩陣完備的噪聲深度圖融合方法,通過完備一個由可觀察到點組成的秩為I的矩陣實現(xiàn)優(yōu)化。這種數(shù)學(xué)濾波方法起到了一定效果,但是完備矩陣中包含了過多的丟失項,導(dǎo)致生成的3D模型精度并不夠聞。
【發(fā)明內(nèi)容】
[0011]針對上述現(xiàn)有技術(shù)中存在的缺陷,為了提高三維重建模型的質(zhì)量,本發(fā)明的目的是提供一種精確高效地重建關(guān)于目標(biāo)物體三維模型的方法,在模型優(yōu)化部分使用了矩陣恢復(fù)算法。本發(fā)明的另外一個目的是提供實現(xiàn)該方法的裝置。
[0012]為了實現(xiàn)上述發(fā)明目的,本發(fā)明方法采用的技術(shù)方案如下:
[0013]一種基于矩陣恢復(fù)的提高三維重建精度的方法,包括如下步驟:
[0014]SI,將待處理的點云模型按照視點進(jìn)行編組,設(shè)點云原有N個視點,編組滿足以下要求:對于第N組點云,要求其包括以第N個視點得到的圖片作為主圖像或者參考圖像時得到的所有空間點,也就是說,這些點均可以被第N個視點觀察到;
[0015]S2,將一個編組中的所有點在世界坐標(biāo)下的坐標(biāo)值依次置入一個行向量中,按照X坐標(biāo)、y坐標(biāo)、z坐標(biāo)的順序,最終得到N個行向量;
[0016]S3,將上述N個行向量組成一個N列的數(shù)據(jù)矩陣D,沒有元素的位置補(bǔ)O ;
[0017]S4,整理數(shù)據(jù)矩陣D,根據(jù)圖像光流計算中像素和點的對應(yīng)關(guān)系,將同一個像素對應(yīng)點的X坐標(biāo)、y坐標(biāo)、Z坐標(biāo)分別置于一列中,在沒有出現(xiàn)該點的視圖一行補(bǔ)O ;
[0018]S5,將數(shù)據(jù)矩陣D表示為:D = A+E, A表示由準(zhǔn)確點的坐標(biāo)構(gòu)成的矩陣,E表示有錯誤或是冗余的點的坐標(biāo)構(gòu)成的矩陣;通過矩陣恢復(fù)算法計算出矩陣A,這里采用APG (accelerated proximal gradient)算法加快計算速度;
[0019]S6,將矩陣恢復(fù)得到的矩陣A轉(zhuǎn)化為點云;
[0020]S7,使用泊松表面重建算法得到最終三維表面模型。
[0021]所述步驟S3中,數(shù)據(jù)矩陣D的組成方法為:首先將步驟S2中建立的N個行向量依次放置在一個矩陣的對角線上,也就是說該矩陣的每個列向量中最多只有一個元素為非零元素;而后,遍歷N個視點對應(yīng)的N個原始圖像,根據(jù)圖像上像素的對應(yīng)關(guān)系,將對應(yīng)點所在的列合并,即將表示同一點的坐標(biāo)放在同一列上;由于基于深度圖像估計和合成的三維重建算法中,每個有效的深度估計都對應(yīng)一組圖像中的一對匹配點,可以通過這種方法找到空間中某一表面點在多個原始圖像中的映射點,這些映射點將處于同一列中,由此得到數(shù)據(jù)矩陣D。
[0022]所述步驟S5中,數(shù)據(jù)矩陣D由于每行中只有較少的點是錯誤的或是不準(zhǔn)確的,是一個低秩的矩陣,因此,矩陣E的大部分元素是O或是接近于O的元素,即E是一個稀疏矩陣。這里將問題表示為:
【權(quán)利要求】
1.一種基于矩陣恢復(fù)的提高三維重建精度的方法,其特征在于,包括如下步驟: SI,將待處理的點云模型按照視點進(jìn)行編組,設(shè)點云原有N個視點,編組滿足以下要求:對于第N組點云,要求其包括以第N個視點得到的圖片作為主圖像或者參考圖像時得到的所有空間點,也就是說,這些點均可以被第N個視點觀察到; S2,將一個編組中的所有點在世界坐標(biāo)下的坐標(biāo)值依次置入一個行向量中,按照X坐標(biāo)、y坐標(biāo)、z坐標(biāo)的順序,最終得到N個行向量; S3,將上述N個行向量組成一個N列的數(shù)據(jù)矩陣D,沒有元素的位置補(bǔ)O ; S4,整理數(shù)據(jù)矩陣D,根據(jù)圖像光流計算中像素和點的對應(yīng)關(guān)系,將同一個像素對應(yīng)點的X坐標(biāo)、y坐標(biāo)、z坐標(biāo)分別置于一列中,在沒有出現(xiàn)該點的視圖一行補(bǔ)O ; S5,將數(shù)據(jù)矩陣D表示為:D = A+E, A表示由準(zhǔn)確點的坐標(biāo)構(gòu)成的矩陣,E表示有錯誤或是冗余的點的坐標(biāo)構(gòu)成的矩陣;通過矩陣恢復(fù)算法計算出矩陣A,這里采用APG算法加快計算速度; S6,將矩陣恢復(fù)得到的矩陣A轉(zhuǎn)化為點云; S7,使用泊松表面重 建算法得到最終三維表面模型。
2.根據(jù)權(quán)利要求1所述的一種基于矩陣恢復(fù)的提高三維重建精度的方法,其特征在于,所述步驟S3中,數(shù)據(jù)矩陣D的組成方法為: 首先將步驟S2中建立的N個行向量依次放置在一個矩陣的對角線上,也就是說該矩陣的每個列向量中最多只有一個元素為非零元素; 而后,遍歷N個視點對應(yīng)的N個原始圖像,根據(jù)圖像上像素的對應(yīng)關(guān)系,將對應(yīng)點所在的列合并,即將表示同一點的坐標(biāo)放在同一列上;由于基于深度圖像估計和合成的三維重建算法中,每個有效的深度估計都對應(yīng)一組圖像中的一對匹配點,可以通過這種方法找到空間中某一表面點在多個原始圖像中的映射點,這些映射點將處于同一列中,由此得到數(shù)據(jù)矩陣D。
3.根據(jù)權(quán)利要求1或2所述的一種基于矩陣恢復(fù)的提高三維重建精度的方法,其特征在于,所述步驟S5中,數(shù)據(jù)矩陣D由于每行中只有較少的點是錯誤的或是不準(zhǔn)確的,是一個低秩的矩陣,因此,矩陣E的大部分元素是O或是接近于O的元素,即E是一個稀疏矩陣,這里將問題表示為:
4.一種基于矩陣恢復(fù)的提高三維重建精度的裝置,其特征在于,具體包括如下模塊: 原始圖像獲取模塊,用于捕捉目標(biāo)物體的原始圖像; 標(biāo)定模塊,使用一種標(biāo)定方法獲得每個圖像采集工具的標(biāo)定參數(shù); 模型預(yù)處理模塊,用于生成一種目標(biāo)物體的粗略模型,表示出目標(biāo)物體在世界坐標(biāo)系下的空間范圍; 深度估計模塊,計算出每幅圖像的深度圖; 數(shù)據(jù)矩陣生成模塊,將所有圖像對應(yīng)的深度圖轉(zhuǎn)化為所述數(shù)據(jù)矩陣D ; 矩陣恢復(fù)模塊,對上述數(shù)據(jù)矩陣D進(jìn)行矩陣恢復(fù),應(yīng)用APG算法加快運(yùn)算速度; 表面模型重建模塊,將矩陣恢復(fù)得到結(jié)果轉(zhuǎn)化為點云,通過泊松表面重建算法得到最終的三維表面模型。
【文檔編號】G06T17/00GK103927787SQ201410181480
【公開日】2014年7月16日 申請日期:2014年4月30日 優(yōu)先權(quán)日:2014年4月30日
【發(fā)明者】曹汛, 朱昊, 聶永明, 紀(jì)曉麗, 閆鋒 申請人:南京大學(xué)