## 3 Proposed Method
### Training Strategy and Loss Functions  
We provide several definitions for describing the network training: \(S_{i}\) denotes the 3D shape of the \(i^{th}\)**seen** instance of the category \(G\), and the set of 3D shapes of \(t\) seen instances forms \(\mathcal{G}\):  
\[\mathcal{G}=\{S_{i}|i=1,2,..,t\}. \tag{4}\]  
\(\mathbf{X}^{c}_{i}\) depicts the noise-free canonical point cloud of the instance \(S_{i}\), and the set of noise-free canonical point clouds forms the batch \(\mathcal{B}^{can}\):  
\[\mathcal{B}^{can}=\{\mathbf{X}^{c}_{i}|i=1,2,..,t\}. \tag{5}\]  
Arbitrary rotation application on \(\mathbf{X}^{c}_{i}\) generates noise-free rotated point cloud \(\mathbf{X}^{r}_{i}\), and the set of noise-free rotated point clouds forms \(\mathcal{B}^{rot}\):  
\[\mathcal{B}^{rot}=\{\mathbf{X}^{r}_{i}|i=1,2,..,t\}. \tag{6}\]  
Corrupting \(\mathbf{X}^{c}_{i}\) by noise results \(\mathbf{X}^{c}_{n_{i}}\). We represent the set of noise-corrupted canonical point clouds with \(\mathcal{B}^{can}_{noisy}\):  
\[\mathcal{B}^{can}_{noisy}=\{\mathbf{X}^{c}_{n_{i}}|i=1,2,..,t\}. \tag{7}\]  
Figure 3: Denoising process of a noise-corrupted instance. Corrupting \(\mathbf{X}_{i}^{r}\) by noise results \(\mathbf{X}_{n_{i}}^{r}\). We depict the set of noise-corrupted rotated point clouds with \(\mathcal{B}_{noisy}^{rot}\):  
\[\mathcal{B}_{noisy}^{rot}=\{\mathbf{X}_{n_{i}}^{r}|i=1,2,..,t\}. \tag{8}\]  
Note that all point clouds are composed of \(M\) points in 3D space: \(\mathbf{X}_{i}^{c},\mathbf{X}_{i}^{r},\mathbf{X}_{n_{i}}^{c},\mathbf{X}_{n_{i} }^{r}\in\mathbb{R}^{M\times 3}\). Auxiliary task training starts with feeding instances in the batch \(\mathcal{B}^{can}\) to the network. Each instance involved in \(\mathcal{B}^{can}\) is automatically corrupted by noise, and the network transforms \(\mathcal{B}^{can}\) to \(\mathcal{B}_{noisy}^{can}\). Then, instances in \(\mathcal{B}_{noisy}^{can}\) are rotated by multiplying those with the rotation matrices randomly produced through axis-angle representation, and \(\mathcal{B}_{noisy}^{rot}\) is formed. In order to allow the canonical mapping part of the network to learn the identity matrix as well, \(\mathcal{B}_{noisy}^{can}\) and \(\mathcal{B}_{noisy}^{rot}\) are merged and are used together to train the auxiliary task. Canonical Mapping Loss (\(L_{CM}\)) is the Mean-Squared Error (MSE) loss that is used to align the rotated instances on to the canonical space:  
\[L_{CM}(\mathbf{R}^{tar},\mathbf{R})=\frac{1}{2t}\sum_{j=1}^{2t}(\mathbf{R}_{j} ^{tar}-\mathbf{R}_{j})^{2}, \tag{9}\]  
where \(\mathbf{R}^{tar}\) is the target rotation matrix. Once the auxiliary task training is completed, we train our downstream task. as employed in auxiliary task training, \(\mathcal{B}_{noisy}^{can}\) and \(\mathcal{B}_{noisy}^{rot}\) are automatically generated and are fed into the canonical mapping network to obtain canonicalized clouds. The denoiser then learns to hypothesise canonical noise-free points lying within the convex hull of the shapes \(\mathbf{H}^{can}\). Denoising Loss (\(L_{D}\)) is the Chamfer Distance (also known as cloud-to-cloud distance) loss:  
\[L_{D}(\mathbf{H}^{can},\mathbf{X}^{c})=\sum_{\mathbf{h}_{i}\in\mathbf{H}^{can }}\min_{\mathbf{x}_{j}\in\mathbf{X}^{c}}||\ \mathbf{h}_{i}-\mathbf{x}_{j}\ ||_{2}^{2}+\sum_{\mathbf{x}_{j}\in\mathbf{X}^{c}}\min_{ \mathbf{h}_{i}\in\mathbf{H}^{can}}||\ \mathbf{h}_{i}-\mathbf{x}_{j}\ ||_{2}^{2}. \tag{10}\]  
**Discussion on Denoising. ** According to Equations (3) and (10), the network learns to produce the probability map of the input cloud, each element of which depicts the probability of an input point being the denoised point. Since the denoising part of CMDNet is trained by using a set of instances of a given category, the learnt probability map employs semantic shape correspondence estimation and produces consistent denoised points spatially lying on the semantically corresponding parts of the objects, and thus leveraging the semantic consistency within the training instances to generate intrinsic structure points.