inigosarralde's picture
Carga inicial de archivos
c4db958
raw
history blame
3.7 kB
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()