表格模型评估指标汇总

2022年春节之前的最后一篇博客啦今年一定要虎虎生威 前两天刷完了《开端》,真的很好看啊,真不愧是我从大学就开始喜欢的作家写的小说。
年底主要是对今年OCR工作的各种指标的测试,也算是给一年的工作做一个小结了吧。最近两个月都在做表格相关的模型开发和测试,所以这次的博客内容也和表格相关,和之前的博客一起食用,效果更加。

前言

表格识别模型常用的评估指标汇总
表格检测的指标评估难点不在于评估指标的代码,而在于数据的采集。表格检测的数据集是很充分的,但是不同的数据集是基于不同的目标,因此标注的GT结果大部分不相同。

一、 一种比较简单的评价指标

采用的是匹配的单元格面积

https://zhuanlan.zhihu.com/p/385673899

评价指标1

这个指标需要模型通过后处理可以得到每个单元格的四个角点坐标,同时GT数据也要有每个单元格的四个角点坐标。然后通过单元格之间的IOU是否大于指定阈值来判定GT_cell和pred_cell之间是否匹配,如果匹配,那么接着计算匹配的单元格面积占GT单元格总面积的比率,这样得到召回率。计算匹配单元格面积占预测pred单元格总面积的比率,得到精确率。

实现比较简单。

二、ICDAR2019的评价指标

ICDAR2019 数据集github地址:
https://cndplab-founder.github.io/cTDaR2019/
表格数据情况(表格框用蓝色框出,单元格用红色线框出来):

ICDAR2019数据

ICDAR2019的数据主要是看老旧的手写表格、部分现代手写表格、少量的现代电子文档。

ICDAR2019评估指标代码github地址:
https://github.com/cndplab-founder/ctdar_measurement_tool

这个指标比上面提到的指标更复杂一点。需要标注的GT数据集以及预测结果不仅仅包括每个单元格四个角点的坐标,还需要有每个单元格的start_row,end_row,start_col,end_col.但是满足这个要求的开源数据集目前看来只有一个ICDAR2019,且ICDAR2019的数据集中的图片不是 满足这个条件的,有的标注的四点坐标是文字的四点坐标,而不是单元格的四点坐标。因此需要在使用数据之前进行数据集的筛选。

ICDAR2019的任务分为三个,TRACKA是表格检测模型,TRACKB是表格识别任务,其中TRACKB1是根据表格区域识别表格结构;TRACKB2同时需要检测表格和识别表格内容。

对于表格结构识别任务来说,比赛参考了ICDAR2013表格竞赛中表格结构识别任务的评测方法,也就是对单元格的邻接关系的匹配准确率、召回率和F1值进行考量。与ICDAR2013表格竞赛中使用单元格内容识别单元格的方法不同,该比赛中不考虑单元格内容,而是使用单元格内容的紧致区域在不同IoU阈值(0.6、0.7、0.8、0.9)下的匹配作为识别单元格的方法,如果参赛者预测的单元格区域和Ground Truth中某个单元格区域的IoU超过一定阈值,则认为参赛者找到了这个单元格。之后,再根据匹配上的单元格生成单元格间的关系,以此作为评测对象。这种方法省略了属于OCR的内容识别部分,让参赛者更专注于表格单元格物理位置识别与逻辑结构的提取任务上。

这里主要介绍表格识别的评估指标原理。

  1. 对每个gt_cell寻找满足IOU大于阈值(比如0.6,0.7,0.8,0.9)的预测单元格pred_cell,如果可以找到,则 匹配的单元格(gt_cell,pred_cell)对添加到cell_mapping 中。
  2. 对于GT_table,通过每个单元格的start_row,end_row,start_col,end_col构建相邻单元格之间的关系,定义水平相邻为horizon_type,垂直相邻为vertical_type,那么对于水平相邻的单元格按照先左后右的顺序可以保存为(cell_1,cell_2,horizion_type),对于垂直相邻的关系按照先上后下的顺序保存为(cell_1,cell_2,vertical_type),将表格的单元格关系保存在一个列表中GT_AdjRelation。
  3. 对预测的单元格同样生成表格的单元格关系列表pred_AdjRelation。
  4. 根据GT_AdjRelation列表,依次取出每条单元格关系(cell_1,cell_2,type),然后按照步骤1得到的cell_mapping生成(pred_cell1,pred_cell2,type),如果cell_mapping中找不到对应的预测单元格,则忽略;如果生成的(pred_cell1,pred_cell2,type) 可以在pred_AdjRelation 找到, 匹配数量correct_num加一。
  5. recall = correct_num/len(GT_AdjRelation)
    precision = correct_num/len(pred_AdjRelation)

三、ICDAR2021表格竞赛评价指标

比赛介绍论文:ICDAR 2021 Competition on Scientific
Literature Parsing
pubtabnet数据评估指标介绍:https://github.com/ibm-aur-nlp/PubTabNet/tree/master/src。

ICDAR2021 表格识别比赛的 目标同时需要识别表格结构以及表格中的文字内容。和之前的比赛不同,这次比赛针对表格识别任务不会提供表格的单元格位置信息,单元格之间的相对关系。只是提供表格的树结构图(HTML序列化结构 )。因此本次比赛更希望直接得image-to-structure对应关系的模型,希望可以恢复表格的结构,而不在意单元格的长宽以及具体位置匹配等信息。这次的数据主要是PUbTab数据集,这些图片的GT是其HTML code。


ICDAR2021

评估指标采用TEDS (Tree-Edit-Distance-based Similarity) 得到参考网站。编辑距离一般用两个字符串之间通过最少的增删改步骤可以相同,这个步骤数量来衡量。对于树而言 ,同样定义了树编辑距离的增删改操作:

  • 增:添加一个节点在父节点和其子节点之间
  • 删:将树的某个节点删除,同时将其子节点移动到该节点的父节点上。
  • 改:修改节点的label
    树编辑距离的计算是一个指数时间的任务。采用动态规划的方式可以获得多项式时间的解决思路,具体的树编辑距离介绍网页可以参考(http://tree-edit-distance.dbresearch.uni-salzburg.at/#Zhang1989)。python有直接可以使用的计算树编辑距离的包可以使用。可以参考pubtabnet的github给出的案例:表格识别评估指标,官方代码中参考的树编辑距离采用了《Tree edit distance Robust and memory-efficient》这篇论文给出的动态规划思路,目前只找到在道客巴巴上的论文阅读路径。

对于2021的数据,对于一张如上所示的表格,生成的树结构如下:


树结构

然后计算预测的树结构和GT树结构的编辑距离,最后采用下面的公式计算归一化得分:


TEDS指标

采用基于树结构编辑距离归一化的指标作为评价标准,可以很好的均衡文字内容识别错误和表格结构识别错误对最后得分的影响。论文中给出了当结构发生比较大的改变时(表格头部的一行被偏移成多行单元格),TEDs指标的下降也很明显,而基于2003年的一种表格评价指标却不能体现这种表格结构的变动。


表格结构扰动的评分对比

对于文本有轻微10%的改动的时候,TEDS的评分也明显比Adjacency-relation这个指标要合理。


表格文字扰动的评分对比

总的来说,ICDAR2021的表格评价指标是比较合适作为序列化表格的评价指标的。但是因为同时兼顾了表格结构识别和表格内容识别,所以不仅仅依赖于表格识别的效果,还依赖于文字检测和识别模型的效果。

哇哦,居然写完了最后祝大家虎年吉祥啦

你可能感兴趣的:(表格模型评估指标汇总)