手写字符识别系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

版本:V1.0

手写字符识别系统设计说明书

湖南大学信息科学与工程学院

二0一四年六月

目录

1引言 (2)

1.1目的 (2)

1.2阅读对象 (2)

2项目概述 (2)

2.1项目简介 (2)

2.2项目任务 (2)

2.3实验环境介绍 (2)

3任务描述 (3)

3.1背景资料概述 (3)

3.2系统组成 (3)

3.3系统评估 (5)

4机器学习算法介绍 (5)

4.1支持向量机 (5)

4.2BP神经网络 (6)

4.3决策树方法 (7)

5特征选择 (8)

6参考资料和实用网站 (9)

1引言

1.1目的

随着图像处理技术与机器学习技术的发展,机器视觉技术已广泛应用于工业生产、日常生活及城市管理中。字符识别作为机器视觉的一种基本应用,在车牌识别、光学字符识别(OCR,Optical Character Recognition)等应用中均有涉及。

本说明书旨在介绍基于常用机器学习算法(如BP神经网络、支持向量机、朴素贝叶斯、K近邻分类)的手写字符识别系统的设计需求,设计方法和环境介绍,帮助学生了解字符识别的基本流程,常用机器学习算法的基本原理,掌握机器视觉应用的开发技术。

1.2阅读对象

本说明书的阅读对象有:

●数字媒体类相关专业学生

●相关客户人员,体验用户等

2项目概述

2.1项目简介

本项目旨在基于机器学习算法实现手写字符(包括数字和大小写字母)的识别。该系统通过读入一张图片或通过鼠标绘制字符的方式,实现识别对象的输入,通过BP神经网络、支持向量机、朴素贝叶斯或K近邻分类方法实现手写字符的识别,并输出识别的结果。

2.2项目任务

项目名称:手写字符识别系统的设计

项目内容:1)手写字符的输入;

2)图片预处理与特征提取;

3)机器学习与字符分类;

项目周期:1个月(2014年8月25日——2014年9月20日)

参与人数:2~4人。

2.3实验环境介绍

A)Visual Studio 2010

Visual Studio 2010是继VC6.0后微软推出的一款新的高级语言编译器,可支持C#、C++、Basic以及Asp等编程语言的开发,具有强大的代码调试功能,是一个功能强大的可视化软件集成开发工具。本项目将使用Visual Studio 2010进行代码的编辑、编译与调试。

B)Visual Assist

为了提高代码编写的效率,可安装Visual Assist X插件。Visual Assist X插件是WholeTomato公司针对Visual Studio开发环境开发的一款代码编写辅助工具,能够实现变量名、函数名的自动提示与补全,以及函数定义与声明之间的快速切换,从而达到提高开发效率的目的。

C)OpenCV

OpenCV(Open Computer Vision)是一个开源的跨平台计算机视觉库,可以运行于Linux、Windows和Mac OS操作系统上。它轻量级而且高效,实现了图像处理和计算机视觉方面的很多通用算法。本项目可利用OpenCV实现图像的读取、显示以及一些基本的预处理算法。

网址:/

3任务描述

3.1背景资料概述

机器学习:利用计算机模拟或实现人类的学习行为,以获取新的知识或技能。因此,机器学习算法通常包括两个阶段:训练和分类。训练阶段,即利用一些已知的训练样本训练得到机器学习算法模型的相应参数。该阶段类似于小孩认字时的学习阶段,老师告诉小孩各种字具有什么样的特征。分类阶段,即对于训练好的算法模型,给定输入数据,计算机自动给出数据的分类。该阶段类似于小孩在进行了学习后可以自主的识字。目前常用的机器学习算法包括:支持向量机(SVM,Support Vector Model)、BP神经网络、决策树

3.2系统组成

基于机器学习的手写字符识别系统通常包括四个部分:图像预处理、特征提取、字符训练与字符识别四个阶段,如图1所示。

图 1 字符识别系统的功能框架

图像预处理:主要包括图像的去噪(中值滤波、高斯滤波),图像的二值化(将彩色图像或灰度图像转化为二值图像),形态学处理(利用闭操作,即先膨胀再腐蚀,将断裂的笔画进行修复)。

特征提取:字符图像由一系列二进制的0和1组成,虽然这些数据包含了字符的全部信息,但是这些数据也包含了大量冗余的信息,并不一定适合于机器进行识别。正如我们人类在识别各种物体的时候,也是抓住了物体的某些本质特征。因此,在进行字符识别前,从字符图像中提取尽可能好的特征对于提高识别的正确率具有重要的意义。

常用的特征提取的方法包括:(1)直接将字符图像看成是一个一维特征向量,无需其他处理。该方法简单,在有些时候也行之有效,但由于特征维数较高,往往需要大量的训练样本学习算法才能收敛。(2)主成分分析法(PCA,Principal Component Analysis),该方法在人脸识别中应用较多。(3)基于不变矩的方法字符训练:给定训练样本,每个样本包括字符图像和对应的字符信息,利用相应的机器学习算法进行学习,得到算法模型的各种参数。本项目中用到的机器学习算法包括:支持向量机、BP神经网络和决策树方法。

为了便于程序的调试,字符训练功能通常作为一个独立的应用程序,无需GUI界面。训练样本可按如下方式组织,相同字符的图像放在相同的文件夹下,文件夹的名称表明了图像的字符类别。字符训练程序读取所有文件夹下的训练样本进行训练。

字符识别:字符训练完成后,对于用户输入的一幅图像,利用训练得到的模型识别出对应的字符。该过程需要实现的功能如图2所示,用户载入一幅字符图像或利用鼠标绘图,通过选择响应的机器学习算法,利用字符训练阶段中获得的模型,识别得到相应的结果。

图 2 字符识别功能

3.3系统评估

系统完成后,需评估系统的字符识别正确率,并比较不同算法的性能好坏。评估过程中,需先建立测试集,测试集应包括两部分,一部分即为训练集的子集,另一部分应与训练集不同;而后统计测试集中每个字符图像的识别正确与否情况,并给出各个算法的分析与对比。

4机器学习算法介绍

4.1支持向量机

相关文档
最新文档