# Point-Sim: A Lightweight Network for 3D Point Cloud Classification
## 3 Methods
### Basic Components  
Our approach begins from the local structure, thereby extracting features layer by layer. We select a certain number of key points within the point clouds, utilizing k-NN to select the nearest neighboring points to generate local regions, and update the features of this local region. By repeating multiple stages, we gradually expand the sensory field and obtain the global geometric information of the point clouds. In each stage, we represent the input point clouds of the previous stage as \(\{p_{i},f_{i}\}_{i=1}^{M}\), where \(p_{i}\in\mathbb{R}^{1\times 3}\) represents the coordinates of point \(i\), and \(f_{i}\in\mathbb{R}^{1\times C}\) represents the features of point \(i\). To begin, the point set is downsampled using _FPS_ to choose a subset of points from the original set. In this case, we select \(\frac{M}{2}\) local centroids from the \(M\) points, where \(M\) is an even number.  
\[\{p_{c},f_{c}\}_{c=1}^{\frac{M}{2}}=FPS(\{p_{i},f_{i}\}_{i=1}^{M}) \tag{1}\]  
Afterward, by employing the k-NN algorithm, groups of localized 3D regions are established by selecting the k-nearest neighbors from the original \(M\) points for each centroid \(c\) (Figure 3).  
\[\mathcal{N}_{c}=k-NN(p_{c},\{p_{i}\}_{i=1}^{M}) \tag{2}\]  
where \(N_{c}\in\mathbb{R}^{k\times 1}\) represents the k-nearest neighbors.  
Figure 1: Overall structure of Point-Sim. Different colors represent different module types in the network.  
Figure 2: Overall structure of Point-SimP. Different colors represent different module types in the network.  
After obtaining the local information, we perform feature expansion (Figure 4) to obtain the features \(f_{l}\in\mathbb{R}^{C\times K}\) of the local points. These are obtained by repeating the centroid point k times and concatenating it with the local features.  
\[f_{l}=Concat\Big{(}Repeat(f_{c}),\{f_{n}\}_{n=1}^{k}\Big{)} \tag{3}\]  
where \(f_{c}\in\mathbb{R}^{C\times 1}\) represents the features of the center point, \(f_{n}\in\mathbb{R}^{C\times 1}\) denotes the features of the remaining local points, and \(C=2\times D\).  
Furthermore, the operator \(\Phi(\cdot)\) is utilized to extract the geometry features \(\mathcal{N}_{C}\) of each local neighborhood, which comprises trigonometric functions, Squash, and ResSimAM.  
\[\Phi(\cdot)=ResSimam(Sqush(\mathrm{Trigonometric}(\cdot)+f_{l})) \tag{4}\]  
Local features \(f_{l}\) are processed using \(\Phi(\cdot)\), thus resulting in the enhanced local features \(f_{j}\in\mathbb{R}^{C\times K}\).  
\[f_{j}=\Phi(f_{l}) \tag{5}\]  
MaxPooling and MeanPooling are performed to aggregate the data, thus producing \(f_{g}\in\mathbb{R}^{C\times 1}\), which signifies the global features of the chosen key points.  
\[f_{g}=MaxP\Big{(}\{f_{j}\}_{j\in\mathcal{N}_{c}}\Big{)}+MeanP\Big{(}\{f_{j} \}_{j\in\mathcal{N}_{c}}\Big{)} \tag{6}\]  
Figure 4: Feature expansion for a local group.  
Figure 3: K-nearest neighbors of point \(X_{i}\). Where \(X_{i}\) represents the center point of the local region, \(X_{i1}\), \(X_{i2}\),..., \(X_{i5}\) represent the nearest neighbors of \(X_{i}\), and the rest of the points are not included in the local region.  
Following this, after the above feature extraction stage, max pool aggregation is used to obtain the final high-dimensional global feature \(f_{out}\in\mathbb{R}^{1\times C_{G}}\):  
\[f_{out}=MaxP(f_{g}) \tag{7}\]  
Finally, the resulting feature \(f_{out}\) is cached in the memory bank \(F_{mem}\), and we construct a corresponding label memory bank \(T_{mem}\) as follows:  
\[F_{mem}=\text{Concat}(\{f_{out}\}_{n=1}^{N}) \tag{8}\]  
\[T_{mem}=\text{Concat}(\{table_{i}\}_{n=1}^{N}) \tag{9}\]  
where \(table_{i}\) is the ground truth as one-hot encoding, and \(n\) represents the serial number of each point cloud object in training set \(n\) from \(1\) to \(N\).