使用计算机视觉和深度学习创建现代OCR管道( 二 )


对于用户捐赠的数据,另一个重要的、特定于机器学习的组件是如何标记它 。大多数当前的机器学习技术都是受到严格监督的,这意味着它们需要显式手动标记输入数据,以便算法可以学习自己进行预测 。传统上,这种标签是由外部工人完成的,通常使用微工作平台,如亚马逊的 Turk(MTurk) 。但是,使用MTurk的缺点是每个项目都可能被不同的工作人员看到和标记,我们当然不希望像这样在野外公开用户捐赠的数据!
因此,的团队创建了自己的数据注释平台,名为 。可以向MTurk(如果我们处理公共非用户数据)或一小群雇用的承包商提交标签作业,以获取用户捐赠的数据 。这些承包商遵守严格的保密协议(NDA),以确保他们不能保留或共享其标记的任何数据 。包含注释任务UI模板的标准列表,我们可以针对新数据集和标记任务快速组装和自定义这些模板,这使得能够非常快速地注释数据集 。
例如,下面是一个UI,旨在为单个单词图像提供真实数据,包括以下选项之一供工作人员完成:
· 转录图像中的实际文本
【使用计算机视觉和深度学习创建现代OCR管道】· 标记单词的方向是否正确
· 标记它是否为非英语脚本
· 标记它是否不可读或不包含任何文本
UI,用于为单词图像添加地面实况数据
平台包括仪表板,可查看过去作业的概述,观察当前作业的进度并安全地访问结果 。此外,可以进行分析以评估员工的表现,甚至可以对正在进行的工作进行注释进行员工级别的图形监控,以便及早发现潜在问题:
为使用收集了一个单词级数据集,其中包含单个单词及其注释文本的图像,以及一个完整的文档级数据集,其中包含完整文档(如收据)和完全转录文本的图像 。可使用后者来测量现有最先进的OCR系统的准确性;然后,这将通过告诉大家必须满足或击败自己的系统而达到或击败的分数来告知自己的努力 。在这个特定的数据集上,必须达到的准确率是在90年代中期 。
第一个任务是确定OCR问题是否能在合理的时间内得到解决 。因此,将OCR问题分为两部分 。首先,将使用计算机视觉来获取文档的图像并将其分割成行和单词;可称之为单词检测器 。然后,将每个单词输入到深网中,将单词图像转换为实际文本;可称之为“深网”这个词 。
认为Word 会相对简单,因此首先将精力集中在Word Deep Net上 。
2.字深网
Word Deep Net结合了计算机视觉和自动语音识别系统中使用的神经网络架构 。裁剪单词的图像被输入到具有多个卷积层的卷积神经网络(CNN)中 。然后,CNN输出的视觉特征作为序列馈送到双向LSTM(长短期记忆)(在语音识别系统中很常见),使单词“片段”有意义,最后使用连接主义时间分类(CTC)层进行文本预测 。在适当的情况下使用批处理规范化 。

使用计算机视觉和深度学习创建现代OCR管道

文章插图
OCR 字深网
一旦决定了将单个单词的图像转换为文本的网络架构就需要弄清楚如何收集足够的数据来训练它 。深度学习系统通常需要大量的训练数据才能获得良好的识别性能 。事实上,训练数据量往往是当前系统中最重要的瓶颈 。通常,所有这些数据都必须收集然后手动标记,这是一个耗时且昂贵的过程 。
另一种方法是以编程方式生成训练数据 。然而,在大多数计算机视觉问题中,目前很难为训练算法生成足够逼真的图像:成像环境和转换的多样性太大,无法有效模拟 。(当前研究的一个有前途的领域是生成对抗网络(GAN),它似乎非常适合生成现实数据 。幸运的是,在这种情况下的问题是使用合成数据的完美匹配,需要生成的图像类型非常受限制,因此可以自动渲染 。与自然或大多数人造物体的图像不同,文档及其文本是合成的,并且单个字符的可变性相对有限 。