三维点云处理(2)——PCA

PCA

PCA is to find the dominant directions of the point cloud

Applications:

  • Dimensionality reduction
  • Surface normal estimation
  • Canonical orientation
  • Keypoint detection
  • Feature description

Physical intuitions:

  • Vector Dot Product
    在这里插入图片描述
  • Matrix-Vector Multiplication
    在这里插入图片描述
  • Singular Value Decomposition (SVD)
    在这里插入图片描述

Spectral Theorem:

A = U Λ U T = ∑ i = 1 n λ i u i u i T , Λ = d i a g ( λ 1 , ⋯   , λ n ) A = U{\Lambda}U^T=\sum_{i=1}^n\lambda_iu_iu^T_i,\Lambda=diag(\lambda_1,\cdots,\lambda_n) A=UΛUT=i=1nλiuiuiT,Λ=diag(λ1,,λn)

Rayleigh Quotients:

λ m i n ( A ) ≤ x T A x x T x ≤ λ m a x ( A ) , ∀ x ≠ 0 \lambda_{min}(A)\le\frac{x^TAx}{x^Tx}\le\lambda_{max}(A),\forall{x}\ne0 λmin(A)xTxxTAxλmax(A),x=0

Summary:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. Normalized by the center:
    X ~ = [ x ~ 1 , ⋯   , x ~ m ] , x ~ i = x i − x ‾ \tilde{X}=[\tilde{x}_1,\cdots,\tilde{x}_m],\tilde{x}_i=x_i-\overline{x} X~=[x~1,,x~m],x~i=xix
  2. Compute SVD:
    H = X ~ X ~ T = U r Σ 2 U r T H=\tilde{X}\tilde{X}^T=U_r{\Sigma^2}U_r^T H=X~X~T=UrΣ2UrT
  3. The principle vectors are the columns of Ur (Eigenvector of X X X= Eigenvector of H H H)
    在这里插入图片描述

KPCA

Input data x i ∈ R n 0 x_i\in\mathcal{R}^{n_0} xiRn0, non-linear mapping ϕ : R n 0 → R n 1 \phi:\mathcal{R}^{n_0}\rightarrow\mathcal{R}^{n_1} ϕ:Rn0Rn1, follow the standard linear PCA
在这里插入图片描述
z ~ = ∑ j = 1 N α j ϕ ( x j ) → K α = λ α \tilde{z}=\sum^N_{j=1}\alpha_j\phi(x_j) \rightarrow K\alpha=\lambda\alpha z~=j=1Nαjϕ(xj)Kα=λα
The normalization of z ~ \tilde{z} z~:
α r T λ r α r = 1 → α r = 1 / λ r \alpha_r^T\lambda_r\alpha_r=1 \rightarrow \alpha_r=1/\lambda_r αrTλrαr=1αr=1/λr

Kernel:

  • Linear k ( x i , x j ) = x i T x j k(x_i,x_j)=x_i^Tx_j k(xi,xj)=xiTxj
  • Polynomial k ( x i , x j ) = ( 1 + x i T x j ) p k(x_i,x_j)=(1+x_i^Tx_j)^p k(xi,xj)=(1+xiTxj)p
  • Gaussian k ( x i , x j ) = e − β ∣ ∣ x i − x j ∣ ∣ 2 k(x_i,x_j)=e^{-\beta{||x_i-x_j||_2}} k(xi,xj)=eβxixj2
  • Laplacian k ( x i , x j ) = e − β ∣ ∣ x i − x j ∣ ∣ 1 k(x_i,x_j)=e^{-\beta{||x_i-x_j||_1}} k(xi,xj)=eβxixj1

Summary

  1. Select a kernel k ( x i , x j ) k(x_i,x_j) k(xi,xj),compute the Gram matrix K ( i , j ) = k ( x i , x j ) K(i,j)=k(x_i,x_j) K(i,j)=k(xi,xj)
  2. Normalize K K K:
    K ~ = K − 2 II 1 N K + II 1 N K II 1 N \tilde{K}=K-2\textbf{II}_{\frac{1}{N}}K+\textbf{II}_{\frac{1}{N}}K\textbf{II}_{\frac{1}{N}} K~=K2IIN1K+IIN1KIIN1
  3. Solve the eigenvector/eigenvalues of K ~ \tilde{K} K~:
    K ~ α r = λ r α r \tilde{K}\alpha_r=\lambda_r\alpha_r K~αr=λrαr
  4. Normalize α r \alpha_r αr to be α r T α r = 1 λ r \alpha_r^T\alpha_r=\frac{1}{\lambda_r} αrTαr=λr1
  5. For any data point x ∈ R n x\in{R^n} xRn, compute its projection onto r t h r^{th} rth principle component y r ∈ R y_r\in{R} yrR:
    y r = ϕ T ( x ) z ~ r = ∑ j = 1 N α r j k ( x , x j ) y_r=\phi^T(x)\tilde{z}_r=\sum^N_{j=1}\alpha_{rj}k(x,x_j) yr=ϕT(x)z~r=j=1Nαrjk(x,xj)

Surface normal on surface

The vector perpendicular to the tangent plane of the surface at a point P

Applications:

  • Segmentation/Clustering
  • Plane detection
  • Point cloud feature for applications like Deep Learning

Steps:

  1. Select a point P
  2. Find the neighborhood that defines the surface
  3. PCA → min ⁡ n ∈ R n n T X ~ W X ~ T n , s . t . : ∣ ∣ n ∣ ∣ 2 = 1 \rightarrow\min \limits_{n\in{R^n}}n^T\tilde{X}W\tilde{X}^Tn,s.t.:||n||_2=1 nRnminnTX~WX~Tn,s.t.:n2=1
  4. Normal → \rightarrow the least significant vector
  5. Curvature → \rightarrow ratio between eigen values λ 3 / ( λ 1 + λ 2 + λ 3 ) \lambda_3/(\lambda_1+\lambda_2+\lambda_3) λ3/(λ1+λ2+λ3)

Noise:

  1. Select neighbors according to problem
  2. Weighted based on other features
  3. RANSAC
  4. Deep Learning12

  1. Predicting Depth, Surface Normal and Semantic Labels with a Common Multi-Scale Convolutional Architecture, ICCV 2015 ↩︎

  2. Nesti-Net: Normal Estimation for Unstructured 3D Point Clouds using Convolutional Neural Networks, CVPR 2019 ↩︎

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值