Object Detection from Aerial Point Cloud

09-28-2020 02:10 AM
New Contributor
0 1 1,618


The Actueel Hoogtebestand Nederland (AHN) dataset precisely depicts the Netherlands as countless points, while the processing of which usually involves massive human intervention. In this blog post, we demonstrate how the arcgis.learn module can be utilised to favour automatic classification of AHN point clouds. Notice that the raw classification of AHN is neglected; instead, a fine-grained re-classification of the point cloud is carried out.


To begin with, we have to introduce PointCNN, a deep learning pipeline for point cloud analysis.

Unlike imagery, point cloud data are unordered and anisotropically distributed in space, which hinders the applications of traditional convolutional neural networks (CNNs) designed for 2D data.

A core part of the PointCNN framework is the X-Convoperation which is analogous to the convolution operation in 2D CNNs. This operator performs a series of operations on a processed form of point cloud blocks. What's special with X-Conv is that it can process the input points with an arbitrary order to obtain an order-independent feature. With the X-Conv as building blocks, PointCNN is capable of performing convolutions on unordered point sets, similar to (but slightly more complex than) that of 2D grids.

The XConv operation on point clouds (bottom) resembles the convolution on 2D grids (top)

PointCNN is implemented in arcgis.learn module, Esri's Python API for deep learning. The ArcGIS API encapsulates the functionalities to efficiently classify and segment points from a point cloud dataset. To dive into the API you may refer to arcgis.learn documentation.

Naturally, PointCNN needs training data to learn from, where the Dayton Annotated Laser Earth Scan (DALES) dataset (DALES : University of Dayton, Ohio) is used which contains forty scenes of dense, labelled aerial data spanning multiple scene types including urban, suburban, rural, and commercial, with over a half-billion points spanning 10 square kilometres of area. The AHN3 point cloud of Dordtrecht is chosen as the test dataset, the preparation of which undergoes Geoprocessing - Convert LAS and Extract LAS with ArcGIS Pro.

Dordrecht dataset preparation in ArcGIS Pro

After training on the DALES point clouds, PointCNN is able to classify the AHN points of Dordrecht region, with the coordinate information (x, y, z) only. The training scripts can be found at this ArcGIS Notebook.

AHN point cloud of Dordrecht region

Unclassified AHN point cloud of Dordrecht region, rendered with the intensity value


Now check below the scene of Dordrecht classified by PointCNN. The classification contains Ground, Vegetation, Cars, Trucks, Power lines, Poles, Fences and Buildings. Notice especially how small-size objects (e.g., cars and power lines) are still prominently detected. Compared to the raw classification of AHN3 which consists of only five rough classes, the new classification is clearly of more granular details.

Classified AHN point cloud of Dordrecht region, rendered with the class code


Interactive maps of the classified point cloud can be found at this Story Map: Object Detection from Aerial Point Cloud.

1 Comment
New Contributor


Thanks for sharing your work.

I was wondering if you could help me with a question that I have. 

Did you train the model on GPU or was it on CPU, and how long did it take?

I am asking because I followed your steps (I only used two blocks for training and one for validation) but after three days of training on CPU, it didn't even go one epoch.

I would appreciate it if you can help me with this.