主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

スマートフォン展開用の行動認識仿金宝app真软件モデル

この例では,スマートフォンのセンサー信号に基づいて人間の行動を分類する仿金宝app真软件®モデルをコード生成およびスマートフォン展開用に準備する方法を示します。この例では,AndroidデバイスおよびiOSデバイスへの展開に対応している2つの仿真软件モデ金宝appルを提供します。ターゲットデバイスに必要なサポートパッケージをインストールした後で,分類モデルに学習をさせ,仿真金宝app软件モデルをデバイスに展開します。

標本データセットの読み込み

humanactivityデータセットを読み込みます。

负载humanactivity

humanactivityデータセットには,人間の次の5種類の身体動作についての24075個の観測値が含まれています。座る,立つ,歩く,走る,踊るです。各観測値には,スマートフォンの加速度センサーによって測定された加速度データから抽出した60個の特徴量が含まれています。このデータセットには,以下の変数が含まれています。

  • actid- 整数による行动IDが格式されているベクトル.1〜5はそれぞれ,座る,立つ,歩く,走る,踊る,を表します。

  • actnames- 整数の行动IDにする行动名。

  • feat- 24,075个の観测値に対する60个の特价が格式さてている特征行。

  • featlabels- 60個の特徴量のラベル。

humanactivityデータセットの作用成に,センサーhar(行动认识)アプリ[1]が使用されました。このアプリで生の加速度データを測定するときに,人間はスマートフォンを上下逆さまにして画面が人間側を向く状態でポケットに入れていました。ソフトウェアでは,測定した生データをこれに従って較正し,較正したデータから60個の特徴量を抽出しました。較正と特徴抽出の詳細については,[2][3]をそれぞれ参照してください。後で説明する仿金宝app真软件モデルでは生の加速度データも使用しており,較正および特徴抽出用のブロックが含まれています。

データの準備

この例では5種類の行動を分類するモデルに学習をさせるために観測値をの90%,学習済みモデルの検証に観測値の10%を使用します。cvpartitionを使用して,検定セット用に10%のホールドアウトを指定します。

