Introducing opensource Kindwise Router Models

By
Ondřej Veselý
October 16, 2025
4 min
Share this post
human on crossroad

Open-source image router for plant, insect, crop & mushroom apps

At Kindwise, we build machine learning models that help developers understand the natural world — from identifying plants and fungi to diagnosing crop health and recognizing insects.

A common challenge our partners face is simple but important:

When a user takes a photo, how do we know which Kindwise model or API to call?

Until now, most apps solved this on the backend — usually by sending the image to several endpoints or implementing their own heuristics. That’s costly, slow, and not privacy-friendly.

So we decided to open-source the small but powerful model that solves exactly this problem.

Meet the Router

The Kindwise Router is a lightweight image classifier designed to run directly on-device.
Its job is to decide, given an input photo, which of our APIs (or products) it should be routed to — these are the classes:

  • plant Plant.id
  • unhealthy_plantkindwise.com/plant-health
  • cropkindwise.com/crop-health
  • mushroomkindwise.com/mushroom-id
  • insectInsect.id
  • human(handled locally — kindwise plays a big brother only for animals and plants)
  • It’s a small classifier that helps your app choose the right downstream model or API — before any data leaves the device.

    To make integration easy across platforms, we’re releasing three router variants under the Apache 2.0 license on Hugging Face.
    Each version offers a different balance of speed, accuracy, and model size — so you can pick the one that fits your device or workload.

    • 🔹 router.tiny — optimized for speed and minimal footprint
      ≈ 3.9 MB (TorchScript)  |  ≈ 2.5 MB (TFLite)
    • 🔸 router.smallbalanced accuracy vs. latency
      ≈ 8.4 MB (TorchScript)  |  ≈ 5.2 MB (TFLite)
    • 🔶 router.basehighest accuracy, still mobile-friendly
      ≈ 18 MB (TorchScript)  |  ≈ 11 MB (TFLite)

    All models are available as PyTorch and TensorFlow Lite checkpoints, ready for use on server, mobile, or edge devices.
    You can download the raw model files in the Files and versions tab on Hugging Face.

    Here’s a minimal example of how you might use it in Python or on mobile:

    from PIL import Image
    from transformers import AutoModelForImageClassification, AutoProcessor

    model = AutoModelForImageClassification.from_pretrained("kindwise/router.small")
    processor = AutoProcessor.from_pretrained("kindwise/router.small")

    img = Image.open("example.jpg")
    inputs = processor(images=img, return_tensors="pt")
    outputs = model(**inputs)

    pred = outputs.logits.softmax(dim=-1)
    label = model.config.id2label[pred.argmax()]
    print("Suggested Kindwise service:", label)

    If the router predicts "mushroom", you can forward the photo to Mushroom.id.
    If it predicts "human", you might blur or discard it locally.

    Secondary use cases

    Although the router’s main goal is to select the right Kindwise service, it also turns out to be useful for a few other things:

    • Pre-filtering large image datasets before sending them to your APIs
    • On-device privacy screening (“human” detector)
    • Data triage for annotation or active learning pipelines
    • Lightweight content filtering for camera traps or citizen-science projects

    If you’re doing any large-scale or embedded image processing, you’ll probably find creative uses beyond routing.

    Get started

    We hope this helps developers build faster, cheaper, and more privacy-friendly nature apps — whether you’re identifying crops, detecting plant diseases, or just routing photos to the right model.

    If you build something cool with it, tag us or share feedback — we’d love to see what you make. 🌿

    By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.