ICPR 图像识别与检测挑战赛冠军方案出炉,基于偏旁部首来识别 Duang 字

随着互联网的飞速发展,图片成为信息传播的重要媒介,图片中的文本识别与检测技术也一度成为学界业界的研究热点,应用在诸如证件照识别、信息采集、书籍电子化等领域。

然而,一直以来存在的问题是,尚没有基于网络图片的、以中文为主的 OCR 数据集。基于这一痛点,阿里巴巴「图像和美」团队推出 MTWI 数据集,这是阿里首个公开的 OCR 数据集,也是现有难度最大、内容最丰富的网络图片 OCR 数据集。

基于该数据集,阿里巴巴「图像和美」团队联合华南理工大学共同举办 ICPR MTWI 2018 挑战赛,这场比赛共分为三个独立赛道,一是识别单文本行(列)图片中的文字,二是检测并定位图像中的文字行位置,三是识别整图中的文字内容。三场赛道各自独立,每场赛道都吸引了超过一千支队伍参赛。

来自 NELSLIP(National Engineering Laboratory for Speech and Language Information Processing,中科大语音及语言国家工程实验室)的杜俊教授、戴礼荣教授团队与科大讯飞合作,包揽全部三项任务的冠军。以下便是在这项比赛中分别负责识别和检测任务的中科大学生张建树和朱意星对比赛方案的描述,对于第三个赛道,他们则是结合了识别和检测的方案。

此次比赛中,主办方提供 20000 张图像作为数据集。其中 50% 作为训练集,50% 作为测试集。该数据集全部来源于网络图像,主要由合成图像、产品描述、网络广告构成,每一张图像或包含复杂排版,或包含密集的小文本或多语言文本,或包含水印,这对文本检测和识别均提出了挑战。以下是典型图片。

文本识别

这次比赛提交的方案大体上可以分为两种,一种是基于 CTC 的方案,另外一种是基于注意力的 Encoder-Decoder 方案。NELSLIP 团队根据复现结果,最终选定第二种方案。

比赛难点

首先是 OCR 长期面临的难题,比如连续文本,以及自然场景背景复杂,噪声干扰比较大。

其次,深度学习模型需要很大的数据量来进行训练。如果训练样本很少,很难将模型训练好。这次识别存在一些繁体字,而关于繁体字的训练样本比较少,会导致识别比较困难。

解决方案

  • Radical Analysis Network 网络

