前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >主成分分析PCA

主成分分析PCA

作者头像
NT4.4
修改2019-10-21 12:10:59
1K1
修改2019-10-21 12:10:59
举报
文章被收录于专栏:图形视觉图形视觉

原文链接

PCA简介

如图所示,这是一个二维点云,我们想找出方差最大的方向,如右图所示,这个最大方向的计算,就是PCA做的事情。在高维情况下,PCA不光可以计算出最大方差方向,还可以计算第二大,第三大方向等。

pca_0
pca_0

PCA(Principal Components Analysis),中文名也叫主成分分析。它可以按照方差大小,计算出相互正交的方向,这些方向也叫主方向。它常用于对高维数据进行降维,也就是把高维数据投影到方差大的几个主方向上,方便数据分析。

PCA的计算很简单:

  • 第一步计算数据的协方差矩阵:Cov = ∑ (Di – C) X (Di – C),其中Di是第i个数据,C是数据的平均值
  • 然后计算协方差矩阵的特征值和特征向量,特征向量就是主方向,按照特征值的大小,从大到小依次排列

下面介绍PCA的一些应用。


三维人体模型参数化

如图是一些拟合好的三维人体模型。它是通过扫描了几千个人体,然后用人体模板网格去拟合这些扫描数据得到的。这些拟合后的人体网格,有相同的网格拓扑结构。

pca_1
pca_1

假设人体网格有N个顶点,则一个人体的几何可以由3N个浮点数来表示,记这个向量为Si。

如果有K个人体数据,记{Si}的平均向量为ES,Ui = Si - ES,那么{Ui}刻画了这K个人体几何的变化量。

这个一个高维向量,我们可以用PCA对{Ui}进行降维,比如降到k维。设PCA的主方向为D1, D2, ..., Dk, 那么人体几何S = ES + W1 * D1 + W2 * D2 + ... + Wk * Dk,可以用一组权重W = {W1, W2, ..., W3}来表示人体几何。通过设置W可以合成新的人体几何,如图所示,红色的人体是合成的数据,红色之间的人体是相邻人体的顶点线性插值得到的。

pca_2
pca_2

W的设置并不直观,我们常见的人体参数有身高,体重,三维等。设这些有意义的参数为C = {C1, C2, ...., Cm}。我们可以用这些人体数据拟合一个C到W的线性映射M,记为MC = W。如下左图所示,这是人体是通过身高,体重参数设置得到的。因为这个参数映射是线性的,我们也可以对已有的人体进行参数编辑。比如设已有的人体参数为W,我们想给他一个delta参数变化,比如身高变化,体重变化等,记为ΔC,则ΔW = MΔC,那么变化后的人体参数为W + ΔW。如下右图所示,中间红色的人体是原始几何,其它的是编辑了身高体重后的人体几何。

pca_3
pca_3

这个人体参数化的方法,源自一篇2003年的Siggraph论文《The space of human body shapes: reconstruction and parameterization from range scans》。这个方法是三维人体参数化的一个开始,它很简单直观,也存在不少问题。以后有机会,我们再介绍一些前沿的人体参数化的方法。


PCA讨论
  • PCA是一种线性的降维方法,计算简单直观。
  • 因为其线性的性质,遇到一些严重非线性的情况时,会出现一些问题。
  • PCA抗噪性不强

有兴趣的读者,欢迎参考视频版本

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PCA简介
  • 三维人体模型参数化
  • PCA讨论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档