基于决策树的手写数字识别的应用研究

2018-04-23 09:13赵力衡
软件 2018年3期
关键词:手写决策树痕迹

赵力衡

(四川大学锦城学院,四川 成都 611731)

0 引言

随着近年来信息化技术的迅速发展,信息技术对社会各个行业的影响与日俱增,为人们的生产和生活带来了极大的便利,同时也带来了新的挑战。现在,越来越多的行业在倡导“无纸化”和“信息化”的办公和生活,把各种信息记录在计算机系统中,这使得办公和生活变得更加便捷也更加环保。其中一个重要的场景就是通过计算机系统准确识别机器字库数字和手写数字,并将它们读入到计数机系统中。这种需求在金融、教育、科学等多个领域都有很广泛的应用场景,非常有实用价值,那么如何准确的识别这些数字就成了当前国内外相关研究的难点和热点问题之一。

相对于手写数字,机器字库的数字具有明确的规范写法,相对容易识别,而手写数字因人的习惯不同和写字的随意性,更加难以准确识别。比如同样的数字“7”,就存在以下风格迥异的多种写法:

图1 不同风格的手写数字“7”Fig.1 Handw ritten number“7”in different styles

从图中可以看出,手写数字风格不但变化多端,规律很难识别,而且一个人的手写数字可能会与另一个人手写的其它数字非常相似,甚至一个手写数字看起来更像其它数字。比如图 1中左起第二个“7”,看起来更加接近数字“9”。这些特性显然增加了对手写数字识别的难度,因此提出方法主要研究对象就是如何精确快速的识别出这些风格不同的手写数字。

传统的方法难以准确的识别出手写数字多变的风格,因此识别准确率较低。目前识别手写数字的常见方法是采用TensorFlow等深度学习方法[1-3],这种方法识别精度高,但缺点在于计算量大,耗时较长,并对计算平台的要求较高。为此,提出一种基于决策树(Decision Tree)的方法进行手写数字的识别。实验结果表明,所提方法能在保持计算量较小的前提下精确、快速地识别出各种手写数字,可作为手写数字的有效识别手段。

1 数据解析

1.1 数据选择

采用的数据来源于 MNIST手写数据集(The MNIST database of handwritten digits),其数据来自于美国国家标准与技术研究所(National Institute of Standards and Technology,简称NIST),由来自250名不同人的手写数字构成,能较全面的反映出各种手写字体的风格,也是目前国内外手写数字识别的一个典范数据源。从数据集中取出包含0-9共10个数字的10,000条记录作为训练集样本。数据分布如下表所示:

表1 样本信息Tab.1 Sample information

从图1中可以看出,识别图片中的数字实质上就是识别出图片中不同位置的颜色值的变化,根据颜色值变化的特点来判断图片中的数字是多少。因此首先采用Optical Character Recognition (OCR)方法实现从图像文件到文本文件的转化,即根据图片像素排列顺序将文件转化成颜色值矩阵。由于手写数字的数值与颜色无关,故提取MNIST样本图片中像素的灰度值作为数字特征。样本图片长宽都为28个像素,因此一个数字图片可以转换成一个 28*28的标准灰度值矩阵,如下图所示:

图2 手写数字及其灰度值矩阵Fig.2 Handw ritten digit and gray value matrix

数字图片的灰度值可以使用下面矩阵(1)表示:

其中aij表示第i行第j列像素的灰度值,其中0≤i, j

可以看出,上图右侧数字矩阵能够详细准确地反映出对应数字的特点,适合作为数字识别的重要依据。将样本中的每个数字图片作为一条记录,存储其灰度值矩阵作为决策树模型的训练集。

1.2 数据分析

统计训练集中从0~255级灰度值分别出现的频率,如下图所示:

图3 灰度值出现频率统计Fig.3 Frequency statistics of gray value

上图左侧显示了训练集中出现频率最高的9个灰度,可见其灰度值分布极不均匀。容易看出,表示空白的灰度值“0”出现频率最高,然后是表示手写痕迹的高亮度灰度,中间灰度相对较小。可见使用灰度值作为特征能很好地区分出背景灰度和手写数字痕迹灰度。

再进一步,从上图右侧的灰度频率统计图中还可以看出当灰度值在[1,188]范围内时出现的频率几乎都在0-6000之间,显得较为稳定,并且灰度值越高时,出现频率越偏向于6000;灰度值越低时,出现频率更低。这一现象也符合手写数字特征。当使用中性笔、铅笔等工具落笔于纸张等载体时,通常会出现笔画中间压力大、痕迹深,而笔画两侧压力小、痕迹浅的现象,并且由于纸张的浸润,会有较少的浅色痕迹在笔迹边缘出现。但需要注意的是,大于0值的灰度并不是都意味着表示手写数字痕迹,也可能是纸面污渍、墨点或连笔等,如图1右起第一、二个数字。训练集中的灰度值较为完整的反映了这一现象,可见灰度值还能很好地反映出手写字体的细节特征。

总的来看,数字图片的灰度值矩阵非常适合于作为手写数字的分析依据。

2 数据建模

2.1 模型设定

训练集中已知数字的灰度矩阵特征和数字的值。当数字的值为已知条件时,可以根据相同数字在灰度值矩阵对应位置 aij的值的关联变化来分析同一手写数字的相似特征,以及不同数字之间的差异。这是一个根据已知条件不断细分的过程,和决策树思路相似[4]。决策树是在已知不同情况发生的概率基础上,根据条件不断细分来分析期望值概率的方法,因此,决策树模型很适合用于对手写数字进行分析。决策树C5.0由于有在面对输入字段很多时非常稳健、并支持多次多个子组的分割的特点,故方案中选取决策树C5.0进行建模[5]。设置模型主要方法和参数如表2所示。

