主要内容

在树莓派硬件上使用深度学习算法进行对象分类

这个例子展示了如何使用Simulink®支持包为树莓派™硬件部署一个金宝app深度学习算金宝app法,该算法使用ResNet-50卷积神经网络对对象进行分类。这个预先训练好的网络有50层深,可以将图像分类为1000个对象类别,比如键盘、鼠标、铅笔等等。你可以在周围的不同物体上进行实验,看看网络在树莓派硬件上对图像的分类有多准确。

本示例使用深度学习模板,该模板提供预配置的Simulink模型,以帮助您使用此支持包设计深度学习应用程序。金宝app金宝app您可以选择在MATLAB®中模拟模型并观察结果,或将其部署在树莓派硬件上。

注意:不能使用macOS在树莓派硬件上生成和部署深度学习代码。

先决条件

  • 配置树莓派网络硬件设置窗口。在此过程中,下载用于深度学习的MathWorks®Raspbian映像。如果您选择自定义硬件上的现有映像,而不是使用MathWorks Raspbian映像,请确保选择了安装ARM®计算库的选项。

  • 有关如何使用树莓派硬件的Simulink支持包在树莓派硬件上运行Simulin金宝appk模型的金宝app详细信息,请参见树莓派硬件的Simulink支持包入门金宝app金宝app

依赖关系

  • 金宝app树莓派硬金宝app件的Simulink支持包

  • MATLAB Coder™接口的深度学习库

  • 深度学习工具箱™

  • ResNet-50网络的深度学习工具箱模型

  • 金宝app仿真软件编码器

  • 计算机视觉工具箱

  • MATLAB编码器

所需的硬件

  • 树莓派硬件板(推荐型号4)

  • 树莓派单板的电源适配器

  • 一个显示器连接到树莓派硬件和一根HDMI线(可选)

  • 金宝app支持USB网络摄像头或树莓派摄像头模块。本例使用USB网络摄像头。

硬件设置

  1. 为树莓派目标板上电。

  2. 通过USB接口连接网络摄像头和树莓派目标板。

配置深度学习模板

您可以使用预先配置的Simulink模型,也可以为本例配置深度学习模板。金宝app

要打开Simulink模金宝app型,请在MATLAB®命令窗口中运行此命令。

open_system (“raspberrypi_object_classification”);

金宝appSimulink开始页面,在金宝app树莓派硬金宝app件的Simulink支持包部分,选择深度学习模板。此模板已预先配置,用于部署针对最新版本ARM计算库的深度学习算法。本例支持最新版本的ARM计金宝app算库20.02。

深度学习模板

添加仿真源窗格中,您可以向深度学习算法提供输入图像或其RGB等效值。将输入源开关从在这里设计你的深度学习算法窗格的添加仿真源窗格。将RGB常量转换为图像块分别替换为image From File和Resize块。

在“来自文件的图像块参数”对话框的“块参数”对话框中浏览输入图像文件。在本例中,默认映像设置为peppers.png

您可以使用Resize块更改图像的大小或图像中的感兴趣区域(ROI)。“调整大小”块确保图像的输出分辨率添加仿真源窗格与树莓派网络摄像头捕获的图像的分辨率匹配。在“调整大小”块的“块参数”对话框中配置这些参数。

  1. 指定输出行数和列数

  2. 输入(320 240)输出行数和列数参数。

树莓派V4L2视频采集和转换为图像块在添加RaspberryPi外设,传感器和输入窗格被预先配置为默认值。

控件中的子系统块在这里设计你的深度学习算法窗格并使用图像分类器、到字符串、字符串到ASCII和插入文本块构建子系统。

Image Classifier块用于使用ResNet-50神经网络对数据进行分类。该块使用从MATLAB函数导入的训练网络预测输入图像的类标签。在图像分类器块的“块参数”对话框中配置这些参数。

  1. 网络来自MATLAB的网络函数

  2. 输入resnet50MATLAB函数参数。

Image Predictor块输出得分最高的预测类标签ypred.然后,该输出被转换为字符串值,并显示为输入图像中分类的对象的标签。插入文本块接受输入图像和图像预测器块输出,插入文本块进一步将其转换为ASCII输入。

ImagetoRGB MATLAB函数块将输入图像转换为其等效的R, G和B数据值。

添加显示,可视化和输出窗格中,您可以查看输入图像或其RGB等效值的模拟结果。中添加Display块并将其连接到子系统的Label输出在这里设计你的深度学习算法窗格。Display块使用ResNet-50神经网络显示分类对象的标签。

的树莓派SDL视频显示块添加显示,可视化和输出窗格被预先配置为默认值。

在“配置参数”对话框中设置参数

硬件选项卡中的Simuli金宝appnk模型,选择配置参数>代码生成>接口.在深度学习部分,这些参数是为深度学习模板预配置的。

  1. 目标库臂计算

  2. ARM计算库版本20.02.1.本例支持最新版本的ARM计金宝app算库。

  3. ARM计算库架构v7

运行Si金宝appmulink模型

1.在硬件选项卡中的Simuli金宝appnk模型,选择配置参数>硬件实现>目标硬件资源>板参数,输入树莓派硬件板的IP地址设备地址参数。

2.在先进的参数节,保证使用Si金宝appmulink Coder特性选中“选项”。

3.控件中的“输入金宝app源”开关设计你的深度学习算法窗格中的输出,并将其连接到添加仿真源窗格。

4.在模拟2 .在模型页签,单击运行

5.中的Display块添加显示和可视化窗格显示输入图像中分类的对象的标签。中的SDL视频显示块添加RaspberryPi驱动器和输出窗格显示带有标签的输入图像。

在树莓派目标板金宝app上部署Simulink模型

1.中的“输入源”开关设计你的深度学习算法窗格中的输出,并将其连接到添加RaspberryPi外设,传感器和输入窗格。

2.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动

3.在网络摄像头前放置一个要分类的对象。在这个例子中,一副太阳镜被用于对象分类。

4.在树莓派桌面,自动打开“SDL视频显示”窗口,显示输入的标签分类图像。观察sunglass_label窗口左上角显示分类对象的标签。若要在树莓派桌面查看分类图像输出,您可以使用VNC查看器或通过HDMI线将显示器连接到树莓派硬件。

其他可以尝试的事情

使用不同的神经网络,观察输入图像的对象分类标签。

另请参阅