Spaces:
Runtime error
Runtime error
import gradio as gr | |
import os | |
import cv2 | |
import numpy as np | |
from PIL import Image | |
from paddleocr import PPStructure, save_structure_res, draw_structure_result | |
from paddleocr.ppstructure.recovery.recovery_to_doc import sorted_layout_boxes, convert_info_docx | |
# Chinese image | |
# table_engine = PPStructure(recovery=True) | |
# English image | |
# table_engine = PPStructure(recovery=True, lang='en') | |
examples = [['0.png']] | |
def find_layout(image, mode): | |
save_folder = './output' | |
# img = cv2.imread(image) | |
img = np.array(image) | |
print("The variable image is of type:", type(image)) | |
print("The variable img is of type:", type(img)) | |
if mode is not None: | |
mode = mode[0] | |
print("Mode: ", mode) | |
if mode=="LayoutAnalysis": | |
table_engine = PPStructure(table=False, ocr=False, show_log=True) | |
elif mode=="TableRecognition": | |
table_engine = PPStructure(layout=False, show_log=True) | |
else: | |
table_engine = PPStructure(recovery=True) | |
result = table_engine(img) | |
save_structure_res(result, save_folder, os.path.basename("result").split('.')[0]) | |
if mode=="LayoutReccovery": | |
h, w, _ = img.shape | |
res = sorted_layout_boxes(result, w) | |
final_text = [] | |
for line in result: | |
line.pop('img') | |
print(line) | |
final_text.append(line) | |
# convert_info_docx(img, res, save_folder, os.path.basename("result").split('.')[0]) | |
font_path = 'simfang.ttf' # PaddleOCR下提供字体包 | |
# image = Image.open(img_path).convert('RGB') | |
image = image.convert('RGB') | |
# img = img.convert('RGB') | |
im_show = draw_structure_result(image, result, font_path=font_path) | |
im_show = Image.fromarray(im_show) | |
# im_show.save('result.jpg') | |
return final_text, im_show | |
iface = gr.Interface(fn=find_layout, inputs=[ | |
gr.Image(type="pil"), | |
gr.CheckboxGroup(["LayoutAnalysis", "TableRecognition", "LayoutRecovery"], label="mode"), | |
], outputs=["text", "image"], examples=examples) | |
iface.launch() | |