Salience-based Smoothing of 3D Shapes
Smoothing refers to the process of removing small-scale artifacts, such as noise, from images and shapes. This is a frequently-used step in most image and shape processing pipelines. Many smoothing methods exist, based on techniques such as anisotropic filtering, scale-space analysis, moment analysis, and Fourier and wavelet transforms.
We have earlier shown that skeletons can be used to remove noise from 2D binary shapes while preserving features of these, such as corners and cusps. The method works by computing a so-called salience metric for skeleton points, removes low-salient points (corresponding to noise on the boundary), and reconstructs the filtered shape from the simplified skeleton.
We extend this idea to work for 3D shapes. Both zero-dimensional noise (like isolated peaks sticking out of a shape) and one-dimensional noise (like curvilinear ridges on the shape surface) is removed. Salient features, such as sharp edges which are relevant for the shape structure, are preserved.
Key to the method is the computation, on the surface skeleton of a 3D shape, of a saliency metric. The metric has low values for skeletal points corresponding to small-scale surface details (such as noise) and large values for surface details that are important for the shape's description (such as the edges of a cube).
Once the saliency metric is computed, the surface skeleton is thresholded to retain only high-salience points. Next, the smoothed shape is reconstructed from this simplified skeleton.
The process is illustrated in the above figure. From left to right: Noisy shape; noisy skeleton; simplified skeleton, colored by saliency metric; reconstruction of smoothed shape.
To further remove reconstruction ripples, a modified form of the shape's Euclidean distance transform (EDT) is used, in order to minimize reconstruction ripples. This is shown below. From left to right: noisy shape, naive reconstruction using the EDT, and reconstruction used the modified EDT. As visible, the latter one produces an almost perfect reconstruction of the chair shape.
Several results of the method are shown below on a variety of voxel shapes. As visible, the method can remove significant amounts of complex noise patterns while preserving well the underling main features of the shape.
The entire pipeline for salience-based smoothing of 3D shapes is implemented to work with voxel models. The C++ source code is available here. The code is available for academic research goals, and can be used when citing the MSc thesis indicated below.
- H. R. Schubert (2016) Salient edge preserving noise removal using surface skeletons. MSc thesis, Univ. of Groningen (PDF)