Automatic Tree Detection and Characterization with DroneDeploy

@Nipul, @chascoadmin, @JamesC,

By combining the DroneDeploy 3D model and its Plant Health map with a LiDAR bare-earth map, I was able to automatically identify the trees on a 17 acres site. The data allowed characterization of tree heights, their location and their type, deciduous or evergreen. Histogram plots of the data show the distribution of tree heights with the standard metrics of average, median, mode, maximum and minimum. The weight of each tree was calculated using information from published articles for estimating the above ground biomass of Douglas fir and alder trees (the dominant species on this site) from tree height. The total tree weight estimated for this site is 1055 tons with a total tree height of 20.5 miles.

First the 3D model was exported to Rhino which constructed a mesh of the 3D model. Then the mesh vertices were colored according their elevation to create a 3D elevation map. Then at each vertice of the mesh, the elevation of the LiDAR bare-earth map at the same x,y location was subtracted in order to create a conformal elevation map.

Next, contours with a 3" spacing were added to the mesh model. These were used to identify tree tops by looking for contours with (1) no contour above and (2) the mesh above the contour’s centroid is less than 3" away (the step between contours). Here is a view of a portion of the 3D model with tree tops identified by a green contour:

Finally, a screen capture of the Plant Health map from DroneDeploy, with its colors set for highest contrast, was used to distinguish deciduous trees from evergreen trees. The mission for this map was flown after the end of the Fall season which maximized the contrast between the tree types. Below the DroneDeploy 2D map for the heavily-treed East portion of this site is shown next to the high-contrast version of the Plant Health map. Comparing the two maps it can be seen that the deciduous trees are mostly red and the evergreen trees are mostly green.

The next picture shows a close-up view of the overlay of the Plant Health map with 75% transparency (created with GIMP) on the uncolored-mesh 3D-model with hillside shading. This shows directly how the red/green color of the Plant Health map is used to identify the deciduous/evergreen trees which are marked with red/green squares and a tag showing the tree height. Click on map to see details.

The final result for automatic tree identification and characterization of the entire 17 acres site is shown below. Click on map to see details.

On this conformal elevation map, red and green markers have been added to the tops of the deciduous trees and the evergreen trees respectively. From this fully automatic procedure, 1347 trees were identified with an overall average height of 80’ and tallest tree of 132’. The estimated weight of the trees on this site is just over 2 million pounds while their combined height is 20.5 miles.

Its a little busy, but here is another view of the full 17 acres result with a height tag on each of the 1347 trees:

It would be nice to see this capability inside of DroneDeploy. The key enabler is the use of a LiDAR bare-earth map. If DroneDeploy supported the import of LiDAR maps and allowed contours to be used within DD (and not just exported) then maps such as this would become possible.



Amazing work Terry. Great job.

Simply amazing result. Kudos Terry! I was surprised to see that the heights of the deciduous were that similar to the evergreens. Obviously a regional characteristic. In central to east Texas evergreens (conifers) are typically 20-30% taller.

Hi @SolarBarn,

Great findings! Your work gave a great representation of the tree count and heights. Once we start implementing a feature similar to this, we may pick your brain to get some ideas. LiDaR isn’t supported today with DroneDeploy, but we are always looking for ways to improve the product.
Thank you for taking the time to do the research and write this up.



The site was clear cut about 70 years ago. The Red Alders of our region are very quick to re-populate a site. So they got a head start on the Douglas Fir and Western Red Cedars. Later, competition with the tall-growing Douglas Firs made the Red Alder put their energy into growing taller and dropping their lower limbs. The result is a remarkable collection of unusually tall Red Alders with over 2’ diameter trunks. Also the shorter Western Red Cedars hold down the evergreen average height. Thus the evergreens average only 15% taller than the deciduous trees on this site.

A next refinement I would like to make in my DroneDeploy-based tree characterization, is to differentiate the Western Red Cedars from the Douglas firs. I can see characteristic differences in the nadir view of the two species (see left picture below). But it would probably take a good pattern-recognition algorithm to reliably identify these trees. Along these lines, there is a DroneDeploy App by TensorFlight that can automatically identify trees but I cannot yet get it to run on my maps.

And then I would like to separate the Alders from the Big Leaf Maples. Again they look different from the top and this should be exploitable for identification. This works best in winter when the branches are exposed allowing the different branch patterns to be identified and the green moss on the trunks of the Big Leaf Maples to be seen. The photos below highlight these characteristics.


You could use a third party app like Global Mapper’s v19 LiDAR Module, which was enhanced in this edition with a powerful tool to generate point clouds from UAV imagery, called Pixels-To-Points. The tool generates point clouds from UAV collected imagery and the existing classification tools from the LiDAR module make it very easy to extract from them ground, vegetation, buildings, even power lines:
Kudos for the work btw.

1 Like


This is a summary of what I did to count trees and measure their heights.


1 Like

Very nice Terry! That’s just awesome!

Looks like an RGB image, it’s a LIDAR Module?

Thanks again, Terry, really appreciate your help here.


Kevin Gillespie