系列文章目录


前言

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

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

在您的设备上启动MATLAB Mobile。


一、在您的设备上安装MATLABMobile

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

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

  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)https://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: 0AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0OrientationSensorEnabled: 0 PositionSensorEnabled: 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-networkhttps://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)

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