开源表格识别模型对比

引言

表格结构识别功能是智能文档中很重要的一个模块,又加之表格种类繁多,且复杂,又进一步让表格识别任务变得更加困难。

现阶段,开源的表格识别模型众多,但却难以有一个公平的对比,来方便我们在日常使用时选择合适的模型。因此,我们就以此为出发点,旨在解决评估开源表格模型评估问题,通过构建第三方评测集、发布计算TEDS指标工具来评测了当前开源的诸多表格识别模型。

与此同时,我们也将最优的表格识别模型做了整理,发布了两个表格识别库,详情请参见下文:

评测环境

  • OS: Ubuntu
  • Python: 3.10.10
  • OpenCV: 4.10.0.84

评测数据集及工具

评测指标

  • TEDS
  • TEDS-only-structure

评测结果

image.png

注:

  • 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}")

识别效果:

image.png

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 排版

posted @ 2024-10-22 21:36  Danno  阅读(26)  评论(0编辑  收藏  举报