Skip to content

Configuration reference

All settings live in data/interim/pipeline.yaml. Values marked TUNABLE are the first candidates for adjustment when adapting the pipeline to a new camera setup.

image

Key Type Default Description
margin_px int 272 TUNABLE. Height (in pixels) of the camera metadata strip at the bottom of each image. Cropped before detection. Measure the strip height for your specific camera model.
input_extension str ".jpg" File extension glob used by process_directory. Case-insensitive (both .jpg and .JPG are always matched).

detector

Key Type Default Description
model str "yolo11n.pt" TUNABLE. YOLO checkpoint filename. Larger variants (yolo11s.pt, yolo11m.pt) are more accurate at the cost of speed.
model_dir str "models/YOLO" Directory containing the YOLO checkpoint, relative to project root.
bird_class_id int 14 COCO class index for "bird". Should not need changing unless using a custom YOLO model.
confidence_threshold float 0.3 TUNABLE. Minimum YOLO detection score. Lower values catch more birds (higher recall, lower precision).
slice_size int or null 1280 TUNABLE. SAHI tile size in pixels. Set to null to disable tiling (faster but may miss small subjects).
overlap_ratio float 0.2 TUNABLE. Fractional overlap between adjacent SAHI tiles. Larger values reduce missed detections at tile boundaries.
nms_iou_threshold float 0.5 TUNABLE. IoU threshold for SAHI post-NMS tile merge. Lower values keep more boxes — reduce to ~0.3 if two nearby birds are incorrectly merged.

classifier

Key Type Default Description
model str "hummingbird_classifier.pt" Classifier checkpoint filename.
model_dir str "models" Directory containing the classifier checkpoint.
image_size int 224 Input size fed to EfficientNetV2-S. Do not change unless you retrain with a different input resolution.
hummingbird_label int 1 Numeric label assigned to positive (hummingbird) predictions.
confidence_threshold float 0.5 TUNABLE. Minimum sigmoid probability to classify as hummingbird.

training

Used by scripts/train_classifier.py and overridable via CLI flags.

Key Type Default Description
base_model str "efficientnet_v2_s" TUNABLE. Backbone architecture.
epochs int 30 TUNABLE. Total training epochs.
batch_size int 32 TUNABLE. Batch size. Scale LR linearly when changing (new_lr = old_lr * new_bs / old_bs).
learning_rate float 0.0003 TUNABLE. Head-phase learning rate.
weight_decay float 0.0001 L2 regularisation.
val_split float 0.2 Fraction of data reserved for validation (when val_dir is not supplied).
early_stopping_patience int 5 Stop training if val loss does not improve for this many epochs.

deduplication

Key Type Default Description
window_seconds int 18 TUNABLE. Records within this time window are considered duplicates of the same event.

preprocessing

Key Type Default Description
pad_fraction float 0.10 TUNABLE. Fractional padding added around each detected bounding box before cropping the bird patch. 0.10 adds 10 % padding on each side.