# Fast Ground Filtering of Airborne LiDAR Data Based on Iterative Scan-Line Spline Interpolation

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Method

#### 2.1. Neighbour Calculation

#### 2.2. Seeds Selection

#### 2.3. Iterative Spline

- The interpolation of the spline is performed. In the first iteration, K consists of just the seed points, and the initial spline is a rough estimation of the ground level (see Figure 6a).
- In the push down stage, the spline descends into the ground level by adding ground points under the spline into K (see Figure 6b). For each knot pair $({k}_{i},{k}_{i+1}),$ the point with the largest residual under the spline is added into K if this residual is higher than a tolerance threshold T, so that only significant residuals are considered. An adequate value for this threshold is between one and two times the vertical accuracy of the LiDAR data. In this work, $T=0.15$ m is used. After processing all knot pairs, if K has new points, we return to step 1; otherwise, this stage ends.
- In the push up stage, the spline raises by adding ground points above the spline into K (see Figure 6c). The idea is to start at a known ground point and to consider the next point as ground as long as the transition is smooth. This is accomplished by a 1-D bidirectional labelling algorithm. For each knot, both forward and backward labelling are conducted. The labelling process is shown in Figure 7. The process starts at the next point of the knot. This point has to fulfil three constraints based on height difference, slope, and step distance. The calculation of these constraints are given by Equations (2)–(4). First, the pairwise height difference must be lower than a given threshold ${Z}_{t}$. Second, the pairwise slope must be lower than a given threshold ${S}_{t}$ or the slope change (if available) must be lower than the half of ${S}_{t}$. Third, the 2-D distance to the previous knot must be higher than a given threshold ${D}_{t}$. This last constraint limits the number of points that will be labelled as knots, so that only meaningful knots are added, as processing all knots will increase the computational demand of the interpolation with little contribution to its accuracy. The height and slope thresholds can be tuned for a particular data to obtain better results. Common values can be widely found in the literature. Our suggestion is to use as default parameters ${Z}_{t}=0.5$ m and ${S}_{t}={45}^{\circ}$ or ${S}_{t}={60}^{\circ}$ for urban or rural sites, respectively. For the step distance threshold, we have found experimentally that ${D}_{t}=1$ m provides the best trade-off between accuracy and throughput. If the point does not fulfill the height or slope constraints, the next point yielding a low residual is added into K and the labelling continues in that point. The process ends if a knot is reached. Finally, if K has new points, we return to step 1; otherwise, the iterative spline interpolation finishes.$${Z}_{i}={z}_{i}-{z}_{i-1}$$$${S}_{i}=arctan\left(\right)open="("\; close=")">\frac{{z}_{i}-{z}_{i-1}}{\sqrt{{({x}_{i}-{x}_{i-1})}^{2}+{({y}_{i}-{y}_{i-1})}^{2}}}$$$${D}_{i}=\sqrt{{({x}_{k}-{x}_{i})}^{2}+{({y}_{k}-{y}_{i})}^{2}},\mathrm{with}\phantom{\rule{4.pt}{0ex}}k\phantom{\rule{4.pt}{0ex}}\mathrm{as}\phantom{\rule{4.pt}{0ex}}\mathrm{the}\phantom{\rule{4.pt}{0ex}}\mathrm{index}\phantom{\rule{4.pt}{0ex}}\mathrm{of}\phantom{\rule{4.pt}{0ex}}\mathrm{the}\phantom{\rule{4.pt}{0ex}}\mathrm{previous}\phantom{\rule{4.pt}{0ex}}\mathrm{knot}$$

#### 2.4. Knot Propagation

#### 2.5. Ground Labelling

## 3. Results

#### 3.1. Quantitative Evaluation

#### 3.2. Qualitative Evaluation

#### 3.3. Computational Performance

## 4. Embedded System Implementation

#### 4.1. CPU Implementation

#### 4.2. Programmable Logic Acceleration

#### 4.3. Power and Energy Consumption

## 5. Discussion

#### 5.1. Survey Requirements: Scan-Line Length

#### 5.2. Comparison with other Methods

#### 5.3. Real-Time Processing Capability

## 6. Conclusions

## Author Contributions

## Funding

## Acknowledgments

## Conflicts of Interest

## References

