手写数字识别实验报告_机器视觉学习笔记:基于Knn的简单手写数字识别算法

Knn(k-Nearest Neighbor)学习是一种常用的监督学习方法,采用的"近朱则赤,近墨则黑"的思想,给定测试样本,基于某种距离度量找出训练集中与其靠近的k个训练样本,然后基于k个"邻居"的信息来进行预测,通常用"投票法"来预测结果。

Knn学习是"懒惰学习"的代表,它的训练阶段只是把样本保存起来,训练开销为0,待收到测试样本后再进行处理。

本文介绍一种Knn的简单手写数字识别算法,首先明确手写的数字是在128x128的画板上。

cc02ebd8e68ff198a86256295aa54dc4.png

图1:手写示例

算法步骤:

1. 在128x128画板下绘制0-9各100张训练样本;

2. 归一化到32x32大小图像。

635183091cd125ecdfd5b864723489ca.png

图2:手写示例

c47bf780871ae7735c3a1d3f5373a87d.png

图3:归一化示例

3. 提取特征,这里只讲简单特征,提取图像的目标值和,图像上半部分目标之和,图像下半部分目标之和,第一个特征v1为上半和除以总和,第二个特征v2为下半和除以总和。

c47bf780871ae7735c3a1d3f5373a87d.png

图4:总和

49c9babe9f149130e63998e129cae8d2.png

图5:上半和

060902cd9ab9bd5e6ceb47a619bc5cf4.png

图6:下半和

4. 将训练样本分别提取特征,做成1000x3的矩阵。第一列为特征v1,第二列为特征v2,第三列为类别,0-9的数字。

5. 测试样本按3提取特征v1,v2,与训练样本特征矩阵的前两列求距离,选出欧氏距离最小的10组,统计他们的类别,最多的类别如大于5,则确定为该类别。

70ad306ee37ac9702edb77b0dcb2580d.png

图7:识别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值