亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法的制作方法

文檔序號(hào):11833030閱讀:373來源:國(guó)知局
基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法的制作方法與工藝

本發(fā)明涉及計(jì)算機(jī)圖形學(xué)和三維動(dòng)畫制作領(lǐng)域,尤其是指一種基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法。



背景技術(shù):

隨著動(dòng)畫產(chǎn)業(yè)的持續(xù)發(fā)展,如何高效地存儲(chǔ)或傳輸這些傾注動(dòng)畫師心血的產(chǎn)品,是另一個(gè)重要且迫切的問題。我們希望能夠用較少的代價(jià)存儲(chǔ)和傳輸擁有大量冗余信息的幾何序列,這涉及到幾何序列的緊湊表示和壓縮。實(shí)際上,壓縮可以看作緊湊表示的一種特例。不同于圖片或視頻的壓縮,動(dòng)畫序列在傳輸之前,往往經(jīng)過去噪平滑、頂點(diǎn)稠密對(duì)應(yīng)等處理,因此數(shù)據(jù)的質(zhì)量高,而且?guī)g的拓?fù)浣Y(jié)構(gòu)非常類似,甚至幾乎完全一樣。這種獨(dú)特的數(shù)據(jù)模式,決定了幾何序列壓縮一般具有極高的壓縮率和獨(dú)特的處理手段。任何高效的算法都離不開處理對(duì)象自身的結(jié)構(gòu)和表示方式,而緊湊表示與幾何序列的表示方式密切相關(guān)。傳統(tǒng)的、用于計(jì)算機(jī)動(dòng)畫的幾何序列主要由三角形面網(wǎng)格或四邊形面網(wǎng)格構(gòu)成。因此,形狀的緊湊表示可以轉(zhuǎn)化為對(duì)多邊形網(wǎng)格序列的預(yù)測(cè)(在傳輸前的預(yù)處理階段,一般無法避免由量化造成的精度損失),基本思想是利用幀內(nèi)的空間連續(xù)性、幀間的時(shí)間連續(xù)性來估計(jì)頂點(diǎn)的運(yùn)動(dòng)軌跡。最近,針對(duì)網(wǎng)格質(zhì)量度量的一些研究指出,重構(gòu)的絕對(duì)誤差并不是決定網(wǎng)格視覺質(zhì)量的最重要因素,換句話,在相同視覺誤差的條件下,基于視覺感知的壓縮技術(shù)能夠達(dá)到更高的壓縮比。因此,如何將視覺感知等心理學(xué)范疇的概念用數(shù)學(xué)進(jìn)行建模,并最終在工程上實(shí)現(xiàn),將成為未來又一重大挑戰(zhàn)。

網(wǎng)格壓縮技術(shù)的基本思想主要有兩點(diǎn):數(shù)據(jù)預(yù)測(cè)和數(shù)據(jù)量化。在預(yù)測(cè)階段,提取源網(wǎng)格的子集,并利用該子集對(duì)其補(bǔ)集使用某種預(yù)測(cè)方法進(jìn)行估計(jì),得到對(duì)源數(shù)據(jù)的逼近。完畢后,由估計(jì)數(shù)據(jù)和源數(shù)據(jù)做差得到的余項(xiàng)將采用熵編碼對(duì)其進(jìn)行壓縮。預(yù)測(cè)方法的好壞,將影響后續(xù)余項(xiàng)量化的效率,當(dāng)預(yù)測(cè)方法適合數(shù)據(jù)自身的特點(diǎn),那么余項(xiàng)的熵值較小,相反,則需要花費(fèi)更多的比特存貯余項(xiàng)。預(yù)測(cè)一般分為兩種:姿態(tài)的運(yùn)動(dòng)預(yù)測(cè)和幾何細(xì)節(jié)的預(yù)測(cè)。當(dāng)運(yùn)動(dòng)和幾何細(xì)節(jié)在相鄰兩幀中不發(fā)生明顯變化時(shí),序列將體現(xiàn)較強(qiáng)的時(shí)空連續(xù)性。

現(xiàn)有很多關(guān)于網(wǎng)格重建質(zhì)量的評(píng)估手段,用于壓縮,濾波和水印等的幾何處理應(yīng)用。這些評(píng)估手段著眼于形狀的扭曲程度。早期的方法直接計(jì)算兩個(gè)待比較網(wǎng)格之間的幾何距離,而目前的工作主要聚焦于感知角度。盡管靜態(tài)網(wǎng)格的評(píng)估方法能夠直接應(yīng)用至動(dòng)態(tài)網(wǎng)格,但也有工作專門針對(duì)動(dòng)畫網(wǎng)格序列。在這些評(píng)估方法當(dāng)中,KG錯(cuò)誤和STED錯(cuò)誤成功地、廣泛地用于動(dòng)態(tài)幾何壓縮之中,成為最常用的評(píng)估方法。這兩種方法成為常用標(biāo)準(zhǔn)的原因,是考慮了邊長(zhǎng)變化對(duì)視覺感知的影響——KG錯(cuò)誤考慮了單個(gè)模型內(nèi)部每個(gè)頂點(diǎn)的歐氏距離誤差及其一鄰域的平滑程度;STED錯(cuò)誤則考慮了單個(gè)模型內(nèi)部每個(gè)頂點(diǎn)的鄰域邊集之長(zhǎng)度變化,以及連接相鄰幀對(duì)應(yīng)頂點(diǎn)之間的虛擬邊之長(zhǎng)度變化。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明針對(duì)早期壓縮工作中并沒有考慮不同剛性塊的不同運(yùn)動(dòng)對(duì)整個(gè)網(wǎng)格上所有頂點(diǎn)軌跡線的相關(guān)性影響的缺陷,提出了提出一種基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法,使得通過剛性變換后的頂點(diǎn)軌跡位于維度更低的子空間中,提高壓縮率。

為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:一種基于低秩頂點(diǎn)軌跡子空間提取的壓縮算法,包括以下步驟:

1)剛性塊聚類

將運(yùn)動(dòng)物體分割為若干接近于剛性運(yùn)動(dòng)的塊;計(jì)算每個(gè)頂點(diǎn)在幀間的剛性變換,并對(duì)這些剛性變換進(jìn)行K-means聚類,使得每個(gè)頂點(diǎn)即軌跡位于相應(yīng)的剛性塊中;剛性塊表示為其中,NS是塊的數(shù)目;

2)低秩剛性塊對(duì)齊

對(duì)步驟1)進(jìn)行剛性變換后的新軌跡進(jìn)行低秩分析,目的是估計(jì)可以令到所有軌跡位于低秩子空間的剛性變換;

記這些變換序列的集合為用來表示對(duì)齊后的網(wǎng)格序列,其中,是第f幀中新的三維空間嵌入;類似地,采用Pf以及來分別表示對(duì)齊后的頂點(diǎn)位置、形狀矩陣以及形狀序列矩陣;根據(jù)上述記號(hào),建立關(guān)系:其中,j(i)表示頂點(diǎn)i所在剛性塊的索引;

3)主成分分析

對(duì)步驟2)對(duì)齊后的形狀序列矩陣進(jìn)行主成份分析,計(jì)算對(duì)應(yīng)的主成份方向和混合系數(shù);在這個(gè)階段,處理的數(shù)據(jù)不再是軌跡本身,而是每條頂點(diǎn)軌跡相對(duì)于平均網(wǎng)格的偏移軌跡;