- Meng, X.; Currit, N.; Zhao, K. Ground Filtering Algorithms for Airborne LiDAR Data: A Review of Critical Issues. Remote Sensing
**2010**, 2, 833–860. [Google Scholar] [CrossRef] [Green Version] - Axelsson, P. DEM generation from laser scanner data using adaptive TIN models. Int. Arch. Photogramm. Remote. Sens.
**2000**, 33, 110–117. [Google Scholar] - Meng, X.; Wang, L.; Silván-Cárdenas, J.L.; Currit, N. A multi-directional ground filtering algorithm for airborne LIDAR. ISPRS J. Photogramm. Remote. Sens.
**2009**, 64, 117–124. [Google Scholar] [CrossRef] [Green Version] - Chen, C.; Li, Y.; Li, W.; Dai, H. A multiresolution hierarchical classification algorithm for filtering airborne LiDAR data. ISPRS J. Photogramm. Remote. Sens.
**2013**, 82, 1–9. [Google Scholar] [CrossRef] - Pingel, T.J.; Clarke, K.C.; McBride, W.A. An improved simple morphological filter for the terrain classification of airborne LIDAR data. ISPRS J. Photogramm. Remote. Sens.
**2013**, 77, 21–30. [Google Scholar] [CrossRef] - Mongus, D.; Žalik, B. Parameter-free ground filtering of LiDAR data for automatic DTM generation. ISPRS J. Photogramm. Remote. Sens.
**2012**, 67, 1–12. [Google Scholar] [CrossRef] - Hu, H.; Ding, Y.; Zhu, Q.; Wu, B.; Lin, H.; Du, Z.; Zhang, Y.; Zhang, Y. An adaptive surface filter for airborne laser scanning point clouds by means of regularization and bending energy. ISPRS J. Photogramm. Remote. Sens.
**2014**, 92, 98–111. [Google Scholar] [CrossRef] - Zhang, W.; Qi, J.; Wan, P.; Wang, H.; Xie, D.; Wang, X.; Yan, G. An Easy-to-Use Airborne LiDAR Data Filtering Method Based on Cloth Simulation. Remote Sens.
**2016**, 8, 501. [Google Scholar] [CrossRef] - Hui, Z.; Hu, Y.; Yevenyo, Y.Z.; Yu, X. An Improved Morphological Algorithm for Filtering Airborne LiDAR Point Cloud Based on Multi-Level Kriging Interpolation. Remote Sens.
**2016**, 8, 35. [Google Scholar] [CrossRef] - Chen, C.; Li, Y.; Zhao, N.; Guo, J.; Liu, G. A fast and robust interpolation filter for airborne lidar point clouds. PLoS ONE
**2017**, 12, e0176954. [Google Scholar] [CrossRef] - Ma, W.; Li, Q. An Improved Ball Pivot Algorithm-Based Ground Filtering Mechanism for LiDAR Data. Remote Sens.
**2019**, 11, 1179. [Google Scholar] [CrossRef] - Shan, J.; Aparajithan, S. Urban DEM generation from raw LiDAR data. Photogramm. Eng. Remote Sens.
**2005**, 71, 217–226. [Google Scholar] [CrossRef] - Hebel, M.; Stilla, U. Pre-classification of points and segmentation of urban objects by scan line analysis of airborne LIDAR data. Int. Arch. Photogramm. Remote. Sens. Spat. Inf. Sci.
**2008**, 2008 38, 187–192. [Google Scholar] - Hu, X.; Li, X.; Zhang, Y. Fast Filtering of LiDAR Point Cloud in Urban Areas Based on Scan Line Segmentation and GPU Acceleration. IEEE Geosci. Remote Sens. Lett.
**2013**, 10, 308–312. [Google Scholar] [CrossRef] - Hu, X.; Ye, L.; Pang, S.; Shan, J. Semi-Global Filtering of Airborne LiDAR Data for Fast Extraction of Digital Terrain Models. Remote Sens.
**2015**, 7, 10996–11015. [Google Scholar] [CrossRef] - Hu, X.; Ye, L. A fast and simple method of building detection from LiDAR data based on scan line analysis. ISPRS Ann. Photogramm. Remote Sens. Spat. Inf. Sci.
**2013**, 3, W1. [Google Scholar] [CrossRef] - Zhang, C.; He, Y.; Fraser, C.S. Spectral clustering of straight-line segments for roof plane extraction from airborne LiDAR point clouds. IEEE Geosci. Remote Sens. Lett.
**2018**, 15, 267–271. [Google Scholar] [CrossRef] - Wu, T.; Hu, X.; Ye, L. Fast and accurate plane segmentation of airborne LiDAR point cloud using cross-line elements. Remote Sens.
**2016**, 8, 383. [Google Scholar] [CrossRef] - ASPRS. LAS Specification Version 1.4. ASPRS Board Meeting; ASPRS: Bethesda, MD, USA, 2011. [Google Scholar]
- Vosselman, G.; Maas, H. (Eds.) Airborne and Terrestrial Laser Scanning; CRC Press: London, UK, 2010. [Google Scholar]
- Gatziolis, D.; Andersen, H. A Guide to LIDAR Data Acquisition and Processing for the Forests of the Pacific Northwest; (No. PNW-GTR-768); US Department of Agriculture, Forest Service, Pacific Northwest Research Station: Portland, OR, USA, 2008. Available online: https://doi.org/10.2737/PNW-GTR-768 (accessed on 3 May 2019).
- Akima, H. A New Method of Interpolation and Smooth Curve Fitting Based on Local Procedures. J. ACM
**1970**, 17, 589–602. [Google Scholar] [CrossRef] - Martínez, J.; Lorenzo, O.G.; Vilariño, D.L.; Pena, T.F.; Cabaleiro, J.C.; Rivera, F.F. A Developer-Friendly “Open Lidar Visualiser and Analyser” for Point Clouds With 3-D Stereoscopic View. IEEE Access
**2018**, 6, 63813–63822. [Google Scholar] [CrossRef] - Sithole, G.; Vosselman, G. Experimental comparison of filter algorithms for bare-Earth extraction from airborne laser scanning point clouds. ISPRS J. Photogramm. Remote. Sens.
**2004**, 59, 85–101. [Google Scholar] [CrossRef] - ISPRS Working Group III/3. FILTERTEST—Test Sites. Available online: https://www.itc.nl/isprs/wgIII-3/filtertest/downloadsites/ (accessed on 24 January 2019).
- Bechtold, S.; Höfle, B. HELIOS: A Multi-Purpose LiDAR Simulation Framework for Research, Planning and Training of Laser Scanning Operations with Airborne, Ground-Based Mobile and Stationary Platforms. ISPRS Ann. Photogramm. Remote. Sens. Spat. Inf. Sci.
**2016**, III-3, 161–168. [Google Scholar] [CrossRef] - OpenStreetMap Contributors. Planet Dump. Available online: https://www.openstreetmap.org (accessed on 3 May 2019).
- Tobias Knerr. OSM2World. 2011. Available online: http://osm2world.org/ (accessed on 4 May 2019).
- Fugro. FugroViewer. Available online: https://www.fugro.com/about-fugro/our-expertise/technology/fugroviewer (accessed on 30 July 2019).
- Babcock International. Trusted to deliver. Available online: https://www.babcockinternational.com/ (accessed on 30 July 2019).
- Laboratorio do Territorio (LaboraTe). Available online: http://laborate.usc.es/ (accessed on 30 July 2018).
- Cramer, M. The DGPF-test on digital airborne camera evaluation—Overview and test design. Photogrammetrie-Fernerkundung-Geoinformation
**2010**, 2010, 73–82. [Google Scholar] [CrossRef] [PubMed] - Crockett, L.H.; Elliot, R.A.; Enderwitz, M.A.; Stewart, R.W. The Zynq Book: Embedded Processing with the Arm Cortex-A9 on the Xilinx Zynq-7000 All Programmable Soc; Strathclyde Academic Media: Glasgow, UK, 2014. [Google Scholar]
- Xilinx. Xilinx Zynq-7000 SoC Technical Reference Manual. UG585 (v1.12.2) 1 July 2018. Available online: https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf (accessed on 10 June 2019).
- Free Software Foundation, Inc. GSL—GNU Scientific Library. Available online: https://www.gnu.org/software/gsl/ (accessed on 30 July 2019).
- OpenMP Architecture Review Board. The OpenMP API Specification for Parallel Programming. 2019. Available online: http://openmp.org (accessed on 10 June 2019).
- Baltsavias, E. Airborne laser scanning: Basic relations and formulas. ISPRS J. Photogramm. Remote. Sens.
**1999**, 54, 199–214. [Google Scholar] [CrossRef] - Xilinx. UG1267—ZCU104 Board User Guide (v1.1). 2018. Available online: https://www.xilinx.com/support/documentation/boards_and_kits/zcu104/ug1267-zcu104-eval-bd.pdf (accessed on 24 June 2019).
- Ibeo Automative Systems GmbH. Ibeo Lux HD—Technical Facts. Available online: http://www.abott-mf.com/images/pdf/IbeoLUXHD.pdf (accessed on 3 June 2019).
- RIEGL Laser Measurement Systems GmbH. RIEGL miniVUX-1UAV Infosheet. Available online: http://www.riegl.com/uploads/tx_pxpriegldownloads/RIEGL_miniVUX-1UAV_Infosheet_2018-10-01.pdf (accessed on 3 June 2019).
- Velodyne Lidar, Inc. Velodyne Puck (VLP-16). Available online: https://www.goetting-agv.com/dateien/downloads/63-9229_Rev-H_Puck%20_Datasheet_Web.pdf (accessed on 3 June 2019).

