## 4 Experiments and Results
### The Bound57 Dataset
We didn't convert the point cloud to the world coordinate system as in other datasets such as PCN [43] so that researchers can directly use the point cloud obtained from ToF cameras as the input without any pre-processing. With the extracted contour pixel index, the projection boundary can be back-projected in the same way. However, due to limitations of the previously used algorithm, the extracted contour index may not be on the object in the depth map. As in Figure 8, for the pixels with correct depths, we transform them as a point in the output boundary point cloud, for the pixels with depths equal to the camera's far plane (Zfar), we propose a method to replace it with a neighbor point: for a pixel with depth of Zfar, we firstly check the depth of eight neighbor pixels. For the neighbor pixels with correct depths, we further check their four neighbor pixels alongside u and v axis. Those with at least one secondary neighbor with Zfar depth will be considered as a boundary pixel. This is because if a pixel has four neighbor pixels on the object, it cannot be the projection boundary. In this way, the final output boundary point cloud can well describe a detailed two-dimensional projection of the object without errors in depth information. For the ground-truth camera, we back-project both the depth map and the extracted contours to output ground truths for up-sampling and boundary-detecting tasks. For the ToF-simulating camera, we only back-project the depth map as an intermediary point cloud, while we mark the boundary points in it in an additional dimension as the ground truth of the boundary labels \(\mathcal{L}_{B}\). Users can use this intermediary point cloud as a ground truth for point cloud de-noising tasks. Figure 7: The transformation from a depth map to a point cloud. At last, we artificially make the intermediary point cloud more similar to real scans. As is shown in Figure 9, to simulate the output point clouds of a ToF camera, we firstly introduce deficiencies in the edge regions, which makes sense because defects always appear in sparse areas and non-planar structures where the reflection is the weakest in real scans, while sparse and non-planar structures always occur near the boundary (such as bicycle wheels in Figure 2). For an input point cloud, we calculate the average X-Y plane distances from each point to the nearest 32 points as the local 2D density, which will be used as a criterion for judging sparse areas. Our overall idea is to select seed points in sparse and complex areas and then apply the relative operations, and we divide the point cloud into \(n\) parts based on the polar angle of each point to do that, avoiding selecting seed points from the same area. We set \(n\) as a random number between 8 and 32. In each divided part, the boundary points are extracted using the boundary labels \(\mathcal{L}_{B}\), and we select at most two seed points within the boundary points in each divided part: the boundary points with at least 50% lower local 2D density than average will be grouped as sparse boundary points, and we choose one with the lowest local 2D density as a seed point. For the remaining boundary points, we introduce another new criterion to select a seed point: we count the number of nearer points alongside the \(Z\)-axis in the 32 closest neighbors for each boundary point, and select one with the largest number as a seed point. This criterion is able to select the points with the most complex local structure and thus the most likely to have defects. In this way, we select one complex seed point and at most one sparse seed point, ensuring that defects that do not comply with imaging rules will not occur. For each extracted sparse seed point, we randomly select 16-128 kNN-neighbor points, and then randomly eliminate 12.5-33% of them. For the complex seed points, we randomly select 64-256 kNN-neighbor points, and then randomly eliminate 50-80% of them.