明新科技大學 校內專題研究計畫成果報告
3D 動畫模型之幾何壓縮
Geometric Compression for 3D Animation Models
中文摘要
3D 物件壓縮的主要目的在於降低 3D 模型之儲存成本,一個 3D 動畫模型往往是由 許許多多的 3D 靜態模型來加以組成,因此,為了呈現出真實的動畫模型,我們通常需 要許多的三角片資訊。大量的三角片資訊雖然可以較為真實地呈現出該 3D 模型,然而, 也相對地增加了較高的儲存成本,為了降低高儲存的成本,我們通常會利用漸進式壓縮 來減少描述該模型所需之三角片量,但相對地隨著三角片資訊的減少,當然也會造成失 真的情形,為了在這兩者之間取得平衡,本計畫提出了 Temporal Discrete Shape Operator (TDSO)概念,利用 TDSO 來減少描述 3D 動畫模型所需的三角片量,並適度地減緩壓縮 所造成的失真現象。在本計畫中,我們進行相關的研究實驗,並與在壓縮領域上極為著 名之 Principal Component Analysis(PCA)方法進行比較,驗證本計畫所提出壓縮法之優越 性,另外,在失真的測量上本計畫則以 Root Mean Square(RMS)來進行量化比較。經過 比較實驗後可知,本計畫所提出之 TDSO 方法較 PCA 更能在壓縮的過程中減緩失真的 情形。Abstract
The goal of 3D object compression is to reduce the storage cost of 3D models. A 3D animation model comprises many 3D static models. Hence, in order to display a realistic animation model, many triangles are required. However, the higher storage-cost models have higher computational costs. Progressive compression is exploited to reduce the storage cost and computational cost of 3D models. However, progressive compression easily leads to the distortion of the 3D models. This study proposes a feature-sensitive progressive compression method to compress the 3D models. This method uses the temporal discrete shape operator (TDSO) to analyze the animated surface variations. It can reduce the number of triangles in the 3D animation models, and simultaneously it does not increase the distortion caused by compression. Experimentally, this study compares root mean square (RMS) errors in this method with those of the principal component analysis (PCA) compression method. Experimental results show that our approach can preserve more contour features than the PCA approach at the same compression ratio.
目錄
中文摘要... II Abstract... III 目錄... IV 圖目錄... V 表目錄...VII 第一章 簡介...1 第二章 主成分分析壓縮法 ...3第三章 Temporal Discrete Shape Operator ...12
第四章 實作結果與分析 ...17
第五章 結論與未來之展望 ...24
圖目錄
圖 1、主成分分析法涵蓋率示意圖...5 圖 2、主成分分析利用SVD進行主成分萃取之示意圖...7 圖 3、SVD分解示意圖...8 圖 4、主成分分析壓縮法在不同基底數的壓縮效果...9 圖 5、主成分分析法壓縮後所造成的變形現象...11 圖 6、Shape Operator示意圖...12 圖 7、估計點p的Shape Operator之示意圖...13圖 8、利用Discrete Shape Operator分析模型表面的結果...14
圖 9、Discrete Shape Operator在 3D camel動畫序列之不同影格模型上的變化...15
圖 10、利用Temporal Discrete Shape Operator萃取 3D動畫序列中高運動量的部位...16
圖 11、針對 camel之 3D動畫序列進行主成分分析法以及TDSO法進行壓縮的比較圖。 在主成分分析法方面,本計畫針對 3 bases、5 bases以及 7 bases分別進行失真誤 差量測並比較。...18
圖 12、針對 camel之 3D動畫序列進行主成分分析法進行壓縮後的結果。...19
圖 12、針對 camel之 3D動畫序列進行TDSO進行壓縮後的結果(壓縮到僅具 30%的資料 量)。...19
圖 14、針對 cat之 3D動畫序列進行主成分分析法以及TDSO法進行壓縮的比較圖。在主 成分分析法方面,本計畫針對 3 bases、5 bases以及 7 bases分別進行失真誤差量 測並比較。...20
主成分分析法方面,本計畫針對 3 bases、5 bases以及 7 bases分別進行失真誤差 量測並比較。...22 圖 15、針對 horse之 3D動畫序列進行TDSO進行壓縮後的結果(壓縮到僅具 30%的資料
表目錄
表 1、TDSO與PCA壓縮方法的壓縮效果比較(camel 模型之 3D動畫序列)...17
表 2、TDSO與PCA壓縮方法的壓縮效果比較(cat 模型之 3D動畫序列)...20
表 3、TDSO與PCA壓縮方法的壓縮效果比較(horse 模型之 3D動畫序列)...21
還原原本的 3D 模型資訊,此類壓縮技術雖可完全還原原本的 3D 模型資訊,但是其壓 縮率也會因此而大打折扣。而所謂的失真壓縮技術則是在可忍受的誤差範圍內進行資訊 壓縮,此類方法會造成失真的情形發生,但也因此可以盡可能地提高壓縮比例,降低描 述 3D 模型的資料量。而本計畫之研究主要是定位在後者。
圖 1、主成分分析法涵蓋率示意圖
當所選擇的主成份過多,其所展出的範圍越廣,其代表性的能力就愈高, 但其資料壓縮的效果就越差,當所選擇的主成分量與原資料欄位一樣多時,相 當於完全不壓縮,從 3D 動畫模型壓縮的角度來看,亦即每一個影格模型皆為 特徵模型;相反地,如果選擇的主成份量太少,其壓縮率雖高,但通常會發生 代表性不足,導致壓縮失真的結果。所選擇出來的主成份亦稱為基底(base), 亦即為欲表達原始資料的欄位個數。透過奇異值分解後所產生的特徵值會由大 到小排列,而這些特徵值表示該相對主成分之代表性的強度。 主成分分析可壓縮資料量,但仍有其限制: 1. 主成份分析非單位不變量。 2. 若原始資料中各欄位變數間的相依性較低時,主成分分析的效果將會比較差。 3. 主成份的奇異值分解需要龐大的計算量,且會隨著矩陣資料量的增加而急速升 高。 Alexa 和 Müller 在 2000 年提出以主成份分析為基礎來對 3D 動畫進行壓縮的方法。 此方法首先對所有的影格進行分析,找到一個影格模型(Frame Model)B1,使得 B1滿足
其對所有影格模型之均方根誤差(Mean Square Error)為最小,而 B1即為第一個參考影格
中 n 為影格模型上之頂點個數,k 為基底個數;若基底為全部影格,則 k 將以 f 取代。VT 為 k*f 的矩陣,表示相對應奇異值的影格資訊,由下圖可看到雞動畫序列進行 SVD 分解 的結果,換句話說,此方法可以藉由減少基底的數量來求出近似原始的動畫。主成分分 析在數學上的意涵為減少維度量,針對原始資料(維度為 N)的線性空間,找出維度為 k 的子空間 ( k≦N ),利用此 k 個基底向量作線性組合以期能近似原始資料。換句話說, 以主成分分析為主的 3D 動畫研究目的在找出特徵值較大的 k 個主要成分,根據 Ax=λx 來近似原始資料,以期達到降低資料量與保持誤差的目的。 A = B * S * V T 圖 2、主成分分析利用 SVD 進行主成分萃取之示意圖 表示為 M1、M2、…、MN,且每個 Mi 都有 m 個
、M2、…、MN之點座標矩陣 a1、a2、…、aN ,並將之描述為資料矩陣 A,
如下
換句話說,我們可以將 Principal Component Analysis 如何被使用來進行 3D 動 畫壓縮的程序,細列下列數個步驟。假設欲進行 Principal Component Analysis 之 3D 動畫模型有 N 個影格模型(Frame Model),
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ = A L L ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ a1 a2 aN 其中, 為影格模型 Mi之頂點矩陣,而 ai矩陣中(xi,1,
yi,1, zi,1)、(xi,2, yi,2, zi,2)、…、(xi,m, yi,m, zi,m)為 Mi 模型上的 m 個頂點
(a) 原始模型的外表
(b) 經過主成分分析法進行壓縮後的效果
第三章 Temporal Discrete Shape Operator
定義二:Shape Operator 假設 p 是一表面 M 上的點,對表面 M 上點 p 的每一個切線向量 v,定義點 p 在該 切線向量 v 上之 Shape Operator Sp為 U v Sp( )=−∇v其中,U 為表面 M 上在點 p 鄰近區域之 Normal Vector Field Sp為在表面M 上點 p 針對 U 微分所導出之 Shape Operator
圖 6、Shape Operator 示意圖
根據定義二,我們知道 Shape Operator 為點 p 在表面 M 上對 Normal Vector Field 在
體 Shape Operator 值 DSO(p),我們將此稱為 Discrete Shape Operator,其意涵為利用離散 的概念來估計連續型的 Surface Shape Operator 值。
∑
∑
⋅ = i i i i p i S t pp pp p DSO( ) ( ) 圖 7、估計點 p 的 Shape Operator 之示意圖圖 9、Discrete Shape Operator 在 3D camel 動畫序列之不同影格模型上的變化
以一運動中的 camel 模型為例,連接身體的大腿部位通常有較大的運動變化,如圖 所示,我們計算兩個不同影格的 camel 模型上個別的 Discrete Shape Operator 值,因此可 以確認這兩個模型在連接身體的大腿部位有著顯著不同的 Discrete Shape Operator 值, 為了觀察並記錄整個動畫模型的外型變化,本計畫針對動畫模型上每一個頂點在該動畫 序列上的 Discrete Shape Operator 值的變化進行計算,而這便是本研究計劃所提出之 Temporal Discrete Shape Operator (TDSO)。
本計劃所提出的壓縮方法包含兩個主要的步驟,首先,是針對 3D 動畫模型中的每 一個影格模型進行 Discrete Shape Operator 的計算,透過 Discrete Shape Operator 的計算, 我們可以辨別出哪些區域是特徵區域(Feature Regions),而哪一些是平坦的表面;第二個 步驟是以第一步驟中計算所得之 Discrete Shape Operator 做為輸入值,並進一步利用下 式估計出 Temporal Discrete Shape Operator 值。
(
)
N
DSO
DSO
j i j i i∑
−
=
2 ,σ
其中,DSOi,j表示頂點i 在影格 j 之 DSO 值
i
N 表示該動畫序列之影格總數
由於σi表示在動畫序列中頂點 i 的 Discrete Shape Operator 值的變化,因此,本計
劃利用上式來量測動畫模型中每一個端點的外形變化程度,如下圖所示,綠色區域表示 該點所在鄰近區域在運動過程中幾乎沒有變化,而紅色區域則表示該點所在鄰近區域在 整個運動過程中有很大的變化,而這些紅色區域也正是在運動過程中需要較多的三角片 來加以描述的部位,為了在運動的過程中避免嚴重的失真,本研究利用 Temporal Discrete Shape Operator 在物體壓縮的過程中有效保留紅色區域(包括 camel 模型的眼睛、耳朵、 腳部以及尾巴等)所需之三角片數量,如圖所示。
圖 10、利用 Temporal Discrete Shape Operator 萃取 3D 動畫序列中高運動量的部位
根據 Temporal Discrete Shape Operator 的概念,本計劃所提出壓縮演算法包括下列 八個主要的步驟:
1. 對 3D 動畫模型上的每一個頂點 i 計算其 TDSO 值 σi
Error Metric) Qm,i
3. 計算每一的頂點之總和二次誤差矩陣(Summed Quadric Error Metric)
∑
⋅ σ = m i m i i Q Q , 4. 針對每一個點對(Vertex Pair)計算其最小誤差值 5. 從步驟 4 中取出最小誤差的點對(p, q) 6. 對(p, q)進行壓縮,並計算其壓縮後的新點 r,其中,Qr=(Qp+Qq) 7. 更新在動畫模型上所有與頂點 p 或頂點 q 相鄰的資訊 8. 重複上述步驟,直到壓縮到所需的三角片數第四章 實作結果與分析
為了驗證本計劃所提出的壓縮方法,在本實驗中我們利用了三種最為人所熟知的 實驗模型,包括 camel 動畫模型、cat 動畫模型以及 horse 動畫模型。每一個動畫模型我 們都取 10 個影格模型來進行實驗分析。而 Principal Component Analysis 壓縮法則各取出 3 bases、5 bases、7 bases 來進行實驗比較。為了比較其誤差,本研究利用 Root Mean Square 來計算其壓縮後之誤差值。而在 Temporal Discrete Shape Operator 方面,由於 Principal Component Analysis 的 3 bases 壓縮大約會將原動畫模型壓縮至 30%的資料量,因此,為 了在相同的基準點上進行比較,本實驗也利用 Temporal Discrete Shape Operator 壓縮法 將原模型壓縮至 30%的資料量,以便進行實驗比較。在 camel 動畫模型的壓縮實驗上,隨著 base 數的增加,Principal Component Analysis 的壓縮方法可以逐漸壓低其因壓縮所造成的誤差,然而,不管是利用 3 bases、5 bases、 7 bases 的方式來進行壓縮,從實驗數據上可見,Temporal Discrete Shape Operator 的做 法,在 camel 動畫模型的壓縮誤差上,皆顯然優於 Principal Component Analysis 的方法。
表 1、TDSO 與 PCA 壓縮方法的壓縮效果比較(camel 模型之 3D 動畫序列)
3bases 5 bases 7 bases Frame 1 0.020743 0.00806 0.003417 0.000099 Frame 2 0.019758 0.012951 0.005361 0.000098 Frame 3 0.040032 0.010825 0.002335 0.000098 Frame 4 0.034024 0.009191 0.007562 0.000098 Frame 5 0.018471 0.013091 0.006297 0.000097 Frame 6 0.015367 0.011362 0.007009 0.000098 Frame 7 0.023072 0.00977 0.004604 0.000098 Frame 8 0.029845 0.017402 0.004257 0.000098 Frame 9 0.018192 0.009868 0.003891 0.000098 Frame 10 0.025487 0.011105 0.005573 0.000097 圖 11、針對 camel 之 3D 動畫序列進行主成分分析法以及 TDSO 法進行壓縮的比較圖。 在主成分分析法方面,本計畫針對 3 bases、5 bases 以及 7 bases 分別進行失真誤差量測
(a) camel 在其 3D 動畫序列中原始模型 (b) 經過主成分分析法進行壓縮後的 camel 動畫序列 (以 3 個基底來進行壓縮) (c) 經過主成分分析法進行壓縮後的 camel 動畫序列 (以 7 個基底來進行壓縮) 圖 12、針對 camel 之 3D 動畫序列進行主成分分析法進行壓縮後的結果。 圖 13、針對 camel 之 3D 動畫序列進行 TDSO 進行壓縮後的結果(壓縮到僅具 30%的資 料量)。
表 2、TDSO 與 PCA 壓縮方法的壓縮效果比較(cat 模型之 3D 動畫序列) PCA
Frame No.
3bases 5 bases 7 bases
TDSO Frame 1 0.016324 0.014296 0.004148 0.00017 Frame 2 0.010959 0.007277 0.004778 0.000161 Frame 3 0.027015 0.008848 0.004969 0.000152 Frame 4 0.022716 0.006103 0.004988 0.000175 Frame 5 0.018957 0.011378 0.003606 0.000154 Frame 6 0.016615 0.010688 0.00484 0.000154 Frame 7 0.018996 0.01056 0.003832 0.000177 Frame 8 0.010905 0.010486 0.006502 0.000168 Frame 9 0.016875 0.011556 0.00443 0.000173 Frame 10 0.01243 0.010447 0.010074 0.000143 圖 14、針對 cat 之 3D 動畫序列進行主成分分析法以及 TDSO 法進行壓縮的比較圖。在 主成分分析法方面,本計畫針對 3 bases、5 bases 以及 7 bases 分別進行失真誤差量測並
(a) cat 在其 3D 動畫序列中原始模型
(b)利用 TDSO 壓縮後的結果
圖 15、針對 cat 之 3D 動畫序列進行 TDSO 進行壓縮後的結果(壓縮到僅具 30%的資料 量)。
在 horse 動畫模型的壓縮實驗上,隨著 base 數的增加,Principal Component Analysis 的壓縮方法可以逐漸壓低其因壓縮所造成的誤差,然而,不管是利用 3 bases、5 bases、 7 bases 的方式來進行壓縮,從實驗數據上可見,Temporal Discrete Shape Operator 的做 法,在 horse 動畫模型的壓縮誤差上,皆顯然優於 Principal Component Analysis 的方法。
表 3、TDSO 與 PCA 壓縮方法的壓縮效果比較(horse 模型之 3D 動畫序列) PCA
Frame No.
3bases 5 bases 7 bases
Frame 6 0.004997 0.003218 0.001042 0.000283 Frame 7 0.005249 0.002917 0.001122 0.000276 Frame 8 0.004175 0.003257 0.00155 0.000267 Frame 9 0.004499 0.002861 0.00207 0.000273 Frame 10 0.004766 0.003599 0.001432 0.000273 圖 16、針對 horse 之 3D 動畫序列進行主成分分析法以及 TDSO 法進行壓縮的比較圖。 在主成分分析法方面,本計畫針對 3 bases、5 bases 以及 7 bases 分別進行失真誤差量測
並比較。
(b)利用 TDSO 壓縮後的結果
圖 17、針對 horse 之 3D 動畫序列進行 TDSO 進行壓縮後的結果(壓縮到僅具 30%的資 料量)。
表 4、TDSO 的壓縮失真改善程度(對 camel、cat、horse 模型之 3D 動畫序列)
Model PCA TDSO Improved Ratio
第五章 結論與未來之展望
主成分分析壓縮法是目前最知名的 3D 動畫模型壓縮方法之一,此方法利用 SVD 分解分析出各主成分基底,透過選擇部分主成分基底來描述原 3D 動畫序列,然而此方 法卻有幾個難以解決的問題,包括(1)少基底數的壓縮會嚴重造成壓縮後模型的變形;(2) 基底數容易造成壓縮率的限制;(3)主成分分析法偏好對多數相似影格模型的 3D 動畫序 列進行壓縮,對於動作變化劇烈的 3D 動畫序列,則表現出一籌莫展的窘況;(4)在寄宿 效能上,SVD 分解的效能完全受到模型上頂點個數的影響,當頂點個數相當多時,其所 需花費的時間成本則急速增加。 為了改善主成分分析法所發生的問題,本計劃提出了利用 TDSO 來加以壓縮的方 法,此方法針對 3D 動畫序列上每一個影格模型的每一個頂點,計算該點所在局部表面 (Local Surface)的 Shape Operator 值,透過每一個時間點影格模型上 Shape Operator 值的 變化,整合成 Temporal Discrete Shape Operator (TDSO),依據該 TDSO 值來減少 3D 動 畫序列中每一個影格模型的三角片數,藉以降低資料量的目標,達到資料壓縮的目的。參考文獻
[1] B. S. Jong, J. L. Tseng, and W. H. Yang, “An Efficient and Low-Error Mesh Simplification Method Based on Torsion Detection,” The Visual Computer, vol.22, no.1, pp.56-67, 2006.
[2] B. S. Jong, J. L. Tseng, W. H. Yang, and T. W. Lin, “Extracting Features and Simplifying Surfaces using Shape Operator,” International Conference on Information, Communications and Signal Processing pp.1025-1029, 2005.
[3] F. Payan and M. Antonini, ”Wavelet-based compression of 3d mesh sequences,” Proceedings of IEEE ACIDCA-ICMI’2005, Tozeur, Tunisia, november 2005.
[4] I. Guskov and A. Khodakovsky, “Wavelet compression of parametrically coherent mesh sequences,” Proceedings of the ACM SIGGRAPH/Eurograpgics symposium on Computer animation, 2004.
[5] J. E. Lengyel, ”Compression of time-dependent geometry,” Proceeding of ACM symposium on Interactive 3D graphics, 1999.
[6] J. H. Yang, C.S. Kim, and S.U. Lee, “Compression of 3-d triangle mesh sequences based on vertex-wise motion vector prediction,” IEEE Transactions on Circuits and Systems for Video Technology, vol.12, no.12, pp.1178–1184, December 2002.
[7] J. Zhang and C. B. Owen, “Octree-based animated geometry compression,” Proceedings of IEEE on Data Compression, pp. 508–517, 2004.
[8] L. Ibarria and J. Rossignac, “Dynapack: space-time compression of the 3d animations of triangle meshes with fixed connectivity,” ACM SIGGRAPH/ Eurographics symposium on Computer Animation, 2003.
[9] M. Alexa and W. Müller, “Representing animations by principal components,” Computer Graphics Forum, Vol.19, No.3, 2000.
[11] P. F. Lee, C. K. Kao, J. L. Tseng, B. S. Jong and T. W. Lin, ”3D Animation Compression using Affine Transformation Matrix and Principal Component Analysis,” IEICE Transactions on Information and Systems, vol.E90-D, no.7, pp.1073-1084, July 2007.
[12] R. Amjoun and W. Straßer, ”Efficient Compression of 3D Dynamic Mesh Sequences,” The 15th WSCG International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, 2007
97 年度