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.