【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面

人工神经网络是人工智能研究的一种方法。实际上人工神经网络(Artificial Neural Netwroks,简称ANN)是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的完美无缺的模型,但它可以通过学习来获取外部的知识并存贮在网络内,可以解决计算机不易处理的难题,特别是语音和图像的识别、理解、知识的处理、组合优化计算和智能控制等一系列本质上是非计算的问题。

  生物神经元:

  生物神经元模型就是一个简单的信号处理器。树突是神经元的信号输入通道,接受来自其他神经元的信息。轴突是神经元的信号输出通道。

  信息的处理与传递主要发生在突触附近。神经元细胞体通过树突接受脉冲信号,通过轴突传到突触前膜。当脉冲幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质(乙酰胆碱),使位于突触后膜的离子通道(Ion Channel)开放,产生离子流,从而在突触后膜产生正的或负的电位,称为突触后电位。
【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第1张图片

  突触有两种:兴奋性突触和抑制性突触。前者产生正突触后电位,后者产生负突触后电位。一个神经元的各树突和细胞体往往通过突触和大量的其他神经元相连接。这些突触后电位的变化,将对该神经元产生综合作用,即当这些突触后电位的总和超过某一阎值时,该神经元便被激活,并产生脉冲,而且产生的脉冲数与该电位总和值的大小有关。脉冲沿轴突向其他神经元传送,从而实现了神经元之间信息的传递。 

  神经网络

 

连接方式

  按照连接方式,可划分为前向神经网络反馈(递归)神经网络

  前向神经网络:

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第2张图片

  反馈神经网络:

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第3张图片

学习方式

  按照连接方式,可分为有导师学习神经网络无导师学习神经网络

  有导师学习神经网络:

  外界存在一个教师,对给定的一组输入,提供应有的输出(标准答案),学习系统可根据实际输出与标准答案之间的差值来调整系统参数。

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第4张图片

  无导师学习神经网络:

  学习系统按照环境提供数据的某些统计规律来调节自身参数。

  

  ♦强化学习:

  环境对系统输出结果只给出评价信息(奖或惩),系统通过强化受奖动作来改善自身性能。

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第5张图片

 

 

BP神经网络(向后传播算法)

 

  Backpropagation is a common method of teaching artificial neural networks how to perform a given task.
  It is a supervised learning method, and is a generalization of the delta rule. It requires a teacher that knows, or can calculate, the desired output for any input in the training set.
  Backpropagation requires that the activation function used by the artificial neurons (or "nodes") be differentiable.

  反向传播是教授人工神经网络如何执行给定任务的一种常用方法。

  它是一种监督学习方法,是delta规则的推广。它要求教师知道或能够计算出训练集中任何输入所需的输出。

  反向传播要求人工神经元(或“节点”)使用的激活函数是可微的。

   对于多层网络,由于有隐层后学习比较困难,限制了多层网络的发展,BP算法的出现解决了这一困难。

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第6张图片

  BP算法的原理
  对于多层前馈型网络,网络中有两种信号在流通。
  ①工作信号,施加的输入信号向前传播直到在输出层产生实际的输出信号,是输入信号和权值的函数。
  ②误差信号,网络实际输出与应有输出间的差值,它由输出层开始逐层向后传播。

  BP网络主要有两个阶段:

  ①信号前传阶段

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第7张图片

  ②误差后传阶段

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第8张图片

 

   构造多层前向神经网络

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第9张图片

BP神经网络的优缺点

 

  【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第10张图片

