## 4 Experiments and Results
### The Bound57 Dataset  
We have designed a dataset, Bound57, for the tasks which PcBD covers. The dataset contains an input target point cloud containing initial noise, outliers, and incomplete edges, as well as an outlier-removed ground truth, a de-noised ground truth, an edge-patched ground-truth and a projection boundary ground truth. We expect the users to employ the proposed dataset as a flexible verification baseline for their point cloud data processing process, so it can be used as a point cloud outlier-removal dataset, a point cloud de-noising dataset, an edge-patching dataset, or a point cloud projection boundary dataset. In our case, we only use the outlier-removed ground truth, and the projection boundary ground truth to test the outlier-removal and projection boundary predicting and smoothing abilities of our network, for that the projection boundary ground truth can be also considered as part of the de-noised ground truth. Compared to other point cloud de-noising datasets [22, 26], our dataset contains much more shapes, better simulates real-life point cloud data generated by ToF cameras, and provides labels for outlier points. As is shown in Figure 2, our dataset starts with 3D models from the ShapeNet [40]. Designed to provide large-scale 3D shape data for computer vision and computer graphics research, the ShapeNet dataset contains a large amount of 3D models in 57 categories, covering a variety of object types such as furniture, vehicles, buildings, and everyday objects. Given a 3D model in.obj format, we firstly import it as triangular meshes using the related function from the pytorch3d library. Then, we randomly define a set of spherical coordinates \((r,\theta,\varphi)\) to determine the view spot. In the Bound57 dataset specifically, the radial distance \(r\) is uniformly sampled within the range \([1.25,3.0]\), and the 3D models are already normalized in the unit sphere. The elevation angle \(\theta\) is sampled from \([-90^{\circ},90^{\circ}]\), and the azimuth angle \(\varphi\) is sampled from \([0^{\circ},360^{\circ}]\), enabling a full coverage of viewpoints around the object. We define two Field-of-View (FoV) cameras in the pytorch3d library under this viewpoint. The first camera has a resolution of \(640\times 480\) to simulate a ToF camera, while another has \(2560\times 1440\) pixels to generate the ground truths. We generate two grayscale depth maps from the imported 3D meshes by rendering them onto the 2D image plane for both cameras. The rendering is achieved by related functions in the Pytorch3D library, and the depth map rendered by the ground-truth-generating camera is of higher resolution. We then design a function to extract contours from a given depth map. It begins by identifying the top-left pixel of the depth map as the background depth value, and creates a binary image where non-background pixels are set to an intensity of 255, and background pixels are set to 0. By employing the Canny edge-detection algorithm [41] in the OpenCV library [42], a second binary map is generated, only setting the projection boundary to an intensity of 255. The boundary pixel indices are extracted using OpenCV functions, allowing us to highlight the 2D projection boundary in the original depth map based on these indices. Since we have already set the model's pixels to the same grayscale value in the first step, the accuracy of the boundary extraction algorithm is ensured. This uniformity in pixel intensity guarantees that the boundary detection process effectively distinguishes between the object and the background, minimizing possible errors. The rendered depth maps can be back-projected to output the needed point clouds using functions in the Pytorch3D library. The detailed steps are shown in Figure 7, as we transform a given depth map from the pixel coordinate system \(u\)-\(v\) to the image coordinate system \(xoy\), and then transform to the camera coordinate system \(O_{c}X_{c}Y_{c}Z_{c}\), leading to point cloud data similar to the outputs of common ToF cameras.