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》
新聞熱點
疑難解答