皆さん こんにちは 私はSTマイクロエレクトロニックス株式会社アナログメムスセンサーグループのひらまいくをと申します本日のセミナーでは AIをさらに IoTHへというテーマでSTのメムスセンサーに内蔵された 機械学習コアについてお話ししていきたいと思いますまずは 本日の内容を簡単にご紹介します最初にメムスセンサーにおける 機械学習の応用について目的や効果のお話をさせていただき その後 実際に機械学習コアを簡単に体験するためのハードウェアやソフトウェアなど STが用意するエコシステムについて解説しますまた 実際に評価ボードとツールを使用し 機械学習の結果をセンサーに実装する手順をご覧いただきたいと思いますそれでは STのメムスセンサーに内蔵された 機械学習コアについてご紹介していきますIoTの分野において なぜセンサーが重要な役割を果たすのかということを考えてみたいと思いますご存知のように IoTとはすべての端末がインターネットを通してクラウドコンピューティングを活用するための動きでありその重要な要素の一つが データの取得と解釈となっていますつまり 各種センサーの必要性が大きく高まってきていますSTはこの分野に向けてさまざまな特徴を持ったセンサー製品を提供しております加速度センサー ジャイドスコープなどのモーションセンサーに加えさまざまな環境センサー さらに音響センサーといった幅広いラインナップを用意していますIoT市場は インターネットを通し端末とクラウドコンピューティングを組み合わせることで大きなエコシステムを構成していますクラウドコンピューティングでは データは端末で取得され その後クラウドに送信され生じされますこの集中型のアプローチは 多くのアプリケーションで非常にうまく機能していますが膨大な量のデータをクラウドに送信し 保存 処理する必要が出てきます一方でリアルタイム性が重視されるアプリケーションでは こうした集中処理がうまく機能しない場合があります例えば ネットワーク待機の制約 プライバシーやセキュリティ問題などによりクラウドサービスが制限される可能性がありますこの場合 リアルタイム性が要求される部分を ローカルで処理するなど分散型のアプローチを導入することで対応できます実際エッジコンピューティングでは データの取得 保存 処理などは端末やゲートウェイレベルで行われ データの保存 トレーニングがクラウドで行われますこのような考え方を基にエッジコンピューティングにおいて 人工知能をセンサーに応用することによりパフォーマンスと電力効率の最適化を実現することができますこうして高度な処理機能がシステム全体に分散するようになり新たなアプリケーションを生み出すと同時に一方では このことがシステム設計者にとっての課題を生じていますアスペンコア2019による組み込み市場に関する調査では組み込みプロジェクトの15%が 既に人工知能を含んでいるとしています過去数年と比較しても大きな進歩となっていますさらに 組み込みプロジェクトでの先端技術の採用を考慮すると機械学習モデルベースの機能は 他のAI認知機能と組み合わせてセンサーオディをする危機にとって 非常に重要な技術であることをこのデータは示していますSTは人工知能の応用に積極的に取り組んでおりAIを IoT Edgeに さらにまったんのセンサーにまで広げるためのさまざまなソデューションを提供していますSTの新しい人工知能ソデューションの中心を担うSTM32マイクロコントローラー製品群では学習済み人工ニューラルネットワークをマイクロコントローラー上で実行することができますまた STは高機能 高性能なメムスセンサーも提供していますこれらのメムスセンサーには 機械学習アルゴリズムを実行する高性能なデジタル機能が組み込まれていますこれらのアプローチによりAIを採用したシステムの消費電力をさらに削減することができますメムスセンサーの機械学習コアについて詳しく見ていきましょう機械学習とは 明治的なプログラミングを行わずにシステムがソデジシンで学習したりまたは 教師あり学習結果を利用することができる人工知能技術の一つですこれは収集されたデータから自動的に学習し改善する能力をシステムに提供しますSTのモーションセンサーの機械学習コアはDECISION 3によって実現していますDECISION 3とは 条件判断を行う一連の濃度を複数接続して構成されています各濃度は イフ ゼン ヘルス形式の判定を行うことで入力信号が条件に対して評価され シン または技を出力しますSTの最新独自区完成モジュールファミリーには超低消費電力エッジコンピューティングのための重要な機能である機械学習コアとしてこのようなDECISION 3が内蔵されていますSTは機械学習コアを活用した幅広いセンサー製品群をスマートシステム市場に向けて提供していますその目指す目的は システムのバッテリー持続時間の延長状態判定制度の向上 そして システム全体をより効率化するリアルエッジコンピューティングの実現などにありますすでに述べたように 機械学習コアはホストプロセッサからセンサーにアルゴリズムの実行を移動させることができます一般的な例では マイクロプロセッサで同様のアルゴリズムを実行する場合と比べて消費電力は100分の1にまで下げることもできますこれが超低消費電力エッジコンピューティングのキーポイントとなります STは最近 3つの新しい6軸完成センサを市場に投入しましたLSM6DSOXは幅広いパーソナル機器にLSM6DSRXは仮想現実などハイエンドのコンシューマ製品に向けたものでDSM330DHCXはインダストリアル IoTなどの産業用アプリケーションに対応しますこれらのセンサに実装された機械学習コアは使い勝手の良さと高い自由度を実現しています機械学習コアによる具体的な処理内容はこの3つのステップに分解することができます最初のステップはターゲットアプリケーションが必要とするセンサの種類を定義することです次のステップではセンサーデータにフィルターをかけたり特徴量を抽出するエンザンブロックを設定します最後に学習の欠帰られたディジジョン3をセンサーデバイスに実装し出力を得ることができます機械学習コア内蔵6軸センサは最大8つのディジジョン3を同時に実行することができますセンサ内蔵の機械学習コアによるAI処理をSTM32ソリューションと組み合わせることで創造的な効果を得ることができますこのアプローチによって得られる大きな利点はセンサレベルでの延暫能力の向上と同時にSTMレベルでの消費電力を大幅に提現できることです実際機械学習コアは非常に電力効率が高く短時間で正確な結果を得ることができます機械学習コアはフィニットステートマシンとも連携可能でマイクロコントローラーへのソフトウェアによる実装と比較して無視できるほどの小さな消費電流でセンサアルゴリズムを処理することができますこれによりシステムレベルでのコスト最適化にも貢献しますではどのようにして実際にディジジョン3を作成するのか手順をご紹介しますSTの陸軸センサに内蔵された機械学習コアはわずか5つのステップでアプリケーションに最適な独自のディジジョン3を作成することができます最初のステップはデータの取得ですつまりアプリケーションで利用されるモーションデータを収集しますここで収集するモーションデータとは加速度、角速度、温度、圧力、ジバなどがあります次に収集したデータに対しそれぞれの状態を識別するためのラベルを割り当てていきますその後適切なフィルターと特徴量演算を適用します3つ目のステップでは入力データから各クラスを判別するためのディジジョン3を作成するため機械学習を実行しますさらに次のステップでは作成されたディジジョン3をセンサー内で実行するための設定ファイルを生成しセンサーにアップロードしますデバイスがプログラムされると機械学習によって訓練されたディジジョン3を実行し結果をマイクロコントローダーで処理することができますそれではここからは実際に機械学習コアの設定手順をデモをご覧に入れながら説明していきますまずは必要なハードウェアとソフトウェアについて説明いたしますSTでは機械学習コアを使用するためのツールとして用途に応じて複数のボードやソフトを用意しておりますその中から今回は最も使用しやすい基本的なツールとしてセンサー製品専用の評価ボードST-EVAL-MKI-109V3というマザーボードと各種センサー製品ごとに用意されたDIL24品のアダプターボードの組み合わせを使用したいと思います機械学習コア対応の3製品の中から今回はLSM-6DSOXを搭載したST-EVAL-MKI-197V1を使用しますなおこれらのボードを総称しプロフェッショナルベムスツールと呼んでいます一方ソフトウェアですがユニコGUIというベムスセンサー評価用の専用ソフトウェアを用意しています無料でダウンロードおよび使用いただくことができWindows版だけでなくMacOS版やLinux版も用意していますこのソフトウェアは先ほどのプロフェッショナルメムスツールに完全に対応しておりセンサーのテータリード、ログファイルの保存全レジスタのリードライトを始め機械学習コアの設定を行うことができる唯一のツールですそれでは実際にその作業を行っている様子をステップ by ステップでご説明いたしますデモを行うにあたり例題としてこのような3つの状態を検知するというアプリケーションを想定してみたいと思います検知したい状態はまずボードが精視した状態で上向き次に精視した状態の裏向き最後はボードが振られて振動が加えられている状態ですもちろん加速度センサーを使えばこれらの状態を検知することができるわけですがこれを一行の行動も書くこともなく機械学習コアで実現してみましょうまず最初にプロフェッショナルメムスツールとユニコ GUIを使って判定次第状態ごとにドグデータを収集しますでは作業の様子を動画でご覧くださいまず最初にボードのセットアップを行いますセンサーのアダプターボードをマザーボードに接続しUSBケーブルでパソコンに接続しますボード上の青いLEDが点灯したら準備完了ですボードを接続したらユニコを起動します最初にデバイスの選択画面が出ますのでアイネもイナーシャルモジュールのディストから今回使用するLSM6DSOXを選択しセレクトデバイスボタンをクリックしますユニコのメインウィンドウが開きましたまず最初にオプションタブを選びセンサーの設定を行います加速度センサーのフルスケールは初期値の2Gのままアウトプットデータレートを26Hzに設定しますGILは今回使用しないのでパワーラウンのままとしておきます設定が完了したらスタートボタンを押しますこの状態でプロットを開くと加速度センサーの動作を確認することができます次にドードセーブタブを開きドグファイズの設定を行いますブラウスボタンをクリックしドグファイズの保存場所とファイドネームを設定しますまず最初は正視上向きの状態のログを記録するのでフェイスアップと名付けておきましょう次にドグファイズに記録するデータをこれらのチェックボックスで選択します今回は加速度アクセラデーションのみを残して使わすべてオフにしますボードがログを取りたい状態つまり上向きに正視していることを確認しスタートボタンを押すとログの記録が開始されますこの状態で30秒から1分くらいログを取ってみましょうストップボタンを押すとログの記録が停止されます次は裏向きで正視している状態でログを取りますボードをその状態に設定し新しいログファイルを設定しますファイル名はフェイスダウンとしておきます同様にスタートボタンを押すことでログが開始されますこれで裏向き正視状態のログが取れました最後はシェイクですファイル名はシェイキングとしておきますボードに振動を加えた状態でスタートボタンを押しログの記録を開始しますストップを押すまでこの状態を保持してくださいこれで全てのファイルが取得できました続いて取得したログにラベルを付かしながらユニコGUIのMLCツールに読み込み特徴量の演算などを行いますその上で機械学習を実行しディジジョンツリーを生成しますでは作業の様子を動画でご覧くださいまずユニコのメイン画面からMLCツールを起動します最初にデータパターンタブで先ほど取得したログファイルを読み込んでいきますプラウスボタンからフォルダを選択し最初にフェイスアップテキストを読み込んでみましょうこのようにログデータが読み込まれます次にこのボックスでこのログデータに対するクラス名を設定していきます最初のデータに対してはフェイスアップというクラス名を設定しますこの作業を他のログファイルに対しても同様に繰り返していきますフェイスダウンのログに対してはフェイスダウンというクラス名をシェイキングのデータに対してはやはりシェイキングというクラス名をつけてみますこれでログファイルの読み込みができました次にコンフィクレーションタブに飛び機械学習コアの設定を行っていきますターゲットデバイスはlsm6dsoxmlcのodrは26hzに設定します次に入力は今回の場合加速度センサのみフルスケールは2godrは26hzとしますこれは取得したログファイルの設定と一致させております作成するディシジョン3の数は1つWindowレングスはodr26hzに対して約1秒間分26サンプルと設定しますデジタルフィルターは今回使用しないので何もせずに進みますここで特徴量を選択しますフェイスアップとフェイスダウンの判定のためには加速度Z軸の平均値シェイクしているかどうかの判定のためにはベクトルの分散が有効と考えられますのでこの2つを選択しますここでここまでの設定をARFF形式の中間ファイルとして保存しております適切なファイル名を設定してください次に3つのクラスに対する出力コードを設定します今回はデフォルトのままフェイスアップは0フェイスダウンは4シェイキングには8という出力コードを割り当てますここでいよいよ6ファイルから学習をしてDecision 3を生成しますこの青いGenerateボタンをクリックすると一瞬で学習が完了しますこちらのウィンドウに学習結果が表示されていますこのテティストで表示されている部分が Decision 3下の方には混同量列等も表示されます次に各クラス出力に対するメタクラシファイアを設定します今回は全て0のままとしておきます最終結果として Decision 3を含む設定ファイルを保存します.ucfというユニコ独自のファイル形式で保存されます以上で機械学習コアの設定は完了です最後に生成されたDecision 3をセンサー上に書き込み実行して動作確認を行います必要であればこの作業を繰り返すことでより精度の高いDecision 3を得ることができますでは作業の様子を動画でご覧ください先ほど作成したDecision 3をセンサーに読み込んで動作確認をしてみましょうまずロードセーブタブを開きコンフィグレーションのロードボタンをクリックしますそして先ほど保存した.ucfファイルを選択しオープンしますローレットと表示されていれば読み込みは完了しています結果を確認するにはまずスタートボタンを押しデータを開きますするとこのようにリアルタイムにセンサーデータが数値で表示されていますその画面カブがDecision 3の手続です今回作成したDecision 3は1つなので左端のボックスに注目してくださいログを取ったときと同様ボードを上向きで整地させていると結果は0となりますボードをひっくり返すと4ボードを振ると8となります上向き整地で0裏で4振ると8となりますこうして先ほど作成したDecision 3が期待通りに動作しその状態を正しく判定していることが確認できましたここまでプロフェッショナルメムスツールとユニコGUIにより実際にDecision 3を作成する過程をご覧に入れましたSTでは目的に応じて期待学習コアをより簡単に適格に使用いただけるよう今日ご紹介した以外にも複数のツールを用意しております期待学習コア内蔵のLSM6DSOXをあらかじめ搭載したIoTセンサー評価開発ツールとしてセンサータイルドットボックスをご紹介しますこのセンサータイルドットボックスは各種センサーやマイクSTM32 L4マイコンブルートゥース通信モジュールそしてリチウムポリマーデンチパックと重宝電管理回路1パッケージの収めてありIoTノードやウエラブル機器の評価検討 初期プロトタイピングに適していますさらにセンサータイルドットボックス以外にもニュークレオとXニュークレオあるいは産業用を向けにSTWINキットなども販売しており目的に合わせて最適なハードウェアをご使用いただけますセンサータイルドットボックスなどと組み合わせて期待学習コアの初期検討を行うためのツールとしてGUIによるソフトウェア開発アプリケーションアルゴビルダーというものを用意しています期待学習コアの利用を含めたSTM32マイクロコントローラーのファーム作成をコードベースではなくグラフィカルユーザーインターフェースで行うことができるツールですまた ドグファイルの収集あるいは作成したディジジョンツリーの動作確認など行うことができるユニクレオGUIというアプリケーションも用意しておりますでは本日お話ししたことを最後にまとめさせていただきますここまでご紹介したようにセンサー内蔵機械学習コアを手軽にご使用いただくためにさまざまな機能を備えたツールを用意していますクイックプロトタイプのために具体的なSTM32マイクロコントローラーのソースコードを含むファンクションパックも用意されていますこれらツール類のドキュメントや最新情報は常にSTWebサイトで公開されていますまたこちらのギッドハブリポジトリからは機械学習済みのさまざまなディチジョンツリー実装例をダウンロードしていただくことができます実際にこの機能を使ってどのようなことができるのかその能力の一旦を確認いただくことができますさらにより詳細なユニコGUIの使い方と応用方法データサイエンスや機械学習前般への対応について解説ビデオとブログ記事を公開していますのでぜひご参照くださいSTのメムスセンサーに内蔵された機械学習コアによるディチジョンツリーの設計がいかに迅速かつシンプルであるかをご紹介しました最後に重要なメッセージを復讐したいと思います機械学習コアはより優れたコンテキスト検出性で精度を向上させると同時にメインプロセッサの負荷を軽減しシステム全体の電力効率を大幅に改善しますSTは機械学習コア体験のための全てのツールを提供していますプロフェッショナルメムスツールとユニコGUIさえあれば即座にアイディアの実現性について検討が開始できますその際行動を一行も書かずに機械学習コアをプログラムすることができます最後にSTの開発エコシステムは常に拡大しており設計を非常に高速化し市場投入までの時間を短縮するのに役立ちます私からのプレゼンテーションは以上となりますご成長ありがとうございました