文档库 最新最全的文档下载
当前位置:文档库 › 手写体数字识别系统

手写体数字识别系统

手写体数字识别系统
手写体数字识别系统

石河子大学

信息科学与技术学院毕业论文

课题名称:手写体数字识别系统设计

学生姓名:

学号:

学院:信息科学与技术学院

专业年级:电子信息工程2007级

指导教师:

职称:

完成日期:二○一一年六月十一日

手写体数字识别系统设计

学生:

指导教师:

[摘要] 随着科学技术的迅速发展,在邮政编码、统计报表、财务报表、银行票据等处理大量字符信息录入的场合,手写数字识别系统的应用需求越来越强烈,如何将数字方便、快速地输入到计算机中已成为关系到计算机技术普及的关键问题。本文设计实现了一个基于Matlab软件的手写体数字识别系统,采用模块化设计方法,编写了摄像头输入、直接读取图片、写字板输入三个模块,利用摄像头等工具,将以文本形式存在的手写体数字输入进计算机,完成对手写体数字图片的采集,并设计了一种手写数字识别方法,对手写体数字图像进行预处理、结构特征提取、分类识别,最终以文本形式输出数字,从而实现手写体数字的识别。

[关键词] 预处理,结构特征提取,分类识别,手写体数字识别

I

Handwritten Digit Recognition System

Students:

Teacher:

Abstract:With the rapid development of science and technology, in zip code, statistics, reports, financial statements, Bank bills dealing with a large number of characters, such as information recorded occasions, handwritten digit recognition system of requirement has become stronger and stronger, how easily and quickly the number entered in the computer has become a key issue relates to the popularization of computer technology. This article design implementation has a based on Matlab software of handwriting body digital recognition system, used module of design method, write has camera entered, and directly read pictures, and write Board entered three a module, using camera, tools, will to text form exists of handwriting body digital entered into computer, completed on handwriting body digital pictures of collection, and design has a handwriting digital recognition method, on handwriting body digital image for pretreatment, and structure features extraction, and classification recognition, eventually to text form output digital, to implementation handwriting body digital of recognition.

Key words: Pretreatment, structure feature extraction, classification and recognition, handwritten digit recognition.

II

目录

第一章引言 (1)

1.1课题背景 (1)

1.2课题研究目的及意义 (1)

1.2.1 手写体数字识别的研究目的 (1)

1.2.2 手写体数字识别的研究意义 (2)

1.3课题研究现状及发展趋势 (2)

1.4课题整体结构 (3)

1.5课题难点分析 (4)

第二章开发运行环境 (5)

2.1系统开发环境和运行环境 (5)

2.2开发工具介绍 (5)

2.2.1 硬件部分介绍 (5)

2.2.2 软件部分介绍 (6)

第三章手写体数字识别系统构成及原理 (8)

3.1图像处理基础知识 (8)

3.2手写体数字识别系统构成 (10)

3.3手写体数字识别系统原理 (10)

3.3.1预处理 (10)

3.3.2图像分割 (14)

3.3.3特征提取 (14)

3.3.4分类识别 (15)

第四章手写体数字识别系统设计分析 (16)

4.1程序主界面 (16)

4.2基准库的选择与建立 (18)

III

4.3手写体数字识别系统设计 (19)

4.3.1摄像头输入模块的设计 (19)

4.3.2直接读图模块的设计 (21)

4.3.3写字板输入模块的设计 (22)

第五章系统性能评价及实验结果分析 (25)

5.1识别系统性能的评价 (25)

5.2实验结果分析 (25)

第六章结论 (27)

6.1毕业设计总结 (27)

6.2课题前景与展望 (27)

致谢 (29)

参考文献 (30)

附录 (31)

附1、识别部分主程序 (31)

附2、创建模板部分函数 (32)

附3、切割图片部分函数 (33)

附4、输出图片部分函数 (34)

IV

第一章引言

第一章引言

1.1 课题背景

数字已有数千年的历史,在世界上使用很广,然而,在当今社会里,如何快速高效地将数字输入计算机,已成为影响人机接口效率的一个重要瓶颈,也关系到计算机能否真正在我国得到普及应用[1]。

手写数字识别是光学字符识别技术(Optical Character Recognition,简称OCR)的一个分支,它研究的对象是:如何利用电子计算机自动辨认人手写在纸张上的阿拉伯数字。

在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距实用还有一定距离。而在手写数字识别这个方向上,经过多年研究,研究工作者已经开始把它向各种实际应用推广,为手写数据的高速自动输入提供了一种解决方案[2]。

字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并且推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。这几年来我国开始大力推广的“三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益[3]。

1.2 课题研究目的及意义

1.2.1 手写体数字识别的研究目的

手写数字识别在学科上属于模式识别和人工智能的范畴。在过去的四十年中,人们想出了很多办法获取手写字符的关键特征。这些手段分两大类:全局分析和结构分析。对前者,我们可以使用模板匹配、象素密度、矩、特征点、数学变换等技术。对后者,多半需要从字符的轮廓或骨架上提取字符形状的基本特征,包括:圈、端点、节点、弧、突起、凹陷、笔画等[4]。

1

石河子大学学士学位论文

多年的研究实践表明,对于完全没有限制的手写数字,几乎可以肯定:没有一种简单的方案能达到很高的识别率和识别精度。因此,最近这方面的努力向着更为成熟、复杂、综合的方向发展。

本课题通过对手写体数字识别系统的研究,介绍了一种手写数字识别核心算法。即基于数字的结构,利用模板匹配、象素密度、矩、特征点、数学变换等技术获取手写体数字的关键特征,提出一种具体识别数字的方法,利用我们所掌握的电子信息工程的专业知识来实现,进而完成手写体数字识别系统的设计。

1.2.2 手写体数字识别的研究意义

手写数字识别研究价值意义在于自然人机交互领域,提高人机交互的自然性和友好性。在于数字信息自动处理领域,节省人力,提高效率,加快信息流动,创造巨大的经济效益[5]。

手写数字识别的理论价值如下[6]:

(1)阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究基本上与文化背景无关,这样就为各国,各地区的研究工作者提供了一个施展才智的大舞台。在这一领域大家可以探讨,比较各种研究方法。

(2)由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论。

(3)尽管人们对手写数字的识别已从事了很长时间的研究,并已取得了很多成果,但到目前为止机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题。

(4)手写数字的识别方法很容易推广到其它一些相关问题,一个直接的应用是对英文这样的拼音文字的识别。事实上,很多学者就是把数字和英文字母的识别放在一块儿研究的。

1.3 课题研究现状及发展趋势

手写数字识别有着重要的价值,IBM、HP、日立、东芝、夏普、NEC、理光和新加坡热卡公司等国外公司都曾巨额投入手写数字识别领域。

而随着国家信息化进程的加速,手写数字识别的应用需求越来越广泛,应用系统的性能的关键与瓶颈在于手写数字识别核心算法性能上,最终目标是研究零误识率和低拒识率的高速识别算法。此外,尽早建立反映中国人书写习惯的、具有国家标准性质的手写数字样本库也是当务之急。

在大规模的数据统计(如:行业年检、人口普查等)中,需要输入大量的数据,以前完全要手工输入,需耗费大量的人力和物力。近年来在这类工作中采用手写

2

第一章引言

识别技术已成为一种趋势。因为数据的录入是集中组织的,所以往往可以通过专门设计表格和对书写施加限制以便于机器的自动识别。目前国内的大多数实用系统都要求用户按指定规范在方格内填写。另外,这些系统往往采用合适的用户界面对识别结果做全面的检查,最终保证结果正确无误。可以看出,这种应用对识别核心算法的要求比较低,是目前国内很多单位应用开发的热点[7]。

