Skip to main content

Benchmark dataset for Airborne Tree Machine Learning

Project description

Github Actions Documentation Status Version PyPI - Downloads

Overview

The MillionTrees benchmark is designed to provide open, reproducible, and rigorous evaluation of tree detection algorithms. This repo is the Python package for rapid data sharing and evaluation.

Current status

We have released a beta version of public data, these are datasets that have previously been published and have a DOI. We will followup this release, likely with a 1.0 tag, of the previously unpublished parts of the dataset along with a scientific manuscript.

The current release (v0.18) contains 9,005,427 annotations across 132,078 images from 52 sources, totaling 353 GB:

Dataset Annotations Images Sources Size
TreeBoxes 7,064,065 57,685 13 63.05 GB
TreePolygons 921,945 27,578 28 112.45 GB
TreePoints 1,019,417 46,815 11 177.86 GB
Total 9,005,427 132,078 52 353 GB

📊 Current Dataset Status: See our comprehensive Dataset Release Report for up-to-date information on dataset versions, sizes, and download links.

Dataloaders

There are three data loaders based on annotation geometry. TreeBoxes are bounding boxes for individual tree detection. TreePoints are centroids for tree counting and detection, and TreePolygons are for finer crown segmentation.

Why MillionTrees?

There has been a tremendous number of tree crown detection benchmarks, but a lack of progress towards a single algorithm that can be used globally across acquisition sensors, forest type and annotation geometry. Our view is that the hundreds of tree detection algorithms for RGB data published in the last 10 years are all data starved. There are many good models, but they can only be so useful with the small datasets any research team can collect. The result is years of effort in model development, but ultimately a lacking solution for a large audience. The MillionTrees dataset seeks to collect a million annotations across point, polygon and box geometries at a global scale.

The MillionTrees dataset represents where we are as a community. Many datasets are incompletely annotated, and there is varying degrees of annotation accuracy. This is by design, we aim to reflect the real, not idealized, status of tree detection algorithms and applications. By including these data that are normally excluded from benchmarks we can both dramatically increase the diversity of tree presentations and backgrounds, as well as engage the community in solving common computer vision challenges for applied machine learning.

Installation

pip install milliontrees

Hugging Face dataset loading and sharing functionality is included in the main package.

Dev Requirements

To build from the GitHub source and install the required dependencies, follow these instructions:

  1. Clone the GitHub repository:

    git clone https://github.com/weecology/MillionTrees.git
    
  2. Change to the repository directory:

    cd MillionTrees
    
  3. (Recommended) Install the dev tooling and docs dependencies with uv (the dev dependency group is installed by default):

    uv sync --extra docs
    
  4. (Optional) Build distributions:

    python -m build
    

Once the installation is complete, you can use the MillionTrees package in your Python projects.

Datasets

Datasets are documented on ReadTheDocs with sample images overlayed with annotations. https://milliontrees.idtrees.org/en/latest/datasets.html

Leaderboard

See the latest results on the leaderboard. https://milliontrees.idtrees.org/en/latest/leaderboard.html

Citing MillionTrees

Acknowledgements

The design of the MillionTrees benchmark was inspired by the WILDS benchmark, and we are grateful to their work, as well as Sara Beery for suggesting the use of this template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

milliontrees-0.12.0.tar.gz (142.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

milliontrees-0.12.0-py3-none-any.whl (86.7 kB view details)

Uploaded Python 3

File details

Details for the file milliontrees-0.12.0.tar.gz.

File metadata

  • Download URL: milliontrees-0.12.0.tar.gz
  • Upload date:
  • Size: 142.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for milliontrees-0.12.0.tar.gz
Algorithm Hash digest
SHA256 2859d472ffda4a6736396d3c928f16fc3f5d15c9187549d1e14c93caf5caaaf2
MD5 548a503fe3d11ce45bc88da834e343e2
BLAKE2b-256 ce0e5f4f2f849f4058520dba8d447cf7a1f701beb7fe2ab7fba45ce258ab5133

See more details on using hashes here.

Provenance

The following attestation bundles were made for milliontrees-0.12.0.tar.gz:

Publisher: python-publish.yml on weecology/MillionTrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file milliontrees-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: milliontrees-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 86.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for milliontrees-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94143b077b9dda418bad156b0b36e6d6c4c728836fa32c5fec84da7ea622633a
MD5 02b19c16c8981ed6442878c75f4b32f6
BLAKE2b-256 c862e99e7708c4bed95bbeea76b53156c8158b410b1433ef76eeb6b44316479b

See more details on using hashes here.

Provenance

The following attestation bundles were made for milliontrees-0.12.0-py3-none-any.whl:

Publisher: python-publish.yml on weecology/MillionTrees

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page