【MATLAB图像处理实用案例详解(6)】—— 基于特征匹配的英文印刷字符识别

一、背景意义

在日常学习和生活中,人眼是人们接收信息最常用的通道之一。据统计,人们日常处理的信息有75%~ 85%属于视觉信息范畴,文字信息则占据着重要的位置,几乎涵盖了人类生活的方面面。如对各种报纸期刊的阅读、查找、批注;对各种文档报表的填写、修订;对各种快递文件的分拣、传送、签收等。因此,为了实现文字信息解析过程的智能化、自动化,就需要借助计算机图像处理来对这些文字信息进行识别。
早在20世纪50年代初期,欧美就开始对文字识别技术进行研究。特别是1955年印刷体数字OCR产品的出现,推动了英文和数字识别技术的发展。美国IBM公司的Casey和Nagy最早开始了对汉字识别的研究,并于1966年发表了第一篇关于汉字识别的论文, 采用模板匹配法识别1000个印刷体汉字,从此在世界范围内拉开了汉字识别研究的序幕。日本于20世纪70年代中期开始进
行手写体汉字识别的研究,我国于20世纪80年代初期开始进行手写体汉字识别的研究。
本案例重点研究印刷体图像的灰度转换、中值滤波、二值化处理、形态学滤波、图像与字符分割等算法,形成一套效果明显、简便易行的印刷体字符图像识别算法。在印刷体字符的识别过程中,采用字符的归一化和细化处理方法,通过二值化和字体类型特征相结合的处理方式完成特征提取,并建立字符标准特征库,运用合理的模板匹配算法实现对印刷体字符的识别。

二、理论基础

2.1 图像预处理

为了加快图像识别等模块的处理速度,我们需要将彩色图像转换为灰度图像,减少图像矩阵占用的内存空间。由彩色图像转换为灰度图像的过程叫作灰度化处理,灰度图像就是只有亮度信息而没有颜色信息的图像,且存储灰度图像只需要一个数据矩阵,矩阵中的每个元索都表示对应位置像素的灰度值。
通过拍摄、扫描等方式采集印刷体图像可能会受局部区域模糊、对比度偏低等因索的影响,而图像增强可应用于对图像对比度的调整,可突出图像的重要细节,改善视觉质量。 因此, 采用图像灰度变换等方法可有效地增强图像对比度,提高图像中字符的清晰度,突出不同区域的差异性。对比度增强是典型的空域图像增强算法,这种处理只是逐点修改原印刷体图像中每个像素的灰度值,不会改变图像中各像素的位置,在输入像素与输出像素之间是一对一的映射关系。
二值图像是指在图像数值矩阵中只保留0、1数值来代表黑、白两种颜色。在实际的印刷体图像处理实验中,选择合适的阈值是进行图像二值变换的关键步骤,二值化能分割字符与背景,突出字符目标。对于印刷体图像而言,其二值变换的输出必须具备良好的保形性,不会改变有用的形状信息,也不会产生额外的孔洞等噪声。其中,二值化的阈值选取有很多方法,主要分为三类:全局阀值法、局部阈值法和动态阙值法,本案例结合印刷体字符图像的特点,采用全局阈值进行二值化处理。
印刷体图像可能在扫描或者传输过程中受到噪声干扰,为了提高识别模块的准确率,我们通常采用平滑滤波的方法进行去噪,如中值滤波、均值滤波。在本案例中,我们通过对字符图像的特征分析,采用二值化图像的形态学变换滤波进行去噪处理,保留有用的字符区域图像,消除杂点、标点符号等干扰。
在经扫描得到的印刷体图像中,不同位置的字符类型或大小可能也存在较大差异,为了提高字符识别效率,需要将字符统一大小来得到标准的字符图像,这就是字符的标准化过程。为了将原本各不相同的字符统一大小来, 我们可以在实验过程中先统一高度,然后根据原始字符的宽高比例米调整字符的宽度,得到标准字符。
此外,对输入的印刷体字符图像可能儒要进行倾斜校正,使得同属一行的字符也都处于同一水平位置,这样既有利于字符的分割,也可以提高字符识别的准确率。倾斜校正主要根据图像左右两边的黑色像素做积分投影所得到的平均高度进行,字符组成的图像的左右两边的字符像素高度一般处于水平位置附近,如果两边的字符像素经积分投影得到的平均位置有较大差异,则说明图像存在倾斜,需要进行校正。

2.2 图像识别技术

字符识别是印刷字符图仪识别的核心步骤,主要包括以下内容:
首先,识别模块学习、存储将要判别的字符特征,将这些特征汇总成识别系统的先验知识;
然后,选择合适的判别准则来基于先验知识对输入的字符进行研判;
最后,存储字符的识别结果并输出。
在实验过程中,字符的特征具有不同的来源,如空间域的点阵位置信息,在频域空间、小波空间等领域也都有各自的特征,而且不同的特征在识别字符时具有各自的特点及优势。根据字符识别模块所选择特征类型的不同,可以将其分为不同的识别技术。在一般情况下,根据所采用的技术策略,字符识别可以分为:统计特征字符识别技术、结构特征字符识别技术和基于机器学习的识别技术

