首页 > 其他分享 >m基于深度学习网络的美食识别系统matlab仿真,带GUI界面

m基于深度学习网络的美食识别系统matlab仿真,带GUI界面

时间:2023-12-27 23:35:20浏览次数:24  
标签:String get GUI 识别系统 hObject Dataset handles matlab eventdata

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

2.算法涉及理论知识概要

       基于深度学习网络的美食识别系统是一个复杂的机器视觉应用,它结合了深度学习、图像处理、模式识别等多个领域的知识。GoogleNet是一种深度卷积神经网络(CNN),它由多个卷积层、池化层和全连接层组成。该模型可以自动学习和提取图像特征,从而实现对图像中目标物体的检测和分类。

 

      GoogleNet算法的核心思想是采用一种称为“Inception”的网络结构,通过在多个尺度上提取图像特征,从而实现对目标物体的检测和分类。在疲劳检测中,GoogleNet模型首先对驾驶员面部图像进行预处理,然后通过多个卷积层和池化层提取面部特征,最后使用全连接层进行分类输出。

 

GoogleNet模型的数学公式主要包括以下几个部分:

 

(1)卷积层计算:对于每个卷积层,计算输入图像与卷积核的卷积结果。公式如下:

 

         C = Conv2D(F, I) (3)

 

其中,C表示卷积结果,F表示卷积核,I表示输入图像。

 

(2)池化层计算:对于每个池化层,将输入特征图进行下采样,从而降低特征图的维度。公式如下:

 

      P = MaxPooling2D(C) (4)

 

其中,P表示池化结果,C表示输入特征图。

 

(3)全连接层计算:对于每个全连接层,将输入特征与权重进行线性组合,然后添加偏置项,并通过激活函数进行非线性变换。公式如下:

 

Z = W * P + B (5)

 

其中,Z表示全连接层的输出结果,W表示权重矩阵,P表示输入特征图,B表示偏置向量。

 

(4)分类输出:最后,将全连接层的输出结果进行softmax归一化,得到每个类别的概率值。公式如下:

 

y = Softmax(Z) (6)

 

其中,y表示每个类别的概率值,Z表示全连接层的输出结果。

 

3.MATLAB核心程序

 

function edit5_Callback(hObject, eventdata, handles)
% hObject    handle to edit5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'String') returns contents of edit5 as text
%        str2double(get(hObject,'String')) returns contents of edit5 as a double
 
 
% --- Executes during object creation, after setting all properties.
function edit5_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
 
function edit6_Callback(hObject, eventdata, handles)
% hObject    handle to edit6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
% Hints: get(hObject,'String') returns contents of edit6 as text
%        str2double(get(hObject,'String')) returns contents of edit6 as a double
 
 
% --- Executes during object creation, after setting all properties.
function edit6_CreateFcn(hObject, eventdata, handles)
% hObject    handle to edit6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
 
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
 
Name1   = get(handles.edit7, 'String');
NEpochs = str2num(get(handles.edit8, 'String'));
NMB     = str2num(get(handles.edit9, 'String'));
LR      = str2num(get(handles.edit10, 'String'));
Rate    = str2num(get(handles.edit11, 'String'));
 
 
% 使用 imageDatastore 加载图像数据集
Dataset = imageDatastore(Name1, 'IncludeSubfolders', true, 'LabelSource', 'foldernames');
% 将数据集分割为训练集、验证集和测试集
[Training_Dataset, Validation_Dataset, Testing_Dataset] = splitEachLabel(Dataset, Rate, (1-Rate)/2, (1-Rate)/2);
% 加载预训练的 GoogleNet 网络
load googlenet.mat
 
 
% 获取输入层的大小
Input_Layer_Size = net.Layers(1).InputSize(1:2);
 
% 将图像数据集调整为预训练网络的输入尺寸
Resized_Training_Dataset   = augmentedImageDatastore(Input_Layer_Size ,Training_Dataset);
Resized_Validation_Dataset = augmentedImageDatastore(Input_Layer_Size ,Validation_Dataset);
Resized_Testing_Dataset    = augmentedImageDatastore(Input_Layer_Size ,Testing_Dataset);
 
 
 
 
 
% 获取特征学习层和分类器层的名称
Feature_Learner   = net.Layers(142).Name;
Output_Classifier = net.Layers(144).Name;
% 计算数据集的类别数目
Number_of_Classes = numel(categories(Training_Dataset.Labels));
% 创建新的全连接特征学习层
New_Feature_Learner = fullyConnectedLayer(Number_of_Classes, ...
    'Name', 'Coal Feature Learner', ...
    'WeightLearnRateFactor', 10, ...
    'BiasLearnRateFactor', 10);
