Project writeup

Point Cloud Deep Learning for Automated Peach Tree Pruning

End-to-end LiDAR + 3D deep learning system that learns expert dormant pruning directly from before/after point clouds and outputs robot-ready pruning plans, matching expert pruning within ~2.5% volume error.

Role

Co-first author & researcher: Designed the full geometry + ML pipeline, from tree extraction and pre/post alignment through Point Transformer v3 training to pruning-location extraction and collision-aware tool poses.

Stack

Point Transformer v3PyTorchTreeQSMOpen3DDBSCANICPS-LBC SkeletonizationFARO Focus3D LiDARPythonPointNet++UNet++

Context

Built a complete system for automated dormant pruning of free-standing peach trees using only terrestrial LiDAR scans captured before and after expert pruning. The pipeline automatically extracts individual trees from orchard-level point clouds, aligns pre- and post-prune scans, reconstructs ground-truth pruned branches and cut locations without manual labels, and trains a Point Transformer v3 model to segment pruned vs non-pruned wood. Model predictions are then converted into pruning locations and collision-aware shear-cutter tool poses suitable for a robotic arm.

What I built

  • 1Ground-truth labels come entirely from geometric operations on aligned pre/post LiDAR + skeletonization, eliminating manual annotation and making it easy to scale to more trees.
  • 2Uses a state-of-the-art point-cloud model (Point Transformer v3) with multi-modal inputs (geometry, color, surface normals, and rootstock type) and aggressive 3D augmentations for robustness.
  • 3Bridges deep learning and geometry: TreeQSM cylinders, S-LBC skeletons, and a branch DAG turn raw per-point predictions into clean, anatomically meaningful pruning locations.
  • 4Produces not just predictions but full robot plans: ordered pruning sequences and shear-cutter tool poses that respect branch orientation and avoid collisions.
  • 5Validated across 74 trees from a real orchard, demonstrating that the approach generalizes across individual tree shapes and two rootstocks within the same cultivar.

Results

  • Trained a Point Transformer v3 model that achieves 0.86 F1 (0.81 precision, 0.91 recall) while keeping mean pruned-branch volume error to just 2.5% on held-out trees.
  • Recovered 92.5% of expert pruning locations with only ~1–2 extra cuts per tree on average; many of those extras were validated by horticulture experts as genuinely useful cuts.
  • Among the first systems to learn pruning behavior directly from before/after LiDAR scans without manual branch annotations or hard-coded pruning rules.
  • Delivers a complete pipeline from raw orchard scans to robot-executable pruning sequences and tool poses; paper under review at ICRA 2026.

Problem

Dormant pruning is essential for tree health and fruit quality but is slow, repetitive, and depends on scarce expert labor—over half of specialty crop growers report worker shortages. Prior automation attempts typically require hand-labeled branch classes or brittle rule-based heuristics that don’t transfer well across cultivars or training systems. Our question was: can we learn expert pruning behavior directly from raw 3D geometry, at orchard scale, without expensive manual annotation?

Approach

We designed a five-stage geometry + ML pipeline. First, we automatically segmented individual trees from orchard-level LiDAR using DBSCAN-based clustering, bounding box expansion to recapture trunks, and RANSAC-based ground removal. Second, we aligned pre- and post-prune scans for each tree via centroid alignment and ICP to enable accurate geometric differencing. Third, we derived ground-truth pruned branches as a set difference between aligned clouds and used S-LBC skeletonization plus TreeQSM cylinder models to fill LiDAR gaps and map removed regions to anatomically meaningful cut locations, one per branch. Fourth, we trained UNet++ (voxel), PointNet++ (point), and Point Transformer v3 (best) on per-point xyz, RGB, normals, and rootstock type to perform binary segmentation of pruned vs non-pruned wood, with heavy 3D data augmentation. Finally, we fed Point Transformer predictions back through the geometry pipeline to extract pruning locations, planned a quadrant-based pruning sequence from canopy exterior inward, and computed collision-aware shear-cutter poses using TreeQSM geometry.

What I learned

On 74 scanned peach trees (55 train, 12 val, 7 test) from a UGA research orchard across two rootstocks, Point Transformer v3 clearly outperformed UNet++ and PointNet++ on held-out trees. It achieved an average of 0.81 precision, 0.91 recall, and 0.86 F1, with mean absolute pruned volume error of just 2.5% (vs 14.2% for UNet++ and 6.0% for PointNet++). When converted to pruning locations, the system correctly matched 92.5% of expert cut points while adding only about 1.6 extra cuts per tree on average. Horticulture experts reviewing those “extra” cuts confirmed many were actually desirable pruning actions that the original expert had skipped, suggesting the model is learning consistent pruning heuristics rather than just memorizing labels. The final output is a robot-ready cut sequence with feasible, collision-aware tool poses, forming a realistic foundation for field-deployable pruning robots.

Links