August 6, 2024

Identifying Swimming Pools in 3D Point Clouds with Machine Learning-Based Tools

Written by: Jeffrey Hatzel, Product Manager

 

Global Mapper Pro® has automatic point cloud classification tools, which include machine learning-based methods that enable users to perform cutting-edge analysis. Although methods and algorithms have evolved, ground, buildings, vegetation, power lines & poles have been candidates for automatic classification for a long time. Recent updates to the Automatic Point Cloud Analysis Tool included new machine learning based methods for custom training and classification of point clouds. Since their release, these tools have been applied to identify a wide variety of custom features, from airplanes to vehicles. We’re going to attempt to classify something potentially tricky, swimming pools!

2 views of the same data - one top down and one in the 3D view. This data features a cul-de-sac of houses with pools in their backyard. The Automatic Point Cloud Analysis dialog is on the right.
Prior to any custom analysis, reviewing the point cloud and performing automatic classification of built in classes will make subsequent custom training and classification more efficient.

The point cloud and associated workflow we’re reviewing today focused on a subset of a USGS dataset collected over a residential neighborhood. Most, if not all of the houses have swimming pools. Since swimming pools are not a built-in classification which can be automatically identified, a custom training and classification was necessary. To start, visually reviewing the data in 2D view and 3D view helped provide context, prior to running classifications for ground, building, and vegetation.

Initially, I expected a few potential hiccups when attempting to classify these swimming pools. Water is always tricky to scan accurately, let alone classify. The nature of how lidar interacts with the water’s surface often makes it tricky to model. Furthermore, these pools are screened-in which might have had an impact as well. I suspected we might have success utilizing the RGB color of the pools, as they stood out very well in the RGB rendering of the point cloud.

The same data, classified by ground, buildings, and vegetation.
The resulting classification allowed us to quickly discern between ground, buildings, and vegetation.

Segmentation dialog and visualization of the unsegmented pool and cul-de-sac data. There are red boxes that indicate the general pool locations. Segmentation dialog and visualization of the segmented pool and cul-de-sac data. There are red boxes that indicate the general pool locations.

Use the slider to see how segmenting the point cloud with an emphasis on color allowed for an accurate representation of of the pools. Note the red boxes as reference to general pool locations.

The process of segmentation allows for the identification of groups of points which share similar characteristics. This is a component (mostly under the hood) of automatic classification. It can be adjusted and further utilized for custom classification. While there are a handful of attributes which can be used, I focused mainly on color. Refer to the above screenshot to see how well that ended up identifying pools as unique segments. The red boxes provide a reference to where the pools are located.

Training Samples (Beta) dialog and the selected swimming pool shape indicated in red.
Training samples were collected by selecting the segments which represent the pools. Although the point cloud is displayed by color, using the segmentation-based selection tool selects the entirety of a given segment.

At this stage, a subset of those segments were used as training samples used to automatically identify the pools. I collected a couple of samples of pools (based on their segments) and used those to train a custom classification for pools.

Once trained, the pool class had a defined signature that was used as the basis for identifying other pool features via the custom “Pools” class that was created.

The process of training utilizes the provided training samples to define a signature, or fingerprint. This is a statistical representation of the features of interest. It provides the basis of the automated classification process used to identify the pools. Since many of the pools were initially classified as ground, I made the new Pool class a subset of existing ground features. I then ran the pool classification only, since I had subsequently classified other classes of interest. When rendered by classification, notice the blue class representing pools in the point cloud!

Lidar point clouds contain large amounts of information. Utilizing segmentation and subsequent machine learning-based methods of classification to analyze that information provides users a state of the art way to identify any number of unique features in their point clouds.

To learn about the tools and options mentioned in this blog, download a 14-day free trial today!

Companies using Blue Marble’s geospatial technology