首页 > 其他分享 >基于VGG16深度学习网络的目标识别matlab仿真,并结合ROC指标衡量识别性能

基于VGG16深度学习网络的目标识别matlab仿真,并结合ROC指标衡量识别性能

时间:2023-06-19 18:55:11浏览次数:44  
标签:VGG16 ROC 卷积 train 池化 test 识别 连接

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

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

         根据卷积核大小和卷积层数,VGG共有6中配置,分别为A,A-LRN,B,C,D,E,其中D和E两种最为常用,即i我们所说的VGG16和VGG19。

 

具体为:

 

1. 卷积-卷积-池化-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-全连接-全连接-全连接 。

 

2. 通道数分别为64,128,512,512,512,4096,4096,1000。卷积层通道数翻倍,直到512时不再增加。通道数的增加,使更多的信息被提取出来。全连接的4096是经验值,当然也可以是别的数,但是不要小于最后的类别。1000表示要分类的类别数。

 

3. 所有的激活单元都是Relu 。

 

4. 用池化层作为分界,VGG16共有6个块结构,每个块结构中的通道数相同。因为卷积层和全连接层都有权重系数,也被称为权重层,其中卷积层13层,全连接3层,池化层不涉及权重。所以共有13+3=16权重层。

 

5. 对于VGG16卷积神经网络而言,其13层卷积层和5层池化层负责进行特征的提取,最后的3层全连接层负责完成分类任务。

 

         vgg16总共有16层,13个卷积层和3个全连接层,第一次经过64个卷积核的两次卷积后,采用一次pooling,第二次经过两次128个卷积核卷积后,再采用pooling,再重复两次三个512个卷积核卷积后,再pooling,最后经过三次全连接。如下图所示:

 

 

 VGG优点

 

       VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好:验证了通过不断加深网络结构可以提升性能。

 

VGG缺点

        VGG耗费更多计算资源,并且使用了更多的参数(这里不是3x3卷积的锅),导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。VGG可是有3个全连接层啊!

 

3.MATLAB核心程序

 

train_P   = [];
train_T   = [];
test_P    = [];
test_T    = [];
 
for i=1:length(types)
    i
    types{i}
    trainingImages   = imageDatastore(['images/train/' types{i}],'IncludeSubfolders',true,'LabelSource','foldernames');
    testImages       = imageDatastore(['images/test/' types{i}],'IncludeSubfolders',true,'LabelSource','foldernames');
    augimdsTrain     = augmentedImageDatastore(inputSize(1:2),trainingImages);
    augimdsTest      = augmentedImageDatastore(inputSize(1:2),testImages);
    trainingFeatures = activations(net,augimdsTrain,'fc8','OutputAs','channels');
    testFeatures     = activations(net,augimdsTest,'fc8','OutputAs','channels');
    train_P          = [train_P;squeeze(trainingFeatures(1,1,:,:))'];    
    train_T          = [train_T;trainingImages.Labels];
    test_P           = [test_P;squeeze(testFeatures(1,1,:,:))'];
    test_T           = [test_T;testImages.Labels];
end
 
 
nest                    = fitcecoc(train_P,train_T);
[predictedLabels scores]= predict(nest,test_P);
accuracy                = mean(predictedLabels == test_T);
targets                 = zeros(size(scores'));
for i=1:size(test_T,1)
    I               = find(types==test_T(i));
    targets(I(1),i) = 1;
end
cmat                = confusionmat(test_T,predictedLabels);
figure;
imagesc(cmat);
xlabel('Target Class');
ylabel('Predicted Class');
title(['VGG16 accuracy= ' num2str(100*accuracy),'%']);
colorbar
figure;
plotroc(targets,scores')

 

  

 

标签:VGG16,ROC,卷积,train,池化,test,识别,连接
From: https://www.cnblogs.com/51matlab/p/17491937.html

相关文章

  • Rockchip rk3588 U-Boot详解 (三)
    Rockchiprk3588U-Boot详解(三)专栏总目录1.1Environment-VariablesENV(Environment-Variables)是U-Boot支持的一种全局数据管理和传递方式,原理是构建一张HASH映射表,把用户的数据以"键值-数据"作为表项进行管理。EVN通常用于定义平台配置参数:固件加载地址、网络配置(ipaddr、serve......
  • v$process
    ADDR:进程地址,与v$session中PADDR对应PID:Oracle进程标识符SPID:操作系统的进程IDPNAME:进程名称USERNAME:操作系统进程的用户名,不是Oracle用户名SERIAL#:进程序列号TERMINAL:操作系统的终端标识符PROGRAM:当前进程正在执行的程序TRACEID:跟踪文件标识符TRACEFILE:当前进程的跟踪文......
  • vue使用@符合写路径不识别
    在vue中写@符合不被识别,需要在配置中进行修改,修改内容如下:resolve:{//别名配置alias:[{find:"@",replacement:"/src",},],//忽略文件名extensions:[".mjs",......
  • Airtest图像识别测试工具原理解读&最佳实践 | 京东云技术团队
    1Airtest简介Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。Airtest框架基于一种图形脚本语言Sikuli,引用该框架后,不再需要一行行的写代码,通过截取按钮或输入框的图片,用图片组成测试场景,这种方式学习成本低,简单易上手。2......
  • Airtest图像识别测试工具原理解读&最佳实践
    1Airtest简介Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。Airtest框架基于一种图形脚本语言Sikuli,引用该框架后,不再需要一行行的写代码,通过截取按钮或输入框的图片,用图片组成测试场景,这种方式学习成本低,简单易上手......
  • Switch语句的反汇编以及在IDA中的识别
    Switch语句的反汇编以及在IDA中的识别Switch分为四种情况,这里只介绍三种。分支较少时,不生成大表,也不生成小表,会生成if...else语句分支达到一定数量时,生成大表,且大表跟顺序无关大表可以理解为一个存储了多个地址的连续表,通过Register*4可以来寻址。分支达到一定数量,生成大......
  • 基于图像生成的图像识别:新的思路与实践
    目录文章:基于图像生成的图像识别:新的思路与实践摘要:随着人工智能和深度学习的发展,图像生成技术已经成为了人工智能领域中的一个重要方向。本文将介绍基于图像生成的图像识别技术,探究其最新的思路和实践。首先将介绍基本概念和技术原理,然后分别阐述实现步骤和流程,最后讲解应用示......
  • 【解析】实现家庭语音识别系统需要考虑哪些因素?
    目录1.引言2.技术原理及概念3.实现步骤与流程4.应用示例与代码实现讲解5.优化与改进家庭语音识别系统是人工智能技术在家庭应用领域的一个重要应用,可以实现语音控制家居设备、语音交互、语音报警等功能,提升家庭生活的便捷性和安全性。本文将介绍实现家庭语音识别系统需要考......
  • 【10篇热门博客文章】基于语音识别的智能教育系统设计与实现
    目录智能教育系统是当前人工智能技术应用的一个热门话题。随着人工智能技术的不断发展,智能教育系统也在逐渐完善,能够为学生提供更加智能化的学习体验。本文将介绍基于语音识别的智能教育系统设计与实现,希望能够帮助到读者。一、引言智能教育系统是一种基于人工智能技术的教育系......
  • docker 安装rocketmq
    1启动NameServerdockerpullrocketmqinc/rocketmqmkdir-p/docker/rocketmq/nameserver/logs/docker/rocketmq/nameserver/storedockerrun-d--restart=always--namermqnamesrv--privileged=true-p9876:9876-v/docker/rocketmq/nameserver/logs:/root/logs-......