pierreguillou/layout-parser
4
1import os2os.system('pip install "git+https://github.com/facebookresearch/detectron2.git@v0.5#egg=detectron2"')3import layoutparser as lp4import gradio as gr5 6# PrimaLayout7model0 = lp.Detectron2LayoutModel('lp://PrimaLayout/mask_rcnn_R_50_FPN_3x/config')8 9# PubLayNet 10model1 = lp.Detectron2LayoutModel('lp://PubLayNet/faster_rcnn_R_50_FPN_3x/config')11model2 = lp.Detectron2LayoutModel('lp://PubLayNet/mask_rcnn_R_50_FPN_3x/config')12model3 = lp.Detectron2LayoutModel('lp://PubLayNet/mask_rcnn_X_101_32x8d_FPN_3x/config')13 14def lpi(img):15 # You need to load the image somewhere else, e.g., image = cv2.imread(...)16 layout0 = model0.detect(img)17 layout1 = model1.detect(img) 18 layout2 = model2.detect(img)19 layout3 = model3.detect(img)20 21 img0 = lp.draw_box(img, layout0)22 img1 = lp.draw_box(img, layout1)23 img2 = lp.draw_box(img, layout2)24 img3 = lp.draw_box(img, layout3)25 26 return img0, img1, img2, img3 # With extra configurations27 28inputs = gr.inputs.Image(type='pil', label="Original Image")29outputs = [30gr.outputs.Image(type="pil",label="Output Image (PrimaLayout/faster_rcnn_R_50_FPN_3x)"),31gr.outputs.Image(type="pil",label="Output Image (PubLayNet/faster_rcnn_R_50_FPN_3x)"),32gr.outputs.Image(type="pil",label="Output Image (PubLayNet/mask_rcnn_R_50_FPN_3x)"),33gr.outputs.Image(type="pil",label="Output Image (PubLayNet/mask_rcnn_X_101_32x8d_FPN_3x)")34]35 36title = "Layout Parser (PrimaLayout & PubLayNet models)"37description = "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."38article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2103.15348'>LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis</a> | <a href='https://github.com/Layout-Parser/layout-parser'>Github Repo</a></p>"39 40examples = [41 ['example-table.jpeg'],42 ['paper-image.jpeg']43]44 45gr.Interface(lpi, inputs, outputs, title=title, description=description, article=article, examples=examples).launch()