您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 基于CNN的光学字符识别算法研究
《机器视觉》研究生课程论文题目:基于CNN的数字光学字符识别姓名向灿群学号2015112011院别信息与通信工程班级信息XY15-1指导教师郭龙源完成时间2016年6月21日1.引言自从1929年Tausheck取得光学字符识别(OpticalCharaterRecognition)专利以来[1],经过近一个世纪的发展,OCR已经成为当今模式识别领域中最活跃的研究内容之一。它综合了数字图像处理、计算机图形学和人工智能等多方面的知识,并在计算机及其相关领域中得到了广泛应用。OCR在人机交互中实际充当了人机界面的作用。目前,以Windows和鼠标为主的图形用户界面虽然给用户使用计算机带来了很大的便利,但其实质与命令行时代相比并没有本质变化。随着信息化程度不断加深,传统界面日益成为数据交流的“瓶颈”。OCR由于更容易被人们接受、掌握,近几年来,它同语音识别、行为识别等一起日益成为人们研究的焦点。IBM、Motorola、HP和Microsoft等公司都陆续展开了这方面的研究[2]。微软公司最新推出的办公套件—MicrosoftOfficeXP中,不仅加强了原有对手写输入的支持,还新增加了光学字符识别(OCR)的工具组件。字符识别产品的广泛应用推动了模式识别等相关理论的发展,促进了计算机应用的普及。经过几十年的发展,现在OCR技术取得了很多进展。无论是国内和国外都有了相对成熟的OCR的产品。传统的OCR产品主要解决文字自动录入的问题,现代的OCR产品实际上已经成为了沟通现实世界和计算机世界的一座桥梁[3,4]。在对现有识别技术进行分类的基础上,本文提出了基于CNN的光学字符识别算法,与传统识别技术相比识别率具有很大的改进。2.图片预处理计算机视觉处理采集到的二维字符图像的大体流程如下:图1光学字符处理流程如上面流程所示,场景通过光学成像系统和数字采集系统转化为数字图像。其中,光学成像系统包括光学镜头(常规光学镜头与自聚焦透镜阵列镜头)和图像传感芯片(CMOS、CCD);数字采集系统主要包括数字式图像采集卡。数字图像通过图像处理算法的定位并截取出感兴趣区域(regionofinterest,ROI);在感兴趣区域基础上,根据具体任务要求,继续分割字符模块提取出相关结构特征;最后,通过模式匹配算法识别与描述,完成光学字符识别中图像处理任务。2.1图像灰度化一般我们从摄像机获取的图像都是RGB图像,也就是彩色图像。但是RGB图像中具有很多不同颜色的信息,这样直接进行车牌定位的话会占用较多的系统资源,导致图像处理效率低,而且彩色图使得设计车牌定位的算法比较复杂,所以在整个系统中彩色图像中的很多信息都是我们不需要的,所以我们首先要将彩色图像进行灰度转换,只保留彩色图像的亮度信息[5]。RGB图像其实可以看成是3种灰度图像叠加而成,即彩色图像每个像素的颜色字符图像预处理定位与切割字符识别由三个分量来决定(三原色调色),事实上RGB图像的存储就是由三个矩阵构成的。R,G,B均在[0,255]中取值,然后按一定比例取值相加,最后生成的灰度图像值也应在[0,255]内。图像灰度化的过程,即是由R,G,B三个分量转化为一个量的过程。通俗的讲就是对图像的RGB三个分量进行加权得到最后的灰度值。其加权系数一般是按照人眼对颜色的敏感度来取值的,通常三种颜色中人眼敏感度最高的是绿色,敏感度最低的是蓝色,所以一般将绿色的分量分配较大的值,而对蓝色分配较小的值。本文使用加权平均法灰度化图像,计算公式如式(1)。𝐺𝑟𝑎𝑦=0.3𝑅+0.59𝐺+0.11𝐵(1)灰度化后图像如图2所示。图2灰度图图2灰度图2.2二值化尽管将图像进行灰度化后比彩色图像减少了大量的计算量,但是灰度化的图像仍然存在大量的干扰信息,若需要更加迅速和准确从图片中分离出字符,那就必须想办法尽量减少这些干扰信息,而图像的二值化便可以达到所要求的效果。一般灰度图像的灰度值在[0,255]之间,而二值化图像的灰度取值为[0,1],也就是最简单的黑白图像。一般用T来表示二值化过程中的阀值,设定阀值后,当进行二值化时灰度图像的灰度值小于这个阀值则置为0,当灰度值大于该阀值时置为1。令原始灰度图像为(,)fxy,其二值化公式为:(2)灰度图像二值化的方法主要分为两种,即全局固定阀值和局部自适应阀值。全局固定阀值法是指对于整个灰度图的二值化只设定一个阀值T,以此阀值为基准二值化,使用这种方法比较简单。局部自适应阀值则是根据像素的领域块的像素值分布来确定该像素位置上的二值化阀值,这样做的优点是每个像素位置处的二值化阀值不是固定不变的,而是周围领域像0,(,)g(,)255,(,)fxyTxyfxyT素的分布情况来却定的,亮度较高的区域阀值设置的相对较高,亮度较低的区域阀值设置相对较低。通过对灰度图像的二值化可以很轻松将背景和目标区域区分开来,减小背景对字符处理过程的干扰。二值化后图像如图3所示。图3二值化图由二值化图可以清楚的发现右下角具有很多的噪声,对字符的切割等后续操作具有相当大的干扰,接下的的操作就是去除噪声。2.3去噪经过图像灰度化二值化后,字符图像中还存在着一些噪声,这会影响到字符图像特征的提取与字符识别,所以,我们要进行去除噪声处理。我们可以把噪声分成两类:第一类是图像中会拥有的一些小像素[6,7]。对于这种噪声,可以使用灰度累加的方法进行去除,算法如下:(1)由于图像已经二值化,对每一列各像素的灰度值进行累加,因此,像素的灰度值中只有1和0两种值。设图像为M*N的矩阵。G(𝑖)=∑∫(𝑗,𝑖)𝑀𝑗=1𝑖=1,2,⋯,(3)(2)判断G(i)的值。如果G(i)=1,2,则∫(𝑗,𝑖)=0𝑗=1,2,⋯𝑚(4)否则,f(j,i)保持不变。第二类噪声[9]是图像中一些小面积的噪声,对于这类噪声,我们使用连通区域的方法消除。首先,我们引入了连接区域的概念。如果两个像素的图像在垂直方向或水平方向相邻,它被称为一个强大的相邻像素。如果相邻的是对角线方向,它被称为弱相邻像素。如果某些像素的相邻像素之间存在,也有弱相邻的像素,然后可以简单地调用邻接像素。图像去噪后图像如图4所示。图4图像去噪3.字符定位与切割本文采用投影法对字符进行定位切割。首先通过对预处理后图像进行垂直投影,得到垂直投影图,将每个坐标的投影值保存在一个一维数组里,数组的下标对应投影图的横坐标;然后开始从左往右检测每一个数组值,直到出现第一个数值不为零,那么就把这个下标对应的坐标值上的像素点作为第一个字符区域的左侧边界;然后接着往下检查,直到检测到第一个值为零的下标,那么就把这个下标对应的坐标值上的像素点作为第一个字符区域的右侧边界。然后以此类推,通过这样的方法就能够查找出剩下所有字符区域的左右边界。经过横纵投影定位后,字符定位图像如图5所示。图5字符区域定位切割后图像如图6所示。图6字符切割如图6所示,切割后的图像已经经过了归一化处理,为了符合后文CNN输入要求,每个字符设置成28×28大小,并且每个像素的取值为[0,255]之间的灰度图。4.基于CNN的字符识别卷积神经网络[8](ConvolutionalNeuralNetwork,CNN)是第一个被成功训练的多层神经网络结构,具有较强的容错、自学习以及并行处理能力。卷积神经网络可以看作为前馈网络的特例,主要在网络结构上对前馈网络进行简化和改进,从理论上讲,反向传播算法可以用于训练卷积神经网络[9]。4.1CNN训练原理卷积神经网络属于前馈网络的一种特例,训练方式是以反向传播算法为基础,在传统的反向传播算法上做优化,从而高效的训练卷积神经网络。卷积神经网络的全链接层与普通前馈网络一样,具有相同的参数传播方式[10,11]。而在卷积层与抽样层,由于引入了权值共享以及降维等特性,需做算法优化。(1)卷积层卷积层的输入为前一层网络的多个二维矩阵,卷积层将输入矩阵与可训练的卷积核进行卷积,然后通过激活函数作用生成多个输出二维特征图,如式(5)。𝑎𝑗𝑙=𝜋(∑𝑎𝑖𝑙−1∗𝑘𝑖𝑗𝑙+𝑏𝑗𝑙𝑖∈𝑀𝑗𝑙)(5)式中π(∙)为激活函数,本文激活函数是sigmoid函数;𝑀𝑗𝑙表示第l层的第j个输出特征图所对应的输入矩阵的索引;𝑎𝑗𝑙表示第l层的第j个输出;“*”表示卷积操作;𝑘𝑖𝑗𝑙表示第l层的第j个输出对应的索引中的第i个索引所对应的卷积核;𝑏𝑗𝑙表示第l层第j个输出的偏置项。在卷积层误差反馈传播时,由于l层特征图与l+1层特征图大小不同(每个特征图对应一个灵敏度图),反向传播时,为得到与l层特征图相同大小的灵敏度图需先对l+1层灵敏度图进行反卷积,再将反卷积结果与l层激活值的导数做点积,即可得到l层的灵敏度图,当l+1层是抽样层时,运算过程如式(2)。𝛿𝑗𝑙=𝛽𝑗𝑙+1(𝜎′(𝑢𝑗𝑙)∙𝑢𝑝(𝛿𝑗𝑙+1))(6)式(6)中𝛽为下采样因子,是一个常数;𝑢𝑝(∙)为下采样的反操作,若下采样因子是n的话,反操作即将每个像素在垂直和水平方向上重复n次。当l+1层是卷积层时,运算过程如式(3)。δjl=σ′(ujl)∙𝑐𝑜𝑛𝑣(δjl+1,rot180(kjl+1),′𝑓𝑢𝑙𝑙′)(7)式(7)中𝑐𝑜𝑛𝑣(∙)表示卷积运算,运算方式为′𝑓𝑢𝑙𝑙′型;𝑟𝑜𝑡180(∙)表示将括号内的矩阵旋转180度。求得l层的灵敏度图后,再根据误差反馈传播算法,可以求得训练误差相对于连接权重(及卷积核的权值)的梯度,以及训练误差关于偏置的梯度。由于大部分的连接权值是共享的,因此对于l层给定的一个权重,需要对所有与该权值有联系的连接求梯度,再将梯度求和,该运算过程如式(8)(9)。𝜕𝐸𝜕𝑘𝑖𝑗𝑙=∑(𝛿𝑗𝑙)𝑢𝑣(𝑚𝑎𝑝𝑖𝑙−1)𝑢𝑣𝑢,𝑣(8)𝜕𝐸𝜕𝑏𝑗=∑(𝛿𝑗𝑙)𝑢𝑣𝑢,𝑣(9)式(8)中𝑚𝑎𝑝𝑖𝑙−1表示𝑎𝑖𝑙−1中与卷积核𝑘𝑖𝑗𝑙做卷积的特征图。(2)抽样层抽样层对每一个输入下采样产生一个特征图,如有N个输入特征图,则会产生N个下采样特征图。抽样层运算过程如式(10)。𝑎𝑗𝑙=𝛽𝑗𝑙𝑑𝑜𝑤𝑛(𝑎𝑗𝑙−1)+𝑏𝑗𝑙(10)式中𝑑𝑜𝑤𝑛(∙)表示下采样函数,该函数对输入图像中n×n的图像块求和得到一个点值,输出图像的长和宽均变为原图的1/n,每个输出都包含一个乘性偏置𝛽和加性偏置b。抽样层的下一层为卷积层,在抽样层的误差反馈传播过层中,抽样层的灵敏度图的计算与卷积层中第二种情况(卷积层的下一层为卷积层)一样,这里不再赘述。抽样层的抽样核为固定值,因此不存在误差相对于训练权值梯度的计算,训练误差相对于加性偏置𝑏𝑗的梯度可以通过对敏感图上的元素进行求和的到,如式(11)。𝜕𝐸𝜕𝑏𝑗=∑(𝛿𝑗𝑙)𝑢𝑣𝑢,𝑣(11)根据卷积神经网络每一层的具体结构特点,选择对应计算公式得到训练误差相对于训练参数的梯度,就可以对网络参数进行更新[12]。4.2实验结果本次实验采用mnist数据集作为训练样本,mninst数据集有60000张图片,图片大小为28×28,图片是由0~9这十个数字的手写体,像素范围在0~255。部分训练样本如图7所示。图7部分训练样本用卷积神经网络对训练样本进行训练,得出的训练误差曲线图如图8所示,当训练次数达到1000次时训练误差趋于0.1。图8训练误差曲线图训练完成后将我们切割的字符作为输入放入测试集,字符识别率85.7%。参考文献[1]MoriS.HistoricalReviewofOCRResearchandDevelopment.ProceedingsofIEEE,1992,80(7):1029-1058[2]清辉.群雄竞手写计.算机世界-市场与渠道版,2000:08-14[3]吕学强,迟呈英.英文光学字符识别的后处理[J].鞍山钢铁学院学报,2002,25(3):1
本文标题:基于CNN的光学字符识别算法研究
链接地址:https://www.777doc.com/doc-4312727 .html