4)預(yù)測(cè)與量化

對(duì)步驟3)產(chǎn)生的數(shù)據(jù)進(jìn)行進(jìn)一步的預(yù)測(cè)和量化;這個(gè)階段主要利用網(wǎng)格自身的幾何信息以及運(yùn)動(dòng)時(shí)的連貫性來預(yù)測(cè)既得數(shù)據(jù),從而得到與既得數(shù)據(jù)非常接近的預(yù)測(cè)數(shù)據(jù);其后,保存的是預(yù)測(cè)數(shù)據(jù)及其與既得數(shù)據(jù)之間的殘差;殘差通常是用過浮點(diǎn)數(shù)來表示;最終,通過算術(shù)編碼器量化浮點(diǎn)數(shù)并得到殘差的整數(shù)即近似表達(dá),以二進(jìn)制文件的方式保存;

5)解壓與重構(gòu)處理

解壓端將利用步驟4)保存好的整數(shù)數(shù)據(jù),包括PCA基、PCA混合系數(shù)以及錨點(diǎn),通過泊松方程重構(gòu)對(duì)齊后序列;緊接著,解壓剛性變換并將其作用到對(duì)齊序列,最終重構(gòu)原始的動(dòng)畫網(wǎng)格序列;由于涉及泊松方程,需要為原始數(shù)據(jù)尋找錨點(diǎn),一方面用于使得該方程有唯一解,另一方面用于補(bǔ)償由于PCA和量化過程引起的拉普拉斯軌跡誤差所導(dǎo)致變形;

新的壓縮算法的計(jì)算框架可以用下面的公式來大致描述:

其中,M是給定的數(shù)據(jù)矩陣,是作用到M上的剛性變換,Φ是主成份向量矩陣,其取值取決于變換后的M,L則是作用至主成份系數(shù)矩陣的線性預(yù)測(cè)算子,代表預(yù)測(cè)后的殘差。

在步驟1)中,所述的剛性塊聚類,其方法為:

通過計(jì)算每個(gè)頂點(diǎn)一鄰域包含頂點(diǎn)本身的剛性變換,作為該頂點(diǎn)在某一時(shí)間段內(nèi)的變形;具體地,對(duì)于頂點(diǎn)i的位置向量擬合旋轉(zhuǎn)與平移變換參數(shù)最小化以下能量:

其中,表示第i個(gè)頂點(diǎn)的一鄰域;根據(jù)幀的先后順序,將第i個(gè)頂點(diǎn)的剛性變換參數(shù)排成一個(gè)序列:這個(gè)序列可以看作頂點(diǎn)i的剛性變換軌跡;

變換參數(shù)確定下來后,應(yīng)用K-means方法對(duì)頂點(diǎn)進(jìn)行聚類以獲得近似剛性運(yùn)動(dòng)塊;除了考慮運(yùn)動(dòng)的相似性外,在剛性塊分割時(shí)還考慮空間上的近鄰關(guān)系;

因此,給定頂點(diǎn)i和頂點(diǎn)j,定義兩點(diǎn)間的距離如下:

d(i,j)=dm(i,j)+λ1de(i,j)+λ2dg(i,j) (3)

其中,

<mrow> <msub> <mi>d</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msubsup> <mi>R</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msubsup> <mi>t</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>t</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mn>2</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow>

<mrow> <msub> <mi>d</mi> <mi>g</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>F</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> </munderover> <msub> <mi>d</mi> <mi>g</mi> </msub> <mrow> <mo>(</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>d</mi> <mi>e</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>F</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> </munderover> <msub> <mi>d</mi> <mi>e</mi> </msub> <mrow> <mo>(</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> </mrow>

使用兩種距離的理由有二;第一,考慮歐氏距離能夠令剛性塊之間的過渡更加平滑;第二,引入測(cè)地距離可以避免因?yàn)闅W氏距離很近而把位于兩個(gè)拓?fù)洳贿B通的剛性塊聚成一類的問題;分割結(jié)束后得到若干不重合的頂點(diǎn)集其中,NS代表物體包含的剛性塊數(shù)目。

在步驟2)中,所述的低秩剛性塊對(duì)齊,其方法為:

定義為對(duì)齊后的序列的平均形狀矩陣,即將尋找軌跡低維子空間的問題形式化為如下的能量:

其中,A則為的低秩估計(jì);注意到公式(4)是一個(gè)非線性優(yōu)化問題,因?yàn)锳依賴于未知的剛性變換;其中一種簡(jiǎn)單的求解方法,是通過塊坐標(biāo)下降法,對(duì)兩種不同類型的變量輪流求解;當(dāng)變換估計(jì)完畢,固定變換,則A能夠通過收縮閾值操作來求解;當(dāng)A求解完畢并固定,求解關(guān)于變換矩陣的線性方程組;當(dāng)變換被約束為剛性時(shí),即則和能夠通過SVD獲得;初始化為單位矩陣,為零向量;

給出替代的建模方法,能夠獲得較好的局部解:

其中,λ控制數(shù)據(jù)項(xiàng)與調(diào)整項(xiàng)之間的權(quán)重關(guān)系;公式(5)的調(diào)整項(xiàng)用于防止陷入較差的局部最優(yōu)解;為了理解陷入局部次優(yōu)的原因,觀察不帶第二項(xiàng)的能量(5),其實(shí)這等價(jià)于直接對(duì)源矩陣進(jìn)行PCA,并取前NB個(gè)主成份;

利用平均姿態(tài)約束來進(jìn)一步松弛公式(5),其形式化描述如下:

其中,NB是用戶指定的參數(shù),用以控制矩陣A的秩;將NB設(shè)為PCA基的個(gè)數(shù);最小化能量(6)的方法與最小化能量(4)的類似,依然采用塊坐標(biāo)下降法迭代求解與A。

在步驟3)中,所述的主成分分析,其方法為:

對(duì)齊后的網(wǎng)格序列減去平均姿態(tài),得到每個(gè)頂點(diǎn)相對(duì)平均姿態(tài)對(duì)應(yīng)頂點(diǎn)的偏移量;采用類似P的組織方式,將上述的偏移量組合為一個(gè)新的殘差矩陣,即尋找NB個(gè)主成即每個(gè)行向量構(gòu)成一個(gè)主成份,使得下面的公式成立:

D=CΦ, (7)

其中,是PCA的混合系數(shù)所構(gòu)成的矩陣。

在步驟4)中,所述的預(yù)測(cè)與量化過程中包括的剛性變換的預(yù)測(cè)結(jié)果通過混合預(yù)測(cè)器得到PCA系數(shù)矩陣與錨點(diǎn)矩陣Y,周期檢測(cè)后得到的PCA基與稀疏矩陣H,以及平均姿態(tài)網(wǎng)格數(shù)據(jù)

a)剛性變換的預(yù)測(cè):

