"景先生毕设|www.jxszl.com

图像处理的平时成绩单自动识别系统研究与实现(源码)

2021-03-30 13:13编辑: www.jxszl.com景先生毕设
随着信息时代的来临,无纸化办公得以普及,字符识别技术被广泛应用,表格识别作为字符识别的一个主要方面也成为了研究热点之一。本文首先对采集的表格图像进行图像二值化操作,并进行倾斜矫正,接着分别采用了Hough变换和形态学处理两种方法对表格线进行提取,然后应用八邻域内轮廓跟踪算法改进了单元格提取的方法及完成了字符的断痕修复,并采用投影法对提取的字符图像进行分割,用归一化和图像细化对分割后的图像进行加工,分析字符的结构特征和统计特征并对这些特征进行提取,最后通过BP神经网络对字符进行识别。将该方法应用到平时成绩单识别系统中,识别率可达到80%左右。关键字表格定位;断痕修复;BP神经网络;字符识别Research and Realization of Automatic Document Recognition System Based on Image ProcessingStudent majoring in computer science and technology Yan Ru-qiTutor Zhu Shu-xinAbstract: With the advent of the information age, paperless office to be popular, character recognition technology is widely used. Form recognition as a major aspect of character recognition has become one of the research hotspots. In this paper, we first perform the image binarization operation on the collected table images, and then use the Hough transform and the morphological processing to extract the table lines respectively. Then we use the eight-neighborhood contour tracking algorithm to improve the cell. First, th *景先生毕设|www.jxszl.com +Q: ¥351916072¥ 
e method of extracting and the completion of the character of the fracture repair are used. Then, projection method is used to extract the character image segmentation. Normalization and image refinement of the segmented image processing is used to analyze the character structure and statistical characteristics These features are extracted, and finally the characters are identified by BP neural network. The method is applied to the usual transcripts identification system. In the end, the recognition rate can reach about 80%.1课题背景1.1研究意义长期以来手写文档一直被用来记载信息或用于人与人之间的沟通交流,而随着信息时代的到来,为了方便信息处理将纸质文档转换成电子文档成为了人们日常生活中的一项任务。一般采用人工录入将纸质文档转换成电子文档。这种方式耗时耗力且效率低下。计算机处理能力不断提高,人工智能系统的出现,为解决这个问题提供了新的方法。这种方法是用字符识别系统进行转换。表格识别在字符识别系统中占有很大的比重,在人们的日常生活中经常需要用表格来收集、传递和保存各类信息及数据,可以说表格文档无处不在,且形式各样如登记表、财务报表、六合彩票、成绩单等。由于无纸化办公的普及,人们为了方便交流要将大量的表格文档数据录入到计算机内,人工输入是现在普遍的录入方式,但是人工录入速度慢、成本高。由于表格数据繁杂并含有大量的数字等信息,人工录入也很容易出现差错,出现差错后要在多如繁星的海量数据中查找矫正错误非常不易。因此,为了将人们从数据的枷锁中解放出来,并提高工作效率,表格识别系统应运而生。本文在前人研究的基础上对表格识别的各类算法进行研究,以得到准确性更好,效率更高的表格识别系统。并将结果应用在平时成绩单识别中,来为教学工作提供帮助。1.2国内外研究现状字符识别是模式识别中的一个重要分支,OCR[1](Optical Character Recognition)是字符识别的一个主要应用。OCR技术是一项涉及人工智能、识别、图像处理的交叉性学科。其中,在图像处理技术方面的研究占很大比重。早在上世纪五十年代[2],人们已经开始了对OCR的研究,但由于当时的计算机设备发展还不完善,计算机计算及存储能力有限,因此早期OCR的研究也收到了限制。随着电子科技技术的不断完善,自80年代起[3],人们对OCR的研究也越来越广泛,经多年的研究与发展,字符识别技术已有了长足的进步。表格识别系统作为OCR的一个重要应用,也得到了国内外研究人员的青睐。1.2.1国外研究现状Paul Hough[4]提出了Hough变化的方法来检索图像中的直线,该方法具有较好的鲁棒性和稳定性,可以分别应对表格虚线、表格线断裂等各种复杂情况,但会受到图形约束,且计算复杂。Freeman[5]提出了Freeman链码来跟踪目标物体的轮廓,该方法可以很好的得到目标轮廓,并在目标分析、压缩等方面得到推崇。H. Shin jo[6]等人提出了表格线交叉点分析法提取了表格线,该方法将表格线框中相邻的交叉点归类和匹配,然后构建单元格,能够得到表格线框,但是稳定性较差,且耗时长。G Pirlo[7]等人提出了滴水算法分割粘连字符的方法,该方法可以较好的分割粘着在一起的两个字符,还可以将倾斜、扭曲的字符分开。除了在各种算法研究成果外,国外也有许多成功的OCR系统,如美国 Buffalo 分校的文档识别中心(CEDAR)[8]主要研究手写体识别、信封与信件的自动处理等,并开发了智能识别字符、处理表格以及日文文档的系统;美国华盛顿大学的智能系统研究室( ISL )[9]开发了用于 OCR 和文档分析与理解算法的 CD-ROM 文档数据库(UW-I,UW-II,UW-III)等。1.2.2国内研究现状目前国内表格识别系统也得到了广泛应用。司明[10]等人提出了改进的模糊阈值算法改进了二值化算法并结合最小二乘法进行倾斜矫正,使用这种结合处理的方法可以快速得到轮廓更加清晰端正的表格图像。何柳[11]等人提出了采用连通区域算法提取出了表格线框的轮廓并根据特征点识别单元格的方法,该方法可以准确的分离表格框架,并找到各种规格的表格单元格。周壮[12]等人研究了表格线去除的方法,提出基于自定义“有向单连通链”的方法搜索表格线,并根据字线交叠方法进行分离,这种方法可以成功将表格线框去除。刘昱[13]等人采用基于形态学的方法提取表格线,并对提取到的表格线进行细化,然后合并成表格框架,这种方法可以较好的提取出各种类型的表格的框架,但是对有些短小的表格线的提取并不精准。刘今晖[14]博士成功研究出了印刷表格识别系统;谢亮[15]等人提出了一套完整的识别表格的方法,该方法可以成功提取表格线,并对断裂字符进行修补,最终识别率可以达到90%。1.3研究目的与内容1.3.1研究目的1.3.2研究内容研究基于扫描的成绩表单图像,编写平时成绩单识别系统,通过计算机处理将表格图像中的数据导入到Excel表中,研究内容如下采集纸质表单并扫描成图像及研究表格线的提取表格单元格的提取字符图像的分割、归一化及细化字符图像特征参数的提取与分析平时成绩单识别系统的实现 2系统设计与实现 2.1系统简介平时成绩单自动识别系统以采集到的表格样本如图1为例来研究表格图像的预处理、字符提取及字符识别的方法,并应用Matlab2016b进行开发实现,样本主要来源是将填写好的纸质表格经过扫描仪扫描成图片,并存为.bmp格式。平时成绩单自动识别系统的总流程为将纸质表格文档扫描成图片、图像预处理、字符图像提取、字符图像识别、导入excel几个部分,平时成绩单自动识别系统总流程如图2所示。系统分为4个模块分别为图像预处理模块、表格字符提取模块、特征提取模块、字符识别模块,平时成绩自动识别系统总体功能模块如图3所示。(1)图像预处理模块 该模块首先将原始图像转化成二值图像,然后做倾斜矫正处理。(2)字符提取模块 字符提取模块又分为表格线提取、单元格定位、提取字符图像、对字符图像进行预处理几个子模块。(3)特征提取模块 特征提取模块主要采用穿线法提取字符结构特征,采用粗网格法提取字符统计特征。(4)字符识别模块 字符识别主要是应用BP神经网络对字符提取的特征进行训练,然后识别。  图1 表格样本图2平时成绩单自动识别系统总流程图3平时成绩自动识别系统总体功能模块图3图像预处理在平时成绩单自动识别系统中,为了对表格图像进行进一步的分析,首先要对原图像进行预处理操作。本文处理的图像为表格图像,因此还要对表格图像进行倾斜矫正,为后面表格线的提取与去除做准备。由于在提取到字符图像后还要对图像进行处理才可以识别,因此,本文在对整体图像进行预处理时只对图像进行了二值化及倾斜矫正的处理。3.1图像二值化图像二值化就是将图像的像素点的灰度值设成0或255,即图像上只有黑、白两种颜色。在matlab中二值图像是只含有0和1 两个数值的逻辑数组。图像二值化方法有聚类分析法、直方图分析法、阈值选取法等,其中,阈值选取法又分为迭代法和最大类间方差(OTSU)法等。本文采用最大类间方差法寻找合适的阈值,然后通过调用二值化函数im2bw,将图像转化成二值图像,表格二值图像如图4所示图4 表格二值图像3.2图像倾斜矫正待识别表格扫描成图片后,表格图像或多或少的都会有一些倾斜。倾斜的表格图像不仅会为单元格定位造成困难使得字符图像更难分割出来,还会使得字符变形影响识别率。为了解决以上问题,在对表格进行表格线提取、识别等操作之前,要先测量出表格的倾斜角度后并将其矫正。图像倾斜矫正的关键是得到图像与水平线(或垂直线,本文的基准线是水平线)的夹角,现有的检测方法主要有霍夫变换法、侧面水平投影法、直线拟合法等。Hough变换是一种检测图像直线的方法,同时也常用于文档的倾斜检测。Hough变换自1962年被提出之后,因其良好的稳定性和鲁棒性被广泛的应用。本文图像倾斜矫正分别采用了Hough变换和radon投影的方法来寻找倾斜角,然后imrotate()函数进行旋转,radon投影法倾斜矫正详细流程如图5所示,Hough变换法倾斜矫正详细流程如图6所示。图5 radon投影法倾斜矫正流程图6 Hough变换法倾斜矫正流程表格倾斜矫正前后的实验结果如图7所示图7 倾斜矫正前后的表格图像经过大量的实验发现两种矫正方法得到的效果不相上下,但在稳定性上radon投影倾斜矫正相对于Hough变换较差,因此,本文选用了Hough变换进行倾斜矫正。4表格字符定位与提取4.1概述日常应用的表格一般都含有水平和垂直两个方向的直线,这些相邻的直线相交可以产生一个个的表格单元格。通常所要提取的表格信息都记录在各个单元格中。因此,要想得到表格数据就要知道每个单元格的位置。为了得到具体单元格的位置,首先要提取出表格线,根据表格线的行列坐标推得每个单元格的具体位置,然后将单元格分离。在提取到单元格后,要提取出该单元格内完整的字符图像用于识别。但由于在书写过程中,人们常常会将字符写到表格边框线外,这样在去除表格线之后字符笔划会断裂,且断裂的字符的下半部分不在所定位到当前单元格之内,这样很难得到完整的字符图像,为了得到完整的字符则需要对断裂字符进行修复。本节研究了表格线提取的方法、表格单元格提取的方法及断裂字符修复的方法。4.2表格线提取方法4.2.1用Hough变换检测直线经过倾斜矫正的过程,已知Hough变换是一种线描述方法。用Hough变换不仅可以用来进行倾斜矫正,还可以用来检测直线,其过程倾斜矫正的过程相似,Hough变换检测直线流程如图8所示,其效果如图9所示图8 Hough变换检测直线流程图9 Hough变换检测直线效果图图10 Hough变换检测直线效果图Hough变换检验直线的效果如图9所示,很容易看出,虽然,利用Hough变换在该阈值时可以很好的提取出该表格的横线和竖线,但是,换另一张表格进行实验时,其效果差强人意,如图10所示。经过大量的实验发现利用Hough变换检测不同的表格图像中的表格线时,其对应的阈值会有略微改变。在处理行列数不定的表格时,很难找到一个通用的阈值来准确的检测各种规格的表格图像中的表格线。因此,采用全局的Hough变换检测直线不具有通用性。4.2.2基于数学形态学提取表格线的方法为了解决Hough变换检测直线通用性差的问题,本文采用基于数学形态学[8]的方法进行表格线的提取。首先分别设定水平结构元素(垂直结构元素),然后利用闭运算提取表格横线(竖线),在经闭运算处理后得到的表格线并不平整,需要修整。基于数学形态学提取表格线的方法流程如图11所示,闭运算提取表格横竖线的效果如图12所示,经修整后表格线的效果13所示。图11 基于数学形态学提取表格线的方法流程  图12闭运算提取表格横竖线的效果图  图13 修整后表格线的效果图经过上下对比我们很容易发现与Hough变换相比较,基于数学形态学提取表格线的方法更加容易理解和实现,且适用性和通用性更强,即使表格的行、列数发生大的改变也能准确的检测到表格的各个边框线。4.3表格字符定位与提取4.3.1坐标法定位单元格经上述操作得到了平整的表格横竖线图像,分别记为bw1、bw2。表格图像的各个单元格由相邻横线和竖线构成。因此,可以通过分别扫描bw1和bw2得到每条横线和竖线的具体位置,然后粗略的得到每个单元格的位置。为了下文便于引用该方法,我们将其称为CEM(cell extraction methods),操作过程如下(1)扫描横线图像bw1,设标志变量为flag=0,设矩阵A用来存放每条横线的纵坐标,扫描每一行,当flag=0,且表格像素为白色时,记录该行行坐标到矩阵A中,并改变标志变量flag=1;当flag=1,且表格像素为黑色时,表明该表格线结束,开始寻找下一条表格线,将flag=0;(2)扫描bw2的每列,将竖线的列坐标记录到矩阵B中。经上述操作后,设可以得到H条水平线,由上自下分别记为row(1)、row(2)......row(H);同理,设得到垂直竖线V条,由左及右分别记为col(1)、col(2).....col(V);对单元格从左及右、从上及下进行编号,如将第i行第j列记为cell(i,j);可以看出,cell(i,j)由row(i)、row(i+1)、col(j)、col(j+1)围成,如图14所示: 图14单元格坐标示意图在得到单元格的大体位置之后,利用上文得到的完整表格边框与表格二值图像进行叠加可提取出表格图像的表框,提取图像边框效果如图15所示,再对其进行二值化操作可去除表格线,去除表格边框效果如图16   图15提取图像边框效果图 图16 去除表格边框效果图像 在得到去除表格线的图像后,根据cell(i,j)的坐标,截取第row(i)到row(i+1)行和col(j)到col(j+1)列所围成的矩阵则得到完整的字符图像,CEM提取完整字符效果如图17所示,很容易发现这种情况只适用于字符没有越出表格单元格的情况,在字符越出单元格时,则不能得到完整的字符,CEM提取后得到断裂字符如图18所示。   图17 CEM提取完整字符效果 图 18 CEM提取后得到断裂字符4.3.2定位含有越出字符的单元格通常人们填写表格时,字符与单元格的关系分为字符完全在单元格内和字符的一部分越出单元格两种。在字符完全在单元格内时,通过上文中CEM方法即可得到字符图像,如图17,但当字符的一部分越出单元格,通过上述方法无法得到完整字符图像,如图18。针对后字符越出单元格的情况,本文做了以下研究。为了得到完整的字符图像就要将含有字符越出单元格部分的笔划的小矩阵提取出来。最简单的方法就是用直线扫描当前单元格的正下方的单元格(即越出笔划所在的单元格),从下方单元格的上边缘线开始扫描直到直线扫描到第一行没有黑色像素的一行,并将该行记为dnrow,则该行为字符的下边缘则令row(i+1)=dnrow,再按照上文CEM方法提取单元格即可,扫描法处理单元格内字符越出边界一般情况的效果如图19所示。但可以发现扫描法并不适用于越出部分与下面的单元格内字符有交叠的情况,扫描法处理单元格内字符越界且与相邻单元格内字符有交叠情况的效果如图20所示。图19扫描法处理单元格内字符越出边界一般情况的效果图20扫描法处理单元格内字符越界且与相邻单元格内字符有交叠情况的效果如果能得到图20中将上下字符分隔开来的分界曲线则可以分离这种复杂情况下的字符,经研究发现8-邻域内轮廓跟踪算法可以得到这条曲线。在图像中的任意一个点x都有8个点与之相邻,即为8邻域点[9]。x的8邻域点如图22所示,设x点右边的点为0邻域点,则按逆时针方向则x点的8邻域点分别为0邻域点、1邻域点.....7邻域点,设x为(0,0),则8邻域点的坐标分别为(1,0)、(1,1)、(0,1)、(-1,1)、(-1,0)、(-1,-1)、(-1,0)、(-1,1)。8-邻域内轮廓跟踪算法流程如图21所示。搜索方向dir各值所对应的方向如图23所示。图21 8-邻域内轮廓跟踪算法流程图   图22 x的8邻域点 图23 8-邻域搜索方向dir对应的值 经原8-邻域内轮廓跟踪算法处理可得到部分字符越界部分的轮廓,如图24所示,并不能将所有断痕的轮廓找到,且该方法得到的轮廓点包括笔划的所有轮廓点,为了得到边界只需找到断裂笔划的外边界即可,因此,本文对8-邻域内轮廓跟踪算法做了改进,改进后的八邻域内轮廓跟踪算法流程图如图25所示,改进后8-邻域内轮廓跟踪算法处理后得到的下边界轮廓的示例,如图26所示,最后按图27所示将断裂字符上下部分拼接到一起。图24 原8-邻域内轮廓跟踪算法效果图25 改进的8-邻域内轮廓跟踪算法流程图26 改进后8-邻域内轮廓算法示意图图27 断痕拼接示意图4.3.3断痕修复经过上文的一系列操作后可以提取出完整的字符图像,但由于去除表格线使得单元格内字符与表格线重合部分的也被擦除,造成了整个字符中含有断裂的笔划。为了能保持字符的完整性,要对断裂笔划进行修复。修复笔划首先必须要找到断痕的具体位置,在确定断痕的位置之后,对断裂笔划形状进行分类,最后根据断痕种类进行修补。在处理断痕前,先通过对去除边缘线后的图像进行水平(垂直)方向的扫描,统计图像中连续相邻出现的黑色像素点数并求其平均值得到笔划的平均宽度记为asw。 通过实验我们发现表格图像中手写的阿拉伯数字的笔划与表格线重叠的情况有很多种,穷举出各种情况比较困难,而通过对断裂笔划的属性进行分类则比较简单,通过对断痕的观察和统计研究,我们根据同一部分所包括的断痕的数量和断痕的宽度,将断痕分成了cut1,cut2,cut3 三类,以下对三种分类进行了说明(将断裂的上下部分记为part,断痕记为potseg)(1)cut1part只含有一段potseg,同时,potseg的宽度与asw近似(2)cut2part包含两段potseg,同时,potseg的宽度与asw近似(3)cut3part只包含一段potseg,同时,potseg的宽度明显大于asw三类potseg如图28所示图28 三类potseg示意图观察图28易知,cut1 potseg一般由含有竖线结尾的数字与表格线交叉造成,其手写形状为“|”、“”和“/”几种,其中包含数字“1”、“4”、“7”、“9”,这些数字与表格线交叉时只会有一个交点。cut2 potseg一般由含有圆弧形结构的数字与表格线交叉造成,这些数字有“0”、“3”、“5”、“6”、“8”,它们与表格线相交时一般会产生两个交点。与cat2 potseg一样,cut3 potseg也是由含有圆弧形结构的数字与表格线交叠造成,可以把其当成是特殊情况下的cut2 potseg当表格线比较粗、表格线与数字的交汇线比较靠近数字底部的笔划时,数字与表格线相交产生的断痕宽度往往会比笔划宽度asw大,即cut3 potseg,包含的数字有“0”、“2”、“3”、“5”、“6”、“8”。经过上述研究,通过图29的过程来寻找断痕并分类图29 断痕定位及分类流程图通过上文,可以知道与表格线重叠的字符会被表格线分成上下两部分,每一部分都会含有各自的potseg,每部分的potseg都会有三种情况,其中断裂字符下部分的potseg还可能为空,根据上下不同种类的potseg进行组合共有12种情况,各种情况的修补方法如下该算法是在单元格内数字只与底部边缘相交的假设下进行的,变量upcutflag、dncutflag分别记录上下part的potseg的类型,在每个单元格内把找到的上下potseg进行匹配,,因此,断痕根据上下potseg的不同组合情况共有3×4=12种。以下是各种情况的具体处理方式(1)upcutflag=1,dncutflag=1用直线连接上下部分的左端点,记该直线为L1;用线段连接上下部分的右端点,记该直线为L2;将L1和L2之间的像素填充为黑色。(2)upcutflag=1,dncutflag=2采用与(1)相同的方式。(3)upcutflag=1,dncutflag=3若uppotseg左端点在dnpotseg左端点的左边,则用直线连接两个端点,并记该直线为L1;以L1上的每行的最左端的像素点为起始点,向右连续填充asw个黑色像素。若uppotseg右端点在dnpotseg右端点的右边,则用直线连接两个端点,并记该直线为L2;以L2上的每行的最右端的像素点为起始点,向左连续填充asw个黑色像素。将下部分的potseg垂直方向上asw宽度的像素填充为黑色。(4)upcutflag=1,dncutflag=0(即为空)该情况下表明数字的笔划紧贴表格边缘线但并没有超边缘线,这种情况无需修复。(5)upcutflag=2,dncutflag=1:修补方法与(1)相同(6)upcutflag=2,dncutflag=2与(1)相同,分别用直线连接上下断裂部分对应的potseg。(7)upcutflag=2,dncutflag=3与(3)的修复方式类似。(8)upcutflag=2,dncutflag=0(即为空)这种情况一般为含有圆弧形的数字造成,对上部的左右两段potseg的右左端点向下垂直移动asw格像素,并分别与左右两段potseg用直线连接,将两条直线分别记为L1、L2。将L1、L2之间的像素置为黑色。(9)upcutflag=3,dncutflag=1与(3)情况相反,将处理方法的次序颠倒即可。(10)upcutflag=3,dncutflag=2与(7)情况相反,处理次序方法的颠倒即可。(11)upcutflag=3,dncutflag=3与(1)相同。(12)upcutflag=3,dncutflag=0(即为空)将上部分的potseg在垂直方向上asw宽度的像素填充为黑色。为了更加直观的了解为各种修补方式,本文给出了典型的几种情况的示例,断痕修复方法示例如图30所示,断痕修复前后对比效果如图31所示。图30 断痕修复方法示例图 31断痕修复前后对比图4.4字符图像预处理经过上述操作之后,最终得到了完整的字符图像。在对字符图像识别前需要对字符图像进行预处理,使得字符图像整齐划一并更易于提取数字特征和识别。4.4.1数字分割在得到字符图像之后,得到的字符图像中的数字可能是单位数也可能是双位数,但图像识别只能依据每个字符其各自的特征分别进行识别,无法一起识别多个字符。因此要将字符进行分割,如将“98”分割成“9”和“8”两个字符,然后分别进行识别。数字分割的方法主要有滴水算法[10]、投影法[11]、识别器分析法[12]、连通域分割法[13]等。本文用扫描法和投影法对字符进行分割。扫描法分割流程如图32所示图32 扫描法分割流程图扫描法分割字符简单快捷,比较容易实现,对于分开的字符分割效果较好,扫描法分割成功效果如图33所示。每个人书写双位数时字符间隔不一,间隔较小时会导致双位数的两位数在垂直方向上笔画有重叠;有时因为书写速度快等原因还会导致连笔,在这些情况下,扫描法不能成功分割字符,扫描法分割失败效果如图34所示。图33扫描法分割成功效果图图34扫描法分割失败效果图为了解决字符粘连问题,本文采用了投影法进行字符分割。投影法就是将图像上的各点投影到垂直方向或水平方向,然后跟就投影值来确定分割点。投影法的关键是确定合适的阈值,投影分割的具体流程如图35所示,投影分割效果如图36所示。图35投影分割的流程图 图36投影分割效果图图37投影分割效果图是基于投影算法分割字符的效果如图36所示,从图中可以发现虽然基于投影法的分割与扫描法相比在两位数的分割上效果比较好,但是对于单位数的分割却由于阈值选取不当而分割成两段如图37所示,这样在后续识别时对于单位数的识别率降低,为了解决这个问题,本文对投影分割法进行了改进,改进投影分割的流程如图38所示,改进后投影法分割字符效果如图39所示。图38改进投影分割的流程图图39改进后投影法分割字符效果图改进后的投影法分割的分割效果比扫描法和未改进的投影分割法准确性更高,且稳定性较强,可以分割单个字符、间隔较近的两个字符和连笔的两个字符,且改进的投影法原理简单易于理解和实现。但是投影法也有局限性,对于两个完全贴在一起的字符分割情况较差。表1为三种分割方法的分割准确率。表1 不同分割方法的分割率统计表输入样本数成功分割数分割正确率扫描法30120.4投影法30240.8改进后投影法30270.94.4.2数字归一化归一化是字符识别的预处理操作中的一个关键过程。由于输入的图像中的字符一般大小不一,而大小不一的字符图像给后续处理带来了困难,因此,在预处理阶段一般都要对字符进行归一化。归一化处理一般是将待处理图像归一成固定大小的数字图像。归一化一般包括三种1.位置归一化;2.大小归一化;3.笔画粗细归一化。本文是对字符图像进行了位置和大小的归一化,并将其归一到1616的矩阵中。本文对图像进行归一化的具体操作原理为首先经扫描得到字符的原高度,然后与归一化后得到的图像的高度(本文为16)作比从而得到变化系数,然后根据变化系数得到宽度,最后按照插值的方法将原图像映射到新的图像中。本文归一化处理主要是在得到比例系数之后借助了函数imresize()得到的各个归一化图像。4.4.3数字细化在图像分析的过程中,图像的形状信息至关重要,细化就是用来得到图像的基本骨架的处理。在字符图像中的每个像素对图像识别中的识别率的贡献度一一不等,利用细化处理可以得到数字的骨架,消除字符图像中的冗余像素,使得在识别时可以快速的得到其本质内容,较少计算量,提高效率。数字细化一般包括以下几点要求保持原有数字笔划的连贯性要细化成单线,即一个像素宽得到的骨架应尽量为原数笔划的中心线保持原有的拓扑结构以及几何特征不变细化算法繁多,如有四邻域或八邻域连接[14]算法。本文采用细化处理的函数bwmorph(),且利用该函数得到的细化图像效果比较稳定,所以本文的细化处理是应用bwmorph()函数进行的,数字细化效果如图40所示图40数字细化效果5基于BP神经网络的手写数字识别5.1手写数字的特征提取在模式识别中,特征是区分各类图像的关键因素。因此,为了更好的区分各个样本,特征的选取应具有较好的可辨性、可靠性和独立性等性质。在手写字符识别中,虽然,不同的手写风格使得手写字符有所差距,但是,字符的基本结构是固定的。因此,常用结构特征和统计特征作为手写字符的识别特征。结构特征容易受细节变化的影响,因此对于含有噪声的图像识别率不高,相对而言,统计特征则有较好的抗噪性,稳定性较好,但对于图像细节变化则不敏感。这两种特征优缺点互补,结合两种特征进行识别可以提高识别率。下面对两种特征的提取方法进行简要的介绍;结构特征提取方法的基本思想与人识字的原理相似,将字符分解成部件、笔画甚至笔段,各个笔段构成不同的笔划,而笔画构成各个部件,各个部件形成完整的字符。根据各个元素的数量、类别和之间的联系来判定待识别的字符。统计特征的提取方法一般是先找到要识别图像的某个特征,然后根据数学统计学设计分类函数来实现特征到字符的映射。其中特征的选取是关键问题,经过大量的实践和研究,人们找到了提取物体实质性特征的一些统计特征提取方法。本文采用的结构特征是穿越密度(次数),其提取方法是穿线法,穿线法是用来得到字符笔划密度的一种常用方法。穿线法[15]的算法思想是用一组或几组与水平线相平行,或成30度、45度以及60度的平行线来贯穿数字,将各平行线与字符的交点信息作为识别的依据。本文采用的整体贯穿法提取结构特征。上文将字符图像归一到16×16的矩阵中,因此本文在水平和垂直方向上每隔四个像素进行一次穿越,以及在与水平成45、135度的对角线分别进行穿越,共八条穿越线,即可得到八个方向的数据,因此经整体贯穿法可得到八个特征,八个特征如图41所示,表2为穿线法提取的八个结构特征值表。图41特征向量提取表2 结构特征像素平均值表数字第四行第八行第十二行第四列第八列第十二列正对角线负对角线01.81.81.932.14.921.4110,9103.90.21.20.72111.91.42.32.61.41.830.82.310.33.21.70.51.541.22.822.44.31.11.81.9520.91.11.12.90.81.50.860.91.61.304.30.31.9270.80.90.90.33.21.21.60.681.71.41.704.51.23.52.491.61.20.702.500.91.3本文采用的统计特征是粗网格[16]特征。粗网格特征在统计特种易于提取,便于理解,注重字符的整体分布特征。在数字识别中,一共有10个字符,而各个字符的总体分布比较固定,因此该方法比较适用。由上文可知,图像通过归一化处理后的大小是16×16,因此,将图像划分成4×4的小区域,如图41共16个区域,即可以得到16个粗网格特征,表3为粗网格法提取的16个统计特征值表。表3统计特征区域像素平均值表区域密度数0数1数2数3数4数5数6数7数8数9区域1000.90.10000.300区域23.402.9233.80.333.82.7区域34.23.73.22.41.60.93.53.74.23.6区域40.500.60.100.20.20.400区域50.4000100.1000区域63.11.802.23.94.4303.11.7区域72.622.32.332.51.13.64.43.5区域81.301.70.20.810.3000区域91.90002.100000区域102.13.40.714.13.63.40.33.40.1区域113.40.13.74.33.30.43.63.23.62.8区域120.200.800.800.1000区域130.702.80.20.21.70000区域144.73.94.23.22.93.84.22.34.91.6区域15203.42.10.31.22.40.83.11.4区域16002.10000.2000本文根据粗网格法提取了16个区域的统计特征其值如表3所示,这样我们提取了16个统计特征和8个结构特征,共24个特征。特征值较多不仅可能会影响训练时长,还往往可能存在冗余特征,因此我们对统计特征进行挑选。观察表2我们做横向比较发现一些区域中的像素稀疏,每个数字在该区域的特征值相似,这些区域的特征可能为冗余特征,为了更加直观的观察数据,我们统计了每个区域的平均像素值,并做成了柱状图进行数据分析,如图42所示,根据柱状图可以直观的看到各个数字图片中的有效像素主要集中在区域2、3、6、7、10、11、14、15中,区域1、4、5、12、16中几乎没有像素值,区域8、9、13中的像素接近0.5个,表明有些数字在该区域有些有像素有些没有,但由于一个区域包含16个像素,所以也可以忽略不计,因此,我们将区域2、3、6、7、10、11、14、15作为新的统计特征,表4为筛选后的统计特征值。图42区域密度柱状图表4筛选后统计特征值区域密度数0数1数2数3数4数5数6数7数8数9区域23.402.9233.80.333.82.7区域34.23.73.22.41.60.93.53.74.23.6区域63.11.802.23.94.4303.11.7区域72.622.32.332.51.13.64.43.5区域102.13.40.714.13.63.40.33.40.1区域113.40.13.74.33.30.43.63.23.62.8区域144.73.94.23.22.93.84.22.34.91.6区域15203.42.10.31.22.40.83.11.45.2手写数字识别5.2.1 BP神经网络设计本文选取BP神经网络模型进行识别。BP神经网络模型一般包括输入层、隐含层和输出层三层结构。在选定神经网络模型后,要得到BP神经网络的每层节点数。 首先,确定BP神经网络的输入层的节点数。在上节本文分别提取了8个结构特征,16个统计特征,共计24个特征值。因此,输入层节点数为24。然后,确定输出层节点数。输出结果为 0~9 十个数中的某一个,采用ASCII码编码方式,很容易得知,用四位二进制数就可以全部表示。因此,输出层节点数为4,数字0~9的目标向量如表5所示。隐藏层节点数由公式,计算所得n为14 。表5 数字0~9的目标向量数字00.010.010.010.01数字10.010.010.010.99数字20.010.010.990.01数字30.010.010.990.99数字40.010.990.010.01数字50.010.990.010.99数字60.010.990.990.01数字70.010.990.990.99数字80.990.010.010.01数字90.990.010.010.99在设定好BP神经网络的各层节点数后,要确定传递和训练函数以及网络训练的各参数。本文第二层传递函数选用S型传递函数,第三层选用线性传递函数。训练函数采用梯度下降训练函数,训练次数为25000,训练误差为0.001.5.2.2 BP神经网络识别结果分析在上节中分别提取了8个结构特征、16个统计特征及筛选后8个统计特征,本节分别把8个结构特征及16个统计特征、8个结构特征及8个筛选后的统计特征输入BP网络进行训练,表6为改进前后的训练时间对比表,然后将训练的结果分别保存在.mat文件中,最后应用训练结果分别对各个数字进行识别,表7为改进前各个数字的识别率,8为改进后各个数字的识别率。表6改进前后训练时间统计表输入样本数训练时长输入样本数训练时长输入24个特征2001.31min4001.47min输入16个特征2000.45min4000.58min表7输入24个特征识别结果统计输入样本数识别样本数识别率数字020190.95数字120160.8数字220170.85数字320180.9数字420170.85数字520160.8数字620180.9数字720160.8数字820170.85数字920190.95表8输入16个特征识别结果统计输入样本数识别样本数识别率数字020180.9数字120150.75数字220160.8数字320160.8数字420150.75数字520150.75数字620160.8数字720140.7数字820150.75数字920170.85根据上述表格,可以看出输入全部特征与输入筛选后的特征相比较,改进前与改进后相比较而言训练时间明显要长,但是改进前识别率要普遍高于改进后的识别率,因此,改进前后各有所长,在样本数量不是很多,且要求识别率的情况下,采用改进前的方法效果更好;在样本足够多,识别来要求并不严格的情况下采用改进后的方法更加省时。由于表格识别中对字符识别率要准确,因此,本文保留了改进前的方法。6系统实现与结果及分析6.1系统实现本文针对表格识别中的相关算法进行研究,基于Matlab平台实现了基于图像处理的平时成绩单自动识别系统。本系统在处理器为2.5Hz,内存8.0GB的64位windows操作系统中运行。测试中选用采集的表格样本进行实验,选用了500张手写数字图片作为分类器的训练样本,选取了10张表格图像作为样本,确定了参数范围,又选用了60张表格图像作为测试样本。系统先表格图像进行了预处理,即先对图像二值化,如图44所示,再对二值图像进行倾斜矫正,系统选取了Hough变换对表格进行倾斜矫正,如图43所示,然后系统将倾斜矫正后的图像送入字符提取模块,在字符提取模块中首先分别用Hough变换和数学形态学方法提取表格线进行比较,系统选取了提取更准确的数学形态学提取表格线的方法,结果如图45所示,接下来利用得到的表格框架图片去除了二值图像中的表格边框,如图46所示,之后根据横线和竖线的坐标提取单元格,并用扫描法和八邻域内轮廓法对其进行改进,经过比较选择了改良效果更好的八邻域内轮廓法来提取单元格,并用断痕修复法修复断裂字符图像,如图47所示,在提取到字符图像后,再对字符图像进行了扫描分割和投影分割,在选择了分割效果更好的投影分割后又对其进行了改进,然后将分割好的图像进行归一化、图像细化等处理,最后提取细化后的数字图片的结构特征和统计特征并识别,将识别结果存入excel表中,如图48所示。   图43图像倾斜矫正 图44图像二值化  图45 提取表格线 图46 去除表格线  图47 断痕修复 图48 导入excel表6.2结果分析系统选用了60张表格样本进行测试,每张表格样本含有20个数字。其中用10张表格样本来测试每个数字的识别率;用22张只含有单位数的表格测试单位数表格识别率,其中表格数据未超出表格边框的图片和表格数据超出边框的图片各占一半;用20张只含有双位数的表格样本测试双位数表格识别率,其中表格数据未超出表格边框的图片和表格数据超出边框的图片各占一半;用8张既含有单位数又含有双位数的表格图像测试表格识别率。可以看出,单位数表识别率最高,单双位数表识别率最低,各类表格识别率如表9所示。表9表格识别率统计表输入样本数平均识别率单位数表110.865单位数表(越出边框)110.85双位数表100.81双位数表(越出边框)100.79单双位表(越出边框)80.785平时成绩单自动识别系统主要基于表格样本进行测试实验,在实际应用中还有诸多不足有待继续改进对识别的表格数据仅限于数字,不能识别出表格中的其他字符系统虽然可以识别出双位数,并可以成功分割出连笔的双位数,但对于紧紧粘连在一起的两个字符分割效果差系统可以识别的表格样式仅限于平时成绩单的基本样式,不能识别其他复杂的表格样式。致谢参考文献谢志钢. 面向增值税发票的图像自动处理技术研究[D]. 上海: 上海交通大学, 2015.焦圣喜, 刘鲁生, 张彬. 粘连字符切分算法综述[J]. 工程技术: 全文版, 2016(2):00288.李艳霞, 孙羽菲, 张玉志. 受限表格识别系统的研究[J]. 计算机工程与应用, 2006, 42(31): 161-163.Wolberg G. Digital Image Warping[M]// Digital image warping /. IEEE Computer Society Press, 1994.Freeman H. Handbook of Counseling Techniques Edited by Ernest Harms and Paul Schreiber[J]. International Journal of Group Psychotherapy, 1965(1): 0020-0024.Shinjo H, Hadano E, Marukawa K, et al. A Recursive Analysis for Form Cell Recognition[C]// International Conference on Document Analysis and Recognition, 2001. Proceedings. IEEE Xplore, 2001:694-698.Pirlo G, Impedovo S, Dimauro G, et al. Segmentation of numeric strings[C]// International Conference on Document Analysis and Recognition. IEEE Computer Society, 1995:1038.王绪. 文本图像处理与表格图像识别算法研究[D]. 郑州: 解放军信息工程大学, 2010.陈优广. 边界跟踪、区域填充及链码的应用研究[D]. 上海: 华东师范大学, 2006.司明. 表格识别的研究[D]. 西安: 西安科技大学, 2009.何柳. 表单识别中的关键问题研究[D]. 沈阳: 沈阳工业大学, 2016.周壮. 表格识别系统中框线检测与去除的算法研究[D]. 鞍山: 辽宁科技大学, 2015.刘昱. 印刷体表格识别的研究[D]. 哈尔滨: 哈尔滨工程大学, 2013.潘小燕, 孙承杰, 刘远超,等. 半结构化文本中的表格识别技术研究[J]. 微计算机信息, 2008, 24(18): 198-199. 谢亮. 表格识别预处理技术与表格字符提取算法的研究[D]. 广州: 中山大学, 2005.史燕, 吕永战, 张帆. 车牌识别中的二值化及快速倾斜校正算法[J]. 现代电子技术, 2009, 32(5): 149-152.
目录
摘要 1
关键字 1
Abstract. 1
Key words 1
1课题背景 1
1.1研究意义 1
1.2国内外研究现状 2
1.2.1国外研究现状 2
1.2.2国内研究现状 2
1.3研究目的与内容 2
1.3.1研究目的 3
1.3.2研究内容 3
2系统设计与实现 3
2.1系统简介 3
3图像预处理 4
3.1图像二值化 5
3.2图像倾斜矫正 5
4表格字符定位与提取 6
4.1概述 6
4.2表格线提取方法 7
4.2.1用Hough变换检测直线 7
4.2.2基于数学形态学提取表格线的方法 8
4.3表格字符定位与提取 9
4.3.1坐标法定位单元格 9
4.3.2定位含有越出字符的单元格 10
4.3.3断痕修复 14
4.4字符图像预处理 17
4.4.1数字分割 18
4.4.2数字归一化 21
4.4.3数字细化 21
5基于BP神经网络的手写数字识别 22
5.1手写数字的特征提取 22
5.2手写数字识别 24
5.2.1 BP神经网络设计 24
5.2.2 BP神经网络识别结果分析 25
6系统实现与结果及分析 26
6.1系统实现 26
6.2结果分析 27
致谢 28
参考文献 28
基于图像处理的平时成绩单自动识别系统研究与实现
引言

原文链接:http://www.jxszl.com/jsj/jsjkxyjs/56497.html