File size: 1,334 Bytes
c6a4560
 
 
 
17ba33d
 
d7953e2
 
c6a4560
 
 
 
 
 
d7953e2
c6a4560
 
 
 
 
 
 
 
 
 
50a6ee6
c6a4560
50a6ee6
d7953e2
17ba33d
c6a4560
50a6ee6
bf5b598
c6a4560
 
 
 
50a6ee6
17ba33d
c6a4560
 
c19d548
c6a4560
17ba33d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import gradio as gr
import cv2
from geti_sdk.deployment import Deployment
from geti_sdk.utils import show_image_with_annotation_scene
import numpy as np
from urllib.request import urlopen
import re


# Step 1: Load the deployment
deployment = Deployment.from_folder("deployment")
deployment.load_inference_models(device="CPU")



def resize_image(image, target_dimension):
    height, width = image.shape[:2]
    max_dimension = max(height, width)
    scale_factor = target_dimension / max_dimension
    new_width = int(width * scale_factor)
    new_height = int(height * scale_factor)
    resized_image = cv2.resize(image, (new_width, new_height))
    return resized_image


def infer(image=None):
    if image is None:
        return [None,'Error: No image provided']

    image = resize_image(image, 1200)
    prediction = deployment.infer(image)
    output = show_image_with_annotation_scene(image, prediction, show_results=False)
    output = cv2.cvtColor(output, cv2.COLOR_RGB2BGR)
    return [output, prediction.overview]


interface = gr.Interface(fn=infer, 
             inputs=['image'],
             outputs=['image', 'text'],
             allow_flagging='manual',
             flagging_dir='flagged',
             examples=["no_bird.jpg", "bird_example1.jpg", "bird_example2.jpg", "bird_example3.jpg"])

interface.launch()