deep learning 利用MATLAB制作GUI的数字识别可视化界面

在前面几节讲过一些简单的深度神经网络分类器,由于CNNs(卷积神经网络)程序出来的识别率有一些问题需要,所以暂时还没有更新这一部分。这节我想介绍下利用MATLAB的GUI设计一个图形化界面的NMIST识别系统。界面其实很简单,如下所示:

下面我就将一步一步介绍如何做这个界面。

第一步:打开MATLAB→File→New→GUI,然后就会出现如下图示。

然后点击Blank GUI(Default),这是就创建了一个空白的untitled.fig,你可以把它保存在你想存的目录下面。

第二步:这是就需要添加一些控件,如下图所示。

设置了这几个控件,你可以双击某一个控件改变它的名字,字体大小,以及Tag。好了这时控件创建完了,对应的打开图片的控件,你可以把Tag改为OpenImages.然后点右键中的Editor.这样你就进入GUI的函数里面,可以添加下面的代码,可以让你在windows下面打开你待识别的图片。

<span style="background-color: rgb(255, 255, 255);"></span><pre name="code" class="plain">function OpenImages_Callback(hObject, eventdata, handles)
[filename,pathname]=uigetfile({'*.jpg';'*.bmp';'*.tif';'*.*'},'载入图像');
if isequal(filename,0)|isequal(pathname,0)
    errordlg('没有选中文件','出错');
    return;
else
    file=[pathname,filename];
    global S   %设置一个全局变量S,保存初始图像路径,以便之后的还原操作
    S=file;
    x=imread(file);
    set(handles.axes1,'HandleVisibility','ON');
    axes(handles.axes1);
    imshow(x);
    handles.img=x;
    guidata(hObject,handles);
end

其实上面的代码非常固定了,所以直接copy就行了。

第三步:添加axes1控件,其Tag就为axes1,上图已经给出,它可以显示打开的图片。

<span style="font-family:Times New Roman;">set(handles.axes1,'HandleVisibility','ON');
axes(handles.axes1);</span>

上面控件OpenImages函数中的代码添加上面两行代码就表示打开的图片在axes1中显示。

第四步:设计一个Edit控件,但是不需要添加任何代码,它只是显示识别结果框,点击右键Editor。最主要的是开始识别的这个控件,把Tag改为Regconition。点击右键Editor。添加代码如下:

