前言:
1)图像识别用途甚广,解决的算法之一,是深度学习神经网络。matlab近几个版本,对这块的语法修改较多,总体而言,用户用起来更方便了;
2)这里以2018a版本为例,做一些粗略的说明。

1.概念说明

1)图像识别:图像识别是目的,具体而言,输入一张图片,输出一个字符串或数字。例如输入一张狗图片,输出狗的品种,这是典型典型的字符串输出,属于图像识别中的分类。输入一张花朵的照片,输出花瓣的个数,这是典型的数字输出,属于图像识别中的回归。

2)人工神经元:任何一篇介绍神经网络的文章都会给出详细的说明,这里不再重复,只说明一个注意点,就是神经元的输入。神经元的输入一般可以写成多个1*1的数,也就可以写成一个向量,但图像识别中,神经元的输入很可能是图片,而图片相当于矩阵,因此实际中可以认为,把矩阵拉开成向量,即reshape后作为输入。

3)神经网络:多个神经元组合在一起的网络,当然,一般还可以加如其他的元件,比如卷积、池、归一化等等。

4)深度学习:这个概念要分成两个来看。深度,说的是神经网络及其附属元件的层数,这个数越大,就说明整个网络越深,也就越复杂。学习,说的是神经网络中各元件参数(权重)的确定方法,并不是解方程计算或者瞎猜或者推导,而是通过自主学习的方式。学习,就是给一堆样本的意思。

2.神经网络训练

2.1核心代码

神经网络训练的核心代码只有两条,分别对于图像识别中的分类和回归,分别是:

分类:net = trainNetwork(imdsTrain,layers,options);

回归:net = trainNetwork(XTrain,YTrain,layers,options);

其中,net自然就是训练的结果,layers是神经网络的结构,options是训练方法,其他的是样本数据

2.2神经网络结构

神经网络的结构是按照层来区分的,比如第一层输入层,最后一层输出层,中间有神经元层,卷积层,池层等等。而在matlab中构建这些层可以说是非常简单了,只要layers=[lay1 lay2 lay3]一直下去即可。其中layi的定义方式,可以参考帮助文档中Neural Network Toolbox Functions - By Category里面Deep Learning Training from Scratch目录下,所有带layer的函数。比如lay1=imageInputLayer()就定义了第一层为图像输入层,当然括号里应该有一些信息,比如输入图像的大小,黑白或彩色信息。

2.3样本数据

对分类神经网络而言,虽然软件提供了很多导入样本的方法,但真正便利的其实就一种:

1)把图片按类存放在不同的文件夹下,比如“狗”文件夹下放一堆狗的图片,“猫”文件夹下放一堆图片,并把“猫”、“狗”这样的东西作为文件夹的名字;

2)把这些文件夹放在同一个文件夹下;

3)代码:imds = imageDatastore(最外层文件夹名, ‘IncludeSubfolders’,true,‘LabelSource’,‘foldernames’);

4)对图片大小不统一之类的,处理略复杂,可以借用imageDatastore的readfcn来完成。

对回归神经网络而言,我没有找到特别的导入方式,基本上XTrain,YTrain都是数值矩阵,其中:

1)XTrain为4维矩阵,size(XTrain)=[输入图片宽度, 输入图片高度, 1或者3, 样本个数],其中1表示黑白,3表示彩色

2)YTrain为一维向量,size(YTrain)=[样本数个, 1]

2.4训练方法

options的调试,可能是世上最难的了,能调试的东西,基本都是后验的,只能依靠经验。

3.神经网络的使用

训练后,我们获得了net,调用方法相当死板

分类:Ynew = classify(net,imdsnew);

回归:Ynew = predict(net,Xnew);

当然,有时候,我们并不需要自己训练net,拿别人训练好的来玩玩也是不错的,这方面,软件提供了一些知名的网络:alexnet,vgg16,vgg19,googlenet,resnet50等等,通过add on搜索并安装即可使用。

4.后序

matlab提供了很方便的调用方式,但如何调用,如何安排神经网络的结构,如何准备和分配样本,如何设定学习过程与参数调试,这就是人脑的事情了。

https://www.ilovematlab.cn/blog-465733-133.html

