import os os.system('pip install "git+https://github.com/facebookresearch/detectron2.git@v0.5#egg=detectron2"') import layoutparser as lp import gradio as gr # PrimaLayout model0 = lp.Detectron2LayoutModel('lp://PrimaLayout/mask_rcnn_R_50_FPN_3x/config') # PubLayNet model1 = lp.Detectron2LayoutModel('lp://PubLayNet/faster_rcnn_R_50_FPN_3x/config') model2 = lp.Detectron2LayoutModel('lp://PubLayNet/mask_rcnn_R_50_FPN_3x/config') model3 = lp.Detectron2LayoutModel('lp://PubLayNet/mask_rcnn_X_101_32x8d_FPN_3x/config') def lpi(img): # You need to load the image somewhere else, e.g., image = cv2.imread(...) layout0 = model0.detect(img) layout1 = model1.detect(img) layout2 = model2.detect(img) layout3 = model3.detect(img) img0 = lp.draw_box(img, layout0) img1 = lp.draw_box(img, layout1) img2 = lp.draw_box(img, layout2) img3 = lp.draw_box(img, layout3) return img0, img1, img2, img3 # With extra configurations inputs = gr.inputs.Image(type='pil', label="Original Image") outputs = [ gr.outputs.Image(type="pil",label="Output Image (PrimaLayout/faster_rcnn_R_50_FPN_3x)"), gr.outputs.Image(type="pil",label="Output Image (PubLayNet/faster_rcnn_R_50_FPN_3x)"), gr.outputs.Image(type="pil",label="Output Image (PubLayNet/mask_rcnn_R_50_FPN_3x)"), gr.outputs.Image(type="pil",label="Output Image (PubLayNet/mask_rcnn_X_101_32x8d_FPN_3x)") ] title = "Layout Parser (PrimaLayout & PubLayNet models)" description = "demo for Layout Parser with PrimaLayout & PubLayNet models. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below." article = "

LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis | Github Repo

" examples = [ ['example-table.jpeg'], ['paper-image.jpeg'] ] gr.Interface(lpi, inputs, outputs, title=title, description=description, article=article, examples=examples).launch()