在树莓派硬件上使用MNIST数据集识别手写数字0到9
这个例子展示了如何使用Simulink®支持包为树莓派™硬件来识别从金宝app0到9的手金宝app写数字图像。在这个例子中,一个与树莓派硬件板接口的网络摄像头被用来捕捉手写数字的图像。该算法识别数字,然后输出数字的标签及其预测概率。
这个例子使用了一个预先训练好的网络,originalMNIST.mat
,用于预测。该网络已使用修改后的国家标准与技术研究所数据库(MNIST)数据集进行训练。
MNIST数据集是神经网络领域中常用的数据集。该数据集包括6万张用于机器学习模型的训练图像和1万张测试灰度图像。每张图像都是28乘28像素。
先决条件
有关如何在树莓派硬件上运行Simulink模型的更多信息,请参阅金宝app树莓派硬件的Simulink支持包入门金宝app金宝app的例子。
所需的硬件
树莓派板
Micro USB数据线
你可以使用USB网络摄像头,也可以使用树莓派摄像头。在本例中,外部USB网络摄像头与树莓派板接口。
硬件设置
2 .连接树莓派单板与主机。
将USB网络摄像头连接到树莓派单板上。
配置Simulink金宝app模型和校准参数
本例使用树莓派硬件的Simulink支持包中的预配置Simulink金宝app模型。金宝app在这个模型中,RGB图像使用V4L2视频采集块(用于捕获实时视频)和SDL视频显示块(用于显示实时视频)。
要打开Simulink模金宝app型,请在MATLAB®命令窗口中运行此命令。
open_system (“raspberrypi_digitClassification”)
为相机指定感兴趣的区域(ROI)。属性指定ROI常数的Value参数。感兴趣地区块。的感兴趣地区Block是一个常数块。的感兴趣地区块在您指定的ROI周围生成一个边界框。
指定ROI为N维(_x_,y,w,h数组,其中x而且y代表了x- - -y-坐标和w而且h表示宽度和高度,并确定大小。本例中使用的ROI[40 100 140 140]。您可以修改这些值以满足您的需求。
在这个图中,x而且y坐标点分别为40和100。值140表示ROI从x坐标(w= 40 + 140 = 180), 140表示ROI从y坐标(h= 100 + 140 = 240)。
在指定的ROI内捕获的图像是位置端口绘制感兴趣的区域子系统和ROI端口数字预测子系统。
上配置这些参数V4L2视频采集布洛克:
1.中输入视频设备的路径和名称设备名称参数。
提示:你可以使用树莓派资源监控App来查找连接到树莓派板的视频设备的名称。
2.在图像大小参数,指定要捕捉的视频的宽度(以像素为单位)和行高(以行为单位)。
3.设置视频格式为RGB
在像素格式参数。
4.进入样品时间视频设备的。
的矩阵连接块连接它从控件接收到的R、G和B图像数据V4L2视频采集控件的输入信号绘制感兴趣的区域而且数字预测子系统。配置矩阵连接布洛克:
1.集输入数量来3.
为捕获图像的R、G、B数据输入。
2.集模式来多维
对输入的R、G、B图像数据进行多维拼接。
3.集连接尺寸来3.
指定输出维数,沿其连接R、G和B图像数据的输入数组。
中配置SDL视频显示布洛克:
1.设置像素格式的输入视频流RGB
.
的预测数字和信心显示block使用默认值。
要打开绘制感兴趣的区域子系统,在MATLAB命令窗口中运行此命令。
open_system ('raspberrypi_digitClassification/绘制感兴趣的区域')
绘制感兴趣区域子系统绘制从(40,100)到(180,240)像素的ROI。为了绘制ROI,将此图像转换为单一格式,然后再转换回RGB。
要打开数字预测器子系统,在MATLAB命令窗口中运行此命令。
open_system (“raspberrypi_digitClassification /数字预测”)
在数字预测子系统中RGB2bin块将图像转换为其二进制等价,然后从输入图像中提取ROI。该块对图像进行补充并将其大小调整为28 × 28像素。对象将调整大小的图像传递给提取图像特征块来提取定向梯度(HOG)特征的直方图。提取的特征进入预测数字块。Predict Digit块加载紧凑的训练模型,originalMNIST.mat
,从提取的特征中预测数字。有关如何originalMNIST.mat
文件是训练过的,见基于HOG特征的MNIST数据库数字分类(金宝appAndr金宝appoid设备的Simulink支持包)的例子。的预测数字块显示预测数字和信心(0 - 1)块显示其预测的概率。
运行Si金宝appmulink模型
连接到树莓派硬件板上的网络摄像头会捕捉到要识别的数字图像。显示输入图像周围标记的ROI、预测数字和置信度值等输出SDL视频显示,预测数字显示块,信心(0 - 1)显示块,分别。
1.在白板或白纸上画出0到9的数字。在本例中,支持包识别数字金宝app5
.
2.捕获数字5
使用网络摄像头。确保数字包含在ROI内。
3.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优在树莓派板上运行Sim金宝appulink模型。
4.观察SDL视频显示,预测数字显示,信心(0 - 1)显示块。的预测数字显示块将输出显示为5
,以及信心(0 - 1)显示块将输出显示为1
,表示对数字的准确识别5
.
3.点击停止停止Simulink模型金宝app仿真。
其他可以尝试的事情
试着认出从0到9的所有数字。
另请参阅
基于HOG特征的MNIST数据库数字分类(金宝appAndr金宝appoid设备的Simulink支持包)