weed_classifier / app.py
dmitryhits
change the article and description html
8976dd3
raw
history blame
1.94 kB
# AUTOGENERATED! DO NOT EDIT! File to edit: ../weed_classifier.ipynb.
# %% auto 0
__all__ = ['learn', 'labels', 'article', 'title', 'description', 'examples', 'interpretation', 'enable_queue', 'predict']
# %% ../weed_classifier.ipynb 1
from fastai.vision.all import *
import gradio as gr
import skimage
# %% ../weed_classifier.ipynb 2
learn = load_learner('export.pkl')
# %% ../weed_classifier.ipynb 3
labels = learn.dls.vocab
def predict(img):
img = PILImage.create(img)
pred,pred_idx,probs = learn.predict(img)
return {labels[i]: float(probs[i]) for i in range(len(labels))}
# %% ../weed_classifier.ipynb 5
article = """<div>This model was trained on the dataset contains 5,539 images of crop and weed seedlings.
The images are grouped into 12 classes.
These classes represent common plant species in Danish agriculture at different growth stages.
A pretrained ResNet34 model was fine-tuned using fastai vision library. The error rate achived on the validation dataset is 2.5% after 4 epochs.
Currently the model does not generalize well on the out-of-domain images. Probably because of the specificity of the dataset.
The images in the dataset are of a single plant taken from the top and on a single background of a grit surface.
<p style='text-align: center'><a href='https://tmabraham.github.io/blog/gradio_hf_spaces_tutorial' target='_blank'>Blog post</a></p>
</div>"""
# %% ../weed_classifier.ipynb 6
title = "Weed Classifier"
description = "<h3 style='text-align: center'>A weed classifier trained on the Kaggle V2 Plant Seedling dataset with fastai.</h3>"
examples = ['SugarBeet.png']
interpretation='default'
enable_queue=True
# %% ../weed_classifier.ipynb 7
gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(512, 512)),outputs=gr.outputs.Label(num_top_classes=3),title=title,description=description,article=article,examples=examples,interpretation=interpretation).launch(enable_queue=enable_queue)