Tagging 3D point clouds of natural scenes
The vegetation is recognised independently of its shape and size in a (x,y,z) point cloud.
Data captured with a LiDAR in St Michel's mount bay (France). Downstream sediment accumulation is clearly visible in the image.
Scale is given in meters, click on the image to enlarge. Scene visualised using CloudCompare.
Consider a scene comprising rocks, sand, and vegetation patches. At a small scale the sand looks like a 2D surface, the rocks look 3D, and the vegetation is a mixture of small elements like stems and leaves (mostly 1D and 2D). At a larger scale the sand still looks 2D, the rocks now look more 2D than 3D, and the vegetation has become more like a 3D bush. When combining information from different scales we can thus build signatures of the scene at each point. This signature can then be used to discriminate vegetation from soil for example.
Classifier in the plane of maximal separability for the vegetation and soil. The classifier may be graphically edited in Inkscape.
Article, software, documentation and example data
If you are not familiar with command-line processing, I recommend using the CloudCompare plugin.
Otherwise, download the old (unmaintained) program for Linux 64 bits and/or Windows 64 bits (or for 32bits older computers or antiquities). The Linux version is the reference. Note that compiling Canupo for your system is recommended for better performances. As from 25/02/13 these packages also contain the M3C2 scene comparison utility, see the dedicated page for details.
A tutorial is included within the above packages. Please also check Dimitri Lague web site for a detailed user guide + scripts on windows, as well as more data sets, ready to use classifiers, and more information!
The source code is maintained in my source repository, check it for updates. It can be downloaded either as a tar.gz archive, or by using GIT: git clone git://nicolas.brodu.net/canupo. You will need a recent C++ compiler as well as some support libraries (boost, cairo, lapack).