ocr优化

ocr优化相关问题

(一)提高OCR准确度方法

1.检查图像质量:
我们首先要确保原始图像是可见的,以便它们可以获得更好的结果。
2.选择最好的OCR模型:
OCR主要负责理解给定图像中的文本,因此有必要选择能够更好的检测和识别的模型,来处理图像

3.将图像缩放到合适的大小:

我们尝试将图像缩放到大约300 dpi的标准尺寸,低于此尺寸的图像都会产生不清晰的结果,而高于600 dpi的图像会使输出文件变大而质量不高。

4.消除图像中的噪音:

如果图像中存在背景或前景噪声,我们要将其删除,以便获得高质量的数据输出。

5.纠正布局:

在预处理阶段,重要的是校正页面以使字线是水平的,以帮助OCR以更准确的方式识别文本边界。

6.准备足够多的检测集和识别集

大量数据能够更好的训练,提高准确度。

(二)提升自然场景下的文字识别精度

OCR识别一般分为两步:文本检测,文本识别。

①:采用对比极值区域CER检测方法
文本检测首先要从图像中切割出可能存在的文字,在传统检测方法ER和MSER基础之上采用了对比极值区域CER
CER是跟周围的背景有一定对比度的极值区域,这个对比度至少要强到能够被人眼感知到,在低对比度的图像上比MSER效果更好,而且获得的候选连通区域数量远小于ER,候选范围大大缩小,提高了算法的效率。
在图像模糊、分辨率低或者噪声较多时,提取出来的CER有可能会含有冗余像素或者噪声,这些冗余像素或者噪声的存在会使得后面的文字/非文字分类问题变得更为复杂。

在实际操作中,并不是每个CER都需要通过颜色信息来增强,因为有很多CER本身颜色均匀,没有噪声,尤其是在图片质量很高的时候。因此,在对CER进行增强操作之前我们会先判断该CER是否需要增强操作,以减少不必要的计算复杂度。

②:基于浅层神经网络的文字/非文字分类算法

当获得了高质量的候选连通区域,就需要对其中的字符进行分辨,确定其是否为文字或非文字,
基于浅层神经网络的文字/非文字分类算法,比以往的算法更加有效。

该算法根据文字本身的特性采用分治策略将原始问题空间划分为5个子空间,每个子空间对应一类文字样本,分别命名为Long类,Thin类,Fill类,Square-large类和 Square-small类(如下图所示),于是每个候选连通区域被划分到这5类中的一种。

每次分类动作包括两个阶段——预剪枝(Pre-pruning)阶段和验证(Verification)阶段。在预剪枝阶段,分类器的任务是尽可能滤除无歧义的非文字候选连通区域;在验证阶段,则通过引入更多信息来消除孤立连通区域的歧义性,从而进一步滤除有歧义的非文字候选连通区域。

(三)优化文本检测

1.超轻量骨干网络选择
超轻量文本检测器应该选用超轻量的骨干网络。常用的超轻量骨干网络有MobileNetV1系列, MobileNetV2系列, MobileNetV3系列和 ShuffleNetV2系列,每种系列都有不同规模的网络结构。下图对比了不同规模超轻量模型在SD 855上预测速度和准确度的情况
在这里插入图片描述

图中可以看到对于ImageNet 1000图像分类任务,MobileNetV3在相同预测速度的情况下,准确率最好。因此我们选择MobileNetV3作为骨干网络。

在这里插入图片描述

2.头部轻量化
DB文本检测的头部是类似目标检测中FPN的网络结构。融合了多个分辨率的特征图,提升对不同尺度目标的检测效果。为了便于特征融合,一般会使用一个1*1的卷积,将不同分辨率的特征图的特征通道数转换为相同的特征通道数,简称为inner_channels。考虑到预测的概率图和阈值图都与inner_channels相关,所以inner_channels对模型大小有非常大的影响。表2中显示,将inner_channels从256减小到96,模型大小从7M减小到4M,预测时间从406ms减小到213ms,加速50%,效果指标HMean下降不到1%。可见inner_channels对模型大小的影响,减小这个值,综合收益比较明显。

表2 头部的inner_channels、SE的移除、余弦学习率和预热学习率的消融实验

3.预热学习率
之前很多研究表明,在训练刚开始,使用太大的学习率,会导致学习过程中数值上不稳定。建议刚开始使用较小的学习率,逐步增加到初始学习率,这样有助于效果提升。对于文本检测,这个策略非常也有效。

4.基于Tesseract—OCR技术

  • 对图片进行切割:
  • 在进行图片的二值化时,有两种方式:
    (1)图片为彩色时,宜找到每个像素点合适的灰色度,因为每个像素点的灰色度不同程度上受到周边像素加权影响,从而影响整个图片的识别率。
    (2)图片为黑白色时,宜采用max-min方法对图片进行二值化。
  • 选取二值化中的经验阈值,我们有以下思路:
    (1)二值化微分计算阈值
    (2)二值化类卷积的对梯度变化加强得到阈值

对24位位图进行中值滤波会改变RGB各分量的值,所以图片的颜色会发生变化,但对于8位的位图,由于都是灰度的颜色,所以变化并不明显,而且滤波的窗口选的越大,对应的滤波效果的模糊度也会上升。

- 增加图片的亮度:

增加图片亮度可以使有些彩色图片的识别率大大增加,本程序别的图片为黑白照片,增加图片亮度提升的识别率并不乐观。

- 对图片的边缘进行尖锐化处理:

锐化可以快速调整图像边缘细节的对比度,并在边缘的两侧生成一条亮线一条暗线,使画面整体更加清晰。对于高分辨率的输出,通常锐化效果在屏幕上显示比印刷出来的更明显。

- 对图片进行平滑缩放:

有时很多图片本身无法很好的被识别,但当放大适当倍数时,就可增强识别率,但这个“适当倍数”很难把控,它受诸多硬件因素影响,比如电脑配置、针式打印机打印连贯性差等问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猛男技术控

感谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值