在数字化时代,文档中的表格信息处理成为了一项重要任务。TableStructureRec是一个专注于文档中表格结构化识别的推理库,它能够快速、准确地识别有线和无线表格,支持多种表格类型分类,显著提高文档处理效率。
简介
TableStructureRec仓库包含了来自阿里、微信等贡献的表格识别模型,以及网易Qanything内置的表格分类模型等。这些模型能够处理各种复杂场景下的表格识别任务。
特点
- 快速:采用ONNXRuntime作为推理引擎,CPU下单图推理仅需1-7秒。
- 准确:结合表格类型分类模型,区分有线表格和无线表格,任务更细分,精度更高。
- 稳定:不依赖任何第三方训练框架,只依赖必要基础库,避免包冲突。
在线演示
- ModelScope魔塔
- Huggingface
效果展示
通过使用TableRecognitionMetric评测工具,在huggingface数据集和modelscope数据集上进行测试,TableStructureRec取得了优异的成绩。特别是RapidTable(SLANet-plus)模型,在TEDS和TEDS-only-structure指标上分别达到了0.84481和0.91369的高分。
使用建议
- 对于通用场景下的有线表格(如论文、杂志、期刊、收据、单据、账单等),推荐使用
wired_table_rec_v2
模型,因为它在有线表格精度上表现最佳。 - 对于文档场景下的表格(如论文、杂志、期刊中的表格),推荐使用
paddlex-SLANet-plus
模型,因为它在综合精度上表现最佳。
安装
通过pip安装所需的包:
bash
pip install wired_table_rec lineless_table_rec table_cls
快速使用
以下是使用TableStructureRec进行表格识别的简单示例:
python
import os
from lineless_table_rec import LinelessTableRecognition
from table_cls import TableCls
from wired_table_rec import WiredTableRecognition
lineless_engine = LinelessTableRecognition()
wired_engine = WiredTableRecognition()
table_cls = TableCls()
img_path = 'images/img14.jpg'
cls, elasp = table_cls(img_path)
if cls == 'wired':
table_engine = wired_engine
else:
table_engine = lineless_engine
html, elasp, polygons, logic_points, ocr_res = table_engine(img_path)
print(f"elasp: {elasp}")
表格旋转及透视修正
对于需要GPU加速或更高精度的场景,可以参考项目RapidTableDet。
FAQ
-
问:识别框丢失了内部文字信息。 答:默认使用的是rapidocr小模型,如果需要更高精度的效果,可以从模型列表下载更高精度的ocr模型,在执行时传入ocr_result即可。
-
问:模型支持GPU加速吗? 答:目前表格模型的推理非常快,主要耗时在ocr阶段。可以参考rapidocr_paddle加速ocr识别过程。
TODO List
- 补充图片小角度偏移修正方法。
- 增加数据集数量,增加更多评测对比。
- 补充复杂场景表格检测和提取,解决旋转和透视导致的低识别率。
- 优化表格分类器,优化无线表格模型。
TableStructureRec是一个强大的工具,它能够帮助你快速准确地从文档中提取表格信息。如果你对这个项目感兴趣,可以访问其GitHub页面了解更多信息:
TableStructureRec - A repository for table structure recognition in documents
希望这篇博客能够帮助你了解TableStructureRec,并在你的项目中有效地应用它。