|
import gradio as gr |
|
import tensorflow as tf |
|
import numpy as np |
|
from PIL import Image |
|
|
|
|
|
model_path = "chess-predict-model_transferlearning.keras" |
|
model = tf.keras.models.load_model(model_path) |
|
|
|
|
|
def predict_figure(image): |
|
|
|
print(type(image)) |
|
image = Image.fromarray(image.astype('uint8')) |
|
image = image.resize((150, 150)) |
|
image = np.array(image) |
|
image = np.expand_dims(image, axis=0) |
|
|
|
|
|
prediction = model.predict(image) |
|
|
|
|
|
prediction = tf.nn.softmax(prediction) |
|
|
|
|
|
bishop = np.round(float(prediction[0][0]), 2) |
|
king = np.round(float(prediction[0][1]), 2) |
|
knight = np.round(float(prediction[0][2]), 2) |
|
pawn = np.round(float(prediction[0][3]), 2) |
|
queen = np.round(float(prediction[0][4]), 2) |
|
rook = np.round(float(prediction[0][5]), 2) |
|
|
|
|
|
return {'Bishop': bishop, 'King': king, 'Knight': knight, 'Pawn': pawn, 'Queen': queen, 'Rook': rook} |
|
|
|
input_image = gr.Image() |
|
iface = gr.Interface( |
|
fn=predict_figure, |
|
inputs=input_image, |
|
outputs=gr.Label(), |
|
description="A simple mlp classification model for image classification using the mnist dataset.") |
|
iface.launch(share=True) |
|
|
|
|
|
|
|
|