一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法
【專利摘要】本發(fā)明公開一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,其能夠去除網(wǎng)格序列在幀間拓?fù)湫畔⑸系娜哂嘈裕蟠蟮靥岣邔?duì)網(wǎng)格序列的壓縮效率,從而降低存儲(chǔ)空間。這種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,包括步驟:(1)基于視頻的幀間編碼來配準(zhǔn)一個(gè)三維網(wǎng)格序列;(2)用開源軟件7-Zip無損壓縮所有的I幀的頂點(diǎn)和面片數(shù)據(jù);通過壓縮相鄰幀之間的頂點(diǎn)殘差數(shù)據(jù)來壓縮P幀和B幀的頂點(diǎn)數(shù)據(jù),而P幀和B幀的面片數(shù)據(jù)將與I幀共享;(3)用開源軟件7-Zip對(duì)步驟(b)的壓縮文件進(jìn)行解壓,然后重建。
【專利說明】一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于多媒體【技術(shù)領(lǐng)域】,具體地涉及一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法?!颈尘凹夹g(shù)】
[0002]隨著計(jì)算機(jī)圖形學(xué)技術(shù)的飛速發(fā)展,三維網(wǎng)格已被廣泛地應(yīng)用于計(jì)算機(jī)圖形學(xué)的應(yīng)用中。因此,為了更高效地存儲(chǔ)和傳輸三維網(wǎng)格數(shù)據(jù),對(duì)三維網(wǎng)格的表達(dá)和壓縮便成為了一個(gè)非常重要的研究環(huán)節(jié)。
[0003]一個(gè)三維網(wǎng)格的數(shù)據(jù)通??梢杂梢韵聨讉€(gè)部分組成:頂點(diǎn)、邊、面片以及一些屬性信息如法向量、紋理坐標(biāo)和紋理顏色等。最簡(jiǎn)單的三維網(wǎng)格往往只用記錄頂點(diǎn)和面片數(shù)據(jù)。通常,頂點(diǎn)的坐標(biāo)信息被稱為三維網(wǎng)格的幾何信息,頂點(diǎn)的連接信息也即面片數(shù)據(jù)被稱為二維網(wǎng)格的拓?fù)溽苣肯ⅰR延械亩S網(wǎng)格壓縮算法通常都是針對(duì)二維網(wǎng)格的幾何/[目息和拓?fù)湫畔磉M(jìn)行壓縮的,這些壓縮算法往往用于壓縮靜態(tài)的單一網(wǎng)格,利用的是三維網(wǎng)格數(shù)據(jù)在幾何或拓?fù)湫畔⑸系目臻g相關(guān)性。而對(duì)于動(dòng)態(tài)的三維網(wǎng)格序列,如果我們僅僅用這些方法對(duì)序列中的每個(gè)網(wǎng)格單獨(dú)壓縮,那么存在于序列中各幀之間的時(shí)間相關(guān)性就會(huì)被浪費(fèi)掉,這將使得對(duì)一個(gè)網(wǎng)格序列的壓縮效率大大降低。
[0004]獲取三維網(wǎng)格數(shù)據(jù)的方式通??梢詣澐譃閮煞N,一種是通過計(jì)算機(jī)程序人工生成三維網(wǎng)格模型;另一種是通過用一些如Cyberware三維掃描儀或多視點(diǎn)攝像機(jī)等專業(yè)感知設(shè)備捕獲現(xiàn)實(shí)世界中的物體來獲得三維網(wǎng)格數(shù)據(jù)。對(duì)于前一種獲取方式,通常可以人工地控制三維網(wǎng)格的頂點(diǎn)連接性以使產(chǎn)生的三維網(wǎng)格序列具有時(shí)間一致性,即序列中的所有網(wǎng)格的頂點(diǎn)連接信息一致。而對(duì)于后一種獲取方式,在同一個(gè)序列中的不同幀的原始網(wǎng)格數(shù)據(jù)的頂點(diǎn)連接信息通常是不同的。因此,在存儲(chǔ)三維網(wǎng)格數(shù)據(jù)時(shí),必須將序列中的所有三維網(wǎng)格的面片數(shù)據(jù)都存儲(chǔ)下來。如果網(wǎng)格序列是一個(gè)三維動(dòng)畫,相鄰幀的頂點(diǎn)連接性往往是十分相似的,這時(shí)在壓縮網(wǎng)格序列數(shù)據(jù)的過程中這種在頂點(diǎn)連接信息上的時(shí)間冗余一定是可以通過某種方法去除的。
[0005]三維人臉配準(zhǔn)是一種將不同三維人臉網(wǎng)格的頂點(diǎn)對(duì)齊的技術(shù),即找到網(wǎng)格與網(wǎng)格之間的頂點(diǎn)對(duì)應(yīng)關(guān)系。當(dāng)將配準(zhǔn)算法應(yīng)用于一個(gè)三維人臉模型的序列時(shí),由于找到了序列上所有網(wǎng)格之間的頂點(diǎn)對(duì)應(yīng)關(guān)系,即所有網(wǎng)格在相同下標(biāo)下的頂點(diǎn)都是對(duì)應(yīng)的,所以序列中的所有網(wǎng)格也就獲得了相同的頂點(diǎn)連接信息,即可以共享相同的面片數(shù)據(jù)。這樣的結(jié)果恰恰能夠滿足去除之前提到的網(wǎng)格序列在頂點(diǎn)連接信息上的冗余數(shù)據(jù)的要求。
[0006]有人提出了一種基于薄板樣條(thin plate spine, TPS)變換的非剛性三維人臉配準(zhǔn)方法。本質(zhì)上,TPS是一種徑向基函數(shù),它的基函數(shù)為:
[0007]Φ =r2logr
[0008]其中r是笛卡爾坐標(biāo)系中兩個(gè)點(diǎn)的歐拉距離。TPS變換的形式如下
[0009]f (P) =Pd+Kw
[0010]其中P是一個(gè)頂點(diǎn)集中頂點(diǎn)的齊次坐標(biāo)矩陣;d和w分別是非仿射變換矩陣和仿射變換矩陣,K是關(guān)于TPS基函數(shù)的矩陣。該配準(zhǔn)方法是先對(duì)參考三維網(wǎng)格進(jìn)行TPS變換,然后再通過用K維二叉搜索樹(KD-tree)搜索變換后的三維網(wǎng)格中的所有頂點(diǎn)在目標(biāo)三維網(wǎng)格中的最鄰近點(diǎn)來匹配參考網(wǎng)格和目標(biāo)網(wǎng)格之間的對(duì)應(yīng)頂點(diǎn)。這個(gè)配準(zhǔn)方法可以在兩個(gè)網(wǎng)格之間獲得較好的配準(zhǔn)效果。但是當(dāng)配準(zhǔn)一個(gè)人臉網(wǎng)格序列時(shí),因?yàn)橹粡男蛄兄羞x出一個(gè)網(wǎng)格作為參考網(wǎng)格,所以當(dāng)目標(biāo)網(wǎng)格距離該參考網(wǎng)格越來越遠(yuǎn)時(shí),對(duì)目標(biāo)網(wǎng)格的配準(zhǔn)效果往往會(huì)越來越差。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的技術(shù)解決問題是:克服現(xiàn)有技術(shù)的不足,提供一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,其能夠去除網(wǎng)格序列在幀間拓?fù)湫畔⑸系娜哂嘈?,大大地提高?duì)網(wǎng)格序列的壓縮效率,從而降低存儲(chǔ)空間。
[0012]本發(fā)明的技術(shù)解決方案是:這種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,包括以下步驟:
[0013](I)基于視頻的幀間編碼來配準(zhǔn)一個(gè)三維網(wǎng)格序列;
[0014](2)用開源軟件7-Zip無損壓縮所有的I幀的頂點(diǎn)和面片數(shù)據(jù);通過壓縮相鄰幀之間的頂點(diǎn)殘差數(shù)據(jù)來壓縮P幀和B幀的頂點(diǎn)數(shù)據(jù),而P幀和B幀的面片數(shù)據(jù)將與I幀共
[0015](3)用開源軟件7-Zip對(duì)步驟(b)的壓縮文件進(jìn)行解壓,然后重建。
[0016]本發(fā)明將配準(zhǔn)過程和視頻編碼技術(shù)中的幀間編碼思想結(jié)合在一起,通過設(shè)定和視頻的幀間編碼中類似的幀間編碼結(jié)構(gòu),用一種更復(fù)雜的方式來配準(zhǔn)一個(gè)人臉網(wǎng)格序列,從而獲得更好的配準(zhǔn)效果;在配準(zhǔn)完畢后,由于所有網(wǎng)格的頂點(diǎn)已被對(duì)齊,一方面相鄰幀網(wǎng)格之間的各對(duì)應(yīng)頂點(diǎn)的坐標(biāo)殘差會(huì)比較小,這時(shí)可以對(duì)頂點(diǎn)的殘差數(shù)據(jù)進(jìn)行時(shí)頻變換和量化后再采用無損的文本壓縮程序編碼,另一方面所有網(wǎng)格都共享一個(gè)面片數(shù)據(jù),所以可以只保存并編碼一個(gè)面片數(shù)據(jù);因此本發(fā)明能夠去除網(wǎng)格序列在幀間拓?fù)湫畔⑸系娜哂嘈裕蟠蟮靥岣邔?duì)網(wǎng)格序列的壓縮效率,從而降低存儲(chǔ)空間。
【專利附圖】
【附圖說明】
[0017]圖1示出了用兩個(gè)參考幀網(wǎng)格共同配準(zhǔn)目標(biāo)幀網(wǎng)格的過程;
[0018]圖2是五種GOF結(jié)構(gòu)的示意圖;
[0019]圖3示出了對(duì)5種GOF結(jié)構(gòu)的配準(zhǔn)結(jié)果壓縮的平均Mesh PSNR曲線;
[0020]圖4示出了對(duì)5種GOF結(jié)構(gòu)的配準(zhǔn)結(jié)果壓縮的壓縮比曲線;
[0021]圖5示出了本發(fā)明的三維人臉網(wǎng)格編碼方法編碼端實(shí)施例的流程圖;
[0022]圖6示出了本發(fā)明的三維網(wǎng)格人臉編碼方法解碼端實(shí)施例的流程圖。
【具體實(shí)施方式】
[0023]這種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,包括以下步驟:
[0024](I)基于視頻的幀間編碼來配準(zhǔn)一個(gè)三維網(wǎng)格序列;
[0025](2)用開源軟件7-Zip無損壓縮所有的I幀的頂點(diǎn)和面片數(shù)據(jù);通過壓縮相鄰幀之間的頂點(diǎn)殘差數(shù)據(jù)來壓縮P幀和B幀的頂點(diǎn)數(shù)據(jù),而P幀和B幀的面片數(shù)據(jù)將與I幀共[0026](3)用開源軟件7-Zip對(duì)步驟(b)的壓縮文件進(jìn)行解壓,然后重建。
[0027]本發(fā)明將配準(zhǔn)過程和視頻編碼技術(shù)中的幀間編碼思想結(jié)合在一起,通過設(shè)定和視頻的幀間編碼中類似的幀間編碼結(jié)構(gòu),用一種更復(fù)雜的方式來配準(zhǔn)一個(gè)人臉網(wǎng)格序列,從而獲得更好的配準(zhǔn)效果;在配準(zhǔn)完畢后,由于所有網(wǎng)格的頂點(diǎn)已被對(duì)齊,一方面相鄰幀網(wǎng)格之間的各對(duì)應(yīng)頂點(diǎn)的坐標(biāo)殘差會(huì)比較小,這時(shí)可以對(duì)頂點(diǎn)的殘差數(shù)據(jù)進(jìn)行時(shí)頻變換和量化后再采用無損的文本壓縮程序編碼,另一方面所有網(wǎng)格都共享一個(gè)面片數(shù)據(jù),所以可以只保存并編碼一個(gè)面片數(shù)據(jù);因此本發(fā)明能夠去除網(wǎng)格序列在幀間拓?fù)湫畔⑸系娜哂嘈?,大大地提高?duì)網(wǎng)格序列的壓縮效率,從而降低存儲(chǔ)空間。
[0028]優(yōu)選地,如圖5所示,步驟(a)中包括以下分步驟:
[0029](a.1)設(shè)置一種幀組GOF結(jié)構(gòu)和I幀周期;
[0030](a.2)根據(jù)此GOF結(jié)構(gòu)分析整個(gè)三維網(wǎng)格序列,設(shè)置每一幀的幀類型和參考幀序號(hào);
[0031](a.3)按照此設(shè)置對(duì)整個(gè)三維網(wǎng)格序列進(jìn)行全局配準(zhǔn)。
[0032]優(yōu)選地,如圖5所示,步驟(b)包括以下分步驟:
[0033](b.1)將三維網(wǎng)格序列中的總幀數(shù)、I幀周期和量化步長(zhǎng)寫入二進(jìn)制碼流文件頭;
[0034](b.2)對(duì)三維網(wǎng)格序列按幀出現(xiàn)順序進(jìn)行逐幀編碼:如果當(dāng)前幀是I幀,將頂點(diǎn)數(shù)和面片數(shù)分別用2字節(jié)無符號(hào)整型保存,頂點(diǎn)數(shù)據(jù)每個(gè)坐標(biāo)值用8字節(jié)雙精度保存,面片數(shù)據(jù)每個(gè)頂點(diǎn)下標(biāo)用2字節(jié)無符號(hào)整型保存,并一起寫入二進(jìn)制碼流文件中;如果是P幀或B幀,對(duì)其與前一幀的重建結(jié)果的頂點(diǎn)坐標(biāo)殘差進(jìn)行保留兩位小數(shù)精度取整、一維Haar DffT變換和量化,將量化結(jié)果每個(gè)元素用2字節(jié)存儲(chǔ)并寫入到二進(jìn)制文件中,再將過程反過來重建當(dāng)前幀網(wǎng)格;
[0035](b.3)用開源軟件7-Zip對(duì)二進(jìn)制碼流文件進(jìn)行無損壓縮成7z格式作為最終壓縮結(jié)果。
[0036]優(yōu)選地,如圖6所示,步驟(C)包括以下分步驟:
[0037](c.1)用7-Zip對(duì)7z格式壓縮文件解壓,得到二進(jìn)制碼流文件;
[0038](c.2)讀出碼流文件中的頭部信息,包括三維網(wǎng)格序列的總幀數(shù)、I幀周期和量化步長(zhǎng);
[0039](c.3)根據(jù)讀出的頭部信息對(duì)三維網(wǎng)格序列中每一幀進(jìn)行解碼重建:如果當(dāng)前幀是I幀,先讀出分別占用兩個(gè)字節(jié)的頂點(diǎn)數(shù)和面片數(shù),在根據(jù)頂點(diǎn)數(shù)和面片數(shù)直接讀出固定字節(jié)數(shù)的內(nèi)容作為此I幀的頂點(diǎn)和面片數(shù)據(jù);如果當(dāng)前幀是P幀或B幀,先按之前已讀出的頂點(diǎn)數(shù)讀出指定字節(jié)數(shù)的內(nèi)容作為頂點(diǎn)殘差數(shù)據(jù),然后按照編碼時(shí)的逆過程進(jìn)行解碼重建當(dāng)前幀網(wǎng)格的頂點(diǎn)數(shù)據(jù),而面片數(shù)據(jù)和之前的I幀面片數(shù)據(jù)一樣。
[0040]以下更詳細(xì)地說明本發(fā)明:
[0041]1.改進(jìn)的三維人臉網(wǎng)格序列非剛性配準(zhǔn)方法
[0042]如果我們將一個(gè)三維人臉網(wǎng)格序列當(dāng)做一個(gè)三維視頻,其中每一幀都是一個(gè)三維網(wǎng)格,那么和視頻編碼技術(shù)中類似,在配準(zhǔn)過程中人臉網(wǎng)格序列可以被分為三種類型,即I中貞、P巾貞和B巾貞。并且如視頻編碼技術(shù)中的GOP(group of pictures) —樣,三維網(wǎng)格序列也被劃分成多個(gè)組,在下面的敘述中將稱它們?yōu)镚OF (group of frames,巾貞組)。
[0043]如我們所知道的,在視頻編碼標(biāo)準(zhǔn)中,GOP的結(jié)構(gòu)可以有多種,并且可以在配置文件中設(shè)置,在一種GOP結(jié)構(gòu)中,每一個(gè)P巾貞和B巾貞都有若干個(gè)參考巾貞。而在本發(fā)明的方案中,GOF的結(jié)構(gòu)比視頻編碼標(biāo)準(zhǔn)中的GOP結(jié)構(gòu)要簡(jiǎn)單一些,每個(gè)P幀或B幀網(wǎng)格至多擁有兩個(gè)參考幀,并且沒有其它的參數(shù)——GOF的作用僅僅在于設(shè)置各個(gè)幀在做配準(zhǔn)時(shí)的參考幀。用兩個(gè)參考幀F(xiàn)1和F2配準(zhǔn)幀F(xiàn)n的過程如下:
[0044]I)分別求解由兩個(gè)參考幀到目標(biāo)幀的TPS變換fi; i=l, 2并將變換應(yīng)用于參考幀的所有頂點(diǎn)得到變換后的頂點(diǎn)集P/,i=l, 2 ;
[0045]2)計(jì)算兩個(gè)變換頂點(diǎn)集的如下形式的所有線性組合:
[0046]P’ =a.P1, +b.P2'
[0047]其中a, b=0, 0.1,0.2,...1并且滿足a+b=l。對(duì)于每個(gè)線性組合結(jié)果P;,j=l,2,...11,在目標(biāo)幀F(xiàn)n中搜索并得到最鄰近頂點(diǎn)集P/’作為P/的對(duì)應(yīng)頂點(diǎn)集,并計(jì)算P/和P/’各對(duì)應(yīng)點(diǎn)的距離,然后挑出具有最小平均距離的P/’作為配準(zhǔn)結(jié)果。圖1為此過程的示意圖。
[0048]需要注意的一個(gè)關(guān)鍵的問題是,在本發(fā)明的方案中,一個(gè)目標(biāo)幀的所有參考幀都必須具有相同的頂點(diǎn)連接性,這意味著所有的I幀都必須是向后方向做配準(zhǔn)的,而不是像在視頻編碼標(biāo)準(zhǔn)中的GOP那樣有的I幀會(huì)向前預(yù)測(cè)。因此,我們將每個(gè)I幀都放到一個(gè)GOF的前面,而不是放到GOF之中。此外,該方案共設(shè)計(jì)并采用了 5種GOF結(jié)構(gòu),詳細(xì)的介紹如下:
[0049]DIPPP...IPPP...(I),在這種GOF結(jié)構(gòu)中,所有的GOF都僅包含P中貞,每個(gè)P幀都是由其之前的I幀配準(zhǔn)。
[0050]2)IPPP...1PPP...(2),在這種GOF結(jié)構(gòu)中,所有的GOF都僅有P幀,但是每個(gè)P幀都是由其前一幀來配準(zhǔn)的。
[0051]3)ΙΡΡΡ...IPPP...(3),在這種GOF結(jié)構(gòu)中,所有的GOF都僅有P幀,但是每個(gè)P幀都可能由其前一個(gè)P幀和之前的I幀共同作為參考幀來配準(zhǔn)。
[0052]4) IBPBP...1BP...,在這種GOF結(jié)構(gòu)中,每個(gè)BP序列構(gòu)成一個(gè)GOF。P幀由其前面的I幀(如果是在這個(gè)I幀后面的第一個(gè)GOF中)或者前一個(gè)GOF中的P幀配準(zhǔn);B幀由其前面的I幀或P幀和相同GOF中的P幀共同作為參考幀來配準(zhǔn).[0053]5) IBBBPBBBP...1BBBP...,在這種 GOF 結(jié)構(gòu)中,每個(gè) BBBP 序列構(gòu)成一個(gè) GOF。P 幀的情況與第4種GOF結(jié)構(gòu)一樣,由其前面的I幀或P幀配準(zhǔn);三個(gè)B幀的配準(zhǔn)順序?yàn)镻0C2,I然后3,每個(gè)B幀都是由其最近的兩個(gè)已經(jīng)配準(zhǔn)過的I幀、P幀或者B幀作為參考幀來配準(zhǔn)。
[0054]由于I幀不在任何GOF之中,而是被置于某一個(gè)GOF的前面,并且作為該GOF中的P幀或者B幀的參考幀,因此,I幀的出現(xiàn)間隔必須等于GOF的長(zhǎng)度的整數(shù)倍加I。圖2中是上述幾種GOF結(jié)構(gòu)類型的圖示說明。
[0055]2.壓縮配準(zhǔn)后的人臉網(wǎng)格序列的方法
[0056]對(duì)一個(gè)人臉網(wǎng)格序列配準(zhǔn)后,兩個(gè)I幀之間的所有幀都具有相同的頂點(diǎn)連接性,即與前一個(gè)I幀具有相同的面片數(shù)據(jù),這就意味著這些網(wǎng)格在同一個(gè)下標(biāo)的頂點(diǎn)都是對(duì)應(yīng)的,并且兩個(gè)相鄰的網(wǎng)格之間的頂點(diǎn)殘差會(huì)很小。所以,本發(fā)明用開源軟件7-Zip無損壓縮所有的I幀的頂點(diǎn)和面片數(shù)據(jù);通過壓縮相鄰幀之間的頂點(diǎn)殘差數(shù)據(jù)來壓縮P幀和B幀的頂點(diǎn)數(shù)據(jù),而它們面片數(shù)據(jù)將與I幀共享。我們將序列中的所有幀以I幀作為間隔劃分為若干個(gè)組,由配準(zhǔn)過程可知每個(gè)組中的所有幀都具有相同的面片數(shù)據(jù)。對(duì)于每個(gè)組,首先將I幀的頂點(diǎn)數(shù)、面片數(shù)以及頂點(diǎn)和面片數(shù)據(jù)寫入二進(jìn)制碼流文件,然后按照如下步驟編碼P幀和B幀的頂點(diǎn)數(shù)據(jù):
[0057]I)計(jì)算當(dāng)前幀和其前一幀的重建結(jié)果之間的頂點(diǎn)坐標(biāo)殘差。注意第一幀的前一幀是I中貞。
[0058]2)按照指定的小數(shù)位精度將殘差數(shù)據(jù)量化為整數(shù)。
[0059]3)對(duì)取整后的頂點(diǎn)殘差數(shù)據(jù)的三個(gè)笛卡爾坐標(biāo)分量分別做一維離散小波變換(一維 DWT)。
[0060]4)按指定的量化步長(zhǎng)對(duì)一維DWT的結(jié)果再次進(jìn)行量化。
[0061]5)將量化后的結(jié)果以及在解碼時(shí)需要用到的如量化步長(zhǎng)等信息保存到一個(gè)二進(jìn)制碼流文件。
[0062]6)按上述過程的逆過程進(jìn)行解壓重建。
[0063]由于P幀和B幀的編碼結(jié)果是量化后的數(shù)據(jù),此時(shí)二進(jìn)制碼流結(jié)果中會(huì)有大量的冗余數(shù)據(jù),所以最后要對(duì)二進(jìn)制碼流文件再用開源軟件7-Zip進(jìn)行無損壓縮成7z格式作為最終的壓縮結(jié)果。
[0064]為了驗(yàn)證改進(jìn)的配準(zhǔn)方案和編碼框架的有效性,我們?cè)贐U3D_FE三維人臉數(shù)據(jù)庫上進(jìn)行了實(shí)驗(yàn)。BU3D_FE中的原始人臉網(wǎng)格通過Cyberware激光掃描儀掃描真實(shí)人臉獲得,每個(gè)網(wǎng)格擁有30000多個(gè)頂點(diǎn)和6000多個(gè)三角面片。我們將所有網(wǎng)格的頂點(diǎn)和面片數(shù)據(jù)都存儲(chǔ)到OFF格式的網(wǎng)格文件中,每個(gè)網(wǎng)格文件的字節(jié)數(shù)在2500KB左右。我們分別使用之前提到的5中GOF結(jié)構(gòu)以及10、15、20、25、30、40、50這7種量化步長(zhǎng)測(cè)試本發(fā)明中的人臉配準(zhǔn)和壓縮方法。做小波變換時(shí)采用的小波是Haar小波。對(duì)于每種GOF結(jié)構(gòu),I幀的周期都被設(shè)為17,也就是每17幀后出現(xiàn)一個(gè)I幀。為了方便起見,我們挑出了人臉數(shù)據(jù)庫中的某一套人臉表情模型序列,并拿其中的表情變化比較明顯的20幀做實(shí)驗(yàn),這意味著其中只有兩個(gè)I幀需要存儲(chǔ)面片數(shù)據(jù)。
[0065]為了評(píng)估配準(zhǔn)和壓縮方法的效果,我們采用一種針對(duì)三維網(wǎng)格的峰值信噪比(Peak Signal to Noise Ratio,PSNR)來度量重建網(wǎng)格的客觀質(zhì)量。這種用于三維網(wǎng)格的PSNR (下文稱之為Mesh PSNR)的定義如下:
[0066]psnr=20.1g10 (peak/d)
[0067]其中peak為三維網(wǎng)格模型的包圍盒對(duì)角線長(zhǎng)度,d是原始網(wǎng)格與重構(gòu)網(wǎng)格之間的Hausdorff距離,由MESH工具計(jì)算得出。
[0068]圖3中顯示了分別對(duì)5種GOF結(jié)構(gòu)的配準(zhǔn)結(jié)果在7個(gè)量化步長(zhǎng)下的壓縮解壓結(jié)果的各幀平均Mesh PSNR曲線。從圖2中我們可以看出使用用多于一個(gè)參考幀來配準(zhǔn)P幀或B幀的GOF結(jié)構(gòu)做配準(zhǔn)的效果比使用只用一個(gè)參考幀來配準(zhǔn)P幀的GOF結(jié)構(gòu)做配準(zhǔn)的效果要好。值得注意的是,隨著量化步長(zhǎng)的增加,雖然圖3顯示平均Mesh PSNR結(jié)果只有很小幅度的下降甚至有時(shí)上升,但是在圖5中可以看出網(wǎng)格的真實(shí)重建質(zhì)量卻有明顯的下降。
[0069]圖4顯示了分別對(duì)5種GOF結(jié)構(gòu)的配準(zhǔn)結(jié)果壓縮的壓縮比曲線。與圖3 —起比較,我們可以看出5種GOF結(jié)構(gòu)的Mesh PSNR結(jié)果和壓縮比結(jié)果并不一致。圖中顯示第二種GOF結(jié)構(gòu)的壓縮結(jié)果的壓縮比最大,但是其MeshPSNR結(jié)果卻最低;而第一種GOF結(jié)構(gòu)的結(jié)果卻同時(shí)具有低壓縮比和低MeshPSNR。
[0070]編碼端實(shí)施例[0071]圖5為本發(fā)明編碼端實(shí)施例的結(jié)構(gòu)示意圖,具體包括:
[0072]1.按改進(jìn)的配準(zhǔn)方案對(duì)三維人臉網(wǎng)絡(luò)序列進(jìn)行全局配準(zhǔn)
[0073]具體過程為:首先按照與視頻編碼標(biāo)準(zhǔn)中類似的形式設(shè)置一種改進(jìn)的GOF結(jié)構(gòu)(實(shí)驗(yàn)結(jié)果顯示第5種效果最好,可以選擇這種GOF結(jié)構(gòu))和I幀出現(xiàn)周期intra_period。具體的GOF結(jié)構(gòu)的參數(shù)設(shè)置例子如表1。然后根據(jù)此GOF結(jié)構(gòu)分析整個(gè)網(wǎng)格序列,設(shè)置每一幀的幀類型和參考幀序號(hào)。最后按照此設(shè)置對(duì)整個(gè)網(wǎng)格序列進(jìn)行全局配準(zhǔn)。
[0074]
【權(quán)利要求】
1.一種三維網(wǎng)格序列的配準(zhǔn)及壓縮方法,其特征在于:包括以下步驟: (a)基于視頻的幀間編碼來配準(zhǔn)一個(gè)三維網(wǎng)格序列; (b)用開源軟件7-Zip無損壓縮所有的I幀的頂點(diǎn)和面片數(shù)據(jù);通過壓縮相鄰幀之間的頂點(diǎn)殘差數(shù)據(jù)來壓縮P幀和B幀的頂點(diǎn)數(shù)據(jù),而P幀和B幀的面片數(shù)據(jù)將與I幀共享; (c)用開源軟件7-Zip對(duì)步驟(b)的壓縮文件進(jìn)行解壓,然后重建。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于:步驟(a)中包括以下分步驟: (a.1)設(shè)置一種幀組GOF結(jié)構(gòu)和I幀周期; (a.2)根據(jù)此GOF結(jié)構(gòu)分析整個(gè)三維網(wǎng)格序列,設(shè)置每一幀的幀類型和參考幀序號(hào); (a.3)按照此設(shè)置對(duì)整個(gè)三維網(wǎng)格序列進(jìn)行全局配準(zhǔn)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于:步驟(b)包括以下分步驟: (b.1)將三維網(wǎng)格序列中的總幀數(shù)、I幀周期和量化步長(zhǎng)寫入二進(jìn)制碼流文件頭; (b.2)對(duì)三維網(wǎng)格序列按幀出現(xiàn)順序進(jìn)行逐幀編碼:如果當(dāng)前幀是I幀,將頂點(diǎn)數(shù)和面片數(shù)分別用2字節(jié)無符號(hào)整型保存,頂點(diǎn)數(shù)據(jù)每個(gè)坐標(biāo)值用8字節(jié)雙精度保存,面片數(shù)據(jù)每個(gè)頂點(diǎn)下標(biāo)用2字節(jié)無符號(hào)整型保存,并一起寫入二進(jìn)制碼流文件中;如果是P幀或B幀,對(duì)其與前一幀的重建結(jié)果的頂點(diǎn)坐標(biāo)殘差進(jìn)行保留兩位小數(shù)精度取整、一維Haar DWT變換和量化,將量化結(jié)果每個(gè)元素用2字節(jié)存儲(chǔ)并寫入到二進(jìn)制文件中,再將過程反過來重建當(dāng)前幀網(wǎng)格; (b.3)用開源軟件7-Zip對(duì)二進(jìn)制碼流文件進(jìn)行無損壓縮成7z格式作為最終壓縮結(jié)果O
4.根據(jù)權(quán)利要求3所述的方法,其特征在于:步驟(c)包括以下分步驟: (c.1)用7-Zip對(duì)7z格式壓縮文件解壓,得到二進(jìn)制碼流文件; (c.2)讀出碼流文件中的頭部信息,包括三維網(wǎng)格序列的總幀數(shù)、I幀周期和量化步長(zhǎng); (c.3)根據(jù)讀出的頭部信息對(duì)三維網(wǎng)格序列中每一幀進(jìn)行解碼重建:如果當(dāng)前幀是I幀,先讀出分別占用兩個(gè)字節(jié)的頂點(diǎn)數(shù)和面片數(shù),在根據(jù)頂點(diǎn)數(shù)和面片數(shù)直接讀出固定字節(jié)數(shù)的內(nèi)容作為此I幀的頂點(diǎn)和面片數(shù)據(jù);如果當(dāng)前幀是P幀或B幀,先按之前已讀出的頂點(diǎn)數(shù)讀出指定字節(jié)數(shù)的內(nèi)容作為頂點(diǎn)殘差數(shù)據(jù),然后按照編碼時(shí)的逆過程進(jìn)行解碼重建當(dāng)前幀網(wǎng)格的頂點(diǎn)數(shù)據(jù),而面片數(shù)據(jù)和之前的I幀面片數(shù)據(jù)一樣。
【文檔編號(hào)】G06T9/00GK103927746SQ201410133394
【公開日】2014年7月16日 申請(qǐng)日期:2014年4月3日 優(yōu)先權(quán)日:2014年4月3日
【發(fā)明者】施云惠, 王一山, 胡永利, 丁文鵬 申請(qǐng)人:北京工業(yè)大學(xué)