考察相鄰兩個(gè)剛性塊邊界之間的相對(duì)位移,定義分別為第f幀的剛性塊Vi、Vj的邊界點(diǎn)矩陣,由邊界點(diǎn)的三維笛卡爾坐標(biāo)構(gòu)成;假設(shè)現(xiàn)在已重構(gòu)了前面的一些幀,并且第f幀的剛性快Vi的所有頂點(diǎn)位置已重構(gòu),即近似地恢復(fù)至原始時(shí)的位置包括現(xiàn)在須要估計(jì)第f幀的剛性塊Vj所對(duì)應(yīng)的變換;該估計(jì)由兩個(gè)變換插值得到,而這兩個(gè)變換分別是:第f幀前k幀的剛性變換以及前1幀Vi與Vj的相對(duì)位置關(guān)系;具體如下式:

其中,分別是COBRA的預(yù)測(cè)函數(shù),即當(dāng)前時(shí)刻變換參數(shù)能夠使用前k幀的對(duì)應(yīng)變換參數(shù)來預(yù)測(cè);k的取值視乎預(yù)測(cè)函數(shù)的階數(shù),當(dāng)k=1時(shí),使用前1幀變換參數(shù)的值;當(dāng)k=2,使用前1幀變換參數(shù)的速度即由前2幀的參數(shù)差分得到;當(dāng)k=3時(shí),使用前1幀變換參數(shù)的加速度即由前3幀的參數(shù)二次差分得到,依此類推;與分別由公式(9)得到:

<mrow> <mo>(</mo> <msubsup> <mover> <mi>q</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>min</mi> </mrow> <mrow> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> </mrow> </munder> <mo>|</mo> <mo>|</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>j</mi> <mrow> <mi>f</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <mi>I</mi> <mo>,</mo> </mrow>

<mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>)</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>min</mi> </mrow> <mrow> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> </mrow> </munder> <mo>|</mo> <mo>|</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>i</mi> <mrow> <mi>f</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>b</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <mi>I</mi> <mo>.</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

在公式(9)中,和代表從到的剛性變換,并將該變換作用至中,目的是將和的相對(duì)位置關(guān)系“遷移”至與之間;公式(8)中的參數(shù)并不是常數(shù),而是視預(yù)測(cè)結(jié)果與真實(shí)變換之間的偏離程度而定;具體來說,根據(jù)偏離程度修正自身,分別使得與盡可能接近與修正后的兩個(gè)參數(shù)參與下一幀的預(yù)測(cè);兩個(gè)參數(shù)在第一幀的初始值都設(shè)為1;通過剛性變換預(yù)測(cè)得到的殘差記為

b)PCA系數(shù)矩陣與錨點(diǎn)矩陣Y

需要對(duì)PCA混合系數(shù)矩陣C進(jìn)行預(yù)測(cè);C看作定義在平均姿態(tài)網(wǎng)格上的向量場(chǎng),而拉普拉斯矩陣也能夠認(rèn)為是每個(gè)頂點(diǎn)上的向量基于局部空間的線性預(yù)測(cè)器,因?yàn)樵撓蛄磕軌蛴闷湟秽徲虻钠渌蛄窟M(jìn)行線性混合來估計(jì);設(shè)計(jì)一種混合了多種矩陣、具有拉普拉斯矩陣相似結(jié)構(gòu)的混合預(yù)測(cè)器L;

矩陣L由余切拉普拉斯矩陣、均值拉普拉斯矩陣與最優(yōu)權(quán)重矩陣三者混合而成;具體地,對(duì)平均姿態(tài)模型的每個(gè)頂點(diǎn),最小化以下能量:

其中,γ是調(diào)整系數(shù),用于調(diào)整數(shù)據(jù)項(xiàng)和最優(yōu)化權(quán)重ωij的范數(shù),硬約束使權(quán)重具有仿射不變性,即平均網(wǎng)格的第i個(gè)頂點(diǎn)及其一鄰域進(jìn)行了仿射變換,相關(guān)的ωij不變;能量(10)的第一項(xiàng)使權(quán)重在鄰接點(diǎn)上均勻分布,一方面是為了得到唯一解,另一方面是限制權(quán)重過大而導(dǎo)致所做的預(yù)測(cè)存在較大的偏差;第二項(xiàng)是令到第i個(gè)頂點(diǎn)能夠用其一鄰域的頂點(diǎn)通過線性混合得到;當(dāng)所有的ωij求解完畢,得到一個(gè)具有與經(jīng)典拉普拉斯矩陣結(jié)構(gòu)相同、但非零項(xiàng)取值不同的最優(yōu)化權(quán)重矩陣;由于最小化過程在平均姿態(tài)網(wǎng)格上執(zhí)行,當(dāng)待預(yù)測(cè)數(shù)據(jù)的分布恰好與平均姿態(tài)網(wǎng)格頂點(diǎn)位置的分布相同時(shí),預(yù)測(cè)才會(huì)與真實(shí)數(shù)據(jù)相同,因此稱ωij為最優(yōu)化權(quán)重;預(yù)測(cè)的準(zhǔn)確程度與待預(yù)測(cè)數(shù)據(jù)的分布與平均姿態(tài)網(wǎng)格頂點(diǎn)位置的分布的相似程度有關(guān);在實(shí)際應(yīng)用中,只用一部分最優(yōu)化權(quán)重矩陣的行向量來填充混合預(yù)測(cè)矩陣,而后者所剩下的行則由經(jīng)典拉普拉斯矩陣的對(duì)應(yīng)行來填充;

混合方法包括兩步;首先,分別使用余切拉普拉斯矩陣、均值拉普拉斯矩陣與最優(yōu)權(quán)重矩陣作用至PCA的混合系數(shù)矩陣C,得到三個(gè)新的微分系數(shù)矩陣;混合矩陣L的計(jì)算如下:分別計(jì)算每一個(gè)微分系數(shù)矩陣第i行的l2范數(shù),取能夠產(chǎn)生最小范數(shù)的預(yù)測(cè)矩陣的第i行作為L(zhǎng)的第i行元素;采用上述的混合方法,其目的在于將L作用到C之后,使得到的微分系數(shù)矩陣的Frobenius范數(shù)盡可能最??;這樣做能夠使得后續(xù)的量化編碼效率更高;

定義微分系數(shù)矩陣錨點(diǎn)矩陣的第i行Yi來源于C的某一行;錨點(diǎn)的數(shù)量NA和選擇方法可參考Sorkine等人的工作;

C)周期檢測(cè)后得到的PCA基與稀疏矩陣H

在給出形式化描述前,須要指出的是:原始網(wǎng)格動(dòng)畫的周期性運(yùn)動(dòng),在對(duì)齊操作后依然被保留下來,并存在于殘差矩陣內(nèi);當(dāng)使用PCA對(duì)殘差矩陣進(jìn)行逼近后,周期性運(yùn)動(dòng)的信息將遷移至PCA基之中;換言之,只要對(duì)PCA基進(jìn)行稀疏編碼,即能找到潛在的重復(fù)模式;周期檢測(cè)的稀疏編碼的形式化描述如下:

minH||ΨH-Ψ||2+η||H||1 (11)

其中,的每一列由Φ的每一列歸一化所得,即每一列除以該列的模長(zhǎng);H是一個(gè)稀疏方陣,η則是權(quán)重調(diào)節(jié)系數(shù),取值固定為0.01;歸一化Φ能夠排除模長(zhǎng)對(duì)稀疏性的影響;一方面,當(dāng)Φ存在兩個(gè)具有相同朝向但長(zhǎng)度不同的列向量時(shí),認(rèn)為兩者依然具有相同運(yùn)動(dòng)模式,只是振幅不同;另一方面,某個(gè)列向量有可能由單個(gè)其他列向量表示,也可能由其他若干個(gè)列向量混合表示,如果第一種情況得到的系數(shù)絕對(duì)值大于第二種情況的系數(shù)絕對(duì)值的總和,那么最小化能量(11)將得到稠密解,而歸一化能避免出現(xiàn)這種情況;

