valanga commited on
Commit
efcf4de
·
verified ·
1 Parent(s): 18fbeb0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -8
app.py CHANGED
@@ -1,35 +1,47 @@
1
  from PIL import Image
2
  import numpy as np
 
3
  import gradio as gr
4
  from tensorflow.keras.models import load_model
5
 
6
  # Carica il modello salvato in formato Keras .h5
7
  model = load_model('mio_modello.h5')
8
 
 
 
 
 
9
  def preprocess_image(image):
10
- image = Image.fromarray(image)
11
- image = image.resize((64, 64))
12
- #image_array = np.array(image) / 255.0
13
- image_array = np.expand_dims(image, axis=0)
 
 
 
 
 
 
14
  return image_array
15
 
16
  # Classificazione: Definire una funzione per fare la predizione con le percentuali di confidenza
17
  def classify_image(image):
 
18
  image_array = preprocess_image(image)
19
 
20
- # Fare la predizione e prendere la prima riga dei risultati
21
  prediction = model.predict(image_array)[0]
22
 
23
  # Aggiungi un print per vedere le predizioni grezze
24
  print(f"Raw model predictions: {prediction}")
25
 
26
- # Verificare che i valori di prediction siano distribuiti correttamente
27
- predicted_class_idx = np.argmax(prediction) # Indice della classe con il punteggio più alto
28
 
29
  # Classi (Chihuahua o Muffin)
30
  class_labels = ['Chihuahua', 'Muffin']
31
 
32
- # Verificare quale classe è predetta con il suo punteggio
33
  print(f"Predicted class: {class_labels[predicted_class_idx]} with confidence {prediction[predicted_class_idx]}")
34
 
35
  # Creare un dizionario con le percentuali di confidenza
@@ -45,3 +57,4 @@ gr.Interface(
45
  title="Chihuahua vs Muffin Classifier",
46
  description="Carica un'immagine e scopri se è un Chihuahua o un Muffin, con percentuali di confidenza!"
47
  ).launch()
 
 
1
  from PIL import Image
2
  import numpy as np
3
+ import os
4
  import gradio as gr
5
  from tensorflow.keras.models import load_model
6
 
7
  # Carica il modello salvato in formato Keras .h5
8
  model = load_model('mio_modello.h5')
9
 
10
+ # Definire la dimensione target delle immagini (coerente con il training)
11
+ target_size = (64, 64)
12
+
13
+ # Preprocessare l'immagine come fatto con ImageDataGenerator
14
  def preprocess_image(image):
15
+ # Convertire l'immagine in RGB e ridimensionare
16
+ image = Image.fromarray(image).convert("RGB")
17
+ image = image.resize(target_size, Image.NEAREST)
18
+
19
+ # Convertire l'immagine in array numpy e normalizzare
20
+ image_array = np.array(image) / 255.0 # Normalizzazione tra 0 e 1
21
+
22
+ # Espandere la dimensione per aggiungere la dimensione del batch
23
+ image_array = np.expand_dims(image_array, axis=0)
24
+
25
  return image_array
26
 
27
  # Classificazione: Definire una funzione per fare la predizione con le percentuali di confidenza
28
  def classify_image(image):
29
+ # Preprocessare l'immagine
30
  image_array = preprocess_image(image)
31
 
32
+ # Fare la predizione
33
  prediction = model.predict(image_array)[0]
34
 
35
  # Aggiungi un print per vedere le predizioni grezze
36
  print(f"Raw model predictions: {prediction}")
37
 
38
+ # Indice della classe con il punteggio più alto
39
+ predicted_class_idx = np.argmax(prediction)
40
 
41
  # Classi (Chihuahua o Muffin)
42
  class_labels = ['Chihuahua', 'Muffin']
43
 
44
+ # Verificare la classe predetta con il suo punteggio
45
  print(f"Predicted class: {class_labels[predicted_class_idx]} with confidence {prediction[predicted_class_idx]}")
46
 
47
  # Creare un dizionario con le percentuali di confidenza
 
57
  title="Chihuahua vs Muffin Classifier",
58
  description="Carica un'immagine e scopri se è un Chihuahua o un Muffin, con percentuali di confidenza!"
59
  ).launch()
60
+