function varargout = MainForm(varargin)
% MAINFORM MATLAB code for MainForm.fig
%      MAINFORM, by itself, creates a new MAINFORM or raises the existing
%      singleton*.
%
%      H = MAINFORM returns the handle to a new MAINFORM or the handle to
%      the existing singleton*.
%
%      MAINFORM('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in MAINFORM.M with the given input arguments.
%
%      MAINFORM('Property','Value',...) creates a new MAINFORM or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before MainForm_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to MainForm_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help MainForm

% Last Modified by GUIDE v2.5 22-Dec-2013 09:58:50

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @MainForm_OpeningFcn, ...
                   'gui_OutputFcn',  @MainForm_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT


% --- Executes just before MainForm is made visible.
function MainForm_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to MainForm (see VARARGIN)

% Choose default command line output for MainForm
handles.output = hObject;
clc; 
axes(handles.axes1); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');
axes(handles.axes2); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');
axes(handles.axes3); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes MainForm wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = MainForm_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clc; 
axes(handles.axes1); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');
axes(handles.axes2); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');
axes(handles.axes3); cla reset; box on; set(gca, 'XTickLabel', '', 'YTickLabel', '');
handles.file1 = [];
handles.file2 = [];
handles.result = [];
[filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.gif', 'All Image Files';...
          '*.*', 'All Files' }, '选择图像1', ...
          fullfile(pwd, 'images\\实验图像1\\a.tif'));
if isequal(filename, 0)
    return;
end
handles.file1 = fullfile(pathname, filename);
guidata(hObject, handles);
Img1 = imread(fullfile(pathname, filename));
axes(handles.axes1); 
imshow(Img1, []);


【图像识别】基于BP神经网络的手写字体识别matlab源码含GUI界面_第11张图片

完整代码或者代写添加QQ1575304183

往期回顾>>>>>>

【图像识别】国外车牌识别matlab源码

【图像识别】基于cnn卷积神经网络之验证码识别matlab源码

【图像识别】基于svm植物叶子疾病检测和分类matlab源码​​​​​​​

【图像识别】路面裂缝识别含GUI源码matlab源码​​​​​​​

【图像识别】基于RGB和BP神经网络的人民币识别系统含GUI界面matlab源码​​​​​​​

【图像识别】条形码识别系统matlab源码​​​​​​​

【图像识别】基于不变矩的数字验证码识别含GUI界面matlab源码​​​​​​​

【图像识别】基于模板匹配之手写数字识别系统GUI界面matlab源码​​​​​​​

【图像识别】基于贝叶斯分类器之目标识别matlab源码

【图像识别】身份证号码识别matlab源码

【图像识别】条形码识别系统matlab源码​​​​​​​

【模式识别】基于特征匹配的英文印刷字符识别matlab源码

【图像分类】基于极限学习分类器对遥感图像分类matlab源码​​​​​​​

【图像识别】基于BP神经网络之字母识别matlab源码

【图像特征处理】指纹图像细节特征提取matlab源码

【图像识别】基于反馈神经Hopfield的数字识别matlab源码

【图像识别】基于二值膨胀差分和椒盐滤波之教室内人数识别系统matlab源码

【图像识别】火灾检测matlab源码GUI

【模式识别】基于 Hough变换视频车道线检测matlab源码​​​​​​​

【模式识别】基于matlab Hough变换图片车道线检测

【模式识别】基于差影法之三维人体姿态行为识别matlab源码

【模式识别】指针式表盘识别matlab源码

【图像识别】表情检测matlab源码

【图像检测】基于LSD直线检测matlab源码

【图像识别】基于帧差法跌倒检测matlab源码

【图像融合】红外与可见光的融合与配准算法matlab源码

【图像识别】基于组合BCOSFIRE过滤器进行墙体裂缝识别matlab源码

【图像边缘检测】基于插值法亚像素边缘检测matlab源码

【模式识别】基于贝叶斯最小错误率手写数字识别matlab 源码

【模式识别】基于PCA手写数字识别matlab 源码

【模式识别】基于模板匹配的手写体数字识别matlab源码

【图像识别】基于模板匹配车牌识别matlab源码含GUI

【图像识别】基于模板匹配之人脸表情识别matlab源码含GUI

【图像识别】基于LBP+LPQ算法融合人脸表情识别matlab源码

【图像识别】基于HSV和RGB模型水果分类matlab源码含 GUI

【图像识别】基于模板匹配之数字识别matlab源码

你可能感兴趣的:(图像处理,matlab)