<span style="font-family:Times New Roman;">function Regconition_Callback(hObject, eventdata, handles)
% hObject    handle to Regconition (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global T
numClasses=10;
hiddenSize=200;
inputSize=28*28;
hiddenSize1=100;
T=getimage;
handles.img=im2double(handles.img);
images=reshape(handles.img,784,1);
load('result2.mat');
trainFeatures = feedForwardAutoencoder(opttheta, hiddenSize, inputSize, ...
                                       images);
testFeatures1 = feedForwardAutoencoder(opttheta1, hiddenSize1, hiddenSize, ...
                                       trainFeatures);

inputDatatest = testFeatures1;
[nop,pred]=max(theta_new*inputDatatest);
set(handles.edit1,'String',num2str(pred));
set(handles.edit1,'ForegroundColor','red');
set(handles.edit1,'FontSize',28);</span>

上面用的是原来训练好的网络参数,所以看着非常简单,reslut2.mat可以见资源,并给出两张识别图例。

第五步:做完上面4步,就是编译了,如下图示。

这样你可以打开你想识别的图片,然后点击开始识别,在Edit Text中显示识别的数字,如第一张图所示。

好了,这样一个简单的GUI识别系统就做完,其他识别系统以此类推。

时间: 2024-09-29 12:41:51

deep learning 利用MATLAB制作GUI的数字识别可视化界面的相关文章

【转】机器学习教程 十四-利用tensorflow做手写数字识别

模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基于tensorflow来介绍和演示 请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 什么是tensorflow tensor意思是张量,flow是流. 张量原本是力学里的术语,表示弹性介质中各点应力状态.在数学中,张量表示的是一种广义的"数量",0阶张量

Deep Learning学习 之 卷积神经网络(文字识别系统LeNet-5)

部分预备知识可以先看博文,统一了一些专业名词. 原文摘自,在此文中对原文增加了一些注释和修改,统一了与之前博文的专业名词说法,有助于理解. !!!如果读者发现一些数学符号后面有一些奇怪的竖线,那是CSDN的Latex除了问题,大家自行过滤. 在经典的模式识别中,一般是事先提取特征.提取诸多特征后,要对这些特征进行相关性分析,找到最能代表字符的特征,去掉对分类无关和自相关的特征.然而,这些特征的提取太过依赖人的经验和主观意识,提取到的特征的不同对分类性能影响很大,甚至提取的特征的顺序也会影响最后的

Deep Learning Libraries by Language

Deep Learning Libraries by Language Tweet Python Theano is a python library for defining and evaluating mathematical expressions with numerical arrays. It makes it easy to write deep learning algorithms in python. On the top of the Theano many more l

【caffe-windows】 caffe-master 之 卷积核可视化(利用matlab)

此篇是利用matlab对caffemodel的卷积核进行可视化.只介绍了卷积核的可视化,不涉及特征图的可视化. 是参考此博客: http://blog.csdn.net/zb1165048017/article/details/52643188 前期准备,需要两个东西 1. 模型的描述文件 deploy.prototxt 2. 模型本身lenet_iter_10000.caffemodel (此处用的examples中的mnist里的) 第一步: 在创建D:\caffe-master\matla

深度学习实践系列之--身份证上汉字及数字识别系统的实现(上)

前言: 本文章将记录我利用深度学习方法实现身份证图像的信息识别系统的实现过程,及学习到的心得与体会.本次实践是我投身AI的初次系统化的付诸实践,意义重大,让自己成长许多.终于有空闲的时间,将其记录,只为更好的分享与学习. 目录: 1.本人的主要工作 2.关键技术 3.模型训练 4.系统设计及实现 5.总结 正文: 一.本人的主要工作 深度学习技术与传统模式识别技术相比,免去人工提取特征,识别率更高.我基于深度学习的技术背景,主要的研究内容如下: 1)身份证图像涉及个人隐私,很难获取其数据训练集.

第三节,TensorFlow 使用CNN实现手写数字识别

上一节,我们已经讲解了使用全连接网络实现手写数字识别,其正确率大概能达到98%,着一节我们使用卷积神经网络来实现手写数字识别, 其准确率可以超过99%,程序主要包括以下几块内容 [1]: 导入数据,即测试集和验证集 [2]: 引入 tensorflow 启动InteractiveSession(比session更灵活) [3]: 定义两个初始化w和b的函数,方便后续操作 [4]: 定义卷积和池化函数,这里卷积采用padding,使得 输入输出图像一样大,池化采取2x2,那么就是4格变一格 [5]

Deep Learning for Computer Vision with MATLAB and cuDNN(译文)

翻译水平有限,欢迎阅读原文 一.深度学习 当前,深度学习已经成为一个热门话题.随着深度学习算法和GPU技术的发展,我们已经能够解决许多领域(计算机视觉.自然语言处理和机器人学)曾经认为不可能的事情. 深度学习是建立在传统的深度神经网络之上的.最近几年的热点是大数据集和强大的GPUs的使用.神经网络本质上是一种并行算法,因此多核GPUs的使用能够明显的减少用于训练深度神经网络的时间.以下,我将会讨论如何使用MATLAB以及深度卷积神经网络和GPUs开发一个对象识别系统 二.为什么将深度学习用于计算

Deep Learning学习 之 CNN代码解析(MATLAB)

MATLAB实现CNN一般会用到deepLearnToolbox-master.但是根据Git上面的说明,现在已经停止更新了,而且有很多功能也不太能够支持,具体的请大家自习看一看Git中的README. deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoEncoder(堆栈SAE,卷积CAE)的作者是 Rasmus Berg Palm ([email protected]) 代码下载:h

TensorFlow和深度学习新手教程(TensorFlow and deep learning without a PhD)

前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络.并把其PPT的參考学习资料给了我们, 这是codelabs上的教程:<TensorFlow and deep learning,without a PhD> 当然登入须要FQ,我也顺带巩固下,做个翻译.不好之处请包括指正. 当然须要安装python,教程推荐使用python3.假设是Mac,能够參考博主的另外两片博文,Mac下升级python2.7到python3.6, Mac安装tensorflow1.0 好多专业词