Spaces:
Runtime error
Runtime error
import gradio as gr | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import PIL | |
import tensorflow as tf | |
model = tf.keras.models.load_model('model.h5') | |
class_name_list = ['Edible', 'Inedible', 'Poisonous'] | |
def predict_image(img): | |
# Reescalamos la imagen en 4 dimensiones | |
img_4d = img.reshape(-1,224,224,3) | |
# Predicción del modelo | |
prediction = model.predict(img_4d)[0] | |
# Diccionario con todas las clases y las probabilidades correspondientes | |
return {class_name_list[i]: float(prediction[i]) for i in range(3)} | |
image = gr.inputs.Image(shape=(224,224)) | |
label = gr.outputs.Label(num_top_classes=3) | |
title = 'Mushroom Edibility Classifier' | |
description = 'Get the edibility classification for the input mushroom image' | |
examples=[['app_interface/Boletus edulis 15 wf.jpg'], | |
['app_interface/Cantharelluscibarius5 mw.jpg'], | |
['app_interface/Agaricus augustus 2 wf.jpg'], | |
['app_interface/Coprinellus micaceus 8 wf.jpg'], | |
['app_interface/Clavulinopsis fusiformis 2 fp.jpg'], | |
['app_interface/Amanita torrendii 8 fp.jpg'], | |
['app_interface/Russula sanguinea 5 fp.jpg'], | |
['app_interface/Caloceraviscosa1 mw.jpg'], | |
['app_interface/Amanita muscaria 1 wf.jpg'], | |
['app_interface/Amanita pantherina 11 wf.jpg'], | |
['app_interface/Lactarius torminosus 6 fp.jpg'], | |
['app_interface/Amanitaphalloides1 mw.jpg']] | |
thumbnail = 'app_interface/thumbnail.png' | |
article = ''' | |
<!DOCTYPE html> | |
<html> | |
<body> | |
<p>The Mushroom Edibility Classifier is an MVP for CNN multiclass classification model.<br> | |
It has been trained after gathering <b>5500 mushroom images</b> through Web Scraping techniques from the following web sites:</p> | |
<br> | |
<p> | |
<a href="https://www.mushroom.world/">- Mushroom World</a><br> | |
<a href="https://www.wildfooduk.com/mushroom-guide/">- Wild Food UK</a> <br> | |
<a href="https://www.fungipedia.org/hongos">- Fungipedia</a> | |
</p> | |
<br> | |
<p style="color:Orange;">Note: <i>model created solely and exclusively for academic purposes. The results provided by the model should never be considered definitive as the accuracy of the model is not guaranteed.</i></p> | |
<br> | |
<p><b>MODEL METRICS:</b></p> | |
<table> | |
<tr> | |
<th> </th> | |
<th>precision</th> | |
<th>recall</th> | |
<th>f1-score</th> | |
<th>support</th> | |
</tr> | |
<tr> | |
<th>Edible</th> | |
<th>0.61</th> | |
<th>0.70</th> | |
<th>0.65</th> | |
<th>481</th> | |
</tr> | |
<tr> | |
<th>Inedible</th> | |
<th>0.67</th> | |
<th>0.69</th> | |
<th>0.68</th> | |
<th>439</th> | |
</tr> | |
<tr> | |
<th>Poisonous</th> | |
<th>0.52</th> | |
<th>0.28</th> | |
<th>0.36</th> | |
<th>192</th> | |
</tr> | |
<tr> | |
<th></th> | |
</tr> | |
<tr> | |
<th>Global Accuracy</th> | |
<th></th> | |
<th></th> | |
<th>0.63</th> | |
<th>1112</th> | |
</tr> | |
<tr> | |
<th>Macro Average</th> | |
<th>0.60</th> | |
<th>0.56</th> | |
<th>0.57</th> | |
<th>1112</th> | |
</tr> | |
<tr> | |
<th>Weighted Average</th> | |
<th>0.62</th> | |
<th>0.63</th> | |
<th>0.61</th> | |
<th>1112</th> | |
</tr> | |
</table> | |
<br> | |
<p><i>Author: Íñigo Sarralde Alzórriz</i></p> | |
</body> | |
</html> | |
''' | |
iface = gr.Interface(fn=predict_image, | |
inputs=image, | |
outputs=label, | |
interpretation='default', | |
title = title, | |
description = description, | |
theme = 'darkpeach', | |
examples = examples, | |
thumbnail = thumbnail, | |
article = article, | |
allow_flagging = False, | |
allow_screenshot = False, | |
) | |
iface.launch() |