基于最小错误率的贝叶斯决策实现手写数字识别

1、实验目的

  本次试验的目的是建立一个手写数字识别系统,能够准确 的提取用户在手写板上写出的数字,并且能够正确地识别出来。

2、实验方法及步骤

  此次实验选择MATLAB中的GUI界面来构建实验的平台框架,然后采用基于最小错误率的贝叶斯决策来作为识别方法,对手写数字进行识别。需要在GUI界面中搭建好所需的对象,并写入完成相关功能的程序。其实现的功能是首先能够识别用户输入的手写数字,并提取输入数字的特征;然后将得到的手写数字特征加上对应数字的标签,将其存入样本库中,用于后面手写数字的对比识别;最后根据用户输入的手写数字,提取特征并在样本库中根据贝叶斯决策来判断手写数字的类型,最后显示识别结果。主要分为以下四个步骤:

(1)平台搭建

  本次手写数字识别系统的编程环境为MATLAB,通过在MATLAB的GUI界面中搭建框架,并在对应的对象的回调函数中编写相关的程序来实现手写数字识别的功能。
  在GUI界面中需要的对象有两个静态文本框、一个坐标区、一个可编辑文本,搭建的界面及其功能如图1所示。
图1  手写数字识别系统GUI界面

图1 手写数字识别系统GUI界面

  由图可以看出每个对象都有各自的的功能:“手写板”坐标用于用户书写数字;“特征提取”可编辑文本用于显示手写数字的每个特征值,以便后面的对比识别;“清除”按钮可以清除用户写在“手写板”上的数字以及“特征提取”中数字特征值;“提取特征”按钮的功能是对“手写板”中的数字进行识别处理,提取相应的特征值并输到“特征提取”可编辑文本中显示;“保存为样本”按钮则是用于建立样本数据库,将前期的样本特征保存到样本库中,以便后面数字的识别;而“识别”按钮则是根据当前输入的手写数字特征,在样本库中寻找对应的数字类型。
  此次手写数字识别系统的平台搭建就如图1所示,然后通过搭建的界面根据需要实现的功能对相应的对象的回调函数编写程序。

(2)特征描述

  特征描述就是对手写数字进行分析处理,得到数字的特征,然后根据每类数字各自的特征值来识别手写数字的类型。
在此次设计中,手写数字特征描述的步骤为:首先将含有全部特征信息的手写数字图像从坐标轴中提取出来,将提取出来的书写数字图像进行二值化处理;然后将处理后的图像分成 6 × 6 6\times6 6×6小格,每个网格中全部1值像素点个数与全部像素点个数之比就是手写数字在这一网格中的特征值,得到36个网格中的特征值并存入特征矩阵feature中,即feature矩阵包含了手写数字所有的特征信息;最后显示手写数字的特征图,判断每个网格的特征值是否大于预先设定好的阈值(此次设计中取0.1),若大于阈值,则此网格全部像素点的值为1,反之网格全部像素点的值为0。其实现如图2所示。
图2  手写数字特征显示

图2 手写数字特征显示

(3)建立最小错误率贝叶斯决策分类器

①分类器原理
  对于具有多个特征参数的样本(本次设计samplelib数据样本d=36有个参数),其正态分布的概率密度函数可定义为
p ( x ) = 1 ( 2 π ) d 2 ∣ Σ ∣ 1 2 exp ⁡ { − 1 2 ( x − μ ) Σ − 1 ( x − μ ) T } p(\textbf{x})=\frac{1}{(2\pi)^{\frac{d}{2}}|\Sigma|^{\frac{1}{2}}}\exp\{-\frac{1}{2}(\textbf{x}-\mathbf{\mu})\Sigma^{-1}(\textbf{x}-\mathbf{\mu})^{T}\} p(x)=(2π)2d∣Σ211exp{ 21(xμ)Σ1(xμ)T}式中, x = [ x 1 , x 2 , ⋯   , x d ] \textbf{x}=[x_{1},x_{2},\cdots,x_{d}] x=[x1,x2,,xd]是d维待识别样本特征向量, μ = [ μ 1 , μ 2 , ⋯   , μ d ] \mathbf{\mu}=[\mu_{1},\mu_{2},\cdots,\mu_{d}] μ=[μ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值