Spaces:
Sleeping
Sleeping
| import tensorflow as tf | |
| import numpy as np | |
| import cv2 | |
| import random | |
| import gradio as gr | |
| classes = ['paper', 'rock', 'scissors'] | |
| model = tf.keras.models.load_model('rps.h5') | |
| ch = {} | |
| # sel = None | |
| # det = None | |
| def classify_image(inp): | |
| img = cv2.resize(inp,(224,224),interpolation=cv2.INTER_AREA) | |
| img = np.reshape(img,(1,224,224,3)) | |
| pred = model.predict(img).flatten() | |
| confidences = {classes[i]: float(pred[i]) for i in range(3)} | |
| det = classes[pred.argmax(axis=-1)] | |
| print(det) | |
| ch['det'] = det | |
| return confidences | |
| def random_char(n): | |
| print("HELLO") | |
| n = random.randint(0,2) | |
| sel = classes[n] | |
| print(sel) | |
| ch['sel'] = sel | |
| return classes[n].upper() | |
| def result(t): | |
| print("HIOAL") | |
| sel = ch['sel'] | |
| det = ch['det'] | |
| print(sel, det) | |
| if (sel == 'rock' and det == 'paper') or (sel == 'paper' and det == 'scissors') or (sel == "scissors" and det == "rock"): | |
| return "YOU WON" | |
| elif (sel == 'paper' and det == 'rock') or (sel == 'scissors' and det == 'paper') or (sel == "rock" and det == "scissors"): | |
| return "YOU LOST" | |
| else: | |
| return "IT'S A TIE" | |
| import gradio as gr | |
| webcam = gr.inputs.Image(shape=(224, 224), source="webcam") | |
| classify = gr.Interface(fn=classify_image, | |
| inputs=webcam, | |
| outputs=gr.Label(num_top_classes=3)) | |
| computer = gr.Interface(fn=random_char, | |
| inputs=None, | |
| outputs=gr.TextArea(max_lines=1,label='The computer selected:')) | |
| final = gr.Interface(fn=result, | |
| inputs=None, | |
| outputs=gr.TextArea(max_lines=1,label='Result')) | |
| final = gr.Parallel(classify, computer, final).launch(debug=True) |