若H的第i列只有一個(gè)非零值1,且該值位于第i行,則表明不存在與Φ的第i列相同的其它列向量;若多于一個(gè)非零值,則表明可能存在相同列,這時(shí)須要判斷非零值的行索引在H中對(duì)應(yīng)的各列是否相同;當(dāng)兩個(gè)列向量夾角小于給定閾值的時(shí)候,認(rèn)為它們相同;獲得重復(fù)模式后,削減Φ的部分列向量,得到3NK是沒有重復(fù)模式的軌跡長(zhǎng)度;注意,隨著閾值增大,NK會(huì)減少,但重建誤差也會(huì)增大;另外,即使在閾值很小的情況下,并不總能保證任意動(dòng)畫序列都能找到重復(fù)模式;最后,采用COBRA算法來漸進(jìn)式地預(yù)測(cè)和量化中的浮點(diǎn)數(shù);

d)平均姿態(tài)網(wǎng)格數(shù)據(jù)

平均網(wǎng)格采用現(xiàn)有的靜態(tài)網(wǎng)格壓縮方法,主要分為兩部分:頂點(diǎn)的連結(jié)關(guān)系壓縮和頂點(diǎn)的幾何位置壓縮;前者使用基于頂點(diǎn)價(jià)驅(qū)動(dòng)的連接關(guān)系壓縮算法;后者采用網(wǎng)格高通濾波來完成。

在步驟5)中,所述的解壓與重構(gòu)處理,其方法為:

解碼平均姿態(tài)模型后,計(jì)算得到混合預(yù)測(cè)矩陣通過求解泊松方程來重構(gòu)系數(shù)矩陣具體地,給定混合矩陣微分系數(shù)矩陣以及錨點(diǎn)矩陣希望找到使得其微分坐標(biāo)盡可能與相等;注意到不滿秩,其零向量空間的維度等于網(wǎng)格的連通分量個(gè)數(shù),對(duì)于封閉網(wǎng)格,至少需要一個(gè)已知頂點(diǎn)作為邊界條件,泊松方程才有唯一解;在實(shí)際應(yīng)用中,泊松重構(gòu)的穩(wěn)定性受邊界條件影響,須要選擇多個(gè)錨點(diǎn)共同構(gòu)成邊界條件,因此,PCA系數(shù)矩陣的泊松重構(gòu)描述為如下優(yōu)化問題:

<mrow> <munder> <mi>min</mi> <mover> <mi>C</mi> <mo>&OverBar;</mo> </mover> </munder> <mo>|</mo> <mo>|</mo> <mover> <mi>L</mi> <mo>~</mo> </mover> <mover> <mi>C</mi> <mo>~</mo> </mover> <mo>-</mo> <mover> <mover> <mi>C</mi> <mo>^</mo> </mover> <mo>~</mo> </mover> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mi>&lambda;</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>A</mi> </msub> </munderover> <mo>|</mo> <mo>|</mo> <msub> <mover> <mi>Y</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mo>-</mo> <msub> <mover> <mi>C</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <mi>&lambda;</mi> <mo>&gt;</mo> <mn>0</mn> <mo>,</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

其中,λ是控制邊界條件約束程度的系數(shù);優(yōu)化上述能量等價(jià)于求解線性方程組:

<mrow> <msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mi>T</mi> </msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mover> <mi>C</mi> <mo>~</mo> </mover> <mo>=</mo> <msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mi>T</mi> </msup> <mover> <mi>V</mi> <mo>~</mo> </mover> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

和分別是對(duì)和的增廣;增廣方法是:對(duì)于在其最后一行后插入如下矩陣

對(duì)于則將添加至的末尾;λ設(shè)置為100。

本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)與有益效果:

1、壓縮率更高、扭曲率更低

圖7列出了圖6例子中采用不同策略時(shí)的碼率和STED扭曲值,其中包括本文算法結(jié)果以及通過實(shí)現(xiàn)文獻(xiàn)等人的算法所得的結(jié)果;沒有采用剛性塊對(duì)齊策略、采用剛性塊策略以及文獻(xiàn)等人算法的比較結(jié)果顯示,我們的算法對(duì)剛性運(yùn)動(dòng)比較明顯的形狀序列壓縮效果較好;在圖7中間三個(gè)例子中,本文算法性能與文獻(xiàn)等人的互有優(yōu)劣,但不明顯;而在最后一個(gè)例子中,本文算法有微弱優(yōu)勢(shì);

2、對(duì)剛性運(yùn)動(dòng)的模型壓縮效果更好

我們的方法混合拉普拉斯(有對(duì)齊)對(duì)剛性運(yùn)動(dòng)比較明顯的形狀序列壓縮效果較好,對(duì)于具有剛性運(yùn)動(dòng)特征的物體,例如Humanoid模型,能達(dá)到非常高的壓縮率(碼率越低越好),而且扭曲也比其他方法小。而對(duì)于表面小尺度范圍充滿非剛性運(yùn)動(dòng)的物體,例如圖7中的Squat2和CowHeavy序列,在集成了局部微分坐標(biāo)剛性變換預(yù)測(cè)器后,也能得到接近于L等人的結(jié)果。

附圖說明

圖1為本發(fā)明的壓縮算法流程圖。

圖2為本發(fā)明實(shí)驗(yàn)的應(yīng)用K-means方法對(duì)頂點(diǎn)進(jìn)行聚類的結(jié)果圖。

圖3為本發(fā)明展示的一個(gè)為了說明陷入局部次優(yōu)解的例圖。

圖4為本發(fā)明的剛性聚類結(jié)果圖。

圖5為本發(fā)明的解碼流程圖。

圖6為本發(fā)明的測(cè)試的各類模型圖。

圖7為本壓縮算法的碼率與質(zhì)量比較圖。

圖8為本壓縮算法的所有例子的計(jì)算耗時(shí)比較圖。

圖9為本壓縮算法中剛性塊數(shù)目與重構(gòu)質(zhì)量的關(guān)系圖。

具體實(shí)施方式

下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。

本實(shí)施例所述的基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法,其具體情況如下:給定待壓縮的原始動(dòng)畫網(wǎng)格序列,通過運(yùn)動(dòng)分析,姿態(tài)對(duì)齊,主成分分析,進(jìn)一步預(yù)測(cè)得到了若干準(zhǔn)備送入二進(jìn)制編碼器的殘差數(shù)據(jù),使用上下文適應(yīng)二進(jìn)制算術(shù)編碼器(CABAC)來完成所有量化結(jié)果的編碼壓縮,以及后面的解碼中基于泊松方程的曲面重建方法。以此為基礎(chǔ),本發(fā)明提出編碼框架(如圖1所示),解碼框架(如圖5所示)。

新的壓縮算法的計(jì)算框架可以用下面的公式來大致描述:

