文章目录

  • 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. python分隔符的使用,在python中使用分隔符“\”拆分字符串
  2. C语言指针总结大学霸IT达人
  3. python 求反函数_逆累积分布函数,累积分布函数及python实现
  4. Spring Cloud云架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)
  5. 字符集GBK升级UTF8
  6. 对于Array的引用
  7. 点击按钮,缩放图片(img.width、img.style.width、img.offsetWidth)
  8. Taro多端开发实现原理与项目实战(一)
  9. STM32F407之资源
  10. 持续交付 devops_DevOps如何帮助向用户交付出色的应用程序
  11. 微服务深入浅出(4)-- 负载均衡Ribbon
  12. 【干货】常用EXE文件反编译工具
  13. Second copy 的增量备份
  14. java ajax传递到action_day8——ajax传参到action(Struts2)
  15. MaaS在绽放,为人们提供出行自由:过渡到新的范式
  16. 打印机如何打印白色_打印机可以打印白色吗?
  17. 企业等保分几级?企业三级等保堡垒机必备方案
  18. 【小教程】adb调试华为手机
  19. LCT求解最小生成树
  20. android nougat honr7,华为荣誉8将于2月获得带有EMUI 5.0的Android 7.0牛轧糖

热门文章

  1. input隐藏域和layui图片上传问题
  2. 手写一个简易版本的RPC
  3. 山东大学项目实训——地图圈系统——微信小程序(16)
  4. 重读《Programming Pearls》之十:Squeezing Space
  5. 联想超融合架构:应运而生的新一代数据中心
  6. 历届研究生数学建模赛题汇总(转载)
  7. UTF-8到Unicode的编码转换
  8. windows使用tomcat并设置环境变量
  9. 《PFLD: A Practical Facial Landmark Detector》论文笔记
  10. mysql tdsql_TDSQL