文章目录

  • 1、GoogLeNet
  • 2、开发环境及前期准备
  • 2.1 安装附加工具
  • 3、Deep Learning Toolbox 开发工具介绍
  • 4、代码实战

1、GoogLeNet

2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名,这两类模型结构的共同特点是层次更深了。VGG继承了LeNet以及AlexNet的一些框架结构(详见 大话CNN经典模型:VGGNet),而GoogLeNet则做了更加大胆的网络结构尝试,虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍,因此在内存或计算资源有限时,GoogleNet是比较好的选择;从模型结果来看,GoogLeNet的性能却更加优越。

详情:大话CNN经典模型:GoogLeNet(从Inception v1到v4的演进)

2、开发环境及前期准备

开发环境:MATLAB2019a
最好用较新的的MATLAB版本,深度学习方向的库更新太快,老版本可能出现不兼容等问题。

两个重要附加工具模块:

  • Deep Learning Toolbox for GoogLeNet
  • MATLAB Support Package for USB Webcams

这两个都是需要下载安装的,MATLAB不自带,当然,很简单的,下面介绍如何安装

2.1 安装附加工具

MATLAB运行如下代码,如果没有安装这个附加工具,自动会出现报错:

camList = webcamlist

报错:


直接点击它报错中的链接即可,如果你的MATLAB还没有登录,这时候需要先登录,或者用邮箱注册一个账号。

之后就是安装:

Deep Learning Toolbox for GoogLeNet 的安装与上一个一致,运行一下下面的代码就可以:

net = googlenet;

3、Deep Learning Toolbox 开发工具介绍

Deep Learning Toolbox™ 提供了一个用于通过算法、预训练模型和应用程序来设计和实现深度神经网络的框架。您可以使用卷积神经网络(ConvNet、CNN)和长短期记忆 (LSTM) 网络对图像、时序和文本数据执行分类和回归。应用程序和绘图可帮助您可视化激活值、编辑网络架构和监控训练进度。

对于小型训练集,您可以使用预训练深度网络模型(包括 SqueezeNet、Inception-v3、ResNet-101、GoogLeNet 和 VGG-19)以及从 TensorFlow®-Keras 和 Caffe 导入的模型执行迁移学习。

要加速对大型数据集的训练,您可以将计算和数据分布到桌面计算机上的多核处理器和 GPU 中(使用 Parallel Computing Toolbox™),或者扩展到群集和云,包括 Amazon EC2® P2、P3 和 G3 GPU 实例(使用 MATLAB® Distributed Computing Server™)。

4、代码实战

此示例说明如何使用预训练的深度卷积神经网络 GoogLeNet 实时对来自网络摄像机的图像进行分类。

使用 MATLAB®、普通的网络摄像机和深度神经网络来识别周围环境中的对象。此示例使用 GoogLeNet,它是预训练的深度卷积神经网络(CNN 或 ConvNet),已基于超过一百万个图像进行训练,可以将图像分为 1000 个对象类别(例如键盘、咖啡杯、铅笔和多种动物)。您可以下载 GoogLeNet 并使用 MATLAB 实时连续处理照相机图像。

GoogLeNet 已基于大量图像学习了丰富的特征表示。它以图像作为输入,然后输出图像中对象的标签以及每个对象类别的概率。您可以用周围的物品进行试验,以了解 GoogLeNet 对图像进行分类的准确程度。要了解有关网络对象分类的详细信息,可以实时显示排名前五的类的分数,而不是只显示最终的类决策。

加载照相机和预训练网络
连接到照相机并加载预训练的 GoogLeNet 网络。您可以在此步骤使用任何预训练网络。该示例需要 MATLAB Support Package for USB Webcams,以及 Deep Learning Toolbox™ Model for GoogLeNet Network。如果没有安装所需的支持包,软件会提供下载链接。在报错的红字中有安装的路径(Add-On-Explorer),只需要点击进去登陆便可以下载此模块:
1、调取摄像头程序:

camList = webcamlist% Connect to the webcam.
cam = webcam(1)preview(cam);img = snapshot(cam);% Display the frame in a figure window.
image(img);for idx = 1:5img = snapshot(cam);image(img);
end%% Once the connection is no longer needed, clear the associated variable.
% clear cam

2、识别显示程序

clear
close all
clc
camera = webcam;
net = googlenet;%% 加载照相机和预训练网络
inputSize = net.Layers(1).InputSize(1:2)figure
im = snapshot(camera);
image(im)
im = imresize(im,inputSize);
[label,score] = classify(net,im);
title({char(label),num2str(max(score),2)});h = figure;while ishandle(h)im = snapshot(camera);image(im)im = imresize(im,inputSize);[label,score] = classify(net,im);title({char(label), num2str(max(score),2)});drawnow
endh = figure;
h.Position(3) = 2*h.Position(3);
ax1 = subplot(1,2,1);
ax2 = subplot(1,2,2);im = snapshot(camera);
image(ax1,im)
im = imresize(im,inputSize);
[label,score] = classify(net,im);
title(ax1,{char(label),num2str(max(score),2)});[~,idx] = sort(score,'descend');
idx = idx(5:-1:1);
classes = net.Layers(end).Classes;
classNamesTop = string(classes(idx));
scoreTop = score(idx);barh(ax2,scoreTop)
xlim(ax2,[0 1])
title(ax2,'Top 5')
xlabel(ax2,'Probability')
yticklabels(ax2,classNamesTop)
ax2.YAxisLocation = 'right';while ishandle(h)% Display and classify the imageim = snapshot(camera);image(ax1,im)im = imresize(im,inputSize);[label,score] = classify(net,im);title(ax1,{char(label),num2str(max(score),2)});% Select the top five predictions[~,idx] = sort(score,'descend');idx = idx(5:-1:1);scoreTop = score(idx);classNamesTop = string(classes(idx));% Plot the histogrambarh(ax2,scoreTop)title(ax2,'Top 5')xlabel(ax2,'Probability')xlim(ax2,[0 1])yticklabels(ax2,classNamesTop)ax2.YAxisLocation = 'right';drawnow
end

