MATLAB Mobile - 使用预训练网络对手机拍摄的图像进行分类

系列文章目录


前言

此示例说明如何使用深度学习对移动设备摄像头采集的图像进行分类。

在您的移动设备上安装和设置 MATLAB® Mobile™。然后,从 MATLAB Mobile 的“设置”登录 MathWorks® Cloud。

在您的设备上启动 MATLAB Mobile。


一、在您的设备上安装 MATLAB Mobile

Apple 的 App Store® 和 Google Play® 中提供了 MATLAB® Mobile™ App。

要在您的设备上下载 MATLAB Mobile App,请执行以下操作:

  1. 在您的设备上启动 App Store 或 Google Play。

  2. 使用关键字 MATLAB Mobile 在商店中搜索。

  3. 要开始在您的设备上免费安装 App,请执行以下操作:

    • 在 Android 设备上:点击安装

    • 在 Apple 设备上:点击下载图标。在某些情况下,iTunes 应用程序可能要求您输入密码来完成交易。

  4. 安装完成后,您可以点击打开以在您的设备上启动 MATLAB Mobile。

对于 Apple 设备,您还可以从您计算机上的 iTunes 软件访问 App Store。

至此页面下载并安装 MATLAB Support Package for Android Sensors 工具箱。

MATLAB Support Package for Android Sensors - File Exchange - MATLAB Central (mathworks.cn)icon-default.png?t=N7T8https://ww2.mathworks.cn/matlabcentral/fileexchange/47618-matlab-support-package-for-android-sensors

二、创建与手机摄像头的连接

命令屏幕上,创建一个 mobiledev 对象 m

m = mobiledev
m = 
mobiledev with properties:

                   Connected: 1
            AvailableCameras: {'back' 'front'}
                     Logging: 0
            InitialTimestamp: ''

   AccelerationSensorEnabled: 0
AngularVelocitySensorEnabled: 0
       MagneticSensorEnabled: 0
    OrientationSensorEnabled: 0
       PositionSensorEnabled: 0

Supported functions

AvailableCameras 属性指示该设备具有 'back' 和 'front' 摄像头。创建与 'back' 摄像头的连接。

cam = camera(m,'back')
cam = 
  Camera with properties:

                    Name: 'back'
    AvailableResolutions: {'640x480'  '1280x720'}
              Resolution: '640x480'
                   Flash: 'off'
               Autofocus: 'on'

摄像头属性提供关于图像分辨率、自动对焦和闪光灯设置的信息。

三、加载预训练网络并采集图像

需要至此页面下载安装 Deep Learning Toolbox Model for GoogLeNet Network 工具箱

https://ww2.mathworks.cn/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-networkicon-default.png?t=N7T8https://ww2.mathworks.cn/matlabcentral/fileexchange/64456-deep-learning-toolbox-model-for-googlenet-network

命令屏幕上,使用 Deep Learning Toolbox™ 加载预训练的 GoogLeNet 网络。

nnet = googlenet;

使用 snapshot 函数和手动快门模式从摄像头采集单个图像。摄像头预览打开后,您可以移动您的移动设备来捕获所需的视野。对于本例,捕获要分类的对象的图像。准备好后,按快门按钮采集图像。

img = snapshot(cam,'manual');

 调整图像大小以匹配网络的输入大小。GoogLeNet 的输入大小是 224×224。使用 image 在 MATLABMobile 中预览图像。

img = imresize(img,[224,224]);
image(img)

四、分类并显示采集的图像

使用来自 Deep Learning Toolbox 的 classify 对所采集图像中的对象进行分类。

label = classify(nnet,img)
label = 

  categorical

     coffee mug 

此对象被分类为咖啡杯。使用标签作为图窗标题预览图像。

image(img)
title(char(label));

 

五、编写函数对图像进行分类

您可以在 MATLABMobile 中编写一个函数来执行前面所有步骤,以对图像进行分类。

文件屏幕上,在 MATLABDrive™ 文件夹中创建一个新脚本。将文件命名为 camnet.m。按照以下方式定义 camnet 函数并保存文件。

function value = camnet(cam,nnet)
    img = snapshot(cam,'manual');
    pic = imresize(img,[224,224]);
    value = classify(nnet,pic);
    image(pic)
    title(char(value))
end

命令屏幕上,创建 mobiledev 对象。然后创建 camera 对象。

m = mobiledev;
cam = camera(m,'front');

 加载预训练的 GoogLeNet 网络。

nnet = googlenet;

 调用 camnet 函数。

label = camnet(cam,nnet)

 摄像头预览会在您的移动设备上打开。移动您的移动设备摄像头,指向您要分类的对象。按快门按钮捕获图像。捕获图像后,您可以查看图窗。图窗标题显示对象的预测标签。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/267948.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA控制台乱码

报错情况: 报错原因:Idea的vm用的编码格式不一致:需要修改为UTF-8 你看Tomcat我之前下在后修改果,就没有报错,新人刚下载也有乱码问题 问题解决: 按我步骤来一定对 下面这俩文件打开输入: -D…

医疗机构远程视频监控集中管理,贝锐蒲公英提供一站式解决方案

上海某企业专业致力于医疗软件、家居智能化研发、设计、销售、集成及实施,企业主营业务之一为医疗软件,涉及PACS/RIS/WEB/HIS、示教系统等方面的医院信息化建设。 在实际应用、部署过程中,需要实现各地区分院与总院间的数据库互相访问、视频数…

Portainer.io:让容器管理变得更加直观

在现代软件开发和部署中,容器化技术已经变得越来越流行。Docker 是其中一种领先的容器化平台,而 Portainer.io 则是一个优秀的管理工具,使得 Docker 的使用变得更加简单和可视化。本文将介绍 Portainer.io 的基本功能和如何在 Docker 上安装和…

