layoutparser


Namelayoutparser JSON
Version 0.3.4 PyPI version JSON
download
home_pagehttps://github.com/Layout-Parser/layout-parser
SummaryA unified toolkit for Deep Learning Based Document Image Analysis
upload_time2022-04-06 04:38:12
maintainer
docs_urlNone
authorZejiang Shen, Ruochen Zhang, and Layout Parser Model Contributors
requires_python>=3.6
licenseApache-2.0
keywords layout analysis deep learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <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"
}
        
Elapsed time: 1.39151s