端到端的OCR实现先阶段主要有三种形式:
- 先检测,再识别,利用基于ROI做连接器连接检测和识别的两个网络,代表论文有FOTS和PAN++,下图是他们两个模型的基本框架:
(FOTS)
(PAN++)
其中他们实现端到端训练的关键步骤就是这个ROI(Regin of Interest)“感兴趣区域”。在前面的文字检测之后,ROI用于提取包含文本的区域,把其他不相关的区域剔除。下图就是FOTS中的ROI提取器。
FOTS和PAN++的实际区别就是PAN++在提取之前做了一个特征提取优化,并且把ROI做成了mask的形式,所以PAN++可以识别弯曲的文本。下图是以先检测再识别的端到端OCR的算法结构:
2.基于分割的方法隔离两个子任务,并在具有共享主干的并行多任务框架中完成定位,大致思路如下图所示:
代表作Pgnet采用了此类方法,拜托了ROI连接器的问题,也拜托了先检测,后识别这种方法,使得检测和识别可以同时进行。如下图所示:
论文中提出了本中心线(TCL),文本边框偏移(TBO),文本方向偏移(TDO)和文本字符分类图(TCC)在训练期间,TCL、TBO和TDO由相同尺度的标签图进行监督,同时提出PG-CTC损失来训练像素级TCC图,以解决字符级注释的缺乏。 TCL 提取每个文本实例的中心点序列,并使用 TDO 信息对它们进行排序以恢复正确的阅读顺序,使其能够正确识别非传统阅读方向的文本。
标签生成:(a) 是黄色弯曲文本的真实注释; (b)–(d) 分别是 TCL、TBO 和 TDO 图的生成。
下图是该模型在IC5,规则分布数据集上的数据图:
3.deepsolo为代表的利用transformer做编码和解码直接同时预测和识别的方法,这里利用了贝塞尔曲线做点的预测,文章中说这些点的顺序就是阅读的顺序(不知道他这里怎么做到的),然后这些点的坐标可以变成位置信息,最后输入到一个transformer的解码器,最后用四个检测头分别做检测和识别,在实例分类中用线性投影做二元分类,分文本或背景。然后是采用线性投影做字符分类,中心点预测做的是参考点到中心曲线上的坐标偏移,最后一个就是预测框的。如下图所示:
规则分布的文字数据对比,在公开数据集ICDAR 2015上:(该数据集是文本规则分布的数据集,不适用于不规则类似弯曲之类的文字)首先,先看下paper with code上的榜单排行:
可以看到之前提到的deepsolo位居榜首,但是并未见到PAN++,后续阅读文献得知在该数据集上最具有参考价值的是“G”这一栏的排行,G代表generic,s是strong,w是weak。在paper with code上排行是按照s的指标进行排行的。值得注意的是,FPS也是我们所关注的点,这代表了模型的识别速度。下图所示是比较全面的数据对比:其中对比的指标都是F-measure,这个值越高越好
不规则分布的文字数据对比,在公开数据集Total-Text上的数据对比,首先看下paper with code上的榜单排行:
跟上面的规则文本识别一样,依然是Deepsolo位居榜首
这里的extenal data是在这些数据上做了预训练,比如这里的Deepsolo首先在 Synth150K、MLT17、IC13、IC15 和 TextOCR 的混合上对模型进行预训练,然后用IC3和IC5做了微调。
对比PPOCR模型:
按上述模型分类,PPOCR属于第一类模型,先检测后识别的方法,但是PPOCR没有在公开数据集上的对比。