(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【0014】
[エッジデバイス制御システム1の概要]
本発明の好適な実施形態の概要について、
図1に基づいて説明する。
図1は、本発明の好適な実施形態であるエッジデバイス制御システム1の概要を説明するための図である。エッジデバイス制御システム1は、提案コンピュータ10、エッジデバイス(ネットワークカメラ100a、センサ装置100b、携帯端末100c、コンピュータ装置100d、ドローン100e)100、ゲートウェイ200、計算機300から構成され、ゲートウェイ200に接続されたエッジデバイス100を使用して機械学習を行うコンピュータシステムである。
【0015】
なお、
図1において、提案コンピュータ10、エッジデバイス100、ゲートウェイ200、計算機300の数は、適宜変更可能である。また、エッジデバイス100の種類は、適宜変更可能である。また、提案コンピュータ10、エッジデバイス100、ゲートウェイ200、計算機300は、実在する装置に限らず、仮想的な装置であってもよい。また、後述する各処理は、提案コンピュータ10、エッジデバイス100、ゲートウェイ200、計算機300のいずれか又は複数の組み合わせにより実現されてもよい。
【0016】
提案コンピュータ10は、ゲートウェイ200及び計算機300とデータ通信可能に接続されたコンピュータ装置である。
【0017】
エッジデバイス100は、ゲートウェイ200とデータ通信可能に接続された端末装置である。エッジデバイス100は、例えば、動画や静止画等の画像を撮像するネットワークカメラ100aや、日照、温度、風力等の空間データや時間データ等の環境データを取得するセンサ装置100bや、携帯電話、携帯情報端末、タブレット端末、パーソナルコンピュータに加え、ネットブック端末、スレート端末、電子書籍端末、携帯型音楽プレーヤ等の電化製品である携帯端末100c及びパーソナルコンピュータ100dや、無人航空機や無人移動体等のドローン100eや、その他の物品である。
【0018】
ゲートウェイ200は、提案コンピュータ10、エッジデバイス100、計算機300とデータ通信可能なネットワーク機器である。ゲートウェイ200は、例えば、LAN(Local Area Network)やWAN(Wide Area Network)に接続可能なルータやコンピュータ装置等である。
【0019】
計算機300は、提案コンピュータ10及びゲートウェイ200とデータ通信可能な計算装置である。
【0020】
はじめに、ゲートウェイ200は、自身に接続されたエッジデバイス100を検出する(ステップS01)。ゲートウェイ200は、LANにより接続されたネットワークカメラ100a、センサ装置100b、携帯端末100c、コンピュータ装置100d、ドローン100eを検出する。
【0021】
ゲートウェイ200は、検出したエッジデバイス100に関するデータを、提案コンピュータ10に送信する(ステップS02)。
【0022】
提案コンピュータ10は、エッジデバイス100に関するデータを受信する。提案コンピュータ10は、受信したこのデータに基づいて、エッジデバイス100の組み合わせを決定する(ステップS03)。提案コンピュータ10は、このデータに基づいて、予め組み合わせタイプとして記憶したエッジデバイス100の組み合わせに基づいて、ゲートウェイ200に接続されたエッジデバイス100の組み合わせを決定する。
【0023】
提案コンピュータ10は、この決定した組み合わせに基づいて、エッジデバイス100用のプログラムと、機械学習用のプログラムとを決定する(ステップS04)。
【0024】
提案コンピュータ10は、エッジデバイス100用のプログラムを示すデバイス用プログラムデータを、ゲートウェイ200に送信し、ゲートウェイ200が、このデバイス用プログラムデータを対応するエッジデバイス100に送信するとともに、提案コンピュータ10は、機械学習用のプログラムを示す学習用プログラムデータを、計算機300に送信する(ステップS05)。
【0025】
計算機300は、学習用プログラムデータを受信し、エッジデバイス100は、デバイス用プログラムデータを受信する。
【0026】
計算機300は、学習用プログラムデータを記憶する(ステップS06)。
【0027】
エッジデバイス100は、デバイス用プログラムデータに基づいて、エッジデバイス100用のプログラムを実行する(ステップS07)。エッジデバイス100は、デバイス用プログラムデータに基づいて、画像の撮像、環境データの取得等を実行する。
【0028】
エッジデバイス100は、エッジデバイス100用のプログラムデータを実行した結果を示すデバイス結果データを、ゲートウェイ200に送信し、ゲートウェイ200は、このデバイス結果データを、計算機300に送信する(ステップS08)。
【0029】
計算機300は、デバイス結果データを受信する。計算機300は、このデバイス結果データに基づいて、学習用プログラムデータを実行し、機械学習用のプログラムを実行する(ステップS09)。
【0030】
計算機300は、機械学習用のプログラムを実行した結果を示す計算結果データを、ゲートウェイ200に送信し、ゲートウェイ200は、この計算結果データを、携帯端末100cやパーソナルコンピュータ100dといった端末装置であるエッジデバイス100に送信する(ステップS10)。
【0031】
エッジデバイス100は、計算結果データを受信する。エッジデバイス100は、計算結果データに基づいて、計算結果を表示する(ステップS11)。
【0032】
以上が、エッジデバイス制御システム1の概要である。
【0033】
[エッジデバイス制御システム1のシステム構成]
図2に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム1のシステム構成について説明する。
図2は、本発明の公的な実施形態であるエッジデバイス制御システム1のシステム構成を示す図である。エッジデバイス制御システム1は、提案コンピュータ10、エッジデバイス(ネットワークカメラ100a、センサ装置100b、携帯端末100c、パーソナルコンピュータ100d、ドローン100e)100、ゲートウェイ200、計算機300、公衆回線網(インターネット網や、第3、第4世代通信網等)5から構成され、ゲートウェイ200に接続されたエッジデバイス100を使用して機械学習を行うコンピュータシステムである。
【0034】
なお、エッジデバイス制御システム1を構成する各装置類の数及びその種類は、適宜変更可能である。また、エッジデバイス制御システム1は、実在する装置に限らず、仮想的な装置類により実現されてもよい。また、後述する各処理は、エッジデバイス制御システム1を構成する各装置類のいずれか又は複数の組み合わせにより実現されてもよい。
【0035】
提案コンピュータ10は、後述の機能を備えた上述したコンピュータ装置である。
【0036】
エッジデバイス100は、後述の機能を備えた上述した端末装置である。
【0037】
ゲートウェイ200は、後述の機能を備えた上述したネットワーク機器である。
【0038】
計算機300は、後述の機能を備えた上述した計算装置である。
【0039】
[各機能の説明]
図3に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム1の機能について説明する。
図3は、提案コンピュータ10、エッジデバイス100、ゲートウェイ200、計算機300の機能ブロック図を示す図である。
【0040】
提案コンピュータ10は、制御部11として、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を備え、通信部12として、他の機器と通信可能にするためのデバイス、例えば、IEEE802.11に準拠したWiFi(Wireless Fidelity)対応デバイス等を備える。また、提案コンピュータ10は、記憶部13として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージ部を備える。
【0041】
提案コンピュータ10において、制御部11が所定のプログラムを読み込むことにより、通信部12と協働して、機器データ受信モジュール20、組み合わせ決定モジュール21、プログラム決定モジュール22、選択通知送信モジュール23、選択アプリケーションデータ受信モジュール24、プログラムデータ送信モジュール25、性能判断モジュール26、デバイス結果データ受信モジュール27、デバイス結果データ送信モジュール28を実現する。また、提案コンピュータ10において、制御部11が所定のプログラムを読み込むことにより、記憶部13と協働して、記憶モジュール30を実現する。
【0042】
エッジデバイス100は、提案コンピュータ10と同様に、制御部110として、CPU、RAM、ROM等を備え、通信部120として、他の機器と通信可能にするためのデバイスを備える。また、エッジデバイス100は、処理部140として、環境データや画像データ等を取得するための各種デバイス等を備える。
【0043】
エッジデバイス100において、制御部110が所定のプログラムを読み込むことにより、通信部120と協働して、選択通知受信モジュール150、選択アプリケーションデータ送信モジュール151、プログラムデータ受信モジュール152、デバイス結果データ送信モジュール153、デバイス結果データ受信モジュール154を実現する。また、エッジデバイス100において、制御部110が所定のプログラムを読み込むことにより、処理部140と協働して、表示モジュール160、プログラム設定モジュール161、データ取得モジュール162、計算モジュール163を実現する。
【0044】
ゲートウェイ200は、提案コンピュータ10と同様に、制御部210として、CPU、RAM、ROM等を備え、通信部220として、他の機器と通信可能にするためのデバイスを備える。
【0045】
ゲートウェイ200において、制御部210が所定のプログラムを読み込むことにより、通信部220と協働して、デバイス検出モジュール250、機器データ送信モジュール251を実現する。
【0046】
計算機300は、提案コンピュータ10と同様に、制御部310として、CPU、RAM、ROM等を備え、通信部320として、他の機器と通信可能にするためのデバイスを備え、記憶部330として、データのストレージ部を備える。また、計算機300は、処理部340として、各種プログラムを実行する各種デバイス等を備える。
【0047】
計算機300において、制御部310が所定のプログラムを読み込むことにより、通信部320と協働して、プログラムデータ受信モジュール350、デバイス結果データ受信モジュール351、計算結果データ送信モジュール352を実現する。また、計算機300において、制御部310が所定のプログラムを読み込むことにより、記憶部330と協働して、記憶モジュール360を実現する。また、計算機300において、制御部310が所定のプログラムを読み込むことにより、処理部340と協働して、計算モジュール370を実現する。
【0048】
[デバイス検出処理]
図4、
図5及び
図6に基づいて、エッジデバイス制御システム1が実行するデバイス検出処理について説明する。
図4、
図5及び
図6は、提案コンピュータ10、エッジデバイス100、ゲートウェイ200、計算機300が実行するデバイス検出処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【0049】
デバイス検出モジュール250は、自身に接続されたエッジデバイス100を検出する(ステップS20)。ステップS20において、デバイス検出モジュール250は、LAN接続されたエッジデバイス100を検出する。デバイス検出モジュール250は、エッジデバイス100として、ネットワークカメラ100a、センサ装置100b、携帯端末100c、コンピュータ装置100d、ドローン100eを検出する。
【0050】
デバイス検出モジュール250は、検出したエッジデバイス100の機器データを取得する(ステップS21)。ステップS21において、デバイス検出モジュール250は、エッジデバイス100の固有な識別子と、処理性能とを機器データとして取得する。エッジデバイス100の固有な識別子とは、機器名称、製造番号、機器番号、IPアドレス、MACアドレス等である。また、処理性能とは、単位時間当たりに処理できる命令数や様々な処理を実行する速度等である。デバイス検出モジュール250は、検出したエッジデバイス100から、機器データを取得してもよいし、エッジデバイス100から取得した機器名称や製造番号や機器番号に基づいて、このエッジデバイス100の製造元や販売元等のコンピュータやデータベース等から必要なデータを取得してもよい。
【0051】
機器データ送信モジュール251は、取得した機器データを、提案コンピュータ10に送信する(ステップS22)。
【0052】
機器データ受信モジュール20は、機器データを受信する。組み合わせ決定モジュール21は、予め記憶モジュール30が記憶する組み合わせデータベースに基づいて、エッジデバイス100の組み合わせを決定する(ステップS23)。ステップS23において、組み合わせ決定モジュール21は、組み合わせデータベースを参照することにより、受信した機器データに含まれるエッジデバイス100の組み合わせタイプを決定する。
【0053】
[組み合わせデータベース]
図9に基づいて、記憶モジュール30が記憶する組み合わせデータベースについて説明する。
図9は、組み合わせデータベースの一例を示す図である。記憶モジュール30は、組み合わせタイプと、複数のエッジデバイス100とを対応付けて記憶する。タイプ名とは、組み合わせタイプの名称である。また、デバイス名とは、エッジデバイス100の識別子である。記憶モジュール30は、タイプ名として、「タイプ1」、「タイプ2」等を記憶する。記憶モジュール30は、デバイス名として、「TOT−SE01(トマト用温度センサ)、CAM01(カメラ)、PH06(スマホ)」、「BB−01(ビニルハウス用センサキット)、WEBCAM25(カメラ)、GAL(タブレット)」等を記憶する。提案コンピュータ10は、予めエッジデバイス100やその他の端末装置や外部コンピュータ等からこの組み合わせデータベースを取得し、記憶する。
【0054】
なお、デバイス名に含まれるエッジデバイス100の数は、1又は複数であればよく、適宜変更可能である。また、タイプ名は、
図9で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての組み合わせタイプを分類するのではなく、組み合わせタイプ毎に、一のデータベースが存在していてもよい。すなわち、組み合わせタイプの数と同数のデータベースが存在していてもよい。
【0055】
ステップS23において、組み合わせ決定モジュール21は、今回受信した機器データに含まれるエッジデバイス100に該当するタイプ名を特定することにより、組み合わせタイプを決定し、エッジデバイス100の組み合わせを決定する。例えば、エッジデバイス100は、ネットワークカメラ100a、センサ装置100b、携帯端末100c、コンピュータ装置100d、ドローン100eであることから、このエッジデバイス100に対応する組み合わせタイプとして、タイプ1とタイプ2とを決定する。
【0056】
プログラム決定モジュール22は、この決定した組み合わせに基づいて、エッジデバイス100用のプログラムと、機械学習用のプログラムとを決定する(ステップS24)。ステップS24において、プログラム決定モジュール22は、プログラムデータベースを参照することにより、エッジデバイス100用のプログラムと、機械学習用のプログラムとを決定する。
【0057】
[プログラムデータベース]
図10に基づいて、記憶モジュール30が記憶するプログラムデータベースについて説明する。
図10は、プログラムデータベースの一例を示す図である。記憶モジュール30は、タイプ名と、機械学習データセットとを対応付けて記憶する。タイプ名とは、上述した組み合わせタイプの名称である。機械学習データセットとは、対象とするアプリケーションの名称、エッジデバイス100用のプログラムの名称及び機械学習用のプログラムの名称である。記憶モジュール30は、タイプ名として、「タイプ1」、「タイプ2」等を記憶する。記憶モジュール30は、機械学習データセットとして、「トマト栽培用アプリケーション、エッジデバイス用プログラムセットF、コンピュータ用機械学習プログラムB」、「キュウリ栽培用アプリケーション、エッジデバイス用プログラムセットV、コンピュータ用機械学習プログラムD」等を記憶する。各プログラムの名称には、各処理を実行するために必要なプログラムが紐付けられている。提案コンピュータ10は、予めエッジデバイス100やその他の端末装置や外部コンピュータ等からこのプログラムデータベースを取得し、記憶する。
【0058】
なお、タイプ名は、
図10で示した名称に限らず、適宜変更可能である。また、アプリケーションの名称、エッジデバイス100用のプログラムの名称、機械学習用のプログラムの名称は、
図10で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての機械学習データセットを分類するのではなく、機械学習データセット毎に、一のデータベースが存在していてもよい。すなわち、機械学習データセットの数と同数のデータベースが存在していてもよい。
【0059】
ステップS24において、プログラム決定モジュール22は、今回決定した組み合わせタイプに対応付けられた機械学習データセットを抽出することにより、機械学習データセットを決定し、この機械学習データセットに含まれる対象とするアプリケーションの名称、エッジデバイス100用のプログラムの名称及び機械学習用のプログラムの名称を決定する。
【0060】
プログラム決定モジュール22は、決定した組み合わせタイプが複数存在するか否かを判断する(ステップS25)。ステップS25において、プログラム決定モジュール22は、複数存在すると判断した場合(ステップS25 YES)、選択通知送信モジュール23は、携帯端末100c、コンピュータ装置100d等の表示部や入力部等のユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス100に、選択通知を送信する(ステップS26)。ステップS26において、提案コンピュータ10は、選択通知を、ゲートウェイ200に送信し、ゲートウェイ200は、この選択通知をさらにエッジデバイス100に送信する。
【0061】
選択通知受信モジュール150は、選択通知を受信する。表示モジュール160は、受信した選択通知に基づいて、選択画面を表示する(ステップS27)。
【0062】
図11に基づいて、表示モジュール160が表示する選択画面について説明する。
図11は、選択画面の一例を示す図である。表示モジュール160は、選択画面400として、説明文表示領域410、アプリケーション選択領域420、送信アイコン430を表示する。説明文表示領域410は、アプリケーションを選択する画面であることを通知する領域である。表示モジュール160は、「このローカルネットワークにつながれているデバイスの組み合わせは、以下の学習を行うことができます。どれを選択しますか?」を表示する。アプリケーション選択領域420は、上述した組み合わせタイプをすべて表示する領域である。表示モジュール160は、「1:トマト栽培用アプリケーション」、「2:キュウリ栽培用アプリケーション」、「3:鶏監視用アプリケーション」を表示する。アプリケーション選択領域420は、ユーザからの入力を受け付け、一のアプリケーションの選択を受け付ける。表示モジュール160は、入力を受け付けた一のアプリケーションに対して、選択アイコン440を表示する。表示モジュール160は、選択アイコン440として、チェックマークを表示する。送信アイコン430は、ユーザからの入力を受け付け、入力を受け付けることにより、選択アプリケーションデータ送信モジュール151は、選択されたアプリケーションを、選択アプリケーションデータとして、提案コンピュータ10に送信する。
【0063】
なお、上述した各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。また、アプリケーション選択領域420は、複数のアプリケーションに対する選択を受け付けてもよい。
【0064】
表示モジュール160は、選択入力を受け付けたか否かを判断する(ステップS28)。ステップS28において、表示モジュール160は、アプリケーションの選択入力を受け付け、送信アイコン430の入力を受け付けたか否かを判断する。表示モジュール160は、選択入力を受け付けていないと判断した場合(ステップS28 NO)、すなわち、アプリケーションの選択入力を受け付けていない場合や、アプリケーションの選択入力を受け付けたものの、送信アイコン430の入力を受け付けていない場合、アプリケーションの選択入力及び送信アイコン430の入力を受け付けるまで、本処理を繰り返す。
【0065】
一方、ステップS28において、表示モジュール160は、選択入力を受け付けた場合(ステップS28 YES)、すなわち、アプリケーションの選択入力を受け付けるとともに送信アイコン430の入力を受け付けた場合、選択アプリケーションデータ送信モジュール151は、選択入力を受け付けたアプリケーションを示す選択アプリケーションデータを、提案コンピュータ10に送信する(ステップS29)。ステップS29において、エッジデバイス100は、選択アプリケーションデータを、ゲートウェイ200に送信し、ゲートウェイ200は、この選択アプリケーションデータを、提案コンピュータ10に送信する。
【0066】
選択アプリケーションデータ受信モジュール24は、選択アプリケーションデータを受信する。
【0067】
一方、ステップS25において、プログラム決定モジュール22は、複数存在しないと判断した場合(ステップS25 NO)又は選択アプリケーションデータ受信モジュール24は、選択アプリケーションデータを受信した場合、プログラム決定モジュール22は、この決定された一の組み合わせタイプ又はエッジデバイス100による選択入力を受け付けた選択アプリケーションデータに対応付けられた一の組み合わせタイプに対応付けられた機械学習データセットに含まれるエッジデバイス100用のプログラムと、機械学習用プログラムとを抽出する(ステップS30)。ステップS30において、プログラム決定モジュール22は、エッジデバイス100用のプログラムの名称に紐付けられたプログラムデータを抽出するとともに、機械学習用プログラムの名称に紐付けられたプログラムデータを抽出する。
【0068】
プログラムデータ送信モジュール25は、機械学習用プログラムを示す学習用プログラムデータを、計算機300に送信する(ステップS31)。
【0069】
プログラムデータ受信モジュール350は、学習用プログラムデータを受信する。記憶モジュール360は、受信した学習用プログラムデータを記憶する(ステップS32)。
【0070】
プログラムデータ送信モジュール25は、エッジデバイス100用のプログラムを示すデバイス用プログラムデータを、エッジデバイス100に送信する(ステップS33)。ステップS33において、提案コンピュータ10は、デバイス用プログラムデータを、ゲートウェイ200に送信し、ゲートウェイ200は、デバイス用プログラムデータに対応するエッジデバイス100の各々に、デバイス用プログラムデータを送信する。
【0071】
プログラムデータ受信モジュール152は、デバイス用プログラムデータを受信する。プログラム設定モジュール161は、受信したデバイス用プログラムデータに基づいて、エッジデバイス100用のプログラムを設定する(ステップS34)。ステップS34において、エッジデバイス100毎に、プログラムが設定される。すなわち、本実施形態において、ネットワークカメラ100a、センサ装置100b、携帯端末100cのそれぞれが、自身に対応するプログラムを設定する。
【0072】
表示モジュール160は、プログラムが設定されたことを示す設定完了通知を表示する(ステップS35)。ステップS35において、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス100にプログラムが設定された場合、このエッジデバイス100に上述した設定完了通知を表示する。また、このようなエッジデバイス100にプログラムが設定されなかった場合、提案コンピュータ10は、ゲートウェイ200に接続されたこのようなエッジデバイス100に、この設定完了通知を表示させる。
【0073】
図12に基づいて、表示モジュール160が表示する設定完了通知について説明する。
図12は、設定完了通知の一例を示す図である。表示モジュール160は、設定完了通知画面500として、設定内容通知領域510、学習内容通知領域520、終了アイコン530を表示する。設定内容通知領域510は、今回設定が完了したプログラムに関する内容を通知する領域である。表示モジュール160は、「トマト栽培用アプリケーションの設定が完了しました。」と表示する。学習内容通知領域520は、学習内容及びプログラムの実行に関する内容を通知する領域である。表示モジュール160は、「1週間、データ取得と学習を行いますので、11月30日から収穫時期予測を行います。」と表示する。終了アイコン530は、ユーザからの入力を受け付けることにより、設定完了通知画面の表示を終了する。
【0074】
なお、設定完了通知画面500における各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。
【0076】
[第1の機械学習処理]
図7に基づいて、エッジデバイス制御システム1が実行する第1の機械学習処理について説明する。
図7は、エッジデバイス100、計算機300が実行する第1の機械学習処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【0077】
データ取得モジュール162は、各種データを取得する(ステップS40)。ステップS40において、データ取得モジュール162は、エッジデバイス100用のプログラムに基づいて、各種データを取得する。データ取得モジュール162は、例えば、ネットワークカメラ100aである場合、画像を撮像することにより、画像データを取得し、センサ装置100bである場合、環境データを取得する。
【0078】
デバイス結果データ送信モジュール153は、取得した各種データを、デバイス結果データとして、計算機300に送信する(ステップS41)。ステップS41において、エッジデバイス100は、ゲートウェイ200にデバイス結果データを送信し、ゲートウェイ200は、計算機300にデバイス結果データを送信する。
【0079】
デバイス結果データ受信モジュール351は、デバイス結果データを受信する。計算モジュール370は、受信したデバイス結果データに基づいて、記憶した機械学習用のプログラムを実行することにより、機械学習を実行する(ステップS42)。
【0080】
計算結果データ送信モジュール352は、機械学習を実行した結果である計算結果データを、エッジデバイス100に送信する(ステップS43)。ステップS43において、計算結果データ送信モジュール352は、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス100に計算結果データを送信する。具体的には、携帯端末100cやパーソナルコンピュータ100dに計算結果データを送信する。計算機300は、ゲートウェイ200に計算結果データを送信し、ゲートウェイ200は、エッジデバイス100に計算結果データを送信する。
【0081】
表示モジュール160は、計算結果データに基づいて、計算結果を表示する(ステップS44)。
【0083】
[第2の機械学習処理]
図8に基づいて、エッジデバイス制御システム1が実行する第2の機械学習処理について説明する。
図8は、提案コンピュータ10、エッジデバイス100が実行する第2の機械学習処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【0084】
データ取得モジュール162は、各種データを取得する(ステップS50)。ステップS50の処理は、上述したステップS40の処理と同様である。
【0085】
デバイス結果データ送信モジュール153は、デバイス結果データを、提案コンピュータ10に送信する(ステップS51)。
【0086】
デバイス結果データ受信モジュール27は、デバイス結果データを受信する。性能判断モジュール26は、ゲートウェイ200に接続されたエッジデバイス100の処理性能が、所定の性能以上であるか否かを判断する(ステップS52)。ステップS52において、性能判断モジュール26は、上述した機器データに基づいて、処理性能を判断する。所定の性能とは、機械学習を行うに足る性能である。なお、処理性能を複数の段階に分けて判断し、段階毎に、後述する処理を実行してもよい。例えば、第1の段階の処理性能を有するエッジデバイス100では、後述の処理を実行させ、第2の段階の処理性能を有するエッジデバイス100では、後述の処理の一部を実行させ、第3の段階の処理性能を有するエッジデバイス100では、後述の処理の一部のさらにその一部を実行させるといった具合である。
【0087】
ステップS52において、性能判断モジュール26は、所定の性能以上ではないと判断した場合(ステップS52 NO)、デバイス結果データ送信モジュール28は、デバイス結果データを、計算機300に送信し(ステップS53)、本処理を終了する。エッジデバイス制御システム1は、上述した第1の機械学習処理をこのデバイス結果データに対して実行すればよい。
【0088】
一方、ステップS52において、性能判断モジュール26は、所定の性能以上であると判断した場合(ステップS52 YES)、デバイス結果データ送信モジュール28は、デバイス結果データ及びこのデバイス結果データに対応する教師データを、このエッジデバイス100に送信する(ステップS54)。ステップS54において、デバイス結果データ送信モジュール28は、計算機300や他のコンピュータ等から取得した教師データを送信してもよいし、予め記憶した教師データを送信してもよい。また、デバイス結果データ送信モジュール28は、学習用プログラムデータを、教師データとともに送信する。
【0089】
デバイス結果データ受信モジュール154は、デバイス結果データ及び教師データを受信する。なお、デバイス結果データ受信モジュール154は、教師データを、提案コンピュータ10以外の他のコンピュータ等から直接ダウンロードしてもよい。このようにすることにより、エッジデバイス制御システム1は、エッジデバイス100に、デバイス結果データに対応する教師データをダウンロードさせるように制御する。
【0090】
計算モジュール163は、デバイス結果データ及び教師データに基づいて、機械学習を実行する(ステップS55)。ステップS55において、計算モジュール163は、デバイス結果データ及び教師データと、学習用プログラムデータとに基づいて、機械学習用のプログラムを実行することにより、機械学習を実行する。
【0091】
表示モジュール160は、機械学習を実行した結果である計算結果データに基づいて、計算結果を表示する(ステップS56)。ステップS56において、エッジデバイス100は、他のエッジデバイス100に、計算結果データを送信し、この他のエッジデバイス100が計算結果データに基づいて、計算結果を表示してもよい。
【0093】
上述した手段、機能は、コンピュータ(CPU、情報処理装置、各種端末を含む)が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、コンピュータからネットワーク経由で提供される(SaaS:ソフトウェア・アズ・ア・サービス)形態で提供される。また、プログラムは、例えば、フレキシブルディスク、CD(CD−ROMなど)、DVD(DVD−ROM、DVD−RAMなど)等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し記憶して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置(記録媒体)に予め記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【0094】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【課題】ネットワーク内のセンサ機器の組み合わせから、所定の機械学習のためのデータを取得し、ユーザが意図することなく、このセンサ機器から可能な学習を行い、結果を出力するコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することを目的とする。
【解決手段】ゲートウェイ200に接続されたエッジデバイス100を使用して機械学習を行うコンピュータシステムは、前記ゲートウェイ200に接続されたエッジデバイス100を検出し、検出した前記エッジデバイス100の組み合わせを決定し、決定した前記組み合わせに基づいて、エッジデバイス100用のプログラムと機械学習用のプログラムとを決定し、前記エッジデバイス100に、前記エッジデバイス100用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる。