Score-Based Multibeam Point Cloud Denoising*
††thanks: *This work was supported by Swedish Maritime Robotics Center (SMaRC).
I Introduction
Detailed bathymetric information is the foundation of understanding many environmental processes in the ocean and at ocean boundaries [morlighemBedMachineV3Complete2017]. In modern days, such information is primarily collected by multibeam echo-sounder (MBES) mounted on survey vessels, remotely operated vehicles (ROVs) or autonomous underwater vehicles (AUVs). Thanks to technological improvements that result in cheaper and smaller MBES sensors, as well as global initiatives such as Seabed 2030 GEBCO project [mayerNipponFoundationGEBCO2018], the volume of available MBES data has grown exponentially [ledeunfReviewDataCleaning2020]. However, raw MBES data contain between 1 - 25% of outliers [ledeunfReviewDataCleaning2020]. These outliers need to be detected in order to construct an accurate bathymetric model. Existing cleaning algorithms, such as CUBE [calderAutomaticProcessingHighrate2003], often require extensive manual parameter adjustment, with limited scalability and repeatability [longComprehensiveDeepLearningBased2023]. Recently, two deep learning based models for MBES outlier detection have been proposed [stephensUsingThreeDimensional2020, longComprehensiveDeepLearningBased2023]. However, neither of the two models compare their method to existing outlier detection algorithms. With the lack of open-sourced code and pretrained weights, it is difficult to fairly evaluate the performance of these models.
In this work, we draw inspirations from the point cloud denoising community, and propose a score-based multibeam denoising network based on [luoScoreBasedPointCloud2021]. In this case, the score refers to the gradient of the log-probability function of the points. When trained, the network can be used for both outlier detection and iterative multibeam denoising, where denoising denotes moving the noisy points closer to the clean surface.


II Method
II-A Preliminaries
Given a noisy MBES point cloud , each consists of the XYZ hits of the MBES beam onto the seafloor, the goal is to recover the corresponding clean MBES point cloud .
To achieve this, we adapt the score-based point cloud denoising from [luoScoreBasedPointCloud2021]. More specifically, we assume that the clean set is sampled from an underlying distribution , whilst the noisy set is sampled from convolved with a noise distribution , . As such, the mode of represents the noise-free surface. The gradient of the log-probability of , also known as the score of , can be denoted by and can be learned directly from . Using the score, we can denoise by performing gradient ascend, moving the noisy points to the mode of . Moreover, the relative magnitude of the score can be used for outlier detection.
II-B Score Estimation Network
For the MBES point cloud, the beams are focused to the surface of an infinite cone, with the main axis typically aligned to the vehicle’s forward direction, and the peak of the cone located at the sensor’s frame origin. In the simplest case, this cone can be reduced to a disk (i.e points lie in a plane). In such case, the X values, or the along-track values, are determined by the sensor and vehicle pose, whilst the Y and Z values are together determined by the range of the bottom detection. In this work, we consider this simplest case. We assume that the X value of the points are fixed, and define a 1D score for the Z dimension. Note that the Y values can be moved according to MBES sensor geometry given Z.
For a noisy point , the ground truth score is defined as , where denotes the nearest neighbor to point in and denotes the component of the point. Intuitively, this score represents the 1D vector from the noisy component to its noise-free correspondence (see Figure 1).
A score estimation network inspired by [luoScoreBasedPointCloud2021] is then used to learn the local score function , which corresponds to the gradient field around a point . This network takes the form of , where MLP denotes multi-layer perceptron, denotes a point closed to , and denotes the feature of extracted by a DGCNN [wangDynamicGraphCnn2019]. The loss function is the L2-norm between and , i.e. , with representing the local neighborhood of point .
II-C Score-Based Denoising for MBES
Using the estimated score , the component of the noisy point , denoted as , can be iteratively denoised for steps as follows: let , the subsequent are computed using , where is the step size at step , and is an ensemble score function using the estimated score of for in the local neighborhood of . Whilst [luoScoreBasedPointCloud2021] uses mean as ensemble method, we propose to use median to deal with the severe outliers in MBES data.
II-D Evaluation Metrics
We will evaluate the proposed method for both denoising and outlier rejection. For denoising, we will report the pointwise Chamfer distance, mean absolute error (MAE) and root-mean-squared error (RMSE) in z, as well as the percentage points with error less than a specified threshold [irisawaHighResolutionBathymetryDeepLearning2024]. For outlier rejection, we will report the common binary classification metrics, including precision, recall, accuracy, etc [stephensUsingThreeDimensional2020, longComprehensiveDeepLearningBased2023].
II-E Baselines
For outlier rejection, we evaluate Ordinary Kriging [chilesGeostatisticsModelingSpatial2012] used by [irisawaHighResolutionBathymetryDeepLearning2024], PointCleanNet [rakotosaonaPointCleanNetLearningDenoise2019] used by [longComprehensiveDeepLearningBased2023], as well as classical point cloud filtering methods such as statistical outlier removal and radius outlier removal.
II-F Datasets
A big obstacle in developing and evaluating MBES denoising methods is the lack of ground truth. In this work, we manually clean a MBES dataset collected by a Hugin AUV with Kongsberg’s EM2040 sensor in an area rich of trawling patterns. The dataset covers around 5h of survey time and contains 216k MBES pings, each with 400 beams. After cleaning, we construct a mesh using EIVA NaviModel, and use AUVLib’s draping functionality to construct the ground truth noise-free point cloud. To construct the denoising dataset, we then divide the data into 32-ping patches, resulting in 6777 patches for training and evaluation.
III Preliminary Results
As a pilot study, we trained the proposed score network using 1000 patches, and evaluate it using 20 unseen patches. Some validation denoising metrics are shown in Table I. Although preliminary, Table I indicates that denoising with the proposed network could lead to reduced Chamfer distance, MAE and RMSE in . An example denoised patch is shown in Figure 2.
In the final version of this paper, we will train and evaluate using the full dataset described in subsection II-F, and evaluate both our method and the baselines in subsection II-E using the full set of metrics in subsection II-D.
Iteration | Chamfer distance (m) | (m) | RMSEz (m) |
---|---|---|---|
0 | 0.8547 | 0.5659 | 0.5837 |
1000 | 0.2165 | 0.1242 | 0.3167 |