CanopyRS
A pipeline for processing high-resolution geospatial orthomosaics to detect, segment, and classify trees across various forest biomes.

What is CanopyRS?
CanopyRS takes high-resolution aerial imagery and runs it through a modular component pipeline to produce per-tree detections, segmentations, and classifications. It supports state-of-the-art model architectures spanning both CNNs (Faster R-CNN, Mask R-CNN, RetinaNet) and transformers (DINO, Mask2Former, SAM 2, SAM 3). The pipeline is configurable via YAML, and ships with pre-trained models and preset configurations for common use cases.
How it works
A CanopyRS pipeline is a sequence of components, each responsible for one step:
- Tilerizer — splits a large orthomosaic into overlapping tiles
- Detector — runs object detection on each tile
- Segmenter — runs object segmentation on each tile or refines detections into instance segmentation masks (SAM models)
- Aggregator — merges overlapping detections across tiles using NMS to obtain raster-level predictions
- Classifier — classifies each detected tree
The pipeline handles all I/O, state management, and background tasks. Components only implement their core logic.
Quick links
Getting started
- Installation — get CanopyRS running
- Quickstart — run inference in minutes
User guide
- Components — understand each pipeline stage
- Configuration — configure pipelines via YAML
- Presets — pre-built configurations for common scenarios
- Data — download datasets for training and benchmarking
- Evaluation — NMS parameter search and benchmarking
- Training — train your own detector models
API reference
- Pipeline — pipeline orchestration
- Components — component classes
- DataState — state management