财务、税务、金融是手写数字识别大有可为的又一领域。随着我国经济的迅速发展,每天等待处理的财务、税务报表、支票、付款单等越来越多。如果能把它们用计算机自动处理,无疑可以节约大量的时间、金钱和劳力。与上面提到的统计报表处理相比,在这个领域的应用难度更大,因为对识别的精度要求更高,处理的表格种类更多等,这样对识别及预处理的核心算法要求也提高了。

手写数字识别在邮件分拣中的应用也十分广泛,随着人们生活水平的提高,经济活动的发展,通信联系的需求使信函的互换量大幅度增加,我国函件业务量也在不断增长,一些大城市的中心邮局每天处理量将高达上千万件,业务量的急剧上升使得邮件的分拣自动化成为大势所趋。在邮件的自动分拣中,手写数字识别往往与光学条码识别(OBR---Optical Bar Reading),人工辅助识别等手段相结合,完成邮政编码的阅读。这就需要分拣机有一定的性能指标,差错率要越小越好。

1.4 课题整体结构

我们的思路是利用Matlab软件建立一个手写体数字识别系统,利用三种方法实现图像输入的功能,然后对输入的图像进行预处理,分割,结构特征提取,分类识别等操作,最终识别出图像上的数字,如图1-1。

图1-1 识别的基本思路框架图

3

石河子大学学士学位论文

1.5 课题难点分析

数字的类别只有十种,笔划又简单,其识别问题似乎不是很困难。但事实上,一些测试结果表明,数字的正确识别率并不如印刷体汉字识别正确率高,甚至也不如联机手写体汉字识别率高,而只仅仅优于脱机手写体汉字识别。这其中主要原因是:数字的字形信息量很小,不同数字写法相近,字形相差不大,使得准确区分某些数字相当困难;第二,数字虽然只有十种,而且笔划简单,但同一数字写法千差万别,全世界各个国家各个地区的人都用,其书写上带有明显的区域特性,很难完全做到兼顾世界各种写法的极高识别率的通用性数字识别系统。另外,在实际应用中,对数字识别单字识别正确率的要求要比文字要苛刻得多。这是因为,数字没有上下文关系,每个单字的识别都事关重要,而且数字识别经常涉及的财会、金融领域其严格性更是不言而喻的。因此,用户的要求不是单纯的高正确率,更重要的是极低的、千分之一甚至万分之一以下的误识率。此外,大批量数据处理对系统速度又有相当的要求,许多理论上很完美但速度过低的方法是行不通的。因此,研究高性能的手写数字识别算法是一个有相当的挑战性的任务[8]。

4

第二章开发运行环境

第二章开发运行环境

2.1系统开发环境和运行环境

硬件环境:

(1)计算机一台。

(2)摄像头一个。

软件环境:

(1)Windows XP 操作系统。

(2)Matlab软件。

2.2开发工具介绍

2.2.1 硬件部分介绍

本课题中,我们所用到的硬件有摄像头,摄像头(CAMERA)又称为电脑相机,电脑眼等,是一种视频输入设备,被广泛的运用于视频会议,远程医疗及实时监控等方面。普通人也可以彼此通过摄像头在网络进行有影像、有声音的交谈和沟通。另外,人们还可以将其用于当前各种流行的数码影像,影音处理[9]。在本实验中,我们主要用它来进行手写体数字图像的输入,即图像的采集部分。

摄像头分为模拟摄像头和数字摄像头两大类。模拟摄像头捕捉到的视频信号必须经过特定的视频捕捉卡将模拟信号转换成数字模式,并加以压缩后才可以转换到计算机上运用。数字摄像头则可以直接捕捉影像,然后通过串、并口或者USB 接口传到计算机里。由于个人电脑的迅速普及,模拟摄像头的整体成本较高等原因,现在电脑市场上的摄像头基本以数字摄像头为主,而数字摄像头中又以使用新型数据传输接口的USB数字摄像头为主。在本实验中,我们就选择使用了USB 数字摄像头。

这种摄像头的工作原理大致为:景物通过镜头(LENS)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过USB接口传输到电脑中处理,通过显示器就可以看到图像[10]。

图像解析度(Resolution)又名传感器像素,是衡量摄像头的一个重要指标之一,摄像头的像素越高,它的解析图像的能力也越强,拍摄出来的图像品质就越好,

5

石河子大学学士学位论文

我们选择的这种USB数字摄像头的像素并不是特别高,只能勉强实现我们对实验的要求,如果想进一步提高识别率,一个更高像素的摄像头可能对此有所帮助。

另外,视频捕获能力也是用户最为关心的功能之一,目前摄像头的视频捕获都是通过软件来实现的,在本实验中,我们设置了根据秒数来自动截取图片,这对电脑的要求非常高,即CPU的处理能力要足够的快,其次对画面也有要求,不同大小最大分辨率下的画面,捕获能力也不尽相同,我们选择的这种USB数字摄像头的捕获能力一般,勉强能够实现我们对实验的要求,如果想要更高的识别率,可以选择更好些的摄像头甚至是工控摄像头。

2.2.2 软件部分介绍

本课题中,我们所用到的软件是Matlab,Matlab是MATrix LABoratory的缩写,它是一种科学计算软件,专门以矩阵的形式处理数据。Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用Matlab 产品的开放式结构,可以非常容易地对Matlab的功能进行扩充,从而在不断深化对问题认识的同时,完善Matlab产品以提高产品自身的竞争力[11]。

Matlab被称作为第四代计算机语言,最大的特点就是简洁,利用其丰富的函数资源,更符合人们思维习惯的代码,带来直观的程序开发环境。Matlab的主要特色如下[12]:

(1)语言简洁紧凑,使用方便灵活,库函数极其丰富;

(2)运算符丰富;

(3)既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性;

(4)语法限制不严格,程序设计自由度大;