MATLAB基于深度学习框架GoogLeNet的网络摄像机图像分类相关推荐

  1. (23) 基于深度学习框架的出租车OD需求预测应用对比

    交通预见未来(23): 基于深度学习框架的出租车OD需求预测应用对比 文章信息 前面看了 OD需求预测的文章,有一些相似之处,拿出来放到一起对比下. 一.<Contextualized Spat ...

  2. 生存分析——快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)

    看到快手这篇文章,还开源了他们的KwaiSurvival,上手试了试: KwaiSurvival 是快⼿DA⾃主开发的基于深度学习框架的集成⽣存分析软件,帮助使⽤者在 Python编程环境下⾼效地使⽤ ...

  3. 书法特征提取matlab,基于深度学习的软笔书法临摹评价方法与流程

    本发明属于计算机视觉技术领域,涉及手写汉字行书字体的评价,尤其是一种基于深度学习的软笔书法临摹评价方法. 背景技术: 书法是我国具有几千年历史的传统艺术,是我们中华民族的特色文化代表之一,它不仅记录着 ...

  4. 基于深度学习框架的火灾识别报警平台搭建----OpenCV3.1.0读取dav视频数据出错

    在搭建深度学习-caffe框架时,使用OpenCV3.1.0读取dav视频数据,出现解析h264数据错误: [h264 ] top block unavailable for requested in ...

  5. 手写的汉字评分matlab,基于深度学习的手写汉字美感评分

    HANDWRITTEN CHINESE CHARACTER AESTHETIC GRADING BASED ON DEEP LEARNING Zhuang Ziming 1 庄子明(1993-),女, ...

  6. STGCN时空图卷积网络:用于交通预测的深度学习框架

    时空图卷积网络:用于交通预测的深度学习框架 及时准确的交通预测对城市交通控制和引导至关重要.由于交通流的高度非线性和复杂性,传统的方法不能满足中长期预测任务的要求,往往忽略了空间和时间的相关性.本文提 ...

  7. 【论文阅读】Spatio-Temporal Graph Convolutional Networks:...Traffic Forecasting[时空图卷积网络:用于交通预测的深度学习框架](1)

    [论文阅读]Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecastin ...

  8. 基于深度学习的表面缺陷检测方法综述-论文阅读笔记

    //2022.3.2日阅读笔记 原文链接:基于深度学习的表面缺陷检测方法综述 (aas.net.cn) 个人对本篇综述内容的大致概括 论文首先介绍了表面缺陷检测中不同场景下的成像方案,主要根据表面颜色 ...

  9. 目标检测算法(传统基于深度学习的)

    目标检测算法 最近在学目标检测各类算法,主要分为传统的目标检测方法和基于深度学习的目标检测算法,这里记录了一些基本的算法介绍.下图是目标检测算法的发展历程 传统目标检测方法 分三部分:区域选择–> ...

最新文章

  1. (转)Spring Boot(七):Mybatis 多数据源最简解决方案
  2. CURL POST PHP
  3. python写病毒代码_手把手教你!100行代码,用Python做一个“消灭病毒”的小游戏...
  4. 依云工资查询系统升级至6.4
  5. IPV4怎么转换成IPV6?
  6. 删除注册表里没用的服务
  7. Android-failed to set system property
  8. IDEA Springboot docker 构建项目
  9. 低成本3X3拼接方案
  10. 史上最狠的十二星座分析
  11. 五千图文,详解SI信号完整性工程师工作流程
  12. 沐风:微信小程序火了,小心掉入陷井!
  13. 解决——U盘格式化为NTFs之后,显示不了U盘
  14. 十个Mac端设计软件
  15. 数据结构与算法——左程云06
  16. 如何通过Charles+BurpSuite的配合在PC端抓到手机包
  17. 3.1处理Cookie登录小说网
  18. 让Python Matplotlib使用事半功倍!
  19. LabVIEW做CRC校验CRC-16/CCITT-FALSE算法
  20. Web项目访问本地盘符图片

热门文章

  1. 记录Windows下有趣的cmd命令(持续更新)
  2. 自己写的几个简单常用的脚本
  3. Springboot毕业设计毕设作品,助农农产品销售系统 开题报告
  4. 集合论中的选择公理AC
  5. python与统计分析课后答案_高校邦Python科学计算课后习题答案
  6. 《实战Java高并发程序设计》github笔记和源码
  7. Netty服务器部署在Android设备上,接收来自PC客户端的Java Socket客户端发送的JSON数据
  8. 中国硬分币价格表参考
  9. 红米手机使用应用沙盒动态修改位置数据
  10. 【大数据】大数据基础知识科普--数据分层