Layout Parser is a deep learning based tool for document image layout analysis tasks.
You can find detailed installation instructions in installation.md. But generally, it's just pip install
some libraries:
pip install -U layoutparser
# Install Detectron2 for using DL Layout Detection Model
# Please make sure the PyTorch version is compatible with
# the installed Detectron2 version.
pip install 'git+https://github.com/facebookresearch/[email protected]#egg=detectron2'
# Install the ocr components when necessary
pip install layoutparser[ocr]
Below are the alternate commands that could also be used for installation in case of fvcore dependency related issues.
pip install -U 'git+https://github.com/layout-parser/layout-parser.git#egg=layoutparser'
pip install -U 'git+https://github.com/facebookresearch/[email protected]#egg=detectron2'
For Windows Users: Please read installation.md for details about installing Detectron2.
We provide a series of examples for to help you start using the layout parser library:
-
Table OCR and Results Parsing:
layoutparser
can be used for conveniently OCR documents and convert the output in to structured data. -
Deep Layout Parsing Example: With the help of Deep Learning,
layoutparser
supports the analysis very complex documents and processing of the hierarchical structure in the layouts.
The images shown in the figure above are: a screenshot of this paper, an image from the PRIMA Layout Analysis Dataset, a screenshot of the WSJ website, and an image from the HJDataset.
With only 4 lines of code in layoutparse
, you can unlock the information from complex documents that existing tools could not provide. You can either choose a deep learning model from the ModelZoo, or load the model that you trained on your own. And use the following code to predict the layout as well as visualize it:
>>> import layoutparser as lp
>>> model = lp.Detectron2LayoutModel('lp://PrimaLayout/mask_rcnn_R_50_FPN_3x/config')
>>> layout = model.detect(image) # You need to load the image somewhere else, e.g., image = cv2.imread(...)
>>> lp.draw_box(image, layout,) # With extra configurations
If you find layoutparser
helpful to your work, please consider citing our tool and paper using the following BibTeX entry.
@article{shen2021layoutparser,
title={LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis},
author={Shen, Zejiang and Zhang, Ruochen and Dell, Melissa and Lee, Benjamin Charles Germain and Carlson, Jacob and Li, Weining},
journal={arXiv preprint arXiv:2103.15348},
year={2021}
}