(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行;

(6)图形功能强大;

(7)包含功能强劲的工具箱。

本试验中,我们使用了Matlab图形用户界面(简称GUI)设计主界面和子界面,优化界面并实现主界面对子界面的调用,编写界面的回调函数。系统界面设计布局采用自顶向下的设计方法,即先设计主界面再设计各个子界面。而各个回调函数侧是采用自底向上的设计方法,即先设计各个子界面的回调函数,再设计主界面的回调函数。

6

第二章开发运行环境

本课题避开了硬件系统的不足,巧妙的运用软件来仿真硬件才能实现的实验结果,大大降低了实验设备要求,节约了人力和财力,而且有很多的库函数可以在实验时直接调用,避免了用硬件做实验的局限性。

根据国内外优秀的GUI技术应用的成功经验,可以总结出近几年的设计具备以下几个最基本特点[13]:

(1)技术上具有先进性、高效性、实用性、安全性;

(2)数据管理功能完善,数据的采集、处理、发布过程中不会出现数据丢失、改变的问题;

(3)界面友好,操作简便,使用统一的浏览器界面;

(4)自动化程度高,结构设计简单;

(5)模块化设计,易于扩充功能;

(6)产品设计灵活;

(7)投资少,最大限度保护用户的投资。

7

第三章手写体数字识别系统构成及原理

3.1 图像处理基础知识

图像处理(image processing),是指用计算机对图像进行分析,以达到所需结果的技术,又称影像处理,一般指的是数字图像处理[14]。数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别这几个部分。其中,常见的处理有图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等。

图像数字化指的是通过取样和量化过程将一个以自然形式存在的图像变换为适合计算机处理的数字形式。图像在计算机内部被表示为一个数字矩阵,矩阵中每一元素称为像素。图像数字化需要专门的设备,常见的有各种电子的和光学的扫描设备,还有机电扫描设备和手工操作的数字化仪。在本文中,我们就是利用USB摄像头将图像数字化。

图像编码是对图像信息编码,以满足传输和存储的要求。编码能压缩图像的信息量,但图像质量几乎不变。

图像增强的目标是改进图片的质量,例如增加对比度,去掉模糊和噪声,修正几何畸变等;图像复原是在假定已知模糊或噪声的模型时,试图估计原图像的一种技术。

图像分割是将图像划分为一些互不重叠的区域,每一区域是像素的一个连续集。通常采用把像素分入特定区域的区域法和寻求区域之间边界的境界法。区域法根据被分割对象与背景的对比度进行阈值运算,将对象从背景中分割出来。有时用固定的阈值不能得到满意的分割,可根据局部的对比度调整阈值,这称为自适应阈值。境界法利用各种边缘检测技术,即根据图像边缘处具有很大的梯度值进行检测。这两种方法都可以利用图像的纹理特性实现图像分割。

图像分析是指从图像中抽取某些有用的度量、数据或信息。图像匹配、描述和识别是对图像进行比较和配准,通过提取图像的特征及相互关系,得到图像符号化的描述,再把它同模型比较,以确定其分类。图像匹配试图建立两张图片之间的几何对应关系,度量其类似或不同的程度。

8

Matlab图像处理是指计算机采用Matlab处理图形图像的技术。Matlab中的一幅图像可能包含一个数据矩阵,也可能包含一个颜色映射表矩阵,它包含4种基本的图像类型:索引图像、灰度图像、RGB图像和二值图像。此外,Matlab还支持由多帧图像组成的图像序列[15]。

(1)索引图像

索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像可把像素值直接映射为调色板数值。调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。索引图像包括一个数据矩阵A,一个颜色映射矩阵B。其中B是一个包含3列和若干行的数据阵列。B矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在Matlab中,索引图像是从像素值到颜色映射表值的直接映射。像素颜色由数据矩阵A作为索引指向矩阵B进行索引。

(2)灰度图像

灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗的黑色到最亮的白色的灰度,尽管理论上这个采样可以用于任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。Matlab中,一幅灰度图像是一个数据矩阵I,其中I的数据均代表了在一定范围内的颜色灰度值。Matlab把灰度图像存储为一个数据矩阵,该数据矩阵中的元素分别代表了图像中的像素。矩阵中的元素可以是双精度的浮点数类型、8位或16位无符号的整数类型。大多数情况下,灰度图像很少和颜色映射表一起保存。但是在显示灰度图像时,Matlab仍然在后台使用系统预定义的默认的灰度颜色映射表。

(3)二值图像

二值图像是指每个像素不是黑就是白,其灰度值没有中间过渡的图像。与灰度图像相同,二值图像只需要一个数据矩阵,每个像素只取两个灰度值。二值图像可以采用uint和double类型存储,工具箱中以二值图像作为返回结果的函数都使用uint类型。

(4)RGB图像

RGB图像,即真彩色图像,在Matlab中存储为nXmX3的数据矩阵。数组中的元素定义了图像中每一个像素的红、绿、蓝颜色值。需要指出的是,RGB图像不使用Windows颜色映射表。像素的颜色保存在像素位置上的红、绿、蓝的强度值的组合来确定。图像文件格式把RGB图像存储为24位的图像,红、绿、蓝分别占8位。这样可以有约1000万种颜色。

9

第三章手写体数字识别系统构成及原理

3.2手写体数字识别系统构成

手写体数字识别系统结构图如图3-1所示。

图3-1 手写体数字识别系统结构图

其中三个模块的输入部分以及部分输出部分的具体设计将会在下一章中提到。

3.3手写体数字识别系统原理

当今手写体数字识别的应用需求越来越广泛,在财务、税务、金融方面具有不可替代的作用,因此手写体数字识别系统应具有很高的识别正确率,对环境光照条件、手写规范等因素的影响应有较大的容阈,并且要求满足实时性要求[16]。

该系统是计算机图像处理与字符识别技术在手写体数字识别系统中的应用,它主要由手写体数字图像的采集和预处理、手写体数字图像的定位和提取、手写体数字的分割和识别等几个部分组成。

3.3.1预处理

为了研究图像内容的识别,首先要对获得的图像信息进行预处理,滤去干扰、噪声,当信息微弱无法辨识时,还须对图像进行增强处理,颜色校正等,以便人、机分析[17]。

在本系统中,我们设计的这个部分主要由计算数据大小,灰度,全局图像阈值选取,二值化,删除小面积图形等过程组成。

(1)计算数据大小

10

石河子大学学士学位论文

计算数据大小的函数为size,函数公式以及具体解析如下:

d = size(X)

返回数组X每一维的大小。

[m,n] = size(X)

返回矩阵X的行列,当X是一个大于二维的数组时,m 是第一维的大小,n 返回其他维相乘。

m = size(X,dim)

返回X数组第 dim 维的大小。

[d1,d2,d3,…,dn] = size(X)

返回X数组每一维的大小到 d1,d2,d3,…,dn。

(2)灰度

灰度是指灰度图的转换,利用rgb2gray函数,将RGB图形或色图矩阵转换成灰度图[18]。

对于将彩色图像转换成灰度图像时,图像灰度值可由下面的公式计算:

gray = 0.2989 * R + 0.5870 * G + 0.1140 * B

注:原始图像可以是Matlab可以处理的图像格式。

I = rgb2gray(RGB)

将真彩色图像RGB转换成灰度图像I。rgb2gray删除图像中的色调和饱和度信息,而保留亮度信息,从而将RGB图像转换为灰度图。

newmap = rgb2gray(map)

返回与色图map相对应的灰度色图。

注意:如果函数的输入是一个RGB图像,则它可以是unit8、uint16、single 或double类型。输出的图像I的数据与输入的图像是相同类型的数据。如果输入的是色图,则输入和输出都是double类型的。

rgb2gray测试:

I = imread('chuli.jpg');

J = rgb2gray(I); %将图片转为灰度图并且保存到J当中。

Figure %打开新的作图窗口。

imshow(I) %显示转换前的彩色图。

figure; %打开新的作图窗口。

imshow(J); %显示转换后的灰度图J。

11

第三章 手写体数字识别系统构成及原理

12

测试结果如图3.2、3.3所示:

图3-2 原始图像 图3-3 灰度图像

(3)全局图像阈值选取

全局图像阈值选取的函数为graythresh ,函数功能为使用大津法进行全局图像阈值选取。函数公式以及具体解析如下:

level = graythresh(I)

计算全局阈值(level),该阈值可以用在将强度图像转换为二进制图像的函数 im2bw 中。level 是在[0,1]内归一化的强度值。

函数graythresh 选择使黑白像素类内方差最小的阈值。

多维矩阵被reshape 自动转换为二维矩阵。函数graythresh 忽略I 的所有非零虚部。

[level EM] = graythresh(I)

返回效力矩阵EM 作为第二个输出变量。效力矩阵是[0 1]范围内的值,指示输入图像阈值选取的有效性。只有单一灰度值的图像0,只有两个灰度值的图像1。

(4)二值化

将图像转换为基于阈值的二进制图像的函数为im2bw ,函数公式以及具体解析如下:

BW = im2bw(I ,level)

将灰度图像I 转换为二进制图像。输出图像BW 将输入图像中亮度值大于 level 的像素替换为值1 (白色),其他替换为值0(黑色)。你指定 level 在 [0,1]之间, 不用管输入图像的等级。函数graythresh 能用来自动计算变量 level 。如果你不指定 level ,im2bw 使用 0.5。

BW = im2bw(X, map, level)

将颜色表为 map 的索引图像 X 转换为二进制图像。

石河子大学学士学位论文

13

BW = im2bw(RGB, level)

将 RGB 真彩图像转换为二进制图像。

注:如果输入图像不是灰度图像, im2bw 首先将图像转换为灰度图像,然后通过阈值将灰度图像转换成二进制图像。

im2bw 测试:

A = imread(['1.jpg']);

B = im2bw(A);

figure;

imshow(A)figure;

imshow(B);

测试结果如图3.4、3.5所示:

图3-4 灰度图像 图3-5 二值化图像

(5)删除小面积图形

删除小面积图形的函数为bwareaopen ,函数公式以及具体解析如下:

格式:BW2 = bwareaopen(BW,P ,conn)

作用:删除二值图像BW 中面积小于P 的对象,默认情况下conn 使用8邻域,这个部分其实就是去噪,根据设置的P 的大小,去除图像上的杂点。

算法:

A. Determine the connected components.

L = bwlabeln(BW, conn);

B. Compute the area of each component.

S = regionprops(L, 'Area');

C. Remove small objects.

bw2 = ismember(L, find([S.Area] >= P));

功能:用于从对象中移除小对象。

第三章手写体数字识别系统构成及原理

用法:BW2 = bwareaopen(BW,P)

BW2 = bwareaopen(BW,P,CONN)

BW2 = bwareaopen(BW,P,CONN)

从二值图像中移除所有小于P的连通对象。CONN对应邻域方法,默认为8。

3.3.2图像分割

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤,它是一种重要的图像技术,在理论研究和实际应用中都得到了人们的广泛重视。图像分割的方法和种类有很多,有些分割运算可直接应用于任何图像,而另一些只能适用于特殊类别的图像。有些算法需要先对图像进行粗分割,因为他们需要从图像中提取出来的信息。例如,可以对图像的灰度级设置门限的方法分割。值得提出的是,没有唯一的标准的分割方法。许多不同种类的图像或景物都可作为待分割的图像数据,不同类型的图像,已经有相对应的分割方法对其分割,同时,某些分割方法也只是适合于某些特殊类型的图像分割。分割结果的好坏需要根据具体的场合及要求衡量。图像分割是从图像处理到图像分析的关键步骤,可以说,图像分割结果的好坏直接影响对图像的理解。人们通常将图像分割的方法归纳为基于灰度直方图的阈值化方法和基于区域增长法两大类。其中阈值化方法因其简单、计算量小、性能较稳定而成为图像分割中应用最广泛的分割技术[19]。

阈值分割方法中对灰度图像的取阈值分割就是先确定一个处于图像灰度取值范围之中的灰度阈值,然后将图像中各个像素的灰度值都与这个阈值相比较,并根据比较结果将对应的像素分为两类。这两类像素一般分属图像的两类区域,从而达到分割的目的。从该方法中可以看出,确定一个最优阈值是分割的关键。现有的大部分算法都是集中在阈值确定的研究上。阈值分割方法根据图像本身的特点,可分为单阈值分割方法和多阈值分割方法;也可分为基于像素值的阈值分割方法、基于区域性质的阈值分割方法和基于坐标位置的阈值分割方法。若根据分割算法所有的特征或准则,还可以分为直方图与直方图变换法、最大类空间方差法、最小误差法与均匀化误差法、共生矩阵法、最大熵法、简单统计法与局部特性法、概率松驰法、模糊集法、特征空间聚类法、基于过渡区的阈值选取法等。

3.3.3特征提取

图像特征抽取是指在需要识别的物体被分割出来的基础上,提取需要的特征,并对某些参数进行计算、测量,根据测量结果进行分类。这一过程输入是庞大的信息图像,输出则是少量的特征信息,而且这些特征信息仅仅代表物体,无法还

14

基于知识库的手写体数字识别

HUNAN UNIVERSITY 课程模式识别 题目基于知识库的手写体数字识别学生姓名 学生学号

专业班级 学院名称 2016 年6 月25 日

基于知识库的手写体数字识别 1案例背景: 手写体数字识别是图像识别学科下的一个分支,是图像处理和模式识别研究领域的重要应用之一,并且具有很强的通用性。由于手写数字的随意性很大,如笔画粗细、字体大小、倾斜角度等因素都有可能直接影响到字符的识别准确率,所以手写体数字识别是一个很有挑战性的课题。在过去的数十年中,研究者们提出了许多识别方法,并取得了一定的成果。在大规模数据统计如例行年检、人口普查、财务、税务、邮件分拣等应用领域都有广阔的应用前景。 本案例实现了手写阿拉伯数字的识别过程,并对手写数字识别的基于统计的方法进行了简要介绍和分析。本文实现的手写字体识别程序具有手写数字图像读取、特征提取、数字模板特征库以及识别功能。 2 理论基础: 2-1手写字体识别方法: 手写体数字识别是一个跨学科的复杂问题,综合了图像处理、模式识别、机器学习等多个领域的知识,其识别过程一般包含图像预处理、特征提取、分类器的设定及其后处理等组成。处理流程如图2-1所示。

图2-1 手写体数子识别流程图 2-2 图像预处理 手写体数字识别的首要工作是图像预处理。在图像预处理过程中需要解决的主要问题有:定位、图像二值化、平滑化(去噪)H J、字符切分、规范化等。图像二值化是指将整个图像呈现出明显的黑白效果。待识别的手写体数字图像在扫描过程中,常会带来一些噪声,用不同的扫描分辨率得到的数字图像,其质量也各不相同,故而要先将这些干扰因素排除掉。另外,还需要正确分割整幅文档图像中的手写体数字,而分割后的数字大小、字体常各不相同,故还需进行归一化处理。 2-3 特征提取 特征提取的目的是从经过预处理后的数字图像中,提取出用以区分与其它数字类别的本质属性并数值化,形成特征矢量的过程。常见的手写体数字特征有:模板特征、统计特征、结构特征和变换特征。 2-4 分类器 不同的分类方式对应不同的分类器,可选的分类器有神经网络、支持向量机

毕业论文计算机手写数字识别技术完整版

毕业论文计算机手写数 字识别技术 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

合肥学院 2007届毕业设计(论文) 基于模板匹配算法的字符识别系 设计(论文)题 目 统研究与实现 院系名称计算机科学与技术系 专业(班级)计算机科学与技术 2003级1班 姓名(学号)宋飞(0) 指导教师赵大政 系负责人袁暋 二O O七年五月二十三日 摘要 自从计算机问世以来,让机器具有模式识别能力一直是计算机科学家们的努力方向。研究表明,对视觉和听觉信息的处理过程,不仅仅是一个感知过程,也是一个认知过程。因此,研究模式识别,是理解人类智能的本质的重要途径。字符识别是一个传统和典型的模式识别问题,脱机手写数字识别是一个典型的大类别的模式识别问题。手写体数字具有不同字符字型相差不大、相同字符有多种不同写法、数字没有上下文关系等等特点,使得脱机手写体数字识别成为识别领域最大的难题和最终的目标。在这种大类别识别的研究中,传统上大多采用模板匹配的方法来解决问题。而在模板匹配算法中,得计算其特征值。图像需要经过二值化,细化等预处理。 关键字模板匹配;特征值;细化;二值化 ABSTRACT Since computer appeared, it has been an effort direction for scientist to let the computer has the ability of pattern recognition. Researching indicates that the procedure to deal with seeing and hearing not only a procedure of perception but also cognition. Therefore, studying pattern recognition is an important way in understanding the mankind’s intelligence

(完整版)手写体数字识别系统设计毕业设计

石河子大学 信息科学与技术学院毕业论文 课题名称:手写体数字识别系统设计 学生姓名: 学号: 学院:信息科学与技术学院

专业年级:电子信息工程2007级指导教师: 职称: 完成日期:二○一一年六月十一日

手写体数字识别系统设计 学生: 指导教师: [摘要] 随着科学技术的迅速发展,在邮政编码、统计报表、财务报表、银行票据等处理大量字符信息录入的场合,手写数字识别系统的应用需求越来越强烈,如何将数字方便、快速地输入到计算机中已成为关系到计算机技术普及的关键问题。本文设计实现了一个基于Matlab软件的手写体数字识别系统,采用模块化设计方法,编写了摄像头输入、直接读取图片、写字板输入三个模块,利用摄像头等工具,将以文本形式存在的手写体数字输入进计算机,完成对手写体数字图片的采集,并设计了一种手写数字识别方法,对手写体数字图像进行预处理、结构特征提取、分类识别,最终以文本形式输出数字,从而实现手写体数字的识别。 [关键词] 预处理,结构特征提取,分类识别,手写体数字识别

Handwritten Digit Recognition System Students: Teacher:

Abstract:With the rapid development of science and technology, in zip code, statistics, reports, financial statements, Bank bills dealing with a large number of characters, such as information recorded occasions, handwritten digit recognition system of requirement has become stronger and stronger, how easily and quickly the number entered in the computer has become a key issue relates to the popularization of computer technology. This article design implementation has a based on Matlab software of handwriting body digital recognition system, used module of design method, write has camera entered, and directly read pictures, and write Board entered three a module, using camera, tools, will to text form exists of handwriting body digital entered into computer, completed on handwriting body digital pictures of collection, and design has a handwriting digital recognition method, on handwriting body digital image for pretreatment, and structure features extraction, and classification recognition, eventually to text form output digital, to implementation handwriting body digital of recognition. Key words: Pretreatment, structure feature extraction, classification and recognition, handwritten digit recognition.

手写数字识别系统的设计与实现

] 手写数字识别系统的设计与实现 摘要本手写数字识别系统是一个以VISUAL STUDIO C++ 为编译环境,使用MFC进行图形图像界面开发的系统。主要功能是通过在点击手写数字识别菜单下的绘制数字标签弹出的绘制数字窗口中完成数字的手写,在此窗口中可以进行数字的保存及清屏,然后通过文件菜单中的打开标签打开所绘制的数字,从而进行数字的预处理,其中包括灰度化及二值化处理,然后进行特征提取,最后实现数字的识别。本系统的界面设计友好,流程正确,功能也较为完善。实验结果表明,本系统具有较高的识别率。 关键词:绘制数字;预处理;特征提取;特征库;数字识别 / ;

