File size: 1,416 Bytes
d4cbb06
 
 
da4e9c4
 
3ff55ee
8be80ef
 
 
 
 
 
 
 
70063f9
d4cbb06
cd9032a
cad4e9f
cd9032a
 
ef265ea
cd9032a
 
824e9cc
cd9032a
e90cbd6
cad4e9f
 
bd41e59
cad4e9f
 
d4cbb06
 
 
cd9032a
d4cbb06
cd9032a
e654d05
d4cbb06
 
cd9032a
d4cbb06
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
import gradio as gr
import torch
from PIL import Image
import pdf2image
import numpy as np
model = torch.hub.load('ultralytics/yolov5', 'custom', path='best.pt')


def yolo(im, size=640):
    g = (size / max(im.size))  # gain
    im = im.resize((int(x * g) for x in im.size), Image.BICUBIC)  # resize

    results = model(im)  # inference
    results.render()  # updates results.imgs with boxes and labels
    return Image.fromarray(results.ims[0])

def detect(pdf):
    storelist=[]
    path_to_pdf = pdf.name
    imgs = pdf2image.convert_from_path(path_to_pdf)
    for i in range(len(imgs)):
        result = model(np.array(imgs[i]))
        result_pred=result.pred
        print(result_pred)
        for j in range(len(result_pred[0])):
            if result_pred[0][j][5]==1 and result_pred[0][j][4]>0.3:
                storelist.append(i+1)
    if len(storelist)>0:
        return "find signature in pdf file page:"+str([*set(storelist)])
    else:
        return "do not find signature in pdf file"


inputs = gr.inputs.Image(type='pil', label="Original Image")
#outputs = gr.outputs.Image(type="pil", label="Output Image")

title = "Object detection for signature detections in pdf file "
description = "Drop a PDF, it will report pages contain signatures."


gr.Interface(detect, inputs=gr.File(label="PDF"), outputs="label", title=title, description=description,theme="huggingface").launch(debug=True)