其中,M是給定的數(shù)據(jù)矩陣,是作用到M上的剛性變換,Φ是主成份向量矩陣,其取值取決于變換后的M,L則是作用至主成份系數(shù)矩陣的線性預(yù)測(cè)算子,代表預(yù)測(cè)后的殘差;

從概念上看,上述計(jì)算框架所產(chǎn)生的待壓縮數(shù)據(jù),主要包括公式(1)中除M以外的所有量。其中,含有大量的浮點(diǎn)數(shù),值一般很接近0,因此可以高效地對(duì)其進(jìn)行編碼壓縮;盡管的熵不一定隨著浮點(diǎn)數(shù)值的減小而下降,但在實(shí)踐中發(fā)現(xiàn),如果的Frobenius范數(shù)越小,則減少其熵的可能性就越高。假設(shè)量化系數(shù)不變,當(dāng)范數(shù)減少到一定程度,的碼值會(huì)出現(xiàn)較多的重復(fù);

本實(shí)施例上述的基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法,算法流程如圖1所示,包括以下步驟:

1)剛性塊聚類(運(yùn)動(dòng)分析)

對(duì)于輸入的原始動(dòng)畫網(wǎng)格序列,通過計(jì)算每個(gè)頂點(diǎn)一鄰域(包含頂點(diǎn)本身)的剛性變換,作為該頂點(diǎn)在某一時(shí)間段內(nèi)的變形;具體地,對(duì)于頂點(diǎn)i的位置向量擬合旋轉(zhuǎn)與平移變換參數(shù)(本節(jié)這對(duì)符號(hào)用來表示第f幀第i個(gè)點(diǎn)到第f+1幀的局部剛性變換,而其它節(jié),這對(duì)符號(hào)都表示第f幀,第i個(gè)剛性塊到第f+1幀相應(yīng)塊的剛性塊變換矩陣)最小化以下能量:

其中,表示第i個(gè)頂點(diǎn)的一鄰域;根據(jù)幀的先后順序,將第i個(gè)頂點(diǎn)的剛性變換參數(shù)排成一個(gè)序列:這個(gè)序列可以看作頂點(diǎn)i的剛性變換軌跡;

變換參數(shù)確定下來后,我們應(yīng)用K-means方法對(duì)頂點(diǎn)進(jìn)行聚類以獲得近似剛性運(yùn)動(dòng)塊;除了考慮運(yùn)動(dòng)的相似性外,在剛性塊分割時(shí)我們還考慮空間上的近鄰關(guān)系。因此,給定頂點(diǎn)i和頂點(diǎn)j,我們定義兩點(diǎn)間的距離如下:

d(i,j)=dm(i,j)+λ1de(i,j)+λ2dg(i,j) (3)

其中,

<mrow> <msub> <mi>d</mi> <mi>m</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mrow> <mo>(</mo> <mo>|</mo> <mo>|</mo> <msubsup> <mi>R</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>R</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mo>|</mo> <mo>|</mo> <msubsup> <mi>t</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>t</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mn>2</mn> <mn>2</mn> </msubsup> <mo>)</mo> </mrow> </mrow> </msqrt> </mrow>

<mrow> <msub> <mi>d</mi> <mi>g</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>F</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> </munderover> <msub> <mi>d</mi> <mi>g</mi> </msub> <mrow> <mo>(</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mo>,</mo> <msub> <mi>d</mi> <mi>e</mi> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <msub> <mi>N</mi> <mi>F</mi> </msub> </mfrac> <munderover> <mo>&Sigma;</mo> <mrow> <mi>f</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>F</mi> </msub> </munderover> <msub> <mi>d</mi> <mi>e</mi> </msub> <mrow> <mo>(</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> </mrow>

分割結(jié)束后得到若干不重合的頂點(diǎn)集其中,NS代表物體包含的剛性塊數(shù)目;

2)低秩剛性塊對(duì)齊(姿態(tài)對(duì)齊)

我們對(duì)進(jìn)行剛性變換后的新軌跡進(jìn)行低秩分析,目的是估計(jì)可以令到所有軌跡位于低秩子空間的剛性變換,利用矩陣低秩分析方法,求出相鄰幀間對(duì)應(yīng)剛性塊的剛性變換,以便把所有姿態(tài)對(duì)齊。對(duì)于有NF幀的序列來說,每個(gè)剛性塊會(huì)對(duì)應(yīng)NF個(gè)剛性變換,這些變換構(gòu)成一個(gè)變換序列;NS個(gè)剛性塊,就有NS個(gè)這樣的變換序列。記這些變換序列的集合為用來表示對(duì)齊后的網(wǎng)格序列,其中,是第f幀新的三維空間嵌入;類似地,采用Pf以及來分別表示對(duì)齊后的頂點(diǎn)位置、形狀矩陣以及形狀序列矩陣;根據(jù)上述記號(hào),我們可以建立以下關(guān)系:

其中,j(i)表示頂點(diǎn)i所在剛性塊的索引;

定義為對(duì)齊后的序列的平均形狀矩陣,即我們將尋找軌跡低維子空間的問題形式化為如下的能量:

其中,已在前面描述,A則為的低秩估計(jì);注意到公式(4)是一個(gè)非線性優(yōu)化問題,因?yàn)锳依賴于未知的剛性變換;其中一種簡(jiǎn)單的求解方法,是通過塊坐標(biāo)下降法,對(duì)兩種不同類型的變量輪流求解;當(dāng)變換估計(jì)完畢,固定變換,則A可以通過收縮閾值操作(Shrinkage thresholding operator)來求解;當(dāng)A求解完畢并固定,求解關(guān)于變換矩陣的線性方程組;當(dāng)變換被約束為剛性時(shí),即則和可以通過SVD獲得;對(duì)于初始化,并沒有嚴(yán)格的要求,我們初始化為單位矩陣,為零向量;

注意,當(dāng)α選取“適合”于具體應(yīng)用的值時(shí),優(yōu)化上述能量得到的解才是符合要求的低秩解;如果α選取不當(dāng),得到的解很有可能是次優(yōu)解;我們希望α的值盡可能大,同時(shí)希望A的秩不變;但是,如果采用試錯(cuò)的方法尋找α,例如二分法,計(jì)算代價(jià)較大,另一方面,難以找到一種高效的確定α值的方法;因此,我們給出替代的建模方法,該方法不含與具體例子十分相關(guān)的參數(shù),但同時(shí)能夠獲得較好的局部解(如圖4):

其中,λ控制數(shù)據(jù)項(xiàng)與調(diào)整項(xiàng)之間的權(quán)重關(guān)系;公式(5)的調(diào)整項(xiàng)用于防止陷入較差的局部最優(yōu)解;為了理解陷入局部次優(yōu)的原因,觀察不帶第二項(xiàng)的能量(5),其實(shí)這等價(jià)于直接對(duì)源矩陣進(jìn)行PCA,并取前NB個(gè)主成份;在圖3中,所有的模型均具有相同的姿態(tài),如果完全對(duì)齊,那么除去少量的數(shù)值誤差,得到對(duì)齊結(jié)果秩應(yīng)該為1,但通過PCA取少量的前NB個(gè)主成份,無法滿足這樣的要求;如果一定要使用PCA達(dá)到如下效果,有兩種可能的方案;第一種,只能在迭代開始時(shí),設(shè)置NB為一個(gè)非常大的值,然后隨著迭代次數(shù)增多,慢慢將NB減少,但這樣做會(huì)存在迭代次數(shù)多,計(jì)算量大的問題,而且當(dāng)減少速度過快時(shí),也可能被困于局部次優(yōu);第二種,在源序列中選定一個(gè)參考幀,計(jì)算其他幀到參考幀的剛性變換,并作為初始化結(jié)果;但這種方法存在潛在的問題,由于我們無法預(yù)先知道某個(gè)參考幀的姿態(tài)就是使得能量(5)獲得局部最優(yōu)的姿態(tài),當(dāng)采用選定某幀作為目標(biāo)姿態(tài)時(shí),無形中限制了解空間的范圍;

