以下文章来源于微软研究院AI头条 ,作者自然语言计算组
微软亚洲研究院,专注科研23年,盛产黑科技
编者按: 很长一段时间以来,文本识别一直都是一个重要的关于文档数字化的研究课题。现有的文本识别方法通常采用 CNN 网络进行图像理解,采用 RNN 网络进行字符级别的文本生成。但是该方法需要额外附加语言模型来作为后处理步骤,以提高识别的准确率。
论文:https://arxiv.org/abs/2109.10282
代码/模型:https://aka.ms/trocr
光学字符识别(OCR)是将手写或印刷文本的图像转换成机器编码的文本,可应用于扫描文档、照片或叠加在图像上的字幕文本。一般的光学字符识别包含两个部分:文本检测和文本识别。
· 文本检测用于在文本图像中定位文本块,粒度可以是单词级别或是文本行级别。目前的解决方案大多是将该任务视为物体检测问题,并采用了如 YoLOv5 和 DBNet 的传统物体检测模型。
· 文本识别致力于理解文本图像并将视觉信号转换为自然语言符号。该任务通常使用编码器-解码器架构,现有方法采用了基于 CNN 网络的编码器进行图像理解,以及基于 RNN 网络的解码器进行文本生成。
在文本识别领域中,Transformer 模型被频繁采用,其结构的优势带来了显著的效率提升。然而,现有方法仍主要采用 CNN 网络作为主干网络,并在此基础上配合自注意力机制来理解文本图像;另外,现有方法还依旧采用 CTC 作为解码器,配合额外的字符级别的语言模型来提高整体的准确率。这种混合模型虽然取得了巨大的成功,但仍然有很大的提升空间:
1. 现有模型的参数是在合成或人工标注的数据上从零开始训练的,没有探索大规模预训练模型的应用。
图1:TrOCR 模型结构示意图
与现有方法不同,TrOCR 简单、高效,没有将 CNN 作为主干网络,而是把输入的文本图像切分成图像切片,然后输入到图像 Transformer 中。TrOCR 的编码器和解码器则均使用了标准的 Transformer 结构以及自注意力机制,解码器生成 wordpiece 作为输入图像的识别文本。为了更有效的训练 TrOCR 模型,研究员们使用了 ViT 模式的预训练模型和BERT模式的预训练模型,来分别初始化编码器和解码器。
TrOCR 的优势有三个方面:
1. TrOCR 使用预训练的图像和文本模型,利用大规模无标注数据的优势来进行图像理解和建模语言模型,不需要额外的语言模型介入。
2. TrOCR 不需要任何复杂的卷积网络来作为主干网络,更加易于实现和维护。实验证明,TrOCR 在打印体和手写体文本识别任务的基准数据集上均超越了当前最先进的方法,不需要任何复杂的预/后处理步骤。
3. TrOCR 可以很容易地扩展为多语言模型,只需要在解码器端使用多语种预训练模型即可。此外,通过简单调整预训练模型的参数量配置,使云/端部署变得极为简便。
二、实现方法
TrOCR 采用了 Transformer 结构,包括图像 Transformer 和文本 Transformer,分别用于提取视觉特征和建模语言模型,并且采用了标准的 Transformer 编码器-解码器模式。编码器用于获取图像切片的特征;解码器用于生成 wordpiece 序列,同时关注编码器的输出和之前生成的 wordpiece。
对于编码器,TrOCR 采用了 ViT 模式的模型结构,即改变输入图像的尺寸,并切片成固定大小的正方形图像块,以形成模型的输入序列。模型保留预训练模型中的特殊标记“[CLS]”代表整张图片的特征,对于 DeiT 的预训练模型,同样保留了对应的蒸馏token,代表来自于教师模型的蒸馏知识。而对于解码器,则采用原始的 Transformer 解码器结构。
编码器和解码器均应用在经过大规模标注/无标注数据预训练过的公开模型上,从而进行初始化。编码器采用 DeiT 和 BEiT 模型进行初始化,而解码器采用 RoBERTa 模型进行初始化。由于 RoBERTa 的模型结构和标准的 Transformer 解码器不完全匹配,例如缺乏编码器-解码器注意力层,因此研究员们将随机初始化这些在 RoBERTa 模型中不存在的层。
TrOCR 的文本识别任务过程是:给定待检测的文本行图像,模型提取其视觉特征,并且给予图像以及已经生成的上文来预测对应的 wordpiece。真实文本以“[EOS]”符号结尾,代表句子的结束。在训练过程中,研究员们向后旋转真实文本的 wordpiece 序列,并把“[EOS]”符号挪到首位,输入到解码器中,并使用交叉熵损失函数来监督解码器的输出。在推断时,解码器从“[EOS]”符号开始迭代预测之后的 wordpiece,并把预测出的 wordpiece 作为下一次的输入。
研究员们使用文本识别任务作为预训练任务,因为它可以使模型同时学习到视觉特征提取和语言模型两者的知识。预训练过程分为两个阶段:
· 第一个阶段,研究员们合成了一个包含上亿张打印体文本行的图像以及对应文本标注的数据集,并在其上预训练 TrOCR 模型;
· 第二个阶段,研究员们构建了两个相对较小的数据集,分别对应打印体文本识别任务和手写体文本识别任务,均包含上百万的文本行图像,并在打印体数据和手写体数据上预训练了两个独立的模型,且都由第一阶段的预训练模型初始化。
三、预训练数据
首先,研究员们比较了不同编码器和解码器的组合,来寻找最佳的模型设定。研究员们比较了 DeiT,BEiT 和 ResNet50 网络作为编码器的选项。在比较中,DeiT 和 BEiT 均使用了论文中 base 的模型设定。对于解码器而言,研究员们则比较使用了 RoBERTa-base 初始化的 base 解码器和使用 RoBERTa-large 初始化的 large 解码器。作为对照,研究员们对随机初始化的模型、CRNN 基线模型以及 Tesseract 开源 OCR 引擎也进行了实验。
表2给出了组合得到的模型结果。BEiT 编码器和 RoBERTa-large 解码器表现出了最好的结果。与此同时,结果表明预训练模型确实提高了文本识别模型的性能,纯 Transformer 模型的性能要优于 CRNN 模型和 Tesseract。根据这个结果,研究员们选取了后续实验的两个模型设定:TrOCR-base,包含 334M 个参数,由 BEiT-base 编码器和 RoBERTa-large 解码器组成;TrOCR-large,包含558M个参数,由 BEiT-large 编码器和 RoBERTa-large 解码器组成。
表3给出了 TrOCR 模型和 SROIE 数据集排行榜上当前最先进模型的结果。可以看出,TrOCR 模型凭借纯 Transformer 模型超过了当前最先进模型的性能,同时也证实了其不需要任何复杂的预/后处理步骤。基于 Transformer 的文本识别模型在视觉特征提取上可以与基于 CNN 的模型有近似性能,在语言模型上可与 RNN 相媲美。
表3: 大规模预训练的 TrOCR 模型在 SROIE 印刷体数据集的实验结果
表4给出了 TrOCR 模型和 IAM 数据集上现有方法的结果。结果显示现有方法中 CTC 解码器和额外的语言模型可以带来显著的效果提升。通过与(Bluche and Messina, 2017)比较,TrOCR-large 有着更好的结果,这说明 Transformer 解码器相比于 CTC 解码器在文本识别任务中更具竞争力,同时已经具有足够的建模语言模型的能力,而不需要依赖于额外的语言模型。
扫码观看!
本周上新!
“AI技术流”原创投稿计划
TechBeat是由将门创投建立的AI学习社区(www.techbeat.net)。社区上线330+期talk视频,900+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。
投稿内容
// 最新技术解读/系统性知识分享 //
// 前沿资讯解说/心得经历讲述 //
投稿须知
稿件需要为原创文章,并标明作者信息。
我们会选择部分在深度技术解析及科研心得方向,
对用户启发更大的文章,做原创性内容奖励。
投稿方式
发送邮件到
chenhongyuan@thejiangmen.com
或添加工作人员微信(chemn493)投稿,沟通投稿详情;还可以关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。
>> 投稿请添加工作人员微信!
关于我“门”
▼
点击右上角,把文章分享到朋友圈
点击“阅读原文”按钮,查看社区原文
⤵一键送你进入TechBeat快乐星球