主要内容

用于固定点部署的人类活动识别Simulink模型万博1manbetx

此示例显示了如何准备基于传感器信号对人类活动进行分类的Simulink®万博1manbetx模型,以进行代码生成和部署到低功耗硬件。该示例提供了一种模拟分类模型,可以准备部署到B万博1manbetxBC Micro:Bit设备。首先,下载并安装Simulink Coder™支持包,用万博1manbetx于BBC M万博1manbetxicro:Bit从附加资源管理器。然后,培训分类模型并将Simulink模型部署到目标设备。万博1manbetx

加载样本数据集

加载人类活动数据集。

加载人类活动

人类活动数据集包含了24,075个分析五个物理人类活动:坐着,站立,走路,跑步和跳舞。每次观察都有60个功能,从智能手机加速度计传感器测量的加速度数据中提取。数据集包含以下变量:

  • actid.- 响应矢量包含整数中的活动ID:1,2,3,4和5分别表示坐姿,站立,行走,跑步和跳舞

  • Actnames.- 与整数活动ID对应的活动名称

  • feat- 24,075个观察的功能矩阵为60个功能

  • featlabels.—60个特性的标签

传感器HAR(人类活动识别)应用程序[1]被用来创造人类活动数据集。当用这个应用程序测量原始加速数据时,一个人在口袋里放置智能手机,以便智能手机颠倒,屏幕面向人。然后,软件相应地校准测量的原始数据,并从校准数据中提取了60个功能。有关校准和特征提取的详细信息,请参阅[2][3], 分别。稍后描述万博1manbetx的Simulink模型还使用原始加速度数据,并包括用于校准和特征提取的块。

要减少固定点部署的内存占用空间,请指定仅使用培训的分类器中的数据集的前15个功能。

(壮举=壮举:1:15);featlabels = featlabels (1:15);

准备数据

此示例使用90%的观察观察来培训分类五种类型的人类活动的模型,以及验证培训的模型的10%的观察结果。用CVPartition.为测试集指定10%的HoldOut。

