图像文字作为信息传递的重要载体,图像文字识别对于高效化办公,场景理解等有着重要的意义。
学术界常将图像文字识别分为两个研究方向:OCR (Optical Character Recognition) 和STR (Sence Text Recognition)。OCR一般指印刷体文字识别,而STR指的是场景文字识别。二者区别主要是STR的文字背景较为复杂,文字角度变化多样,字体变化更加丰富,以及由于拍摄角度或者光照问题等带来的透视、扭曲等几何变化和各类图像噪声,而OCR更强调文档、打印类文字识别,场景较为简单。
TencentOCR为公司级OCR重点项目,汇聚腾讯内部各个OCR研发力量,重点针对OCR基础技术进行协同开发,致力于解决场景文字识别落地中各个痛点,打造业界领先的OCR技术与服务。本文首先回顾OCR算法研究历程,并介绍TencentOCR项目中识别部分,最后展示部分识别效果。
01/背景
文字识别按照语种分类可以分为:中文,英文,日文等语言;按照是否为手写体可以分为:印刷体识别和手写识别等;按照场景可以分为:文档图片以及场景图片;本文讨论重点是同时支持中英文的通用文字识别算法。
02/特点与挑战
OCR识别既具有图像识别的一般性特点如图1:① 图像的质量低导致目标被误分类;② 各类噪声(摩尔纹、高斯噪声、拍摄配备抖动发生运动伪影)导致识别难度增大,同时具备文字识别本身特点;③ 扭曲、透视等几何变换带来的几何变换,同一个文字不同角度可能导致类别发生变化,如"Ⅹ" 转过45度,类别变化成"十"等;④单纯从图象上不容易判断类别的, 如 "l" "I" ,"1","O","0","2","Z" 等;⑤ 文字种类多,识别器需要识别的类别数多达2W多个;⑥ 英文空格需要输出,否则识别结果将无法被下游任务使用,如图2所示。
03/文字识别算法回顾
基于上述特点与难点,针对OCR问题学术界算法可以划分成两大类【1】:1. 基于CTC (Connectionist Temporal Classification)【4】的流式文本识别方案,2. 基于Attention的机器翻译的框架方案。在基于深度学习的OCR识别算法中,【2】把整个流程归纳成了四个步骤如图3: ①几何变换 ②特征提取 ③ 序列建模 ④ 对齐与输出。CTC方案与Attention方案区别主要是在步骤④,它作为衔接视觉特征与语义特征的关键桥梁,可以根据上下文图像特征和语义特征做精确输入、输出的对齐,是OCR模型关键的过程。下面详细分析两种方案的优缺点及适用场景。
3.1 CTC-based
CRNN【3】模型是基于CTC解码的经典OCR识别方案,主要利用CNN提取特征,然后用Bi-LSTM (bidirectional long short term memory)对特征建模,最后利用CTC解码对齐。
该方案的工作流程如图4.
CTC-based的特点是:
条件独立(每个时刻的预测相互独立,互不影响)、单调对齐(输出序列与输入图像的顺序保持单调一致性,从左至右的保证顺序的映射)、多对一映射(多中预测形式,映射成同一个结果:——ap-pple- 与a-p-p--l-e 与-a-pp-p-le都对应同一输出字符串apple)。【5】
该方案相对于attention的解码形式,速度更加快速,且并行度高,不限制输入序列的长度,可以做到流式识别。但是也存在自身的问题,例如基于CTC解码的识别模型,常常需要手动设计下采样倍率,来适应单条文本识别的最长字符个数。以及出现的尖峰响应,当算法对 timestep = K分类成某个字符时,K 1 或 K - 1 的timestep由于softmax作用往往会被分类为blank,这一现象出现会导致算法在一些模糊情况下识别出现漏字现象。
3.2 Attention-based
Attention方案的encoder形式与CTC方案的encoder可以共享,作用都是提取文本图像特征,序列建模也可以是一致的,decoder alignment 过程有较大的差别。
该方案的特点是:可以充分利用语言模型,充分利用上下文环境 。
相对于CTC-based优势是:有效利用序列全局特征(global feature), 可以较好的解决非Attn方案存在的图像切片与文本字符对齐不准的问题。但是该方案也存在自身问题,例如长文中会存在attention drift,解码速度慢,相对于CTC-based方案需要更大的资源消耗。【6】在训练阶段,遇到长文本(一般指文本长度大于16)收敛速度慢,且训练技巧多,甚至需要预训练模型。
04/Vision Transformer模型介绍
4.1 TSA研发背景:
01-研究表明:图像对 CNN 的依赖是非必需的,当直接应用于图像块序列时,transformer 也能很好地执行图像分类任务 。
02-63%耗时在(BiLSTM Global Attn,或attention形式)序列建模!
4.2 CNN存在问题:
01-泛化能力差:非常见字体(艺术字,繁体字)效果不佳;例如,训练集中出现了一些字体,那么测试集中出现一些训练集中未出现的字体,识别效果容易出现较大的错误。如图7(a)所示。
02-稳定性不强:易受背景、噪声变化,导致识别错误;例如,测试集中图片本来可以被模型很好的识别,但是加入了一些噪声扰动,识别结果非常容易发生抖动,导致识别为对应的形近字。
4.3 模型优化点:
引入self-attention算法,对输入图像进行像素级别建模,并替代RNN完成序列建模。相比CNN与RNN,self-attention不受感受野和信息传递的限制,可以更好地处理长距离信息。
设计self-attention计算过程中的掩码mask。由于self-attention天然可以“无视”距离带来的影响,因此需要对输入像素间自注意力进行约束 。
通过multi-head self-attention对序列建模,可以将两个任意时间片的建模复杂度由lstm的O (N)降低到 O(1), 预测速度大幅提升。
4.4 文本识别耗时降低:
05/效果展示
OCR技术逐渐“下沉”为一项基本的能力,为上层不同的业务应用提供底层技术支撑。
未来随着传统行业的数字化转型,OCR技术应用范围和场景将进一步扩展;未来,腾讯优图实验室将不断拓宽OCR技术的研究与应用,挖掘更多应用场景,助力产业升级和解决社会、公益痛点。