Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| import cv2 | |
| import tensorflow as tf | |
| model = tf.keras.models.load_model('best_model.keras') | |
| class_names = [ | |
| 'among us', 'apex legends', "baldur's gate 3", 'btd6', 'content warning', | |
| 'csgo', 'cyber punk 2077', 'darkest dungeon', 'doom eternal', 'fallout 3', | |
| 'fallout 4', 'fallout new vegas', 'fnaf security breach', 'fortnite', | |
| 'genshin impact', 'guilty gear strive', 'honkaistarrail', 'minecraft', | |
| 'overwatch 2', 'phasmophobia', 'rainbow six siege', 'resident evil village', | |
| 'slay the spire', 'stardew valley', 'street fighter 6', 'subnautica', | |
| 'terraria', 'valorant', 'wizard 101', 'wuthering waves', 'yugioh master duel' | |
| ] | |
| def predict_image(image): | |
| if image is None: | |
| return {"Error": 0.0} | |
| img = cv2.resize(image, (96, 96)) | |
| img_array = np.array(img, dtype=np.float32) / 255.0 | |
| img_batch = np.expand_dims(img_array, axis=0) | |
| predictions = model.predict(img_batch) | |
| confidences = {class_names[i]: float(predictions[0][i]) for i in range(len(class_names))} | |
| return confidences | |
| interface = gr.Interface( | |
| fn=predict_image, | |
| inputs=gr.Image(type="numpy", label="Upload a Gameplay Screenshot"), | |
| outputs=gr.Label(num_top_classes=3, label="Top 3 Predictions"), | |
| title="🎮 Game Environment Classifier", | |
| description="Drag and drop a gameplay screenshot, and the AI will predict which game it is from!" | |
| ) | |
| interface.launch() |