一、基本理论
1. 什么是OCR
1)定义
OCR (Optical Character Recognition,光学字符识别)是指对图片中的文字进行查找、提取、识别的一种技术,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。
2)一般步骤
- 文字检测:解决的问题是哪里有文字,文字的范围有多少
- 文字识别:对定位好的文字区域进行识别,主要解决的问题是每个文字是什么,将图像中的文字区域进转化为字符信息。


3)OCR的难点
文本检测,尤其是复杂自然场景下的文本检测,非常具有挑战性,主要难点有:
- 文本存在多种分布,文本排布形式多样;
- 文本大小、长度不固定;
- 文本存在多个方向;
- 多种语言混合。
4)OCR与目标检测的区别
- 文本大多数以长矩形形式存在,即长宽比一般较大或较小,这与普通的目标检测中的物体不一样(这些长宽比较接近1)
- 普通物体(比如猫)存在明显的闭合边缘轮廓,而文本没有
- 文本中包含多个文字,而文字之间是有间隔的,如果检测做得不好,我们就会把每个字都当成文本行给框出来而非整行作为文本框,这与我们的期望不一样
5)评估指标
- 拒识率:把应该识别的文字,当成不能识别的文字
- 误识率:不应该作为文字的作为文字来识别
- 识别速度:一般可接受范围在50~500ms
- 稳定性:识别结果稳定性
6)应用
- 文档/书籍扫描、车牌识别、证件识别、卡识别、票据识别
- 教育场景文字识别(例如拍照搜题)
- 文字识别笔
- 旅游翻译APP
- 盲人相机
- 自动导航
二、文字检测技术
1. CTPN(2016)
1)概述
CTPN全称Detecting Text in Natural Image with Connectionist Text Proposal Network(基于连接文本提议网络的自然图像文本检测),是发表于2016年的用于OCR的一篇著名论文。直到今天这个网络框架一直是OCR系统中做文本检测的一个常用网络,极大地影响了后面文本检测算法的方向。该模型在自然环境下水平文字的检测方面有这良好的表现。其基本思想是先使用固定宽度(16像素)的小文本框对图像进行检测,得到一系列含有文字的区域,然后对这些区域进行合并,合并成大的、完整的文本框。
2)具体步骤
CTPN主要包含以下几个步骤:
- 检测文本。使用固定宽度为16像素的小区域(proposal)在原图像上移动检测,每个proposal使用10个锚点高度在11~273之间(每次除以0.7)。检测器在每个窗口位置输出k个锚点的文本/非文本分数和预测的y轴坐标(v);

-
利用RNN连接多个proposal。检测出文本区域后,将这些小的文本区域进行连接。为了避免对与文本模式类似的非文本目标(窗口,砖块,树叶等)的误检,使用了双向LSTM(LSTM是RNN变种)利用前后两个方向上的信息对proposal进行连接。引入RNN进行连接操作,大大减少了错误检测,同时还能够恢复很多包含非常弱的文本信息的遗漏文本proposal;
-
边沿细化。完成连接后,对边沿进行细化处理,当两个水平边的proposal没有完全被实际文本行区域覆盖,或者某些边的提议被丢弃。通过连接其文本/非文本分数为>0.7的连续文本提议,文本行的构建非常简单。

-
文本行构建如下:首先,我们为提议 ( B j ) (B_j) (Bj)定义一个配对邻居作 ( B i ) (B_i) (Bi)为 B j − > B i B_j−>B_i Bj−>Bi,当(i)是最接 ( B j ) (B_j) (Bj)近 ( B i ) (B_i) (Bi)的水平距离,(ii)该距离小于50像素,并且(iii)它们的垂直重叠是>0.7时。其次,如果 B j − > B i B_j−>B_i Bj−>Bi和 B i − > B j B_i−>B_j Bi−>Bj,则将两个提议分组为一对。然后通过顺序连接具有相同提议的对来构建文本行;

3)网络结构

- VGG16+Conv5:CTPN的基础网络使用了VGG16用于特征提取,在VGG的最后一个卷积层Conv5,CTPN用了3×3的卷积核来对该feature map做卷积,这个Conv5 特征图的尺寸由输入图像来决定,而卷积时的步长却限定为16,感受野被固定为228个像素;
- 卷积后的特征将送入BLSTM继续学习,最后接上一层全连接层FC输出我们要预测的参数:2K个纵向坐标y,2k个分数,k个x的水平偏移量。
4)损失函数
CTPN有三个输出共同连接到最后的FC层,这三个输出同时预测文本/非文本分数(s),垂直坐标( v = { v c , v h } v=\lbrace v_c,v_h \rbrace v={ vc,vh})和边缘细化偏移(o)。损失函数形式为:

其中每个锚点都是一个训练样本,i是一个小批量数据中一个锚点的索引。 s i s_i si是预测的锚点i作为实际文本的预测概率。 s i ∗ = { 0 , 1 } s_i^*= \lbrace 0,1 \rbrace si∗={ 0,1}是真实值。j是y坐标回归中有效锚点集合中锚点的索引,定义如下。有效的锚点是定义的正锚点( s j ∗ = 1 s_j^*=1 sj∗=1,如下所述),或者与实际文本提议重叠的交并比(IoU)>0.5。 v j v_j vj和 v j ∗ v_j^* vj</

本文深入探讨了OCR技术,包括基本理论,如定义、步骤、难点和与目标检测的区别。重点介绍了CTPN和SegLink这两种关键的文字检测方法,以及CRNN+CTC在文字识别中的应用。文章还涵盖了性能评估、优缺点和实际应用场景。
&spm=1001.2101.3001.5002&articleId=122037899&d=1&t=3&u=3ba23153daa34daabf478cc2a64fbc15)
2万+

被折叠的 条评论
为什么被折叠?



