前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >优Tech分享 | 通用文字识别的问题和算法

优Tech分享 | 通用文字识别的问题和算法

原创
作者头像
优图实验室
发布2022-03-09 16:32:31
发布2022-03-09 16:32:31
1.9K0
举报

图像文字作为信息传递的重要载体,图像文字识别对于高效化办公,场景理解等有着重要的意义。

学术界常将图像文字识别分为两个研究方向: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所示。

图1. 文字识别面临的挑战
图1. 文字识别面临的挑战
图2. 英文空格部分展示
图2. 英文空格部分展示

03/文字识别算法回顾

基于上述特点与难点,针对OCR问题学术界算法可以划分成两大类【1】:1. 基于CTC (Connectionist Temporal Classification)【4】的流式文本识别方案,2. 基于Attention的机器翻译的框架方案。在基于深度学习的OCR识别算法中,【2】把整个流程归纳成了四个步骤如图3: ①几何变换 ②特征提取 ③ 序列建模 ④ 对齐与输出。CTC方案与Attention方案区别主要是在步骤④,它作为衔接视觉特征与语义特征的关键桥梁,可以根据上下文图像特征和语义特征做精确输入、输出的对齐,是OCR模型关键的过程。下面详细分析两种方案的优缺点及适用场景。

图3. 识别算法四个阶段
图3. 识别算法四个阶段

3.1 CTC-based

CRNN【3】模型是基于CTC解码的经典OCR识别方案,主要利用CNN提取特征,然后用Bi-LSTM (bidirectional long short term memory)对特征建模,最后利用CTC解码对齐。

该方案的工作流程如图4.

图4 (a). apple识别实例
图4 (a). apple识别实例
图4 (b). 输入图像至特征提取阶段
图4 (b). 输入图像至特征提取阶段
图4 (c). 图像特征预测
图4 (c). 图像特征预测
图4 (d). 结果合并
图4 (d). 结果合并

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 过程有较大的差别。

图5. 序列解码过程
图5. 序列解码过程

该方案的特点是:可以充分利用语言模型,充分利用上下文环境 。

相对于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形式)序列建模!

图6. 识别模型耗时分析
图6. 识别模型耗时分析

4.2 CNN存在问题:

01-泛化能力差:非常见字体(艺术字,繁体字)效果不佳;例如,训练集中出现了一些字体,那么测试集中出现一些训练集中未出现的字体,识别效果容易出现较大的错误。如图7(a)所示。

图7 (a) 艺术字,背景等变化导致识别错误
图7 (a) 艺术字,背景等变化导致识别错误

02-稳定性不强:易受背景、噪声变化,导致识别错误;例如,测试集中图片本来可以被模型很好的识别,但是加入了一些噪声扰动,识别结果非常容易发生抖动,导致识别为对应的形近字。

图7 (b) 套打,非常见字体识别错误
图7 (b) 套打,非常见字体识别错误

4.3 模型优化点:

引入self-attention算法,对输入图像进行像素级别建模,并替代RNN完成序列建模。相比CNN与RNN,self-attention不受感受野和信息传递的限制,可以更好地处理长距离信息。

设计self-attention计算过程中的掩码mask。由于self-attention天然可以“无视”距离带来的影响,因此需要对输入像素间自注意力进行约束 。

图8. TSA序列建模过程
图8. TSA序列建模过程
图9. TSA位置编码实现
图9. TSA位置编码实现

通过multi-head self-attention对序列建模,可以将两个任意时间片的建模复杂度由lstm的O (N)降低到 O(1), 预测速度大幅提升。

4.4 文本识别耗时降低: 

05/效果展示

OCR技术逐渐“下沉”为一项基本的能力,为上层不同的业务应用提供底层技术支撑。

未来随着传统行业的数字化转型,OCR技术应用范围和场景将进一步扩展;未来,腾讯优图实验室将不断拓宽OCR技术的研究与应用,挖掘更多应用场景,助力产业升级和解决社会、公益痛点。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档