pull_up / app.py
AlexN's picture
ajout dependances
3b333f6
raw
history blame
1.45 kB
import torch
import torchvision
from PIL import Image
import cv2
import numpy as np
import matplotlib.pyplot as plt
import TractionModel as plup
import random
from tqdm import tqdm
import gradio as gr
def snap(image):
return np.flipud(image)
def init_model(path):
model = plup.create_model()
model = plup.load_weights(model, path)
model.eval()
return model
def inference(image):
image = vanilla_transform(image).to(device).unsqueeze(0)
with torch.no_grad():
pred = model(image)
res = float(torch.sigmoid(pred[1].to("cpu")).numpy()[0])
return {'pull-up': res, 'no pull-up': 1 - res}
norm_mean = [0.485, 0.456, 0.406]
norm_std = [0.229, 0.224, 0.225]
vanilla_transform = torchvision.transforms.Compose([
torchvision.transforms.Resize(224),
torchvision.transforms.ToTensor(),
torchvision.transforms.Normalize(norm_mean, norm_std)])
model = init_model("model-score0.96-f1_10.9-f1_20.99.pt")
if torch.cuda.is_available():
device = torch.device("cuda")
else:
device = torch.device("cpu")
model = model.to(device)
iface = gr.Interface(inference, live=True, inputs=gr.inputs.Image(source="upload", tool=None, type='pil'),
outputs=gr.outputs.Label())
iface.test_launch()
if __name__ == "__main__":
iface.launch()