IBBI Co-DINO arthropod detector (EVA-02-L)
A single-class detector (arthropod) that finds any arthropod in any imaging setting: lab dishes and scanners,
light traps, sticky cards and pitfall trays, camera traps over vegetation, and field photographs. It is the most accurate
detector of the ibbi package, and much larger than the default
YOLO11x arthropod detector: use a GPU.
import ibbi
det = ibbi.create_model("codino_arthropod_detector")
boxes = det.predict("trap.jpg", conf=det.operating_conf) # operating point (0.65)
pipe = ibbi.create_pipeline(detector="codino_arthropod_detector", det_conf=det.operating_conf) # + hierarchical classifier
ibbi runs the model on plain PyTorch (a port of the inference path of Co-DETR; no MMDetection or MMCV needed). The
port reproduces the original implementation: on 19 test images from every imaging setting it returns the same detections
above confidence 0.3, with box IoU ≥ 0.999 and scores within 0.003.
Model
| Architecture | Co-DINO (Co-DETR, Zong, Song & Liu, ICCV 2023): EVA-02 ViT-L/16 backbone, simple feature pyramid (5 levels), two-stage DINO deformable transformer with 1,500 queries; the collaborative auxiliary heads are used in training only |
| Initialisation | Co-DETR's Objects365-pretrained Co-DINO EVA-02-L checkpoint (co_dino_5scale_lsj_vit_large_lrd_o365_24e) |
| Input | keep-ratio resize to fit 2048 × 1280 px, padded to a multiple of 32 |
| Parameters | 347.1 M (inference) |
| Post-processing | top 1,500 queries, linear soft-NMS (IoU 0.8), at most 1,000 boxes |
| Training data | IBBI arthropod detection corpus v3: 307,421 images and 889,283 boxes from 14 datasets in 5 environment categories; train split 239,477 images, square-root source balancing |
| Training | 81,000 steps at 16 images per step (8×B200), about 3 passes over the balanced mix; AdamW, step learning-rate schedule, fp32 |
| Checkpoint | step 75,000, chosen before testing by the highest recall at ≤ 0.2 false alarms per image on the corpus validation sample (raw weights; the EMA copy is not used) |
| Operating confidence | 0.65: at most 0.2 false alarms per image on exhaustively labelled validation images |
| Speed | about 1.5 images per second on one RTX PRO 6000 in ibbi (benchmark images, batch 1) |
Results on the arthropod corpus test sets
| Test set (IBBI arthropod corpus) | Images | Co-DINO AP | YOLO11x AP | Co-DINO AP50 | YOLO11x AP50 | Co-DINO recall / false alarms per image at its operating confidence | YOLO11x recall / false alarms per image at its operating confidence |
|---|---|---|---|---|---|---|---|
| T1 in-domain (held-out sessions and cameras of every source) | 40,117 | 0.680 | 0.633 | 0.930 | 0.888 | 0.718 / 0.04 | 0.634 / 0.05 |
| T2 flatbug imaging systems | 1,424 | 0.653 | 0.581 | 0.917 | 0.844 | 0.677 / 0.21 | 0.566 / 0.26 |
| T3 unseen imaging systems (MassID45 Malaise samples, Tuta absoluta traps) | 8,920 | 0.389 | 0.293 | 0.630 | 0.460 | 0.310 / 0.23 | 0.225 / 0.16 |
At a matched budget of 0.2 false alarms per image, Co-DINO finds 8.5 (T1), 11.1 (T2) and 8.5 (T3) percentage points more arthropods than YOLO11x trained on the same data (paired group-clustered bootstrap, all p < 0.001).
Benchmark results (class-agnostic, through ibbi.Evaluator)
Crowd-aware scoring on the bark and ambrosia beetle benchmark, every box treated as "object". Caveat: about 99% of the benchmark images are also in the detector corpus (the Bark and Ambrosia Gallery is one of its sources), many of them in its training split, so these recall numbers are optimistic for the benchmark images.
| Split | AP@[.50:.95] | AP@0.5 | AR@100 | max recall (IoU 0.5) | recall at op. conf | precision at op. conf | false alarms / image |
|---|---|---|---|---|---|---|---|
| iid_test | 0.669 | 0.698 | 0.915 | 0.934 | 0.923 | 0.455 | 1.16 |
| inat_test | 0.952 | 1.000 | 0.961 | 1.000 | 0.975 | 1.000 | 0.00 |
| semantic_ood | 0.683 | 0.707 | 0.780 | 0.802 | 0.781 | 0.801 | 1.18 |
Operating confidence: 0.65. It was set on the detector corpus validation sample; on the benchmark it gives the false-alarm rates above, so choose conf for your own images when false alarms matter.
Licence
Weights: CC BY-NC 4.0 (non-commercial). Two independent reasons prevent commercial use: the initial checkpoint was pretrained on Objects365, which is available for academic purposes only, and the training data include iNaturalist 2017 (non-commercial research and education only) and IP102 (academic use only). The training data include sources whose terms forbid commercial use: iNaturalist 2017 (non-commercial research and education only) and IP102 (academic use only); Pest24's original terms could not be verified. The remaining sources are CC BY 4.0, CC BY 2.0 (Open Images), MIT (AMI traps) or the project's own images. Whether model weights inherit the terms of their training data is legally unsettled; these weights are released for non-commercial research use, and commercial use is not supported without permission from those data owners.
The model code is derived from Co-DETR (MIT, © 2022 SenseTime X-Lab), EVA-02 (MIT) and MMDetection / MMCV (Apache-2.0);
see LICENSE.md. Please cite Co-DETR and EVA-02 when you use this model.
Citation
@dataset{marais_bark_ambrosia_benchmark_2026,
title = {Bark and Ambrosia Beetle Detection Benchmark},
author = {Marais, G. Christopher and Schuster, Layla A. and Johnson, Andrew J. and Kuo, Eric and Dias, Raquel and Hulcr, Jiri},
year = {2026},
publisher = {Zenodo},
version = {2.0.1},
doi = {10.5281/zenodo.22695714}
}
The ibbi package: https://github.com/ChristopherMarais/IBBI
- Downloads last month
- 37