本發(fā)明涉及三維建模技術(shù)領(lǐng)域,尤其涉及一種利用深度圖三維建模目標(biāo)對象的方法和系統(tǒng)。
背景技術(shù):
三維建模是獲取真實目標(biāo)對象的形狀信息的過程。近年來,三維建模已經(jīng)被廣泛應(yīng)用在許多領(lǐng)域,例如增強現(xiàn)實、數(shù)字博物館、三維打印等。根據(jù)輸入數(shù)據(jù)的類型,現(xiàn)有的三維建模方法可以分為兩類。一類是基于深度圖數(shù)據(jù)的三維建模,另一類是根據(jù)普通二維圖片數(shù)據(jù)的三維建模。隨著深度圖獲取方式(例如采用諸如Kinect的三維深度影像攝像機)的多樣化和普及,第一類方法受到的關(guān)注越來越多。
在基于深度圖三維建模目標(biāo)對象時,通常由建模所得到的目標(biāo)對象的三維數(shù)據(jù)(即形狀信息)和真實的目標(biāo)對象的三維數(shù)據(jù)會有一定的偏差,即由建模所得到的目標(biāo)對象的三維數(shù)據(jù)并不是百分之百準(zhǔn)確。相比于真實的目標(biāo)對象的形狀信息,由三維建模所獲得的目標(biāo)對象的形狀信息的準(zhǔn)確程度一方面和深度圖的質(zhì)量有關(guān),另一方面還與三維建模所采用的具體深度圖數(shù)據(jù)處理方法有關(guān)。因此,在本領(lǐng)域希望改進三維建模所采用的深度圖數(shù)據(jù)處理方法,以改善由三維建模所獲得的目標(biāo)對象的三維數(shù)據(jù)的準(zhǔn)確程度。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是改善由三維建模所獲得的目標(biāo)對象的三維數(shù)據(jù)的準(zhǔn)確程度。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種用于三維建模目標(biāo)對象的方法。該方法包括:通過分割目標(biāo)對象的m個深度圖構(gòu)成的深度圖序列得到N個深度圖子序列,其中1<N<m,每個深度圖子序列所包含深度圖數(shù)大于等于1;對每個深度圖子序列進行處理得到相應(yīng)局部 模型;以及通過在N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中:1≤i≤N;并且在N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖包括以深度圖子序列i的相應(yīng)局部模型作為當(dāng)前基礎(chǔ)模型,通過將當(dāng)前基礎(chǔ)模型與其它深度圖子序列中的深度圖子序列k的相應(yīng)局部模型對準(zhǔn)獲得的深度圖子序列k的攝像機姿態(tài)變換矩陣來將深度圖子序列k的深度圖DIka與當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一個方面,提供了一種用于三維建模目標(biāo)對象的系統(tǒng)。該系統(tǒng)包括:分割單元,其被配置為通過分割目標(biāo)對象的m個深度圖構(gòu)成的深度圖序列得到N個深度圖子序列,其中1<N<m,每個深度圖子序列所包含深度圖數(shù)大于等于1;得到N個局部模型的單元,其被配置為對每個深度圖子序列進行處理得到相應(yīng)局部模型;以及合并單元,其被配置為通過在N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中:1≤i≤N;并且在N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖包括以深度圖子序列i的相應(yīng)局部模型作為當(dāng)前基礎(chǔ)模型,通過將當(dāng)前基礎(chǔ)模型與其它深度圖子序列中的深度圖子序列k的相應(yīng)局部模型對準(zhǔn)獲得的深度圖子序列k的攝像機姿態(tài)變換矩陣來將深度圖子序列k的深度圖DIka與當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
另外,根據(jù)本發(fā)明的又一方面,還提供了一種存儲介質(zhì)。存儲介質(zhì)中存儲有信息處理設(shè)備可讀的程序代碼,當(dāng)在信息處理設(shè)備上執(zhí)行程序代碼時,程序代碼使得信息處理設(shè)備執(zhí)行根據(jù)本發(fā)明的上述方法。
此外,根據(jù)本發(fā)明的再一方面,還提供了一種程序產(chǎn)品。程序產(chǎn)品包括信息處理設(shè)備可執(zhí)行的指令,當(dāng)在信息處理設(shè)備上執(zhí)行指令時,指令使得信息處理設(shè)備執(zhí)行根據(jù)本發(fā)明的上述方法。
應(yīng)該理解,術(shù)語“包括”在本文使用時指特征、整件、步驟或組件的存在,但并不排除一個或更多個其它特征、整件、步驟或組件的存在或附加。
參照后文的說明和附圖,詳細(xì)公開了本發(fā)明的特定實施方式,指明了本發(fā)明的原理可以被采用的方式。應(yīng)該理解,本發(fā)明的實施方式在范圍上并不因此而受到限制。在所附權(quán)利要求的范圍內(nèi),本發(fā)明的實施方式包括 許多改變、修改和等同。
針對一種實施方式描述和/或示出的特征可以以相同或類似的方式在一個或更多個其它實施方式中使用,與其它實施方式中的特征相組合,或替代其它實施方式中的特征。
附圖說明
參照附圖下面說明本發(fā)明實施方式,這將有助于更加容易地理解本發(fā)明的以上和其它目的、特點和優(yōu)點。附圖只是為了示出本發(fā)明的原理。在附圖中不必依照比例繪制出單元的尺寸和相對位置。在附圖中:
圖1是根據(jù)比較例的用于三維建模目標(biāo)對象的方法的流程圖;
圖2是三維建模效果的示意圖;
圖3是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象的方法的流程圖;
圖4是圖3中得到N個局部模型LM1-LMN的方法的流程圖;
圖5是圖3中的合并所有深度圖并得到最終基礎(chǔ)模型的方法的流程圖;
圖6是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象的系統(tǒng)的配置框圖;以及
圖7是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象的另一系統(tǒng)的結(jié)構(gòu)框圖。
具體實施方式
下面參照附圖說明比較例及本發(fā)明的實施方式。應(yīng)該注意的是,本發(fā)明不限于本文所描述的具體實施方式。本文描述這樣的實施方式僅用于說明目的?;诒疚乃慕淌玖硗獾膶嵤┓绞綄σ粋€或更多個相關(guān)領(lǐng)域中的技術(shù)人員而言將是明顯的。應(yīng)該注意的是,為了清楚,在附圖和描述中省略了關(guān)于本領(lǐng)域技術(shù)人員公知的但與本發(fā)明不相關(guān)的這些部件和處理方式的表示和描述。
如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明的各方面可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明的各方面可以采用下述形式:完全硬件 的實施方式、完全軟件的實施方式(包括固件、常駐軟件、微代碼等)或者組合軟件和硬件方面的實施方式。
此外,本發(fā)明的方法不限于按照說明書中描述的時間順序來執(zhí)行,也可以按照其它的時間順序地、并行地或獨立地執(zhí)行。因此,本說明書中描述的方法的執(zhí)行順序不對本發(fā)明的公開內(nèi)容的范圍構(gòu)成限制。
<比較例>
為了使本領(lǐng)域技術(shù)人員能夠充分理解本發(fā)明的實施方式和原理,首先介紹和本發(fā)明相關(guān)的比較例的技術(shù)方案。下面,結(jié)合圖1說明該比較例的實現(xiàn)方式。
圖1是根據(jù)比較例的用于三維建模目標(biāo)對象的方法100的流程圖。
如圖1中所示,方法100在步驟101處開始。在步驟103處,獲得m個深度圖DI1-DIm,其中,設(shè)深度圖數(shù)量為為m,m>1,這些深度圖被表示為DI1、DI2、……、DIm。
在步驟105處,進行初始化,即:確定初始深度圖編號q0=1,設(shè)定當(dāng)前深度圖編號q=q0;設(shè)定全局坐標(biāo)系Cg為當(dāng)前深度圖DIq的攝像機姿態(tài)所使用的坐標(biāo)系Cq;設(shè)定初始攝像機姿態(tài)Pc0為DIq的攝像機姿態(tài)Pcq(Cq)(即Pcq(Cg));設(shè)定當(dāng)前基礎(chǔ)模型BM0為DIq的模型Mq。需要注意的是:在初始化步驟中,DIq0的攝像機姿態(tài)是預(yù)先設(shè)定的,表征該攝像機姿態(tài)的坐標(biāo)系Cq也是預(yù)先設(shè)定的,Pcq(Cg)表示用坐標(biāo)系Cg表征的深度圖DIq的攝像機姿態(tài)。
在步驟107處,使q增加1。
在步驟109處,通過將Mq與BM0對準(zhǔn)(即,三維模型點匹配),得到DIq的攝像機姿態(tài)變換矩陣Tq。在步驟111處,Pcq(Cg)=Tq*Pc0,即通過將變換矩陣Tq與初始深度圖DIq0的以全局坐標(biāo)Cg表征的初始攝像機姿態(tài)Pc0相乘得到當(dāng)前深度圖DIq的以全局坐標(biāo)系Cg表征的攝像機姿態(tài)Pcq(Cg)。
在步驟113處,通過Pcq(Cg)來將DIq與BM0合并,即將DIq中的三維點合并到BM0中,得到更新的基礎(chǔ)模型BMt,且將BM0更新為BMt。
在步驟115處,判斷q是否等于m,若判斷結(jié)果為否,則返回到步驟107,若判斷結(jié)果為是,則執(zhí)行步驟117。
在步驟117處用將BMt作為最終的基礎(chǔ)模型,用最終基礎(chǔ)模型三維 建模目標(biāo)對象。方法100在步驟119處結(jié)束。
簡單而言,方法100流程如下:獲得多個深度圖;確定全局坐標(biāo)系、初始攝像機姿態(tài)及初始基礎(chǔ)模型;輸入一個深度圖;獲得該深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài);在當(dāng)前基礎(chǔ)模型上合并該深度圖以更新基礎(chǔ)模型;繼續(xù)重復(fù)進行“輸入”至“合并”步驟,直到更新的基礎(chǔ)模型中已有所有深度圖數(shù)據(jù);其中,合并得到的更新的基礎(chǔ)模型作為下一次合并所用的“當(dāng)前基礎(chǔ)模型”??梢姾喜⑦^程是一個迭代合并過程。
如圖2所示,可以通過三維掃描儀205在多個圓點指示的位置處掃描目標(biāo)對象201來得到多個深度圖,然后將這多個深度圖迭代合并在一起,得到最終基礎(chǔ)模型203。
也就是說,在執(zhí)行方法100時,在得到m個深度圖后,需要選定初始深度圖DIq0,將表征DIq0的攝像機姿態(tài)的坐標(biāo)系Cq0作為全局坐標(biāo)系Cg,將用Cg表征DIq0的攝像機姿態(tài)Pcq0(Cg)作為初始攝像機姿態(tài)Pc0,將Mq0作為當(dāng)前基礎(chǔ)模型BM0。然后將除DIq0外的所有其它深度圖迭代合并到基礎(chǔ)模型上,得到最終基礎(chǔ)模型??梢钥闯?,在比較例中所描述的方法100中q會遍歷從1至m的取值。在迭代合并過程中,需要用到各其它深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài)Pcq(Cg),Pcq(Cg)具體確定方式如下:通過將當(dāng)前深度圖的模型與當(dāng)前基礎(chǔ)模型對準(zhǔn),獲得計算當(dāng)前深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài)的變換矩陣;將該變換矩陣與初始深度圖DIq0的攝像機姿態(tài)Pcq0(Cq0)相乘得到當(dāng)前深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài)Pcq(Cg)。
需要說明的是,在步驟105中,為了表述方便選擇DI1為初始深度圖DIq0(即q0=1)。也可以選擇其它深度圖作為初始深度圖,然后使q遍歷剩余的深度圖的深度圖編號,從而將所有深度圖合并在一起。例如,深度圖編號為1、2、49、50,q0=10時,q的遍歷順序可以是10、11、……、49、50、1、2、……、8、9。
本比較例所使用的深度圖三維建模方法為KinectFusion算法,簡稱Kinfu。模型間的匹配(對準(zhǔn)),可以使用迭代最近點(Iterative Closest Points(ICP))方法。
但是由上述三維建模方法得到的三維模型的準(zhǔn)確度是受限的。發(fā)明人經(jīng)過分析,認(rèn)為準(zhǔn)確度受限的原因在于:受深度圖獲取設(shè)備精度所限,獲得的深度圖具有噪聲和錯誤信息,這導(dǎo)致通過對準(zhǔn)、矩陣變換而得到的各 剩余深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài)有誤差,進而導(dǎo)致合并深度圖時得到的基礎(chǔ)模型也有誤差;隨著迭代合并過程的進行,深度圖中的誤差會不斷在基礎(chǔ)模型中累積,這樣就導(dǎo)致估計出的以全局坐標(biāo)系表征的攝像機姿態(tài)越來越不準(zhǔn)確;而以全局坐標(biāo)系表征的攝像機姿態(tài)不準(zhǔn)確又會導(dǎo)致基礎(chǔ)模型更加不準(zhǔn)確。綜上,比較例方法陷入了誤差累積的惡性循環(huán)。如圖2所示,利用該比較例的三維建模方法在對目標(biāo)對象201的多個深度圖三維建模后,和目標(biāo)對象201相比,得到的最終基礎(chǔ)模型203的外形存在較大誤差,即準(zhǔn)確度有待提高。
基于上述認(rèn)識,本發(fā)明提出以下實施方式,以相對于比較例的技術(shù)方案改善三維建模的準(zhǔn)確度。
<本發(fā)明內(nèi)容的實施方式>
在一個實施方式中,本公開內(nèi)容提供了一種用于三維建模目標(biāo)對象的方法。下面,結(jié)合圖3、圖4和圖5說明該方法的示例性實現(xiàn)方式。圖3是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象的方法300的流程圖。如圖3中所示,方法300在步驟301處開始。
在步驟303處,獲得到多個深度圖DI1-DIm;其中,設(shè)深度圖數(shù)量為m,m>1,這些深度圖被表示為DI1、DI2、……、DIm,并且前述深度圖順序同三維掃描儀掃描目標(biāo)對象時采集深度圖的順序。
在步驟305處,將m個深度圖分割成N個深度圖子序列G1、G2、……、GN,其中深度圖子序列Gx含Zx個深度圖(x=1、2、……、N)。在本示例性實施方式中每個深度圖子序列均含n個深度圖,即Zx=n、N*n=m。
在步驟307處,對每個深度圖子序列進行處理以得到相應(yīng)局部模型,即得到N個局部模型LM1、LM2、……、LMN。步驟307的進一步的實現(xiàn)方式將在圖4及后面的內(nèi)容中描述。
在步驟309處,合并所有深度圖并得到最終基礎(chǔ)模型。具體而言,是在LMi上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中i表示選定的初始局部模型編號。步驟309的進一步的實現(xiàn)方式將在圖5及后面的內(nèi)容中描述。
在步驟311處,用最終基礎(chǔ)模型三維建模目標(biāo)對象。方法300在步驟313處結(jié)束。
圖4中示出了圖3中的步驟307的實施方法400的流程圖。方法400在步驟401處開始。在步驟403處,初始化r,其中r表示當(dāng)前深度圖子 序列編號。具體而言,在本實施例中,設(shè)定初始深度圖子序列編號r0=1,設(shè)定r=r0。
在步驟405處,初始化q,即:設(shè)定Gr的初始深度圖編號qr0=1,設(shè)定當(dāng)前深度圖編號q=qr0;設(shè)定深度圖子序列Gr的全局坐標(biāo)系Cgr為當(dāng)前深度圖DIrq的攝像機姿態(tài)所使用的坐標(biāo)系Crq;設(shè)定初始攝像機姿態(tài)Pc0r為DIrq的攝像機姿態(tài)Pcq(Crq)(即Pcq(Cgr));設(shè)定當(dāng)前基礎(chǔ)模型BMr0為DIrq的模型Mrq。需要注意的是:在初始化q的步驟中,DIrqr0的攝像機姿態(tài)是預(yù)先設(shè)定的,表征該攝像機姿態(tài)的坐標(biāo)系Crqr0也是預(yù)先設(shè)定的,Pcrq(Cgr)表示用坐標(biāo)系Cgr表征的深度圖DIrq的攝像機姿態(tài)。需要說明的是,一個攝像機姿態(tài)Pc可以用不同的坐標(biāo)系表征,用不同坐標(biāo)系表征的攝像機姿態(tài)間可以用變換矩陣相互變換,例如:在掃描三維深度圖時,攝像機采用攝像機姿態(tài)1,用坐標(biāo)系C1表征攝像機姿態(tài)1時攝像機姿態(tài)為Pc1(C1),用坐標(biāo)系C2表征攝像機姿態(tài)1時攝像機姿態(tài)為Pc1(C2),那么Pc1(C2)=T*C1,其中,T為攝像機姿態(tài)變換矩陣,T可以通過深度圖的模型對準(zhǔn)來確定。
在步驟407處,使q增加1。
在步驟409處,判斷q是否大于Zr。若判斷結(jié)果為否,則執(zhí)行步驟411,若判斷結(jié)果為是,執(zhí)行步驟417。
在步驟411處,將當(dāng)前深度圖DIrq的模型Mrq與BMr0對準(zhǔn),得到DIrq的攝像機姿態(tài)變換矩陣Trq。
在步驟413處,Pcrq(Cgr)=Trq*Pc0r,即通過將變換矩陣Trq與Gr的初始深度圖DIqr0的以Gr的全局坐標(biāo)系表征的攝像機姿態(tài)Pcrqr0(Cgr)相乘來得到當(dāng)前深度圖DIrq的以Gr的全局坐標(biāo)系表征的攝像機姿態(tài)Pcrq(Cgr)。
在步驟415處,通過Pcrq(Cgr)來將DIrq與BMr0合并(即將DIrq的三維點合并到BMr0中),得到更新的基礎(chǔ)模型BMrt,且將BMr0更新為BMrt。然后返回到步驟407。
在步驟417處,將Gr的局部模型LMr設(shè)置為BMr0。在步驟419處,判斷r是否等于N,若判斷結(jié)果為是,則執(zhí)行步驟423,若判斷結(jié)果為否,則執(zhí)行步驟421。在步驟421處,使r增加1,并返回到步驟405。方法400在步驟423處結(jié)束。
圖5中示出了圖3中的步驟309的實施方法500的流程圖。方法500 在步驟501處開始。
在步驟503處,初始化r,其中r表示當(dāng)前深度圖子序列編號。具體而言,在本實施例中,設(shè)定初始深度圖子序列編號i=1、r0=i、r=r0;設(shè)定初始局部模型LM0為LMr;設(shè)定全局坐標(biāo)系Cg為深度圖子序列Gr的全局坐標(biāo)系Cgr;設(shè)定當(dāng)前基礎(chǔ)模型BM0為LM0。
在步驟505處,使r增加1。在步驟507處,將BM0與LMr對準(zhǔn)獲得Gr的攝像機姿態(tài)變換矩陣Tr。在步驟509處,初始化q,其中q表示Gr組的當(dāng)前深度圖編號;在本示例性實施方式中設(shè)定qr0=1,設(shè)定q=qr0。
在步驟511處,Pcrq(Cg)=Tr*Pcrq(Cgr);即通過Tr與深度圖DIrq的以Gr的全局坐標(biāo)系Cgr表征的攝像機姿態(tài)Pcrq(Cgr)相乘來得到深度圖DIrq的以全局坐標(biāo)系Cg表征的攝像機姿態(tài)Pcrq(Cg)。
在步驟513處,通過Pcrq(Cg)來將DIrq與BM0合并,得到更新的基礎(chǔ)模型BMt,且將BM0更新為BMt。在步驟515處,判斷q是否等于Zr。若判斷結(jié)果為否,則執(zhí)行步驟521,若判斷結(jié)果為是,執(zhí)行步驟517。在步驟517處,判斷r是否等于N,若判斷結(jié)果為是,則執(zhí)行步驟519,若判斷結(jié)果為否,則返回到步驟505。在步驟521處,是q增加1,并返回到步驟511。方法500在步驟519處結(jié)束。
簡單而言,方法300流程如下:獲得到多個深度圖;分割這些深度圖得到多個深度圖子序列;確定初始深度圖子序列,從而確定初始局部模型、表征攝像機姿態(tài)的全局坐標(biāo)系;確定其余各深度圖子序列的相應(yīng)局部模型及各深度圖的以其對應(yīng)的深度圖子序列的全局坐標(biāo)系表征的初始攝像機姿態(tài);獲得各深度圖的以全局坐標(biāo)系表征的攝像機姿態(tài);在當(dāng)前基礎(chǔ)模型上合并各深度圖,直到基礎(chǔ)模型中已有所有深度圖數(shù)據(jù);其中合并得到的更新的基礎(chǔ)模型作為下一次合并所用的“當(dāng)前基礎(chǔ)模型”??梢姾喜⑦^程是一個迭代合并過程。
在本示例性實施方式中,也可以使用Kinfu算法得到各局部模型。模型間的匹配(對準(zhǔn)),也可以使用迭代最近點方法。
從上述描述可以看出,在本示例性實施方式中r遍歷從1到N的所有取值兩次,其中在得到N個局部模型的步驟307中,r遍歷從1到N一次(參見圖4),在合并所有深度圖的步驟309中,r遍歷從1到N一次(參見圖5)。在步驟307中,對每個Gr,q遍歷從1到Zr所有取值(參見圖4)。在步驟309中,對每個Gr,q也遍歷從1到Zr所有取值 (參見圖5)。
下面,將說明上述示例性實施方式的變型。
在所有示例性實施方式的變型中,N個深度圖子序列中至少有1個深度圖子序列的深度圖數(shù)量大于1,即1<N<m,對任意深度圖子序列,其深度圖數(shù)量Zx均滿足Zx≥1。
在一個實施方式中,目標(biāo)對象的每個深度圖子序列所含的深度圖數(shù)量均大于1。
雖然在示例性實施方式中,在得到N個局部模型(步驟307)后,再執(zhí)行將所有其它深度圖子序列的所有深度圖合并到深度圖子序列Gi的相應(yīng)局部模型LMi中的步驟309(參見圖3),但也可以通過如下方式執(zhí)行合并:得到LMi、將LMi設(shè)定為BM0后,每得到一個新局部模型LMr之后,便立即執(zhí)行將該新局部模型所對應(yīng)的所有深度圖合并到BM0中以得到BMt、更新BM0的步驟,直到將所有其它深度圖子序列的所有深度圖合并到深度圖子序列Gi的相應(yīng)局部模型LMi中。
在一個實施方式中,各深度圖子序列內(nèi)的深度圖順序可以是有序的(例如,和掃描的先后順序一致),也可以是無序的。但優(yōu)選是有序的,以保證對準(zhǔn)具有滿意的準(zhǔn)確度,同時縮短處理時間。
在一個實施方式中,各深度圖子序列所含的深度圖數(shù)量可以不相等,但優(yōu)選相等,如每個深度圖子序列均含50幅深度圖。
在一個實施方式中,可以具有所含的深度圖數(shù)量為1的深度圖子序列。對該深度圖子序列,所含深度圖的模型即為該深度圖的相應(yīng)局部模型,表征該深度圖的攝像機姿態(tài)的坐標(biāo)系即為該深度圖子序列的全局坐標(biāo)系。
對具有多個深度圖的深度圖子序列Gr,在得到其局部模型LMr時,雖然選擇的q的第一個取值是1(即qr0=1;參見前面對圖4步驟405的說明),但在一個實施方式中,選定的初始深度圖DIrqr0可以是該深度圖子序列中的任意一個深度圖,在得到其局部模型LMr時,可以通過在該深度圖子序列Gr的選定的初始深度圖的模型Mrqr0上合并該深度圖子序列中的所有其它深度圖來得到該深度圖子序列的相應(yīng)局部模型LMr。當(dāng)選定的初始深度圖不是編號為1的深度圖時(即qr0≠1,初始的q不等于1時),需要對示例性實施方式中的步驟進行適應(yīng)性調(diào)整,即q不再通過從1逐步增加1的方式來遍歷所有q的可能取值,而是以其它順序?qū)崿F(xiàn)遍歷。例如,深度圖編號為1、2、49、50,qr0=10時,q的遍歷順序可以是 10、11、……、49、50、1、2、……、8、9。
雖然在圖5的步驟503中,初始深度圖子序列編號r0=1,從而將初始局部模型LM0選擇為LM1,但在一個實施方式中,選定的初始局部模型LM0可以是N個局部模型中的任意一個,當(dāng)LM0不為LM1時(即i和r0不等于1時),需要對圖5所示的方法500進行適應(yīng)性調(diào)整,即r不再通過從1逐步增加1的方式來遍歷所有r的可能取值,而是以其它順序?qū)崿F(xiàn)遍歷。例如,深度圖子序列編號為1、2、49、50,r0=10時,r的遍歷順序可以是10、11、……、49、50、1、2、……、8、9。
雖然在圖5的步驟509中,在將Gr的深度圖合并到當(dāng)前基礎(chǔ)模型BM0時,第一個被合并的深度圖是DIr1(即qr0=1),但在一個實施方式中,第一個被合并的深度圖可以是深度圖子序列Gr中的任意一個深度圖(即qr0≠1);當(dāng)?shù)谝粋€被合并的深度圖不是編號為1的深度圖時,需要對示例性實施方式中的步驟進行適應(yīng)性調(diào)整,即q不再通過從1逐步增加1的方式來遍歷所有q的可能取值,而是以其它順序?qū)崿F(xiàn)遍歷。
在步驟307(即方法400)中,雖然r的第一個取值為1(即r0=i=1;參見圖4步驟403),但在一個實施方式中,r的第一個取值可以是1到N中的任意自然數(shù)。當(dāng)?shù)谝粋€被處理的深度圖子序列的編號不為1(即i和r0不等于1)時,需要對示例性實施方式中的步驟進行適應(yīng)性調(diào)整,即r不再通過從1逐步增加1的方式來遍歷所有r的可能取值,而是以其它順序?qū)崿F(xiàn)遍歷。
在一個實施方式中,在合并步驟309中,各子序列的初始深度圖編號可以相同,也可以不同。
發(fā)明人還發(fā)現(xiàn),在所有深度圖子序列所含的深度圖數(shù)量均相等(如等于n)時,n的取值不同,三維建模的準(zhǔn)確度會有變化。因此在一個實施方式中,可以選擇所有深度圖子序列所含的深度圖數(shù)量均相等(均為n個),得到一個最終基礎(chǔ)模型;然后變化n的取值,重復(fù)前述得到最終基礎(chǔ)模型的步驟,從而得到多個最終基礎(chǔ)模型;最后根據(jù)預(yù)先知道的真實目標(biāo)對象的部分形狀信息,選擇多個最終基礎(chǔ)模型中準(zhǔn)確度最高的基礎(chǔ)模型三維建模目標(biāo)對象。
下面,將描述根據(jù)前述用于三維建模目標(biāo)對象的方法設(shè)計的用于三維建模目標(biāo)對象的系統(tǒng)。
圖6是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象 的系統(tǒng)600的配置框圖。系統(tǒng)600包括:分割單元601、得到N個局部模型的單元603以及合并單元605。其中向分割單元601輸入目標(biāo)對象的m個深度圖,分割單元601被配置為通過分割目標(biāo)對象的m個深度圖構(gòu)成的深度圖序列來得到N個深度圖子序列,其中1<N<m,每個深度圖子序列所包含深度圖數(shù)大于等于1。分割單元601將N個深度圖子序列輸出到得到N個局部模型的單元603。單元603被配置為對每個深度圖子序列進行處理以得到相應(yīng)局部模型。單元603將N個局部模型輸出到合并單元605。合并單元605被配置為通過在N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中1≤i≤N。
對于系統(tǒng)600的進一步的變型和配置,可以采用前述用于三維建模目標(biāo)對象的方法的實施方式中所描述的方式。
圖7是根據(jù)本公開內(nèi)容的示例性實施方式的用于三維建模目標(biāo)對象的另一系統(tǒng)700的結(jié)構(gòu)框圖。
在圖7中,中央處理單元(CPU)701根據(jù)存儲在只讀存儲器(ROM)702中的程序或從存儲部分708加載到隨機存取存儲器(RAM)703的程序來進行各種處理。在RAM 703中,也根據(jù)需要來存儲在CPU 701執(zhí)行各種處理時所需的數(shù)據(jù)等。
CPU 701、ROM 702以及RAM 703經(jīng)由總線704彼此連接。輸入/輸出接口705也連接至總線704。
下述部件連接至輸入/輸出接口705:包括鍵盤、鼠標(biāo)等的輸入部分706;包括顯示器如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分707;包括硬盤等的存儲部分708;以及包括網(wǎng)絡(luò)接口卡如LAN卡、調(diào)制解調(diào)器等的通信部分709。通信部分709經(jīng)由網(wǎng)絡(luò)如因特網(wǎng)執(zhí)行通信處理。
驅(qū)動器710根據(jù)需要也連接至輸入/輸出接口705。可拆卸介質(zhì)711如磁盤、光盤、磁-光盤、半導(dǎo)體存儲器等根據(jù)需要安裝在驅(qū)動器710上,使得從其中讀取的計算機程序根據(jù)需要被安裝到存儲部分708。
在通過軟件來實現(xiàn)上述分割、得到N個局部模型、合并的情況下,構(gòu)成該軟件的程序從網(wǎng)絡(luò)如因特網(wǎng)或存儲介質(zhì)如可拆卸介質(zhì)711被安裝到系統(tǒng)700。目標(biāo)對象的m個深度圖可以通過輸入/輸出接口705輸入到系統(tǒng)700。CPU 701執(zhí)行該程序以處理已輸入的目標(biāo)對象的m個深度圖, 輸出目標(biāo)對象的三維模型。軟件實現(xiàn)的功能可以是前述用于三維建模目標(biāo)對象的方法的實施方式中所描述的功能。
系統(tǒng)700可以是一種信息處理設(shè)備。
在一個實施方式中,本公開內(nèi)容還提供一種程序產(chǎn)品。程序產(chǎn)品包括機器可執(zhí)行的指令,當(dāng)在信息處理設(shè)備上執(zhí)行指令時,指令使得信息處理設(shè)備執(zhí)行前述用于三維建模目標(biāo)對象的方法。
在一個實施方式中,本公開內(nèi)容還提供一種存儲介質(zhì)。存儲介質(zhì)中存儲有信息處理設(shè)備可讀的程序代碼,當(dāng)在信息處理設(shè)備上執(zhí)行程序代碼時,程序代碼使得信息處理設(shè)備執(zhí)行上述用于三維建模目標(biāo)對象的方法。存儲介質(zhì)包括但不限于軟盤、光盤、磁光盤、存儲卡、存儲棒等。
本公開內(nèi)容的實施方式的有益效果在于:針對比較例方案在迭代的估計攝像機姿態(tài)和構(gòu)建三維模型過程中存在的誤差累積問題,本發(fā)明內(nèi)容通過把深度圖分成小的深度圖子序列進行處理,截斷了誤差累積的過程,把誤差的累積控制在了一個小的范圍內(nèi);由于誤差累積減少,所以得到的用于合并深度圖的攝像機姿態(tài)也會變得更加準(zhǔn)確,從而相比于使用比較例所得到的最終基礎(chǔ)模型,使用本公開內(nèi)容的實施方式所得到的最終基礎(chǔ)模型具有更高的準(zhǔn)確度。
以上結(jié)合具體的實施方式對本發(fā)明進行了描述,但本領(lǐng)域技術(shù)人員應(yīng)該清楚,這些描述都是示例性的,并不是對本發(fā)明保護范圍的限制。本領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的精神和原理對本發(fā)明做出各種變型和修改,這些變型和修改也在本發(fā)明的范圍內(nèi)。
附記
1.一種用于三維建模目標(biāo)對象的方法,包括:
通過分割所述目標(biāo)對象的m個深度圖構(gòu)成的深度圖序列得到N個深度圖子序列,其中1<N<m,每個深度圖子序列所包含深度圖數(shù)大于等于1;
對每個深度圖子序列進行處理以得到相應(yīng)局部模型;以及
通過在所述N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中:
1≤i≤N;并且
在所述N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上 合并所有其它深度圖子序列的所有深度圖包括以所述深度圖子序列i的相應(yīng)局部模型作為當(dāng)前基礎(chǔ)模型,通過將所述當(dāng)前基礎(chǔ)模型與所述其它深度圖子序列中的深度圖子序列k的相應(yīng)局部模型對準(zhǔn)獲得的所述深度圖子序列k的攝像機姿態(tài)變換矩陣來將所述深度圖子序列k的深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
2.根據(jù)附記1所述的方法,其中,對每個深度圖子序列進行處理以得到相應(yīng)局部模型包括:當(dāng)所述深度圖子序列所包含的深度圖數(shù)大于1時,通過在所述深度圖子序列中的深度圖j的模型上合并所述深度圖子序列中的所有其它深度圖來得到相應(yīng)局部模型;當(dāng)所述深度圖子序列所包含的深度圖數(shù)等于1時,以所述深度圖子序列中的深度圖的模型作為相應(yīng)局部模型。
3.根據(jù)附記1所述的方法,其中,通過所述深度圖子序列k的攝像機姿態(tài)變換矩陣來將深度圖子序列k的深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型包括:
通過將所述當(dāng)前基礎(chǔ)模型與所述深度圖子序列k的相應(yīng)局部模型對準(zhǔn),獲得所述深度圖子序列k的攝像機姿態(tài)變換矩陣;
使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所述深度圖DIka的以所述深度圖子序列k的相應(yīng)局部模型所使用的坐標(biāo)系表征的攝像機姿態(tài)變換成所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài),其中所述全局坐標(biāo)系為所述深度圖子序列i的初始深度圖的攝像機姿態(tài)所使用的坐標(biāo)系;以及
使用所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
4.根據(jù)附記3所述的方法,還包括:在所述深度圖子序列k所包括的深度圖數(shù)大于1的情況下,以使用所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并所得的更新的基礎(chǔ)模型作為當(dāng)前基礎(chǔ)模型,在所述當(dāng)前基礎(chǔ)模型上合并所述深度圖子序列k的深度圖DIkb,其中,在所述當(dāng)前基礎(chǔ)模型上合并所述深度圖DIkb包括:
使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所述深度圖DIkb的以所述深度圖子序列k的相應(yīng)局部模型所使用的坐標(biāo)系表征的攝像機姿態(tài)變換成所述深度圖DIkb的以全局坐標(biāo)系表征的攝像機姿態(tài);以及
使用所述深度圖DIkb的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIkb與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
5.根據(jù)附記3所述的方法,還包括:在使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所有所述深度圖子序列k的深度圖合并到所述深度圖子序列i的相應(yīng)局部模型后,以得到的所述更新的基礎(chǔ)模型作為當(dāng)前基礎(chǔ)模型并且使用剩余深度圖子序列中的深度圖子序列p的攝像機姿態(tài)變換矩陣將所有所述深度圖子序列p的深度圖合并到所述當(dāng)前基礎(chǔ)模型以得到進一步更新的基礎(chǔ)模型。
6.根據(jù)附記2所述的方法,其中,在所述深度圖子序列中的深度圖j的模型上合并所有其它深度圖來得到相應(yīng)局部模型包括:
基于當(dāng)前深度圖、當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型和所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)更新所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型以得到所述當(dāng)前深度圖子序列的更新的基礎(chǔ)模型,其中所述當(dāng)前深度圖子序列的全局坐標(biāo)系為所述深度圖j的攝像機姿態(tài)所使用的坐標(biāo)系;以及
將基于最后一個深度圖更新得到的更新的基礎(chǔ)模型作為所述當(dāng)前深度圖子序列的所述相應(yīng)局部模型。
7.根據(jù)附記6所述的方法,其中,基于所述當(dāng)前深度圖的模型和所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型得到所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)。
8.根據(jù)附記7所述的方法,其中,通過將所述當(dāng)前深度圖的模型與所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型對準(zhǔn),獲得用于計算所述當(dāng)前深度圖子序列的當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)的變換矩陣。
9.根據(jù)附記8所述的方法,其中,將用于計算所述當(dāng)前深度圖子序列的當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)的變換矩陣與所述深度圖子序列中的深度圖j的模型所使用的坐標(biāo)系表征的攝像機姿態(tài)相乘得到所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)。
10.根據(jù)附記1所述的方法,其中,所述N個深度圖子序列是通過分割掃描所述目標(biāo)對象得到的m個有序深度圖構(gòu)成的有序深度圖序列得到的有序的N個深度圖子序列。
11.一種用于三維建模目標(biāo)對象的系統(tǒng),包括:
分割單元,其被配置為通過分割所述目標(biāo)對象的m個深度圖構(gòu)成的深度圖序列得到N個深度圖子序列,其中1<N<m,每個深度圖子序列所包含深度圖數(shù)大于等于1;
得到N個局部模型的單元,其被配置為對每個深度圖子序列進行處理以得到相應(yīng)局部模型;以及
合并單元,其被配置為通過在所述N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖,得到最終基礎(chǔ)模型,其中:
1≤i≤N;并且
其中在所述N個深度圖子序列中的深度圖子序列i的相應(yīng)局部模型上合并所有其它深度圖子序列的所有深度圖包括以所述深度圖子序列i的相應(yīng)局部模型作為當(dāng)前基礎(chǔ)模型,通過將所述當(dāng)前基礎(chǔ)模型與所述其它深度圖子序列中的深度圖子序列k的相應(yīng)局部模型對準(zhǔn)獲得的所述深度圖子序列k的攝像機姿態(tài)變換矩陣來將所述深度圖子序列k的深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
12.根據(jù)附記11所述的系統(tǒng),其中,所述得到N個局部模型的單元進一步被配置為:當(dāng)所述深度圖子序列所包含的深度圖數(shù)大于1時,通過在所述深度圖子序列中的深度圖j的模型上合并所述深度圖子序列中的所有其它深度圖來得到相應(yīng)局部模型;當(dāng)所述深度圖子序列所包含的深度圖數(shù)等于1時,以所述深度圖子序列中的深度圖的模型作為相應(yīng)局部模型。
13.根據(jù)附記11所述的系統(tǒng),其中,所述合并單元進一步被配置為:
通過將所述當(dāng)前基礎(chǔ)模型與所述深度圖子序列k的相應(yīng)局部模型對準(zhǔn),獲得所述深度圖子序列k的攝像機姿態(tài)變換矩陣;
使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所述深度圖DIka的以所述深度圖子序列k的相應(yīng)局部模型所使用的坐標(biāo)系表征的攝像機姿態(tài)變換成所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài),其中所述全局坐標(biāo)系為所述深度圖子序列i的初始深度圖的攝像機姿態(tài)所使用的坐標(biāo)系;以及
使用所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到所述更新的基礎(chǔ)模型。
14.根據(jù)附記13所述的系統(tǒng),其中,所述合并單元進一步被配置為:在所述深度圖子序列k所包括的深度圖數(shù)大于1的情況下,使用所述深度圖DIka的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIka與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型后,以所得的更新的基礎(chǔ)模型作為當(dāng)前基礎(chǔ)模型,在所述當(dāng)前基礎(chǔ)模型上合并所述深度圖子序列k的深度圖DIkb,其中所述合并單元進一步被配置為通過下述操作在所述基礎(chǔ)模型上合并所述深度圖DIkb:
使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所述深度圖DIkb的以所述深度圖子序列k的相應(yīng)局部模型所使用的坐標(biāo)系表征的攝像機姿態(tài)變換成所述深度圖DIkb的以全局坐標(biāo)系表征的攝像機姿態(tài);以及
使用所述深度圖DIkb的以全局坐標(biāo)系表征的攝像機姿態(tài)將所述深度圖DIkb與所述當(dāng)前基礎(chǔ)模型合并以得到更新的基礎(chǔ)模型。
15.根據(jù)附記13所述的系統(tǒng),其中,所述合并單元進一步被配置為:
在使用所述深度圖子序列k的攝像機姿態(tài)變換矩陣將所有所述深度圖子序列k的深度圖合并到所述深度圖子序列i的相應(yīng)局部模型后,以得到的更新的基礎(chǔ)模型作為當(dāng)前基礎(chǔ)模型并且使用剩余深度圖子序列中的深度圖子序列p的攝像機姿態(tài)變換矩陣,將所有所述深度圖子序列p的深度圖合并到所述當(dāng)前基礎(chǔ)模型以得到進一步更新的基礎(chǔ)模型。
16.根據(jù)附記12所述的系統(tǒng),其中,所述得到N個局部模型的單元進一步被配置為:
基于當(dāng)前深度圖、當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型和所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)更新所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型以得到所述當(dāng)前深度圖子序列的更新的基礎(chǔ)模型,其中所述當(dāng)前深度圖子序列的全局坐標(biāo)系為所述深度圖j的攝像機姿態(tài)所使用的坐標(biāo)系;以及
將基于最后一個深度圖更新得到的更新的基礎(chǔ)模型作為所述當(dāng)前深度圖子序列的所述相應(yīng)局部模型。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述得到N個局部模型的單元進一步被配置為:基于所述當(dāng)前深度圖的模型和所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型得到所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)。
18.根據(jù)附記17所述的系統(tǒng),其中,所述得到N個局部模型的單元進一步被配置為:通過將所述當(dāng)前深度圖的模型與所述當(dāng)前深度圖子序列的當(dāng)前基礎(chǔ)模型對準(zhǔn),獲得用于計算所述當(dāng)前深度圖子序列的當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)的變換矩陣。
19.根據(jù)附記18所述的系統(tǒng),其中,所述得到N個局部模型的單元進一步被配置為:將用于計算所述當(dāng)前深度圖子序列的當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)的變換矩陣與所述深度圖子序列中的深度圖j的模型所使用的坐標(biāo)系表征的攝像機姿態(tài)相乘得到所述當(dāng)前深度圖的以所述當(dāng)前深度圖子序列的全局坐標(biāo)系表征的攝像機姿態(tài)。
20.根據(jù)附記11所述的系統(tǒng),其中,所述分割單元進一步被配置為通過分割掃描所述目標(biāo)對象得到的m個有序深度圖構(gòu)成的有序深度圖序列得到有序的N個深度圖子序列。