RNG('默认'重复性的%分区= cvpartition(actid,“坚持”,0.10);TrainingInds =培训(分区);%训练集指标XTrain = Feat(TrainingInds,:);ytrain = actid(traininginds);testinds =测试(分区);%测试集索引XTest =壮举(testInds:);欧美= actid (testInds);

分類学習器アプリで学習データセットを読み込むため,特徴量行列XTrainと応答ベクトルytrain.をテーブルに変換します。

array2table([XTrain YTrain]);

テーブルの各列の変数名を指定します。

tTrain.Properties.VariableNames = [featlabels ''活动'];

分享学习器アプリアプリ使使使ブースティング木ののアンサンブルの学习

分類学習器アプリを使用して分類モデルに学習をさせます。分類学習器アプリを開くため,コマンドラインでClassificationSlearner.と入力します。または,[アプリ]タブをクリックし,[アプリ]セクションの右にある矢印矢印クリックし,ギャラリーを开放ます。次次,[機械学習および深層学習][分類学習器]をクリックします。

[分類学習器]タブで,[ファイル]セクションの[新闻】をクリックし,[ワークスペースから]を選択します。

[新闻】ダイアログボックスで,[データデータ数]のの矢印をクリッククリックしからからTTrainををします。分享学学院器械は子とをテーブルテーブル识别识别します。

既定のオプションは,過適合を防ぐ5分割の交差検証です。[セッションの开开]分别学院器材が読み込み読み込み,はじめの2つの特性について散布図をします。

[分類学習器]タブで[モデルタイプ]セクションセクションの右にあるをクリックしてギャラリーをききますきににに,[アンサンブル分量器][ブースティング木)をクリックします。

データブラウザーの[現在のモデル]ペインにブースティング木のアンサンブルモデルの既定設定が表示されます。

[分類学習器]タブの[学学]セクションで,[学学]をクリックします,5分钟で交差された度度表示れブラウザーのた度に表示さデータブラウザーブラウザーの

[分類学習器]タブの[エクスポート]セクションで,[モデルのエクスポート]をクリックしてから[コンパクトモデルのエクスポート]を选択します。ダイアログダイアログボックス[好的]をクリックします。構造体trainedModelがMATLABのワークスペースに現れます。trainedModel分类素..フィールドにコンパクトモデルがれています。学习済みのモデルを构造构造しします。

分类素=训练型思考.Classificationsemble;

コマンドラインにおけるブースティング木のアンサンブルの学習

もう一つの方法として,コマンドラインで同じ分類モデルに学習をさせることができます。

template = templatetree('maxnumsplits'20);ClassificationSeneMble = FitCensemble(Xtrain,Ytrain,...“方法”“AdaBoostM2”...“NumLearningCycles”,30,...“学习者”模板,...“LearnRate”, 0.1,...'classnames', (1;2;3;4;5);

classificationEnsembleについて5分割の交差検証を実行し,検証精度を計算します。

partitionedModel = crossval (classificationEnsemble,“KFold”5);ValidationAccuracy = 1-kfoldloss(PartitionedModel)
validationAccuracy = 0.9830

検定データに対するパフォーマンスの评価

検定データセットに対するパフォーマンスを评価します。

testAccuracy =第一(classificationEnsemble XTest、欧美)
testaccuracy = 0.9763

学科済みモデルは,検定データセットについて行动のこの结果は,学校済みモデルが习データに対して过がになっていことを示しなっていないことを示しなっいいことを示しなっなって

正確な値はオペレーティングシステムによってわずかに変化する可能性があることに注意してください。

学习済みモデルの保存

分類モデルオブジェクトが含まれている場合のコード生成には,Savelarnerforcoder.loadLearnerForCoderを使用します。

Savelarnerforcoder.をを使し,学校済みモデルを保存し。

saveLearnerForCoder (classificationEnsemble'ensembermodel.mat');

金宝app仿真软件モデルの関数ブロック预测loadLearnerForCoderを使用して学習済みモデルを読み込み,学習済みモデルを使用して新しいデータを分類します。

デバイスへの仿金宝app真软件モデルの展開

分数モデルを设备ししので,スマートフォンのタイプに応じsi金宝appmulinkモデルを开放,モデルをデバイスに开头できるようにました.simulinkモデルには。EnsembleModel.matファイルと较正行列slexharandroidcalibion​​matrix.matまたはslexHARiOSCalibrationMatrix.matが必要であることに注意してください。このページの右上にあるボタンをクリックしてこの例をMATLAB®で開くと,これらの較正行列ファイルが含まれている例のフォルダーが開きます。

Androidに展开するsi金宝appmulinkモデルを开放には,Slexharandroidexample.と入力します。

iosに开一开するs金宝appimulinkモデルを开开には,slexhariosexample.と入力します。Mac OSプラットフォームでモデルを開くことができます。

この2つのsim金宝appulinkモデルモデル,スマートフォンのセンサーで测定た加入データに基于人间の行动をしますには以以ブロックがれてていがれいます。

  • 加速度计ブロックは,生物加入度データをの加入度センサー受け取ります受け取りますますますます。

  • 校准ブロックは,生の加速度データを較正するMATLAB函数ブロックです。このブロックではslexharandroidcalibion​​matrix.matファイルまたはslexHARiOSCalibrationMatrix.matファイルの较正行程をこのののにあるボタンクリックのててをををしこの例をmatlab®で开放と,これらのファイルがれて例例ファイルがれ。

  • 表示ブロックACC X.ACC Y.およびACC Z.は,校准ブロックに接続されており,デバイスの各軸について較正されたデータ点を表示します。

  • X缓冲y缓冲およびz缓冲区の各缓冲ブロックは,バッファリングしたフレーム間のオーバーラップが12サンプル分含まれている,32個の加速度計軸のサンプルをバッファリングします。20個のサンプルを収集した後で,各缓冲ブロックは20個のサンプルを前のフレームの12サンプルと結合し,合計で32個のサンプルを提取物质ブロックに渡します。各缓冲ブロックは,入力サンプルを0.1秒ごとに受け取り,32個のサンプルが含まれているバッファリングしたフレームを2秒ごとに出力します。

  • 提取物质ブロックは,バッファリングした32個の加速度サンプルが含まれているフレームから60個の特徴量を抽出するMATLAB函数ブロックです。この関数ブロックではDSP系统工具箱™と信号处理工具箱™を使用します。

  • 预测ブロックは,loadLearnerForCoderを使用して学習済みモデルをEnsembleModel.matファイルから読み込み,抽出された特点数量をし行动をする,matlab函数ブロックです。出力は,座る,立つ,歩く,走る,踊る,にそれぞれする1〜5の。

  • 预测活动ブロックは,分類した行動の値をデバイスに表示します。

  • 视频输出サブシステムは,複数端子のスイッチブロックを使用して対応する行動のイメージデータを選択し,デバイスに表示します。转换为RGB.ブロックは,選択されたイメージを別々のRGBベクトルに分解し,このイメージを活动展示ブロックブロックます。

金宝app仿真软件モデルをデバイスに展開するには,在Android设备上运行模型(金宝app用于An金宝appdroid设备的Simulink支持包)または在苹果iOS设备上运行模型(金宝appAppl金宝appe iOS设备的Simulink支持包)の手順に従います。デバイスでモデルを実行し,前に説明したものと同じ方法でデバイスを配置して学習データを収集し,5つの行動を試します。それに従って,分類された行動がモデルに表示されます。

モデルの精度を確保するには,前に説明したものと同じ方法でデバイスを配置して学習データを収集する必要があります。異なる場所または方向でデバイスを配置する場合は,各自の方法でデータを収集し,そのデータを使用して分類モデルに学習をさせます。

デバイスによって,モデルの精度が検定データセット(testaccuracy)の精度と可性ありがますますと较较较较によるによるますますますますますますますますますますますますてますて,て,音声てててて,音声フィードバック用に别の力ブロックに追加することもできますます。分享され行动と加入データデバイスデバイスから“モノモノインターネット”にパブリッシュには,thingspeak™の书籍ブロックを使用します。详细については,https://thingspeak.com/を参照してください。

参照

[1] El Helou, A. Sensor HAR识别App。MathWorks文件交换//www.tatmou.com/matlabcentral/fileexchange/54138-sensor-har-recognition-app

[2] STMicroelectronics,AN4508应用笔记。“低G 3轴加速度计的参数和校准。”2014年。

[3] El Helou, A.传感器数据分析。MathWorks文件交换//www.tatmou.com/matlabcentral/fileexchange/54139-sensor-data-analytics--french-webinar-code-

参考

|||

关键词トピック