Image Classification
LiteRT
LiteRT
ONNX
English
vision
botany
western-australia
dinov3
mixture-of-experts
adaround
fp8
int8
android
biodiversity
flora
Instructions to use thenukegun10x/PLantDetect-WA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT
How to use thenukegun10x/PLantDetect-WA with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
| language: | |
| - en | |
| license: cc-by-nc-4.0 | |
| tags: | |
| - vision | |
| - image-classification | |
| - botany | |
| - western-australia | |
| - dinov3 | |
| - mixture-of-experts | |
| - litert | |
| - onnx | |
| - adaround | |
| - fp8 | |
| - int8 | |
| - android | |
| - biodiversity | |
| - flora | |
| datasets: | |
| - gbif | |
| pipeline_tag: image-classification | |
| # PlantDetect: Western Australia Plant Vision (999 Species) | |
| <div align="center"> | |
| ### Built with DINOv3 | |
| **Fine-grained botanical vision models specializing in the flora of Western Australia.** | |
| [](https://huggingface.co/thenukegun10x/wa-plant-identifier) | |
| [](https://creativecommons.org/licenses/by-nc/4.0/) | |
| </div> | |
| --- | |
| ## 1. Multi-View Botanical Inference (Single vs. Multi-Photo) | |
| In the field, plant species can be difficult to distinguish from a single photo. By providing multiple complementary angles of the same plant (e.g. Flower, Leaf, Habit, Fruit), the model achieves near-perfect classification accuracy: | |
| | Photos Provided by User | Mobile Dense Student (`plant_dense_4view`) — `PlantDetect-Dense-4View-BF16` | Server MoE++ BEST (`PlantDetect-BF16`) | Real-World Botanical Impact | | |
| | :--- | :--- | :--- | :--- | | |
| | **1 Photo (Single-Shot)** | **`82.08% Top-1`** (`93.03% Top-5`) | **`89.31% Top-1`** (`96.14% Top-5`) | Fast single photo identification | | |
| | **2 Photos (Dual-Angle)** | **`94.27% Top-1`** (`99.28% Top-5`) | **`97.11% Top-1`** (`99.66% Top-5`) | Flower + Leaf resolves 94%+ of species | | |
| | **3 Photos (Tri-Angle)** | **`97.45% Top-1`** (`99.84% Top-5`) | **`98.77% Top-1`** (`99.95% Top-5`) | Flower + Leaf + Growth habit | | |
| | **4 Photos (Quad-Angle)** | **`98.31% Top-1`** (`99.90% Top-5`) | **`99.42% Top-1`** (`100.00% Top-5`) | **`99.9% Top-5`** certainty in the field | | |
| *Re-benched 2026-08-30 sequential `BF16` `27,673` val, `K-view mean logits` via `bench_multiview_finals.py` (`data/bench_multiview_finals.json`) — `PlantDetect-Dense-4View-BF16` / `PlantDetect-BF16`.* | |
| --- | |
| ## 2. Complete Model Artifact Catalog (Direct Download Links) | |
| ### A. Mobile Edge & Embedded Models (Dense ViT-Base) | |
| *Optimized for Samsung Galaxy S24 (Exynos 2400 / Snapdragon 8 Gen 3), iOS, Windows DirectML, and Raspberry Pi.* | |
| | Model File | Model Type | Runtime Target | Format / Precision | File Size | Top-1 (1-View) | Top-1 (4-View) | Target Hardware | | |
| | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | |
| | [**`PlantDetect-Dense-INT8.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-INT8.safetensors) | Single-Shot | PyTorch / Python | **Standard W8A16 INT8** | **`93.3 MB`** | 83.02% | 97.34% | Ultra-compact Python edge | | |
| | [**`PlantDetect-Dense-FP8-AdaRound.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-FP8-AdaRound.safetensors) | Single-Shot | PyTorch / Python | **AdaRound FP8 (E4M3)** | **`92.7 MB`** | 83.02% | 97.34% | GPU / Python lightweight | | |
| | [**`PlantDetect-Dense-BF16.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-BF16.safetensors) | Single-Shot | PyTorch / Python | **Full `bfloat16`** | **`181.5 MB`** | 83.02% | 97.34% | Dense PyTorch reference | | |
| | [**`PlantDetect-Dense-4View-INT8.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-4View-INT8.safetensors) | **4-View Distilled** | PyTorch / Python | **Standard W8A16 INT8** | **`93.3 MB`** | 82.08% | **98.31%** | Dedicated multi-photo mobile edge | | |
| | [**`PlantDetect-Dense-4View-FP8-AdaRound.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-4View-FP8-AdaRound.safetensors) | **4-View Distilled** | PyTorch / Python | **AdaRound FP8 (E4M3)** | **`92.7 MB`** | 82.08% | **98.31%** | Dedicated multi-photo GPU edge | | |
| | [**`PlantDetect-Dense-4View-BF16.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-Dense-4View-BF16.safetensors) | **4-View Distilled** | PyTorch / Python | **Full `bfloat16`** | **`181.5 MB`** | 82.08% | **98.31%** | Lossless 4-view dense reference | | |
| | [**`onnx/PlantDetect-Dense-INT8.onnx`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/onnx/PlantDetect-Dense-INT8.onnx) | Single-Shot | ONNX Runtime | **Mixed-Precision INT8** | **`106.3 MB`** | 83.02% | 97.34% | Android, iOS CoreML, Windows | | |
| | [**`onnx/PlantDetect-Dense-FP32.onnx`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/onnx/PlantDetect-Dense-FP32.onnx) | Single-Shot | ONNX Runtime | **Full FP32** | `363.3 MB` | 83.02% | 97.34% | Standard reference ONNX | | |
| | [**`onnx/PlantDetect-Dense-4View-INT8.onnx`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/onnx/PlantDetect-Dense-4View-INT8.onnx) | **4-View Distilled** | ONNX Runtime | **Mixed-Precision INT8** | **`106.3 MB`** | 82.08% | **98.31%** | Multi-photo ONNX Runtime | | |
| | [**`onnx/PlantDetect-Dense-4View-FP32.onnx`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/onnx/PlantDetect-Dense-4View-FP32.onnx) | **4-View Distilled** | ONNX Runtime | **Full FP32** | `363.3 MB` | 82.08% | **98.31%** | Multi-photo reference ONNX | | |
| | [**`litert/PlantDetect-Dense-INT8.tflite`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/litert/PlantDetect-Dense-INT8.tflite) | Single-Shot | Google LiteRT (TFLite) | **Full Integer INT8** | **`387.0 MB`** | 83.02% | 97.34% | Samsung S24 NPU acceleration | | |
| | [**`litert/PlantDetect-Dense-FP16.tflite`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/litert/PlantDetect-Dense-FP16.tflite) | Single-Shot | Google LiteRT (TFLite) | **Float16** | **`196.2 MB`** | 83.02% | 97.34% | Mobile GPU / XNNPACK CPU | | |
| | [**`litert/PlantDetect-Dense-4View-INT8.tflite`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/litert/PlantDetect-Dense-4View-INT8.tflite) | **4-View Distilled** | Google LiteRT (TFLite) | **Full Integer INT8** | **`385.8 MB`** | 82.08% | **98.31%** | Samsung S24 Multi-View NPU | | |
| | [**`litert/PlantDetect-Dense-4View-FP16.tflite`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/litert/PlantDetect-Dense-4View-FP16.tflite) | **4-View Distilled** | Google LiteRT (TFLite) | **Float16** | **`195.8 MB`** | 82.08% | **98.31%** | Multi-View Mobile GPU | | |
| --- | |
| ### B. Server / Desktop GPU Models (Mixture-of-Experts) | |
| | Model File | Model Type | Architecture | Format | Size | Top-1 (1-View) | Top-1 (4-View) | Primary Use Case | | |
| | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | |
| | [**`PlantDetect-FP8-AdaRound.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-FP8-AdaRound.safetensors) | Single-Shot | MoE++ (16 FFNs) | **AdaRound FP8 (E4M3)** | **`104.3 MB`** | **89.31%** | **99.42%** | **Fastest, ultra-compact GPU server inference** | | |
| | [**`PlantDetect-BF16.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-BF16.safetensors) | Single-Shot | MoE++ (16 FFNs) | **Full `bfloat16`** | **`205.2 MB`** | **89.31%** | **99.42%** | Lossless baseline reference | | |
| | [**`PlantDetect-4View-FP8-AdaRound.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-4View-FP8-AdaRound.safetensors) | **4-View Distilled** | MoE++ 4-View | **AdaRound FP8 (E4M3)** | **`104.3 MB`** | 85.15% | **99.07%** | Dedicated multi-photo teacher (FP8) | | |
| | [**`PlantDetect-4View-BF16.safetensors`**](https://huggingface.co/thenukegun10x/wa-plant-identifier/resolve/main/PlantDetect-4View-BF16.safetensors) | **4-View Distilled** | MoE++ 4-View | **Full `bfloat16`** | **`205.2 MB`** | 85.15% | **99.07%** | Lossless multi-photo baseline | | |
| > **⚠️ FP8 Hardware Compatibility:** `FP8 (E4M3)` requires recent GPU hardware with native FP8 support (NVIDIA Ada Lovelace / Hopper — e.g. RTX 40xx, L4, H100) and `CUDA 12+` / `PyTorch 2.1+`. **Not commonly supported** on older GPUs, CPUs, or mobile. Please check your hardware supports FP8 — **if unsure, use `BF16`** (identical `89.31%`/`99.42%` accuracy, `205MB` vs `104MB`). FP8 works via `bf16` autocast on unsupported hardware but without size/speed benefit. | |
| > **Quantization Architecture Details:** | |
| > * **FP8 Models (`*-FP8-AdaRound.safetensors`):** Quantized using **AdaRound FP8** with quadratic activation reconstruction loss $\min \|Wx - \tilde{W}(V)x\|_2^2$ over non-uniform E4M3 discrete grids (100% Top-1 FP32 match). | |
| > * **INT8 Models (`*-INT8.safetensors` / `.onnx` / `.tflite`):** Quantized using **Symmetric Per-Channel W8A16 Dynamic Range Quantization**, delivering **`43.81 dB` SQNR** and **`0.999985` cosine similarity**. | |
| --- | |
| ## 3. 🖥️ Official Plant CLI Guide | |
| ### 1. Installation | |
| ```bash | |
| git clone https://huggingface.co/thenukegun10x/wa-plant-identifier | |
| cd wa-plant-identifier | |
| pip install -r requirements.txt | |
| ``` | |
| ### 2. Identify a Plant from a Single Photo | |
| ```bash | |
| python plant_cli.py identify wild_flower.jpg --topk 5 | |
| ``` | |
| ### 3. Multi-View Botanical Identification (Flower + Leaf + Habit) | |
| Achieves **97%–99% certainty** by averaging logits across complementary plant angles: | |
| ```bash | |
| python plant_cli.py identify flower.jpg leaf.jpg habit.jpg fruit.jpg | |
| ``` | |
| ### 4. Batch Directory Identification | |
| Recursively process an entire field folder and export results to CSV: | |
| ```bash | |
| python plant_cli.py batch --dir field_photos/ --pattern "*.jpg" --recursive --out results.csv | |
| ``` | |
| --- | |
| ## 4. Python Quickstart Examples | |
| ### Multi-View Inference with PyTorch / Safetensors | |
| ```python | |
| import torch | |
| import numpy as np | |
| from PIL import Image | |
| from safetensors.torch import load_file | |
| from src.models.plant_vit import PlantViT | |
| # 1. Load model | |
| model = PlantViT(stem_name="vit_base_patch16_dinov3", n_classes=999, use_moe=None) | |
| sd = load_file("PlantDetect-Dense-BF16.safetensors") | |
| model.load_state_dict(sd, strict=False) | |
| model.eval() | |
| # 2. Preprocess multiple photos of the same plant (e.g. Flower + Leaf) | |
| def preprocess(path): | |
| img = Image.open(path).convert("RGB").resize((383, 383)) | |
| crop = img.crop((23, 23, 359, 359)) | |
| arr = (np.array(crop, dtype=np.float32) / 255.0 - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225] | |
| return torch.from_numpy(arr.transpose(2, 0, 1)).unsqueeze(0) | |
| photos = [preprocess("flower.jpg"), preprocess("leaf.jpg")] | |
| # 3. Compute mean logits across all views | |
| with torch.no_grad(): | |
| logits_list = [model(p)[0] for p in photos] | |
| mean_logits = torch.stack(logits_list).mean(dim=0) | |
| top_species_idx = mean_logits.argmax(dim=-1).item() | |
| print(f"Identified Species Index: {top_species_idx}") | |
| ``` | |
| --- | |
| ## Attribution & Licensing | |
| * **Built with DINOv3:** Uses the DINOv3 vision backbone (`vit_base_patch16_dinov3.lvd1689m`) developed by Meta AI. | |
| * **Dataset Attribution:** Observation data sourced from the **Global Biodiversity Information Facility (GBIF)** and **Western Australian Herbarium (FloraBase / DBCA)**. | |
| * **License:** Released under **Creative Commons Non-Commercial (CC BY-NC 4.0)** for scientific and non-commercial research. | |