Geometry Sharing Network for 3D Point Cloud Classification and Segmentation(arXiv)
brief summary:方法很简洁,写的也很清晰。比较有新意的是使用了特征空间这一点,有效的对远距离且结构相似的部分进行了捕获。
Abstract
大尺度的几何变换,如旋转、平移等对点云的分类任务有较大的影响,针对这一问题,设计了一个geometry sharing Network(GS-Net),对几何变换有较强的鲁棒性。GS-Net与现有的卷积神经网路相比,可以聚合全局点的信息,此外,GS-Net包括一个geometry similarity connection(GSC)模块,通过Eigen-Graph模块来group较远的相似度较高的点的特征和相对几何信息,处理空间包括欧式空间和EigenValue空间,这使得GS-Net可以有效地捕获局部和整体几何特征,例如对称性、曲率、凸性和连通性。 从理论上讲,特征值空间中每个点的最近邻点对旋转和平移是不变的。
Introduction
现有的方法主要考虑3D点的局部结构,无法有效的从远处捕获整体的几何信息。基于这一点,提出了GS-Net,通过Eigen graph提取局部几何特征,使得可以识别具有相似局部结构,但欧式距离较远的点,且这一方法具有置换不变性。GS-Net通过融合欧式空间的特征和Eigen空间的特征来进行分类和分割。
contribution:
- 提出GSC模块,通过Eigen-Graph对具有相似几何结构的欧式距离较远的点进行聚合,有效的提取局部和整体几何结构
- 引入3D张量结构和Eigen-Graph来提取几何特征
- state of the art
Related Work
deep learning on 3D point cloud processing、classical geometric representation、rotation invariance for point cloud analysis
Method
模型采用了分层结构,再没一层使用GSC提取几何局部特征和相距较远的点的共享几何信息,然后使用FPS进行下采样。
对于分类任务,将多级特征concat起来然后使用max pooling和average pooling,然后通过全连接层
对于分割任务,encoder部分与分类任务相同,decoder部分通过最近邻上采样还原到原始点云数据上,类似于PointNet++的方法。
GSC
-
Eigen-Graph
欧式空间:通过knn得到每个点 x i x_i xi 在欧式空间的的 k 1 k_1 k1个近邻 { x i 1 , x i 2 … … x i k 1 } \{x_{i_1},x_{i_2}……x_{i_{k_1}}\} {xi1,xi2……xik1}
特征空间: M = { x i 1 − x i , x i 2 − x i … … x i k 1 − x i } M=\{x_{i_1}-x_{i},x_{i_2}-x_{i}……x_{i_{k_1}}-x_{i}\} M={xi1−xi,xi2−xi……xik1−xi},3D结构张量 C = M M T C=MM^T C=MMT,由于 C C C 是对称的,对其进行分解 C = R Λ R T C=R\Lambda R^T C=RΛRT,其中 R R R 为旋转矩阵, Λ \Lambda Λ 为特征对角帧且是一个正定的矩阵。使用L2范数计算不同点之间的距离:
D i s t a n c e ( x i , x j ) = ∣ ∣ λ i − λ j ∣ ∣ 2 Distance(x_i,x_j)=||\lambda_i-\lambda_j||_2 Distance(xi,xj)=∣∣λi−λj∣∣2
根据 D i j D_{ij} Dij 选择 k 2 k_2 k2 个近邻点。
-
GroupLayer
设 k 1 k_1 k1 个近邻点的特征为 { f i 1 1 , . . . f i k 1 1 } \{f_{i_1^1},...f_{i_{k_1}^1}\} {fi11,...fik11}, k 2 k_2 k2 个近邻点的特征为 { f i 1 2 , . . . f i k 2 2 } \{f_{i_1^2},...f_{i_{k_2}^2}\} {fi12,...fik22}。
对于每一点,将其近邻点的特征和其与近邻点的差异拼接起来,再将两类近邻点的特征拼接起来
f i k 1 = ⊙ j : ( i , j ) ∈ ϵ ( f j − f i , f j ) , j ∈ { f i 1 1 , . . . f i k 1 1 } f i k 2 = ⊙ p : ( i , p ) ∈ ϵ ( f p − f i , f p ) , p ∈ { f i 1 2 , . . . f i k 1 2 } f i ′ = ⊙ ( f i k 1 , f i k 2 ) f_i^{k_1}=\odot_{j:(i,j)\in \mathcal{\epsilon}}(f_j-f_i,f_j),j\in \{f_{i_1^1},...f_{i_{k_1}^1}\} \\f_i^{k_2}=\odot_{p:(i,p)\in \mathcal{\epsilon}}(f_p-f_i,f_p),p\in \{f_{i_1^2},...f_{i_{k_1}^2}\} \\f_i'=\odot(f_i^{k_1},f_i^{k_2}) fik1=⊙j:(i,j)∈ϵ(fj−fi,fj),j∈{fi11,...fik11}fik2=⊙p:(i,p)∈ϵ(fp−fi,fp),p∈{fi12,...fik12}fi′=⊙(fik1,fik2)
-
MLP和max Pooling
在group特征之后通过MLP和max pooling得到GSC模块的输出特征 F ′ ′ = { f 1 ′ ′ , . . . f N ′ ′ } F''=\{f_1'',...f_N''\} F′′={f1′′,...fN′′}
Rotation and Translation Invariance
设 C C C 对应的特征值和特征向量分别为 ( λ 1 , λ 2 , λ 3 ) , ( v 1 , v 2 , v 3 ) (\lambda_1,\lambda_2,\lambda_3),(v_1,v_2,v_3) (λ1,λ2,λ3),(v1,v2,v3)
C v q = λ q v q , 1 ≤ q ≤ 3 Cv_q=\lambda_qv_q,1\le q\le 3 Cvq=λqvq,1≤q≤3
在对点云进行旋转 R R R 的处理后,相当于对3D结构张量 C C C 左乘 R R R,右乘 R T R^T RT
C ′ = R M ( M R ) T C ′ R v q = R M M T R T R v q = R M M T v q = R C v q = λ q R v q C'=RM(MR)^T\\C'Rv_q=RMM^TR^TRv_q=RMM^Tv_q=RCv_q=\lambda_qRv_q C′=RM(MR)TC′Rvq=RMMTRTRvq=RMMTvq=RCvq=λqRvq
即3D结构张量具有旋转不变性,但平移不变性体现在哪里呢?
Expereiment
实验部分主要是分类和部件分割任务,dataset使用的为shapnet和modelnet40。
相较于现有的工作有一定的提升。