**Figure 1.**Scanning mechanisms and their resulting scan-line ground patterns [20]: Scan lines are captured perpendicularly to the flight course. The oscillating mirror and rotating polygon mechanisms are commonly used in airborne scenarios. Other mechanisms include Palmer scan or fibre scanner.

**Figure 2.**Space extend of the LAS data: A flight line (single-digit numbered) is formed by a set of consecutive scan lines. Odd- and even-numbered stripes are flown in opposite directions. The darker shading shows stripe overlap. Generally, LAS data is organised in tiles (two-digit-numbered rectangles) [21].

**Figure 4.**Visualisation of the right neighbour calculation for the point ${p}_{63}$, which is the point with index 63 in a scan line S: The search starts at the adjacent point ${p}_{63}^{\prime}$, which is the point with the same index in the adjacent scan line S’. The distance between these two points is the initial distance ${D}_{min}$. A forward and backward search is then initiated. Green dots mean that the distance is lower than the previous one and that the point is taken as the candidate neighbour. Red dots mean that the distance is higher than the previous one and that the search in that direction ends. After the actual process, the point in the adjacent scan line ${S}^{\prime}$ yielding the minimum distance to ${p}_{63}$ is selected as the right neighbour, which is ${p}_{61}^{\prime}$ in this case.

