Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类
2018-01-13 09:46
1701 查看
源站:http://blog.51cto.com/8764888/2053960?utm_source=oschina-app
在Matlab2017中,完成一个使用CNN网络进行分类的示例非常简单。为了便于创建图像集,Matlab2015引入了 ImageDatastore对象,实现函数为imageDatastore,该函数可以轻易的完成遍历一个文件夹中的图像建立图像及的功能,不管该文件夹是否含有子文件夹。这也是它区别于imageSet的地方之一。代码如下。
在Matlab2017中,完成一个使用CNN网络进行分类的示例非常简单。为了便于创建图像集,Matlab2015引入了 ImageDatastore对象,实现函数为imageDatastore,该函数可以轻易的完成遍历一个文件夹中的图像建立图像及的功能,不管该文件夹是否含有子文件夹。这也是它区别于imageSet的地方之一。代码如下。
%exam1.m digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos',... 'nndatasets','DigitDataset'); %创建图像集,参数设置为包含子文件夹、子文件夹名作为类标签 digitData = imageDatastore(digitDatasetPath,... 'IncludeSubfolders',true,'LabelSource','foldernames'); figure; %取20个置乱数字 perm = randperm(10000,20); %显示20幅图像 for i = 1:20 subplot(4,5,i); imshow(digitData.Files{perm(i)}); end trainingNumFiles = 750; %若报错,可改为rng('default') rng(1) %在图象集每一类中随机取trainingNumFiles个图像作为训练图像,其余作为测试图像 [trainDigitData,testDigitData] = splitEachLabel(digitData,... trainingNumFiles,'randomize'); %创建简单CNN网络 layers = [imageInputLayer([28 28 1]); convolution2dLayer(5,20); reluLayer(); maxPooling2dLayer(2,'Stride',2); fullyConnectedLayer(10); softmaxLayer(); classificationLayer()]; %设置训练参数 options = trainingOptions('sgdm','MaxEpochs',20,... 'InitialLearnRate',0.0001); %训练CNN网络 convnet = trainNetwork(trainDigitData,layers,options); %对测试图像进行分类 YTest = classify(convnet,testDigitData); %显示测试图像标签 TTest = testDigitData.Labels;
相关文章推荐
- Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类
- Matlab图像识别/检索系列(5)—10行代码完成深度学习网络之CNN/Autoencoder
- Matlab图像识别/检索系列(7)-10行代码完成深度学习网络之取中间层数据作为特征
- Matlab图像识别/检索系列(3)—10行代码完成caltech图象集分类和识别
- Matlab图像识别/检索系列(1)—10行代码完成基于BOW的图像检索
- Matlab图像识别/检索系列(4)—10行代码完成多分类功能
- Matlab图像识别/检索系列(2)—10行代码完成分类、识别
- Matlab图像识别/检索系列(11)—开源介绍之深度学习工具MatConvNet toolbox
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- 基于深度学习框架Keras的CNN分类Mnist
- 深度学习用于基于内容的图像检索 Deep Learning for Content-Based Image Retrieval
- 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
- 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位-ICCV 2013
- 深度学习(二十八)基于多尺度深度网络的单幅图像深度估计-NIPS 2014
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- [译]基于深度残差学习的图像识别
- 深度学习(十七)基于改进Coarse-to-fine CNN网络的人脸特征点定位-ICCV 2013
- 深度学习与计算机视觉系列(2)_图像分类与KNN