About the project
This research started with LiDAR scans of peach trees taken before and after expert pruning. I worked on turning those pairs of scans into training data, learning which branches were removed, and translating the model’s predictions into a sequence of cuts for a robotic arm.
How it works
- 1Separates individual trees from orchard scans and aligns the before-and-after pairs.
- 2Finds removed branches by comparing the scans and reconstructing missing geometry.
- 3Trains a point-cloud model to mark the wood it predicts should be pruned.
- 4Groups those predictions into branches and finds a cut location for each one.
- 5Orders the cuts and calculates cutter positions and orientations using the reconstructed tree.
At a glance
- →Paper submitted for review to ICRA 2027.
- →Matched 92.5% of expert cut locations, with about 1.6 extra cuts per tree on average.
- →Reached a 0.86 F1 score and a 2.5% mean absolute error in pruned volume on held-out trees.
- →Created training labels from before-and-after scans without labeling individual branches by hand.
- →Converted predictions into an ordered set of cuts and cutter poses that account for nearby branches.
Why this project
Pruning takes time and experience. Writing rules for every branch is difficult, and labeling scans by hand adds more work. We wanted to see whether the branches removed by an expert could provide the training examples directly.
The approach
I separated individual trees from orchard scans with DBSCAN and removed the ground with RANSAC. After aligning each pair of scans with ICP, I used the differences to identify removed branches. S-LBC skeletons and TreeQSM cylinder models helped fill gaps in the scans and locate one cut per branch. We compared UNet++, PointNet++, and Point Transformer v3 using position, color, surface normals, and rootstock type as inputs. I then used the predicted branches to plan cuts from the outside of the canopy inward and calculate cutter poses that avoid nearby branches.
Results and notes
We used 74 trees from a UGA research orchard: 55 for training, 12 for validation, and 7 for testing, across two rootstocks. Point Transformer v3 reached 0.81 precision, 0.91 recall, and 0.86 F1. Its mean absolute pruned-volume error was 2.5%, compared with 14.2% for UNet++ and 6.0% for PointNet++. The resulting cuts matched 92.5% of expert locations, with about 1.6 additional cuts per tree. Horticulture experts considered many of those extra cuts useful, which made expert review an important part of interpreting the results. These results describe the held-out trees in this dataset; the output is a proposed cutting plan.
Links