LayoutParser 文本版面分析工具包
目录
LayoutParser是一个版面分析工具包,它提供了布局检测、OCR识别、布局分析等接口,项目可以从https://github.com/Layout-Parser/layout-parser进行获取
一、环境准备
这里我们准备一个自带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模型的!
完!