目录 前言 (1) 概述 (2) 1 需求分析 (4) 功能需求分析 (4) , 性能需求分析 (4) 数据需求分析 (5) 相关软件介绍 (5) 2 手写数字识别系统的设计与基本原理 (6) 系统整体功能模块设计 (6) 手写数字识别系统的基本原理 (6) 数字图像的绘制 (6) 图像的预处理 (6) ) 图像的特征提取 (7) 特征库的建立 (8) 图像数字的识别 (8) 3 手写数字识别系统程序设计 (8) 数字图像的绘制 (8) 数字的特征提取 (15) 模板特征库的建立 (18) 数字的识别 (20) (

总结 (23) 致谢 (24) 参考文献 (25)

前言 自上世纪六十年代以来,计算机视觉与图像处理越来越受到人们的关注,并逐渐成为一门重要的学科领域。而作为它们的研究对象的数字图像,也因为它含有研究目标的丰富信息而成为越来越重要的研究对象。图像识别的目标是用计算机自动完成某些信息的处理,用来替代人工去处理图像分类及识别的任务。 手写数字识别是图像识别学科下的一个分支,是图像处理和模式识别领域研究的课题之一,由于其具有很强的实用性一直是多年来的研究热点。由于手写体数字的随意性很大,例如,笔画的粗细,字体的大小,倾斜等等都直接影响到字符的正确识别,所以手写体数字识别是一个很有挑战性的课题。在过去的数十年中,研究者们提出了许多的识别方法,取得了较大的成果。手写体数字识别实用性很强,在大规模数据统计(如例行年检,人口普查),财务,税务,邮件分拣等等应用领域中都有广阔的应用前景。本课题拟研究手写体数字识别的理论和方法,开发一个小型的手写体数字识别系统。 在研究手写体数字识别理论和方法的基础上,开发这样一个小型的手写体数字识别系统需要完成以下主要方面的研究与设计工作:手写数字绘制的问题、数字的预处理问题、特征提取问题、特征库的建立问题、数字识别问题。

手写体数字的识别

手写体数字识别 第一章绪论 (4) 1.1课题研究的意义 (4) 1.2国内外究动态目前水平 (4) 1.3手写体数字识别简介 (5) 1.4识别的技术难点 (5) 1.5主要研究工作 (6) 第二章手写体数字识别基本过程: (6) 2.1手写体数字识别系统结构 (6) 2.2分类器设计 (7) 2.2.1 特征空间优化设计问题 (7) 2.2.2分类器设计准则 (8) 2.2.3分类器设计基本方法 (9) 3.4 判别函数 (9) 3.5训练与学习 (10) 第三章贝叶斯方法应用于手写体数字识别 (11) 3.1贝叶斯由来 (11) 3.2贝叶斯公式 (11) 3.3贝叶斯公式Bayes决策理论: (12) 3.4贝叶斯应用于的手写体数字理论部分: (16) 3.4.1.特征描述: (16) 3.4.2最小错误分类器进行判别分类 (17) 第四章手写体数字识别的设计流程及功能的具体实现 (18) 4.1 手写体数字识别的流程图 (18) 4.2具体功能实现方法如下: (19) 结束语 (25) 致谢词 (25) 参考文献 (26) 附录 (27)

摘要 数字识别就是通过计算机用数学技术方法来研究模式的自动处理和识别。随着计算机技术的发展,人类对模式识别技术提出了更高的要求。特别是对于大量己有的印刷资料和手稿,计算机自动识别输入己成为必须研究的课题,所以数字识别在文献检索、办公自动化、邮政系统、银行票据处理等方面有着广阔的应用前景。 对手写数字进行识别,首先将汉字图像进行处理,抽取主要表达特征并将特征与数字的代码存储在计算机中,这一过程叫做“训练”。识别过程就是将输入的数字图像经处理后与计算机中的所有字进行比较,找出最相近的字就是识别结果。 本文主要介绍了数字识别的基本原理和手写的10个数字字符的识别系统的设计实现过程。第一章介绍了数字识别学科的发展状况。第二章手写体数字识别基本过程。第三章贝叶斯方法应用于手写体数字识别。第四章手写体数字识别的设计流程及功能的具体实现,并对实验结果做出简单的分析。 关键词:手写体数字识别分类器贝叶斯vc++6.0 错误!未找到引用源。

手写体数字识别系统的设计与实现

大学生研究计划项目 论文报告 项目名称:_手写体数字识别系统的设计与实现 负责人:_________ _______________ 学院/专业:_____ ______ 学号:____ ________ 申请经费:_____ _________________ 指导教师:______ _______ 项目起止时间:2011年6月-2012年3月

摘要 手写体数字识别系统依托计算机应用软件为载体,利用C++程序设计的相关知识,运用模块设计等相关技术,最终完成手写体设计系统的程序综合设计。 关键字:手写体数字处理模式识别程序设计 一、论题概述 模式识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人(及某些动物)对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。 字符识别是模式识别的一个传统研究领域。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索,并为模式识别的发展产生了积极的影响。 字符识别一般可以分为两类:1.联机字符识别;2.光学字符识别(Optical Chara- cter Recognition,OCR)或称离线字符识别。在联机字符识别中,计算机能够通过与计算机相连的输入设备获得输入字符笔划的顺序、笔划的方向以及字符的形状,所以相对OCR来说它更容易识别一些。但联机字符识别有一个重要的不足就是要求输入者必须在指定的设备上书写,然而人们在生活中大部分的书写情况是不满足这一要求的,比如人们填写各种表格资料,开具支票等。如果需要计算机去认识这些己经成为文字的东西,就需要OCR技术。比起联机字符识别来,OCR不要求书写者在特定输入设备上书写,它可以与平常一样书写,所以OCR 的应用更为广泛。OCR所使用的输入设备可以是任何一种图像采集设备,如CCD、扫描仪、数字相机等。通过使用这类采集设备,OCR系统将书写者已写好的文字作为图像输入到计算机中,然后由计算机去识别。由于OCR的输入只是简单的一副图像,它就不能像联机输入那样比较容易的从物理特性上获得字符笔划的顺序信息,因此OCR是一个更具挑战性的问题。 数字识别是多年来的研究热点,也是字符识别中的一个特别问题,它是本文研究的重点。数字识别在特定的环境下应用特别广泛,如邮政编码自动识别系统,税表和银行支票自动处理系统等。一般情况下,当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写

手写数字识别实践指导手册

手写数字系统实践指导手册 1 问题描述 设计一个简单的手写数字识别系统,能够识别手写输入的数字1-9并且能够识别选中的文本文件中的数字,应具有简单方便的操作界面,输入输出等。 1.1功能需求分析 通过分析,以及从用户的角度考虑,系统应该具有以下功能: (1)数字的手写输入。作为一个手写数字识别系统,首先应该能够让用户过绘制窗口进行数字绘制,系统得到用户的手写输入进行处理。 (2)直接选择文件。用户还可以选择系统中的文本文件进行处理。 (3)数据预处理。包括计算数据大小、二值化、格式化处理等。 (4)数字提取。将经过二值化后的图像中的个数字区域进行提取,只有能够将数字进行准确的提取,才能将其一一识别。 (5)基准库的选择与建立。选择一个可供系统训练和测试的样本库非常重要,本系统的训练集和测试集选择的是《机器学习实战》中所给的数据。 (6)识别数字。经过训练集进行训练后,使用knn算法对需要识别的数字识别。 2 数据集获取 ●任务要求: 从网上爬取或者下载适合进行手写数字识别系统的训练集和测试集 ●实践指导: 方式一:自己从网上找适合的数据下载 方式二:推荐数据集:“手写数字数据集的光学识别”一文中的数据集合,该文登载与2010年10月3日的UCI机器学习资料库中https://www.wendangku.net/doc/253041684.html,/ml

3 功能设计与实现 3.1手写数字识别系统结构图: 图一:系统结构图 3.2识别用户选择手选文件功能设计与实现 ●任务要求: 用户可以自己从电脑中选择文本文件进行识别。 ●实践指导: KNN分类器的构造思路及原理如下: 1)选择训练集和测试集。系统所采用的数据集选用的是“手写数字数据集的光学识别”一文中的数据集合。0-9每个数字大约有200个训练数据20个测试数据。数字的文本格式如图所示。