**Figure 6.**Spline (orange) of a scan line after (

**a**) the initial interpolation, (

**b**) the push down stage, and (

**c**) the push up stage. The knots of each stage are also shown: seed knots (green), push down added knots (yellow), and push up added knots (blue, red and purple). The colours of the push up added knots match the different knot addition processes shown in Figure 7: ${p}_{i}$ (blue), ${p}_{i-1}$ (red) and ${p}_{j}$ (purple). These images, among others within the paper, have been captured with Olivia [23].

**Figure 8.**Error distribution in the (

**a**) urban and (

**b**) rural synthetic data and (

**c**–

**e**) sources of error. Legend: type I error (red), type II error (blue), ground points (light grey), and non-ground points (dark grey).

**Figure 13.**Sources of point accumulation: (

**a**) oscillating mirror deceleration and (

**b**) building facades.

**Figure 18.**Error distribution in the synthetic Heidelberg’s urban site for different scan-line lengths: (

**a**) 100 m, (

**b**) 200 m, (

**c**) 300 m, (

**d**) 400 m, (

**e**) 500 m, (

**f**) 600 m, (

**g**) 700 m, and (

**h**) 800 m.

**Figure 19.**Kappa (

**a**) and total error (

**b**) in the synthetic Heidelberg’s site for different scan-line lengths.

**Figure 20.**Segments distribution (yellow) of a scan line for different scan-line lengths: (

**a**) 300, (

**b**) 400, (

**c**) 500, and (

**d**) 600: Scan-line segments fully covered by the building are highlighted in purple.

Scene | Type I (%) | Type II (%) | Total Error (%) | Kappa (%) |
---|---|---|---|---|

Urban | 0.03 | 1.66 | 0.51 | 98.78 |

Rural | 0.46 | 3.75 | 0.49 | 78.40 |

Mean | 0.25 | 2.71 | 0.50 | 88.59 |

Site | Type | Date | Sensor | Density | Scan Line Length | Source |
---|---|---|---|---|---|---|

Alcoy | Rural | 2011 | Leica ALS60 | 8.65 p/m^{2} | 282 m | Babcock International [30] |

Trabada | Rural | 2004 | Optech 2033 | 4 p/m^{2} | 410 m | LaboraTe [31] |

Vaihingen | Urban | 2008 | Leica ALS50 | 4 p/m^{2} | 471 m | ISPRS [32] |

**Table 3.**Execution times and throughput in the workstation for the Alcoy (6 million points), Trabada (6 million points), and Vaihingen (3.77 million points) data with and without considering input and output (IO).

Site | Alcoy | Trabada | Vaihingen |
---|---|---|---|

Operation | Time (s) | Time (s) | Time (s) |

Input reading | 9.64 | 10.04 | 3.13 |

Neighbours | 1.82 | 1.82 | 8.92 |

Ground filter | 6.11 | 4.24 | 2.58 |

Output writing | 17.37 | 15.79 | 6.54 |

