|
import gradio as gr |
|
import tensorflow as tf |
|
from PIL import Image |
|
import numpy as np |
|
|
|
|
|
|
|
model = tf.keras.models.load_model('Task_Pokemon.keras') |
|
|
|
|
|
class_names = ['Aerodactyl', 'Charizard', 'Victreebel'] |
|
|
|
def classify_image(image): |
|
image = Image.fromarray(image.astype('uint8'), 'RGB') |
|
img = image.resize((224, 224)) |
|
img_array = tf.keras.preprocessing.image.img_to_array(img) |
|
img_array = tf.expand_dims(img_array, 0) |
|
predictions = model.predict(img_array) |
|
predicted_class = class_names[np.argmax(predictions[0])] |
|
confidence = np.max(predictions[0]) |
|
return {predicted_class: float(confidence)} |
|
|
|
|
|
image_input = gr.Image() |
|
label = gr.Label(num_top_classes=3) |
|
|
|
iface = gr.Interface( |
|
fn=classify_image, |
|
inputs=image_input, |
|
outputs=label, |
|
title='Pokémon-Bildklassifizierer', |
|
description='Lade ein Bild von Aerodactyl, Charizard oder Victreebel hoch. Unser Klassifizierer wird das Pokémon identifizieren und das Vertrauensniveau der Vorhersage anzeigen.' |
|
) |
|
|
|
iface.launch() |
|
|
|
|
|
|