当前位置:网站首页>【MATLAB项目实战】基于CNN_SVM的图像花卉识别
【MATLAB项目实战】基于CNN_SVM的图像花卉识别
2022-08-03 14:00:00 【大桃子技术】
数据集:5类花卉
简单来说 就是CNN做特征提取 SVM做分类
训练集:测试集=8:2
代码中可以更换不同的CNN网络:AlexNet VGG16 VGG19 ResNet50
clc;
clear all;
%% 划分数据集
pwd='C:\Users\yuanyuan\Desktop\CNN_SVM\data'; % 路径
currentPath = pwd; % 获得当前的工作目录
fprintf('加载数据...');
t = tic;
imds = imageDatastore(fullfile(pwd),'IncludeSubfolders',true,'LabelSource','foldernames'); % 载入所有图片集合
imds.ReadFcn = @readAndPreproc; % 和 alexnet 里输入图片大小一致 【227*227*3】
numImages = length(imds.Files); %图片总的张数
[imdsTrain,imdsTest] = splitEachLabel(imds, 0.8,'randomized');%每个类都按比例随机拆分数据集,训练集和测试集8:2,
YTrain=double(imdsTrain.Labels);
fprintf('完成 %.02f 秒\n', toc(t));
%% 加载预训练网络 (CNN)
convnet = alexnet();
%% 层
convnet.Layers
tbl = countEachLabel(imdsTrain)
%% 提取特征 fc7 layer(vgg16,vgg19 fLayer is fc8)
fLayer = 'fc7'; %AlexNet
%fLayer = 'fc8'; %VGG16 VGG19
% fLayer = 'fc1000'; % resnet50
trainingFeatures = activations(convnet, imdsTrain, fLayer, ...
'MiniBatchSize', 32, 'OutputAs', 'rows');
%% SVM训练
d = fitcecoc(trainingFeatures, YTrain); % 多分类svm用fitcecoc
%% 测试集相同处理 进行预测
testFeatures = activations(convnet, imdsTest, fLayer, ...
'MiniBatchSize', 32, 'OutputAs', 'columns');
YPred = predict(d, testFeatures');
YTest=double(imdsTest.Labels);
accuracy = sum(YPred == YTest)/numel(YTest)
figure
confusionchart(YPred,YTest)
结果:
效果还不错 比CNN跑得快还精准
代码(包括数据集):代码(包括数据集):
边栏推荐
猜你喜欢
node项目开发踩坑(一)
线程的状态
Nanoprobes金脂质偶联物的相关应用
项目管理:PMP和IPMP哪个更值得考?两个证书的区别在于哪里?
阿里大牛最新总结分享的高并发编程核心笔记(终极版),高并发系统架构场景一应俱全
HCIP Fifteenth Day Notes (Three-layer Architecture of Enterprise Network, VLAN and VLAN Configuration)
Php程序员用那个编辑器比较好?
鸿湖万联扬帆富设备开发板正式合入OpenHarmony主干
树莓派 USB摄像头 实现网络监控( MJPG-Streamer)
数据分析(二)——numpy
随机推荐
Petri net-2, directed net
15年软件架构师经验总结:在ML领域,初学者踩过的5个坑
162_Power Query is a custom function for quickly merging tables in a folder TableXlsxCsv_2.0
超大规模的产业实用语义分割数据集PSSL与预训练模型开源啦!
Zhang Le: The Golden Triangle of R&D Efficiency and Practice in the Field of Demand and Agile Collaboration|Live Review
半导体制造业回流美国?宏碁创始人施振荣:违反垂直分工大趋势
MySQL【视图】
Nanoprobes Ni-NTA-Nanogold——用于 His 标签标记和检测
English语法_介词 - 概述
背后的力量 | 提升医疗服务“速度“和“温度” 华云数据助力上海国际医学中心加速智慧医院建设
W11的右键如何改成和W10一样?(一行命令即可解决!)
HCIP Day 16 Notes (SVI, Spanning Tree Protocol)
chrome浏览器对应驱动_chrome手机浏览器
scala安装包
CVPR 2022 | 从人体网格预测骨架,是真正的生理学骨架!
用1000行代码统计西安新房价格后,我有一个惊人的发现……
大型连锁百货运维审计用什么软件好?有哪些功能?
Role usage in Ansible
如何使用matlab实现分段函数「建议收藏」
如何合理安排一天,做到高效备考?