第10讲--统计模式识别--手写数字识别讲义.pptx

第10讲--统计模式识别--手写数字识别讲义.pptx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
统计模式识别 手写数字识别 第10讲 模式识别的关键 模式准确表达 手写数字的模式如何表达? 采取的模式 是一个小图形中含有的点,与数字之间的一个模型。 线性的?还是非线性的? 非线性模型的典型算法 人工神经网络—ANN Artificial Neural Network ANN 由输入层 input layer 隐含层:hidden layer 可以多层 输出层:output layer 输入层 --输出层 每个节点间,有权重w 计算 s=Σxiwi ,再取函数值,得到输出值,但型函数 sigmoid O=1/(1+e(-s)) Back propogation 手写数字图像处理 将每个数字的小图像整理出来 将每个整理的数字小图像转换为一个向量,输入神经网络,训练建模型 预测 Python图像处理包 PIL包 from PIL import Image 加载图像: im = Image.open(rE:\pyteach\digit.jpg) 去除背景灰度 im = im.convert(“L”) # 转换为灰度8位图像 im = im.point(lambda x: 255if x 196 else 0) #代表数字的图像的像素值是0 im = im.convert(1) #1位像素,黑和白 im.save(sample_1.bmp) 小数字方块的“挖出来” 画图中找出行列的大致位置 xs = [0, 45, 88, 125, 170, 213, 251, 289, 324, 364, w] ys = [0, 39, 89, 135, 183, h] 10 Python挖小图像块 box = (x, y, xs[i+1], ys[j+1]) # 一个字符所在图像的位置 t = im.crop(box).copy() # 将字符挖出来 11 挖小数字的程序 def split(im): # im为去除背景后的整个图像 assert im.mode == 1 result = [] w, h = im.size xs = [0, 45, 88, 125, 170, 213, 251, 289, 324, 364, w] ys = [0, 39, 89, 135, 183, h] for i, x in enumerate(xs): if i + 1 = len(xs): break for j, y in enumerate(ys): if j + 1 = len(ys): break box = (x, y, xs[i+1], ys[j+1]) # 一个字符所在图像的位置 t = im.crop(box).copy() # 将字符挖出来 t.save(e:\\pyteach\\+str((i + 1) % 10)+_+str(j)+.bmp) 12 标准化 提取出来的每个字符图像,大小不一,字符在小图像中的位置不居中 每个小图像的大小都是32*32,且字符的上下、左右边距一样 小图像的标准化 def to_32_32(im,ii,jj):# 参数im是待处理的小图像,ii,jj的结合形成图像文件的名字 # 图像分割时保存的文件名0_1.bmp,代表字符0的第二个小图像 im = im.convert(L) # 转灰度 im = im.point(lambda x: 255 if x 196 else 0) w,h=im.size xrow=[] ycol=[] for i in range(w): # 找字符在图像中最左右、上下的起始位置 for j in range(h): pixel=im.getpixel((i,j)) if (pixel1): xrow.append(i) ycol.append(j) 小图像的标准化 xLength=max(xrow)-min(xrow)+1 # 字符占的宽度 yLength=max(ycol)-min(ycol)+1 #字符占的高度 box = (min(xrow), min(ycol), max(xrow)+1, max(ycol)+1) #字符占据的小巨型

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档