这次比赛 NELSLIP 团队用到 Radical Analysis Network,该网络主要用于解决少样本问题,这一网络基于张建树在 ICME2018 上的论文 Radical analysis network for zero-shot learning in printed Chinese character recognition(论文链接:http://t.cn/RFJIN9k),在比赛中做了一些优化,有如下明显优点:

这是一种基于注意力机制的编解码方法,而不是通过滑窗的形式来切分字符,不管输入是横排还是竖排,它只关注相应的像素点。

在这个方案之前,大家都是把汉字当成整个字符或一张图片来识别,所用到的方法跟图像识别,或者 ImageNet 图像分类的方案差不多,忽略了汉字本身的重要性质——汉字由偏旁部首构成。比赛中,他们以偏旁部首的形式将汉字拆解。拿「殿」字举例,这个字是左右结构,先是「共」字旁和「八」字旁行成上下结构,然后「尸」字旁左上包围这一上下结构。右边由「几」和「右」上下组成。

可以通过深度优先遍历的方式,将这种树形结构遍历成字符串的形式,然后再通过识别字符串来识别汉字。在这里有一个预先定义好的 IDS2char 字典。例如「聚」、「黔」、「坊」这三个字,将这些字的字符串识别出来之后,在字典里就能索引出结构类别,进而进行汉字识别。

这一方法可以带来两个好处:

1. 汉字类别很多,通过拆解成偏旁部首,可以将数量大大压缩,去除掉冗余性。

虽然看起来把汉字拆解成了一个很长的序列,但实际上提高了运算速度。如果想将识别做得很好,肯定要涵括全部汉字,如果把一些古代用的字全部算上,字数达到 10 万。如果做一个十万种类别的分类器,效率将会很低。因此,虽说每个词的序列由原先的一被拆解成五、六或者更多,但序列中每个类别的类别数变少,搜索空间会相应变小,折中下来,解码效率相对得到提高。

2. 能识别低频词,例如在训练集里没有出现过的词,这时候不需要额外收集数据,也不需要重新训练模型。

举个例子,之前很火爆的 duang 字,上成下龙。虽然这个字很简单,但是因为训练集中没有,普通的模型没办法识别,很有可能将其识别成「成」、「龙」或其他字。对 RAN 模型来说,可以在 OOV 场景下将其识别出来。例如把 duang 字作为输入,会解出成和龙,同时会出现一个表示成和龙上下结构的序列。

在识别繁体字时也是同理。

如下图所示,由于图像都是基于真实场景,所以出现了「薬」和「購」这样的繁体字。虽然一般的语言模型,能够将「代購」识别成「代购」,这在语义上是对的,但其实还是存在问题。通过 RAN 网络,就能很好地解决这里的 OOV 问题,正确识别出繁体字。

他们对 RAN 网络的改进还有一点,以前的网络是针对单字识别,模型的 encoder 只有一个 CNN,这一次的任务是文本行识别,为了建模文本的常识信息,他们在 encoder CNN 之后添加了一个双向 RNN 网络。另外,从单字识别到文本行识别,对于模型来说,这两者的隔阂不是特别大,在这里用来提取偏旁部首的注意力机制还可以区分字和字之间的间隔,实际上只需要在每个字的偏旁部首中间加上标志符。

  • 针对注意力机制的改进

他们还对注意力机制进行了改进,以前是单 head 注意力机制,在此次比赛中,增加到 4-head 注意力机制,还额外在注意力上添加了一个 coverage actor,coverage actor 会把历史的注意力信息告诉当前时刻的注意力模型,这样能提高注意力的对齐能力。

另外,他们还使用了 attention guider 技术,除了把模型当成一个黑盒子让它自己学习,还会给注意力模型更强的指导。在这种真实场景的情况下,当噪声很大时,注意力模型很难学好,通过给予模型更好的指导,注意力会学得更快,模型也会收敛得更好。

RGB+HSV 主要用来解决通用 OCR 的一些问题,比如复杂的背景。一些通过人的眼睛看不清的图片可以通过 HSV 凸显出色调的差异性,从而就能正确识别。

此外,他们还做了一些数据增强工作,比如文本旋转,压缩等。

难以解决的案例:

第一种例子是背景噪声太大。如下图是人眼都看不清的比较复杂的例子。这个例子中背景是粉红色,前景是淡黄色,虽然可以通过 HSV 对图像进行色调增强,但可以看到,它的真实标注是漂亮宝贝 NO1,如果不用 HSV,结果错得很离谱。用了之后,漂亮两个字还是难以检测出来。

第二种例子是一些从真实场景中抠出来的图片,如果图片本身特别小,将其放大到一定程度,机器识别就会变得很模糊。

第三个比较难的例子就是前面提到的低频词问题,通过 RAN 网络可以正确识别。

检测

这次比赛中,检测存在四个方面的问题:

  • 一是多角度问题。之前学术界的检测都是用矩形框标注的,比如检测沙发或人体,但如果做文本检测,比如一个 45 度角的倾斜文本,这时候如果用矩形框,就会多出来很多噪声。
  • 二是文本之间的交叠问题。例如下面这幅图,两行字重叠在一起了。
  • 三是文本模糊问题。如下图中框出来的部分,连人眼也看不清。
  • 四是文本长度差距比较大。有的文本特别长,有的文本特别短。

针对这些问题的优化

这是此次比赛中使用的网络结构图,这是一个下采样过程,把不同尺寸下的特征进行了融合。

第二个要解决的是多角度问题。对于多角度问题,如果在第一步直接拟合四个顶点会产生歧义,为了避免这种情况,他们在第一步使用了 LocSLPR,会对输入图像构建空间金字塔,在各个尺度上描绘出文本的轮廓,从而完成文本行的准确定位。

这里使用了堆叠 R-CNN,第一次 proposal box 是水平矩形框,使用 LocSLPR 拟合轮廓,第二次的时候已经有了轮廓信息,所以第二步 proposal box 是旋转矩形框。

剩下的图片模糊问题靠神经网络的鲁棒性就可以解决,虽然说这一问题也比较难解决,但此次比赛中没有特意来设计网络。

比赛中碰到的实际问题

CVPR、ICCV 等计算机视觉会议上,每年都会有不少论文和方案,在这次比赛中,想拿第一名得参考各种不错的方案。

识别有一个比较大的难点,即有些图片过小,放大之后看不清楚,或者图片失真,图像分辨率不高,他们想做一些超分辨率的方法,提升放大后的图像质量,也筛选了 CVPR 上一些不错的超分辨率方案,但做完之后发现效果不是很理想,此外旋转上的一些问题也比较难解决。

另外,现在针对注意力的研究也非常多,包括 NLP,机器翻译等方向都有很多注意力机制的改进方案。但这些方案不是针对文本问题,所以在最开始尝试的时候并不能确定方案对任务的改进效果如何。在选择一些看起来比较合适的注意力机制方案进行改进和尝试的过程中,也遇到不少问题。

这一方案目前在手写字符识别上还需要改进。人在手写时,会非常随意,有时候会出现连笔,抹消掉了汉字本该有的偏旁部首和空间结构,这时候基于 RAN 的方法获得的性能提升就没有打印体的大。

未来,可能主要会针对注意力以及编码器进行改进。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2018-08-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

特征工程简介|机器学习

(I)特征工程可以解决什么样的问题? 特征工程是一个非常重要的课题,是机器学习中不可缺少的一部分,但是它几乎很少出现于机器学习书本里面的某一章。在机器学习方面的...

3968
来自专栏AI研习社

一场深度学习引发的图像压缩革命

雷锋网 AI 研习社按,2012 年,AlexNet 横空出世,以 15.4% 的低失误率夺得当年 ILSVRC(ImageNet 大规模视觉识别挑战赛)冠军,...

1772
来自专栏人工智能头条

中文NLP用什么?中文自然语言处理的完整机器处理流程

人工智能头条早先发布的文章《用 Python 构建 NLP Pipeline,从思路到具体代码,这篇文章一次性都讲到了》,是基于英文来举例的。

2.4K5
来自专栏新智元

【Nature重磅】谷歌AI自动重构3D大脑,最高精度绘制神经元

【新智元导读】AI能够映射大脑神经元。人类大脑包含大约860亿个神经元,并且一个立方毫米的神经元可以产生超过1000TB的数据。由于其庞大的规模,绘制神经系统内...

832
来自专栏JackieZheng

基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

  其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入。但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做...

52310
来自专栏新智元

【干货】18个技巧实战深度学习,资深研究员的血泪教训

【新智元导读】资深工程师 Nikolas Markou 回顾他多年来在一线使用深度学习的经验,总结出 18 个能让你充分发挥深度神经网络潜力的诀窍,简洁明了,直...

3447
来自专栏CVer

[计算机视觉论文速递] 2018-06-11

这篇文章有4篇论文速递信息,涉及CNN pruning、新的人脸识别数据集、森林树木分类和交通标志检测等方向。

1442
来自专栏人工智能头条

CS231n李飞飞CV课程辅导笔记(2):KNN

全球最大的专注于大数据分析、数据仓库和整合营销管理解决方案的供应商之一的Teradata, VP Atif Kureishy 预言人工智能的未来,是机器人和计算...

893
来自专栏人工智能LeadAI

Assignment 2 | 斯坦福CS231n-深度学习与计算机视觉课程

该笔记是以斯坦福cs231n课程的python编程任务为主线,展开对该课程主要内容的理解和部分数学推导。这篇文章是第二篇。 ? CS231n简介 CS231n的...

6596
来自专栏AI科技评论

陈陟原:数据降维与可视化| AI 研习社第 53 期猿桌会

相信大多数人都已经接触过数据可视化——Excel 随便画一张表就是了。众所周知,二维数据可视化很容易,条形图、饼状图等等,我们在初中就已经学过了。那么三维数据呢...

1302

扫码关注云+社区

领取腾讯云代金券