全部版块 我的主页
论坛 新商科论坛 四区(原工商管理论坛) 商学院 数字化企业管理
1323 0
2020-12-04
图像处理和卷积网络在数字化表格智能字符识别中的应用
摘要
图像处理是一个快速发展的领域,在科学和工程领域具有巨大的意义。图像处理的最新
应用之一是智能字符识别(ICR),即
手写文本转换为机器可读和机器可编辑的字符。ICR是光学字符识别系统的高级版本,可以在处理过程中以高精度和高速度识别字体和不同风格的笔迹。ICR与OCR和OMR(光学标记识别)结合使用,用于表格处理。表单处理是一种过程,通过该过程可以捕获输入到表单中填充的不同数据字段中的信息,并将其转换为可编辑的文本。表格处理系统的范围可以从小型申请表格的处理到具有多页的大规模调查表格。使用图像处理和卷积网络设计的识别引擎不仅可以提高准确性,还可以节省时间,劳动力和金钱。
关键字图像处理,智能字符识别,光学字符识别,光学标记识别,识别引擎,卷积网络。
1.引言
如今,图像处理已广泛用于从图像数据中获取见解。随处可见大量的图像数据, 需要对此数据进行分析。使用图像处理技术,可以开发不同的模型来自动化不同的过程。
图像处理的一种此类应用是在智能字符识别中,该功能是从扫描的jpg / png / tif格式的手写形式中自动提取数据 。
开发了一种识别工具,该工具以扫描的形式作为输入,应用预处理技术提取手写字符,然后使用训练型卷积神经网络模型识别这些字符,然后将提取的数据最终写入MYSQL数据库。
通过ICR技术,在通过OCR进行正确的字符识别后,文本将直接输入数据库后对整个文档中的所有段进行分类 。ICR通过从图像文件中捕获手写文本 并将其转换为可文本搜索的文件来进行操作,从而使用户能够使用文本字符串在文件中进行搜索并 使用复制/粘贴功能从中捕获信息。使用ICR,不再需要多个人来输入信息来完成工作。这消除了人为错误。
该识别引擎改善了许多应用程序中人机之间的交互,例如邮件分类,支票验证,办公室自动化以及各种银行应用程序,例如帐户和信用卡数据,调查表,保险索赔等。大多数公司使用的表格类型,包括从客户那里收到的订单,申请,索赔,变更请求和调查表,以及内部生成的表单,例如费用索赔,请求表,时间表和HR记录。这些表格上的数据通常对业务至关重要,因此,如果可以将其快速,准确地捕获并传输到内部系统,则对组织来说是巨大的好处。在几乎每家公司中,数据都是以人为形式记录的。
2.文学评论
表单处理和文本识别已使用了不同的方法。字符识别方法随图像像素的可视化和进一步处理而变化。不同的方法可以是统计,语义,神经网络,模式识别等。[1]
使用不同类型的机器学习模型开发的不同软件可实现不同级别的准确性,所开发的
工具的平均准确性为90%。
反馈环被插入到工具中,该工具生成对未被正确识别的字符的反馈,该反馈被用户再次纠正,然后提供给模型,该模型相应地被重新训练。
3.建议的方法
整个识别过程的第一步是图像处理,它实现分割方法并
从输入中提取所需的字段以进行识别。
3.1图像处理
提供给识别引擎的输入是jpg / png / tif格式的扫描图像,其中需要以较高的分辨率(300 dpi)进行扫描以实现 最大的准确性。根本步骤是对该图像进行预处理。
3.1.1图像预处理
图像的预处理涉及去除图像中的噪声。对于具有最低抽象级别的图像的操作,它是通用名称 ,其输入和输出均为强度图像。预处理的目的是
对图像数据进行改进,以抑制不必要的失真或增强一些对于进一步处理很重要的图像特征 。根据
用于计算新像素亮度的像素邻域的大小,存在不同类别的图像预处理方法:像素亮度变换,几何
变换,使用已处理像素的局部邻域的预处理方法以及图像恢复 需要有关整个图像的知识。
可以使用不同的预处理过滤器(中值,对称等)来提高图像质量并减少失真。对图像执行预处理操作后,现在可以进行进一步处理以进行分割了。
表格被填写并从各地邮寄。结果,它们被折叠起来并且经常被固定和弄脏。
此外,使用订书钉,回形针等会在表格图像中引入大量噪点。因此,鉴于 大量的表格必须在短时间内处理,表格注册算法需要对噪声稳定且高效。表单注册也必须非常准确,因为野外图像提取的准确性和野外识别的准确性取决于它。[2] 扫描文档时,文档中不可避免地会发生一些歪斜。这给这些文件的存储和分析带来了问题。为了补偿,使用偏斜检测算法检测并校正了偏斜。消除噪声的一种方法是消除边界并提取包含要提取的相关信息的输入图像的矩形部分。在此所需的偏斜和偏移校正之后,将以可以直接处理的形式获取图像。其他噪声消除方法包括“侵蚀和图像稀释”。例如,为了去除盐和胡椒粉的噪音,可使用中值滤波器。中值滤波器将像素的值替换为该像素附近的灰度的中值。取决于输入图像的类型,实现了不同的噪声去除技术。为了消除所有噪声,将输入图像的矩形部分定界并提取出来以进行进一步处理。
3.1.2图像分割
将整个图像分为单个字符(图像分割)是识别引擎中最重要的步骤。
可以使用以下类别的细分:
1.基于阈值的分割:直方图阈值化和切片技术用于分割图像。它们可以直接应用于图像,也可以与预处理和后处理技术结合使用。
2.基于边缘的分割:使用这种技术,假定图像中检测到的边缘代表对象边界,并用于识别这些对象
3.基于区域的分割:基于边缘的技术可能尝试找到对象边界,然后通过填充对象边界来定位对象本身,而基于区域的技术则采用相反的方法,即从对象的中间开始然后“增长”。 ”,直到它遇到物体边界为止。[3]
用作输入的图像包括2种类型的字段:
一个在方框中用字母和数字填充,另一个在复选框中用对与错标记填充。
因此,它们的细分分为两个阶段:
?提取字符(字母和数字):
分割涉及从图像中提取字符并获得其矩阵结构。单词的提取是通过图像分割实现的。分割将图像细分为其组成区域或对象。它包括线段分割(从图像中提取线),然后是单词分割线(从线中提取单词),然后是字符分割线(从词中提取字符)。将诸如Marr-Hildreth边缘检测器,Canny边缘检测器,边缘链接,边界检测等不同分割技术的概念 组合在一起,以获得最高效率的技术。提取字符所遵循的方法基于水平和垂直投影。
水平投影:包含每行图像黑色像素数量的矩阵。
垂直投影:此矩阵包含每列图像的黑色像素数。使用水平投影的概念提取输入图像中的线条。图像之间的空白字段具有零个或更少的黑色像素,因此可以在此基础上将它们分开。一旦提取了这些行,这些行将根据“垂直投影”被分成字符。包含特定行中不同字符之间的间距的列具有零个像素或更少的黑色像素,因此可以在此基础上提取它们现在以图像的形式获得各个字符,这些字符将传递到下一步以进行进一步识别并将其写入数据库。
?提取复选框:
与字符使用的水平和垂直投影相同的概念用于提取复选框。提取后包括的额外步骤如下:为了确定框内是否有正确或错误的标记,计算提取的复选框的黑色像素总数。对于空白复选框,黑色像素的数量少于填充有一定标记的像素的数量。通过创建一个函数并根据需要多次调用它,可以获取很少的空白和已填充复选框的样本,并计算其中黑色像素的总数。使用获得的值,为空复选框中的黑色像素数选择一个最佳阈值,任何大于该阈值的值都将表示该复选框充满了标记。
3.1.3字符识别
前述步骤的输出是以JPEG图像的形式提取的各个字符(字母,数字,正确和错误的标记),这些字符需要识别并写入数据库。
3.1.3.1文字匹配
识别字符的最简单方法是使用相关性概念。
在该库中,准备了一个库,其中包含需要识别的所有类型的不同字符的样本。
创建库后,将提取的图像与库中的所有图像进行匹配,并且与之具有最大相似度即相关性最高的图像将被识别为正确匹配项并写入 数据库。当存在需要识别的字符类型的预定义知识(即要识别的字符将具有标准字体和格式)时,此方法将非常有效 。因此,它不能用于 不同的手写字符和刻度线。
因此,将神经网络方法用于识别。
3.1.3.2人工神经网络
人工神经网络的思想是基于人脑的工作。人脑由1000亿个称为神经元的神经细胞组成。它们通过轴突连接到其他数千个细胞。树突接受外部环境的刺激或感觉器官的输入。这些输入会产生电脉冲,然后迅速通过神经网络传播。然后,神经元可以将消息发送给其他神经元以处理该问题,也可以不将其转发。ANN由多个节点组成,这些节点模仿人脑的生物神经元。神经元通过链接连接,并且彼此交互。节点可以获取输入数据并对该数据执行简单的操作。这些操作的结果将传递给其他神经元。每个节点的输出称为其激活值或节点值。每个链接都与权重相关联。 权重值,因此神经网络可以定义为:
神经网络是由许多简单的,高度互连的处理元件组成的计算系统,这些处理元件通过其对外部输入的动态状态响应来处理信息。[5]
人工神经网络(ANN)是一种信息处理范例,它受到
诸如大脑等生物神经系统处理信息的方式的启发。该范例的关键要素是信息处理系统的新颖结构 。它由大量高度互连的处理元件
(神经元)组成,它们协同工作以解决特定问题。人工神经网络就像人一样,以身作则。
通过学习过程为特定应用(例如模式识别或数据分类)配置了ANN 。在
生物系统中学习涉及对神经元之间存在的突触连接的调整。人工神经网络也是如此
。{神经网络的特征}}
1.适应性学习:
一种能力,可以根据为培训或初步经验提供的数据来学习如何完成任务。
2.自组织:
人工神经网络可以创建自己的组织或在学习期间接收到的信息的表示形式。
3.实时操作:
可以并行执行ANN计算,并且正在设计和制造利用此功能的特殊硬件设备。
4.通过冗余信息编码的容错能力:
网络的部分破坏会导致相应的性能下降。但是,即使网络受到严重破坏,某些网络功能仍可能保留。
神经网络以类似于人脑的方式处理信息。该网络由
并行工作以解决特定问题的大量高度互连的处理元素(神经元)组成。
神经网络以身作则。无法将它们编程为执行特定任务。人工神经元是
具有许多输入和一个输出的设备。神经元有两种操作模式:训练模式和使用
模式。在训练模式下,对于特定的输入模式,可以训练神经元发射(或不发射)。在使用模式下,当在输入处检测到教导的输入模式时,其关联的输出将成为当前输出。如果输入模式不属于教导的输入模式列表,则触发规则用于确定是否触发。
前馈网络:
信号仅从输入到输出以一种方式传播。没有反馈(循环),即任何层的输出都 不会影响同一层。前馈ANN通常是将输入与输出相关联的简单网络。 它们被广泛用于模式识别。
反馈网络:
通过在网络中引入环路,反馈网络可以使信号双向传播 。反馈网络非常强大,并且可能变得极其复杂。反馈网络是动态的;它们的状态不断变化,直到达到平衡点。它们将保持在平衡点,直到输入发生变化并且需要找到新的平衡为止。每个神经网络都拥有包含在连接权重值中的知识。根据经验来修改存储在网络中的知识意味着要改变权重值的学习规则。[6]
深度学习算法:
深度学习是机器学习的一个分支,它基于一组算法,这些算法试图通过使用具有多个处理层的深度图来对数据中的高级抽象建模,该深度图由多个线性和非线性
变换组成。理论结果表明,为了学习那种可以表示高级抽象的复杂功能
(例如,在视觉,语言和其他AI级别任务中),可能需要深度的体系结构。深
架构由多个级别的非线性运算组成,例如在具有许多隐藏层的神经网络中,或者在重用许多子公式的复杂命题公式中。搜索深度架构的参数空间是一项艰巨的任务,但是最近提出了诸如深度信任网络(Deep Belief Networks)之类的学习算法来解决此问题,并取得了显著成功,在某些领域领先于最新技术。学习''算法可以自动学习特征表示(通常从未标记的数据中学习),从而避免了很多耗时的工程。这些算法是基于构建庞大的人工神经网络的,该神经网络受到皮质(大脑)计算的宽松启发。下图显示了深度学习特征发现过程与其他算法的比较。诸如Theano,h2o,mxnet等不同的深度学习库用于识别字母和数字。对获得的结果进行分析和比较。
深度神经网络在输入和输出层之间有许多隐藏层。使用了不同的神经网络算法进行字符识别并比较了准确性。在卷积网络(``Tensorflow'')的情况下获得了最高的精度。
卷积神经网络:
卷积神经网络(ConvNet)与普通神经网络非常相似,它们也由具有权重和偏见且可以训练的神经元组成。每个神经元接收一些输入,执行点积,并可选地跟随其非线性。整个网络表示一个单一的可区分分数函数:从一端的原始图像像素到另一端的类分数。并且在最后一个(完全连接的)层上具有丢失功能(例如SVM / Softmax)。ConvNet架构明确假设输入是图像,这使我们可以将某些属性编码到架构中。这些使转发功能更有效地实现,并大大减少了网络中的参数数量。神经网络接收输入(单个向量),并通过一系列隐藏层对其进行转换。每个隐藏层由一组神经元组成,其中每个神经元完全连接到上一层中的所有神经元,并且其中单个层中的神经元完全独立地起作用,并且不共享任何连接。最后一个完全连接的层称为“输出层”,在分类设置中,它表示班级成绩。卷积神经网络利用了输入由图像组成的事实,并且它们以更明智的方式约束了体系结构。特别是,与常规神经网络不同,ConvNet的各层神经元排列成3个维度:宽度,高度,深度。CNN与传统的ANN类似,因为它们由通过学习进行自我优化的神经元组成。 数不清的人工神经网络。CNN和ANN之间的唯一区别是CNN主要用于图像中的模式识别 。这使我们能够将特定于图像的特征编码到体系结构中,从而使网络 的识别效率更高。卷积网络对于图像而言效率更高,因为它们隐含了网络内部的多个层 并通过实现合并和修补操作来从输入向量生成自动特征,从而提高了识别的准确性。CNN通常包含3种类型的层:
1.卷积层:
卷积层是CNN的核心组成部分。图层的参数由一组
具有学习能力的过滤器(或内核)组成,这些过滤器(或内核)的接收场较小,但会扩展到输入体积的整个深度
。在前向通过过程中,每个滤镜会在输入体积的宽度和高度上卷积,计算滤镜的条目和输入之间的点积,并生成该滤镜的二维激活图。结果,网络学习了在输入中的某些空间位置检测到某种特定类型的要素时激活的过滤器。
2.池化层:
该层执行池化操作,这是非线性下采样的一种形式。实现了最大池化操作,该操作
将输入图像划分为一组不重叠的矩形,对于每个这样的子区域,
输出最大值。池化层的功能是逐渐减小表示的空间大小,以减少网络中的参数和计算量,从而控制过度拟合。通常,在CNN架构的连续层之间定期插入池化层。池化层在输入的每个深度切片上独立运行,并在空间上调整其大小。最常用的形式是在池化层中使用2x2大小的滤镜,并在输入的每个深度切片上沿宽度和高度乘以2的降采样步长,沿宽度和高度均乘以2,从而丢弃75%的激活。
3.全连接层:
最后,经过几个卷积和最大池化层之后,高层推理将通过完全连接的层进行。如常规神经网络所示,完全连接层中的神经元与上一层中的所有激活都具有完全连接。因此,它们的激活可以通过矩阵乘法加上偏置偏移来计算。[7]
在这种情况下,问题陈述是一种分类问题,其中应根据先前训练的数据集将输入分类为不同的 类别。
Tensorflow:
TensorFlow是用于表达机器学习算法的接口,也是用于执行此类
算法的实现。使用TensorFlow表示的计算几乎可以在多种异构系统上执行,而无需改变
,范围从移动设备(如手机和平板电脑)到大型分布式系统(包括数百台机器和数千个计算设备,例如GPU卡) 。[8]
TensorFlow是一个开源软件库,用于使用数据流图进行数值计算。图中的节点
表示数学运算,而图的边缘表示
它们之间传递的多维数据数组(张量)。灵活的体系结构允许通过单个API将计算部署到台式机,服务器或移动设备中的一个或多个CPU或GPU。在不同的数据集上测试获得的模型。经过训练的 模型可以以90%的精度识别字符。识别字符后,将它们写入文本文件并转储到数据库中。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群