File size: 1,500 Bytes
d243cbc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import yolov5
from PIL import Image

# Model
model = yolov5.load('./yolo_datacat/best.pt')

def predict(im, threshold=0.50):
    # g = (size / max(im.size))  # gain
    # im = im.resize((int(x * g) for x in im.size), Image.ANTIALIAS)  # resize
    model.conf = threshold
    results = model(im)  # inference
    numpy_image = results.render()[0]
    output_image = Image.fromarray(numpy_image)
    return output_image

title = "YOLOv5 - Auction sale catalogues layout analysis"
description = "<p style='text-align: center'>YOLOv5 Gradio demo for auction sales catalogues layout analysis. Detecting titles and catalogues entries.</p>"
article = "<p style='text-align: center'>YOLOv5 source code : <a href='https://github.com/ultralytics/yolov5'>Source code</a> | <a href='https://pytorch.org/hub/ultralytics_yolov5'>PyTorch Hub</a></p>"
examples = [['./img_examples/12148-bpt6k1240127r.pdf_page_20.png', 0.50],
 ['./img_examples/12148-bpt6k1240127r.pdf_page_21.png', 0.50],
  ['./img_examples/12148-bpt6k1240127r.pdf_page_27.png', 0.50]]

demo=gr.Interface(fn=predict,
            inputs=[gr.Image(type="pil", label="document image"), gr.Slider(maximum=1, step=0.01, value=0.50)],
            outputs=gr.Image(type="pil", label="annotated document").style(height=700),
            title=title,
            description=description,
            article=article,
            examples=examples,
            theme="huggingface")


if __name__ == "__main__":
    demo.launch(debug=True)