加载中…
加载中…
Classifies tree crowns detected by DeepForest into 148 species using USDA PLANTS codes. Trained on RGB imagery from 29 NEON sites across North America.
Trained with NeonTreeClassification.
from deepforest import main
from deepforest.model import CropModel
detector = main.deepforest()
detector.load_model("weecology/deepforest-tree")
species_model = CropModel.load_model("weecology/cropmodel-tree-species")
results = detector.predict_tile(path="tile.tif", crop_model=species_model)
# results has columns: cropmodel_label, cropmodel_score
| Metric | Value |
|---|---|
| Accuracy | 39.3% |
| Macro F1 | 0.23 |
| Weighted F1 | 0.39 |
| Classes | 148 |
Full per-class precision/recall/F1 in classification_report.csv.
| 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 | 4 (val_loss=2.65) |
| Batch size | 256 |
| Class weights | sqrt inverse-frequency |
| Seed | 42 |
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
MIT