资料详情

基于MATLAB的石榴病虫害图像分类系统设计 设计思路

头像

理工论文

编号:10945

思路

Matlab2022a

1图片分为4类(正常,枯萎,蚜虫,粉虱)

2图片处理(未进行)

模型需要统一图像照片的尺寸大小

3下载deep learning 网络模型

4建立训练和识别模型文件

一个训练神经     一个图像识别类型

matlab程序

模型训练

%搭建网络

tic %计时器?

%%数据导入

clear;clc;%清理内存

%digitDatasetPath='D:\MATLAB\训练数据';%图片数据源

digitDatasetPath='C:\Users\yx\Desktop\Pomrgranate Pest and Disease database';%图片数据源

%,用来处理深度学习数据集的函数,用文件夹名做图像标签。

imds=imageDatastore(digitDatasetPath,"IncludeSubfolders",true,"LabelSource","foldernames");

%划分训练集与测试集

[imdsTrain,imdsValidation] = splitEachLabel(imds,0.8,'randomized');

%导入预训练参数

%params = load("D:\params_2022_06_12__17_09_22.mat");

params = load("C:\Users\yx\Desktop\matlab\params_2023_02_16__22_23_03.mat");

%搭建神经网络

layers = [

imageInputLayer([227 227 3],"Name","data","Mean",params.data.Mean)

convolution2dLayer([11 11],96,"Name","conv1","BiasLearnRateFactor",2,"Stride",[4 4],"Bias",params.conv1.Bias,"Weights",params.conv1.Weights)

reluLayer("Name","relu1")

crossChannelNormalizationLayer(5,"Name","norm1","K",1)

maxPooling2dLayer([3 3],"Name","pool1","Stride",[2 2])

groupedConvolution2dLayer([5 5],128,2,"Name","conv2","BiasLearnRateFactor",2,"Padding",[2 2 2 2],"Bias",params.conv2.Bias,"Weights",params.conv2.Weights)

reluLayer("Name","relu2")

crossChannelNormalizationLayer(5,"Name","norm2","K",1)

maxPooling2dLayer([3 3],"Name","pool2","Stride",[2 2])

convolution2dLayer([3 3],384,"Name","conv3","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv3.Bias,"Weights",params.conv3.Weights)

reluLayer("Name","relu3")

groupedConvolution2dLayer([3 3],192,2,"Name","conv4","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv4.Bias,"Weights",params.conv4.Weights)

reluLayer("Name","relu4")

groupedConvolution2dLayer([3 3],128,2,"Name","conv5","BiasLearnRateFactor",2,"Padding",[1 1 1 1],"Bias",params.conv5.Bias,"Weights",params.conv5.Weights)

reluLayer("Name","relu5")

maxPooling2dLayer([3 3],"Name","pool5","Stride",[2 2])

fullyConnectedLayer(4096,"Name","fc6","BiasLearnRateFactor",2,"Bias",params.fc6.Bias,"Weights",params.fc6.Weights)

reluLayer("Name","relu6")

dropoutLayer(0.5,"Name","drop6")

fullyConnectedLayer(4096,"Name","fc7","BiasLearnRateFactor",2,"Bias",params.fc7.Bias,"Weights",params.fc7.Weights)

reluLayer("Name","relu7")

dropoutLayer(0.5,"Name","drop7")

fullyConnectedLayer(3,"Name","fc","BiasLearnRateFactor",2)

softmaxLayer("Name","prob")

classificationLayer("Name","classoutput")];

%配置训练参数

options=trainingOptions("sgdm",...

"MiniBatchSize",20,...

'MaxEpochs',8,...

"InitialLearnRate",1e-3,...

'Shuffle',"every-epoch",...

"ValidationData",imdsValidation,...

"ValidationFrequency",30,...

"ExecutionEnvironment",'cpu',...

"Verbose",false,...

"Plots","training-progress");

%训练神经网络

net=trainNetwork(imdsTrain,layers,options);

%保存训练好的参数

save('Network','net');

模型识别

%用训练好的网络识别图像类型

clc;clear;

%Load the trained model

load('Network','net');

%Read the image to classify

[file,path]=uigetfile('*');

image=fullfile(path,file);

Im=imresize(imread(image),[227,227]);

file

%Adjust size of the image

sz=net.Layers(1).InputSize;

Im=Im(1:sz(1),1:sz(2),1:sz(3));

%Classify images

label=classify(net,Im)

label=str2num(char(label))+1;

%展示

imshow(Im)

运行结果

问题没有解决

不要从头到尾去写一篇论文。越是有难度的,越应该放在最后。论文引言,摘要需要最后写。

一、大概步骤

1.列出大纲

使用大纲工具,来快速把论文分成若干可以驾驭的小部分。大纲工具org-mode,workflowy, dynalisto,幕布。

2.图表

这就到了第二步,把图表之类的研究结果扔进去。要先有研究。不然这些研究结果从何而来?

3.实验

你需要叙述你的数据来源、实验组织方法、数据分析流程,以及描述实验结果。

4.讨论

需要讨论数据,读者面对结果数据应该有直觉上的疑问,用这一部分提出来,并且认真回应。

5.总结

总结本研究; 指出不足,讨论原因; 展望日后的改进。

6.摘要

上述若干部分写完,摘要呼之欲出。趁热打铁,写了吧。许多期刊,都会在模板里给你一个结构化摘要的写作指引。你可以参考它,逐项填空。这样摘要不仅内容完整,逻辑也会很清晰,摘要写作务必要提纲挈领。你要祭起奥卡姆剃刀,删除一切冗余部分。千万不要忘了人们的阅读顺序。千万不要忘了人们的阅读顺序。写完摘要,别忘了顺手把关键词也填上。

7.文献回顾

许多人写到这里的时候会堆砌参考文献的摘要,凑字数。

文献回顾的目的,不只是向读者或者老师证明你勤奋刻苦,读了那些文献,而是进行学术研究环境扫描。

你得用前人的重要研究成果,构成一张网。在这张网上,找准你自己这篇论文的位置,镶嵌上去。(难) ,你不仅要了解本领域都有哪些重要研究,还要对它们的贡献与不足如数家珍。

8.引言

需要研究如何写价值和必要性,背景和研究现状。

二、参考方法

1.寻找主题

了解学校对于毕业论文的规定,进行整体布局,比如哪些部分字数要达到多少,了解自己的毕业论文要达到什么等级,什么水平(如:优,良),可以参考往届优秀毕业论文,选择导师擅长的课题方向,多沟通。

2.论文检索

中文检索平台(知网)高级检索,学术期刊检索,选择对机电专业比较有参考价值的,直接搜与主题相关的不一定效果很好,几个方面分开搜索结合效果较好,可以利用文献综述找参考文献,如果有合适的就去学习他的研究过程,再参考文献

英文如sci,可用两个平台web of science  (下载阅读)和百度搜 谷歌镜像 (给钱或者没有权限,复制下来去百度学术看)

3.阅读参考文献

分成几个区域,首读摘要和结论,实证论文看数据来源,找出数据库,文献综述帮助我们梳理论文,给论文编号,给每个论文写他重要的部分,或者说有帮助的部分