基于BP神经网络的手写体数字识别matlab仿真

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

5.算法完整程序工程


1.算法运行效果图预览

2.算法运行软件版本

matlab2022a

3.部分核心程序



filename = dir('images\*.bmp');     %图像文件格式
load BP.mat

filename = dir('test\*.bmp');     %图像文件格式
%测试集测试
figure;
for k=1:60
    filename(k).name
    p(1:256,1)=1;                %初始图像二值化像素
    p1=ones(16,16);
                 %加载训练好的网络
    x=imread(filename(k).name);
    
 
    bw=im2bw(x,0.5);              %二值化
    [i,j]= find(bw==0);           %寻找数字所在的像素索引
    imin=min(i);                  %求取数字像素占据空间的最小行索引
    imax=max(i);                  %求取数字像素占据空间的最大行的索引
    jmin=min(j);                  %求取数字像素占据空间的最小列的索引
    jmax=max(j);                  %求取数字像素占据空间的最大列的索引
    bwl=bw(imin:imax,jmin:jmax);  %把图像由39×39缩放为实际数字像素所需的空间
    rate=16/max(size(bwl));       %求取放大比率
    bwl=imresize(bwl,rate);       %按比率放大图像
    [i,j]=size(bwl);              %求取行列数
    i1=round((16-i)/2);           %取整
    j1=round((16-j)/2);
    p1(i1+1:i1+i,j1+1:j1+j)=bwl;  %图像从右向暂存
    p1=-1.*p1+ones(16,16);        %将图像反色
    for m=0:15                    %样本特征存于输入矢量
         p(m*16+1:(m+1)*16,1)=p1(1:16,m+1);  
    end
    [a,Pf,Af]=sim(net,p);      %测试
    subplot(10,6,k);
    imshow(x);                 %显示原始图像
    a=round(a);                %显示识别结果
    title(['识别结果:',num2str(a)]);                 
end
05_002m

4.算法理论概述

        人工神经元网络是生理学上的真实人脑神经网络的机构和功能,以及若干基本特性的某种理论抽象、简化和模拟而构成的一种信息处理系统。从构造上大致可分为最简单的感知器网络、多层前馈型神经网络、反馈型神经网络和自组织神经元网络等。

        由于神经网络具有可并行计算、分布式信息存储自适应和学习能力强等优点,在很多领域获得了极其广泛的应用。尤其是BP网络,即反向传播网络,其应用最为广泛。BP网络是利用非线性可微分函数进行权值训练的多层网络,在函数逼近、模式识别、信息分类及数据压缩等领域得到了广泛的应用。

        但是神经网络学习过程的算法在数学计算上都比较复杂,过程也比较繁琐,容易出错。因此,采用计算机辅助进行神经网络设计与分析成了必然的选择。目前,在比较成熟的神经网络软件包中,MATLAB的神经网络工具箱应用最为广泛。MATLAB是矩阵实验室(Matrix Laboratory)的简称,它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

       手写体数字识别系统的结构图如图所示。

        在对字体进行预处理后要进行的是特征的提取,选取图像的灰度特征时要考虑到特征量的维数与识别的准确率的要求。例如,我们将一个字符归—化为17像素×8像素点阵图。按每个像素位为0或1,形成网络的136个输入特征值。得到的特征图像是二值图像,对应一个元素为0和l的17像素×8像素的特征矩阵,然后是对特征图像编码。编码规则是,按照从左至右、从上到下的顺序,依次扫描整个特征矩阵,将每一行的0和1转换成一个136像素×1像素的特征列。将每一个字符都进行编码后,顺序送送入已经训练好的神经网络识别,识别结果最后以文本格式输出。

       BP网络是神经网络的一个分支,又称为多层感知或误差信号反馈网络。它是目前较流行的,应用最广的神经网络模型。BP网络是一种有教师的学习网络,其主要特点是能够实现从n到m维的非线性映射,它还可以采用梯度下降法实现快速收敛。如图所示为BP网络示意图。

5.算法完整程序工程

OOOOO

OOO

O

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/201658.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu16.04.4系统本地提权实验

目录 1.介绍: 2.实验: 3.总结: 1.介绍: 1.1:eBPF简介:eBPF(extendedBerkeleyPacketFilter)是内核源自于BPF的一套包过滤机制,BPF可以理解成用户与内核之间的一条通道,有非常强大的…

token认证机制,基于JWT的Token认证机制实现,安全性的问题

文章目录 token认证机制几种常用的认证机制HTTP Basic AuthOAuthCookie AuthToken AuthToken Auth的优点 基于JWT的Token认证机制实现JWT的组成认证过程登录请求认证 对Token认证的五点认识JWT的JAVA实现 基于JWT的Token认证的安全问题确保验证过程的安全性如何防范XSS Attacks…

(一)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…

uniapp ios 授权弹窗 uniapp弹出框怎么实现

新版本的信息弹窗组件 可以弹出很多条信息,并单独控制消失时间、点击消失。 用循环来生成很多个弹窗,用this.$refs来传值,并添加数组。 1.布局 2.js 具体流程。需要一个弹窗,基本信息传入组件,处理后添加入数组&am…

什么是半监督学习

