Tree Genus Classification (CropModel)

Classifies tree crowns detected by DeepForest into 54 genera. Trained on RGB imagery from 29 NEON sites across North America.

Trained with NeonTreeClassification.

Usage

from deepforest import main
from deepforest.model import CropModel

detector = main.deepforest()
detector.load_model("weecology/deepforest-tree")

genus_model = CropModel.load_model("weecology/cropmodel-tree-genus")

results = detector.predict_tile(path="tile.tif", crop_model=genus_model)
# results has columns: cropmodel_label, cropmodel_score

Results (Test Set)

Metric Value
Accuracy 44.0%
Macro F1 0.25
Weighted F1 0.44
Classes 54

Full per-class precision/recall/F1 in classification_report.csv.

Training

Parameter Value
Architecture ResNet-18 (torchvision, ImageNet pretrained)
Input 224x224 RGB, ImageNet normalization
Resize interpolation nearest-neighbor
Optimizer AdamW (lr=2.5e-4, weight_decay=1e-4)
Scheduler ReduceLROnPlateau
Max epochs 500 (early stopping patience=15)
Best epoch 3 (val_loss=2.22)
Batch size 256
Class weights sqrt inverse-frequency
Seed 42

Dataset

16,348 deduplicated tree crowns from 29 NEON sites. One sample per unique individual, rare species (<6 samples) removed. Labels from NEON Vegetation Structure Taxonomy (VST) field surveys. RGB crown crops extracted at 0.1m resolution.

Split Samples
Train (70%) 11,443
Val (15%) 2,452
Test (15%) 2,453

Split method: stratified random, seed=42.

Sites: ABBY, BART, BONA, CLBJ, DEJU, DELA, GRSM, GUAN, HARV, HEAL, JERC, KONZ, LENO, MLBS, MOAB, NIWO, ONAQ, OSBS, PUUM, RMNP, SCBI, SERC, SJER, SOAP, TALL, TEAK, UKFS, UNDE, WREF

License

MIT

Downloads last month
36
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support