points/s (No IO) | 967,050.24 | 989,997.99 | 321,271.25 |

points/s (with IO) | 195,093.48 | 188,136.22 | 174,510.62 |

**Table 4.**Execution times and throughput in the Zedboard for the Alcoy (6 million points), Trabada (6 million points), and Vaihingen (3.77 million points) data with and without considering input and output (IO).

Site | Alcoy | Trabada | Vaihingen |
---|---|---|---|

Operation | Time (s) | Time (s) | Time (s) |

Input reading | 118.15 | 120.31 | 58.17 |

Neighbours | 36.53 | 36.53 | 122.90 |

Ground filter | 74.78 | 55.52 | 48.47 |

Output writing | 159.96 | 142.12 | 88.37 |

points/s (No IO) | 75,718.72 | 65,174.49 | 21,560.17 |

points/s (with IO) | 18,068.89 | 16,923.67 | 11,621.92 |

Component | BRAM18K | DSP48E | FF | LUT |
---|---|---|---|---|

NCore 1 | 0 | 24 | 5259 | 7725 |

NCore 2 | 0 | 36 | 7513 | 11,088 |

HW Framework | 20 | 0 | 17,484 | 11,532 |

Total HW | 20 | 60 | 30,256 | 30,345 |

Available | 280 | 220 | 106,400 | 53,200 |

Utilisation (%) | 7 | 27 | 28 | 57 |

Operation | Zedboard (PS) | Zedboard (PS + PL) |
---|---|---|

Neighbours time (s) | 123 | 36 |

Total time (s) | 318 | 233 |

points/s (No IO) | 21,560.17 | 44,011.45 |

points/s (with IO) | 11,621.92 | 16,220.70 |

System | Time (s) | Energy Cons. (J) | Energy Cons. Ratio |
---|---|---|---|

Zedboard (PS) | 318 | 954 | 1.36 |

Zedboard (PS + PL) | 233 | 699 | 1 |

Author | Mean Total Error (%) | Mean Kappa (%) | Scan Line Based | Dataset |
---|---|---|---|---|

Axelsson (2000) [2] | 4.82 | 84.19 | ✕ | ISPRS |

Meng et al. (2009) [3] | NA | 79.90 | ✕ | ISPRS |

Pingel et al. (2013) [5] | 2.97 | 90.02 | ✕ | ISPRS |

Chen et al. (2013) [4] | 4.11 | 86.27 | ✕ | ISPRS |

Mongus et al. (2014) [6] | 2.74 | NA | ✕ | ISPRS |

Hu et al. (2014) [7] | 2.85 | 90.29 | ✕ | ISPRS |

Zhang et al. (2016) [8] | 4.39 | 83.86 | ✕ | ISPRS |

Hui et al. (2016) [9] | 5.33 | 81.72 | ✕ | ISPRS |

Chen et al. (2017) [10] | 3.03 | 89.44 | ✕ | ISPRS |

Ma and Li (2019) [11] | 6.22 | 80.19 | ✕ | ISPRS |

Shan and Sampath (2005) [12] | 2.61 | 93.26 | ✓ | Own |

Hebel and Stilla (2008) [13] | NA | NA | ✓ | Own |

Hu et al. (2013) [14] | 8.24 | NA | ✓ | Own |

Proposed method | 0.50 | 88.59 | ✓ | Own |

© 2019 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Martínez Sánchez, J.; Váquez Álvarez, Á.; López Vilariño, D.; Fernández Rivera, F.; Cabaleiro Domínguez, J.C.; Fernández Pena, T.
Fast Ground Filtering of Airborne LiDAR Data Based on Iterative Scan-Line Spline Interpolation. *Remote Sens.* **2019**, *11*, 2256.
https://doi.org/10.3390/rs11192256

**AMA Style**

Martínez Sánchez J, Váquez Álvarez Á, López Vilariño D, Fernández Rivera F, Cabaleiro Domínguez JC, Fernández Pena T.
Fast Ground Filtering of Airborne LiDAR Data Based on Iterative Scan-Line Spline Interpolation. *Remote Sensing*. 2019; 11(19):2256.
https://doi.org/10.3390/rs11192256

**Chicago/Turabian Style**

Martínez Sánchez, Jorge, Álvaro Váquez Álvarez, David López Vilariño, Francisco Fernández Rivera, José Carlos Cabaleiro Domínguez, and Tomás Fernández Pena.
2019. "Fast Ground Filtering of Airborne LiDAR Data Based on Iterative Scan-Line Spline Interpolation" *Remote Sensing* 11, no. 19: 2256.
https://doi.org/10.3390/rs11192256