1 概述 1.1 定义 半监督学习(Semi-Supervised Learning)是机器学习中的一个重要分支,它介于监督学习和无监督学习之间。半监督学习利用少量标注数据和大量未标注数据共同训练模型,旨在充分挖掘未标注数据中潜在的信息和模式&…

VUE语法-ref和reactive响应式数据引用

1、响应式概述 在vue中定义一个参数,当这个参数在使用中发生了变化,在页面中对这个数据应用的地方都会同步的发生变化,这个就是数据响应式。 2、创建一个非响应式的参数 该程序中采用的是VUE3的用法: 1、在程序中定义了一个局…

【长文干货】Python可视化教程

文章目录 数据介绍Matplotlib散点图折线图柱形图直方图 Seaborn散点图折线图柱形图直方图 Bokeh散点图折线条形图交互式 Plotly基本组合优化:定制化下拉菜单 总结 数据介绍 在这个小费数据集中,我们记录了20世纪90年代初期餐厅顾客在两个半月内给出的小…

深入了解Spring Boot中@Async注解的8大坑点

文章目录 1. 缺少EnableAsync注解2. 异步方法需独立3. 不同的异步方法间无法相互调用4. 返回值为void的异步方法无法捕获异常5. 外部无法直接调用带有Async注解的方法6. Async方法不适用于private方法7. 缺失异步线程池配置8. 异步方法与事务的兼容结语 🎉深入了解S…

基于SpringCloud的动漫论坛

基于SpringCloud的动漫论坛《BOKI》 摘要:鉴于现如今的互联网网站的存在形式,网站内部有可能内嵌论坛,因此,该项目中实现一个整体的、可移植性强的插件式论坛,论坛就有可能突破ACG主题的限制,实现论坛与主…

数据结构 -- 并查集与图

目录 1.并查集 1.结构 2.原理 3.代码实现 1.存储 2.寻找根节点 3.是否为同一集合 4.求集合个数 5.合并为同一集合中 整体代码 2.图 1.基本知识 1.各个属性 2.特殊名词 3.图的解释 2.图的表示 1.邻接矩阵 2.邻接表 3.图的遍历 1.BFS--广度优先遍历 2.DFS--…

LabVIEWL实现鸟巢等大型结构健康监测

LabVIEWL实现鸟巢等大型结构健康监测 管理国家地震防备和减灾的政府机构中国地震局(CEA)选择了七座新建的巨型结构作为结构健康监测(SHM)技术的测试台。这些标志性建筑包括北京2008年夏季奥运会场馆(包括北京国家体育场和北京国家游泳中心)、上海104层的…

Http协议(Hyper Text Transfer Protocol)

Http协议(Hyper Text Transfer Protocol) 这是一种超文本传输协议,规定了浏览器与服务器中间数据传输的规则 特点: 基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应http协议是无状态的协议&#…

通过网易的API完成一个简易的音乐播放器

效果图 工程环境 1、使用node在本地部署网易云音乐API接口 下载解压 链接:https://pan.baidu.com/s/1YQiMJoUMEYlMz14FH5xxRA?pwd36o5 提取码:36o5 工程目录概览 (js文件夹里面放了music.html和main.js和vue.js) 工程目录)(有点重复…

每日一题:LeetCode-103/107.二叉树的(层序/锯齿形层序)遍历

每日一题系列(day 04) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

微服务学习|初识elasticsearch、操作索引库、文档操作、RestClient操作索引库、RestClient操作文档

初识elasticsearch 什么是elasticsearch? elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats,也就是elastic stack (ELK)。被广泛应用在日志数据分析、实…

Oracle 11g安装过程

文章目录 前言1.下载安装包2.安装2.1本地安装文件2.2 安装过程 3.查看是否安装成功3.1 查看oracle是否安装成功3.2 查看oracle服务 前言 本文仅用于记录亲自安装oracle的过程 1.下载安装包 官网地址: Oracle Database 11g Release 2 (11.2.0.1.0) 注意&#xff…

函数的极值与最值

函数的最值 1.闭区间上连续函数的最值 1.求驻点或不可导点(可能的极值点) 2.求函数在驻点,不可导点,端点的函数值 3.比较大小 例题: 例题思想:分段函数分段点必须验证导数的存在性 几种常见的最值类型 1.…

不同类型的开源许可证

不同类型的开源许可证 什么是开源许可证 最简单的解释是,开源许可证是计算机软件和其他产品的许可证,允许在定义的条款和条件下使用、修改或共享源代码、蓝图或设计。开源并不意味着该软件可以根据需要使用、复制、修改和分发。根据开源许可证的类型&a…

群晖安装portainer

一、下载镜像 打开【Container Manager】 ,搜索portainer,双击【6053537/portainer-ce】下载汉化版本 二、创建映射文件夹 打开【File Station】,在docker目录下创建【portainer】文件夹 三、开启SSH 群晖 - 【控制面板】-【终端机和SNMP】 勾选【启动…

36.JavaScript补完计划:typescript

点赞收藏加关注,你也能住大别墅! 一、什么是typescript 二、应用场景 我认为JavaScript的特点就是在于它强大的延展性,不仅蔓延到了后端,而且也逐渐成为代码世界无法被忽视的存在。那么,编写js代码时我们都会经常遇到…