基于深度学习和语言模型的印刷文字 OCR 系统 阅读笔记

一、特征提取

作者放弃了边缘检测和腐蚀膨胀,通过聚类、分割、去噪、池化等步骤,得到了比较良 好的文字部分的特征。这些特征甚至可以直接输入到文字识别模型中进行识别,而不用做额外的处理。

预处理

将原始图片以灰度图像的形式读入,得到一个 m×n 的灰度矩阵 M,其中 m,n 是图像的长、 宽。这样读入比直接读入 RGB 彩色图像维度更低,同时没有明显损失文字信息。
如果直接处理已处理的灰度图,会导致文字笔画过小,容易被当成噪音处理掉,因此为了保证文字的笔画有一定的厚度,可以先将图片进行放大两倍就会有较好的效果。
放大后的图像区分度减少,为了增大区分度,使用次数为 2 的“幂次变换”。

灰度聚类

聚类:将相近的色阶归为一类,从而减少颜色分布,有效地降低噪音。
鉴于一些通用聚类方法缺陷较多,作者自行设计了聚类方法,使用的是“核概率密度估计”(简单地将它看成一种函数平滑(使函数连续可导)方式)的思路,通过求颜色密度极值的方式来聚类。
对预处理后的图像进行灰色阶统计,色阶的分布形成了几个比较突出的峰,换言之,存在一定的聚类趋势(这表现为它有几个明显的极大值和极小值点,有多少个极大值点,就分为多少层,并且以极小值点作为类别之间的边界)。

逐层识别:每一层的图像是由若干连通区域(邻接的像素则被定义为同一个连通区域)组成的,文字本身是由笔画较为密集组成的,因此往往文字也能够组成一个连通区域。每个图层被分割为若干个连通区域,逐步地将原始图像进行分解。开始识别哪些区域是可能的文字区域,要求文字具有一定的抗腐蚀能力(腐蚀是一种图像上的形态学变换,一般针对于二值图像,对于二值图像中的非零像素 (即取值为1的像素),如果它邻接的像素都为 1,则保持不变,否则变为 0。如果连通区域的边界线越长,那么腐蚀运算对它的“伤害”就越大)。

池化(池化相关解释):得到了 5 个特征层,作者使用的图片中文字主要集中在第 5 个特征层。
将 5 个特征层进行叠加,得到一幅整体的图像特征,使用类似“最大值池化”的方式整合特征(图像区域的最大值作为该区域池化后的值)。

密度排除:排除高/低/孤立密度区。
1.连通区域密度 :从一个连通区域出发,可以找到该连通区域的水平外切矩形,该区域的密度定义 为连通区域密度 = (连通区域的面积 /外切矩形的面积) × (原图像总面积 /外切矩形的面积
)
;
2.低密度区: 如果一个连通区域的密度小于 16,那么这个连通区域定义为低密度区;
3.高密度区:如果一个连通区域以水平外切矩形反转后的区域是一个低密度区;
4.孤立密度区(很多噪音点都是孤立区): 从一个连通区域出发,可以找到该连通区域的水平外切矩形,将这个矩形中心对称地向外扩张为原来的 9 倍 (长、宽变为原来的 3 倍),扩展后的区域如果没有包含其他的连通区域,那么原来的连通区域称为孤立区。

二、文字定位

邻近搜索

邻近搜索的目的是进行膨胀,以把可能成字的区域“粘合”起来。通过搜索邻近区域来确定膨胀方向 (上、下、左、右)。

文本切割

基于方块汉字的假设,事实上最简单的切割方法是均匀切割,也就是说不加任何判断,直接按照高度来将 单行文本切割为一个个的正方形图片. 这种思路可以应对大部分的单行文本。

三、光学识别

建立卷积神经网络模型对单字进行识别,使用计算机自动生成一批训练数据。

四、语言模型

为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果。(看不懂:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值