調(diào)整項(xiàng)包含所有姿態(tài)的兩兩相互合,其計(jì)算量較大;為了簡(jiǎn)化計(jì)算,我們利用平均姿態(tài)約束來進(jìn)一步松弛公式(5),其形式化描述如下:

其中,NB是用戶指定的參數(shù),用以控制矩陣A的秩;在我們的實(shí)驗(yàn)中,總是將NB設(shè)為PCA基的個(gè)數(shù);最小化能量(6)的方法與最小化能量(4)的類似,依然采用塊坐標(biāo)下降法迭代求解與A;

3)主成份分析

對(duì)對(duì)齊后的形狀序列矩陣進(jìn)行主成份分析,計(jì)算對(duì)應(yīng)的主成份方向和混合系數(shù);在這個(gè)階段,我們處理的數(shù)據(jù)不再是軌跡本身,而是每條頂點(diǎn)軌跡相對(duì)于平均網(wǎng)格的偏移軌跡;

將對(duì)齊后的網(wǎng)格序列減去平均姿態(tài),得到每個(gè)頂點(diǎn)相對(duì)平均姿態(tài)對(duì)應(yīng)頂點(diǎn)的偏移量;我們可以采用類似P的組織方式,將上述的偏移量組合為一個(gè)新的殘差矩陣,即我們尋找NB個(gè)主成(每個(gè)行向量構(gòu)成一個(gè)主成份),使得下面的公式成立:

D=CΦ, (7)

其中,是PCA的混合系數(shù)所構(gòu)成的矩陣;

4)預(yù)測(cè)與量化

對(duì)上述步驟產(chǎn)生的數(shù)據(jù)進(jìn)行進(jìn)一步的預(yù)測(cè)和量化,目標(biāo)是獲得剛性變換的預(yù)測(cè)結(jié)果通過混合預(yù)測(cè)器得到PCA系數(shù)矩陣與錨點(diǎn)矩陣Y,周期檢測(cè)后得到的PCA基與稀疏矩陣H,以及平均姿態(tài)網(wǎng)格數(shù)據(jù)這個(gè)階段主要利用網(wǎng)格自身的幾何信息以及運(yùn)動(dòng)時(shí)的連貫性來預(yù)測(cè)既得數(shù)據(jù),從而得到與既得數(shù)據(jù)非常接近的預(yù)測(cè)數(shù)據(jù);其后,我們保存的是預(yù)測(cè)數(shù)據(jù)及其與既得數(shù)據(jù)之間的殘差;殘差一般是用過浮點(diǎn)數(shù)來表示;最終,通過算術(shù)編碼器量化浮點(diǎn)數(shù)并得到殘差的整數(shù)(近似)表達(dá),以二進(jìn)制文件的方式保存;

具體過程如下:

a)剛性變換的預(yù)測(cè)

我們考察相鄰兩個(gè)剛性塊邊界之間的相對(duì)位移,定義分別為第f幀的剛性塊Vi、Vj的邊界點(diǎn)矩陣,由邊界點(diǎn)的三維笛卡爾坐標(biāo)構(gòu)成;假設(shè)現(xiàn)在我們已重構(gòu)了前面的一些幀,并且第f幀的剛性快Vi的所有頂點(diǎn)位置已重構(gòu),即(近似地)恢復(fù)至原始時(shí)的位置(包括),現(xiàn)在須要估計(jì)第f幀的剛性塊Vj所對(duì)應(yīng)的變換;該估計(jì)由兩個(gè)變換插值得到,而這兩個(gè)變換分別是:第f幀前k幀的剛性變換以及前1幀Vi與Vj的相對(duì)位置關(guān)系;具體如下式:

其中,分別是COBRA的預(yù)測(cè)函數(shù),即當(dāng)前時(shí)刻變換參數(shù)可以使用前k幀(時(shí)刻)的對(duì)應(yīng)變換參數(shù)來預(yù)測(cè);k的取值視乎預(yù)測(cè)函數(shù)的階數(shù),當(dāng)k=1時(shí),使用前1幀變換參數(shù)的值;當(dāng)k=2,使用前1幀變換參數(shù)的速度(由前2幀的參數(shù)差分得到);當(dāng)k=3時(shí),使用前1幀變換參數(shù)的加速度(由前3幀的參數(shù)二次差分得到),依此類推;(對(duì)應(yīng)旋轉(zhuǎn)矩陣)與分別由公式(9)得到:

<mrow> <mo>(</mo> <msubsup> <mover> <mi>q</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>min</mi> </mrow> <mrow> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>t</mi> <mi>j</mi> <mi>f</mi> </msubsup> </mrow> </munder> <mo>|</mo> <mo>|</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>j</mi> <mrow> <mi>f</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>j</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mover> <mi>t</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msubsup> <mover> <mi>R</mi> <mo>^</mo> </mover> <mi>j</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <mi>I</mi> <mo>,</mo> </mrow>

<mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>)</mo> <mo>=</mo> <munder> <mrow> <mi>arg</mi> <mi>min</mi> </mrow> <mrow> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>,</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> </mrow> </munder> <mo>|</mo> <mo>|</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msubsup> <mi>b</mi> <mi>i</mi> <mrow> <mi>f</mi> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <mo>+</mo> <msubsup> <mi>s</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>-</mo> <msubsup> <mi>b</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <msup> <mrow> <mo>(</mo> <msubsup> <mi>G</mi> <mi>i</mi> <mi>f</mi> </msubsup> <mo>)</mo> </mrow> <mi>T</mi> </msup> <mo>=</mo> <mi>I</mi> <mo>.</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

在公式(9)中,和代表從到的剛性變換,并將該變換作用至中,目的是將和的相對(duì)位置關(guān)系“遷移”至與之間;公式(8)中的參數(shù)并不是常數(shù),而是視預(yù)測(cè)結(jié)果(由公式(8)得到)與真實(shí)變換之間的偏離程度而定;具體來說,根據(jù)偏離程度修正自身,分別使得與盡可能接近與修正后的兩個(gè)參數(shù)參與下一幀的預(yù)測(cè);兩個(gè)參數(shù)在第一幀的初始值都設(shè)為1;通過剛性變換預(yù)測(cè)得到的殘差記為

b)PCA系數(shù)矩陣與錨點(diǎn)矩陣Y

我們需要對(duì)PCA混合系數(shù)矩陣C進(jìn)行預(yù)測(cè);為了達(dá)到更高的壓縮率,我們?cè)O(shè)計(jì)一種混合了多種矩陣、具有拉普拉斯矩陣相似結(jié)構(gòu)的混合預(yù)測(cè)器L;