jQuery: 整理4---创建元素和添加元素

1.创建元素&#xff1a;$("内容") const p "<p>这是一个p标签</p>" console.log(p)console.log($(p)) 2. 添加元素 2.1 前追加子元素 1. 指定元素.prepend(内容) -> 在指定元素的内部的最前面追加内容&#xff0c;内容可以是字符串、…

1-GAN

一、GAN简介 人脸检测、图像识别、语音识别&#xff0c;机器总是在现有事物的基础上做出描述或判断[参考] 能不能创造这个世界不存在的东西&#xff1f;GAN GAN&#xff0c;全称Generative Adversarial Networks&#xff0c;中文叫生成式对抗网络。GAN它包含三个部分&#xf…

【随想】每日两题Day.22

题目&#xff1a;102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[…

基于 Editor.js 开发富文本编辑器库

开始 Editor.js 提供了简单而直观的用户界面&#xff0c;根据需求可以灵活添加自定义的编辑工具&#xff0c;通过插件扩展功能 Editorjs 使用 js 开发&#xff0c;脱离框架依赖&#xff0c;因此可以基于它封装富文本编辑器&#xff0c;用于 Vue 和 React 项目 editor-js-com…

C语言、c++实现超好玩植物大战僵尸(完整版附源码)

实现这个游戏需要Easy_X main.cpp //开发日志 //1导入素材 //2实现最开始的游戏场景 //3实现游戏顶部的工具栏 //4实现工具栏里面的游戏卡牌 #define WIN_WIDTH 900 #define WIN_HEIGHT 600 //定义植物类型 enum { WAN_DOU, XIANG_RI_KUI, ZHI_WU_COUNT }; #include<stdio.…

linux系统和网络(三):IO,信号,信号量,线程

本文主要探讨linux的IO,信号,信号量,线程相关知识,详细知识可参考本博客其他文章。 信号&#xff08;可参考本博客其他文章&#xff09; 信号是内容受限的异步通信机制,硬件异常后统内核发出信号 alarm产生SIGALARM信号,读端关闭后管道write产生SIGPIPE信号 常见信号…

2024年起重机司机(限门式起重机)证考试题库及起重机司机(限门式起重机)试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年起重机司机(限门式起重机)证考试题库及起重机司机(限门式起重机)试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作…

基于模型驱动的可解释性全色、多光谱、高光谱融合网络

摘要 摘要:同时融合高光谱(HS)、多光谱(MS)和全色(PAN)图像为生成高分辨率HS (HRHS)图像提供了一种新的范式。在这项研究中&#xff0c;我们提出了一个可解释的模型驱动的深度网络&#xff0c;用于HS, MS和PAN图像融合&#xff0c;称为HMPNet。我们首先提出了一种新的融合模型…

编译原理--递归下降分析实验C++

一、实验项目要求 1.实验目的 根据某一文法编制调试递归下降分析程序&#xff0c;以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 2.实验要求 对下列文法&#xff0c;用递归下降分析法对任意输入的符号串进行分析&#xff1a; &#…

【并发编程篇】定义最大线程的方法

文章目录 &#x1f354;省流&#x1f3f3;️‍&#x1f308;前言&#x1f6f8;CPU密集型&#x1f339;代码实现 &#x1f6f8;IO密集型 &#x1f354;省流 池的最大大小如何去设置 使用CPU密集型和IO密集型这2种方法 &#x1f3f3;️‍&#x1f308;前言 上一篇文章我们讲解…

音视频的编码格式与封装格式

音视频的编码格式与封装格式是两个不同的概念&#xff0c;视频封装格式常见的有&#xff1a;mp4&#xff0c;rmvb&#xff0c;avi&#xff0c;mkv&#xff0c;mov&#xff0c;mpg&#xff0c;vob&#xff0c;3gp&#xff0c;asf&#xff0c;rmvb&#xff0c;wmv&#xff0c;div…

ARM GIC (五)gicv3架构-LPI

在gicv3中,引入了一种新的中断类型。message based interrupts,消息中断。 一、消息中断 外设,不在通过专用中断线,向gic发送中断,而是写gic的寄存器,来发送中断。 这样的一个好处是,可以减少中断线的个数。 为了支持消息中断,gicv3,增加了LPI,来支持消息中断。并且…

分布式事务TCC补偿机制

文章目录 概述工作流程优缺点优点&#xff1a;缺点&#xff1a; 总结Java 示例代码 概述 TCC&#xff08;Try-Confirm-Cancel&#xff09;补偿机制是一种事务处理模式&#xff0c;用于确保分布式系统中的操作成功完成或在失败时进行补偿。TCC将一个事务拆分为三个阶段&#xf…

vue3老项目如何引入vite

vue3老项目如何引入vite 安装 npm install vite vitejs/plugin-vue --save-dev Vite官方中文文档修改package.json文件 在 npm scripts 中使用 vite 执行文件 "scripts": {"serve": "vite","build": "vite build","pr…

Vue 封装echarts柱状图(Bar)组件

目的&#xff1a;减少重复代码&#xff0c;便于维护 显示效果 组件代码 <template><div class"ldw-data-content-box"><div class"ldw-chilren-box"><div class"title" v-if"title">{{ title }}</div>…

python使用opencv提取视频中的每一帧、最后一帧,并存储成图片

提取视频每一帧存储图片 最近在搞视频检测问题&#xff0c;在用到将视频分帧保存为图片时&#xff0c;图片可以保存&#xff0c;但是会出现(-215:Assertion failed) !_img.empty() in function cv::imwrite问题而不能正常运行&#xff0c;在检查代码、检查路径等措施均无果后&…

探索应用程序的指路明灯:Route 和 Router 入门指南(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…