File size: 3,160 Bytes
3d21b4b 0e3ea0a 3d21b4b 5955a7b 3d21b4b b4bd4a7 3d21b4b 0e3ea0a 35d6de8 926a9f1 0e3ea0a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | ---
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)
|