基于知识库的手写体数字识别

HUNAN UNIVERSITY 2016 年6 月 25 日 课程 模式识别 题 目 基于知识库的手写体数字识别 学生姓名 学生学号 专业班级 学 院 名 称

基于知识库的手写体数字识别 1案例背景: 手写体数字识别是图像识别学科下的一个分支,是图像处理和模式识别研究领域的重要应用之一,并且具有很强的通用性。由于手写数字的随意性很大,如笔画粗细、字体大小、倾斜角度等因素都有可能直接影响到字符的识别准确率,所以手写体数字识别是一个很有挑战性的课题。在过去的数十年中,研究者们提出了许多识别方法,并取得了一定的成果。在大规模数据统计如例行年检、人口普查、财务、税务、邮件分拣等应用领域都有广阔的应用前景。 本案例实现了手写阿拉伯数字的识别过程,并对手写数字识别的基于统计的方法进行了简要介绍和分析。本文实现的手写字体识别程序具有手写数字图像读取、特征提取、数字模板特征库以及识别功能。 2 理论基础: 2-1手写字体识别方法: 手写体数字识别是一个跨学科的复杂问题,综合了图像处理、模式识别、机器学习等多个领域的知识,其识别过程一般包含图像预处理、特征提取、分类器的设定及其后处理等组成。处理流程如图2-1所示。 图2-1 手写体数子识别流程图 2-2 图像预处理 手写体数字识别的首要工作是图像预处理。在图像预处理过程中需要解决的主要问题有:定位、图像二值化、平滑化(去噪)H J、字符切分、规范化等。图像二值化是指将整个图像呈现出明显的黑白效果。待识别的手写体数字图像在扫描过程中,常会带来一些噪声,用不同的扫描分辨率得到的数字图像,其质量也各不相同,故而要先将这些干扰因素排除掉。另外,还需要正确分割整幅文档图像中的手写体数字,而分割后的数字大小、字体常各不相同,故还需进行归一化处理。 2-3 特征提取 特征提取的目的是从经过预处理后的数字图像中,提取出用以区分与其它数字类别的本质属性并数值化,形成特征矢量的过程。常见的手写体数字特征有:模板特征、统计特征、结构特征和变换特征。

