import subprocess import sys print("Reinstalling mmcv") subprocess.check_call([sys.executable, "-m", "pip", "uninstall", "-y", "mmcv-full==1.3.17"]) subprocess.check_call([sys.executable, "-m", "pip", "install", "mmcv-full==1.3.17", "-f", "https://download.openmmlab.com/mmcv/dist/cpu/torch1.10.0/index.html"]) print("mmcv install complete") from gradio.outputs import Label from icevision.all import * from icevision.models.checkpoint import * import PIL import gradio as gr import os # Load model checkpoint_path = "model_checkpoint.pth" checkpoint_and_model = model_from_checkpoint(checkpoint_path) model = checkpoint_and_model["model"] model_type = checkpoint_and_model["model_type"] class_map = checkpoint_and_model["class_map"] # Transforms img_size = checkpoint_and_model["img_size"] valid_tfms = tfms.A.Adapter([*tfms.A.resize_and_pad(img_size), tfms.A.Normalize()]) # Populate examples in Gradio interface examples = [ ['sample_images/1.jpg'], ['sample_images/2.jpg'], ['sample_images/3.jpg'] ] def show_preds(input_image): img = PIL.Image.fromarray(input_image, "RGB") pred_dict = model_type.end2end_detect(img, valid_tfms, model, class_map=class_map, detection_threshold=0.5, display_label=False, display_bbox=True, return_img=True, font_size=16, label_color="#FF59D6") return pred_dict["img"] gr_interface = gr.Interface( fn=show_preds, inputs=["image"], outputs=[gr.outputs.Image(type="pil", label="RetinaNet Inference")], title="Fridge Object Detector", description="This RetinaNet model detects common objects found in fridge. Upload an image or click an example image below to use.", examples=examples, ) gr_interface.launch(inline=False, share=False, debug=True)