2.2 模型验证

模型执行结果在Web图中详细结果数据如图4所示。

表2 决策树模型所用主要方法/参数Tab.2 Main methods and parameters in decision tree model

图4 W eb图结果显示Fig.4 W eb diagram results

从图中可以看出,实验模型能精确地识别出训练集中10,000个样本中9,998个样本的实际数值,仅有2个样本未能正确识别,可以证明该决策树模型在分析手写数字时是成功的。

分析未能正确识别的样本被错误分类的原因,以被误分的样本数字“6”为例,该样本被错误分到数字“0”所在类别,样本图片如图5所示。

可见该样本的写法确实很接近于数字“0”,再检查数字“0”的样本,发现样本中存在多个写法与该错误分类的数字相似的数字“0”,如图6所示。

图5 被错误分类的样本数字“6”Fig.5 M isclassified sample“6”

图6 数字“0”的部分样本Fig.6 Partial samples of the number“0”

可见被误分的数字“6”与数字“0”中存在多个样本有相似笔迹是该样本被错误归类的主要原因。这种笔迹不规范的特征由于手写数字的随意性而难以避免,因此也成为手写数字难以被正确识别的主要原因之一。

2.3 数据预测

从MNIST数据集中随机读取包含了0-9共10个数字的100个样本作为测试集,将图片数字与执行模型分析得到的数字进行对比,如图7所示。

图7 手写数字识别结果Fig.7 Recognition of handwritten digits

图中number_count表示测试集中各个数字的真实样本个数,$C-number_count表示模型识别出的各个数字的个数,纵轴表示个数统计。从图中可以看出,测试集各个数字的机器识别个数与数字的实际个数是一致的。实际上,在实验中的17次测试中,全部数字均能正确识别。

2.4 二值化分析

通过上面分析,可以发现在分析手写数字时,用于描述数字痕迹的特征并不一定需要256级灰度来表示,仅需“0”和“1”两个值就能满足对数字轨迹的描述:没有手写数字痕迹的像素点使用“0”值表示,有手写数字痕迹的像素点使用“1”值表示。合理选择阈值的二值化处理可以简化图片特征信息,但也会使图片丢失部分信息,比如手写笔画痕迹中间深、两侧浅等特征将无法体现。分别以灰度值27、127和220为阈值,将训练集二值化,模型执行结果如图8所示。

可见二值化的特征虽然简化了运算,但也因为丢失了部分信息而导致计算精度有所降低。同时在实验中发现,二值化后的模型计算时间相较采用真实灰度值的模型的计算时间并没有明显的减少。因此在提出方法中,依然采用真实灰度值作为训练集进行计算。

图8 分别以27(左)、127(中)和220(右)为阈值的二值化模型运行结果Fig.8 Results of binary models with threshold of 27 (left) 127 (middle) and 220 (right)

3 结论

针对手写数字的识别,提出使用机器学习中决策树型模型分析数字图片集中像素的灰度值的方法。该方法能在准确识别出不同的手写数字的同时,保持计算量相对较小、计算较快的特点,能在配置较低的系统上较好的完成对手写数字的识别,这使其能在大多数平台上运行,便于推广。从实验结果可以看出,该方法识别训练集手写数字的精度已超过人工识别的精度,达到了99.98%,能正确识别出多数肉眼难以辨别的手写数字,已达到很多商用项目的要求,具有较强的商用价值。

[1] 李福卫, 李玉惠. 基于卷积神经网络的图像清晰度识别方法[J]. 软件, 2017, 38(7): 6-9.LI F W, LI Y H. CNN Image Segmentation Recognition Method Based on Deep Learning[J]. Software, 2017, 38(7):6-9. (in Chinese)

[2] 章敏敏, 徐和平, 王晓洁, 等. 谷歌TensorFlow机器学习框架及应用[J]. 微型机与应用, 2017, (10): 58-60.ZHANG M M, XU H P, WANG X J, et al. Application of Google TensorFlow machine learning framework[J]. Microcomputer & Its Applications, 2017, (10): 58-60. (in Chinese)

[3] 张俊, 李鑫. TensorFlow平台下的手写字符识别[J]. 电脑知识与技术, 2016, (16): 199-201 ZHANG J, LI X. Handwritten Character Recognition Based On TensorFlow Platform[J]. Computer Knowledge and Technology,2016, (16): 199-201. (in Chinese)

[4] IBM SPSS Modeler. 决策树之银行行销预测应用分析.[EB/OL]. https://www.ibm.com/developerworks/cn/data/library/ba/ba-1412spssmodelerbank.IBM SPSS Modeler. Application Analysis of Bank Marketing Prediction Based on Decision Tree. [EB/OL]. https://www.ibm.com/developerworks/cn/data/library/ba/ba-1412spssmod elerbank. (in Chinese)

[5] 陈英, 马仲兵, 黄敏. 优化的C4.5决策树算法[J]. 软件,2013, 34(2): 61-64.CHEN Y, MA Z B, HUANG M . Improved A lgorithm off C4.5 Decision Tree[J]. Software, 2013, 34(2): 61-64. (in Chinese)

猜你喜欢
手写决策树痕迹
抓住身边事吾手写吾心
一种针对不均衡数据集的SVM决策树算法
基于集成学习的MINIST手写数字识别
决策树和随机森林方法在管理决策中的应用
基于决策树的出租车乘客出行目的识别
深度学习在手写汉字识别中的应用综述
基于肺癌CT的决策树模型在肺癌诊断中的应用
积淀岁月的痕迹