系列文章目录
前言
此示例说明如何使用深度学习对移动设备摄像头采集的图像进行分类。
在您的移动设备上安装和设置 MATLAB® Mobile™。然后,从 MATLAB Mobile 的"设置"登录 MathWorks® Cloud。
在您的设备上启动 MATLAB Mobile。
一、在您的设备上安装 MATLAB Mobile
Apple 的 App Store® 和 Google Play® 中提供了 MATLAB® Mobile™ App。
要在您的设备上下载 MATLAB Mobile App,请执行以下操作:
-
在您的设备上启动 App Store 或 Google Play。
-
使用关键字
MATLAB Mobile
在商店中搜索。 -
要开始在您的设备上免费安装 App,请执行以下操作:
-
在 Android 设备上:点击安装。
-
在 Apple 设备上:点击下载图标。在某些情况下,iTunes 应用程序可能要求您输入密码来完成交易。
-
-
安装完成后,您可以点击打开以在您的设备上启动 MATLAB Mobile。
对于 Apple 设备,您还可以从您计算机上的 iTunes 软件访问 App Store。
至此页面下载并安装 MATLAB Support Package for Android Sensors 工具箱。
二、创建与手机摄像头的连接
在命令 屏幕上,创建一个 mobiledev 对象 m
。
Matlab
m = mobiledev
Matlab
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'
摄像头的连接。
Matlab
cam = camera(m,'back')
Matlab
cam =
Camera with properties:
Name: 'back'
AvailableResolutions: {'640x480' '1280x720'}
Resolution: '640x480'
Flash: 'off'
Autofocus: 'on'
摄像头属性提供关于图像分辨率、自动对焦和闪光灯设置的信息。
三、加载预训练网络并采集图像
需要至此页面下载安装 Deep Learning Toolbox Model for GoogLeNet Network 工具箱
在命令屏幕上,使用 Deep Learning Toolbox™ 加载预训练的 GoogLeNet 网络。
Matlab
nnet = googlenet;
使用 snapshot 函数和手动快门模式从摄像头采集单个图像。摄像头预览打开后,您可以移动您的移动设备来捕获所需的视野。对于本例,捕获要分类的对象的图像。准备好后,按快门按钮采集图像。
Matlab
img = snapshot(cam,'manual');
调整图像大小以匹配网络的输入大小。GoogLeNet 的输入大小是 224×224。使用 image
在 MATLABMobile 中预览图像。
Matlab
img = imresize(img,[224,224]);
image(img)
四、分类并显示采集的图像
使用来自 Deep Learning Toolbox 的 classify
对所采集图像中的对象进行分类。
Matlab
label = classify(nnet,img)
Matlab
label =
categorical
coffee mug
此对象被分类为咖啡杯。使用标签作为图窗标题预览图像。
Matlab
image(img)
title(char(label));
五、编写函数对图像进行分类
您可以在 MATLABMobile 中编写一个函数来执行前面所有步骤,以对图像进行分类。
在文件 屏幕上,在 MATLABDrive™ 文件夹中创建一个新脚本。将文件命名为 camnet.m
。按照以下方式定义 camnet
函数并保存文件。
Matlab
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 对象。
Matlab
m = mobiledev;
cam = camera(m,'front');
加载预训练的 GoogLeNet 网络。
Matlab
nnet = googlenet;
调用 camnet
函数。
Matlab
label = camnet(cam,nnet)
摄像头预览会在您的移动设备上打开。移动您的移动设备摄像头,指向您要分类的对象。按快门按钮捕获图像。捕获图像后,您可以查看图窗。图窗标题显示对象的预测标签。