InsectNet Research 0.3.0
A provenance-locked binary insect_present specialist head over frozen 1,536-dimensional Google Perch 2 embeddings.
This repository contains only the InsectNet model family. The preserved BirdNET-logit InsectNet v0.1 model is a distinct project at vortexpjeff/insectnet-legacy and is not an ancestor bundle, embedding source, or runtime dependency of this model.
Status: public noncommercial research artifact; these exact checked JSON/NPZ bytes are privately deployed as a review-only field head. A threshold crossing selects audio for human review. It is not a calibrated probability or a confirmed biological observation.
This repository publishes the exact safe runtime bundle currently used by the insectnet-dev2-field-probe field head, plus sanitized aggregate provenance and challenge summaries. It contains no source audio, exact training manifest, coordinates, private observation locations, uploader identities, credentials, private paths, or arbitrary Python serialization.
Release identity
Public release: insectnet-research-0.3.0-perch2
Runtime slug: insectnet-dev2-field-probe
Bundle ID: ff8d28f5e8d0416eb63e7b958b6b950b69dd89a0baca0089f399b20cbc3c529f
Source artifact SHA-256: 9cd5f753db357220a180ead0d13019d46f69d469898b9a88bfdb12ca38fecf14
Logical dataset hash: 825c40602fe65611c3bef36c4fc8f7b120913b62a56728b355ccf8f775e178a5
Manifest JSONL SHA-256: 0904e001b988d03a66c402aee884f7f6a9404240bc7f33c28fc38e2822c650ee
The source joblib and exact row-level manifest remain in private scientific custody. The public JSON/NPZ bundle contains only the broad deployed head. release/training-summary.json publishes aggregate row, group, rights, split, and label-authority counts plus the exact private-manifest hash.
Inference contract
| Field | Value |
|---|---|
| Input audio to Perch | 5 seconds, 32 kHz, mono |
| Input to InsectNet | one 1,536-dimensional Perch 2 embedding |
| Output | uncalibrated ranking score for insect_present |
| Research evaluation threshold | 0.85 |
| Deployed review-routing threshold | 0.9995 |
| Serialization | checked JSON metadata plus NPZ numeric arrays |
| Perch model-tree SHA-256 | 3fb2d54b3e34534f1130052b25737e54bbb5ebfd340ec040d4510772b64c81ff |
The Perch weights are not included. This specialist head cannot score raw waveforms by itself.
Training sources
| Source lane | Rows | Positive | Declared negative | Unknown | Recordings | Groups | Rights lane |
|---|---|---|---|---|---|---|---|
| esc50 | 1,960 | 0 | 1,960 | 0 | 1,960 | 1,498 | research_noncommercial: 1960 |
| inat-cat-negatives | 26 | 0 | 26 | 0 | 26 | 26 | core_releasable: 26 |
| inat-chicken-negatives | 42 | 0 | 42 | 0 | 42 | 30 | core_releasable: 42 |
| insectset459 | 2,096 | 2,096 | 0 | 0 | 2,096 | 334 | core_releasable: 2096 |
| oxfordshire-full-train | 1,656 | 1,033 | 623 | 0 | 552 | 76 | core_releasable: 1656 |
| ross308-negatives | 317 | 0 | 317 | 0 | 26 | 14 | core_releasable: 317 |
All source groups and parent recordings remain within one train/validation/test partition. The exact retained training-window audit found no missing or mismatched source windows. Weak and context-derived labels retain their recorded authority; they are not promoted to ecological truth.
Research-threshold evidence
| Lane | Result |
|---|---|
| Locked Oxfordshire cross-site windows | 591 windows; broad-head AP 0.9788, precision 0.9914, recall 0.7152 at research threshold 0.85 |
| Locked dog negative challenge | 6 / 26 activations at research threshold 0.85 |
| Generic private frog-domain diagnostic | 1,012 / 1,308 activations at research threshold 0.85; this lane may contain insects and is not an insect-absence set |
These results were produced by the multi-head source artifact at its research threshold. They do not describe the much stricter deployed event policy.
Deployed-threshold replay
The retained challenge embeddings were replayed through the exact deployed broad-head bundle at 0.9995:
| Lane | Activations |
|---|---|
| Locked Oxfordshire cross-site windows | 204 / 591 |
| Dog negative challenge | 1 / 26 |
| Generic private frog-domain diagnostic | 3 / 1308 |
This replay is descriptive. The operational threshold was selected after these challenge sets had already been examined, so this is not an untouched threshold-selection experiment or a field accuracy estimate.
Operational relationship
The private field listener computes one Perch embedding per five-second window and scores InsectNet, ChickenNet, and FrogNet independently. BirdNET remains a separate evidence lane. Model assertions, exact spans, thresholds, and later human decisions are preserved separately.
The raw field archive, review ledger, sensor configuration, and operational repository are intentionally not published.
Verify the package
sha256sum --check SHA256SUMS
cd bundle && sha256sum --check SHA256SUMS
Load bundle/weights.npz only with allow_pickle=False. The package does not require joblib or pickle.
Included files
bundle/model.jsonβ exact deployed model metadata and inference contractbundle/weights.npzβ exact deployed numeric arraysbundle/SHA256SUMSβ deployed bundle-member checksumsrelease/release-manifest.jsonβ identity, rights, and custody boundaryrelease/training-summary.jsonβ sanitized aggregate training membership and split auditrelease/challenge-summary.jsonβ frozen research-threshold challenge summariesrelease/deployed-threshold-replay.jsonβ clearly labeled post-selection operational replaySHA256SUMSβ complete public payload inventory
Known limits
- The broad head does not identify insect species, abundance, individuals, or behavior.
- The Oxfordshire challenge is dominated by annotated insect-positive windows and is not a prevalence-weighted field test.
- Frog-domain audio can contain simultaneous insects; activation on that lane is not automatically a false positive.
- The strict field threshold intentionally sacrifices recall to bound review burden.
- The trainer run recorded a dirty Git worktree. Exact model bytes, data membership, manifests, embeddings, and retained windows survive, but the named clean commit alone does not reconstruct the historical trainer source state.
- Some source families encode DOI/license/member identity at row level rather than through one standardized source sidecar.
- The field bundle's historical key
training_manifest_hashcontains the canonical logical dataset hash. The separate JSONL byte hash is published in the release manifest and training summary.
Rights and provenance
The training matrix includes public permissive and noncommercial research lanes. Because ESC-50-derived material contributed to fitting, this artifact is distributed under CC BY-NC-SA 4.0 for noncommercial research and field evaluation, subject to all upstream terms. No upstream audio is redistributed and this release grants no rights to source recordings or Perch weights.
Source
- Source registry and tests: https://github.com/vortexpjeff/insectnet
- Tagged release tree: insectnet-research-0.3.0-perch2
- Older public research ancestor: TheVortexProject/insectnet-research-0.2.0-perch2
Load the checked deployed bundle
from pathlib import Path
from insectnet_perch2.bundle import load_bundle, score_embedding
bundle = load_bundle(Path('bundle'))
raw_score, review_score = score_embedding(bundle, perch2_embedding)
The input is one finite 1,536-dimensional Perch 2 embedding. Do not feed BirdNET logits or waveforms directly into this head.