矩陣L由余切拉普拉斯矩陣、均值拉普拉斯矩陣與最優(yōu)權(quán)重矩陣三者混合而成;前兩種矩陣在可以參考其他資料,這里只介紹最優(yōu)權(quán)重矩陣的構(gòu)造;具體地,對(duì)平均姿態(tài)模型的每個(gè)頂點(diǎn),我們最小化以下能量:

其中,γ是調(diào)整系數(shù),用于調(diào)整數(shù)據(jù)項(xiàng)和最優(yōu)化權(quán)重ωij的范數(shù),硬約束使權(quán)重具有仿射不變性,即平均網(wǎng)格的第i個(gè)頂點(diǎn)及其一鄰域進(jìn)行了仿射變換,相關(guān)的ωij不變;一般情況下,當(dāng)所有的ωij求解完畢,得到一個(gè)具有與經(jīng)典拉普拉斯矩陣結(jié)構(gòu)相同、但非零項(xiàng)取值不同的最優(yōu)化權(quán)重矩陣;由于最小化過程在平均姿態(tài)網(wǎng)格上執(zhí)行,當(dāng)待預(yù)測(cè)數(shù)據(jù)的分布恰好與平均姿態(tài)網(wǎng)格頂點(diǎn)位置的分布相同時(shí),預(yù)測(cè)才會(huì)與真實(shí)數(shù)據(jù)相同,因此稱ωij為(估計(jì)平均姿態(tài)網(wǎng)格的)最優(yōu)化權(quán)重;但一般情況下,這是不可能的,因此,預(yù)測(cè)的準(zhǔn)確程度與待預(yù)測(cè)數(shù)據(jù)的分布與平均姿態(tài)網(wǎng)格頂點(diǎn)位置的分布的相似程度有關(guān);在實(shí)際應(yīng)用中,我們只用一部分最優(yōu)化權(quán)重矩陣的行向量來填充混合預(yù)測(cè)矩陣,而后者所剩下的行則由經(jīng)典拉普拉斯矩陣的對(duì)應(yīng)行來填充;

混合方法包括兩步;首先,分別使用余切拉普拉斯矩陣、均值拉普拉斯矩陣與最優(yōu)權(quán)重矩陣作用至PCA的混合系數(shù)矩陣C(此操作可參看公式(1)),得到三個(gè)新的微分系數(shù)矩陣;混合矩陣L的計(jì)算如下:分別計(jì)算每一個(gè)微分系數(shù)矩陣第i行的l2范數(shù),取能夠產(chǎn)生最小范數(shù)的預(yù)測(cè)矩陣的第i行作為L(zhǎng)的第i行元素;采用上述的混合方法,其目的在于將L作用到C之后,使得到的微分系數(shù)矩陣的Frobenius范數(shù)盡可能最小

定義微分系數(shù)矩陣錨點(diǎn)矩陣的第i行Yi來源于C的某一行;錨點(diǎn)的數(shù)量NA和選擇方法可參考Sorkine等人的工作;

c)周期檢測(cè)后得到的PCA基與稀疏矩陣H

周期檢測(cè)的稀疏編碼的形式化描述如下:

minH||ΨH-Ψ||2+η||H||1 (11)其中,的每一列由Φ的每一列歸一化所得,即每一列除以該列的模長(zhǎng);H是一個(gè)稀疏方陣,η則是權(quán)重調(diào)節(jié)系數(shù),在我們的實(shí)驗(yàn)中取值固定為0.01;歸一化Φ能夠排除模長(zhǎng)對(duì)稀疏性的影響;一方面,當(dāng)Φ存在兩個(gè)具有相同朝向但長(zhǎng)度不同的列向量時(shí),可以認(rèn)為兩者依然具有相同運(yùn)動(dòng)模式,只是振幅不同;另一方面,某個(gè)列向量有可能由單個(gè)其他列向量表示,也可能由其他若干個(gè)列向量混合表示,如果第一種情況得到的系數(shù)絕對(duì)值大于第二種情況的系數(shù)絕對(duì)值的總和,那么最小化能量(11)將得到稠密解,而歸一化能避免出現(xiàn)這種情況;

最小化能量(11)是經(jīng)典的LASSO問題,由于H的規(guī)模較小,可以通過內(nèi)點(diǎn)法來求解;若H的第i列只有一個(gè)非零值1,且該值位于第i行,則表明不存在與Φ的第i列相同的其它列向量;若多于一個(gè)非零值,則表明可能存在相同列,這時(shí)須要判斷非零值的行索引在H中對(duì)應(yīng)的各列是否相同;當(dāng)兩個(gè)列向量夾角小于給定閾值的時(shí)候,認(rèn)為它們相同;獲得重復(fù)模式后,我們可以削減Φ的部分列向量,得到 3NK是沒有重復(fù)模式的軌跡長(zhǎng)度;注意,隨著閾值增大,NK會(huì)減少,但重建誤差也會(huì)增大;另外,即使在閾值很小的情況下,并不總能保證任意動(dòng)畫序列都能找到重復(fù)模式;最后,我們采用COBRA算法來漸進(jìn)式地預(yù)測(cè)和量化中的浮點(diǎn)數(shù);

d)平均姿態(tài)網(wǎng)格數(shù)據(jù)

平均網(wǎng)格采用現(xiàn)有的靜態(tài)網(wǎng)格壓縮方法,主要分為兩部分:頂點(diǎn)的連結(jié)關(guān)系壓縮和頂點(diǎn)的幾何位置壓縮;前者使用基于頂點(diǎn)價(jià)驅(qū)動(dòng)的連接關(guān)系壓縮算法;后者采用網(wǎng)格高通濾波來完成;

5)解壓與重構(gòu)

解壓端將利用保存好的整數(shù)數(shù)據(jù),包括PCA基、PCA混合系數(shù)以及錨點(diǎn);

