Downloads · 30 days
327
48% of all-time downloads
domai-tb/OpenPlants-Identification-ViT-Base-Patch16-224
OpenPlants-Identification-ViT-Base-Patch16-224 is a image classification model from domai-tb. Use it when you need a label for an image. The card lists the license as apache-2.0.
<div align="center" <img src="openplants.png" alt="OpenPlants logo" width="220" /
Downloads · 30 days
327
48% of all-time downloads
All-time downloads
676
Public
Parameters
97.2M
389 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors389 MB · 100%
From the Hugging Face model README
This model is used in OpenPlants (domai-tb/OpenPlants), an open-source and privacy-friendly companion app for plant care.
Inside the app, it powers local image classification so users can identify plants directly on-device from a photo.
Built on google/vit-base-patch16-224, the model was fine-tuned for species-level plant identification on the GBIF / iNaturalist plant image dataset.
| Property | Value |
|---|---|
| Base model | google/vit-base-patch16-224 |
| Parameters | ~97.2M |
| Training samples | 2,000,000 curated plant occurrences |
| Species coverage | ~14,000 unique species |
| Source data | GBIF / iNaturalist |
| Training method | End-to-end supervised fine-tuning |
| Primary use | Fast plant species classification from a single image |
OpenPlants is the companion app this model was built for.
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import requests
import torch
model_id = "domai-tb/OpenPlants-Identification-ViT-Base-Patch16-224"
processor = AutoImageProcessor.from_pretrained(model_id)
model = AutoModelForImageClassification.from_pretrained(model_id)
url = "https://example.com/plant.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
probs = logits.softmax(dim=-1)[0]
topk = torch.topk(probs, k=5)
for prob, idx in zip(topk.values, topk.indices):
label = model.config.id2label[idx.item()]
print(f"{label}: {prob.item():.4f}")
species and image metadataSpecies names follow canonical GBIF taxonomy (species_name).
Each class maps directly to one species.
You can inspect all labels with:
from transformers import AutoConfig
cfg = AutoConfig.from_pretrained("domai-tb/OpenPlants-Identification-ViT-Base-Patch16-224")
labels = cfg.id2label
You can further specialize the model with LoRA adapters for:
The base model is broad enough to support domain-specific adapter tuning with relatively little compute.
Model weights follow the same license as the underlying ViT-Base model. Users are responsible for complying with GBIF and iNaturalist usage terms for any downstream dataset creation.