开源表格识别模型对比
引言
表格结构识别功能是智能文档中很重要的一个模块,又加之表格种类繁多,且复杂,又进一步让表格识别任务变得更加困难。
现阶段,开源的表格识别模型众多,但却难以有一个公平的对比,来方便我们在日常使用时选择合适的模型。因此,我们就以此为出发点,旨在解决评估开源表格模型评估问题,通过构建第三方评测集、发布计算TEDS指标工具来评测了当前开源的诸多表格识别模型。
与此同时,我们也将最优的表格识别模型做了整理,发布了两个表格识别库,详情请参见下文:
- TableStructureRec(基于阿里读光开源模型)
- RapidTable(基于PP-Structure中表格识别模型)
评测环境
- OS: Ubuntu
- Python: 3.10.10
- OpenCV: 4.10.0.84
评测数据集及工具
评测指标
- TEDS
- TEDS-only-structure
评测结果
注:
- StructEqTable 输出为 latex,只取成功转换为html并去除样式标签后进行测评
- Surya-Tabled 使用内置ocr模块,表格模型为行列识别模型,无法识别单元格合并,导致分数较低
RapidAI系表格识别库
TableStructureRec
该仓库是用来对文档中表格做结构化识别的推理库,包括来自阿里读光有线和无线表格识别模型,llaipython(微信)贡献的有线表格模型,网易Qanything内置表格分类模型等。
安装:
pip install wired_table_rec lineless_table_rec table_cls
使用:
import os
from lineless_table_rec import LinelessTableRecognition
from lineless_table_rec.utils_table_recover import format_html, plot_rec_box_with_logic_info, plot_rec_box
from table_cls import TableCls
from wired_table_rec import WiredTableRecognition
lineless_engine = LinelessTableRecognition()
wired_engine = WiredTableRecognition()
table_cls = TableCls()
img_path = f'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}")
识别效果:
RapidTable
主源自PP-Structure的表格识别算法,模型转换为ONNX,推理引擎采用ONNXRuntime,部署简单,无内存泄露问题。最近刚刚集成了SLANet-plus,该模型是paddlex内置的SLANet升级版模型,表格识别准确率有大幅提升。
安装使用:
pip install rapidocr_onnxruntime
pip install rapid_table
rapid_table -v -img test_images/table.jpg
总结
- wired_table_rec_v2(有线表格精度最高): 通用场景有线表格(论文,杂志,期刊, 收据,单据,账单)
- paddlex-SLANet-plus(综合精度最高): 文档场景表格(论文,杂志,期刊中的表格)
小伙伴们可以根据自己需求尝试以上列出的表格识别模型,有啥想法可以关注RapidAI公众号,后台回复“表格”入微信群交流。
本文使用 markdown.com.cn 排版
-----------------------------------------
你驻足于春色中,于那独一无二的春色之中。