【图像识别】基于卷积神经网络CNN和支持向量机SVM实现花卉图像识别附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

针对传统图像分类算法在泛化能力等方面存在的不足,结合当前的深度学习算法,提出一种基于卷积神经网络与SVM的图像识别方法.对此,文章首先以深度学习算法中比较典型的卷积神经网络进行介绍,并重点对原理和训练过程进行介绍;然后构建卷积神经网络结构和SVM分类器,最后以水果图像为例,通过MATLAB对上述模型进行编程仿真.结果表明本文提出的算法在识别的错误率方面都要明显优于单一的算法,进而验证了本文算法的可行性,为当前图像的识别提供了新的参考与借鉴.​

⛄ 部分代码

% SVM

clc;

clear all;                 

%% 鍒掑垎鏁版嵁闆�pwd='.\data'; % 璺緞

currentPath = pwd;  % 鑾峰緱褰撳墠鐨勫伐浣滅洰褰�fprintf('鍔犺浇鏁版嵁...'); 

t = tic;

imdsImage = imageDatastore(fullfile(pwd),'IncludeSubfolders',true,'LabelSource','foldernames');   % 杞藉叆鎵�湁鍥剧墖闆嗗悎

imdsImage.ReadFcn = @readAndPreproc;

numImages = length(imdsImage.Files); %鍥剧墖鎬荤殑寮犳暟

[imdsTrain,imdsTest] = splitEachLabel(imdsImage, 0.8,'randomized');%姣忎釜绫婚兘鎸夋瘮渚嬮殢鏈烘媶鍒嗘暟鎹泦锛岃缁冮泦鍜屾祴璇曢泦8锛�锛�

fprintf('瀹屾垚 %.02f 绉抃n', toc(t));

countEachLabel(imdsTrain)

%% 鎼缓SVM妯″瀷

rng('default');

nTrain = length(imdsTrain.Labels);

nTest = length(imdsTest.Labels);

for i=1:nTrain

    I=readimage(imdsTrain,i);

    I=imresize(I,[25 25]); % 璋冩暣澶у皬 鍑忓皯杩愮畻鏃堕棿

    I_gray=rgb2gray(I);

    

    Train(:,i)=double(I_gray(:));

    

end

YTrain=double(imdsTrain.Labels);

for i=1:nTest

    I=readimage(imdsTest,i);

    I=imresize(I,[25 25]); % 璋冩暣澶у皬 鍑忓皯杩愮畻鏃堕棿

    I_gray=rgb2gray(I);

    Test(:,i)=double(I_gray(:));

    

end

YTest=double(imdsTest.Labels);

% 璁粌

 t = tic;

SVMModel=fitcecoc(Train',YTrain);

fprintf('璁粌缁撴潫鑺辫垂鏃堕棿锛�%.02f 鍒嗛挓\n', toc(t)/60);

%% 娴嬭瘯 + 璇勪及鎸囨爣

YPred = predict(SVMModel,Test');

accuracy = sum(YPred == YTest)/numel(YTest)

save SVM_NET.mat SVMModel

⛄ 运行结果

⛄ 参考文献

[1]刘福珍. 基于卷积神经网络法和支持向量机法的影像科图像识别方法:, CN108389187A[P]. 2018.

[2]杨红云, 黄琼, 孙爱珍,等. 基于卷积神经网络和支持向量机的水稻种子图像分类识别[J]. 中国粮油学报, 2021(012):036.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值