rng (“默认”%的再现性分区= cvpartition (actid,'坚持', 0.10);

提取培训和测试指数。

训练=训练(分区);testinds =测试(分区);

指定培训和测试数据集。

xtrain = feat(训练,:);ytrain = actid(训练器);xtest = feat(testinds,:);ytest = actid(testinds);

在命令行培训决策树

使用预测器列车拟合二进制分类决策树XTrain.和班级标签YTrain.推荐的做法是指定类名。另外,为决策树指定最多20个分支节点。

classificationtree = fitctree(xtrain,ytrain,......“类名”, (1, 2, 3, 4, 5],......“MaxNumSplits”, 20)
classificationtree = classificationtree racatectename:'y'pationoricalpricictors:[] classNames:[1 2 3 4 5] ScorEtransform:'无'NumObServations:21668属性,方法

执行5倍交叉验证classificationTree并计算验证准确性。

partitionedModel = crossval (classificationTree,'kfold'5);validationAccuracy = 1-kfoldLoss (partitionedModel)
ValidationAccuracy = 0.9700.

或者,您可以使用分类学习者应用培训和交叉验证相同的分类模型。有关类似的例子,请参阅智能手机部署的人类活动识别Simulink模型万博1manbetx

评估测试数据的性能

通过估计测试样本分类误差来确定算法的泛化程度。

testAccuracy = 1损失(分类触发,XTEST,YTEST)
testAccuracy = 0.9617

训练有素的模型正确对测试数据集的人类活动进行了正确分类。该结果证实,培训的模型对训练数据集没有过度装备。

请注意,准确度值可能会略有不同,具体取决于您的操作系统。

在Simulink模型万博1manbetx中预测

现在您已准备好分类模型,您可以打开Simulink模型。万博1manbetx您可以导入包含决策树的培训的分类对象classificationTree成一个ClassificationTree预测堵塞。您可以从统计信息和机器学习工具箱™库中添加此块。有关如何创建包含一个模型的更多信息ClassificationTree预测块,看看使用ClassificationTree预测块预测类标签.在这种情况下,您将使用Simulink模型万博1manbetxslexHARFixedPointExample提供了这个例子。

创建一大集加速度计数据TS.用作Simulink模型的输入。万博1manbetx

indata = load('RawAccData');Xacc = inData.acc_data;t = 0:尺寸(Xacc, 1) 1;ts = timeseries (Xacc t'threadetsinglerowdataas3d',真的);numsteps = numel(t)-1;

打开Simulin万博1manbetxk模型slexHARFixedPointExample通过在命令行输入以下内容。请注意,Simulink模型万博1manbetx包括回调,该回调将预处理子系统加载到基础工作区中的必要变量。

slexHARFixedPointExample

slexHARFixedPointExample模型包含以下模块:

  • X块(输入端口)链接信号TS.从工作区进入系统。

  • 缓冲和校准块包含三个缓冲块:X缓冲区y缓冲,Z缓冲.每个块缓冲加速度计轴的32个样本,缓冲帧之间的12个重叠样本。每次采集20个样本缓冲Block将它们与前一帧的12个样本连接起来,并将总共32个样本传递给预处理堵塞。每个缓冲块每0.1秒接收一个输入样本,并每2秒输出一个包含32个样本的缓冲帧。

  • 预处理Block从包含32个加速度计样本的缓冲帧中提取15个特征。该子系统采用DSP系统工具箱™和信号处理工具箱™。

  • ClassificationTree预测block是来自Statistics and Machine Learning Toolbox库的库块,该库块使用提取的特征对人类活动进行分类。输出为1到5之间的整数,分别对应坐、站、走、跑和跳舞。

转换为固定点

转换slexHARFixedPointExample模型到固定点模型SlexharfixedPointConvertedExample..然后,部署SlexharfixedPointConvertedExample.到BBC Micro:位板。目标设备没有浮点单元(FPU),并且比浮点计算更有效地执行定点计算。

slexHARFixedPointExample模型,右键单击标签端口和选择日志选定的信号.然后,打开固定点工具应用程序通过从Apps Gallery中选择它,可从Apps Gallery中获取应用标签。在固定点工具中新的工作流程,选择迭代定点转换

在这一点迭代定点转换选项卡,信号公差部分,指定可接受的公差水平(原始值与新设计的值之间的差异)标签信号。建议的分类模型的做法是指定0个绝对容差。使用此设置,定点分类模型返回的标签必须与浮点模型返回的标签相同。(对于回归模型,可接受的容差可以是非零用户指定的数字。)

然后,回顾示例中的步骤将浮点模型转换为固定点(定点设计师)学习如何创建一个被转换为定点的Simulink模型万博1manbetx。

打开定点Simulink模型万博1manbetxSlexharfixedPointConvertedExample.通过在命令行输入以下内容。这子系统块包含缓冲和校准预处理,ClassificationTree预测块如前所述slexHARFixedPointExample模型。

SlexharfixedPointConvertedExample.

或者,您可以选择优化的固定点转换工作流程中的工作流程固定点工具应用程序或手动定义块对话框中的数据类型。有关更多信息,请参阅配置具有固定点输出的块(定点设计师)

部署到硬件

通过在命令行中输入万博1manbetx以下内容,打开用于部署到BBC Micro:Bit设备的Simulink模型。这slexharfixedpointdeployExample.模型被转换为固定点,并为加速度计和目标设备上的显示端口具有I / O块。

slexharfixedpointdeployExample.

仿真软件万博1manbetx模型slexharfixedpointdeployExample.根据智能手机传感器测量的加速数据对人类活动进行分类。该模型包括以下块:

  • 加速度计块从设备上的加速度计传感器接收原始加速度数据。

  • 缓冲和校准预处理,ClassificationTree预测块与前面显示的那些相同slexHARFixedPointExample模型。

  • 预测活动块在BBC微:位设备的5x5 LED矩阵上显示分类的人类活动值。字母“S”、“T”、“W”、“R”和“D”分别代表坐、站、走、跑和跳舞。

要将Simulink模型部署万博1manbetx到您的设备,请按照步骤操作使用Simulink编码器支持包进行BBC万博1manbetx Micro:bit万博1manbetx(万博1manbetxSIMUL万博1manbetxINK编码器支持BBC MICRO:BIT的包).在您的设备上运行模型,以前面描述的收集训练数据的相同方式放置设备,并尝试五种活动。模型相应地显示分类的活动。

为了确保模型的准确性,您必须按照收集训练数据时所描述的方式放置设备。如果你想把你的设备放在不同的位置或不同的方向,那么就用你自己的方式收集数据,并使用你的数据来训练分类模型。

模型的准确性可以与测试数据集的准确性不同(testaguracy.),取决于设备。为了提高模型精度,考虑使用额外的传感器,例如陀螺仪。

参考文献

[1] El Helou,胺。传感器HAR识别应用程序。MathWorks文件交换//www.tianjin-qmedu.com/matlabcentral/fileexchange/54138- sensor-har-recognition-app.

[2] STMicroelectronics,AN4508应用笔记。“低G 3轴加速度计的参数和校准。”2014年。https://www.st.com/resource/en/application_note/dm00119044-Parameters-and-calibration-of-a-lowg-3axis-accelerometer -stmicroelectronics.pdf.pdf.

[3]埃尔希卢,阿明。传感器数据分析。MathWorks文件交换//www.tianjin-qmedu.com/matlabcentral/fileexchange/54139-sensor-data-analytics --french-webinar-code-

也可以看看

||

相关的话题