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!
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.
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.
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.
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