2.2.1 统计特征字符识别技术

统计特征识别技术一般选择同类字符所共有的相对稳定且具有良好分类性的统计特征作为特征向量。统计特征常用的有字符所处二维空间的位置特征、字符所处水平或者垂直方向的投影直方图特征、字符区域矩特征、字符纹理特征或经过频域等变换后的特征。统计特征字体识别技术通过对大量字符的统计特征进行提取、学习、训练形成字符先验知识,构成字符库的模
板信息,并将其存储到识别模块。待识别图像在输入后首先提取相同的统计特征向量,然后与在识别模块中存储的字符先验知识根据指定的匹配程度算法进行比较,最后根据比较结果确定字符的最终类别,实现识别的目的。其中,匹配程度算法通常采用向量间的距离计算,如欧式距离、绝对值距离、汉明距离等,为了便于后续的模式判别,可以将这些距离作为输入进行归
一化,进而得到归一化的匹配程度。
在实际应用中,基于字符像素点平面分布的识别算法是最常用的匹配方法之一,具有简捷高效、易于实现的优点。该算法首先将字符图像归一化为标准
的维数大小,然后根据像索点的位置进行扫描匹配,最后计算模板和图像的某种距离值。但是,算法要对每个像素点都进行扫描、匹配,可能会造成算法实现计算量大,且对噪声、字符畸变等因素较为敏感,因此对待识别图像的质量要求较高。

2.2.2 结构特征字符识别技术

在现实生活中,人们往往更关心相近字符识别和手写体字符识别等功能,一般具有字体不同、场景多变的特点,因此结构特征字符识别技术应运而生。该技术以字符结构特征作为处理对象,可根据识别策略的不同选择不同的结构,具有灵活多变的优点。在实际应用中,可以选择字根、笔画、细微笔段等特征,这些特征一般被称作字符的子模式、 组件、基元,将所有基元按照某种顺序排列、存储就形成了字符的结构特征。因此,基于结构的字符识别实际上是将字符在基元组成的结构空间中进行映射,然后进行识刚。其中,识别过程一般是在基元组成的结构空间上利用建模语言和自动机理论,采取语法分析、图匹配、树匹配和知识相理等方法分析字符结构的过程。该技术常用的结构特征有:笔画走向、孤立点、闭合笔画等,如果被应用于汉字识别,则可结合汉字自身明显的结构性,利用汉字的结构特点进行识别,也可以达到较好的效果。传统的识别力法一般对输入的图像采取统一分辨率变换处理,其分辨率的大小取决于算法的复杂度和资源存储条件,往往会造成系统资源的浪费和识别效率的降低。

2.2.3 基于机器学习的识别技术

人类对文字的识别能力远远胜过计算机,以常见的验证码为例,无论是对字符进行变形、模糊,还是损坏部分区域,人类都能很好地识别。基于机器学习的字符识别技术力图通过对人脑学习相识别的模拟来实现对字符的高效识别。经过近几年的迅速发展,机器学习在字符识别方面得到了广泛应用。特别是在OCR系统中,机器学习已经得到了更充分的应用。通过将字符的特征向量作为输入,机器学习模块输出的是字符的分类结果,即识别结果。在实际应用中,如果只是进行字符图像处理和识别流程,则得到的特征向量可能包含某些冗余甚至矛盾的信息,往往需要进一步优化和处理。机器学习模块经过反复训练,可以智能地优化特征向量,去除冗余、矛盾的信息,突出类之间的差异。同时,借助机器学习成熟的架构模式及运行结构,可以应用并行计算到运行过程中,所以可以加快大规模问题的求解速度。

三、效果演示

本案例为读取某印刷版本的英文文章图片,通过行分割、列分割进行单词定位。然后与标准的英文字符做对比来进行英文字符的识别。特别是可关联Figure窗口的鼠标移动事件,实时显示识别的效果。
原始待识别图像如下:
在这里插入图片描述
运行程序后,将生成的标准的英文字符模板,并关联窗口的鼠标移动事件,通过自动对比来识别英文字符,识别图像如下:
在这里插入图片描述
最后,为了能够进行提取字符图像,通过Figure窗口绘制text标签,再循环进行截图、存储,存储后结果放置在pic文件夹下:
在这里插入图片描述

四、完整代码

如果需要源代码,可以参考资源:
基于特征匹配的英文印刷字符识别(带GUI界面)https://download.csdn.net/download/didi_ya/87374432
,如果遇到任何运行问题,请私信博主,看到后会免费答疑解惑,当然也可根据你的需求修改GUI界面。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

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

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

打赏作者

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

抵扣说明:

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

余额充值