LayoutParser 文本版面分析工具包


作者:elfin​   ​

目录


LayoutParser​是一个版面分析工具包,它提供了布局检测、OCR识别、布局分析等接口,项目可以从https://github.com/Layout-Parser/layout-parser进行获取


​Top​​​---​​Bottom​

一、环境准备

这里我们准备一个自带cuda环境、anconda3.7环境的容器,如果需要可以用下面的命令拉去docker镜像。

$ docker pull elfin2docker/ai_container:20210924

基于这个镜像,部署容器后,我们直接进行安装:

$ 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

通过简单的​​pip install layoutparser​​​即可简单安装,正在的做到了开箱即用!​​"layoutparser[layoutmodels]"​​​与​​"layoutparser[ocr]"​​需要单独安装。

二、环境测试

我们可以使用如下的案例来验证是否安装成功:

import layoutparser as lp
from PIL import Image
config = "lp://PubLayNet/tf_efficientdet_d0/config"
model = lp.EfficientDetLayoutModel(
config_path=config,
model_path="./publaynet-tf_efficientdet_d0.pth.tar"
)
image = Image.open("images_1.png")
layout = model.detect(image)

config​指定了模型的配置结构,​EfficientDetLayoutModel​标识了用什么模型,模型应该是只能使用EfficientDetLayoutModel,paddleocr和detectron2应该需要安装相应的包,在安装包中的models中可以查找到对应的模型:

  • models/paddledetection/layoutmodel.py -->​class PaddleDetectionLayoutModel
  • models/effdet/layoutmodel.py -->​class EfficientDetLayoutModel
  • models/detectron2/layoutmodel.py -->​class Detectron2LayoutModel

如果你不知道环境中有哪几种模型可以使用,则建议使用以下方法进行验证

>>> import layoutparser as lp
>>> lp.is_detectron2_available()
False
>>> lp.is_paddle_available()
False

如上所示,这里在安装后默认是没有detectron2、paddle模型的!


​Top​​​---​​Bottom​

完!


清澈的爱,只为中国