解碼平均姿態(tài)模型后,計(jì)算得到混合預(yù)測(cè)矩陣我們通過求解泊松方程(Poisson's equation)來重構(gòu)系數(shù)矩陣具體地,給定混合矩陣微分系數(shù)矩陣以及錨點(diǎn)矩陣我們希望找到使得其微分坐標(biāo)盡可能與相等;注意到不滿秩,其零向量空間(Null space)的維度等于網(wǎng)格的連通分量個(gè)數(shù),對(duì)于封閉網(wǎng)格,至少需要一個(gè)已知頂點(diǎn)作為邊界條件,泊松方程才有唯一解;在實(shí)際應(yīng)用中,泊松重構(gòu)的穩(wěn)定性受邊界條件影響,一般須要選擇多個(gè)錨點(diǎn)共同構(gòu)成邊界條件,因此,PCA系數(shù)矩陣的泊松重構(gòu)可描述為如下優(yōu)化問題:

<mrow> <munder> <mi>min</mi> <mover> <mi>C</mi> <mo>&OverBar;</mo> </mover> </munder> <mo>|</mo> <mo>|</mo> <mover> <mi>L</mi> <mo>~</mo> </mover> <mover> <mi>C</mi> <mo>~</mo> </mover> <mo>-</mo> <mover> <mover> <mi>C</mi> <mo>^</mo> </mover> <mo>~</mo> </mover> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>+</mo> <mi>&lambda;</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>A</mi> </msub> </munderover> <mo>|</mo> <mo>|</mo> <msub> <mover> <mi>Y</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mo>-</mo> <msub> <mover> <mi>C</mi> <mo>~</mo> </mover> <mi>i</mi> </msub> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>,</mo> <mi>s</mi> <mo>.</mo> <mi>t</mi> <mo>.</mo> <mi>&lambda;</mi> <mo>&gt;</mo> <mn>0</mn> <mo>,</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>

其中,λ是控制邊界條件約束程度的系數(shù);優(yōu)化上述能量等價(jià)于求解線性方程組:

<mrow> <msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mi>T</mi> </msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mover> <mi>C</mi> <mo>~</mo> </mover> <mo>=</mo> <msup> <mover> <mi>U</mi> <mo>~</mo> </mover> <mi>T</mi> </msup> <mover> <mi>V</mi> <mo>~</mo> </mover> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>

和分別是對(duì)和的增廣;增廣方法是:對(duì)于在其最后一行后插入如下矩陣

對(duì)于則將添加至的末尾;λ設(shè)置為100;

綜上所述,在采用以上方案后,本發(fā)明提出了一種新的、基于低秩頂點(diǎn)軌跡子空間提取的動(dòng)畫網(wǎng)格序列壓縮算法,使得通過剛性變換后的頂點(diǎn)軌跡位于維度更低的子空間中,提高壓縮率。本動(dòng)畫網(wǎng)格序列壓縮算法的技術(shù)特點(diǎn)在于:

a)基于對(duì)大多數(shù)物體形狀在運(yùn)動(dòng)過程中一般表現(xiàn)出近似分塊剛性的特點(diǎn),我們考慮了不同剛性塊的不同運(yùn)動(dòng)對(duì)整個(gè)網(wǎng)格上所有頂點(diǎn)軌跡線性相關(guān)性的影響,通過使剛性變換后的頂點(diǎn)軌跡位于維度更低的子空間中,從而提高壓縮率。

b)首先根據(jù)運(yùn)動(dòng)序列的運(yùn)動(dòng)方式對(duì)物體進(jìn)行分割并據(jù)此估計(jì)從而使變換后的頂點(diǎn)軌跡位于低秩子空間上;接著,計(jì)算對(duì)齊后序列的平均網(wǎng)格,繼而求出每幀的頂點(diǎn)相對(duì)于平均網(wǎng)格對(duì)應(yīng)頂點(diǎn)的偏移,將每幀每頂點(diǎn)的偏移按照M的方式來排列,得到偏移軌跡矩陣并對(duì)其進(jìn)行PCA;然后,為了進(jìn)一步減少PCA混合系數(shù)的存儲(chǔ)量,設(shè)計(jì)了一個(gè)基于混合拉普拉斯矩陣的線性預(yù)測(cè)器;

本實(shí)驗(yàn)經(jīng)過實(shí)驗(yàn)驗(yàn)證其可行性,能廣泛用于各種網(wǎng)格序列的壓縮。實(shí)驗(yàn)測(cè)試的各類模型如圖6所示(其中Humanoid模型剛性程度最高,即使在關(guān)節(jié)處變形也不明顯;Horse模型到Squat2模型的剛性程度較低,關(guān)節(jié)處有比較明顯的變形,除此之外,其他區(qū)域基本為剛性運(yùn)動(dòng);CowHeavy非剛性程度比較明顯的數(shù)據(jù),基本上不存在嚴(yán)格意義上的剛性塊),實(shí)驗(yàn)結(jié)果如圖7所示(圖7中列出了沒有采用剛性塊對(duì)齊與采用剛性對(duì)齊兩種策略的碼率與質(zhì)量比較,扭曲采用STED算法來評(píng)估,碼率則是每幀每個(gè)頂點(diǎn)的比特率;Humanoid模型剛性程度最高,即使在關(guān)節(jié)處變形也不明顯;Horse模型到Squat2模型的剛性程度較低,關(guān)節(jié)處有比較明顯的變形,除此之外,其他區(qū)域基本為剛性運(yùn)動(dòng);CowHeavy非剛性程度比較明顯的數(shù)據(jù),基本上不存在嚴(yán)格意義上的剛性塊;列出了上述例子采用不同策略時(shí)的碼率和STED扭曲值,其中包含我們壓縮算法結(jié)果以及通過實(shí)現(xiàn)文獻(xiàn)等人的算法所得的結(jié)果;沒有采用剛性塊對(duì)齊策略、采用剛性塊策略以及文獻(xiàn)等人算法的比較結(jié)果顯示,我們的算法對(duì)剛性運(yùn)動(dòng)比較明顯的形狀序列壓縮效果較好;在圖7中間三個(gè)例子中,本文算法性能與文獻(xiàn)等人的互有優(yōu)劣,但不明顯;而在最后一個(gè)例子中,我們的算法有微弱優(yōu)勢(shì);),我們的方法混合拉普拉斯(有對(duì)齊)對(duì)剛性運(yùn)動(dòng)比較明顯的形狀序列壓縮效果較好,對(duì)于具有剛性運(yùn)動(dòng)特征的物體,能達(dá)到非常高的壓縮率(碼率越低越好),而且扭曲也比其他方法小。而對(duì)于表面小尺度范圍充滿非剛性運(yùn)動(dòng)的物體,在集成了局部微分坐標(biāo)剛性變換預(yù)測(cè)器后,也能得到接近于等人的結(jié)果。從結(jié)果可以看出,本發(fā)明具有壓縮效率高,扭曲變形小,魯棒性強(qiáng)的特點(diǎn),在處理大尺度剛性變換時(shí)更有優(yōu)勢(shì)。

圖8展示每個(gè)例子在壓縮應(yīng)用的各個(gè)階段的運(yùn)行時(shí)間,全部數(shù)據(jù)均是單幀在不同處理階段的平均耗時(shí),時(shí)間的單位是毫秒;注意到剛性運(yùn)動(dòng)分析、聚類和解碼過程并不耗時(shí),相比之下,編碼時(shí)間的影響最為嚴(yán)重;另外,編碼階段包含了若干子過程,其中的低秩對(duì)齊是個(gè)中計(jì)算量最大的子過程,這是由于每次迭代需要對(duì)整個(gè)數(shù)據(jù)矩陣進(jìn)行SVD以及分塊剛性矩陣變換擬合,而且需要比較多次的迭代才能收斂到理想的程度。

如圖9所示,剛性塊的數(shù)目對(duì)網(wǎng)格序列重建精度有影響,但并非顯著;圖9能量一列中,括號(hào)外的數(shù)據(jù)是沒有對(duì)齊前的能量,括號(hào)中的數(shù)字是對(duì)齊后的能量;扭曲一列采用STED評(píng)估;最后一列是壓縮碼率;以Squat2序列為例,隨著剛性塊數(shù)從5到40增加,STED誤差會(huì)依次下降,當(dāng)塊數(shù)超過20時(shí),STED誤差下降不明顯;可見,單純?cè)黾觿傂詨K的數(shù)目對(duì)改善誤差的作用有限,尤其在運(yùn)動(dòng)物體局部細(xì)節(jié)變化不明顯的情況下,過多的剛性塊不僅對(duì)改善網(wǎng)格質(zhì)量沒有幫助,反而令到碼率出現(xiàn)上升,減低壓縮性能。

以上所述之實(shí)施例子只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1