当前位置: 首页 > news >正文

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: 1AvailableCameras: {'back' 'front'}Logging: 0InitialTimestamp: ''AccelerationSensorEnabled: 0
AngularVelocitySensorEnabled: 0MagneticSensorEnabled: 0OrientationSensorEnabled: 0PositionSensorEnabled: 0Supported 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 = categoricalcoffee 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)

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

 

相关文章:

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

系列文章目录 前言 此示例说明如何使用深度学习对移动设备摄像头采集的图像进行分类。 在您的移动设备上安装和设置 MATLAB Mobile™。然后,从 MATLAB Mobile 的“设置”登录 MathWorks Cloud。 在您的设备上启动 MATLAB Mobile。 一、在您的设备上安装 MATLAB M…...

LangChain入门指南:定义、功能和工作原理

LangChain入门指南:定义、功能和工作原理 引言LangChain是什么?LangChain的核心功能LangChain的工作原理LangChain实际应用案例如何开始使用LangChain 引言 在人工智能的浪潮中,语言模型已成为推动技术革新的重要力量。从简单的文本生成到复…...

关键字:import关键字

在 Java 中,import关键字用于导入类或接口,使你可以在代码中使用它们而无需完全限定其名称。以下是使用import关键字的示例代码: 在上述示例中,通过使用import关键字导入了java.util.ArrayList类,这样就可以在代码中直…...

【C#】.net core 6.0 通过依赖注入注册和使用上下文服务

给自己一个目标,然后坚持一段时间,总会有收获和感悟! 请求上下文是指在 Web 应用程序中处理请求时,包含有关当前请求的各种信息的对象。这些信息包括请求的头部、身体、查询字符串、路由数据、用户身份验证信息以及其他与请求相关…...

关于redis单线程和IO多路复用的理解

首先,Redis是一个高性能的分布式缓存中间件。其复杂性不言而喻,对于Redis整体而言肯定不是只有一个线程。 我们常说的Redis 是单线程,主要是指 Redis 在网络 IO和键值对读写是采用一个线程来完成的,这也是 Redis 对外提供键值存储…...

第四十一章 XML 映射参数摘要

文章目录 第四十一章 XML 映射参数摘要 第四十一章 XML 映射参数摘要 TopicParameters启用 XML 映射。XMLENABLED 类参数将属性映射到元素或属性。XMLPROJECTION property parameter ("NONE", "ATTRIBUTE", "XMLATTRIBUTE", "CONTENT"…...

redis之五种基本数据类型

一) 字符串(String) 1 使用场景 2 编码 3 编码转换 二) List(列表) 1 使用场景 2 编码 三) Set(无序集合) 1 使用场景 2 编码 3 编码转换 四) ZSet(有序集合) 1 使用场景 2 编码 3 编码转换 五) Hash 1 使用场景 2 编码 3 编码转换 五种基本数据类型 redis…...

RocketMQ系统性学习-RocketMQ高级特性之消息大量堆积处理、部署架构和高可用机制

🌈🌈🌈🌈🌈🌈🌈🌈 【11来了】文章导读地址:点击查看文章导读! 🍁🍁🍁🍁🍁🍁&#x1f3…...

Angular 进阶之五: Signals到底用不用?

Angular 在V16的时候推出了Signals,在17正式作为主打功能之一强烈推荐,看过了各种博主的各种科普文章也没说明白,到底这东西值不值得用?毕竟项目大了,重构代码也不是闹着玩儿的。各种科普文章主要在说两点:…...

构建数字化金融生态系统:云原生的创新方法

内容来自演讲:曾祥龙 | DaoCloud | 解决方案架构师 摘要 本文探讨了金融企业在实施云原生体系时面临的挑战,包括复杂性、安全、数据持久化、服务网格使用和高可用容灾架构等。针对网络管理复杂性,文章提出了Spiderpool开源项目,…...

前端性能优化五:css和js位置

1. 精简HTML代码: ①. css链接文件尽量放在页面头部:a. css的加载不会阻塞DOM Tree的解析.b. 但会阻塞DOM Tree渲染,也会阻塞后面JS的执行.c. 将css放在任何body元素之前:(1). 可以确保在文档中解析了所有css的样式包括内联样式和外联的.(2). 减少了浏览器必须重排文档的次数.…...

苏州耕耘无忧物联网:降本增效,设备维护管理数字化转型的引领者

随着科技的快速发展和工业4.0的推动,设备维护管理已经从传统的被动式、经验式维护,转向了更加积极主动、数据驱动的维护模式。在这个过程中,苏州耕耘无忧物联科技有限公司以其深厚的技术积累和丰富的管理经验,引领着设备维护管理数…...

15个热门的开源数据可视化项目

数据可视化(即 BI仪表盘)是图形表示的数据。它涉及产生将表示的数据之间的关系传达给图像查看者的图像。这种通信是通过在可视化过程中使用图形标记和数据值之间的系统映射来实现的。该映射建立了如何在视觉上表示数据值,确定图形标记的属性(例如大小或颜色)如何以及在多大程…...

【第七在线】数据分析与人工智能在商品计划中的应用

随着技术的不断进步,数据分析和人工智能(AI)已经成为了现代商品计划的关键组成部分。在服装行业,这两项技术正在帮助企业更好地理解市场需求、优化库存管理、提高生产效率和提供更好的客户体验。本文将深入探讨数据分析和人工智能…...

【圣诞】极安云科赠书活动第①期:CTF实战:从入门到提升

【圣诞】极安云科赠书活动第①期:CTF实战:从入门到提升 9787111724834 9787121376955 9787302556275 ISBN编号:9787111724834 书名:CTF实战:从入门到提升 定:99.00元 开本:184mm260&#xff…...

分布式搜索elasticsearch概念

什么是elasticsearch? elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容 目录 elasticsearch的场景 elasticsearch的发展 Lucene篇 Elasticsearch篇 elasticsearch的安装 elasticsearch的场景 elasticsear…...

Linux环境安装Hadoop

(1)下载Hadoop安装包并上传 下载Hadoop安装包到本地,并导入到Linux服务器的/opt/software路径下 (2)解压安装包 解压安装文件并放到/opt/module下面 [roothadoop100 ~]$ cd /opt/software [roothadoop100 software…...

swing快速入门(二十五)

注释很详细,直接上代码 新增内容 1.ImageIO.write读取并显示图片 2.ImageIO.writeImageIO.write读取并保存图片 package swing21_30;import javax.imageio.ImageIO; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent…...

智能优化算法应用:基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于卷尾猴算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.卷尾猴算法4.实验参数设定5.算法结果6.参考文…...

前端传输formDate格式的数据,后端不能用@RequestBody接收

写了个接口,跟前端对接,前端说怎么一直415的报错 我寻思不对啊,我swagger都请求成功了,后来发现前端一直是以formdata格式提交的数据,这样我其实是可以不加RequestBody的; 知识点: RequestBody…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

Java入门学习详细版(一)

大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代,传统本地存储因容量限制、管理复杂等问题,已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性,成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理,云存储正重塑数据存储与…...

Java设计模式:责任链模式

一、什么是责任链模式? 责任链模式(Chain of Responsibility Pattern) 是一种 行为型设计模式,它通过将请求沿着一条处理链传递,直到某个对象处理它为止。这种模式的核心思想是 解耦请求的发送者和接收者,…...