项目简介
Tabled 是一个用于检测和提取表的小型库。它使用surya查找 PDF 中的所有表格,识别行/列,并将单元格格式设置为 markdown、csv 或 html。
安装
您需要 python 3.10+ 和 PyTorch。如果您不使用 Mac 或 GPU 机器,您可能需要先安装 CPU 版本的 torch。请参阅此处了解更多详细信息。
Install with: 安装:
pip install tabled-pdf
安装后:
检查
tabled/settings.py
中的设置。您可以使用环境变量覆盖任何设置。系统将自动检测您的手电筒设备,但您可以覆盖此设置。例如,
TORCH_DEVICE=cuda
。模型权重将在您第一次运行时自动下载。
用法
tabled DATA_PATH
DATA_PATH
可以是图像、pdf 或图像/pdf 文件夹--format
指定每个表的输出格式(markdown
、html
或csv
)--save_json
在 json 文件中保存额外的行和列信息--save_debug_images
保存显示检测到的行和列的图像--skip_detection
表示你传入的图像都是裁剪后的表格,不需要任何表格检测。--detect_cell_boxes
默认情况下,tabled 将尝试从 pdf 中提取单元格信息。如果您希望通过检测模型检测单元格,请指定此项(通常您只需要在嵌入文本错误的 pdf 中使用此选项)。--save_images
指定应保存检测到的行/列和单元格的图像。
results.json
文件将包含一个 json 字典,其中键是不带扩展名的输入文件名。每个值将是一个字典列表,输入文档的每一页一个。每页词典包含:
text_lines
- 每行检测到的文本和边界框text
- 行中的文本confidence
- 模型在检测到的文本中的置信度 (0-1)polygon
- (x1, y1)、(x2, y2)、(x3, y3)、(x4, y4) 格式的文本行的多边形。这些点从左上角开始按顺时针顺序排列。bbox
- (x1, y1, x2, y2) 格式的文本行的轴对齐矩形。(x1, y1) 是左上角,(x2, y2) 是右下角。languages
- 为页面指定的语言page
- 文件中的页码image_bbox
- (x1, y1, x2, y2) 格式的图像的 bbox。(x1, y1) 是左上角,(x2, y2) 是右下角。所有行 bbox 都将包含在该 bbox 中。
交互式App
我提供了一个 Streamlit 应用程序,可让您以交互方式尝试在图像或 PDF 文件上放置表格。运行它:
pip install streamlit
tabled_gui
From python
from tabled.extract import extract_tables
from tabled.fileinput import load_pdfs_images
from tabled.inference.models import load_detection_models, load_recognition_models
det_models, rec_models = load_detection_models(), load_recognition_models()
images, highres_images, names, text_lines = load_pdfs_images(IN_PATH)
page_results = extract_tables(images, highres_images, text_lines, det_models, rec_models)
项目链接
https://github.com/VikParuchuri/tabled
扫码加入技术交流群,备注「开发语言-城市-昵称」
合作请注明
关注「GitHubStore」公众号