This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

Score-Based Multibeam Point Cloud Denoising*
thanks: *This work was supported by Swedish Maritime Robotics Center (SMaRC).

Li Ling1, Yiping Xie1, Nils Bore2, John Folkesson1 1Division of Robotics, Perception and Learning (RPL), KTH Royal Institute of Technology, Stockholm, Sweden {liling,yipingx,johnf}@kth.se2Ocean Infinity, Sven Källfelts Gata 11, SE-426 71 Västra Frölunda, Sweden [email protected]

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.

Refer to caption
Figure 1: An intuitive description of the score function used to denoise MBES points. In this case, the score essentially represents the 1D vector from the z value of the noisy point to the z value the corresponding clean point.
Refer to caption
Figure 2: Preliminary denoising results of a noisy MBES patch. The left, middle and right column shows the clean, noisy and denoised version, respectively. The xx and yy axes represent the normalized easting and northing values. The colors represent the normalized zz values, or height, of the points. Due to the range differences between easting, northing and zz, the zz values are normalized along, whilst the easting and northing values are normalized together. Severe outliers appears as yellow strip in the noisy patch. Note that these outliers are almost invisible in the denoised version. In the final version of this paper, we will visualize the results in meters.

II Method

II-A Preliminaries

Given a noisy MBES point cloud 𝐎={𝐨i}i=1N\mathbf{O}=\{\mathbf{o}_{i}\}_{i=1}^{N}, each 𝐨i3\mathbf{o}_{i}\in\mathbb{R}^{3} consists of the XYZ hits of the MBES beam onto the seafloor, the goal is to recover the corresponding clean MBES point cloud 𝐂={𝐜i}i=1N\mathbf{C}=\{\mathbf{c}_{i}\}_{i=1}^{N}.

To achieve this, we adapt the score-based point cloud denoising from [luoScoreBasedPointCloud2021]. More specifically, we assume that the clean set 𝐂\mathbf{C} is sampled from an underlying distribution pp, whilst the noisy set 𝐎\mathbf{O} is sampled from pp convolved with a noise distribution nn, pnp*n. As such, the mode of pnp*n represents the noise-free surface. The gradient of the log-probability of pnp*n, also known as the score of pnp*n, can be denoted by 𝐨log[(pn)(𝐨)\nabla_{\mathbf{o}}\log[(p*n)(\mathbf{o}) and can be learned directly from 𝐎\mathbf{O}. Using the score, we can denoise 𝐎\mathbf{O} by performing gradient ascend, moving the noisy points to the mode of pnp*n. 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 𝐨3\mathbf{o}\in\mathbb{R}^{3}, the ground truth score is defined as s(𝐨z)=NNxy(𝐨,𝐂)z𝐨zs(\mathbf{o}_{z})=NN_{xy}(\mathbf{o},\mathbf{C})_{z}-\mathbf{o}_{z}, where NNxy(𝐨,𝐂)NN_{xy}(\mathbf{o},\mathbf{C}) denotes the nearest neighbor to point 𝐨\mathbf{o} in 𝐂\mathbf{C} and []z[]_{z} denotes the zz component of the point. Intuitively, this score represents the 1D vector from the noisy zz 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 Si(𝐨)S_{i}(\mathbf{o}), which corresponds to the gradient field around a point 𝐨i\mathbf{o}_{i}. This network takes the form of 𝒮i(𝐨)=MLP(𝐨𝐨i,𝐡i)\mathcal{S}_{i}(\mathbf{o})=\text{MLP}(\mathbf{o}-\mathbf{o}_{i},\mathbf{h}_{i}), where MLP denotes multi-layer perceptron, 𝐨3\mathbf{o}\in\mathbb{R}^{3} denotes a point closed to 𝐨i\mathbf{o}_{i}, and 𝐡i\mathbf{h}_{i} denotes the feature of 𝐨i\mathbf{o}_{i} extracted by a DGCNN [wangDynamicGraphCnn2019]. The loss function is the L2-norm between Si(𝐨)S_{i}(\mathbf{o}) and s(𝐨z)s(\mathbf{o}_{z}), i.e. =𝔼𝐨𝒩(𝐨i)[s(𝐨z)Si(𝐨)22]\mathcal{L}=\mathbb{E}_{\mathbf{o}\sim\mathcal{N}(\mathbf{o}_{i})}[||s(\mathbf{o}_{z})-S_{i}(\mathbf{o})||_{2}^{2}], with 𝒩(𝐨i)\mathcal{N}(\mathbf{o}_{i}) representing the local neighborhood of point 𝐨i\mathbf{o}_{i}.

II-C Score-Based Denoising for MBES

Using the estimated score Si(𝐨)S_{i}(\mathbf{o}), the zz component of the noisy point 𝐨i\mathbf{o}_{i}, denoted as ziz_{i}, can be iteratively denoised for tt steps as follows: let zi(0)=ziz_{i}^{(0)}=z_{i}, the subsequent zi(t)z_{i}^{(t)} are computed using zi(t)=zi(t1)+αii(zi(t1))z_{i}^{(t)}=z_{i}^{(t-1)}+\alpha_{i}\mathcal{E}_{i}(z_{i}^{(t-1)}), where αi\alpha_{i} is the step size at step tt, and i\mathcal{E}_{i} is an ensemble score function using the estimated score of Sj(𝐨)S_{j}(\mathbf{o}) for 𝐨j\mathbf{o}_{j} in the local neighborhood of 𝐨i\mathbf{o}_{i}. 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 zz. 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.

TABLE I: Preliminary denoising metrics
Iteration Chamfer distance (m) z||z|| (m) RMSEz (m)
0 0.8547 0.5659 0.5837
1000 0.2165 0.1242 0.3167