uav-vineyard-mapping is a publication-facing export of the UAV vineyard mapping and robotic-navigation workspace used for the experiments reported in "An Integrated Aerial-Ground System for Vineyard Mapping and Robotic Navigation".
The video below shows an end-to-end example of the interactive workflow supported by this repository: loading UAV images from a local disk folder, running an inference model to obtain vineyard detections, automatically filtering those detections, manually refining the result where needed, and exporting a topological navigation map for downstream robotic use.
Vineyard.Detection.mp4
This demo is meant to give a quick overview of the full processing chain. The sections below then point to the main scripts, curated outputs, and external datasets needed to inspect or reproduce individual stages of that pipeline.
This release focuses on:
- research code and supporting utilities
- curated CSV result summaries, workbook snapshots, and provenance files
- small public Riseholme examples
- links to public datasets hosted on Zenodo
This release intentionally does not include:
- raw training imagery
- large dataset downloads
- partner-site or non-public field data
- model weights or Roboflow API keys
- bulk intermediate inference outputs, caches, or temporary files
scripts/: canonical home for all Python entrypoints, active workflows, optional toolkits, and archived research codescripts/README.md: navigation guide for active, optional, and archived script areasresults/: curated experiment summaries and provenance/config filesexamples/: a few public sample images and lightweight output artifactsground_truth/riseholme/: public Riseholme reference files used by several scriptsdata/README.md: external data contract and Zenodo download locations
Create the Conda environment:
conda env create -f environment.yml
conda activate uav-vineyard-mappingIf you prefer pip, the environment.yml file also lists the main Python dependencies used across the exported workflows.
The public datasets used in this work are hosted on Zenodo and are not committed to GitHub.
- Riseholme COCO-format multi-season dataset:
10.5281/zenodo.19234907 - AGRIDS UAV vineyard dataset release:
10.5281/zenodo.15211733
See data/README.md for the expected local folder names and what is intentionally excluded from this repository.
Important local-data assumptions:
- many training and inference scripts expect user-supplied imagery under local
images/folders - model checkpoints are expected under local
weights/folders - Roboflow-backed scripts expect a local
config/api_key.json
Those assets are deliberately not part of this public release.
Start with the curated outputs:
Representative entry scripts:
python scripts/cluster_poles.py examples/outputs/riseholme_detected_pole_coordinates.geojsonpython scripts/run_clustering_example.pypython scripts/gaussian_heatmap_resnet/train_resnet_validation_yolo_labels.pypython scripts/gaussian_heatmap_resnet/inference_segmentation_yolo_labels_full.pypython scripts/generate_topological_map.py
The pipeline demo above is the most compact overview of how these stages fit together in practice, from raw UAV imagery through inference, cleanup, manual refinement, and final topological-map generation.
All Python entrypoints now live under scripts/. The scripts are preserved as research-oriented entrypoints rather than repackaged into a formal Python library. Some scripts use hard-coded relative paths and may need local path edits depending on how you stage imagery, weights, and API credentials.
- The exported repository remote is configured for
https://github.com/LCAS/uav-vineyard-mapping. - The code is released under Apache-2.0; see LICENSE.