--- license: cc-by-nc-sa-4.0 library_name: scikit-learn pipeline_tag: audio-classification tags: - audio-classification - bioacoustics - perch - insects - research --- # InsectNet Research 0.2.0 A deterministically built research classifier for broad insect presence, cicadas, and Orthoptera, fitted on frozen 1,536-dimensional Google Perch 2 embeddings. Exact row-level training manifests are retained privately rather than redistributed. > **Status: frozen public research artifact; these exact joblib bytes are not deployed.** The locked > independent dog challenge produced broad insect activations in 11/26 windows. Do not > use this model for unattended ecological counts or alerts. **Artifact SHA-256:** `27bf603a6dec2df2789b3bf9241f5e035ccdea5909c4ecf252623ff9304afe32` **Dataset hash:** `d59cde46a933b85c1cd46f944c6df5c9c6a7587efe7c354b5cbe22b2d0698240` ## Current operational relationship Since July 2026, a later JSON/NPZ successor from the InsectNet research family has operated as a conservative review-only head in the private field site's shared Perch 2 listener. That successor is `insectnet-dev2-field-probe`, bundle ID `ff8d28f5e8d0416eb63e7b958b6b950b69dd89a0baca0089f399b20cbc3c529f`, with field review threshold `0.9995`. Its exact checked bundle is now published as [InsectNet Research 0.3.0](https://huggingface.co/TheVortexProject/insectnet-research-0.3.0-perch2). The successor is a distinct artifact; it is not this joblib under another name. Its threshold crossings remain unconfirmed model assertions. Deployment does not transfer field-validation claims to this frozen public candidate. See the [living deployment contract](https://github.com/vortexpjeff/insectnet#release-identity). ## Outputs | Head | Locked threshold | Parent | |---|---:|---| | `insect_present` | 0.25 | — | | `cicada` | 0.08 | `insect_present` | | `orthoptera` | 0.74 | `insect_present` | The fitted heads are independent probabilities, not a softmax. The serialized inference contract suppresses subtype outputs unless `insect_present` also passes. The source evidence supports Cicadidae versus broad Orthoptera. It does **not** support inventing cricket/katydid versus grasshopper labels. ## Feature contract - Backbone: Google Perch 2 CPU release - Audio input to Perch: five seconds, 32 kHz, mono, float32 - Input to this artifact: one 1,536-dimensional Perch embedding - Verified Perch model-tree SHA-256: `3fb2d54b3e34534f1130052b25737e54bbb5ebfd340ec040d4510772b64c81ff` - Perch weights are not included The official Perch code repository is Apache-2.0. The available Kaggle metadata did not expose a separate model-weight license during this build, so this card does not extend the code license to the weights by assumption. ## Training data | Source | Windows | Role | Rights | |---|---:|---|---| | InsectSet459 | 2,096 | insect positives | 1,727 CC BY 4.0; 369 CC0 | | ESC-50 | 1,960 | environmental negatives; insect class excluded | CC BY-NC 3.0 | | Ross-308 | 317 | poultry and ventilation hard negatives | CC BY 4.0 | | iNaturalist Domestic Chicken | 42 | observer-grouped hard negatives | CC BY 4.0 / CC0 | | iNaturalist Domestic Cat | 26 | observer-grouped hard negatives | CC BY 4.0 / CC0 | | **Total** | **4,441** | | mixed research lane | InsectSet459 contains 2,096 unique permissive Train/Validation observations from 334 contributor groups: 1,009 cicada and 1,087 Orthoptera windows. Group IDs, not windows, were assigned to train, validation, and test. No source audio is redistributed here. ## Internal grouped evaluation | Head | Test support | AP | Precision | Recall | F1 | |---|---:|---:|---:|---:|---:| | insect present | 236 | 0.987 | 0.947 | 0.979 | 0.963 | | cicada | 102 | 0.959 | 0.856 | 0.931 | 0.892 | | Orthoptera | 134 | 0.943 | 0.885 | 0.866 | 0.875 | Test macro AP: **0.963**. Test macro F1: **0.910**. These results show that the grouped source partitions are learnable. They do not establish stationary-microphone field reliability. ## Locked independent dog challenge The final artifact was scored once on 26 permissively licensed Domestic Dog sounds from 26 observers. These samples were not used for fitting or threshold selection. | Output | Raw head crossings | Hierarchy-gated outputs | |---|---:|---:| | insect present | 11/26 | 11/26 | | cicada | 7/26 | 5/26 | | Orthoptera | 4/26 | 2/26 | Outdoor taxon recordings may contain incidental insects, but a **42.3% broad activation rate** is too high to treat this model as field-ready. ## Private stationary-microphone activation audit A private reviewed frog archive supplied 1,308 five-second windows from 436 recordings. It was reviewed for frog presence, not insect absence, so these are activation rates—not false-positive rates: | Output | Hierarchy-gated activations | |---|---:| | insect present | 1,207/1,308 — 92.3% | | cicada | 68/1,308 — 5.2% | | Orthoptera | 820/1,308 — 62.7% | Summer frog recordings can contain real insects. Listening review is required before any of these activations can be called errors. No private paths or audio are included here. ## Use ```python import joblib from insectnet_perch2.candidate import active_labels, predict_candidate package = joblib.load("insectnet-research-0.2.0-perch2.joblib") embedding = ... # shape (N, 1536), from the verified Perch 2 feature contract scores = predict_candidate(package, embedding) labels = [active_labels(package, row) for row in scores] ``` Do not feed waveforms directly into this artifact. ## What is validated - Exact retained-private data, window, embedding, and artifact hashes are recorded. - The private build audit found no contributor/observer/source groups crossing partitions. - Only CC0, CC BY, and the explicitly noncommercial ESC-50 research lane were used. - Broad/subtype hierarchy is serialized and tested. - The model loads and scores finite Perch embeddings. - Internal grouped metrics and independent challenge failures are both published. ## What is not validated - local field precision or recall - unattended field detections - species-level insect identity - cricket/katydid versus grasshopper separation - robustness to frogs, ventilation, rain, distant birds, or recorder changes - calibrated ecological abundance estimates ## Known failure mode and next research requirement Frozen linear transfer on this corpus still carries source/domain shortcuts. Adding chicken, cat, and poultry hard negatives improved known-source rejection but did not generalize to the untouched dog challenge. The next serious model should use reviewed same-recorder hard negatives, more diverse iNaturalist non-insect taxa, and likely supervised backbone fine-tuning or a richer temporal head rather than another threshold-only adjustment. ## Sources - InsectSet459: `academic-datasets/InsectSet459`, pinned revision documented in provenance - ESC-50: Piczak, DOI `10.1145/2733373.2806390` - Ross-308: Díaz de Cerio et al., DOI `10.34810/DATA3437` - Perch: Ghani et al., *Global birdsong embeddings enable superior transfer learning for bioacoustic classification* (2023) Source summaries, retained-private manifest hashes, metrics, and challenge reports are included beside the artifact. The public bundle supports artifact/summary consistency checks but cannot independently reconstruct every row or split assignment without the retained private manifests and source audio. ## Git source This historical Perch 2 artifact belongs to the [InsectNet repository](https://github.com/vortexpjeff/insectnet); it is not part of the legacy BirdNET-logit [InsectNet repository](https://github.com/vortexpjeff/insectnet-legacy).