matlab在图像识别(深度学习神经网络)中的使用(转)相关推荐

  1. [深度学习] 神经网络中的 batch 和 epoch

    参考文章为 神经网络中Batch和Epoch之间的区别是什么? Sample Sample是单个数据.即有意义的数据的最小单位. 训练数据集由许多Sample组成. batch batch是一个人为设 ...

  2. 深度学习——神经网络中的activation

    神经网络中有个词叫做 activation--激活函数 现假设一神经网络N,其中w为权值参数,x为输入,b为偏置.神经网络中上层的信号  wx+b 在作为下层的输入 之前,需要 使用 激活函数激活. ...

  3. 深度学习神经网络中的MASK机制

    简单来说就是得出A然后结合A与下一个特征得出B,结合A,B与下一个特征得出C,那么整个句子的内在关联就是Z=A+B+C

  4. 如何熟练掌握MATLAB机器学习、深度学习在图像中的处理

    近年来,随着无人驾驶汽车.医学影像智慧辅助诊疗.ImageNet竞赛等热点事件的发生,人工智能迎来了新一轮的发展浪潮.尤其是在计算机视觉和图像处理领域,各种颠覆性的成果应运而生. 阅读全文点击:< ...

  5. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  6. matlab“机器学习和深度学习”系列工具箱作用总结

    这是MATLAB r2019a的"机器学习和深度学习"工具箱 1,Classification Learner工具箱 打开之后的界面,主要用于分类 具体用法见: MATLAB自带分 ...

  7. 基于PyTorch、易上手,细粒度图像识别深度学习工具库Hawkeye开源

    转载自丨机器之心 鉴于当前领域内尚缺乏该方面的深度学习开源工具库,南京理工大学魏秀参教授团队用时近一年时间,开发.打磨.完成了 Hawkeye--细粒度图像识别深度学习开源工具库,供相关领域研究人员和 ...

  8. MLP神经网络,GRNN神经网络,SVM神经网络以及深度学习神经网络对比识别人体健康非健康数据

    目录 一.理论基础 二.案例背景 1.问题描述 2.思路流程 三.部分MATLAB程序 四.仿真结论分析 五.参考文献 一.理论基础 MLP多层感知器神经网络(Multi-layer perceptr ...

  9. DL:深度学习(神经网络)的简介、基础知识(神经元/感知机、训练策略、预测原理)、算法分类、经典案例应用之详细攻略

    DL:深度学习(神经网络)的简介.基础知识(神经元/感知机.训练策略.预测原理).算法分类.经典案例应用之详细攻略 目录 深度学习(神经网络)的简介 1.深度学习浪潮兴起的三大因素 深度学习(神经网络 ...

最新文章

  1. EntityCURD操作的参数和返回值
  2. googleearthpro打开没有地球_人在月球上睡24小时, 相当于地球多少年? 科学家的回答出乎意料...
  3. Hadoop运行模式 之 伪分布式运行模式
  4. node实现爬取当前页面链接实现
  5. 干货三:CountDownTimer倒计时工具类
  6. ant使用指南详细入门教程
  7. redis源码剖析(十三)—— dump.rdb文件分析
  8. UI图标设计素材|风格多样的图标
  9. Codeforces 475C Kamal-ol-molk#39;s Painting 模拟
  10. java 识别图片中的二维码内容识别
  11. php eregi 返回值含义,Deprecated: Function eregi() is deprecated php5.3开始不支持eregi()函数...
  12. java 实现短信验证码功能
  13. SqlServer 查询一段时间,没有数据自动补充0
  14. pyinstaller spec文件详解
  15. 解密秒杀系统架构:不是所有的秒杀都是秒杀
  16. 计算机信息的应用安全中心在哪,通过Windows Defender安全中心“全新启动”功能恢复/刷新电脑...
  17. Ae 效果快速参考:沉浸式视频
  18. 1527. 患某种疾病的患者
  19. tesseract语言库
  20. 超全zookeeper知识点与实战

热门文章

  1. 删除字段mysql workbench_MySQL Workbench使用教程
  2. Unity命令模式, 实现撤销/反撤销
  3. [转载]《家庭宝鉴》劝过年吃素说
  4. 高仿小米盒子UI效果实现
  5. 每日算法面试题,大厂特训二十八天——第十四天(数组)
  6. 电子科技大学计算机应用技术专科段,2014年电子科技大学081203计算机应用技术考研专业目录及考试科目...
  7. NYOJ - 305
  8. JAVA-collectionApi接口
  9. oracle solaris cluster 4,在sun solaris suncluster and volume manger环境下的ORACLE数据库表空间的扩容...
  10. 摇杆怎么映射到键盘_便宜100多的“官方山寨”究竟怎么样?联想拯救者X1游戏手柄体验...