Giter VIP home page Giter VIP logo

forest_model's Introduction

Forest models reconstruction method

Reconstruction of 3D forest models from segmented point clouds


Overview

This method is a complete pipeline of forest mockups reconstruction from wood/leaf segmented point clouds. It is made of the following steps:

  1. Filtering of the leaves points.
  2. Outliers removal for an easier clustering.
  3. Clustering of the complete scan to isolate the trees.
  4. Trees mesh model reconstruction

Setup

The method relies on Adtree, TreeQSM or aRchi to reconstruct 3D trees mesh models from point clouds representing single trees

Requirements

  • Linux (tested on Ubuntu 20.04.4 LTS)
  • PCL 1.11

Install

Install this library by running the following command:

cmake .
make

Modeling of forest plots

The method starts by splitting the input point cloud into clusters, each of those clusters corresponding to individual tree. Then the user runs one of the proposed methods (AdTree, TreeQSM or aRchi) in order to build a 3D mockup of each individual tree.

Clustering

Because the tree reconstruction method uses point cloud of isolated trees, the input point cloud needs to be at first splitted into clusters. A statistical removal filter has been added in order to filter the LiDAR noise for better identifying the clusters. Some of the clusters may correspond to lower vegetation objects; those clusters are filtered out by checking their size along the Z axis.

To cluster the point cloud, run the following command:

./reconstruction INPUT_FILE OUTPUT_DIR SOOMTHNESS_TOLERANCE CURVATURE_THRESHOLD MIN_CLUSTER_SIZE MAX_CLUSTER_SIZE MIN_SIZE MEAN_K STD_DEV_MUL_THRESH

Where:

  • INPUT_FILE is an ASCII file containing points stored in the following format: X Y Z label (leaf label=0).
  • OUTPUT_DIR is the output directory where every tree point clouds will be stored.
  • SOOMTHNESS_TOLERANCE: If the deviation between points normals is less than the smoothness tolerance (in degrees) then they are suggested to be in the same cluster
  • CURVATURE_THRESHOLD: if this curvature at the current point is less than the curvature threshold then the algorithm will continue the growth of the cluster using the newly added point.
  • MIN_CLUSTER_SIZE and MAX_CLUSTER_SIZE are the size limits of the clusters.
  • MIN_SIZE is the minimum size along the Z axis for a cluster to be considered.
  • MEAN_K and STD_DEV_MUL_THRESH are the number of neighbors to analyze for each point and the standard deviation multiplier.

We usually use:

./reconstruction INPUT_FILE OUTPUT_DIR 45. 10. 1000 1000000000 2.0 8 0.5

Reconstruction

This package contains 3 reconstruction methods designed to produce 3D mesh models from individual scanned trees.

[AdTree]

First, compile AdTree by running the following command:

cd AdTree
mkdir build
cd build
cmake ..
make

Once the input point cloud has been clustered, simply call Adtree in batch mode:

./Adtree INPUT_DIR OUTPUT_DIR
  • INPUT_DIR is the directory where every tree point clouds are stored.
  • OUTPUT_DIR is the directory containing the resulting tree mockups.

[TreeQSM]

To use TreeQSM, call in Matlab the function run.m as follow:

run(LIST_OF_FILES,OUTPUT_DIR)
  • LIST_OF_FILES is a glob containing the ASCII files resulting from the clustering
  • OUTPUT_DIR is the directory containing the resulting tree mockups.

For instance, one can run:

run("~/GEDI/GEDI008/ascii/*.xyz","~/GEDI/GEDI008/qsm/")

[aRchi]

To use aRchi, run the following command:

Rscript reconstruction.R INPUT_DIR OUTPUT_DIR D CL_DIST MAX_D
  • INPUT_DIR is the directory where every tree point clouds are stored.
  • OUTPUT_DIR is the directory containing the resulting tree mockups.
  • D is the distance of research for point neighborhood
  • CL_DIST is the clustering distance
  • MAX_D is the maximum searching distance for skeleton building

For instance, one can run:

Rscript reconstruction.R ~/GEDI/GEDI009/trees ~/GEDI/GEDI009/aRchi 0.3 0.1 0.05

forest_model's People

Contributors

julesmorel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

xiaojiean

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.