PCA(Principal Component Analysis,主成分分析)是模型處理中常用的一種方法,因為它能夠有效地提取出模型的主要成分和結構,一定程度上去除噪音和幹擾,因此成為了對3D模型施加其它後續操作的基本變換。由於模型的3D自由度,因而在對模型施加PCA操作時需要滿足以下幾個基本要求:平移不變性,旋轉不變性,縮放不變性。在進行PCA分析時,由於旋轉和縮放不變性比較容易實現,因而各種方法的差別主要就集中在旋轉不變性的實現上。
常用的兩種模型PCA方法有CPCA和NPCA,前一種方法基於網格模型的頂點統計屬性而得到旋轉矩陣,後一種方法基於網格模型的表面法向量統計屬性而得到旋轉矩陣。
假設模型的頂點集為V,法向量集為N。
CPCA:
1. Translation Invariance
尋找模型的質心C。質心的計算就通過模型頂點集的統計,得到三個方向上頂點的均值即為質心,平移不變性的實現即是將模型的質心向座標原點處移動至重合即可實現。
此時可得到移動後的模型為:
2. Rotation Invariance
旋轉不變性的實現主要通過統計模型的頂點,進而得到旋轉矩陣,然後對模型施加矩陣旋轉即可。首先計算影響矩陣M:
其中的A為模型網格的總面積,m為模型頂點的數量。然後求得M的3個特徵值及特徵向量,然後根據其特徵值的大小,依遞減的順序組合特徵向量即可得到旋轉矩陣RM,得到此旋轉矩陣後即可對模型進行旋轉,得到頂點及向量集為:
3. Scale Invariance
縮放不變性的實現是通過統計施加上述操作模型的頂點與質心之間的距離分布關係。
其中
Sy , Sz 與此類似。得到縮放矩後即可對模型施加縮放操作:
NPCA:
NPCA的實現在平移與縮放不變性的實現上均與CPCA相同,主要差別在於旋轉矩陣的獲得有所不同。
同樣得到影響矩陣M:
其中Ei為第i個三角面的法向量,Nl為整個模型的法向量均值。之後即與上述操作相同,求得RM之後即可施加旋轉操作。
對兩個模型施加PCA操作:
CPCA NPCA
更多內容請參見:
《Efficient 3D Shape matching and retrieval using a concrete radialized spherical projection representation》