<p align="center">
<img src="https://github.com/Layout-Parser/layout-parser/raw/main/.github/layout-parser.png" alt="Layout Parser Logo" width="35%">
<h3 align="center">
A unified toolkit for Deep Learning Based Document Image Analysis
</h3>
</p>
<p align=center>
<a href="https://pypi.org/project/layoutparser/"><img src="https://img.shields.io/pypi/v/layoutparser?color=%23099cec&label=PyPI%20package&logo=pypi&logoColor=white" title="The current version of Layout Parser"></a>
<a href="https://github.com/Layout-Parser/layout-parser/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/layoutparser" title="Layout Parser uses Apache 2 License"></a>
<img alt="PyPI - Downloads" src="https://img.shields.io/pypi/dm/layoutparser">
</p>
<p align=center>
<a href="https://arxiv.org/abs/2103.15348"><img src="https://img.shields.io/badge/paper-2103.15348-b31b1b.svg" title="Layout Parser Paper"></a>
<a href="https://layout-parser.github.io"><img src="https://img.shields.io/badge/website-layout--parser.github.io-informational.svg" title="Layout Parser Paper"></a>
<a href="https://layout-parser.readthedocs.io/en/latest/"><img src="https://img.shields.io/badge/doc-layout--parser.readthedocs.io-light.svg" title="Layout Parser Documentation"></a>
</p>
---
## What is LayoutParser
![Example Usage](https://github.com/Layout-Parser/layout-parser/raw/main/.github/example.png)
LayoutParser aims to provide a wide range of tools that aims to streamline Document Image Analysis (DIA) tasks. Please check the LayoutParser [demo video](https://youtu.be/8yA5xB4Dg8c) (1 min) or [full talk](https://www.youtube.com/watch?v=YG0qepPgyGY) (15 min) for details. And here are some key features:
- LayoutParser provides a rich repository of deep learning models for layout detection as well as a set of unified APIs for using them. For example,
<details>
<summary>Perform DL layout detection in 4 lines of code</summary>
```python
import layoutparser as lp
model = lp.AutoLayoutModel('lp://EfficientDete/PubLayNet')
# image = Image.open("path/to/image")
layout = model.detect(image)
```
</details>
- LayoutParser comes with a set of layout data structures with carefully designed APIs that are optimized for document image analysis tasks. For example,
<details>
<summary>Selecting layout/textual elements in the left column of a page</summary>
```python
image_width = image.size[0]
left_column = lp.Interval(0, image_width/2, axis='x')
layout.filter_by(left_column, center=True) # select objects in the left column
```
</details>
<details>
<summary>Performing OCR for each detected Layout Region</summary>
```python
ocr_agent = lp.TesseractAgent()
for layout_region in layout:
image_segment = layout_region.crop(image)
text = ocr_agent.detect(image_segment)
```
</details>
<details>
<summary>Flexible APIs for visualizing the detected layouts</summary>
```python
lp.draw_box(image, layout, box_width=1, show_element_id=True, box_alpha=0.25)
```
</details>
</details>
<details>
<summary>Loading layout data stored in json, csv, and even PDFs</summary>
```python
layout = lp.load_json("path/to/json")
layout = lp.load_csv("path/to/csv")
pdf_layout = lp.load_pdf("path/to/pdf")
```
</details>
- LayoutParser is also a open platform that enables the sharing of layout detection models and DIA pipelines among the community.
<details>
<summary><a href="https://layout-parser.github.io/platform/">Check</a> the LayoutParser open platform</summary>
</details>
<details>
<summary><a href="https://github.com/Layout-Parser/platform">Submit</a> your models/pipelines to LayoutParser</summary>
</details>
## Installation
After several major updates, layoutparser provides various functionalities and deep learning models from different backends. But it still easy to install layoutparser, and we designed the installation method in a way such that you can choose to install only the needed dependencies for your project:
```bash
pip install layoutparser # Install the base layoutparser library with
pip install "layoutparser[layoutmodels]" # Install DL layout model toolkit
pip install "layoutparser[ocr]" # Install OCR toolkit
```
Extra steps are needed if you want to use Detectron2-based models. Please check [installation.md](installation.md) for additional details on layoutparser installation.
## Examples
We provide a series of examples for to help you start using the layout parser library:
1. [Table OCR and Results Parsing](https://github.com/Layout-Parser/layout-parser/blob/main/examples/OCR%20Tables%20and%20Parse%20the%20Output.ipynb): `layoutparser` can be used for conveniently OCR documents and convert the output in to structured data.
2. [Deep Layout Parsing Example](https://github.com/Layout-Parser/layout-parser/blob/main/examples/Deep%20Layout%20Parsing.ipynb): With the help of Deep Learning, `layoutparser` supports the analysis very complex documents and processing of the hierarchical structure in the layouts.
## Contributing
We encourage you to contribute to Layout Parser! Please check out the [Contributing guidelines](.github/CONTRIBUTING.md) for guidelines about how to proceed. Join us!
## Citing `layoutparser`
If you find `layoutparser` helpful to your work, please consider citing our tool and [paper](https://arxiv.org/pdf/2103.15348.pdf) 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}
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Layout-Parser/layout-parser",
"name": "layoutparser",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "layout analysis,deep learning",
"author": "Zejiang Shen, Ruochen Zhang, and Layout Parser Model Contributors",
"author_email": "layoutparser@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/95/16/3ff7629fd684047ad9779394aadc7b612c5ae91e41a27f1bad1469e23f05/layoutparser-0.3.4.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=\"https://github.com/Layout-Parser/layout-parser/raw/main/.github/layout-parser.png\" alt=\"Layout Parser Logo\" width=\"35%\">\n <h3 align=\"center\">\n A unified toolkit for Deep Learning Based Document Image Analysis\n </h3>\n</p>\n\n<p align=center>\n<a href=\"https://pypi.org/project/layoutparser/\"><img src=\"https://img.shields.io/pypi/v/layoutparser?color=%23099cec&label=PyPI%20package&logo=pypi&logoColor=white\" title=\"The current version of Layout Parser\"></a>\n<a href=\"https://github.com/Layout-Parser/layout-parser/blob/main/LICENSE\"><img src=\"https://img.shields.io/pypi/l/layoutparser\" title=\"Layout Parser uses Apache 2 License\"></a>\n<img alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/layoutparser\">\n</p>\n\n<p align=center>\n<a href=\"https://arxiv.org/abs/2103.15348\"><img src=\"https://img.shields.io/badge/paper-2103.15348-b31b1b.svg\" title=\"Layout Parser Paper\"></a>\n<a href=\"https://layout-parser.github.io\"><img src=\"https://img.shields.io/badge/website-layout--parser.github.io-informational.svg\" title=\"Layout Parser Paper\"></a>\n<a href=\"https://layout-parser.readthedocs.io/en/latest/\"><img src=\"https://img.shields.io/badge/doc-layout--parser.readthedocs.io-light.svg\" title=\"Layout Parser Documentation\"></a>\n</p>\n\n---\n\n## What is LayoutParser\n\n![Example Usage](https://github.com/Layout-Parser/layout-parser/raw/main/.github/example.png)\n\nLayoutParser aims to provide a wide range of tools that aims to streamline Document Image Analysis (DIA) tasks. Please check the LayoutParser [demo video](https://youtu.be/8yA5xB4Dg8c) (1 min) or [full talk](https://www.youtube.com/watch?v=YG0qepPgyGY) (15 min) for details. And here are some key features:\n\n- LayoutParser provides a rich repository of deep learning models for layout detection as well as a set of unified APIs for using them. For example, \n \n <details>\n <summary>Perform DL layout detection in 4 lines of code</summary>\n \n ```python\n import layoutparser as lp\n model = lp.AutoLayoutModel('lp://EfficientDete/PubLayNet')\n # image = Image.open(\"path/to/image\")\n layout = model.detect(image) \n ```\n \n </details>\n\n- LayoutParser comes with a set of layout data structures with carefully designed APIs that are optimized for document image analysis tasks. For example, \n\n <details>\n <summary>Selecting layout/textual elements in the left column of a page</summary>\n \n ```python\n image_width = image.size[0]\n left_column = lp.Interval(0, image_width/2, axis='x')\n layout.filter_by(left_column, center=True) # select objects in the left column \n ```\n \n </details>\n\n <details>\n <summary>Performing OCR for each detected Layout Region</summary>\n \n ```python\n ocr_agent = lp.TesseractAgent()\n for layout_region in layout: \n image_segment = layout_region.crop(image)\n text = ocr_agent.detect(image_segment)\n ```\n \n </details> \n \n <details>\n <summary>Flexible APIs for visualizing the detected layouts</summary>\n \n ```python\n lp.draw_box(image, layout, box_width=1, show_element_id=True, box_alpha=0.25)\n ```\n \n </details> \n \n </details> \n \n <details>\n <summary>Loading layout data stored in json, csv, and even PDFs</summary>\n \n ```python \n layout = lp.load_json(\"path/to/json\")\n layout = lp.load_csv(\"path/to/csv\")\n pdf_layout = lp.load_pdf(\"path/to/pdf\")\n ```\n \n </details>\n\n- LayoutParser is also a open platform that enables the sharing of layout detection models and DIA pipelines among the community. \n <details>\n <summary><a href=\"https://layout-parser.github.io/platform/\">Check</a> the LayoutParser open platform</summary>\n </details>\n\n <details>\n <summary><a href=\"https://github.com/Layout-Parser/platform\">Submit</a> your models/pipelines to LayoutParser</summary>\n </details>\n\n## Installation \n\nAfter several major updates, layoutparser provides various functionalities and deep learning models from different backends. But it still easy to install layoutparser, and we designed the installation method in a way such that you can choose to install only the needed dependencies for your project:\n\n```bash\npip install layoutparser # Install the base layoutparser library with \npip install \"layoutparser[layoutmodels]\" # Install DL layout model toolkit \npip install \"layoutparser[ocr]\" # Install OCR toolkit\n```\n\nExtra steps are needed if you want to use Detectron2-based models. Please check [installation.md](installation.md) for additional details on layoutparser installation. \n\n## Examples \n\nWe provide a series of examples for to help you start using the layout parser library: \n\n1. [Table OCR and Results Parsing](https://github.com/Layout-Parser/layout-parser/blob/main/examples/OCR%20Tables%20and%20Parse%20the%20Output.ipynb): `layoutparser` can be used for conveniently OCR documents and convert the output in to structured data. \n\n2. [Deep Layout Parsing Example](https://github.com/Layout-Parser/layout-parser/blob/main/examples/Deep%20Layout%20Parsing.ipynb): With the help of Deep Learning, `layoutparser` supports the analysis very complex documents and processing of the hierarchical structure in the layouts. \n\n## Contributing\n\nWe encourage you to contribute to Layout Parser! Please check out the [Contributing guidelines](.github/CONTRIBUTING.md) for guidelines about how to proceed. Join us!\n\n## Citing `layoutparser`\n\nIf you find `layoutparser` helpful to your work, please consider citing our tool and [paper](https://arxiv.org/pdf/2103.15348.pdf) using the following BibTeX entry.\n\n```\n@article{shen2021layoutparser,\n title={LayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis},\n author={Shen, Zejiang and Zhang, Ruochen and Dell, Melissa and Lee, Benjamin Charles Germain and Carlson, Jacob and Li, Weining},\n journal={arXiv preprint arXiv:2103.15348},\n year={2021}\n}\n```\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "A unified toolkit for Deep Learning Based Document Image Analysis",
"version": "0.3.4",
"project_urls": {
"Homepage": "https://github.com/Layout-Parser/layout-parser"
},
"split_keywords": [
"layout analysis",
"deep learning"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "08cf0bfbea1b2ace91af45e15bdec885e05992dc9150907a8398b3d305eddfd2",
"md5": "8c5b062d3a76dd3c9d14176d804d10da",
"sha256": "269aedfab8a0caa50aef8d0fa62740fbee1f2964880daae3a0e6a0415363126a"
},
"downloads": -1,
"filename": "layoutparser-0.3.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8c5b062d3a76dd3c9d14176d804d10da",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 19177304,
"upload_time": "2022-04-06T04:38:09",
"upload_time_iso_8601": "2022-04-06T04:38:09.805280Z",
"url": "https://files.pythonhosted.org/packages/08/cf/0bfbea1b2ace91af45e15bdec885e05992dc9150907a8398b3d305eddfd2/layoutparser-0.3.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "95163ff7629fd684047ad9779394aadc7b612c5ae91e41a27f1bad1469e23f05",
"md5": "c020dd8d304da93b56ade8be594bdcf6",
"sha256": "0dfb2194c36a5ad1075b8310f3cbc280c00306d1758cef127d20283f7ce085ea"
},
"downloads": -1,
"filename": "layoutparser-0.3.4.tar.gz",
"has_sig": false,
"md5_digest": "c020dd8d304da93b56ade8be594bdcf6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 19153228,
"upload_time": "2022-04-06T04:38:12",
"upload_time_iso_8601": "2022-04-06T04:38:12.944799Z",
"url": "https://files.pythonhosted.org/packages/95/16/3ff7629fd684047ad9779394aadc7b612c5ae91e41a27f1bad1469e23f05/layoutparser-0.3.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-04-06 04:38:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Layout-Parser",
"github_project": "layout-parser",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "layoutparser"
}