(57)【要約】【課題】ネットワーク内に存在するエッジデバイスを有効活用することにより、処理速度を向上させたコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することを目的とする。【解決手段】ゲートウェイ２００に接続されたエッジデバイス１００に機械学習をさせるように制御するコンピュータシステムは、前記ゲートウェイ２００に接続されたエッジデバイス１００を検出し、検出した前記エッジデバイス１００の組み合わせを決定し、検出した前記エッジデバイス１００の処理性能を取得し、決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス１００用のプログラムと機械学習用のプログラムとを決定し、取得した前記処理性能に応じて、決定した前記エッジデバイス１００用のプログラムを前記エッジデバイス１００に送信し、取得した前記処理性能に応じて、前記エッジデバイス１００に、前記エッジデバイス１００用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる。【選択図】図１
2018100683.tif 000002
【特許請求の範囲】
【請求項１】
ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するコンピュータシステムであって、
前記ゲートウェイに接続されたエッジデバイスを検出する検出手段と、
検出した前記エッジデバイスの組み合わせを決定する組み合わせ決定手段と、
検出した前記エッジデバイスの処理性能を取得する取得手段と、
決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するプログラム決定手段と、
取得した前記処理性能に応じて、決定した前記エッジデバイス用のプログラムを前記エッジデバイスに送信する送信手段と、
取得した前記処理性能に応じて、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる実行手段と、
を備えることを特徴とするコンピュータシステム。
【請求項２】
前記エッジデバイスに、前記データに対応する教師データをダウンロードさせるように制御するダウンロード手段と、
前記エッジデバイスに、前記教師データを用いて前記データを機械学習させるように制御する制御手段と、
を備えることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記実行手段は、取得した前記処理性能が高い場合に、前記エッジデバイス用のプログラムのうち、前記エッジデバイスで起動できる機械学習用プログラムを当該エッジデバイスに実行させる、
ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項４】
前記実行手段は、取得した前記処理性能が高い場合に、前記エッジデバイス用のプログラムのうち、前記エッジデバイスで起動できる機械学習用プログラムを、前記所定のコンピュータに実行させる機械学習用のプログラムと並行して、当該エッジデバイスに実行させる、
ことを特徴とする請求項１に記載のコンピュータシステム。
【請求項５】
ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するエッジデバイス制御方法であって、
前記ゲートウェイに接続されたエッジデバイスを検出するステップと、
検出した前記エッジデバイスの組み合わせを決定するステップと、
検出した前記エッジデバイスの処理性能を取得するステップと、
決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップと、
取得した前記処理性能に応じて、決定した前記エッジデバイス用のプログラムを前記エッジデバイスに送信するステップと、
取得した前記処理性能に応じて、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップと、
を備えることを特徴とするエッジデバイス制御方法。
【請求項６】
ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するコンピュータシステムに、
前記ゲートウェイに接続されたエッジデバイスを検出するステップ、
検出した前記エッジデバイスの組み合わせを決定するステップ、
検出した前記エッジデバイスの処理性能を取得するステップ、
決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するステップ、
取得した前記処理性能に応じて、決定した前記エッジデバイス用のプログラムを前記エッジデバイスに送信するステップ、
取得した前記処理性能に応じて、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させるステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するコンピュータシステム、エッジデバイス制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、エッジＡＩ（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）コンピューティングと呼ばれる手法が知られている。このような手法において、ゲートウェイに接続されたエッジデバイスを使用することにより、機械学習を行う。【０００３】
このような機械学習を行うシステムとして、例えば、従来の公衆回線網内のエッジ（各種センサ機器）に近い位置に、エッジデバイスを配置し、処理速度を速める必要な処理をこのエッジデバイスで行い、画像解析や機械学習等の時間がかかる処理を、公衆回線網に接続された他のコンピュータにより処理する構成が開示されている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｍｅｔｉ．ｇｏ．ｊｐ／ｃｏｍｍｉｔｔｅｅ／ｓａｎｋｏｕｓｈｉｎ／ｓｈｏｊｏ／ｊｏｈｏｋｅｉｚａｉ／ｂｕｎｓａｎ＿ｓｅｎｒｙａｋｕ＿ｗｇ／ｐｄｆ／００１＿０４＿００．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の構成では、エッジデバイスの中に、処理を実行していないものもあるため、このようなエッジデバイスを有効に活用することができなかった。【０００６】
本発明の目的は、ネットワーク内に存在するエッジデバイスを有効活用することにより、処理速度を向上させたコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では、以下のような解決手段を提供する。【０００８】
本発明は、ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するコンピュータシステムであって、
前記ゲートウェイに接続されたエッジデバイスを検出する検出手段と、
検出した前記エッジデバイスの組み合わせを決定する組み合わせ決定手段と、
検出した前記エッジデバイスの処理性能を取得する取得手段と、
決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定するプログラム決定手段と、
取得した前記処理性能に応じて、決定した前記エッジデバイス用のプログラムを前記エッジデバイスに送信する送信手段と、
取得した前記処理性能に応じて、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる実行手段と、
を備えることを特徴とするコンピュータシステムを提供する。【０００９】
本発明によれば、ゲートウェイに接続されたエッジデバイスに機械学習をさせるように制御するコンピュータシステムは、前記ゲートウェイに接続されたエッジデバイスを検出し、検出した前記エッジデバイスの組み合わせを決定し、検出した前記エッジデバイスの処理性能を取得し、決定した前記組み合わせ及び取得した前記処理性能に基づいて、エッジデバイス用のプログラムと機械学習用のプログラムとを決定し、取得した前記処理性能に応じて、決定した前記エッジデバイス用のプログラムを前記エッジデバイスに送信し、取得した前記処理性能に応じて、前記エッジデバイスに、前記エッジデバイス用のプログラムを実行させ、所定のコンピュータに、前記機械学習用のプログラムを実行させる。【００１０】
本発明は、コンピュータシステムのカテゴリであるが、エッジデバイス制御方法及びプログラム等の他のカテゴリにおいても、そのカテゴリに応じた同様の作用・効果を発揮する。
【発明の効果】
【００１１】
本発明によれば、ネットワーク内に存在するエッジデバイスを有効活用することにより、処理速度を向上させたコンピュータシステム、エッジデバイス制御方法及びプログラムを提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】図１は、エッジデバイス制御システム１の概要を示す図である。
【図２】図２は、エッジデバイス制御システム１の全体構成図である。
【図３】図３は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の機能ブロック図である。
【図４】図４は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図５】図５は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図６】図６は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図７】図７は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理を示すフローチャートである。
【図８】図８は、エッジデバイス１００、計算機３００が実行する第１の機械学習処理を示すフローチャートである。
【図９】図９は、組み合わせデータベースの一例を示す図である。
【図１０】図１０は、プログラムデータベースの一例を示す図である。
【図１１】図１１は、選択画面４００の一例を示す図である。
【図１２】図１２は、設定完了通知画面５００の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００１４】
［エッジデバイス制御システム１の概要］
本発明の好適な実施形態の概要について、図１に基づいて説明する。図１は、本発明の好適な実施形態であるエッジデバイス制御システム１の概要を説明するための図である。エッジデバイス制御システム１は、提案コンピュータ１０、エッジデバイス（ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅ）１００、ゲートウェイ２００、計算機３００から構成され、ゲートウェイ２００に接続されたエッジデバイス１００に機械学習をさせるように制御するコンピュータシステムである。
【００１５】
なお、図１において、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の数は、適宜変更可能である。また、エッジデバイス１００の種類は、適宜変更可能である。また、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００は、実在する装置に限らず、仮想的な装置であってもよい。また、後述する各処理は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００のいずれか又は複数の組み合わせにより実現されてもよい。
【００１６】
提案コンピュータ１０は、ゲートウェイ２００及び計算機３００とデータ通信可能に接続されたコンピュータ装置である。
【００１７】
エッジデバイス１００は、ゲートウェイ２００とデータ通信可能に接続された端末装置である。エッジデバイス１００は、例えば、動画や静止画等の画像を撮像するネットワークカメラ１００ａや、日照、温度、風力等の空間データや時間データ等の環境データを取得するセンサ装置１００ｂや、携帯電話、携帯情報端末、タブレット端末、パーソナルコンピュータに加え、ネットブック端末、スレート端末、電子書籍端末、携帯型音楽プレーヤ等の電化製品である携帯端末１００ｃ及びコンピュータ装置１００ｄや、無人航空機や無人移動体等のドローン１００ｅや、その他の物品である。
【００１８】
ゲートウェイ２００は、提案コンピュータ１０、エッジデバイス１００、計算機３００とデータ通信可能なネットワーク機器である。ゲートウェイ２００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続可能なルータやコンピュータ装置等である。
【００１９】
計算機３００は、提案コンピュータ１０及びゲートウェイ２００とデータ通信可能な計算装置である。
【００２０】
はじめに、ゲートウェイ２００は、自身に接続されたエッジデバイス１００を検出する（ステップＳ０１）。ゲートウェイ２００は、ＬＡＮにより接続されたネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅを検出する。
【００２１】
ゲートウェイ２００は、検出したエッジデバイス１００に関するデータを、提案コンピュータ１０に送信する（ステップＳ０２）。
【００２２】
提案コンピュータ１０は、エッジデバイス１００に関するデータを受信する。提案コンピュータ１０は、受信したこのデータに基づいて、エッジデバイス１００の組み合わせを決定する（ステップＳ０３）。提案コンピュータ１０は、このデータに基づいて、予め組み合わせタイプとして記憶したエッジデバイス１００の組み合わせに基づいて、ゲートウェイ２００に接続されたエッジデバイス１００の組み合わせを決定する。
【００２３】
提案コンピュータ１０は、受信したエッジデバイス１００に関するデータに基づいて、検出したエッジデバイス１００に関する機器データを取得する（ステップＳ０４）。ゲートウェイ２００は、エッジデバイス１００の識別子（機器名称、製造番号、機器番号、ＩＰアドレス、ＭＡＣアドレス等）、処理性能（単位時間当たりに処理できる命令数や様々な処理を実行する速度）を機器データとして取得する。
【００２４】
提案コンピュータ１０は、決定した組み合わせ及び取得した処理性能に基づいて、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する（ステップＳ０５）。
【００２５】
提案コンピュータ１０は、取得した処理性能に応じて、決定したエッジデバイス１００用のプログラムをエッジデバイス１００に送信し、決定した機械学習用のプログラムを、計算機３００に送信する（ステップＳ０６）。
【００２６】
エッジデバイス１００は、エッジデバイス１００用のプログラムを受信し、計算機３００は、機械学習用のプログラムを受信する。エッジデバイス１００は、自身の処理性能に応じて、エッジデバイス１００用のプログラムを実行し、計算機３００は、機械学習用のプログラムを実行する（ステップＳ０７）。
【００２７】
以上が、エッジデバイス制御システム１の概要である。
【００２８】
［エッジデバイス制御システム１のシステム構成］
図２に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム１のシステム構成について説明する。図２は、本発明の好適な実施形態であるエッジデバイス制御システム１のシステム構成を示す図である。エッジデバイス制御システム１は、提案コンピュータ１０、エッジデバイス（ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅ）１００、ゲートウェイ２００、計算機３００、公衆回線網（インターネット網や、第３、第４世代通信網等）５から構成され、ゲートウェイ２００に接続されたエッジデバイス１００を使用して機械学習を行うコンピュータシステムである。
【００２９】
なお、エッジデバイス制御システム１を構成する各装置類の数及びその種類は、適宜変更可能である。また、エッジデバイス制御システム１は、実在する装置に限らず、仮想的な装置類により実現されてもよい。また、後述する各処理は、エッジデバイス制御システム１を構成する各装置類のいずれか又は複数の組み合わせにより実現されてもよい。
【００３０】
提案コンピュータ１０は、後述の機能を備えた上述したコンピュータ装置である。
【００３１】
エッジデバイス１００は、後述の機能を備えた上述した端末装置である。
【００３２】
ゲートウェイ２００は、後述の機能を備えた上述したネットワーク機器である。
【００３３】
計算機３００は、後述の機能を備えた上述した計算装置である。
【００３４】
［各機能の説明］
図３に基づいて、本発明の好適な実施形態であるエッジデバイス制御システム１の機能について説明する。図３は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００の機能ブロック図を示す図である。
【００３５】
提案コンピュータ１０は、制御部１１として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を備え、通信部１２として、他の機器と通信可能にするためのデバイス、例えば、ＩＥＥＥ８０２．１１に準拠したＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）対応デバイス等を備える。また、提案コンピュータ１０は、記憶部１３として、ハードディスクや半導体メモリ、記録媒体、メモリカード等によるデータのストレージ部を備える。
【００３６】
提案コンピュータ１０において、制御部１１が所定のプログラムを読み込むことにより、通信部１２と協働して、機器データ受信モジュール２０、組み合わせ決定モジュール２１、プログラム決定モジュール２２、選択通知送信モジュール２３、選択アプリケーションデータ受信モジュール２４、プログラムデータ送信モジュール２５を実現する。また、提案コンピュータ１０において、制御部１１が所定のプログラムを読み込むことにより、記憶部１３と協働して、記憶モジュール３０を実現する。
【００３７】
エッジデバイス１００は、提案コンピュータ１０と同様に、制御部１１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部１２０として、他の機器と通信可能にするためのデバイスを備える。また、エッジデバイス１００は、処理部１４０として、環境データや画像データ等を取得するための各種デバイス等を備える。
【００３８】
エッジデバイス１００において、制御部１１０が所定のプログラムを読み込むことにより、通信部１２０と協働して、選択通知受信モジュール１５０、選択アプリケーションデータ送信モジュール１５１、プログラムデータ受信モジュール１５２、デバイス結果データ送信モジュール１５３、デバイス結果データ受信モジュール１５４、計算結果データ送信モジュール１５５を実現する。また、エッジデバイス１００において、制御部１１０が所定のプログラムを読み込むことにより、処理部１４０と協働して、表示モジュール１６０、プログラム設定モジュール１６１、データ取得モジュール１６２、計算モジュール１６３を実現する。
【００３９】
ゲートウェイ２００は、提案コンピュータ１０と同様に、制御部２１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部２２０として、他の機器と通信可能にするためのデバイスを備える。
【００４０】
ゲートウェイ２００において、制御部２１０が所定のプログラムを読み込むことにより、通信部２２０と協働して、デバイス検出モジュール２５０、機器データ送信モジュール２５１、プログラムデータ受信モジュール２５２、デバイス選択モジュール２５３、プログラムデータ送信モジュール２５４を実現する。
【００４１】
計算機３００は、提案コンピュータ１０と同様に、制御部３１０として、ＣＰＵ、ＲＡＭ、ＲＯＭ等を備え、通信部３２０として、他の機器と通信可能にするためのデバイスを備え、記憶部３３０として、データのストレージ部を備える。また、計算機３００は、処理部３４０として、各種プログラムを実行する各種デバイス等を備える。
【００４２】
計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、通信部３２０と協働して、プログラムデータ受信モジュール３５０、デバイス結果データ受信モジュール３５１、計算結果データ送信モジュール３５２を実現する。また、計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、記憶部３３０と協働して、記憶モジュール３６０を実現する。また、計算機３００において、制御部３１０が所定のプログラムを読み込むことにより、処理部３４０と協働して、計算モジュール３７０を実現する。
【００４３】
［デバイス検出処理］
図４、図５、図６及び図７に基づいて、エッジデバイス制御システム１が実行するデバイス検出処理について説明する。図４、図５、図６及び図７は、提案コンピュータ１０、エッジデバイス１００、ゲートウェイ２００、計算機３００が実行するデバイス検出処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【００４４】
デバイス検出モジュール２５０は、自身に接続されたエッジデバイス１００を検出する（ステップＳ２０）。ステップＳ２０において、デバイス検出モジュール２５０は、ＬＡＮ接続されたエッジデバイス１００を検出する。デバイス検出モジュール２５０は、エッジデバイス１００として、ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅを検出する。
【００４５】
デバイス検出モジュール２５０は、検出したエッジデバイス１００の機器データを取得する（ステップＳ２１）。ステップＳ２１において、デバイス検出モジュール２５０は、エッジデバイス１００の固有な識別子と、処理性能と、回線速度とを機器データとして取得する。エッジデバイス１００の固有な識別子とは、機器名称、製造番号、機器番号、ＩＰアドレス、ＭＡＣアドレス等である。また、処理性能とは、単位時間当たりに処理できる命令数や様々な処理を実行する速度等である。回線速度とは、各装置類の通信速度である。デバイス検出モジュール２５０は、検出したエッジデバイス１００から、機器データを取得してもよいし、エッジデバイス１００から取得した機器名称や製造番号や機器番号に基づいて、このエッジデバイス１００の製造元や販売元等のコンピュータやデータベース等から必要なデータを取得してもよい。
【００４６】
機器データ送信モジュール２５１は、取得した機器データを、提案コンピュータ１０に送信する（ステップＳ２２）。なお、ステップＳ２１及びステップＳ２２の処理は、後述するステップＳ２３の処理以降に実行されてもよい。
【００４７】
機器データ受信モジュール２０は、機器データを受信する。組み合わせ決定モジュール２１は、予め記憶モジュール３０が記憶する組み合わせデータベースに基づいて、エッジデバイス１００の組み合わせを決定する（ステップＳ２３）。ステップＳ２３において、組み合わせ決定モジュール２１は、組み合わせデータベースを参照することにより、受信した機器データに含まれるエッジデバイス１００の組み合わせタイプを決定する。
【００４８】
［組み合わせデータベース］
図９に基づいて、記憶モジュール３０が記憶する組み合わせデータベースについて説明する。図９は、組み合わせデータベースの一例を示す図である。記憶モジュール３０は、組み合わせタイプと、複数のエッジデバイス１００とを対応付けて記憶する。タイプ名とは、組み合わせタイプの名称である。また、デバイス名とは、エッジデバイス１００の識別子である。記憶モジュール３０は、タイプ名として、「タイプ１」、「タイプ２」等を記憶する。記憶モジュール３０は、デバイス名として、「ＴＯＴ−ＳＥ０１（トマト用温度センサ）、ＣＡＭ０１（カメラ）、ＰＨ０６（スマホ）」、「ＢＢ−０１（ビニルハウス用センサキット）、ＷＥＢＣＡＭ２５（カメラ）、ＧＡＬ（タブレット）」等を記憶する。提案コンピュータ１０は、予めエッジデバイス１００やその他の端末装置や外部コンピュータ等からこの組み合わせデータベースを取得し、記憶する。
【００４９】
なお、デバイス名に含まれるエッジデバイス１００の数は、１又は複数であればよく、適宜変更可能である。また、タイプ名は、図９で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての組み合わせタイプを分類するのではなく、組み合わせタイプ毎に、一のデータベースが存在していてもよい。すなわち、組み合わせタイプの数と同数のデータベースが存在していてもよい。
【００５０】
ステップＳ２３において、組み合わせ決定モジュール２１は、今回受信した機器データに含まれるエッジデバイス１００に該当するタイプ名を特定することにより、組み合わせタイプを決定し、エッジデバイス１００の組み合わせを決定する。例えば、エッジデバイス１００は、ネットワークカメラ１００ａ、センサ装置１００ｂ、携帯端末１００ｃ、コンピュータ装置１００ｄ、ドローン１００ｅであることから、このエッジデバイス１００に対応する組み合わせタイプとして、タイプ１とタイプ２とを決定する。
【００５１】
プログラム決定モジュール２２は、この決定した組み合わせ、取得した処理性能及び取得した回線速度に基づいて、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する（ステップＳ２４）。ステップＳ２４において、プログラム決定モジュール２２は、プログラムデータベースを参照することにより、エッジデバイス１００用のプログラムと、機械学習用のプログラムとを決定する。エッジデバイス１００用のプログラムには、各種データを取得するためのプログラム及びエッジデバイス１００に機械学習を実行させるプログラムが含まれる。
【００５２】
［プログラムデータベース］
図１０に基づいて、記憶モジュール３０が記憶するプログラムデータベースについて説明する。図１０は、プログラムデータベースの一例を示す図である。記憶モジュール３０は、タイプ名と、機械学習データセットとを対応付けて記憶する。タイプ名とは、上述した組み合わせタイプの名称である。機械学習データセットとは、対象とするアプリケーションの名称、エッジデバイス１００用のプログラムの名称及び機械学習用のプログラムの名称である。記憶モジュール３０は、タイプ名として、「タイプ１」、「タイプ２」等を記憶する。記憶モジュール３０は、機械学習データセットとして、「トマト栽培用アプリケーション、エッジデバイス用プログラムセットＦ、コンピュータ用機械学習プログラムＢ」、「キュウリ栽培用アプリケーション、エッジデバイス用プログラムセットＶ、コンピュータ用機械学習プログラムＤ」等を記憶する。各プログラムの名称には、各処理を実行するために必要なプログラムが紐付けられている。提案コンピュータ１０は、予めエッジデバイス１００やその他の端末装置や外部コンピュータ等からこのプログラムデータベースを取得し、記憶する。
【００５３】
なお、タイプ名は、図１０で示した名称に限らず、適宜変更可能である。また、アプリケーションの名称、エッジデバイス１００用のプログラムの名称、機械学習用のプログラムの名称は、図１０で示した名称に限らず、適宜変更可能である。また、一のデータベースにより、全ての機械学習データセットを分類するのではなく、機械学習データセット毎に、一のデータベースが存在していてもよい。すなわち、機械学習データセットの数と同数のデータベースが存在していてもよい。
【００５４】
ステップＳ２４において、プログラム決定モジュール２２は、今回決定した組み合わせタイプに対応付けられた機械学習データセットを抽出することにより、機械学習データセットを決定し、この機械学習データセットと、処理性能と、回線速度とに基づいて、対象とするアプリケーションの名称、エッジデバイス１００用のプログラムの名称及び機械学習用のプログラムの名称を決定する。
【００５５】
プログラム決定モジュール２２は、決定した組み合わせタイプが複数存在するか否かを判断する（ステップＳ２５）。ステップＳ２５において、プログラム決定モジュール２２は、複数存在すると判断した場合（ステップＳ２５  ＹＥＳ）、選択通知送信モジュール２３は、携帯端末１００ｃ、コンピュータ装置１００ｄ等の表示部や入力部等のユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００に、選択通知を送信する（ステップＳ２６）。ステップＳ２６において、提案コンピュータ１０は、選択通知を、ゲートウェイ２００に送信し、ゲートウェイ２００は、この選択通知をさらにエッジデバイス１００に送信する。
【００５６】
選択通知受信モジュール１５０は、選択通知を受信する。表示モジュール１６０は、受信した選択通知に基づいて、選択画面を表示する（ステップＳ２７）。
【００５７】
図１１に基づいて、表示モジュール１６０が表示する選択画面について説明する。図１１は、選択画面の一例を示す図である。表示モジュール１６０は、選択画面４００として、説明文表示領域４１０、アプリケーション選択領域４２０、送信アイコン４３０を表示する。説明文表示領域４１０は、アプリケーションを選択する画面であることを通知する領域である。表示モジュール１６０は、「このローカルネットワークにつながれているデバイスの組み合わせは、以下の学習を行うことができます。どれを選択しますか？」を表示する。アプリケーション選択領域４２０は、上述した組み合わせタイプを全て表示する領域である。表示モジュール１６０は、「１：トマト栽培用アプリケーション」、「２：キュウリ栽培用アプリケーション」、「３：鶏監視用アプリケーション」を表示する。アプリケーション選択領域４２０は、ユーザからの入力を受け付け、一のアプリケーションの選択を受け付ける。表示モジュール１６０は、入力を受け付けた一のアプリケーションに対して、選択アイコン４４０を表示する。表示モジュール１６０は、選択アイコン４４０として、チェックマークを表示する。送信アイコン４３０は、ユーザからの入力を受け付け、入力を受け付けることにより、選択アプリケーションデータ送信モジュール１５１は、選択されたアプリケーションを、選択アプリケーションデータとして、提案コンピュータ１０に送信する。
【００５８】
なお、上述した各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。また、アプリケーション選択領域４２０は、複数のアプリケーションに対する選択を受け付けてもよい。
【００５９】
表示モジュール１６０は、選択入力を受け付けたか否かを判断する（ステップＳ２８）。ステップＳ２８において、表示モジュール１６０は、アプリケーションの選択入力を受け付け、送信アイコン４３０の入力を受け付けたか否かを判断する。表示モジュール１６０は、選択入力を受け付けていないと判断した場合（ステップＳ２８  ＮＯ）、すなわち、アプリケーションの選択入力を受け付けていない場合や、アプリケーションの選択入力を受け付けたものの、送信アイコン４３０の入力を受け付けていない場合、アプリケーションの選択入力及び送信アイコン４３０の入力を受け付けるまで、本処理を繰り返す。
【００６０】
一方、ステップＳ２８において、表示モジュール１６０は、選択入力を受け付けた場合（ステップＳ２８  ＹＥＳ）、すなわち、アプリケーションの選択入力を受け付けるとともに送信アイコン４３０の入力を受け付けた場合、選択アプリケーションデータ送信モジュール１５１は、選択入力を受け付けたアプリケーションを示す選択アプリケーションデータを、提案コンピュータ１０に送信する（ステップＳ２９）。ステップＳ２９において、エッジデバイス１００は、選択アプリケーションデータを、ゲートウェイ２００に送信し、ゲートウェイ２００は、この選択アプリケーションデータを、提案コンピュータ１０に送信する。
【００６１】
選択アプリケーションデータ受信モジュール２４は、選択アプリケーションデータを受信する。
【００６２】
一方、ステップＳ２５において、プログラム決定モジュール２２は、複数存在しないと判断した場合（ステップＳ２５  ＮＯ）又は選択アプリケーションデータ受信モジュール２４は、選択アプリケーションデータを受信した場合、プログラム決定モジュール２２は、この決定された一の組み合わせタイプ又はエッジデバイス１００による選択入力を受け付けた選択アプリケーションデータに対応付けられた一の組み合わせタイプに対応付けられた機械学習データセットに含まれるエッジデバイス１００用のプログラムと、機械学習用プログラムとを抽出する（ステップＳ３０）。ステップＳ３０において、プログラム決定モジュール２２は、エッジデバイス１００用のプログラムの名称に紐付けられたプログラムデータを抽出するとともに、機械学習用プログラムの名称に紐付けられたプログラムデータを抽出する。
【００６３】
プログラムデータ送信モジュール２５は、機械学習用プログラムを示す学習用プログラムデータを、計算機３００に送信する（ステップＳ３１）。
【００６４】
プログラムデータ受信モジュール３５０は、学習用プログラムデータを受信する。記憶モジュール３６０は、受信した学習用プログラムデータを記憶する（ステップＳ３２）。
【００６５】
プログラムデータ送信モジュール２５は、エッジデバイス１００用のプログラムを示すデバイス用プログラムデータを、ゲートウェイ２００に送信する（ステップＳ３３）。
【００６６】
プログラムデータ受信モジュール２５２は、デバイス用プログラムデータを受信する。デバイス選択モジュール２５３は、機器データに基づいて、エッジデバイス１００の処理性能及び自身とエッジデバイス１００とのＬＡＮ接続の回線速度とに基づいて、機械学習を行わせるエッジデバイス１００を決定する（ステップＳ３４）。ステップＳ３４において、デバイス選択モジュール２５３は、処理性能が所定の性能以上かつ回線速度が所定の速度以上であるエッジデバイス１００を決定する。本実施形態において、デバイス選択モジュール２５３は、携帯端末１００ｃ及びコンピュータ装置１００ｄを、この条件を満たすエッジデバイス１００であると決定する。
【００６７】
デバイス選択モジュール２５３は、決定したエッジデバイス１００が複数存在するか否かを判断する（ステップＳ３５）。ステップＳ３５において、デバイス選択モジュール２５３は、複数存在しないと判断した場合（ステップＳ３５  ＮＯ）、プログラムデータ送信モジュール２５４は、エッジデバイス１００にデバイス用プログラムデータを送信する（ステップＳ３６）。ステップＳ３６において、処理性能が所定の性能以上かつ回線速度が所定の速度以上であるエッジデバイス１００に機械学習用のプログラムを含むデバイス用プログラムデータを送信し、その他のエッジデバイス１００に機械学習用のプログラムを含まないデバイス用プログラムデータを送信する。
【００６８】
プログラムデータ受信モジュール１５２は、デバイス用プログラムデータを受信する。プログラム設定モジュール１６１は、受信したデバイス用プログラムデータに基づいて、エッジデバイス１００用のプログラムを設定する（ステップＳ３７）。ステップＳ３７において、エッジデバイス１００毎にプログラムが設定される。すなわち、例えば、ネットワークカメラ１００ａ、センサ装置１００ｂには、各種データを取得するためのエッジデバイス１００用のプログラムが設定され、コンピュータ装置１００ｄには、機械学習を実行するためのエッジデバイス１００用のプログラムが設定される。
【００６９】
表示モジュール１６０は、プログラムが設定されたことを示す設定完了通知を表示する（ステップＳ３８）。ステップＳ３８において、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００にプログラムが設定された場合、このエッジデバイス１００に上述した設定完了通知を表示する。また、このようなエッジデバイス１００にプログラムが設定されなかった場合、提案コンピュータ１０は、ゲートウェイ２００に接続されたこのようなエッジデバイス１００に、この設定完了通知を表示させる。
【００７０】
図１２に基づいて、表示モジュール１６０が表示する設定完了通知について説明する。図１２は、設定完了通知の一例を示す図である。表示モジュール１６０は、設定完了通知画面５００として、設定内容通知領域５１０、学習内容通知領域５２０、終了アイコン５３０を表示する。設定内容通知領域５１０は、今回設定が完了したプログラムに関する内容を通知する領域である。表示モジュール１６０は、「トマト栽培用アプリケーションの設定が完了しました。」と表示する。学習内容通知領域５２０は、学習内容及びプログラムの実行に関する内容を通知する領域である。表示モジュール１６０は、「１週間、データ取得と学習を行いますので、１１月３０日から収穫時期予測を行います。」と表示する。終了アイコン５３０は、ユーザからの入力を受け付けることにより、設定完了通知画面の表示を終了する。
【００７１】
なお、設定完了通知画面５００における各領域及びアイコンの表示内容、表示態様、表示位置、表示順序等は適宜変更可能である。
【００７２】
一方、ステップＳ３５において、デバイス選択モジュール２５３は、複数存在すると判断した場合（ステップＳ３５  ＹＥＳ）、デバイス選択モジュール２５３は、処理性能及び回線速度に基づいたこのエッジデバイス１００の順位を決定する（ステップＳ３９）。順位とは、処理性能の高さ及び回線速度の速さの順番である。すなわち、処理性能が高く回線速度が速い、処理性能が高く回線速度が遅い、処理性能が低く回線速度が速い、処理性能が低く回線速度が遅い順番である。例えば、エッジデバイス１００の順位として、処理性能及び回線速度の順として、コンピュータ装置１００ｄ、携帯端末１００ｃの順を決定する。
【００７３】
プログラムデータ送信モジュール２５４は、エッジデバイス１００にデバイス用プログラムデータを送信する（ステップＳ４０）。ステップＳ４０において、コンピュータ装置１００ｄに、機械学習用のプログラムを含むデバイス用プログラムデータを送信し、携帯端末１００ｃに、コンピュータ装置１００ｄに送信した機械学習用のプログラムの一部の機能を抑制した機械学習用のプログラムを含むデバイス用プログラムデータを送信し、その他のエッジデバイス１００に機械学習用のプログラムを含まないデバイス用プログラムデータを送信する。
【００７４】
プログラムデータ受信モジュール１５２は、デバイス用プログラムデータを受信する。プログラム設定モジュール１６１は、受信したデバイス用プログラムデータに基づいて、エッジデバイス１００用のプログラムを設定する（ステップＳ４１）。ステップＳ４１において、上述したステップＳ３７と同様に、エッジデバイス１００毎にプログラムが設定される。すなわち、例えば、ネットワークカメラ１００ａ、センサ装置１００ｂには、各種データを取得するためのエッジデバイス１００用のプログラムが設定され、携帯端末１００ｃ、コンピュータ装置１００ｄには、機械学習を実行するためのエッジデバイス１００用のプログラムが設定される。
【００７５】
表示モジュール１６０は、プログラムが設定されたことを示す設定完了通知を表示する（ステップＳ４２）。ステップＳ４２の処理は、上述したステップＳ３８の処理と同様である。
【００７６】
以上が、デバイス検出処理である。
【００７７】
［機械学習処理］
図８に基づいて、エッジデバイス制御システム１が実行する機械学習処理について説明する。図８は、エッジデバイス１００、計算機３００が実行する機械学習処理のフローチャートを示す図である。上述した各装置のモジュールが実行する処理について、本処理に併せて説明する。
【００７８】
データ取得モジュール１６２は、各種データを取得する（ステップＳ５０）。ステップＳ５０において、データ取得モジュール１６２は、エッジデバイス１００用のプログラムに基づいて、各種データを取得する。データ取得モジュール１６２は、例えば、ネットワークカメラ１００ａである場合、画像を撮像することにより、画像データを取得し、センサ装置１００ｂである場合、環境データを取得する。
【００７９】
デバイス結果データ送信モジュール１５３は、取得した各種データを、デバイス結果データとして、計算機３００及びエッジデバイス１００に送信する（ステップＳ５１）。ステップＳ５１において、エッジデバイス１００は、ゲートウェイ２００にデバイス結果データを送信し、ゲートウェイ２００は、計算機３００にデバイス結果データを送信する。また、デバイス結果データ送信モジュール１５３は、エッジデバイス１００として、携帯端末１００ｃ及びコンピュータ装置１００ｄにデバイス結果データを送信する。このとき、エッジデバイス１００は、ゲートウェイ２００にデバイス結果データを送信し、ゲートウェイ２００は、携帯端末１００ｃ及びコンピュータ装置１００ｄにデバイス結果データを送信する。
【００８０】
デバイス結果データ受信モジュール１５４は、デバイス結果データを受信する。プログラムデータ受信モジュール１５２は、受信したデバイス結果データに対応する教師データをダウンロードする（ステップＳ５２）。ステップＳ５２において、プログラムデータ受信モジュール１５２は、教師データを、提案コンピュータ１０やその他のコンピュータ装置や端末装置等からダウンロードする。
【００８１】
計算モジュール１６３は、ダウンロードした教師データと、デバイス結果データとに基づいて、機械学習用のプログラムを実行することにより、機械学習を実行する（ステップＳ５３）。ステップＳ５３において、計算モジュール１６３は、上述したエッジデバイス１００の順位に応じて、機械学習用プログラムの実行内容を変化させる。例えば、順位が最も高いエッジデバイス１００には、全ての機械学習のプログラムを実行させ、順位がこのエッジデバイス１００の次のものには、一部の機械学習のプログラムを実行させ、順位がさらに低いものには、さらに一部の機械学習のプログラムを実行させる。
【００８２】
デバイス結果データ受信モジュール３５１は、デバイス結果データを受信する。計算モジュール３７０は、受信したデバイス結果データに基づいて、記憶した機械学習用のプログラムを実行することにより、機械学習を実行する（ステップＳ５４）。
【００８３】
計算結果データ送信モジュール３５２は、機械学習を実行した結果である計算結果データを、エッジデバイス１００に送信する（ステップＳ５５）。ステップＳ５５において、計算結果データ送信モジュール３５２は、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００に計算結果データを送信する。具体的には、携帯端末１００ｃやコンピュータ装置１００ｄに計算結果データを送信する。計算機３００は、ゲートウェイ２００に計算結果データを送信し、ゲートウェイ２００は、エッジデバイス１００に計算結果データを送信する。
【００８４】
計算結果データ送信モジュール１５５は、機械学習を実行した結果である計算結果データを、エッジデバイス１００に送信する（ステップＳ５６）。ステップＳ５６において、計算結果データ送信モジュール１５５は、上述したユーザに何らかの通知を実行することやユーザから何らかの入力を受け付けることが可能なエッジデバイス１００に計算結果データを送信する。具体的には、携帯端末１００ｃやコンピュータ装置１００ｄに計算結果データを送信する。計算機３００は、ゲートウェイ２００に計算結果データを送信し、ゲートウェイ２００は、エッジデバイス１００に計算結果データを送信する。
【００８５】
表示モジュール１６０は、計算結果データに基づいて、計算結果を表示する（ステップＳ５７）。
【００８６】
以上が、機械学習処理である。
【００８７】
上述した手段、機能は、コンピュータ（ＣＰＵ、情報処理装置、各種端末を含む）が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、コンピュータからネットワーク経由で提供される（ＳａａＳ：ソフトウェア・アズ・ア・サービス）形態で提供される。また、プログラムは、例えば、フレキシブルディスク、ＣＤ（ＣＤ−ＲＯＭなど）、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し記憶して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置（記録媒体）に予め記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００８８】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００８９】
１  エッジデバイス制御システム、１０  提案コンピュータ、１００  エッジデバイス、２００  ゲートウェイ、３００  計算機
【図１】
2018100683.tif 000003
【図２】
2018100683.tif 000004
【図３】
2018100683.tif 000005
【図４】
2018100683.tif 000006
【図５】
2018100683.tif 000007
【図６】
2018100683.tif 000008
【図７】
2018100683.tif 000009
【図８】
2018100683.tif 000010
【図９】
2018100683.tif 000011
【図１０】
2018100683.tif 000012
【図１１】
2018100683.tif 000013
【図１２】
2018100683.tif 000014
【国際調査報告】
2018100683.tif 000015
2018100683.tif 000016
2018100683.tif 000017