Skip to content

Presets

CanopyRS ships with preset pipeline configurations for common use cases. Each preset is a YAML file under canopyrs/config/pipelines/.

Available presets

We provide different preset configs depending on your GPU resources and use case. You can find these config files in canopyrs/config/pipelines/—feel free to copy and adapt them to optimize inference on your data.

Instance Segmentation (SAM 3)

Note: SAM 3 requires a Hugging Face access request from Meta before first use. See Installation — SAM 3 access request for details.

Config file Architecture Train dataset(s) Performance/Requirements Quality Description
preset_seg_multi_NQOS_selvamask_SAM3_FT_quality.yaml DINO + Swin‑L 384 + SAM 3 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox), fine-tuned on SelvaMask ~10 GB GPU memory Best (Recommended for best quality) SelvaMask fine-tuned DINO detector and SAM 3 segmenter at high resolution (4.5 cm/px GSD) for best quality.
preset_seg_multi_NQOS_selvamask_SAM3_FT_fast.yaml DINO + Swin‑L 384 + SAM 3 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox), fine-tuned on SelvaMask ~10 GB GPU memory High (Recommended for a bit faster, high-quality inference) SelvaMask fine-tuned DINO detector and SAM 3 segmenter at lower resolution (7 cm/px GSD) and reduced tile overlap for faster inference.

Instance Segmentation (SAM 2)

Config file Architecture Train dataset(s) Performance/Requirements Quality Description
preset_seg_multi_NQOS_SAM2.yaml DINO + Swin‑L 384 + SAM 2 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox) ~10 GB GPU memory High Same detector as preset_det_multi_NQOS_dino_swinL.yaml, with SAM 2 chained after detection for instance segmentations.
preset_seg_multi_NQOS_SAM2_smalltrees.yaml DINO + Swin‑L 384 + SAM 2 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox) ~10 GB GPU memory High (Recommended for small trees) Optimized for smaller trees (up to ~15 m) with 4 cm/px GSD and smaller tiles.
preset_seg_multi_NQOS_SAM2_largetrees.yaml DINO + Swin‑L 384 + SAM 2 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox) ~10 GB GPU memory High (Recommended for large trees) Optimized for larger trees (up to ~60 m) with 7 cm/px GSD and larger tiles.

Instance Detection only

Config file Architecture Train dataset(s) Performance/Requirements Quality Description
preset_det_multi_NQOS_dino_swinL.yaml DINO + Swin‑L 384 Multi-resolution, multi-dataset (NeonTrees, QuebecTrees, OAM-TCD, SelvaBox) ~10 GB GPU memory High The best detection model from our paper. NMS hyper-parameters found using the RF1₇₅ metric.
preset_det_single_S_dino_r50.yaml DINO + ResNet‑50 SelvaBox (single resolution, 6 cm/px) Faster, lower memory Medium Single resolution model with lower memory footprint compared to Swin L-384 backbones.
preset_det_single_S_fasterrcnn_r50.yaml Faster R‑CNN + ResNet‑50 SelvaBox (single resolution, 10 cm/px) Fastest, lowest memory Low Faster and lower memory footprint but lower quality.

How to use a preset

Pass the preset file name to infer.py with the -c flag:

python infer.py -c preset_seg_multi_NQOS_SAM2_smalltrees.yaml -i <PATH_TO_TIF> -o <PATH_TO_OUTPUT_FOLDER>

Customizing a preset

Copy a preset YAML file, edit it, and point -c to your copy. All inline parameters can be tweaked without changing any code. See Configuration for further details on how to build your own pipeline.