手写数字识别的原理及应用

手写数字识别的原理及应用 林晓帆丁晓青吴佑寿 一、引言 手写数字识别(Handwritten Numeral Recognition)是光学字符识别技术(Optical Character Recognition,简称OCR)的一个分支,它研究的对象是:如何利用电子计算机自动辨认人手写在纸张上的阿拉伯数字。 在整个OCR领域中,最为困难的就是脱机手写字符的识别。到目前为止,尽管人们在脱机手写英文、汉字识别的研究中已取得很多可喜成就,但距实用还有一定距离。而在手写数字识别这个方向上,经过多年研究,研究工作者已经开始把它向各种实际应用推广,为手写数据的高速自动输入提供了一种解决方案。 二、研究的实际背景 字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类信息的核心技术是手写数字识别。这几年来我国开始大力推广的“三金”工程在很大程度上要依赖数据信息的输入,如果能通过手写数字识别技术实现信息的自动录入,无疑会促进这一事业的进展。因此,手写数字的识别研究有着重大的现实意义,一旦研究成功并投入应用,将产生巨大的社会和经济效益。 三、研究的理论意义 手写数字识别作为模式识别领域的一个重要问题,也有着重要的理论价值: 1.阿拉伯数字是唯一的被世界各国通用的符号,对手写数字识别的研究基本上与文化背景无关,这样就为各国,各地区的研究工作者提供了一个施展才智的大舞台。在这一领域大家可以探讨,比较各种研究方法。 2.由于数字识别的类别数较小,有助于做深入分析及验证一些新的理论。这方面最明显的例子就是人工神经网络(ANN)------相当一部分的ANN模型和算法都以手写数字识别作为具体的实验平台,验证理论的有效性,评价各种方法的优缺点。 3.尽管人们对手写数字的识别已从事了很长时间的研究,并已取得了很多成果,但到目前为止机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题(Open problem)。

手写数字识别的实现

燕山大学 课程设计说明书 题目:手写数字识别的实现 学院(系): 年级专业: 学号: 学生姓名: 指导教师: 教师职称: 2012年 6 月 29 日

燕山大学课程设计(论文)任务书 院(系):电气工程学院基层教学单位:自动化仪表系 2012年 6 月 29 日

燕山大学课程设计评审意见表

数字图像中手写数字识别的实现 摘要: 数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。图像中手写阿拉伯数字的识别和其他模式的识别所采用的方法是多种多样的。本文论述了图像中手写阿拉伯数字的识别过程,并对手写数字识别的三种方法(基于规则的方法、基于统计的方法和基于神经网络的方法)进行了简要介绍和分析,并通过实例重点对基于规则的方法进行了描述。最后是对这些方法的简要评价。 关键字: 二值化欧拉数矩阵matlab 目录

