franckew commited on
Commit
f8025be
1 Parent(s): 2a5564f

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -0
app.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from PIL import Image
3
+ import numpy as np
4
+ from tensorflow.keras.preprocessing import image as keras_image
5
+ from tensorflow.keras.applications.inception_v3 import preprocess_input
6
+ from tensorflow.keras.models import load_model
7
+
8
+ # Lade dein trainiertes Modell
9
+ model = load_model('/home/user/app/one_piece_character_classifier.h5') # Stelle sicher, dass dieser Pfad korrekt ist
10
+
11
+ def predict_character(img):
12
+ img = Image.fromarray(img.astype('uint8'), 'RGB') # Stelle sicher, dass das Bild im RGB-Format vorliegt
13
+ img = img.resize((299, 299)) # Größe des Bildes anpassen für InceptionV3
14
+ img_array = keras_image.img_to_array(img) # Bild in ein Array umwandeln
15
+ img_array = np.expand_dims(img_array, axis=0) # Dimensionen erweitern, um dem Model-Input zu entsprechen
16
+ img_array = preprocess_input(img_array) # Input für InceptionV3 vorverarbeiten
17
+
18
+ prediction = model.predict(img_array) # Vorhersage mit dem Modell
19
+ classes = ['bishop', 'knight', 'rook'] # Spezifische Charakter-Namen
20
+ return {classes[i]: float(prediction[0][i]) for i in range(3)} # Vorhersage zurückgeben
21
+
22
+ # Definiere das Gradio-Interface
23
+ interface = gr.Interface(fn=predict_character,
24
+ inputs="image", # Vereinfachter Eingabetyp
25
+ outputs="label", # Vereinfachter Ausgabetyp
26
+ title="Chess Piece Classifier",
27
+ description="Upload an image of a chess piece to classify it as a bishop, knight, or rook.")
28
+
29
+ # Starte das Interface
30
+ interface.launch()