Okay, let’s be honest: Despite what the manufacturers of laser scanning equipment are trying to tell us, nobody really wants point clouds. They are huge blobs of unstructured and often noisy data with a low semantic information content. But the end user wants information – line and plane geometry with labels, or at a higher level, knowledge about assets and their condition. Getting this useful information out of point clouds usually requires fast computers, lots of storage space, expensive software, patience, and a considerable amount of manual work is required, too. This means that automatisation can provide massive benefits.
A typical processing pipeline for point clouds is shown below:
- The data is acquired using a static, mobile, or airborne laser scanner.
- During registration, the raw data is brought into a (usually) georeferenced coordinate system. This is an intricate process that may require the computation of GNSS/INS derived trajectories, ground control points, and the adjustment of geodetic observations in a geodetic network analysis.
- The point clouds are then classified, assigning labels of object classes to each individual point.
- During feature extraction, geometry such as lines and planes are extracted from the point clouds, along with semantic labels like “road edge” and “roof”.
- During what I call Finishing, the automatically extracted features are manually verified, which often involved re-labelling, cutting, and trimming. The amount of work required here depends on the quality of the results from the previous step.
As Classification is the first step after registration, I decided to first focus my efforts upon development of a general-purpose machine learning approach to point cloud classification. This has resulted in the program HaiClass that I use for classifying the point cloud datasets that I encounter during my work. Here’s an example of a classified point cloud that was acquired by a mobile mapping system mounted on a train:
Working with such a point cloud that is classified into meaningful classes can make automated feature extraction very simple. Here are the contact wires extracted from a point cloud with a relatively simple algorithm, much simpler and faster than earlier attempts by me when working with unclassified point clouds, which tried using a Kalman filter to follow the wires or detecting the wires in cross sections extracted along an approximate centerline:
Yet, as this example shows, point cloud classification by itself is not the solution to all point cloud related problems. It is only one step in a point cloud processing and feature extraction pipeline. You will still need both good feature extraction algorithms and manual work to get a satisfying end result – but good classification will make feature extraction much easier.
Interested in trying out my classification method or talk about how I can help you with point cloud processing? Then get in touch.