一、手写数字图像识别简介 (3) 二、正文:手写数字图像识别的主要流程 (3) 第一步................ .. (3) 第二步 (4) 第三步 (4) 第四步 (4) 三、程序 (4) 四、总结体会 (7) 五、参考文献.........................................................................................................,8 (如有不懂加QQ453543115) 一、手写数字图像识别简介 手写阿拉伯数字识别是图像内容识别中较为简单的一个应用领域,原因有被识别的模式数较少(只有0到9,10个阿拉伯数字)、阿拉伯数字笔画少并且简单等。手写阿拉伯数字的识别采用的方法相对于人脸识别、汉字识别等应用领域来说可以采用更为灵活的方法,例如基于规则的方法、基于有限状态自动机的方法、基于统计的方法和基

cnn实现手写数字识别

import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data In [ ]: mnist = input_data.read_data_sets('MNIST_data',one_hot =Tr ue) batch_size =100 n_batch = mnist.train.num_examples // batch_size def weight_variable(shape): initial = tf.truncated_normal(shape,stddev =0.1) return tf.Variable(initial) def bias_variable(shape): initial = tf.constant(0.1,shape=shape) return tf.Variable(initial) def conv2d(x,W): return tf.nn.conv2d(x,W,strides=[1,1,1,1],padding='SAME') #strides[0] = strides[3] = 1: def max_pool_2x2(x): return tf.nn.max_pool(x,ksize=[1,2,2,1],strides=[1,2,2,1], padding='SAME') #ksize #ksize: A list of ints that has length >= 4. The size of th e window for each dimension o f the input tensor. #In general for images, your input is of shape [batch_size, 64, 64, 3] for an RGB image of 64x64 pixels. #The kernel size ksize will typically be [1, 2, 2, 1] if yo u have a 2x2 window over which you take the maximum. # On the batch size dimension and the channels dimension, k size is 1 because we don't want to take the maximum over mu ltiple examples, # or over multiples channels. #strides # The first 1 is the batch: You don't usually want to skip over examples in your batch, or you shouldn't have included them in the first place. :) # The last 1 is the depth of the convolution: You don't usu ally want to skip inputs, for the same reason. x = tf.placeholder(tf.float32,[None,784])#none为任意维度 y = tf.placeholder(tf.float32,[None,10])

手写数字识别(mxnet官网例子)

手写数字识别 简介:通过MNIST数据集建立一个手写数字分类器。(MNIST对于手写数据分类任务是一个广泛使用的数据集)。 1.前提:mxnet 0.10及以上、python、jupyter notebook(有时间可以jupyter notebook的用法,如:PPT的制作) pip install requests jupyter ——python下jupyter notebook 的安装 2.加载数据集: import mxnet as mx mnist = mx.test_utils.get_mnist() 此时MXNET数据集已完全加载到内存中(注:此法对于大型数据集不适用) 考虑要素:快速高效地从源直接流数据+输入样本的顺序 图像通常用4维数组来表示:(batch_size,num_channels,width,height) 对于MNIST数据集,因为是28*28灰度图像,所以只有1个颜色通道,width=28,height=28,本例中batch=100(批处理100),即输入形状是(batch_size,1,28,28) 数据迭代器通过随机的调整输入来解决连续feed相同样本的问题。测试数据的顺序无关紧要。 batch_size = 100 train_iter=,mnist['train_label'], batch_size, shuffle=True) val_iter = , mnist['test_label'], batch_size) ——初始化MNIST数据集的数据迭代器(2个:训练数据+测试数据)

3.训练+预测:(2种方法)(CNN优于MLP) 1)传统深度神经网络结构——MLP(多层神经网络) MLP——MXNET的符号接口 为输入的数据创建一个占位符变量 data = data = ——将数据从4维变成2维(batch_size,num_channel*width*height) fc1 = , num_hidden=128) act1 = , act_type="relu") ——第一个全连接层及相应的激活函数 fc2 = , num_hidden = 64) act2 = , act_type="relu") ——第二个全连接层及相应的激活函数 (声明2个全连接层,每层有128个和64个神经元) fc3 = , num_hidden=10) ——声明大小10的最终完全连接层 mlp = , name='softmax') ——softmax的交叉熵损失 MNIST的MLP网络结构 以上,已完成了数据迭代器和神经网络的申明,下面可以进行训练。超参数:处理大小、学习速率 import logging

自由手写体数字识别系统的设计与实现

自由手写体数字识别系统的设计与实现 戴建辉 信息科学与工程学院,电子信息工程系 指导老师:吴谨 摘要:本文论述并设计实现了一个脱机自由手写体数字识别系统。文中首先对待识别数字的预处理进行了介绍,包括二值化、平滑滤波、规范化、细化等图像处理方法;其次,探讨了如何提取数字字符的结构特征和笔划特征,并详细地描述了知识库的构造方法;最后采用了以知识库为基础的模板匹配识别方法,并以MATLAB作为编程工具实现了具有友好的图形用户界面的自由手写体数字识别系统。实验结果表明,本方法具有较高的识别率,并具有较好的抗噪性能。 关键词:手写体数字;预处理;模式识别;特征提取 Abstrct: This paper describes and designs a free handwritten number recognition system. Firstly, the pretreatment of the character to be recognized is introduced, including binarization, smoothing, normalization and thinning. Next, how to extract the structural features of the numbers is discussed, and we describe the constructing method of repository. Finally, we use the method of template matching, based on repository, to recognize the digital number. Matlab is used as a program tool to realize this free handwritten digital recognition system with friendly graphical user interface. The experimental results show that the rate of the recognition system is high, and the proposed method is robust to noise. Keywords: handwritten number; pretreatment;pattern recognition; feature extraction 1 引言 OCR(Optical Character Recognition)即光学字符识别技术,是通过扫描仪把印刷体或手写体文稿扫描成图像,然后识别成相应的计算机可直接处理的字符。OCR是模式识别的一个分支,按字体分类主要分为印刷体识别和手写体识别两大类。对于印刷体识别又可以分成单一字体单一字号和多种字体多种字号几类。而手写体识别又可分为受限手写体和不受限手写体两类;按识别方式可分为在线识别和脱机识别两类。 字符识别处理的信息可分为两大类:一类是文字信息,处理的主要是用各国家、各民族的文字(如:汉字,英文等)书写或印刷的文本信息,目前在印刷体和联机手写方面技术已趋向成熟,并推出了很多应用系统;另一类是数据信息,主要是由阿拉伯数字及少量特殊符号组成的各种编号和统计数据,如:邮政编码、统计报表、财务报表、银行票据等等,处理这类

手写体数字识别方法的研究与实现

