(57)【要約】【課題】簡易な入力に基づいて、ロボットを適切に制御可能な技術を提供する。【解決手段】本発明の一側面に係る制御装置は、ロボットの周囲の環境が写る画像データ、及びロボットの周囲で発生した周囲音を含む音データを取得するデータ取得部と、画像及び音に反映された状況に応じてロボットの動作内容を決定するための機械学習を行った学習済みの学習器に画像データ及び音データを入力し、当該学習済みの学習器の演算処理を実行することで、ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得する動作決定部と、取得した動作コマンドに基づいて、ロボットの動作を制御する動作制御部と、を備える。【選択図】図４
2019155546.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御する制御装置であって、
前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するデータ取得部と、
画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得する動作決定部と、
取得した前記動作コマンドに基づいて、前記ロボットの動作を制御する動作制御部と、
を備える、
制御装置。
【請求項２】
前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されている、
請求項１に記載の制御装置。
【請求項３】
前記学習済みの学習器は、前記機械学習により、ユーザにより発せられた危険を知らせる音声が前記シグナルとして前記音に含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されている、
請求項２に記載の制御装置。
【請求項４】
前記学習済みの学習器は、前記機械学習により、ユーザの危険を知らせるジェスチャが前記シグナルとして前記画像に含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されている、
請求項２又は３に記載の制御装置。
【請求項５】
前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に表れる人物の状態に応じて前記ロボットの動作内容を決定するように構築されている、
請求項１から４のいずれか１項に記載の制御装置。
【請求項６】
前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に表れる人物の感情に応じて前記ロボットの動作内容を決定するように構築されている、
請求項５に記載の制御装置。
【請求項７】
前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に人物の恐怖の感情が表れていることに応じて、前記ロボットの動作を軽減又は停止させることを決定するように構築されている、
請求項６に記載の制御装置。
【請求項８】
前記ロボットは、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律ロボット、及び自動運転可能に構成された車両の少なくともいずれかである、
請求項１から７のいずれか１項に記載の制御装置。
【請求項９】
前記動作制御部は、所定の音を抽出するように構成された音フィルタにより前記音データをフィルタリングし、フィルタリングされた前記音データを前記学習済みの学習器に入力する、
請求項１から８のいずれか１項に記載の制御装置。
【請求項１０】
前記動作制御部は、所定の画像を抽出するように構成された画像フィルタにより前記画像データをフィルタリングし、フィルタリングされた前記画像データを前記学習済みの学習器に入力する、
請求項１から９のいずれか１項に記載の制御装置。
【請求項１１】
ロボットの動作を制御する制御方法であって、
コンピュータが、
前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するステップと、
画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得するステップと、
取得した前記動作コマンドに基づいて、前記ロボットの動作を制御するステップと、
を実行する、
制御方法。
【請求項１２】
ロボットの動作を制御するための制御プログラムであって、
コンピュータに、
前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するステップと、
画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得するステップと、
取得した前記動作コマンドに基づいて、前記ロボットの動作を制御するステップと、
を実行させるための、
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
ロボットの普及に伴い、ロボットを制御するための技術開発が進んでいる。例えば、特許文献１では、ロボットの動作を制御するための制御端末であって、ユーザが発した音声に対する音声認識処理を実行し、音声認識結果に応じて動作内容を決定する制御端末が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１８５６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本件発明者らは、ロボットを制御する従来の技術には次のような問題点があることを見出した。すなわち、ロボットの制御は、基本的には、キーボード、操作ボタン等の入力装置を介して行われる。そのため、入力装置に対する入力操作の分だけロボットを制御するのに手間がかかり、また、入力装置による操作方法を習得した熟練者でなければ当該ロボットを制御するのが困難であった。特に、アクシデントが発生した危険な状況下では、ユーザは冷静な対応ができるとは限らず、これにより、ロボットの動作を停止させることができずに、トラブルを発生させてしまう可能性があった。
【０００５】
そこで、入力装置による操作に代えて又は加えて、特許文献１のような音声入力により、ロボットを制御する方法を採用することが考えられる。この音声入力による制御方法によれば、ロボットを制御する際に、入力装置による操作の手間を省略することができる。すなわち、簡易な入力に基づいて、ロボットを制御することができるようになる。しかしながら、音声からは、ロボットに対して要求した指示の内容を特定することはできても、そのロボットの周囲の環境を適切に判定することは困難である。そのため、音声入力による制御方法では、ロボットの置かれた環境に応じて当該ロボットを適切に制御するのは困難であった。
【０００６】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、簡易な入力に基づいて、ロボットを適切に制御可能な技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【０００８】
すなわち、本発明の一側面に係る制御装置は、ロボットの動作を制御する制御装置であって、前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するデータ取得部と、画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得する動作決定部と、取得した前記動作コマンドに基づいて、前記ロボットの動作を制御する動作制御部と、を備える。
【０００９】
当該構成では、学習済みの学習器を利用することで、得られた画像データ及び音データに反映された状況に応じて、ロボットの動作の内容を規定する動作コマンドを得ることができる。そのため、画像及び音入力という簡易な入力に基づいて、ロボットの動作を制御することができるようになる。また、入力に利用される、ロボットの周囲の環境が写る画像データ、及びロボットの周囲で発生した周囲音を含む音データによれば、ロボットの置かれた状況を適切に判定することができる。したがって、当該構成によれば、簡易な入力に基づいて、ロボットを適切に制御することができるようになる。
【００１０】
なお、「ロボット」は、操作の対象となるあらゆる機械を含んでもよく、例えば、生産ラインにおける産業用ロボット、自律的に動作可能に構成された自律ロボット、及び自動運転可能に構成された車両の少なくともいずれかであってよい。「ロボットの周囲」は、ロボットの動作及び指揮系統の少なくとも一方に影響ある範囲であってよく、例えば、ロボットが動作する範囲、ロボットに動作を指示するユーザの存在する範囲等を含んでもよい。「周囲音」は、ロボットの周囲で取得可能なあらゆる音を含んでもよく、例えば、ユーザ等の人間がロボットに対して発した音声、人間以外（例えば、機械、ペット動物）がロボットに対して発した音、ロボットの周囲の環境で発生したそれら以外の環境音等を含んでもよい。「学習器」は、例えば、ニューラルネットワーク等の、機械学習により所定の推論を行う能力を獲得可能な学習モデルにより構成される。この学習器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。「学習済みの学習器」は、「識別器」又は「分類器」と称されてもよい。
【００１１】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されていてもよい。当該構成によれば、簡易な入力に基づいて、ロボットを停止させることができるようになる。そのため、アクシデントが発生した危険な状況下でも、ロボットの動作を停止させることができ、トラブルの発生を防ぐことができる。
【００１２】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、ユーザにより発せられた危険を知らせる音声が前記シグナルとして前記音に含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されていてもよい。当該構成によれば、音声により、ロボットを停止させることができるようになる。
【００１３】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、ユーザの危険を知らせるジェスチャが前記シグナルとして前記画像に含まれていることに応じて、前記ロボットの動作を停止させることを決定するように構築されていてもよい。当該構成によれば、ジェスチャにより、ロボットを停止させることができるようになる。
【００１４】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に表れる人物の状態に応じて前記ロボットの動作内容を決定するように構築されていてもよい。当該構成によれば、ユーザの状態に適した動作を行うようにロボットを制御することができるようになる。
【００１５】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に表れる人物の感情に応じて前記ロボットの動作内容を決定するように構築されていてもよい。当該構成によれば、ユーザの感情に適した動作を行うようにロボットを制御することができるようになる。
【００１６】
上記一側面に係る制御装置において、前記学習済みの学習器は、前記機械学習により、画像及び音の少なくとも一方に人物の恐怖の感情が表れていることに応じて、前記ロボットの動作を軽減又は停止させることを決定するように構築されていてもよい。当該構成によれば、ユーザが恐怖していることに応じて、その恐怖を引き起こしている原因となっているロボットの動作を軽減させる又は取り止めさせることができるようになる。
【００１７】
上記一側面に係る制御装置において、前記動作制御部は、所定の音を抽出するように構成された音フィルタにより前記音データをフィルタリングし、フィルタリングされた前記音データを前記学習済みの学習器に入力してもよい。当該構成によれば、フィルタリングにより抽出された所定の音に応じて、ロボットを制御することができるようになる。
【００１８】
上記一側面に係る制御装置において、前記動作制御部は、所定の画像を抽出するように構成された画像フィルタにより前記画像データをフィルタリングし、フィルタリングされた前記画像データを前記学習済みの学習器に入力してもよい。当該構成によれば、フィルタリングにより抽出された所定の画像に応じて、ロボットを制御することができるようになる。
【００１９】
なお、上記各形態に係る制御装置の別の態様として、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【００２０】
例えば、本発明の一側面に係る制御方法は、ロボットの動作を制御する情報処理方法であって、コンピュータが、前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するステップと、画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得するステップと、取得した前記動作コマンドに基づいて、前記ロボットの動作を制御するステップと、を実行する、情報処理方法である。
【００２１】
また、例えば、本発明の一側面に係る制御プログラムは、ロボットの動作を制御するためのプログラムであって、コンピュータに、前記ロボットの周囲の環境が写る画像データ、及び前記ロボットの周囲で発生した周囲音を含む音データを取得するステップと、画像及び音に反映された状況に応じて前記ロボットの動作内容を決定するための機械学習を行った学習済みの学習器に前記画像データ及び前記音データを入力し、当該学習済みの学習器の演算処理を実行することで、前記ロボットの動作の内容を規定する動作コマンドを当該学習済みの学習器から取得するステップと、取得した前記動作コマンドに基づいて、前記ロボットの動作を制御するステップと、を実行させるための、プログラムである。
【発明の効果】
【００２２】
本発明によれば、簡易な入力に基づいて、ロボットを適切に制御可能な技術を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明が適用される場面の一例を模式的に例示する。
【図２】図２は、実施の形態に係る制御装置のハードウェア構成の一例を模式的に例示する。
【図３】図３は、実施の形態に係る学習装置のハードウェア構成の一例を模式的に例示する。
【図４】図４は、実施の形態に係る制御装置のソフトウェア構成の一例を模式的に例示する。
【図５】図５は、実施の形態に係る学習装置のソフトウェア構成の一例を模式的に例示する。
【図６】図６は、実施の形態に係る制御装置の処理手順の一例を例示する。
【図７】図７は、実施の形態に係る学習装置の処理手順の一例を例示する。
【図８】図８は、本発明が適用される場面の変形例を模式的に例示する。
【図９】図９は、本発明が適用される場面の変形例を模式的に例示する。
【図１０】図１０は、実施の形態に係る制御装置の変形例を模式的に例示する。
【図１１】図１１は、実施の形態に係る制御装置の変形例を模式的に例示する。
【発明を実施するための形態】
【００２４】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００２５】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る制御装置１及び学習装置２の適用場面の一例を模式的に例示する。
【００２６】
図１に示されるとおり、本実施形態に係る制御装置１は、ロボットＲの動作を制御するように構成されたコンピュータである。図１の例では、ロボットＲは、自律的に動作可能に構成された自律ロボットである。このロボットＲは、本発明の「ロボット」の一例である。ただし、制御装置１を適用可能なロボットは、このような自律ロボットに限られる訳ではなく、実施の形態に応じて適宜選択されてよい。
【００２７】
本実施形態に係る制御装置１は、ロボットＲの周囲の環境が写る画像データ、及びロボットＲの周囲で発生した周囲音を含む音データを取得する。本実施形態では、ロボットＲが、カメラ３１及びマイク３２を備えており、このカメラ３１及びマイク３２により、画像データ及び音データが取得される。
【００２８】
次に、制御装置１は、画像及び音に反映された状況に応じてロボットＲの動作内容を決定するための機械学習を行った学習済みの学習器（後述するニューラルネットワーク６）に画像データ及び音データを入力し、学習済みの学習器の演算処理を実行する。これにより、制御装置１は、ロボットＲの動作の内容を規定する動作コマンドを学習済みの学習器から取得する。そして、制御装置１は、取得した動作コマンドに基づいて、ロボットＲの動作を制御する。
【００２９】
一方、本実施形態に係る学習装置２は、制御装置１で利用する学習器を構築する、すなわち、入力された画像データ及び音データに反映された状況に応じてロボットＲの動作コマンドを出力するように学習器の機械学習を行うコンピュータである。具体的には、学習装置２は、画像データ及び音データと動作コマンドとの組み合わせを学習用データセットとして取得する。これらのうち、画像データ及び音データは入力データ（訓練データ）として利用され、動作コマンドは教師データ（正解データ）として利用される。つまり、学習装置２は、画像データ及び音データを入力すると動作コマンドに対応する出力値を出力するように学習器（後述するニューラルネットワーク７）を学習させる。
【００３０】
これにより、制御装置１で利用する学習済みの学習器を生成することができる。制御装置１は、例えば、ネットワークを介して、学習装置２により作成された学習済みの学習器を取得することができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【００３１】
以上のとおり、本実施形態によれば、学習済みの学習器を利用することで、得られた画像データ及び音データに反映された状況に応じて、ロボットＲの動作の内容を規定する動作コマンドを得ることができる。そのため、画像及び音入力という簡易な入力に基づいて、ロボットＲの動作を制御することができるようになる。また、入力に利用される、ロボットＲの周囲の環境が写る画像データ、及びロボットＲの周囲で発生した周囲音を含む音データによれば、ロボットＲの置かれた状況を適切に判定することができる。したがって、本実施形態によれば、ユーザＵは、簡易な入力に基づいて、ロボットＲを適切に制御することができる。
【００３２】
なお、ロボットＲの周囲とは、ロボットＲの動作及び指揮系統の少なくとも一方に影響ある範囲であってよく、例えば、ロボットＲが動作する範囲、ロボットＲに動作を指示するユーザＵの存在する範囲等を含んでもよい。また、音データに含まれる周囲音は、ロボットＲの周囲で取得可能なあらゆる音を含んでもよく、例えば、ユーザＵ等の人間がロボットＲに対して発した音声、人間以外（例えば、機械、ペット動物）がロボットＲに対して発した音、ロボットＲの周囲の環境で発生したそれら以外の環境音等を含んでもよい。「学習済みの学習器」は、「識別器」又は「分類器」と称されてもよい。
【００３３】
§２  構成例
［ハードウェア構成］
＜制御装置＞
次に、図２を用いて、本実施形態に係る制御装置１のハードウェア構成の一例について説明する。図２は、本実施形態に係る制御装置１のハードウェア構成の一例を模式的に例示する。
【００３４】
図２に示されるとおり、本実施形態に係る制御装置１は、制御部１１、記憶部１２、及び外部インタフェース１３が電気的に接続されたコンピュータである。なお、図２では、外部インタフェースを「外部Ｉ／Ｆ」と記載している。
【００３５】
制御部１１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部１２は、メモリの一例であり、例えば、ＲＡＭ、ＲＯＭ等で構成される。本実施形態では、記憶部１２は、制御プログラム１２１、学習結果データ１２２等の各種情報を記憶する。
【００３６】
制御プログラム１２１は、ロボットＲを制御する後述の情報処理（図６）を制御装置１に実行させるためのプログラムであり、当該情報処理の一連の命令を含む。学習結果データ１２２は、学習済みの学習器の設定を行うためのデータである。詳細は後述する。
【００３７】
外部インタフェース１３は、外部装置と接続するためのインタフェースであり、接続する外部装置に応じて適宜構成される。本実施形態では、外部インタフェース１３は、カメラ３１及びマイク３２を備えるロボットＲとの接続に利用される。これにより、制御装置１は、外部インタフェース１３を介して、カメラ３１及びマイク３２から画像データ及び音データを取得する。また、制御装置１は、外部インタフェース１３を介して、動作コマンドに基づく制御信号をロボットＲに送信することで、ロボットＲの動作を制御する。
【００３８】
ロボットＲの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、ロボットＲは、制御装置１により直接制御されてよい。また、ロボットＲは、コントローラ（不図示）を内蔵してもよい。コントローラは、制御装置１から受信した制御信号、プログラムの処理等に基づいて、ロボットＲの動作を制御するように適宜構成される。
【００３９】
カメラ３１及びマイク３２の種類はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。カメラ３１は、ロボットＲの周囲の環境を撮影可能に配置され、マイク３２は、ロボットＲの周囲で発生した周囲音を取得可能に配置される。図１及び図２の例では、カメラ３１及びマイク３２は、ロボットＲに内蔵されている。しかしながら、カメラ３１及びマイク３２の配置は、このような例に限られなくてもよく、ロボットＲの外部に配置されてもよい。
【００４０】
外部インタフェース１３には、上記以外の外部装置が接続されてよい。例えば、外部インタフェース１３には、ネットワークを介してデータ通信を行うための通信モジュールが接続されてもよい。外部インタフェース１３に接続する外部装置は、上記の各装置に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。また、図２の例では、制御装置１は、１つの外部インタフェース１３を備えている。しかしながら、外部インタフェース１３は、接続する外部装置毎に設けられてもよい。外部インタフェース１３の数は、実施の形態に応じて適宜選択可能である。
【００４１】
なお、制御装置１の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部１１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ（field-programmable gate array）、ＥＣＵ（Electronic Control Unit）等で構成されてよい。記憶部１２は、制御部１１に含まれるＲＡＭ及びＲＯＭにより構成されてもよい。記憶部１２は、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置で構成されてもよい。また、制御装置１には、提供されるサービス専用に設計された情報処理装置の他に、汎用のデスクトップＰＣ（Personal Computer）、ノートＰＣ、タブレットＰＣ、スマートフォンを含む携帯電話等が用いられてよい。
【００４２】
＜学習装置＞
次に、図３を用いて、本実施形態に係る学習装置２のハードウェア構成の一例について説明する。図３は、本実施形態に係る学習装置２のハードウェア構成の一例を模式的に例示する。
【００４３】
図３に示されるとおり、本実施形態に係る学習装置２は、制御部２１、記憶部２２、通信インタフェース２３、入力装置２４、出力装置２５、及びドライブ２６が電気的に接続されたコンピュータである。なお、図３では、通信インタフェースを「通信Ｉ／Ｆ」と記載している。
【００４４】
制御部２１は、上記制御部１１と同様に、ハードウェアプロセッサであるＣＰＵ、ＲＡＭ、ＲＯＭ等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部２２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部２２は、制御部２１で実行される学習プログラム２２１、学習器の機械学習に利用する学習用データセット２２２、学習プログラム２２１を実行して作成した学習結果データ１２２等の各種情報を記憶する。
【００４５】
学習プログラム２２１は、後述する機械学習の処理（図７）を学習装置２に実行させ、当該機械学習の結果として学習結果データ１２２を生成させるためのプログラムである。学習用データセット２２２は、画像及び音に反映された状況に応じてロボットＲの動作内容を決定する能力を学習器に獲得させるための機械学習に利用されるデータである。詳細は後述する。
【００４６】
通信インタフェース２３は、例えば、有線ＬＡＮ（Local Area Network）モジュール、無線ＬＡＮモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置２は、当該通信インタフェース２３を介して、作成した学習結果データ１２２を外部の装置に配信してもよい。
【００４７】
入力装置２４は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置２５は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置２４及び出力装置２５を介して、学習装置２を操作することができる。
【００４８】
ドライブ２６は、例えば、ＣＤドライブ、ＤＶＤドライブ等であり、記憶媒体９２に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ２６の種類は、記憶媒体９２の種類に応じて適宜選択されてよい。上記学習プログラム２２１及び学習用データセット２２２は、この記憶媒体９２に記憶されていてもよい。
【００４９】
記憶媒体９２は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置２は、この記憶媒体９２から、上記学習プログラム２２１及び学習用データセット２２２を取得してもよい。
【００５０】
ここで、図３では、記憶媒体９２の一例として、ＣＤ、ＤＶＤ等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体９２の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【００５１】
なお、学習装置２の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部２１は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、ＦＰＧＡ、ＥＣＵ等で構成されてよい。学習装置２は、複数台の情報処理装置で構成されてもよい。また、学習装置２には、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、ＰＣ等が用いられてもよい。
【００５２】
［ソフトウェア構成］
＜制御装置＞
次に、図４を用いて、本実施形態に係る制御装置１のソフトウェア構成の一例について説明する。図４は、本実施形態に係る制御装置１のソフトウェア構成の一例を模式的に例示する。
【００５３】
制御装置１の制御部１１は、記憶部１２に記憶された制御プログラム１２１をＲＡＭに展開する。そして、制御部１１は、ＲＡＭに展開された制御プログラム１２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図４に示されるとおり、本実施形態に係る制御装置１は、データ取得部１１１、動作決定部１１２、及び動作制御部１１３をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部１１（ＣＰＵ）により実現される。
【００５４】
データ取得部１１１は、ロボットＲの周囲の環境が写る画像データ５１、及びロボットＲの周囲で発生した周囲音を含む音データ５２を取得する。動作決定部１１２は、画像及び音に反映された状況に応じてロボットＲの動作内容を決定するための機械学習を行った学習済みのニューラルネットワーク６を学習済みの学習器として含む。ニューラルネットワーク６は、本発明の「学習器」の一例である。動作決定部１１２は、学習済みのニューラルネットワーク６に画像データ５１及び音データ５２を入力し、学習済みのニューラルネットワーク６の演算処理を実行することで、ロボットＲの動作の内容を規定する動作コマンド５３を学習済みのニューラルネットワーク６から取得する。動作制御部１１３は、取得した動作コマンド５３に基づいて、ロボットＲの動作を制御する。
【００５５】
なお、動作コマンド５３の形式及び内容は、実施の形態に応じて適宜決定されてよい。例えば、動作コマンド５３は、ロボットＲの駆動部又は関節の駆動量を指定するように構成されてよい。動作制御部１１３は、動作コマンド５３に基づく制御信号をロボットＲに送信して、動作コマンド５３に対応する動作をロボットＲに実行させる。これにより、動作制御部１１３は、ロボットＲの動作を制御する。
【００５６】
（学習器）
次に、学習器の一例であるニューラルネットワーク６について説明する。図４に示されるとおり、本実施形態に係るニューラルネットワーク６は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層６１、中間層（隠れ層）６２、及び出力層６３を備えている。
【００５７】
なお、図４の例では、ニューラルネットワーク６は、１層の中間層６２を備えており、入力層６１の出力が中間層６２に入力され、中間層６２の出力が出力層６３に入力されている。ただし、中間層６２の数は、１層に限られなくてもよく、ニューラルネットワーク６は、２層以上の中間層６２を備えてもよい。
【００５８】
各層６１〜６３は、１又は複数のニューロンを備えている。例えば、入力層６１のニューロンの数は、画像データ５１及び音データ５２に応じて設定することができる。中間層６２のニューロンの数は、実施の形態に応じて適宜設定することができる。また、出力層６３のニューロンの数は、動作コマンド５３の種類数に応じて設定することができる。
【００５９】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）は機械学習の結果に基づいて設定される。図４の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。また、機械学習の結果に基づいて、各ニューロンには閾値が設定される。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。
【００６０】
動作決定部１１２は、画像データ５１及び音データ５２を入力層６１に入力し、ニューラルネットワーク６の演算処理として各層に含まれる各ニューロンの発火判定を入力側から順に行う。これにより、動作決定部１１２は、動作コマンド５３に対応する出力値を出力層６３から取得する。
【００６１】
なお、このようなニューラルネットワーク６の構成（例えば、各ネットワークの層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習結果データ１２２に含まれている。動作決定部１１２は、学習結果データ１２２を参照して、画像データ及び音データに反映された状況に応じてロボットＲの動作コマンドを決定する処理に用いる学習済みのニューラルネットワーク６の設定を行う。
【００６２】
＜学習装置＞
次に、図５を用いて、本実施形態に係る学習装置２のソフトウェア構成の一例について説明する。図５は、本実施形態に係る学習装置２のソフトウェア構成の一例を模式的に例示する。
【００６３】
学習装置２の制御部２１は、記憶部２２に記憶された学習プログラム２２１をＲＡＭに展開する。そして、制御部２１は、ＲＡＭに展開された学習プログラム２２１をＣＰＵにより解釈及び実行して、各構成要素を制御する。これによって、図５に示されるとおり、本実施形態に係る学習装置２は、学習データ取得部２１１、及び学習処理部２１２をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、各ソフトウェアモジュールは、制御部２１（ＣＰＵ）により実現される。
【００６４】
学習データ取得部２１１は、ロボットＲの周囲の環境が写る画像データ２２３、及びロボットＲの周囲で発生した周囲音を含む音データ２２４と、画像データ２２３及び音データ２２４に反映された状況に応じた動作コマンド２２５との組み合わせを学習用データセット２２２として取得する。画像データ２２３及び音データ２２４は入力データ（訓練データ）として利用され、動作コマンド２２５は教師データ（正解データ）として利用される。学習処理部２１２は、画像データ２２３及び音データ２２４を入力すると、動作コマンド２２５に対応する出力値を出力するようにニューラルネットワーク７の機械学習を行う。
【００６５】
ニューラルネットワーク７は、学習対象となる学習器の一例である。ニューラルネットワーク７は、上記ニューラルネットワーク６と同様に構成される。すなわち、ニューラルネットワーク７は、入力層７１、中間層（隠れ層）７２、及び出力層７３を備える。各層７１〜７３は、上記ニューラルネットワーク６の各層６１〜６３と同様に構成される。
【００６６】
学習処理部２１２は、ニューラルネットワークの学習処理により、画像データ２２３及び音データ２２４が入力層７１に入力されると、動作コマンド２２５に対応する出力値を出力層７３から出力するようにニューラルネットワーク７を学習させる。これにより、学習済みのニューラルネットワーク６が構築される。そして、学習処理部２１２は、学習後のニューラルネットワーク７（すなわち、学習済みのニューラルネットワーク６）の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ１２２として記憶部２２に格納する。
【００６７】
つまり、画像及び音に反映された状況に応じてロボットＲの動作内容を決定する能力をニューラルネットワーク７に習得させるため、学習用データセット２２２は、画像データ２２３及び音データ２２４と、画像データ２２３及び音データ２２４に反映された状況に応じた所望の動作コマンド２２５との組み合わせにより構成される。画像データ２２３及び音データ２２４と所望の動作コマンド２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。
【００６８】
例えば、学習処理部２１２は、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、ロボットＲの動作を停止させることを決定するように学習済みのニューラルネットワーク６を構築してもよい。動作の停止は、ロボットＲの一部の動作を停止させることであってもよいし、ロボットＲの全部の動作を完全に停止させることであってもよい。ロボットＲの一部は、例えば、複数の駆動部をロボットＲが備える場合、その複数の駆動部の一部である。
【００６９】
この場合、画像データ２２３及び音データ２２４の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、動作の停止を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、ロボットＲの動作を停止させることを決定する学習済みのニューラルネットワーク６を構築することができる。
【００７０】
危険を知らせるシグナルは、まさに危険が生じていること、危険の予兆があること等の危険が生じている又は生じる可能性があることを特定可能なシグナルであり、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。危険を知らせるシグナルは、例えば、ユーザにより発せられた危険を知らせる音声、危険を知らせる警告音、ユーザの危険を知らせるジェスチャ、ロボットＲの動作範囲に障害物が侵入したこと、その他の危険と指定されたシーン等であってよい。危険を知らせる警告音は、例えば、ビープ音等である。また、障害物は、ユーザ等の人間、人間以外の生物、又は生物以外の物体であってもよい。
【００７１】
ユーザにより発せられた危険を知らせる音声を含む音データ２２４と動作の停止を指示する動作コマンド２２５とを組み合わせた場合、学習処理部２１２は、ユーザにより発せられた危険を知らせる音声がシグナルとして音に含まれていることに応じて、ロボットＲの動作を停止させることを決定する学習済みのニューラルネットワーク６を構築することができる。同様に、ユーザの危険を知らせるジェスチャの写る画像データ２２３と動作の停止を指示する動作コマンド２２５とを組み合わせた場合、学習処理部２１２は、ユーザの危険を知らせるジェスチャがシグナルとして画像に含まれていることに応じて、ロボットＲの動作を停止させることを決定する学習済みのニューラルネットワーク６を構築することができる。
【００７２】
また、例えば、学習処理部２１２は、画像及び音の少なくとも一方に表れる人物（例えば、ユーザ）の状態に応じてロボットＲの動作内容を決定するように学習済みニューラルネットワーク６を構築してもよい。この場合、画像データ２２３及び音データ２２４の少なくとも一方に表れる人物の状態に応じて所望の動作を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像及び音の少なくとも一方に表れる人物の状態に応じてロボットＲの動作内容を決定する学習済みニューラルネットワーク６を構築することができる。
【００７３】
人物の状態に対応付けるロボットＲの動作の内容は、実施の形態に応じて適宜決定されてよい。一例として、学習処理部２１２は、画像及び音の少なくとも一方に表れる人物の感情に応じてロボットＲの動作内容を決定するように学習済みのニューラルネットワーク６を構築してもよい。
【００７４】
この場合、画像データ２２３及び音データ２２４の少なくとも一方に表れる人物の感情に応じて所望の動作を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像及び音の少なくとも一方に表れる人物の感情に応じてロボットＲの動作内容を決定する学習済みのニューラルネットワーク６を構築することができる。
【００７５】
人物の感情に対応付けるロボットＲの動作の内容は、実施の形態に応じて適宜決定されてよい。一例として、学習処理部２１２は、画像及び音の少なくとも一方に人物の恐怖の感情が表れていることに応じて、ロボットＲの動作を軽減又は停止させることを決定するように学習済みのニューラルネットワーク６を構築してもよい。動作の軽減は、動作の停止と同様に、ロボットＲの一部の動作を弱めることであってもよいし、ロボットＲの全部の動作を適宜弱めることであってもよい。
【００７６】
この場合、画像データ２２３及び音データ２２４の少なくとも一方に人物の恐怖の感情が表れていることに応じて、動作の軽減又は停止を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられる。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像及び音の少なくとも一方に人物の恐怖の感情が表れていることに応じて、ロボットＲの動作を軽減又は停止させることを決定する学習済みのニューラルネットワーク６を構築することができる。
【００７７】
恐怖の感情は、例えば、人物の表情、声色等から特定されてよい。すなわち、恐怖の表情を浮かべている人物の写る画像データ２２３とロボットＲの動作を軽減又は停止を指示する動作コマンド２２５とが組み合せられてもよい。また、悲鳴等の恐怖から発せられた音声を含む音データ２２４とロボットＲの動作を軽減又は停止を指示する動作コマンド２２５とが組み合せられてもよい。このような学習用データセット２２２を機械学習に利用することにより、学習処理部２１２は、画像及び音の少なくとも一方に人物の恐怖の感情が表れていることに応じて、ロボットＲの動作を軽減又は停止させることを決定する学習済みのニューラルネットワーク６を構築することができる。
【００７８】
ただし、人物の感情とロボットＲの動作の内容との対応関係は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、子供の泣き顔の写る画像データ２２３又は子供の泣き声を含む音データ２２４と子供をあやす動作を指示する動作コマンド２２５とが組み合せられてもよい。このような学習用データセット２２２を機械学習に利用することで、学習処理部２１２は、画像及び音の少なくとも一方に子供の泣いているシーンが表れることに応じて、その子供をあやす動作を行うこと決定する学習済みのニューラルネットワーク６を構築することができる。
【００７９】
また、人物の状態とロボットＲの動作内容との対応関係は、このような感情に応じて動作内容を決定する例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、人物が倒れているシーンの写る画像データ２２３とその人物を介抱する又は救急の通報を行う動作を指示する動作コマンド２２５とが組み合せられてもよい。このような学習用データセット２２２を機械学習に利用することで、学習処理部２１２は、人物の倒れているシーンが画像に表れることに応じて、その人物を介抱する又は救急の通報を行うことを決定する学習済みのニューラルネットワーク６を構築することができる。
【００８０】
以上のとおり、画像データ２２３及び音データ２２４と所望の動作コマンド２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。なお、制御に利用する画像データ５１及び音データ５２と学習に利用する画像データ２２３及び音データ２２４とを呼び分ける場合、画像データ５１及び音データ５２はそれぞれ「第１画像データ」及び「第１音データ」と称し、画像データ２２３及び音データ２２４をそれぞれ「第２画像データ」及び「第２音データ」と称してもよい。
【００８１】
＜その他＞
制御装置１及び学習装置２の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、制御装置１及び学習装置２の各ソフトウェアモジュールがいずれも汎用のＣＰＵによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、制御装置１及び学習装置２それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【００８２】
§３  動作例
［制御装置］
次に、図６を用いて、制御装置１の動作例について説明する。図６は、制御装置１の処理手順の一例を例示するフローチャートである。以下で説明する処理手順は、本発明の「制御方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００８３】
（ステップＳ１０１）
ステップＳ１０１では、制御部１１は、データ取得部１１１として動作し、ロボットＲの周囲の環境が写る画像データ５１、及びロボットＲの周囲で発生した周囲音を含む音データ５２を取得する。画像データ５１は、動画像データであってもよいし、静止画像データであってもよい。
【００８４】
本実施形態では、制御装置１は、外部インタフェース１３を介してカメラ３１及びマイク３２と間接的に接続されている。そのため、制御部１１は、カメラ３１及びマイク３２から画像データ５１及び音データ５２を取得する。画像データ５１及び音データ５２を取得すると、制御部１１は、次のステップＳ１０２に処理を進める。
【００８５】
ただし、画像データ５１及び音データ５２を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御装置１とは異なる他の情報処理装置が、カメラ３１及びマイク３２に接続されていてもよい。この場合、制御装置１は、他の情報処理装置からの画像データ５１及び音データ５２の送信を受け付けることで、画像データ５１及び音データ５２を取得してもよい。
【００８６】
（ステップＳ１０２及びＳ１０３）
ステップＳ１０２では、制御部１１は、動作決定部１１２として動作し、学習済みのニューラルネットワーク６に画像データ５１及び音データ５２を入力し、学習済みのニューラルネットワーク６の演算処理を実行する。これにより、ステップＳ１０３では、制御部１１は、動作コマンド５３に対応する出力値を学習済みのニューラルネットワーク６から取得する。
【００８７】
具体的には、制御部１１は、ステップＳ１０１で取得した画像データ５１及び音データ５２を入力層６１に入力する。そして、制御部１１は、入力側から順に、各層６１〜６３に含まれる各ニューロンの発火判定を行う。これにより、制御部１１は、動作コマンド５３に対応する出力値を出力層６３から取得する。
【００８８】
なお、出力層６３から得られる出力値の形式は、実施の形態に応じて適宜選択されてよい。例えば、出力層６３から得られる出力値は、そのまま動作コマンド５３として利用されてもよい。また、例えば、出力層６３から得られる出力値は、動作コマンド５３のインデックスを示してもよい。この場合、制御装置１は、出力層６３から得られる出力値と動作コマンド５３とを対応付けたテーブル形式等の参照情報（不図示）を記憶部１２に保持していてもよい。制御部１１は、ステップＳ１０３において、参照情報を参照することにより、出力層６３から得られた出力値に対応する動作コマンド５３を特定することができる。動作コマンド５３を取得すると、制御部１１は、次のステップＳ１０４に処理を進める。
【００８９】
（ステップＳ１０４）
ステップＳ１０４では、制御部１１は、動作制御部１１３として動作し、ステップＳ１０３で取得した動作コマンド５３に基づいて、ロボットＲの動作を制御する。本実施形態では、制御部１１は、外部インタフェース１３を介して、動作コマンド５３に対応する制御信号をロボットＲに送信することで、動作コマンド５３に対応する動作をロボットＲに実行させる。この動作コマンド５３に基づいてロボットＲの動作を制御することには、ロボットＲの実行中の動作を維持すること、ロボットＲの実行する動作を変更すること、ロボットＲに所定の動作の実行を開始させること、ロボットＲに実行中の動作を停止させること等が含まれてよい。
【００９０】
上記のとおり、学習済みのニューラルネットワーク６は、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、ロボットＲの動作を停止させることを決定するように構築されていてもよい。この場合、ステップＳ１０１で取得した画像データ５１及び音データ５２の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、制御部１１は、ステップＳ１０３において、動作の停止を指示する動作コマンド５３を取得することができる。これにより、本ステップＳ１０４では、制御部１１は、実行中の動作を停止させるようにロボットＲを制御することができる。
【００９１】
例えば、制御部１１は、ユーザＵにより発せられた危険を知らせる音声が危険を知らせるシグナルとして音データ５２に含まれていることに応じて、ロボットＲの動作を停止させることができる。また、例えば、制御部１１は、ユーザＵの危険を知らせるジェスチャがシグナルとして画像データ５１に写っていることに応じて、ロボットＲの動作を停止させることができる。
【００９２】
また、学習済みのニューラルネットワーク６は、画像及び音の少なくとも一方に表れる人物の状態に応じてロボットＲの動作内容を決定するように構築されていてもよい。この場合、上記ステップＳ１０３において、制御部１１は、ステップＳ１０１で取得した画像データ５１及び音データ５２の少なくとも一方に表れる人物の状態に応じた動作コマンド５３を取得することができる。人物は、例えば、ユーザＵ、ロボットＲの近傍に存在するユーザＵ以外の人物等である。これにより、本ステップＳ１０４では、制御部１１は、人物の状態に応じてロボットＲの動作を制御することができる。
【００９３】
例えば、制御部１１は、画像データ５１及び音データ５２の少なくとも一方に表れる人物の感情に応じた動作を行うようにロボットＲを制御することができる。具体例として、制御部１１は、画像データ５１及び音データ５２の少なくとも一方に人物の恐怖の感情が表れていることに応じて、実行中の動作を軽減又は停止させるようにロボットＲを制御することができる。
【００９４】
これにより、ロボットＲの動作を制御すると、制御部１１は、本動作例に係る処理を終了する。この後、制御部１１は、ステップＳ１０１から一連の処理を繰り返すことで、ロボットＲの動作を継続的に制御してもよい。
【００９５】
［学習装置］
次に、図７を用いて、学習装置２の動作例について説明する。図７は、学習装置２の処理手順の一例を例示するフローチャートである。なお、以下で説明する学習器の機械学習に関する処理手順は、コンピュータによる学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００９６】
（ステップＳ２０１）
ステップＳ２０１では、制御部２１は、学習データ取得部２１１として動作し、画像データ２２３及び音データ２２４と動作コマンド２２５との組み合わせを学習用データセット２２２として取得する。
【００９７】
学習用データセット２２２は、画像及び音に反映された状況に応じてロボットＲの動作内容を決定する能力をニューラルネットワーク７に習得させるための機械学習に利用される。このような学習用データセット２２２は、実施の形態に応じて適宜生成されてよい。例えば、カメラ３１及びマイク３２を用意し、ロボットＲの利用シーンに応じて様々な条件で画像データ２２３及び音データ２２４を取得する。そして、得られた画像データ２２３及び音データ２２４に対して、画像データ２２３及び音データ２２４に反映された状況に応じた所望の動作コマンド２２５を組み合わせる。これにより、学習用データセット２２２を生成することができる。
【００９８】
この学習用データセット２２２の生成は、学習装置２により行われてもよい。この場合、制御部２１は、オペレータによる入力装置２４の操作に応じて、学習用データセット２２２を生成してもよい。また、制御部２１は、学習プログラム２２１の処理により、学習用データセット２２２を自動的に生成してもよい。この生成処理を実行することで、本ステップＳ２０１では、制御部２１は、学習用データセット２２２を取得することができる。
【００９９】
また、学習用データセット２２２の生成は、学習装置２以外の他の情報処理装置により行われてもよい。他の情報処理装置では、学習用データセット２２２は、オペレータにより手動で生成されてもよいし、プログラムの処理により自動的に生成されてもよい。この場合、本ステップＳ２０１では、制御部２１は、ネットワーク、記憶媒体９２等を介して、他の情報処理装置により生成された学習用データセット２２２を取得してもよい。
【０１００】
本ステップＳ２０１で取得する学習用データセット２２２の件数は、実施の形態に応じて適宜決定されてよく、例えば、ニューラルネットワーク７の機械学習を実施可能な程度に適宜決定されてよい。これにより、学習用データセット２２２を取得すると、制御部２１は、次のステップＳ２０２に処理を進める。
【０１０１】
なお、上記のとおり、学習用データセット２２２における画像データ２２３及び音データ２２４と所望の動作コマンド２２５との組み合わせは、実施の形態に応じて適宜決定されてよい。
【０１０２】
例えば、画像データ２２３及び音データ２２４の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、動作の停止を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられてよい。具体例として、ユーザにより発せられた危険を知らせる音声を含む音データ２２４と動作の停止を指示する動作コマンド２２５とが組み合せられてもよい。また、ユーザの危険を知らせるジェスチャの写る画像データ２２３と動作の停止を指示する動作コマンド２２５とが組み合せられてもよい。
【０１０３】
また、例えば、画像データ２２３及び音データ２２４の少なくとも一方に表れる人物の状態に応じて所望の動作を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられてよい。人物の状態の一例として、画像データ２２３及び音データ２２４の少なくとも一方に表れる人物の感情に応じて所望の動作を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられてよい。具体例として、画像データ２２３及び音データ２２４の少なくとも一方に人物の恐怖の感情が表れていることに応じて、動作の軽減又は停止を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられてよい。
【０１０４】
（ステップＳ２０２）
ステップＳ２０２では、制御部２１は、学習処理部２１２として動作し、ステップＳ２０１で取得した学習用データセット２２２を用いて、画像データ２２３及び音データ２２４を入力層７１に入力すると、動作コマンド２２５に対応する出力値を出力層７３から出力するようにニューラルネットワーク７の機械学習を実施する。
【０１０５】
具体的には、まず、制御部２１は、学習処理を行う対象となるニューラルネットワーク７を用意する。用意するニューラルネットワーク７の構成、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部２１は、再学習を行う対象となる学習結果データ１２２に基づいて、ニューラルネットワーク７を用意してもよい。
【０１０６】
次に、制御部２１は、ステップＳ２０１で取得した学習用データセット２２２に含まれる画像データ２２３及び音データ２２４を入力データとして用い、動作コマンド２２５を教師データとして用いて、ニューラルネットワーク７の学習処理を実行する。このニューラルネットワーク７の学習処理には、確率的勾配降下法等が用いられてよい。
【０１０７】
例えば、制御部２１は、画像データ２２３及び音データ２２４を入力層７１に入力し、入力側から順に各層７１〜７３に含まれる各ニューロンの発火判定を行う。これにより、制御部２１は、出力層７３から出力値を得る。次に、制御部２１は、出力層７３から得た出力値と動作コマンド２２５に対応する値との誤差を算出する。続いて、制御部２１は、誤差逆伝搬（Back propagation）法により、算出した出力値の誤差を用いて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの誤差を算出する。そして、制御部２１は、算出した各誤差に基づいて、各ニューロン間の結合の重み及び各ニューロンの閾値それぞれの値の更新を行う。
【０１０８】
制御部２１は、各件の学習用データセット２２２について、ニューラルネットワーク７から出力される出力値が動作コマンド２２５に対応する値と一致するまでこの一連の処理を繰り返す。これにより、制御部２１は、画像データ２２３及び音データ２２４を入力すると動作コマンド２２５に対応する出力値を出力するニューラルネットワーク７（すなわち、学習済みのニューラルネットワーク６）を構築することができる。
【０１０９】
例えば、危険を知らせるシグナルを少なくとも一方に含んでいる画像データ２２３及び音データ２２４と動作の停止を指示する動作コマンド２２５とが組み合せられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像及び音の少なくとも一方に危険を知らせるシグナルが含まれていることに応じて、ロボットＲの動作を停止させることを決定するニューラルネットワーク７を構築することができる。
【０１１０】
また、例えば、画像データ２２３及び音データ２２４の少なくとも一方に表れる人物の状態に応じて所望の動作を指示する動作コマンド２２５が、当該画像データ２２３及び音データ２２４に組み合わせられた学習用データセット２２２を利用したケースを想定する。この場合には、本ステップＳ２０２により、制御部２１は、画像及び音の少なくとも一方に表れる人物の状態に応じてロボットＲの動作内容を決定するニューラルネットワーク７を構築することができる。ニューラルネットワーク７の学習処理が完了すると、制御部２１は、次のステップＳ２０３に処理を進める。
【０１１１】
（ステップＳ２０３）
ステップＳ２０３では、制御部２１は、学習処理部２１２として動作して、機械学習後のニューラルネットワーク７の構成、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報を学習結果データ１２２として記憶部２２に格納する。これにより、制御部２１は、本動作例に係るニューラルネットワーク７の学習処理を終了する。
【０１１２】
なお、制御部２１は、上記ステップＳ２０３の処理が完了した後に、作成した学習結果データ１２２を制御装置１に転送してもよい。また、制御部２１は、上記ステップＳ２０１〜Ｓ２０３の学習処理を定期的に実行することで、学習結果データ１２２を定期的に更新してもよい。そして、制御部２１は、作成した学習結果データ１２２を学習処理の実行毎に制御装置１に転送することで、制御装置１の保持する学習結果データ１２２を定期的に更新してもよい。また、例えば、制御部２１は、作成した学習結果データ１２２をＮＡＳ（Network Attached Storage）等のデータサーバに保管してもよい。この場合、制御装置１は、このデータサーバから学習結果データ１２２を取得してもよい。また、学習装置２により作成された学習結果データ１２２は、制御装置１に予め組み込まれてもよい。
【０１１３】
［特徴］
以上のように、本実施形態に係る制御装置１は、上記ステップＳ１０１の処理により、ロボットＲの周囲の環境が写る画像データ５１、及びロボットＲの周囲で発生した周囲音を含む音データ５２を取得する。そして、制御装置１は、上記ステップＳ１０２及びＳ１０３において、画像データ５１及び音データ５２を学習済みのニューラルネットワーク６に入力することで、ロボットＲに対する動作コマンド５３を決定する。この学習済みのニューラルネットワーク６は、上記学習装置２により、画像データ２２３及び音データ２２４と動作コマンド２２５との組み合わせで構成された学習用データセット２２２を利用した機械学習（教師あり学習）によって生成される。
【０１１４】
したがって、本実施形態によれば、学習済みのニューラルネットワークとロボットＲの周囲の状況が反映された画像データ及び音データとを用いることで、ロボットＲの周囲の状況に応じて当該ロボットＲの動作の内容を決定することができる。そのため、画像及び音入力という簡易な入力に基づいて、ロボットＲの動作を制御することができるようになる。また、入力に利用される、ロボットＲの周囲の環境が写る画像データ、及びロボットＲの周囲で発生した周囲音を含む音データによれば、ロボットＲの置かれた状況を適切に判定することができる。したがって、本実施形態によれば、ユーザＵは、簡易な入力に基づいて、ロボットＲを適切に制御することができる。
【０１１５】
§４  変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
【０１１６】
＜４．１＞
上記実施形態では、制御装置１は、自律的に動作可能に構成されたロボットＲを制御している。しかしながら、制御の対象となるロボットは、上記ロボットＲのような自律ロボットに限られなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御装置１は、生産ラインにおける産業用ロボット、自動運転可能に構成された車両の制御に利用されてもよい。
【０１１７】
図８は、自動運転可能に構成された車両ＲＡの動作を制御装置１により制御する場面を例示する。この場合、カメラ３１及びマイク３２は、運転席に着いた運転者ＵＡ、運転席以外の席に着いた運転者ＵＡ以外の乗員に向けて配置されてよい。これにより、カメラ３１及びマイク３２は、車両ＲＡ内の乗員の状況が反映された画像データ及び音データを取得することができる。
【０１１８】
このケースにおいて、学習済みのニューラルネットワーク６を上記の実施形態と同様に構築した場合には、制御装置１は、乗員が危険を知らせるシグナルを発したことに応じて、車両ＲＡの動作を停止する、すなわち、車両ＲＡを停車させることができる。また、制御装置１は、乗員が恐怖の感情を表したことに応じて、車両ＲＡの走行速度を落としたり、車両ＲＡを停車させたりすることができる。なお、カメラ３１及びマイク３２の少なくとも一方は、車外に向けて配置されてもよい。この場合、制御装置１は、車外の状況に応じて車両ＲＡの動作を制御することができる。
【０１１９】
また、図９は、生産ラインにおける産業用ロボットＲＢの動作を制御装置１により制御する場面を例示する。この場合、カメラ３１及びマイク３２は、例えば、産業用ロボットＲＢと共に作業を行う作業員ＵＢに向けて配置されてよい。これにより、カメラ３１及びマイク３２は、産業用ロボットＲＢと共に作業を行う作業員ＵＢ及びその周囲の状況が反映された画像データ及び音データを取得することができる。
【０１２０】
このケースにおいて、学習済みのニューラルネットワーク６を上記の実施形態と同様に構築した場合には、制御装置１は、作業員ＵＢが危険を知らせるシグナルを発したことに応じて、産業用ロボットＲＢの動作を停止することができる。また、制御装置１は、作業員ＵＢが恐怖の感情を表したことに応じて、産業用ロボットＲＢの動作速度を落としたり、産業用ロボットＲＢの動作を停止させたりすることができる。
【０１２１】
＜４．２＞
上記実施形態では、各ニューラルネットワーク（６、７）は、全結合ニューラルネットワークである。しかしながら、各ニューラルネットワーク（６、７）の構成及び種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各ニューラルネットワーク（６、７）は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等により構成されてよい。
【０１２２】
＜４．３＞
上記実施形態では、学習器の一例として、ニューラルネットワークを利用している。しかしながら、学習器の種類は、画像データ及び音データを入力として利用可能であれば、ニューラルネットワークに限られなくてもよく、実施の形態に応じて適宜選択されてよい。利用可能な学習器として、例えば、サポートベクターマシン、自己組織化マップ、強化学習により機械学習を行う学習器等を挙げることができる。
【０１２３】
＜４．４＞
上記実施形態では、制御装置１は、ロボットＲに直接接続されている。そのため、制御装置１は、外部インタフェース１３を介して接続されたロボットＲを直接制御している。しかしながら、ロボットＲを制御する形態は、このような例に限定されなくてもよい。例えば、制御装置１とロボットＲとはネットワークを介して接続されてもよい。この場合、ロボットＲは、動作を制御するためのコントローラを備えてもよく、制御装置１は、ネットワークを介してロボットＲのコントローラに制御信号を送信することで、ロボットＲの動作を制御してもよい。
【０１２４】
＜４．５＞
上記実施形態では、学習結果データ１２２は、学習済みのニューラルネットワーク６の構成を示す情報を含んでいる。しかしながら、学習結果データ１２２の構成は、このような例に限定されなくてもよく、学習済みの学習器の設定に利用可能であれば、実施の形態に応じて適宜決定されてよい。例えば、利用するニューラルネットワークの構成が各装置で共通化されている場合には、学習結果データ１２２は、学習済みのニューラルネットワーク６の構成を示す情報を含んでいなくてもよい。
【０１２５】
＜４．６＞
上記実施形態では、上記ステップＳ１０２において、制御部１１は、ステップＳ１０１で取得した音データ５２を学習済みの学習器（学習済みのニューラルネットワーク６）に直接入力している。しかしながら、音データ５２を入力する方法は、このような例に限定されなくてもよい。音データ５２には、フィルタリング等により前処理が適用されてよい。
【０１２６】
図１０は、変形例に係る制御装置１のソフトウェア構成の一例について説明する。本変形例では、制御部１１は、上記ステップＳ１０２において、動作決定部１１２として動作し、学習済みのニューラルネットワーク６に画像データ５１及び音データ５２を入力する。このとき、制御部１１は、所定の音を抽出するように構成された音フィルタ５５により音データ５２をフィルタリングし、フィルタリングされた音データ５２を学習済みのニューラルネットワーク６に入力する。
【０１２７】
音フィルタ５５は、例えば、ハイパスフィルタ、バンドパスフィルタ等であり、所定の音を抽出するように適宜構成される。一例として、音フィルタ５５には、所定の閾値以上の周波数成分を有する音を抽出するハイパスフィルタ又はバンドパスフィルタが用いられてもよい。
【０１２８】
この音フィルタ５５を利用したフィルタリングにより、例えば、擬音語、叫び声、特定の感情（恐怖、驚き、不快等）に対応する音、比較的に変化の大きい音等の所定の音を抽出することができる。そのため、フィルタリングされた音データ５２を学習済みのニューラルネットワーク６に入力するようにすることで、その所定の音に対応した動作コマンド５３を得ることができるようになる。これにより、所定の音に対応して、ロボットＲの動作を制御することができるようになる。
【０１２９】
加えて、フィルタリングにより前処理を行う分だけ、学習済みのニューラルネットワーク６に入力される対象となる音の範囲を狭めることができる。また、音フィルタ５５によるフィルタリングにより、例えば、利用者、機械以外が出した音等のノイズを除去することができる。そのため、ニューラルネットワーク６の構成を簡略化することができ、これによって、ニューラルネットワーク６の演算処理にかかる負荷を低減することができる。したがって、本変形例によれば、制御部１１（ＣＰＵ）の演算コストを抑えることができる。
【０１３０】
なお、この場合、ニューラルネットワーク７の機械学習では、音フィルタ５５によりフィルタリングされた音データを訓練データとして利用する。すなわち、学習用データセット２２２を生成する際に、得られた音データを音フィルタ５５によりフィルタリングすることで、音データ２２４を取得する。そして、この音データ２２４及び画像データ２２３に対して所望の動作コマンド２２５を組み合わせることで、学習用データセット２２２を生成することができる。上記ステップＳ２０２において、この学習用データセット２２２を利用した機械学習を実施することで、フィルタリングされた音データ５２の入力に対応可能な学習済みのニューラルネットワーク６を構築することができる。
【０１３１】
また、音フィルタ５５には、上記ハイパスフィルタ、バンドパスフィルタ以外に、特定の音データとの差分を算出するフィルタが用いられてもよい。例えば、音フィルタ５５には、環境音等の基礎となるベース音データを保持し、入力された音データ５２とベース音データとの差分を算出するフィルタが用いられてもよい。これにより、上記ステップＳ１０２では、環境音等の基礎となるベース音データを差し引いた差分音を、フィルタリングされた音データ５２として取得することができる。そのため、このフィルタリングされた音データ５２を学習済みのニューラルネットワーク６に入力するようにすることで、ベース音データを差し引いた差分音に応じた動作コマンド５３を得ることができるようになる。
【０１３２】
＜４．７＞
上記実施形態では、上記ステップＳ１０２において、制御部１１は、ステップＳ１０１で取得した画像データ５１を学習済みの学習器（学習済みのニューラルネットワーク６）に直接入力している。しかしながら、画像データ５１を入力する方法は、このような例に限定されなくてもよい。画像データ５１には、フィルタリング等により前処理が適用されてもよい。
【０１３３】
図１１は、変形例に係る制御装置１のソフトウェア構成の一例について説明する。本変形例では、制御部１１は、上記ステップＳ１０２において、動作決定部１１２として動作し、学習済みのニューラルネットワーク６に画像データ５１及び音データ５２を入力する。このとき、制御部１１は、所定の画像を抽出するように構成された画像フィルタ５６により画像データ５１をフィルタリングし、フィルタリングされた画像データ５１を学習済みのニューラルネットワーク６に入力する。
【０１３４】
画像フィルタ５６は、例えば、ハイパスフィルタ、バンドパスフィルタ等であり、所定の画像を抽出するように適宜構成される。一例として、画像データ５１が複数のフレームで構成された動画像データである場合に、画像フィルタ５６には、所定の閾値以上の周波数成分を有する画像を抽出するハイパスフィルタ又はバンドパスフィルタが用いられてもよい。
【０１３５】
この画像フィルタ５６を利用したフィルタリングにより、例えば、所定の閾値よりも変化の大きい画像、フレーム間の差分が所定の閾値よりも大きい画像等の所定の画像を抽出することができる。そのため、フィルタリングされた画像データ５１を学習済みのニューラルネットワーク６に入力するようにすることで、その所定の画像に対応した動作コマンド５３を得ることができるようになる。これにより、所定の画像に対応して、ロボットＲの動作を制御することができるようになる。
【０１３６】
加えて、フィルタリングにより前処理を行う分だけ、学習済みのニューラルネットワーク６に入力される対象となる画像の範囲を狭めることができる。また、画像フィルタ５６によるフィルタリングにより、例えば、利用者、機械とは無関係な画像等のノイズを除去することができる。そのため、ニューラルネットワーク６の構成を簡略化することができ、これによって、ニューラルネットワーク６の演算処理にかかる負荷を低減することができる。したがって、本変形例によれば、制御部１１（ＣＰＵ）の演算コストを抑えることができる。
【０１３７】
なお、この場合、ニューラルネットワーク７の機械学習では、画像フィルタ５６によりフィルタリングされた画像データを訓練データとして利用する。すなわち、学習用データセット２２２を生成する際に、得られた画像データを画像フィルタ５６によりフィルタリングすることで、画像データ２２３を取得する。そして、この画像データ２２３及び音データ２２４に対して所望の動作コマンド２２５を組み合わせることで、学習用データセット２２２を生成することができる。上記ステップＳ２０２において、この学習用データセット２２２を利用した機械学習を実施することで、フィルタリングされた画像データ５１の入力に対応可能な学習済みのニューラルネットワーク６を構築することができる。
【０１３８】
また、画像フィルタ５６には、上記ハイパスフィルタ、バンドパスフィルタ以外に、特定の画像データとの差分を算出するフィルタが用いられてもよい。例えば、画像フィルタ５６には、背景等の基礎となるベース画像データを保持し、入力された画像データ５１とベース画像データとの差分を算出するフィルタが用いられてもよい。これにより、上記ステップＳ１０２では、背景等の基礎となるベース画像データを差し引いた差分画像を、フィルタリングされた画像データ５１として取得することができる。そのため、このフィルタリングされた画像データ５１を学習済みのニューラルネットワーク６に入力するようにすることで、ベース画像データを差し引いた差分画像に応じた動作コマンド５３を得ることができるようになる。
【０１３９】
＜４．８＞
上記実施形態では、画像データ５１の取得には、ロボットＲのカメラ３１が用いられている。ロボットＲがヒューマノイドロボットであり、このカメラ３１がロボットＲの目として利用される場合、ロボットＲの駆動に応じて、カメラ３１の位置及び向きが変更される可能性がある。これに対応するため、制御装置１は、例えば、カメラ３１の位置及び向きを測定するセンサ、カメラ３１以外のその他のカメラ等を更に備えることで、カメラ３１と被写体との相対的な位置関係を算出するように構成されてもよい。
【０１４０】
この場合、学習済みのニューラルネットワーク６は、画像データ５１及び音データ５２の他に、この相対的な位置関係を示す情報を更に入力可能に構成されてもよい。これに応じて、上記ステップＳ１０２では、制御部１１は、動作決定部１１２として動作し、例えば、センサ、その他のカメラ等を利用して、画像データ５１を取得するカメラ３１と被写体との相対的な位置関係を算出してもよい。そして、制御部１１は、算出した相対的な位置関係を示す情報、画像データ５１、及び音データ５２を学習済みのニューラルネットワーク６に入力してもよい。これにより、相対的な位置関係に応じた動作コマンド５３を取得することができるようになる。なお、この場合、相対的な位置関係を示す情報を更に訓練データとして含む学習用データセット２２２が、ニューラルネットワーク７の機械学習に利用される。
【符号の説明】
【０１４１】
１…制御装置、
１１…制御部、１２…記憶部、１３…外部インタフェース、
１１１…データ取得部、１１２…動作決定部、
１１３…動作制御部、
１２１…制御プログラム、１２２…学習結果データ、
２…学習装置、
２１…制御部、２２…記憶部、２３…通信インタフェース、
２４…入力装置、２５…出力装置、２６…ドライブ、
２１１…学習データ取得部、２１２…学習処理部、
２２１…学習プログラム、２２２…学習用データセット、
９２…記憶媒体、
Ｒ…ロボット、Ｕ…ユーザ、
３１…カメラ、３２…マイク、
５１…画像データ、５２…音データ、
５３…動作コマンド、
６…ニューラルネットワーク（学習済みの学習器）、
６１…入力層、６２…中間層（隠れ層）、６３…出力層、
７…ニューラルネットワーク、
７１…入力層、７２…中間層（隠れ層）、７３…出力層
【図１】
2019155546.tif 000003
【図２】
2019155546.tif 000004
【図３】
2019155546.tif 000005
【図４】
2019155546.tif 000006
【図５】
2019155546.tif 000007
【図６】
2019155546.tif 000008
【図７】
2019155546.tif 000009
【図８】
2019155546.tif 000010
【図９】
2019155546.tif 000011
【図１０】
2019155546.tif 000012
【図１１】
2019155546.tif 000013