数字字符识别系统的总体设计框架如图所示,主要包含四大部分:图像采集模块、SDRAM存储模块、图像处理模块、VGA显示模块。首先图像采集模块通过配置摄像头OV7725来进行图像数据的采集,输出RGB565格式的彩色图像数据。接下来将采集到的数据存储到SDRAM存储模块中,进行数据的存储,再通过VGA的显示控制端读出数据进行一系列的图像处理操作,为最后更好的进行数字识别奠定基础。
其中图像处理模块的整体设计框图如图所示,分别为灰度化模块、图像去噪模块、二值化模块、字符分割模块、数字识别模块、识别结果显示模块。图像灰度化模块是先将摄像头采集到的图像数据转化为灰度图像数据,图像去噪模块是对图像数据进行去噪处理,减少图像噪声对后期识别结果的影响,图像二值化模块是将滤波后的数据变成二值化数据,不仅减少了数据量便于处理,而且将数字信息与背景信息区别开,便于后期的字符分割处理。字符分割模块是通过本系统选定的基于投影的字符分割算法进行字符分割处理,将分割后的单个数字字符的边界信息输送给字符识别模块,该模块使用基于字符特征分析的算法进行数字字符的识别,将识别结果传递给模块,读出与识别结果对应的ROM中存储的数字字模信息,显示到VGA显示屏上。以下是对其中的图像去噪模块、字符分割模块、字符识别模块的设计描述。
因为图像采集与处理过程中会产生噪声,降低图像的质量,对后期的处理结果会产生影响,所以要进行图像去噪处理,本系统采用均值滤波的方法对图像去噪。本模块内部设计如图所示。
本系统所实现的功能为自动检测数字字符位数,并且对这些数字字符进行识别。所以在进行数字字符识别前,必须先对字符进行分割处理,将多位字符分割为单独的字符,并把每个字符的边界位置信息传输给数字识别模块进行识别。本模块内部设计如图所示,由地址扫描模块、地址存储模块、位数检测模块三个子模块组成。
地址扫描模块的作用是通过行列扫描的方式,扫描出一帧图像中所有像素的像素点值的布局情况。地址存储模块就是定义两个RAM存储地址扫描模块的像素点位置信息,先对其进行初始化,内部均存储0,当地址扫描模块扫描到,某个像素的像素值为1时,分别将行场地址信息传递给地址存储模块进行存储,存储为1。位数检测模块便是读取出地址存储模块的数据,用边沿检测的方法进行位数的判断和分割位置的判断。
字符识别模块便是将前期经过处理和分割的图像数据进行识别,判断出所采集到图像中的字符。字符识别模块内部由边沿计算模块和识别模块组成,如图所示。本系统所采用的是基于字符特征分析的识别算法对数字字符进行识别,因此先要根据字符模块输出的每个字符的边界位置信息确定出三条直线,在根据交点数量以及交点位置进行识别结果的判断。
由摄像头采集到的图像信息中有对系统有用及一些需要进行识别的信息,但也有些无效信息,甚至这些无效信息可能还会对我们识别的结果产生干扰。因此在进行数字识别之前,需要对图像做些处理,处理后不仅可以更好的提取所需要的信息便于识别,也能减小无用信息对图像识别的扰乱,增加系统识别准确率。图像处理流程如图所示。
图像灰度化处理
彩色图像是指每个像素由R、G、B分量构成的图像,其中R、G、B是由不同的灰度级来描述的。但这种图像在实际情况中并没有呈现出图像的特征,仅仅是视觉上颜色的混合。在处理这种图像格式时,因其每个像素都有三个分量且代表意义不同,故不能统一处理,而要分开来处理,但这会浪费大量的时间以及资源。因而,可以采取降维的方法来对其灰度化处理,这样可以提高系统运行效率以及节省硬件资源。当彩色图像三种分量的值相等时,图像将变成灰色。
加权平均法
彩色图像中R、G、B三分量分别代表红色、绿色、蓝色的亮度值,而人眼对这三种颜色的敏感度是不同的,其中绿色的敏感度最高,红色次之,蓝色的敏感度最低。因此,对这三个分量要以不同的权值进行加权平均得到较合理的灰度图像
在系统采集数字图像数据以及对这些图像数据处理的过程中将存在一些噪声,噪声会对图像处理结果产生影响,而减少这些噪声存在的处理便叫做图像去噪。这些与我们需要信息无关的噪声,是图像数据中无用的信息,它的存在会对系统采集到的图像数据产生影响,并且会对我们后续的处理产生很多的干扰,以及影响系统识别数字时的准确率,所以需要对图像去噪,减少噪声的影响。图像去噪后能提升图像质量,更清楚的呈现出图像中原有的有用信息而减小无用的干扰信息,改善由于噪声干扰致使图像有用信息被覆盖、质量下降的问题。
本设计利用均值滤波法对图像数据展开图像去噪,该方式为线性滤波算法。先对图像中的像素构建模板,而后对模板中的像素展开处理,即求平均值,最后将得到的平均值赋给原来的像素值。即对图中的P11、P12、P13、P21、P23、P31、P32、P33像素求平均值,用求得的平均值替代红色方块处的像素值。
图像经由二值化处理,为后期的数字字符进行分割及获得数字的特征奠定了重要基础[13]。经过这样的处理,图像显示结果将会出现泾渭分明的黑白色彩,常常用于图像的分割、图像的识别等领域。经处理后的图像数据明显得到减少、处理起来更为简单,可以更方便的进行运算,并且更容易获取目标显示区域的几何特征。根据本系统的需求,图像经过二值化处理后,可以提高运算速率以及节省资源,并且最大限度的将我们感兴趣的图像信息保存起来,便于后期进行处理。
对摄像头所采集到的图像信息去噪声后,还要经过处理,才能将需要识别的有效信息与无效信息区分开,便于进行后期的数字识别。而设定一个阈值T后,将所有采集到的像素点的灰度值与T相比较后,便可以将所有的像素点划分为两部分。这样便能成功的将有效信息从无效信息中提取出来。
本设计是检测及识别多位的数字字符,所以采集到的图像中将会同时存在多位数字,直接进行识别是行不通的,因此先要使用字符分割算法处理,将其分为独立的单个字符图像。一般有基于投影的字符分割、基于聚类分析的字符分割、基于模板匹配的字符分割这三类字符分割算法
使用此方法的前提是图像为二值化图像,根据二值化处理后图像的特性,可以将需要识别的数字与背景区分出来,而后对图像在垂直及水平方向上投影,并且投影后将重叠的像素的灰度值全部相加。而经过二值化处理后,字符之间像素灰度值0,因此该位置处累加的像素灰度值为0,此位置即为需要进行分割的位置。
数字特征分析法是先对数字的结构、形状等特征展开提取,然后对提取到的特征进行分析和统计,来达到识别的目的。在该算法中,如何更好的选取哪种特征来进行识别的基础是非常重要的,一般选取原则是特征容易提取、可以明显区分所有的数字、数字特征不会受到尺寸大小不同而产生影响等。数字特征获取有两种方法:第一种为统计数字字符的长度、宽度、折点等,即对数字字符的结构特征进行提取。第二种为统计字符的像素点数、穿越次数等,即对数字字符的统计特征进行提取。
在本设计中经过一系列的比较分析,将采用提取数字字符的统计特征的方法来识别图像中的数字。即在所识别数字上画两横一竖的三条线,第一条横线位于高度的2/5,第二条横线位于高度2/3处,竖线位于宽度的1/2,接下来对这三条线与数字的交点个数及交点位置进行统计和分析,达到区分出不同数字的目的。以数字7”为例,穿越特征示意图如图所示。
表为对所有数字与三条交线的交点数统计。
本设计基于QuartusII开发,需要本设计的整个工程的朋友,关注我的订阅号 硅农 后台回复 视频图像处理,即可获得工程的下载方式。喜欢这篇文章就点击在看和文末小广告哦!!!
关注我们的小程序,提升自己的设计技能!
硬件工程师的设计帮手
精英工程师的技能提升平台