首页 > 其他分享 >基于GoogleNet深度学习网络的人员身份识别系统Matlab仿真

基于GoogleNet深度学习网络的人员身份识别系统Matlab仿真

时间:2023-05-27 15:32:55浏览次数:45  
标签:Img 卷积 识别系统 Label GoogleNet Matlab 224 Prob Resize

1.算法仿真效果 matlab2022a仿真结果如下:

1.png2.png

2.算法涉及理论知识概要 深度学习(DL,Deep Learning)是机器学习(ML,Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI,Artificial Intelligence)。 [1深度学习是学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字、图像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。 深度学习是一个复杂的机器学习算法,在语音和图像识别方面取得 的效果,远远超过先前相关技术。 深度学习在搜索技术、数据挖掘、机器学习、机器翻译、自然语言处理、多媒体学习、语音、推荐和个性化技术,以及其他相关领域都取得了很多成果。深度学习使机器模仿视听和思考等人类的活动,解决了很多复杂的模式识别难题,使得人工智能相关技术取得了很大进步。

   GoogLeNet是2014年Christian Szegedy提出的一种全新的深度学习结构,在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果,但层数的增加会带来很多负作用,比如overfit、梯度消失、梯度爆炸等。inception的提出则从另一种角度来提升训练结果:能更高效的利用计算资源,在相同的计算量下能提取到更多的特征,从而提升训练结果。
   inception模块的基本机构如图1,整个inception结构就是由多个这样的inception模块串联起来的。inception结构的主要贡献有两个:一是使用1x1的卷积来进行升降维;二是在多个尺寸上同时进行卷积再聚合。

3.png

  作用1:在相同尺寸的感受野中叠加更多的卷积,能提取到更丰富的特征。这个观点来自于Network in Network,图1里三个1x1卷积都起到了该作用。

4.png

    图2左侧是是传统的卷积层结构(线性卷积),在一个尺度上只有一次卷积;图2右图是Network in Network结构(NIN结构),先进行一次普通的卷积(比如3x3),紧跟再进行一次1x1的卷积,对于某个像素点来说1x1卷积等效于该像素点在所有特征上进行一次全连接的计算,所以图2右侧图的1x1卷积画成了全连接层的形式,需要注意的是NIN结构中无论是第一个3x3卷积还是新增的1x1卷积,后面都紧跟着激活函数(比如relu)。将两个卷积串联,就能组合出更多的非线性特征。举个例子,假设第1个3x3卷积+激活函数近似于f1(x)=ax2+bx+c,第二个1x1卷积+激活函数近似于f2(x)=mx2+nx+q,那f1(x)和f2(f1(x))比哪个非线性更强,更能模拟非线性的特征?答案是显而易见的。NIN的结构和传统的神经网络中多层的结构有些类似,后者的多层是跨越了不同尺寸的感受野(通过层与层中间加pool层),从而在更高尺度上提取出特征;NIN结构是在同一个尺度上的多层(中间没有pool层),从而在相同的感受野范围能提取更强的非线性。

    作用2:使用1x1卷积进行降维,降低了计算复杂度。图2中间3x3卷积和5x5卷积前的1x1卷积都起到了这个作用。当某个卷积层输入的特征数较多,对这个输入进行卷积运算将产生巨大的计算量;如果对输入先进行降维,减少特征数后再做卷积计算量就会显著减少。图3是优化前后两种方案的乘法次数比较,同样是输入一组有192个特征、32x32大小,输出256组特征的数据,图3第一张图直接用3x3卷积实现,需要192x256x3x3x32x32=452984832次乘法;图3第二张图先用1x1的卷积降到96个特征,再用3x3卷积恢复出256组特征,需要192x96x1x1x32x32+96x256x3x3x32x32=245366784次乘法,使用1x1卷积降维的方法节省了一半的计算量。

3.MATLAB核心程序

Training_Options     = trainingOptions('sgdm',...
    'MiniBatchSize', 5, ...
    'MaxEpochs', 12,...
    'InitialLearnRate', 5e-4,...
    'Shuffle', 'every-epoch', ...
    'ValidationData', Augmented_Validation_Image, ...
    'ValidationFrequency', Validation_Frequency, ...
    'Verbose', false, ...
    'Plots', 'training-progress');
 
net = trainNetwork(Augmented_Training_Image, Layer_Graph, Training_Options);
 
 
.................................................................
 
 
figure;
 
Img           = imread('test\Bill_Gates.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(231);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 
 
 
Img           = imread('test\Einstein.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(232);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 
 
 
Img           = imread('test\Elon.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(233);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 
 
 
Img           = imread('test\Jackie.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(234);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 
 
 
Img           = imread('test\Stephen.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(235);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 
 
 
Img           = imread('test\tom.jpg');
Resize        = imresize(Img, [224, 224]);
[Label, Prob] = classify(net,Resize);
 
subplot(236);
imshow(Resize);
title({char(Label), num2str(max(Prob),2)});
 

标签:Img,卷积,识别系统,Label,GoogleNet,Matlab,224,Prob,Resize
From: https://blog.51cto.com/matworld/6362408

相关文章

  • 基于MIMO-OFDM通信系统的误码率matlab仿真,对比了MRC,ZF等多种接收器性能
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要MIMO-OFDM系统的接收信号是多个发射天线发送信号的衰落与加性噪声的线性叠加,若采用通常SISO-OFDM系统或MIMO系统的估计算法估计信道,将会带来很大的估计误差。出于设计实现的考虑,本文主要研究理论相对比较成熟的慢......
  • m基于SPA和积译码算法的LDPC误码率matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下: 2.算法涉及理论知识概要       LDPC(Low-densityParity-check,低密度奇偶校验)码是由Gallager在1963年提出的一类具有稀疏校验矩阵的线性分组码(linearblockcodes),然而在接下来的30年来由于计算能力的不足,它一直被人......
  • MATLAB实验一:一维寻优法(0.618法)程序设计
    一、实验目的通过一维寻优黄金分割法的程序设计,培养计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。二、实验内容(1)用0.618法求解优化问题:minf(x)=x^2-sin(x)在区间[0,1]上的极小点和极小值;(2)根据0.618法算法步骤编写Matlab的程......
  • MATLAB实验二:最速下降法程序设计
    一、实验目的通过最速下降法的程序设计,为今后的约束优化方法的学习和编程奠定基础;掌握负梯度方向的定义和最速下降法的迭代公式;通过此次实验,进一步巩固最速下降法的基本原理和思想。二、实验内容(1)求解无约束优化问题:(2)完成最速下降法(负梯度法)的MATLAB编程、调试;(3)要求选取多个......
  • MATLAB实验三:Newton法程序设计
    一、实验目的掌握Hesse矩阵的计算方法和Newton法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;正确处理实验数据和分析实验结果及调试程序。二、实验内容(1)求解无约束优化问题(3)完成Newton法(牛顿法)的MATLAB编程、调试;(4)选取几个与实验二中相同的初始点,并给出相关实......
  • MATLAB实验四:共轭梯度法程序设计
    一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。二、实验内容 (1)求解无约束优化问题:minf(x)=100(x1^2-x2)^2+(x1-1)^2,x∈R;(2)终止准则取||f(x^k)||<=10^-5,搜索方法采用非精确搜索Armijo;......
  • m基于FPGA的PID控制器实现,包含testbench测试程序,PID整定通过matlab使用RBF网络计算
    1.算法仿真效果vivado2019.2、matlab2022a仿真结果如下:    2.算法涉及理论知识概要        PID控制器产生于1915年,PID控制律的概念最早是由LYAPIMOV提出的,到目前为止,PID控制器以及改进的PID控制器在工业控制领域里最为常见。PID控制器(比例-积分-微分控制器......
  • Matlab求解非线性方程的根
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 【模型部署 01】C++实现分类模型(以GoogLeNet为例)在OpenCV DNN、ONNXRuntime、TensorRT
    深度学习领域常用的基于CPU/GPU的推理方式有OpenCVDNN、ONNXRuntime、TensorRT以及OpenVINO。这几种方式的推理过程可以统一用下图来概述。整体可分为模型初始化部分和推理部分,后者包括步骤2-5。以GoogLeNet模型为例,测得几种推理方式在推理部分的耗时如下:结论:GPU加速首选Tens......
  • m基于负价环N算法的无线传感器网络性能matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:     2.算法涉及理论知识概要负环的定义:负环是指权值和为负数的环。负环会使图的最短路径计算陷入死循环,因此,存在负环的图不存在最短路。 负环的计算方法:负环有两种计算方法,都是基于Bellman-Ford算法或者SPFA算法。第......