On this page
三个表格识别算法评测
引言
为了便于比较不同表格识别算法的效果差异,本篇文章基于评测工具TableRecognitionMetric和表格测试数据集liekkas/table_recognition上计算不同算法的TEDS指标。
以下评测仅是基于表格测试数据集liekkas/table_recognition测试而来,不能完全代表模型效果。
因为每个模型训练数据不同,测试数据集如与训练数据相差较大,难免效果较差,请针对自身场景客观看待评测指标。
RapidTable: 有英文和中文两个模型,大多都是印刷体截屏表格。具体可参见:表格识别模型。
lineless_table_rec: 训练数据部分来自SciTSR与PubTabNet,训练集共45000张。这两个数据大多是来自论文截图,所以这个模型也是比较适用于论文中表格识别。
wired_table_rec: 训练数据为WTW,训练集为10970张。WTW数据组成有50%的自然场景下、30%的档案和20%的印刷体表格。所以这个模型更适合自然场景下拍照的表格识别。
指标结果
方法 | TEDS | TEDS-only-structure |
---|---|---|
deepdoctection(rag-flow) | 0.59975 | 0.69918 |
ppstructure_table_master | 0.61606 | 0.73892 |
ppsturcture_table_engine | 0.67924 | 0.78653 |
table_cls + wired_table_rec v1 + lineless_table_rec | 0.68507 | 0.75140 |
StructEqTable | 0.67310 | 0.81210 |
RapidTable | 0.71654 | 0.81067 |
table_cls + wired_table_rec v2 + lineless_table_rec | 0.73702 | 0.80210 |
评测步骤
1. 安装评测数据集和评测工具包
pip install table_recognition_metric
pip install modelscope==1.5.2
pip install rapidocr_onnxruntime==1.3.8
2. 安装表格识别推理库
pip install rapid_table
pip install lineless_table_rec
pip install wired_table_rec
3. 推理代码
完整评测代码,请移步Gist
from modelscope.msdatasets import MsDataset
from rapid_table import RapidTable
from lineless_table_rec import LinelessTableRecognition
from wired_table_rec import WiredTableRecognition
from table_recognition_metric import TEDS
test_data = MsDataset.load(
"table_recognition",
namespace="liekkas",
subset_name="default",
split="test",
)
# 这里依次更换不同算法实例即可
table_engine = RapidTable()
# table_engine = LinelessTableRecognition()
# table_engine = WiredTableRecognition()
teds = TEDS()
content = []
for one_data in test_data:
img_path = one_data.get("image:FILE")
gt = one_data.get("label")
pred_str, _ = table_engine(img_path)
scores = teds(gt, pred_str)
content.append(scores)
print(f"{img_path}\t{scores:.5f}")
avg = sum(content) / len(content)
print(f'{avg:.5f}')
Last updated 30 Sep 2024, 08:43 +0800 .