Back

Accurate Tree Counts from Drone Imagery — Validated Across 16 Pine Stands

Tim & Shubham|
Spatial AISegmentationForest Inventory
3D instance segmentation of a pine forest — each tree colored by its predicted instance label

A validation study covering 651 hand-measured trees across 16 stands.

Knowing how many trees are in a stand, and where each one begins and ends, is foundational to inventory work. Stocking estimates, thinning prescriptions, and growth projections all start with an accurate count. Manual delineation does not scale, and automated methods have historically required LiDAR.

For this study, we used the same Gaussian Splat reconstruction described in our height validation — generated from a standard camera drone, with no LiDAR — and ran it through a transformer-based segmentation pipeline. Each splat receives two labels: a semantic class (ground, trunk, foliage, low vegetation, or other/unclassified) and an instance label that indicates whether the splat is background (not part of a tree) or belongs to a unique tree ID.

We hand-measured 651 trees across 16 stands. and benchmarked the model against that field ground truth. On trees ≥ 5 m tall, 8 of 16 stands have exact counts, and 14 of 16 are within two trees of ground truth. In total, we hand-measured 651 trees across 16 stands. Across all stands, mean absolute count error was 3% (1.6% on canopy trees), and on the two out-of-sample stands it was 2.7% (0% on canopy trees). The vast majority of errors are undercounts: the model rarely hallucinates trees, but it sometimes fails to separate adjacent stems.

Loading 3D reconstruction

The Setup

Input. The same Gaussian Splat reconstruction used in our height study. It was captured with a DJI Matrice 4E flown at 90 m AGL with 90/65 overlap — the same camera drone and flight plan you would use for a standard mapping job.

Pipeline. The splat is preprocessed, passed through a transformer-based architecture, and postprocessed. Each splat produces two outputs: a semantic class label and an instance ID.

Validation. Ground truth was collected in the field by our Forestry and UAS Specialist. Every tree was walked, identified, and counted across all 16 stands.

Semantic Segmentation

The semantic output assigns every splat to one of five classes: ground, trunk, tree foliage, low vegetation, and unclassified/noise. It achieves 0.7936 five-class mIoU. That aggregate is pulled down significantly by low IoU on the very sparse “unclassified” class. Collapsing the task to the more decision-relevant binary split — tree vs. non-tree — yields 0.9775 mIoU. Both this split and the and trunk vs. foliage split are clearly separated in the semantic viewer above.

Instance Segmentation — The Count

For inventory work, rather than traditional instance-segmentation metrics such as pointwise F1, precision, and recall, the first important metric is simpler: did the model return the right number of trees? Our system is designed to optimize that operational outcome — accurate tree counts, presence, and location — and it still performs well on conventional out-of-sample metrics, with pointwise F1, precision, and recall all above 0.8.

On trees ≥ 5 m tall, 8 of 16 stands have exact counts, and 14 of 16 are within two trees of ground truth.

Across all stands, canopy trees achieved an F1 of 0.991. Across all trees above 5 m, including subcanopy stems, F1 was 0.973. On the two out-of-sample stands (85 trees the model never saw during training), F1 was 1 on canopy trees and 0.966 on all trees above 5 m, with one of those stands returning a perfect count for all trees above 5 m.

Predicted vs. Ground Truth — Per Stand

01020304050607080SS Plot 1SS Plot 2-2SS Plot 3-1SS Plot 4-1SS Plot 5SS Plot 6-2SS Plot 7144742 P4144824 P2144824 P3144824 P8-3145696 P1-4145869 P3-8145869 P4145869 P5-2145869 P9Ground TruthPredicted (exact)Predicted (off)Out-of-Sample

The chart above shows every plot. Green bars indicate exact matches, and most of the remainder still sit very close to ground truth: 14 of 16 stands are within two trees. The single visible outlier is 145869 Plot 4, a densely stocked site with 71 ground-truth trees where many adjacent pairs were counted as one. That failure mode dominates the error budget.

Where It Breaks

Most errors are undercounts. Across all 16 stands, the model predicted 628 trees against 651 ground-truth trees — a net deficit of 23 trees. There were only 6 overcounts in the entire dataset, and all 6 were subcanopy instances.

One failure mode dominates: two adjacent trees predicted as a single instance. This is most pronounced in densely stocked stands — 145869 Plot 4 alone accounts for 8 of these cases.

Beyond close spacing, missed or under-segmented trees were often small, thin subcanopy stems or the occasional hardwood in predominantly pine stands.

Canopy-level errors (trees large enough to be merchantable timber) are rare: 12 across all 651 trees, concentrated in the two densest stands. Across the other 14 stands, canopy tree counts are either perfect or off by one.

We are actively working on all of the failure modes above, with particular focus on the dominant one — under-segmentation of adjacent trees in merchantable-sized pines.

Summary

Trees Validated651628 predicted
Perfect Stands8 / 16Exact count match
Canopy F10.991
All Trees F10.973>5 m

What This Means

Combined with the per-tree heights we published last month, each tree now has an identity, a location, and a height — all from a single camera-drone flight. This is the foundation of a per-tree inventory.

At the stand scale, aggregation dampens some of the variance, so realized count accuracy is slightly better than the per-tree statistics imply. Despite a small undercount bias (the model misses trees more often than it hallucinates them), stems per hectare tracks ground truth closely, and the remaining errors are concentrated in subcanopy stems and tightly adjacent trees — conditions where even field crews may disagree.

With per-flight costs orders of magnitude lower than ground surveys, inventory shifts from a once-every-five-years exercise to repeated monitoring of individual trees over time. Growth, mortality, storm damage, thinning response — tree by tree, flight by flight.

What's Next

The same 3D reconstruction that produces these instance labels and heights also contains the geometry needed for diameter, taper, and crown structure — and we're working toward extracting all of it.

If you manage timberland or run a consulting forestry practice, we'd welcome the chance to show you what this looks like on your stands.

michael@coolant.earth · Schedule a call