Coder Social home page Coder Social logo

artemis_treeiso's Introduction

Individual-tree isolation (treeiso) from terrestrial laser scanning

CloudCompare Plugin was developed now!

The University of Lethbridge - Department of Geography & Environment - Artemis Lab

Author - Zhouxin Xi ([email protected]) and Prof. Chris Hopkinson ([email protected])

Please cite:

Xi, Z.; Hopkinson, C. 3D Graph-Based Individual-Tree Isolation (Treeiso) from Terrestrial Laser Scanning Point Clouds. Remote Sens. 2022, 14, 6116. https://doi.org/10.3390/rs14236116

This tool relies on the cut-pursuit algorithm, please also consider citing:

Landrieu, L.; Obozinski, G. Cut Pursuit: Fast Algorithms to Learn Piecewise Constant Functions on General Weighted Graphs. SIAM J. Imaging Sci. 2017, 10, 1724–1766. hal link

Raguet, H.; Landrieu, L. Cut-pursuit algorithm for regularizing nonsmooth functionals with graph total variation. In Proceedings of the International Conference on Machine Learning, Stockholm, Sweden, 10–15 July 2018; Volume 80, pp. 4247–4256.

Folder structure

├── data                                    # All raw data
│   ├── LPine1_demo.laz                     # Example TLS data (just a subset from a TLS plot due to the file size limit)
├── Matlab                                  # treeiso Matlab Source code 
│   ├── treeiso.m                           # Main program
│   ├── cutPursuit.m                        # Wrapper of L0 cut-pursuit mex code
│   ├── jitknnsearch.m                      # Matlab jit accelerated knnsearch - fast knnsearch from small amount of points
│   ├── overlapping.m                       # Used to calculate overlap ratio between a pair of crown convex hulls
│   ├── L0_cut_pursuit.mexw64               # compiled L0 cut pursuit program
│   ├── L0_cut_pursuit_segmentation.mexw64  # compiled L0 cut pursuit program
│   ├── las2mat.mexw64                      # compiled las/laz file reading program
│   ├── mat2las.mexw64                      # compiled las/laz file writing program
├── LICENSE
└── README.md

1. Preprocessing requirements

If you use your own TLS data, it is recommended to clean the point clouds and remove the noise, e.g. using CloudCompare(Sober filter,NN=10,std=1)

It is also suggested to decimate the point cloud to reasonable resolution (~2cm)

Ground points must be removed prior to tree isolation

** The mex files were all compiled under Windows 10 (64bit) Intel using Visual Studio 2019. If you need to compile on your own, please refer to the authors' sites for detailed steps. Links below:

cutpursuit, mastools

2. treeiso

Run matlab code under Matlab\treeiso.m to isolate TLS trees

Type in the folder path where your laz files are located

The treeiso.m will exhaustively search all laz files and run the treeiso for each laz file

You can type in the data folder for a quick test. The treeiso.m will isolate trees from LPine1_demo.laz

Result laz file will be saved to Matlab\output\

The laz file will include three additional fields:

  1. init_segs: show the initial segmentation from 3D cut-pursuit
  2. interim_segs: show the 2nd-stage segmentation from 2D cut-pursuit
  3. segs: final tree segmentation

Please be patient: processing a laz file of ~25MB costs about 10 minutes using Intel Core i7-9700K and 16GB RAM.

Example isolated trees:

Raw TLS Example1 After treeiso isolation Top view
demo1_crop demo1_treeiso_crop demo1_treeiso2_crop
Raw TLS Example2 After treeiso isolation Top view
TAspen1_crop TAspen1_treeiso_crop TAspen1_treeiso2_crop
Raw TLS Example3 After treeiso isolation Top view
NPoplar2_crop NPoplar2_treeiso_crop NPoplar2_treeiso2_crop

artemis_treeiso's People

Contributors

truebelief avatar colorxixi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.