基于BP神经网络的字符识别.doc
《基于BP神经网络的字符识别.doc》由会员分享,可在线阅读,更多相关《基于BP神经网络的字符识别.doc(121页珍藏版)》请在沃文网上搜索。
1、1 系统简介该系统是为了辨认识别图像中的数字而设计的,它通过对图片的一系列处理,最后识别得出图片中显示的数字。系统既可以单独使用,也可以把它作为一个识别系统的软件核心应用到车牌识别等系统中去。2 系统基本技术要求下面是系统具体要达到的基本技术要求(1)输入图片中可以含有多个数字;(2)数字的识别准确率大于90;(3)每张图片的处理时间(识别时间)不能大于1秒;(4)对图片噪声具有较强的适应性;(5)系统要能长时间无故障运行;(6)系统的操作要求简单。3 系统中用到的关键技术在本系统中用到了好多图像处理中的相关技术:比如灰度化、二值化、图像内容自动调整、去离散点、图像的缩放、细化、曲线平滑、曲线
2、去枝桠操作等,最后还使用了神经网络对提取到的数字信息进行分析判断。4 系统软硬件平台4.1 系统的硬件平台因为系统运行的过程当中,主要进行的都是图像处理,在这个过程当中要进行大量的数据处理,所以处理器和内存要求比较高,CPU 要求主频在600hz 以上(含600hz),内存在128 兆以上(含128 兆)。.4.2 系统的软件平台系统可以运行于任何一台装有Windows98 、Windows2000 或者Windows XP 的机子上。程序调试时,需要使用Microsoft Visual C+ 6.0(SP6)。5 系统实现系统在实现的过程当中,先分解成两个大块,就是图像预处理模块和数字识别模
3、块。其中图像像预处理块在对图像进行了一系列变换后把最后提取到的数字字符提交给数字识别模块,然后进行识别并给处结果。在这里用到了很多先进的图像预处理技术及神经网络技术。5.1 系统流程图本系统总的流程结构如图11-1所示。图11-1 系统总流程图其中图像预处理的流程如图11-2 所示。图11-2 图像预处理流程图神经网络数字识别的具体流程如图11-3 所示。图11-3 神经网络数字识别流程图5.2 程序实现整个系统的程序实现分为图像预处理和神经网络识别两大模块。在图像预处理的过程当中,我们采用了许多图像处理的技术,最后把每个数字的特征提取出来。这些技术包括图像数据读取、图像的灰度化、二值化、图像
4、的调整、离散噪声点的去除、字符的切分、图像的缩放、字符的细化、字符的平滑、图像的求梯度等图像处理技术,最后是数字字符特征的提取。其结果再利用神经网络(这里我们选用BP网络)进行字符识别。利用神经网络进行字符识别的过程主要包括网络的训练、数据的读取、字符的判定、结果的输出。下面按照程序执行的顺序介绍整个程序并逐一分析每一步的关键代码。最后简要讲述一下程序的使用方法、注意事项以及本章小结。1. 图像数据的读取、保存与屏幕显示等基本函数要进行图像分析和处理首先就要得到图像的数据,这些数据包括图像的宽、高、每个象素点的颜色值。因为每种文件都有它自己的存放格式,下面简单介绍BMP 文件的存放格式。本程序
5、采用的输入图像即为bmp位图。BMP(bitmap 的缩写)文件格式是Windows 本身可以直接提供读取支持的位图文件格式。一个BMP 格式的文件通常有.BMP 的扩展名,但有一些是以.rle为扩展名的,rle 的意思是行程长度编码(run length encoding)。这样的文件意味着其使用的数据压缩方法是BMP 格式文件支持的两种rle 方法中的一种。BMP 文件可用每象素1、4、8、16 或24 位来编码颜色信息,这个位数称作图像的颜色深度,它决定了图像所含的最大颜色数。一幅1-bpp(位每象素,bit per pixel)的图像只能有两种颜色。而一幅24-bpp 的图像可以有超过
6、16 兆种不同的颜色。一个典型BMP 文件的结构。以256 色也就是8-bpp 为例,文件被分成四个主要的部分:一个位图文件头,一个位图信息头,一个颜色表(又称为色表)和位图数据本身。位图文件头位图文件头包含关于这个文件的信息。如从哪里开始是位图数据的定位信息、文件大小等等。以下是位图文件头结构的定义:typedef struct tagBITMAPFILEHEADER / bmfh WORDbfType;DWORD bfSize;WORDbfReserved1;WORDbfReserved2; DWORD bfOffBits; BITMAPFILEHEADER;其中的bfType值应该是“B
7、M”(0x4d42),标志该文件是位图文件。bfSize的值是位图文件的大小。位图信息头位图信息头包含了单个像素所用字节数以及描述颜色的格式,此外还包括位图的宽度、高度、目标设备的位平面数、图像的压缩格式。以下是位图信息头结构的定义: typedef struct tagBITMAPINFOHEADER / bmih DWORDbiSize; LONG biWidth;LONG biHeight; WORD biPlanes;WORD biBitCountDWORDbiCompression;DWORDbiSizeImage;LONG biXPelsPerMeter;LONG biYPelsP
8、erMeter;DWORDbiClrUsed;DWORDbiClrImportant; BITMAPINFOHEADER; 下面是对结构体当中各个成员的说明:biSize 结构BITMAPINFOHEADER的字节数,即sizeof(BITMAPINFOHEADER)* biWidth 以像素为单位的图像宽度* biHeight 以像素为单位的图像长度* biplanes 目标设备的位平面数 biBitCount 每个像素的位数 biCompression 图像的压缩格式(这个值几乎总是为0) biSizeImage 以字节为单位的图像数据的大小(对BI_RGB压缩方式而言) biXPelsP
9、ermeter 水平方向上的每米的像素个数 biYPelsPerMeter 垂直方向上的每米的像素个数 biClrused 调色板中实际使用的颜色数这个值通常为0,表示使用biBitCount确定的全部颜色,例外是使用的颜色的数目小于制定的颜色深度的颜色数目的最大值。biClrImportant 现实位图时必须的颜色数这个值通常为0,表示所有的颜色都是必需的对于其中的biBitCount,分别有以下意义: 0,用在JPEG格式中 1,单色图,调色板中含有两种颜色,也就是我们通常说的黑白图片4,16色图 8,256色图,通常说的灰度图16,64K图,一般没有调色板,图像数据中每两个字节表示一个像
10、素,5个或6个位表示一个RGB分量 24,16M真彩色图,一般没有调色板,图像数据中每3个字节表示一个像素,每个字节表示一个RGB分量 32,4G真彩色,一般没有调色板,每4个字节表示一个像素,相对24位真彩图而言,加入了一个透明度,即RGBA模式。颜色表颜色表(文中简称色表)一般是针对16位以下的图像而设置的,对于16位和16位以上的图像,由于其位图像素数据中直接对对应像素的RGB(A)颜色进行描述,因而省却了调色板。而对于16位以下的图像,由于其位图像素数据中记录的只是调色板索引值,因而需要根据这个索引到调色板去取得相应的RGB(A)颜色。颜色表的作用就是创建调色板。对显示卡来说,如果它不
11、能一次显示超过256 种颜色,读取和显示BMP 文件的程序能够把这些RGB 值转换到显示卡的调色板来产生准确的颜色。颜色表的颜色表项结构的定义如下: typedef struct tagRGBQUAD / rgbq BYTErgbBlue; BYTErgbGreen; BYTErgbRed; BYTErgbReserved; RGBQUAD;其中需要注意的问题是,RGBQUAD结构中的颜色顺序是BGR,而不是平常的RGB。位图数据BMP 文件的位图数据格式依赖于编码每个象素颜色所用的位数。对于一个256 色的图像来说,每个象素占用文件中位图数据部分的一个字节。象素的值不是RGB 颜色值,而是文
12、件中色表的一个索引。所以在色表中如果第一个R/G/B 值是255/0/0,那么象素值为0 表示它是鲜红色,象素值按从左到右的顺序存储,通常从最后一行开始。所以在一个256 色的文件中,位图数据中第一个字节就是图像左下角的象素的颜色索引,第二个就是它右边的那个象素的颜色索引。如果位图数据中每行的字节数是奇数,就要在每行都加一个附加的字节来调整位图数据边界为16 位的整数倍。并不是所有的BMP 文件结构都像表中所列的那样,例如16 和24-bpp,文件就没有色表,象素值直接表示RGB 值,另外文件私有部分的内部存储格式也是可以变化的。例如,在16和256 色BMP 文件中的位图数据采用rle 算法
13、来压缩,这种算法用颜色加象素个数来取代一串颜色相同的序列,而且,Windows 还支持OS/2 下的BMP 文件,尽管它使用了不同的位图信息头和色表格式。为了减小运算的数据量,本程序使用256色BMP文件作为输入。近年来,一种后缀名为jpg的位图凭借较高的压缩比和不俗的品质,并借助网络的优势而迅速成为图像/图形行业事实上的工业标准。本文没有采用jpg位图,但在这里也简要的介绍一下,以供读者参考。jpg是24位的图像文件格式,也是一种高效率的压缩格式,文件格式是JPEG(联合图像专家组)标准的产物,该标准由ISO与CCI TT(国际电报电话咨询委员会)共同制定,是面向连续色调静止图像的一种压缩标
14、准。其最初目的是使用64Kbps的通信线路传输720576 分辨率压缩后的图像。通过损失极少的分辨率,可以将图像所需存储量减少至原大小的10。由于其高效的压缩效率和标准化要求,目前已广泛用于彩色传真、静止图像、电话会议、印刷及新闻图片的传送上。但那些被删除的资料无法在解压时还原,所以* .jpg文件并不适合放大观看,输出成印刷品时品质也会受到影响。不过,普通用户不必担心,因为*.jpg的压缩算法十分先进,它对图形图像的损失影响不是很大,一幅1 6 M(24位)的*.jpg/*.jpeg图像看上去与照片没有多大差别,非专业人士甚至无法分辨。同样一幅画面,用*.jpg格式储存的文件是其他类型图形文
15、件的1 /101/20。一般情况下,*.jpg文件只有几十KB,而色彩数最高可达到24位,所以它被广泛运用在Internet上,以节约宝贵的网络传输资源。同样,为了在一张光盘上储存更多的图形图像,C D出版商也乐意采用*.jpg格式。目前,网上已经有了很多jpg图像的编解码的算法,限于篇幅,本文就不再赘述。如果要使用jpg格式的图像,那么请先用画图软件如ACDSEE、PHOTOSHOP将其转化为256色bmp位图格式。另外,较常用到的图像格式还有gif、tiff、png等等。由于本文的核心主要集中在图像的预处理和BP神经网络识别部分,就不在图像格式上耗费精力了。读者需要进一步了解图像格式的可以
16、详细查阅相关资料。在图像预处理部分的图像数据读取部分,作者使用了微软提供的一个图像函数库dibapi.h和dibapi.cpp,里面已经含有一些基本的图像处理函数,作者在此就不再列举源代码,而紧紧将其接口加以描述,以使读者清晰每个函数的作用。同时作者自己对该库又加以扩充以满足本程序的需要。文中没有贴出而程序中又用到的代码都在本书的附带光盘中可以找到。本小节所有的函数定义及声明位于dibapi.h、dibapi.cpp、mydiblib.h中。首先来看7个图像数据读取/存储/创建以及图像基本信息获取函数。图像数据读取/保存由函数ReadDIBFile、SaveDIB、FindDIBBits、DI
17、BWidth、DIBHeight、DIBNumColors完成,其调用接口如下: (1)ReadDIBFile函数 函数原型: HDIB WINAPI ReadDIBFile(CFile& file); 参数: CFile& file - 要读取得文件文件CFile 返回值: HDIB - 成功返回DIB的句柄,否则返回NULL。 说明: 该函数将指定的文件中的DIB对象读到指定的内存区域中。除文件头之外的内容都将被读入内存。HDIB即此内存区域的指针 (2)SaveDIB函数函数原型:BOOL WINAPI SaveDIB (HDIB hDib, CFile& file);参数: HDIB
18、hDib - 要保存的DIB CFile& file - 保存文件CFile返回值: BOOL - 成功返回TRUE,否则返回FALSE或者CFileException说明: 该函数将指定的DIB对象保存到指定的CFile中。该CFile由调用程序打开和关闭。 (3)FindDIBBits函数 函数原型: LPSTR WINAPI FindDIBBits (LPSTR lpbi);参数: LPSTR lpbi - 指向DIB对象的指针返回值: LPSTR - 指向DIB图像象素起始位置说明:该函数计算DIB中图像象素数据区的起始位置,并返回指向它的指针。注 LPSTR指针为指向字符串的32位的
19、指针。在对256色图像进行象素操作时,可以用(BYTE*)或(unsigned char*)强制将其转换为8位的指针(4)DIBWidth函数 函数原型: DWORD WINAPI DIBWidth(LPSTR lpDIB) 参数: LPSTR lpbi - 指向DIB对象的指针 返回值: DWORD - DIB中图像的宽度 说明: 该函数返回DIB中图像的宽度。对于Windows 3.0 DIB,返回BITMAPINFOHEADER 中的biWidth值;对于其他返回BITMAPCOREHEADER中的bcWidth值。(5)DIBHeight函数函数原型:DWORD WINAPI DIBH
20、eight(LPSTR lpDIB)参数: LPSTR lpDIB - 指向DIB对象的指针返回值: DWORD - DIB中图像的高度说明: 该函数返回DIB中图像的高度。对于Windows 3.0 DIB,返回BITMAPINFOHEADER中的biHeight值;对于其他返回BITMAPCOREHEADER中的bcHeight值。(6)DIBNumColors函数函数原型:WORD WINAPI DIBNumColors(LPSTR lpbi)参数: LPSTR lpbi - 指向DIB对象的指针返回值: WORD - 返回调色板中颜色的种数 说明:该函数返回DIB中调色板的颜色的种数。
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BP 神经网络 字符 识别
