--- title: Forager's Field Station emoji: πŸ„ colorFrom: yellow colorTo: green sdk: gradio sdk_version: 6.16.0 python_version: "3.11" app_file: app.py pinned: false hf_oauth: true license: apache-2.0 short_description: Pocket-sized intelligence for identifying edible wild foods --- # Forager's Field Station Photograph a wild plant or mushroom and the model identifies it β€” **or refuses when it isn't sure.** A domain router plus three `tf_efficientnet_lite2` classifiers (~9M params each), ~0.04B parameters total. The same stack runs offline on a Hailo 8L NPU in a handheld field device; this Space is its CPU twin. Built for the **Build Small Hackathon** β€” Backyard AI track. The honest fit: a forager in the woods has no signal, so a small on-device model isn't a compromise, it's the only thing that works. ## How it works ``` photo ─► domain router (berry / mushroom / plant / other) β”‚ conf < 0.74 or "other" ─► ABSTAIN β–Ό ONE expert owns each domain (no cross-expert voting): berry ─► berry_expert mushroom ─► highvalue_expert plant ─► medicinals_expert β”‚ below confidence gate ─► ABSTAIN β–Ό SAFE / CAUTION / DEADLY + scientific name, lookalike, key difference ``` Single-expert routing is a safety choice: an off-domain expert never gets to misclassify an input it doesn't own (e.g. the mushroom expert never sees a plant, so it can't call a poison hemlock "ramps"). The deadly plants live in the medicinals expert, which scored 0% toxic-as-edible on held-out validation. The system is built to **refuse by default.** Across real-world test photos it abstained rather than guess on the cases it couldn't handle, and never labelled a deadly specimen as edible. ## Models | Model | Domain | Classes | |---|---|---| | `domain_router_v2` | berry / mushroom / plant / other | 4 | | `berry_expert` | wild berries + toxic lookalikes | 11 | | `highvalue_expert` | chanterelles, morels, lion's mane, ginseng… | 11 | | `medicinals_expert` | wild medicinal plants + toxic lookalikes | 21 | Trained on iNaturalist research-grade observations. Apache-2.0. πŸ“¦ **Weights published as fine-tuned models:** [HomesteaderLabs/forager-field-station-models](https://huggingface.co/HomesteaderLabs/forager-field-station-models) β€” `.pt` + `.onnx` for the router and all three experts, fine-tuned from `timm/tf_efficientnet_lite2.in1k`. ## Field notes The build story β€” edge constraints, the single-expert safety pivot, the safety-vs-usefulness curve, and a one-line bug that inverted our OOD detector β€” is in [FIELD_NOTES.md](FIELD_NOTES.md). ## Safety notice **Identification aid only β€” never an authority.** Wild plant and mushroom identification carries fatal risk. No output should be acted on β€” including any consumption decision β€” without independent verification by a qualified expert. Amatoxin poisoning (Amanita, Galerina, Conocybe) is lethal with no reliable field antidote. The maintainers accept no liability for decisions made from model output. β€” [HomesteaderLabs](https://homesteaderlabs.com)