| | from fastai.vision.all import * |
| | import gradio as gr |
| | import timm |
| | import dill |
| | import os |
| |
|
| | is_catan_learn = load_learner('./models/catan-model-paperspace-2022-11-29-05-17-46.pkl', pickle_module=dill) |
| | catan_category_learn = load_learner('./models/categories-of-catan-3.pkl', pickle_module=dill) |
| |
|
| | |
| |
|
| | def classify_image(img): |
| | pred, pred_idx, probs = is_catan_learn.predict(img) |
| | if float(probs[1]) < 0.2: |
| | |
| | categories = ('Not Catan', 'Catan') |
| | message = f'Did not detect Catan in this upload: *{probs[1]:.4f}%*. Choose another photo with Catan in it and we will categorize what kind of Catan we find.' |
| | details = dict(zip(categories, map(float, probs))) |
| | else: |
| | pred, pred_idx, probs = catan_category_learn.predict(img) |
| | message = f'Prediction: *{pred}*; Probability: *{probs[pred_idx]:.04f}%*' |
| | categories = catan_category_learn.dls.vocab |
| | details = dict(zip(categories, map(float, probs))) |
| |
|
| | return details, message |
| |
|
| |
|
| | |
| | image = gr.inputs.Image(shape=(192, 192)) |
| | label = gr.outputs.Label() |
| | description = gr.Markdown() |
| |
|
| | examples_dir_path = './examples/' |
| | examples = [(examples_dir_path + filename) for filename in os.listdir(examples_dir_path) if filename[:1] != '.'] |
| |
|
| | |
| | intf = gr.Interface(fn=classify_image, inputs=image, outputs=[label, description], examples=examples) |
| | intf.launch() |
| |
|