threadcheckerV1 / app.py
ddecosmo's picture
Update app.py
21ef3d4 verified
# -*- coding: utf-8 -*-
"""threadcheckerv1_gui.ipynb
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/145qYaJaBGKmbGoSNYSsFlMASN1PUKEgF
"""
import numpy as np
from PIL import Image
import gradio as gr
import huggingface_hub
from tensorflow.keras.models import load_model
# Load model from Hugging Face Hub
repo_id = "ddecosmo/thread_checker_v1"
model_filename = "thread_checker_model.keras"
model_path = huggingface_hub.hf_hub_download(repo_id=repo_id, filename=model_filename)
model = load_model(model_path)
# Example images (replace with actual files in your repo if desired)
example_images = [
"0.125_ex.jpg",
"0.25_ex.jpg",
"0.375_ex.jpg"
]
def predict_image(image):
"""
Predicts the class of an image using the loaded Keras model and returns
confidence scores for all classes and the final determination.
"""
img_width, img_height = model.input_shape[1:3]
image = image.resize((img_width, img_height))
image = np.array(image).astype("float32") / 255.0
image = np.expand_dims(image, axis=0)
predictions = model.predict(image)
confidence_scores = predictions[0]
predicted_class_index = np.argmax(confidence_scores)
class_labels = ["0.125", "0.25", "0.375"]
final_determination = class_labels[predicted_class_index]
return (
float(confidence_scores[0]),
float(confidence_scores[1]),
float(confidence_scores[2]),
final_determination,
)
iface = gr.Interface(
fn=predict_image,
inputs=gr.Image(type="pil"),
outputs=[
gr.Number(label="Confidence (0.125)"),
gr.Number(label="Confidence (0.25)"),
gr.Number(label="Confidence (0.375)"),
gr.Textbox(label="Final Determination"),
],
examples=example_images,
)
if __name__ == "__main__":
iface.launch()