手写体数字识别方法的研究与实现 摘要 1引言 手写体数字识别是文字识别中的一个研究课题,是多年来的研究热点,也是模式识别领域中最成功的应用之一。由于识别类型较少,在实际生活中有深远的应用需求,一直得到广泛的重视。近年来随着计算机技术和数字图像处理技术的飞速发展,数字识别在电子商务、机器自动输入等场合已经获得成功的实际应用。尽管人们对手写数字的研究己从事了很长时间的研究,并己取得了很多成果,但到目前为止,机器的识别本领还无法与人的认知能力相比,这仍是一个有难度的开放问题,所以对手写数字识别的进一步研究,寻求如何更高效更准确更节能地实现手写数字的自动录入和识别的解决方案对提高经济效益、推动社会发展都有深远的意义。 近年来, 人工神经网技术发展十分迅速, 它具有模拟人类部分形象思维的能力, 为模式识别开辟了新的途径, 成了模拟人工智能的一种重要方法,特别是它的信息并行分布式处理能力和自学习功能等显著优点, 更是激起了人们对它的极大的兴趣。BP(Back Propagation)网络是神经网络中一种,是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,可以很好地解决非线性问题,在函数逼近、模式识别和数据压缩等方面都有很广泛的应用。我们在认真地研究了神经网络的基本原理和机制的基础上, 结合手写体数字识别这一具体课题, 提出了用BP神经网络方法来实现手写体数字 识别的方案。 2手写体数字识别概述 2.1手写数字识别简述 模式识别是六十年代初迅速发展起来的一门学科。由于它研究的是如何用机器来实现人及某些动物对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。 字符识别是模式识别的一个传统研究领域。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索,并为模式识别的发展产生了积极的影响。 手写体数字识别是多年来的研究热点也是字符识别中的一个特别问题。手写体数字识别在特定的环境下,如邮政编码自动识别系统,税表和银行支票自动处理系统等一般情况。当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写的金额部分,更是如此。因此针对这类问题的处理系统设计的关键环节之一就是设计出高可靠性和高识别率的手写体数字识别方法。这个领域取得了飞速的发展,部分是由于更好的学习算法,部分是由于更优良的训练集。美国国家科学学会(NIST)建立了

手写数字识别系统的设计与实现

手写数字识别系统的设计与实现 摘要本手写数字识别系统是一个以VISUAL STUDIO C++ 6.0为编译环境,使用MFC进行图形图像界面开发的系统。主要功能是通过在点击手写数字识别菜单下的绘制数字标签弹出的绘制数字窗口中完成数字的手写,在此窗口中可以进行数字的保存及清屏,然后通过文件菜单中的打开标签打开所绘制的数字,从而进行数字的预处理,其中包括灰度化及二值化处理,然后进行特征提取,最后实现数字的识别。本系统的界面设计友好,流程正确,功能也较为完善。实验结果表明,本系统具有较高的识别率。 关键词:绘制数字;预处理;特征提取;特征库;数字识别

目录 前言 (1) 概述 (2) 1 需求分析 (4) 1.1 功能需求分析 (4) 1.2 性能需求分析 (4) 1.3 数据需求分析 (5) 1.4 相关软件介绍 (5) 2 手写数字识别系统的设计与基本原理 (6) 2.1 系统整体功能模块设计 (6) 2.2 手写数字识别系统的基本原理 (6) 2.2.1 数字图像的绘制 (6) 2.2.2 图像的预处理 (6) 2.2.3 图像的特征提取 (7) 2.2.4 特征库的建立 (8) 2.2.5 图像数字的识别 (8) 3 手写数字识别系统程序设计 (8) 3.1 数字图像的绘制 (8) 3.2数字的特征提取 (15) 3.3 模板特征库的建立 (18) 3.4 数字的识别 (20) 总结 (23)

致谢.................................... 错误!未定义书签。参考文献 (23)

前言 自上世纪六十年代以来,计算机视觉与图像处理越来越受到人们的关注,并逐渐成为一门重要的学科领域。而作为它们的研究对象的数字图像,也因为它含有研究目标的丰富信息而成为越来越重要的研究对象。图像识别的目标是用计算机自动完成某些信息的处理,用来替代人工去处理图像分类及识别的任务。 手写数字识别是图像识别学科下的一个分支,是图像处理和模式识别领域研究的课题之一,由于其具有很强的实用性一直是多年来的研究热点。由于手写体数字的随意性很大,例如,笔画的粗细,字体的大小,倾斜等等都直接影响到字符的正确识别,所以手写体数字识别是一个很有挑战性的课题。在过去的数十年中,研究者们提出了许多的识别方法,取得了较大的成果。手写体数字识别实用性很强,在大规模数据统计(如例行年检,人口普查),财务,税务,邮件分拣等等应用领域中都有广阔的应用前景。本课题拟研究手写体数字识别的理论和方法,开发一个小型的手写体数字识别系统。 在研究手写体数字识别理论和方法的基础上,开发这样一个小型的手写体数字识别系统需要完成以下主要方面的研究与设计工作:手写数字绘制的问题、数字的预处理问题、特征提取问题、特征库的建立问题、数字识别问题。

手写数字识别代码解释

一. 进行数据预处理 1导入相关库 from keras.datasets import mnist 从keras的datasets中导入mnist数据集 from keras.utils import np_utils 从keras导入将整型标签转换方法utils import numpy as np 导入Python扩充程序库numPy,作为np调用。numPy支持大量的维度数组与矩阵运算,也针对数组运算提供大量的数学函数库。 np.random.seed(10) 设置随机数种子为10 。将随机数发生器初始化为恒定值,以获得可重复结果。 2.读取MNIST数据 (X_train, y_train), (X_test, y_test) = mnist.load_data() 返回手写图片的两个tuple,第一个tuple存储已经人工分类好的图片及标签,标签指出该图片表示的数字(0—9),供训练使用;第二个tuple存储未分类的图片,在用第一个tuple 训练完后,可以对第二个tuple利用神经网络进行分类,根据实验结果的真实值与预测值对比得到相应的损失值,再利用反向传播进行参数更新,再进行分类,然后重复前述步骤直至损失值最小。 元组不能修改 reshape to be [samples][pixels][width][height] X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32') X_test = X_test.reshape(X_test.shape[0], 1, 28, 28).astype('float32') 将fetures(数字图像特征值)转换(reshape)为6000 x 28 x 28 x 1的四维矩阵 CNN的输入是4维的张量(可看做多维向量),第一维是样本规模(图像数量),第四维是像素通道(这里为1通道,单色),第二维和第三维是长度和宽度。并将数值归一化和类别标签向量化。 二. 建立模型 1.导入所需模块

手写数字识别的实现

手写数字识别的实现 摘要: 手写数字识别是模式识别的应用之一。文中介绍了手写数字的一些主要特征,具体识别方法是通过主成分分析(PCA)和最近邻方法应用matlab等计算机软件来实现。 关键词:手写数字、主成分分析(PCA)、最近邻方法 1. 手写数字的特征分析 数字类别不但少,而且笔划简单,尤其是手写数字个个差异大。数字识别的关键在于能否找到有效的特征,[2] 就给出了数字的多个特征,选取的特征应具有可分辨能力并尽可能的少,分辨能力在应用中而言就是特征能够使得不同类别的个体在特征值上相差大,同类别特征值相差小。特征值小一方面是为了减少计算量,另一方面也减少了信息冗余。目前研究的手写数字特征主要有笔画密度特征、粗网格特征、重心以及重心距特征、首个黑点位置特征、投影特征以及空间域变换特征等,除了以上特征,也不断的有新的特征[1]被提出。 1.1 数字的特征 1.1.1 单个数字的特征 单个数字特征是指特定数字普遍具有的特征。例如如果数字竖直长度比上横向宽度大于某个值比如 4 ,那么很有可能是数字 1 ,如果数字内有两个封闭的区域则很可能是字8 ,如果只有一个封闭的区域,且封闭区域的重心偏上则很可能是数字9 (同理可判断数字 6 ),以上都是这些数字普遍具有的特征,但因为数字手写的原因,也包含了大量不规则的例子,如图 1 ,则需要进一步 借助其他特征进行识别。 单个数字特征可以辨别出那些具有典型数字特征的手写数字,但计算复杂并且在手写数字识别中误差大,但是作为正式识别过程前的预识别可减少运算量和时间。 1.1.2 笔画密度特征 笔画密度特征是指不同数字在水平方向、竖直方向以及其他角度方向上笔画密度特征。如图 2 数字 1 在竖直方向上笔画密度大,而在水平方向上笔画密度小,而数字8 在倾斜方向上笔画密度大。找到这样的特征我们可以间隔一定行

相关文档
相关文档 最新文档