数据集: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跑得快还精准

代码(包括数据集):代码(包括数据集):

【MATLAB项目实战】基于CNN_SVM的图像花卉识别相关推荐

  1. 【课题总结】OpenCV 抠图项目实战(8)图像轮廓

    Python 小白的课题报告-OpenCV 抠图项目实战(8) 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 OpenCV ...

  2. 嵌入式项目实战——基于QT的视频监控系统设计(三)

    嵌入式项目实战--基于QT的视频监控系统设计(三) 进入到五一假期第三天,继续我们的项目.本来五一假期还是想好好休息一下的,因为最近学习的状态不太好,刷题都没有思路了,但是身边的同学太卷了,不过我还是 ...

  3. 嵌入式项目实战——基于QT的视频监控系统设计(四)

    嵌入式项目实战--基于QT的视频监控系统设计(四) 进入到五一假期的第四天,通过前三天的分享,相信你应该已经掌握了QT的基本使用.UDP网络编程.v4l2视频处理模块.多线程编程等基本的知识点.其实昨 ...

  4. 项目实战——基于计算机视觉的物体位姿定位及机械臂抓取(单目标定)

    项目实战--基于计算机视觉的物体位姿定位及机械臂抓取(单目标定) 请各位读者朋友注意,这里面很多东西涉及到我的毕设,写作辛苦,请勿滥用,转载请务必注明出处!         单目标定主要分为两个部分, ...

  5. 自动化运维-----项目实战: 基于Ansible的云平台自动化运维系统

    文章目录 项目实战: 基于Ansible的云平台自动化运维系统 一.项目介绍 1.项目介绍 2.项目背景 二.项目环境搭建 1.项目目录的配置 2.远程服务器虚拟环境的配置 3.MySQL数据库配置 ...

  6. 嵌入式项目实战——基于QT的视频监控系统设计(二)

    嵌入式项目实战--基于QT的视频监控系统设计(二) 昨天我分享了关于QT的基本使用方法,掌握了这些基本的方法就可以设计一个简单的视频监控界面.下面我们开始分享完成这个嵌入式项目同样重要的知识点--UD ...

  7. 嵌入式项目实战——基于QT的视频监控系统设计(一)

    嵌入式项目实战--基于QT的视频监控系统设计(一) 这个五一因为疫情,只能待在家里,想了想不如将我之前做的一个小的嵌入式的练习项目分享出来,供入门嵌入式的同学们学习.基于QT的视频监控系统设计虽然是个 ...

  8. Arduino项目实战——基于Arduino【智能垃圾桶】设计

       Arduino项目实战        -基于Arduino[智能垃圾桶]设计 第一次接触Arduino是在大一的时候,距离现在已经五年,当时一个简单的"电子琴"项目就让我抓耳 ...

  9. 【北京大学】13 TensorFlow1.x的项目实战之手写英文体识别OCR技术

    目录 1 项目介绍 1.1 项目功能 1.2 评估指标 2 数据集介绍 2.1 数据特征 3 数据的预处理 3.1 数据增强 3.2 倾斜矫正 3.3 去横线 3.4 文本区域定位 4 网络结构 5 ...

最新文章

  1. android 电源管理 关闭屏幕,Android之PowerManager电源管理
  2. IOS-Core Data的使用
  3. 使用Mysql数据库完成增删改查综合案例(JSP页面)
  4. 设计企业网站大纲_哈尔滨企业网站设计费用,网站开发公司_华阳网络
  5. 转载:如何将一个新函数加到MATLAB函数库中
  6. boost::multiprecision模块将使用 fixed_int 的算术结果与 GMP 结果进行比较相关的测试程序
  7. select、poll、epoll使用小结
  8. cookie注入原理详解(一)
  9. 【HDU 5033】【经典单调栈问题】Building
  10. 学术资源不定期分享-【钱学森《工程控制论》英文原版】
  11. 过来领你的Bug之“缺陷分析“篇
  12. Shadow Defender 1.4.0.561 简体中文注册码破解版(最好用的影子保护系统)
  13. 机器学习-支持向量机原理
  14. 尼葛洛庞帝,一个反硅谷的创业领袖
  15. [转]三大运营商借云转型 虚拟资源池与并发计算是核心能力
  16. 自己做小程序开个社区团购可行吗?
  17. java定义一个日期类 包括年 月 日_【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期..._考试资料网...
  18. ADSL/光纤 双拨,多拨
  19. QT报错:Makefile.Debug : moc_xxx.cpp error1
  20. pgsql执行分析explain结果分析

热门文章

  1. 广州市人民政府关于印发广州市推进制造业数字化转型若干政策措施的通知
  2. python 处理服务器响应数据包,Python如何解析RADIUS服务器数据包?
  3. 童诗白模电--波形的发生和转换
  4. NOI-1.5(08) 多边形内角和
  5. 利用face-landmark估计pitch, yaw, roll
  6. 分享111个Java源码,总有一款适合您
  7. 【前端面试题】如何判断数据类型?
  8. 打印1~200之间的素数(质数)c语言
  9. 《暑期集训总结与心得》
  10. stm32零星笔记(一)——sysTick滴答计时器、RTC实时时钟