% 创建新的分类器层
New_Classifier_Layer = classificationLayer('Name', 'Coal Classifier');
% 获取完整网络架构
Network_Architecture = layerGraph(net);
% 替换网络中的特征学习层和分类器层
New_Network = replaceLayer(Network_Architecture, Feature_Learner, New_Feature_Learner);
New_Network = replaceLayer(New_Network, Output_Classifier, New_Classifier_Layer);

 

  

 

标签:String,get,GUI,识别系统,hObject,Dataset,handles,matlab,eventdata
From: https://www.cnblogs.com/51matlab/p/17931679.html

相关文章

  • m基于深度学习网络的美食识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要基于深度学习网络的美食识别系统是一个复杂的机器视觉应用,它结合了深度学习、图像处理、模式识别等多个领域的知识。GoogleNet是一种深度卷积神经网络(CNN),它由多个卷积层、池化层和全连接层组成。该模型可以自动学......
  • 人脸识别系统【从0到1完成一个小项目】
    前提:计划重新写一个人脸识别系统,基于原系统的功能(原系统参看:https://mbd.pub/o/bread/Yp2WlZdq)原系统具有不佩戴口罩人脸识别和佩戴口罩人脸识别两个主要功能想法目前的想法是将人脸识别的部分拆分成一个单独的exe项目,只具备人脸识别功能。将其他功能,比如人脸录入,删除,识别导出......
  • java基础语法API之GUI图形化界面2
    一:概述在1中,已经对GUI图形化的基础知识做了个概述,2中主要以例子为载体说明。并且介绍时间监听机制二:具体说明<1>猜数字//创建窗体对象JFramejf=newJFrame();jf.setTitle("猜数字");jf.setSize(400,300);jf.set......
  • Unity UGUI开发,0GC更新视图
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!前段时间在优化Unity游戏项目,发现在战斗场景中,UI需要更新大量内容,比如血量、伤害、各种技能效果等等,由于战斗比较激烈,一直在高频更新UI视图,通过UWA深......
  • m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:训练曲线:误码率曲线:2.算法涉及理论知识概要正交频分复用(OFDM)是一种高效的无线通信技术,广泛应用于各种无线通信系统。然而,OFDM系统对频率偏移非常敏感,频偏会导致子载波间的正交性丧失,进而产生严重的性能下降。传统的频偏估计方法通常基......
  • m基于深度学习的OFDM通信系统频偏估计算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 训练曲线:   误码率曲线:   2.算法涉及理论知识概要        正交频分复用(OFDM)是一种高效的无线通信技术,广泛应用于各种无线通信系统。然而,OFDM系统对频率偏移非常敏感,频偏会导致子载波间的正交性丧失,进而产生严......
  • 基于开源模型搭建实时人脸识别系统(六):人脸识别(人脸特征提取)
    目录人脸识别的几个发展阶段基于深度学习的人脸识别技术的流程闭集和开集(Openset)识别人脸识别的损失Insightface人脸识别数据集模型选型参考文献结语人脸识别系统项目源码前面我们讲过了人脸检测、人脸质量、人脸关键点、人脸跟踪,接下来就是人脸识别系统里面的重中之重人脸识别......
  • 基于FPGA的图像PSNR质量评估计算实现,包含testbench和MATLAB辅助验证程序
    1.算法运行效果图预览设置较大的干扰,PSNR=15。   设置较小的干扰,PSNR=25。   2.算法运行软件版本matlab2022a vivado2019.2  3.算法理论概述      基于FPGA的图像PSNR(峰值信噪比)质量评估计算实现涉及到数字图像处理、硬件设计和编程等多个领域......
  • 基于二维小波变换的散斑相位奇异构造算法matlab仿真
    1.算法运行效果图预览         图(1)表示散斑原图像,(2)表示对(1)图像进行x轴方向的极化分析的小波相位图,呈周期的水平条纹,(3)表示对(1)图像进行y轴方向的极化分析的小波相位图,呈周期的竖直条纹。          表示相位奇异点图的构造过程,其中(1)表示......
  • java基础语法API之GUI图形化界面1
    一:概述虽然现在在开发中,前后端交互,用户所看到的界面都是前端实现的,但是java自身的图形化界面,对于java学习初学者还是需要了解的。对于开发是有利的。二:具体说明<1>GUI介绍java中为GUI相关的API在java.awt包和java.swing包中。java.awtawt是这三个单词首字母的缩写,翻译过来是抽象窗......