Spaces:
Sleeping
Sleeping
| # AUTOGENERATED! DO NOT EDIT! File to edit: app.ipynb. | |
| # %% auto 0 | |
| __all__ = ['vocab', 'img_path', 'dblock', 'dls', 'learn', 'labels', 'example_files', 'demo', 'predict'] | |
| # %% app.ipynb 3 | |
| import os | |
| import gradio as gr | |
| from fastai.vision.all import * | |
| import pathlib | |
| import timm | |
| # import dill | |
| # %% app.ipynb 5 | |
| vocab = ['bacterial_leaf_blight', 'bacterial_leaf_streak', 'bacterial_panicle_blight', | |
| 'blast', 'brown_spot', 'dead_heart', 'downy_mildew', 'hispa', 'normal', 'tungro'] | |
| # Dummy image path - replace with your real test image path | |
| img_path = pathlib.Path("examples/hispa/200999.jpg") | |
| dblock = DataBlock( | |
| blocks=(ImageBlock, CategoryBlock(vocab=vocab)), | |
| get_items=lambda x: [img_path], # x is source, ignored here | |
| get_y=lambda x: 'normal', | |
| item_tfms=[Resize(192, method='squish')] | |
| ) | |
| # Pass a dummy 'source' argument, e.g. '.' or pathlib.Path('.') | |
| dls = dblock.dataloaders(pathlib.Path('.'), bs=1) | |
| # %% app.ipynb 7 | |
| learn = vision_learner(dls,"mobilenetv4_conv_small.e3600_r256_in1k", metrics=[error_rate, accuracy]); learn | |
| # %% app.ipynb 8 | |
| learn.load("mobilenetv4_conv_small.e3600_r256_in1k_v3"); learn | |
| # learn.dls.vocab = ['bacterial_leaf_blight', 'bacterial_leaf_streak', 'bacterial_panicle_blight', 'blast', 'brown_spot', 'dead_heart', 'downy_mildew', 'hispa', 'normal', 'tungro'] | |
| # learn.dls.c = len(['bacterial_leaf_blight', 'bacterial_leaf_streak', 'bacterial_panicle_blight', 'blast', 'brown_spot', 'dead_heart', 'downy_mildew', 'hispa', 'normal', 'tungro']) | |
| labels = learn.dls.vocab; labels | |
| # %% app.ipynb 10 | |
| 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))} | |
| # %% app.ipynb 12 | |
| example_files = list(pathlib.Path('./examples').glob("*/*.jpg")); example_files | |
| # %% app.ipynb 15 | |
| demo = gr.Interface( | |
| fn=predict, | |
| inputs=gr.Image(), | |
| outputs=gr.Label(num_top_classes=3), | |
| examples=[[str(f)] for f in example_files], | |
| title="Paddy Disease Classifier", | |
| description="Upload an image or select one of the examples to classify rice diseases." | |
| ) | |
| demo.launch(share=True) | |