(57)【要約】【課題】学習モジュールを用いてシステムに所定のタスクを実行させる場合に、作業の条件に応じた調整をユーザが作業実行時に行うことのできる技術を提供する。【解決手段】学習モジュールを用いて所定のタスクを実行させるシステムであり、一又は複数の外部システムから取得される情報を受け付けて、学習モジュールに入力される情報の少なくとも一部を生成する第１入力部と、学習モジュールから出力される情報を取得して、システムから出力される情報を生成する出力部であって、当該システムから出力される情報に基づいて所定のタスクが実行される、出力部と、ユーザからの入力を受け付ける第２入力部であって、ユーザからの入力に基づく情報が、第１入力部、学習モジュール又は出力部のうち少なくともいずれかに入力され、ユーザからの入力に基づいて出力部から出力される情報が変化する、第２入力部と、を備える。【選択図】図１
2018190241.tif 000002
【特許請求の範囲】
【請求項１】
機械学習により所定の学習がなされた学習済みモデル又は前記学習済みモデルと入出力関係が同等のモデルを含む学習モジュールを備え、所定のタスクを実行させるシステムであって、
前記システムは、
一又は複数の外部システムから取得される情報を受け付けて、前記学習モジュールに入力される情報の少なくとも一部を生成する第１入力部と、
前記学習モジュールから出力される情報を取得して、前記システムから出力される情報を生成する出力部であって、当該システムから出力される情報に基づいて所定のタスクが実行される、出力部と、
ユーザからの入力を受け付ける第２入力部であって、前記ユーザからの入力に基づく情報が、前記第１入力部、前記学習モジュール又は前記出力部のうち少なくともいずれかに入力され、前記ユーザからの入力に基づいて前記出力部から出力される情報が変化する、第２入力部と、
を備えるシステム。
【請求項２】
前記第２入力部は、前記ユーザから、前記所定のタスクに対する条件を受け付け、
前記出力部は、前記条件に基づいた情報を出力する、
請求項１記載のシステム。
【請求項３】
前記出力部から出力される情報の一部に、前記条件に対応してユーザに提示される情報を含む、請求項２記載のシステム。
【請求項４】
前記学習モジュールはニューラルネットワークによって構成される、
請求項１乃至３のいずれか１項に記載のシステム。
【請求項５】
前記学習モジュールは、前記第１入力部から入力される情報と、前記第２入力部から入力される情報とに基づいて、前記出力される情報が生成される、
請求項１乃至４のいずれか１項に記載のシステム。
【請求項６】
前記一又は複数の外部システムはカメラを含み、
前記第２入力部で受け付けられる前記ユーザからの入力は、検査の基準に関する条件を含み、
前記出力部は、前記カメラで撮影された対象物の画像から、ユーザが入力した前記基準に基づく前記対象物の検査結果を出力する、
請求項１乃至５のいずれか１項に記載のシステム。
【請求項７】
前記出力部から出力される情報に基づいてロボットの動作を制御するシステムであって、
前記一又は複数の外部システムは前記ロボットの現在の姿勢を検知するセンサを含み、
前記第２入力部で受け付けられる前記ユーザからの入力は、前記ロボットの動作の制約に関する条件を含み、
前記出力部は、前記ロボットの現在の姿勢と前記条件とを考慮して、前記ロボットの動作を制御するための情報を出力する、
請求項１乃至５のいずれか１項に記載のシステム。
【請求項８】
前記出力部から出力される情報に基づいてロボットの動作を制御するシステムであって、
前記一又は複数の外部システムはロボットの現在の位置及び姿勢の少なくともいずれか一方を検知するセンサを含み、
前記第２入力部で受け付けられる前記ユーザからの入力は、前記ロボットが障害物を回避する安全性に関する条件を含み、
前記出力部は、前記ロボットの現在の位置と前記条件とを考慮して、前記ロボットの動作を制御するための情報を出力する、
請求項１乃至５のいずれか１項に記載のシステム。
【請求項９】
前記一又は複数の外部システムはカメラを含み、
前記第２入力部で受け付けられる前記ユーザからの入力は、人の身体の部位に関する条件を含み、
前記出力部は、前記カメラで撮影された人物の画像から、ユーザが入力した前記条件に基づいて特定の対象画像との一致度を判定し、当該判定結果を出力する、
請求項１乃至５のいずれか１項に記載のシステム。
【請求項１０】
請求項１乃至９のいずれか１項に記載のシステムに含まれる学習モジュールを学習させる学習装置であって、
一又は複数の外部システムから取得された第１学習用データと、前記所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、前記学習モジュールを学習させる学習制御部を備える、
学習装置。
【請求項１１】
機械学習により所定の学習がなされた学習済みモデル又は前記学習済みモデルと入出力関係が同等のモデルを含む学習モジュールを備えるシステムにおいて、所定のタスクを実行させる方法であって、
第１入力部が、一又は複数の外部システムから取得される情報を受け付けて、前記学習モジュールに入力される情報の少なくとも一部を生成する第１ステップと、
前記学習モジュールが、少なくとも前記第１ステップで生成された情報に基づいて、所定の情報を出力する第２ステップと、
出力部が、少なくとも前記第２ステップで出力された情報を取得して、前記システムから出力される情報を生成する第３ステップであって、当該システムから出力される情報に基づいて所定のタスクが実行される、第３ステップと、
第２入力部が、前記第１のステップ、第２のステップ、又は、第３のステップの少なくともいずれかと略並行に行われ、ユーザからの入力を受け付ける第４ステップであって、前記ユーザからの入力に基づく情報が、前記第１入力部、前記学習モジュール又は前記出力部のうち少なくともいずれかに入力され、前記ユーザからの入力に基づいて前記出力部から出力される情報が変化する、第４ステップと、
を備える方法。
【請求項１２】
請求項１１に記載のシステムに含まれる学習モジュールを学習させる方法であって、
一又は複数の外部システムから取得された第１学習用データと、前記所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、前記学習モジュールを機械学習により学習させる方法。
【請求項１３】
機械学習により所定のタスクを実行させるための学習がなされた学習済みモデル又は前記学習済みモデルと入出力関係が同等のモデルからなる学習モジュールを含むコンピュータに、
一又は複数の外部システムから取得された情報を受け付けて、前記学習モジュールに入力される情報の少なくとも一部を生成する第１ステップと、
少なくとも前記第１ステップで生成された情報に基づいて、前記学習モジュールが所定の情報を出力する第２ステップと、
少なくとも前記第２ステップで出力された情報を取得して、前記コンピュータから出力される情報を生成する第３ステップであって、当該コンピュータから出力される情報に基づいて所定のタスクが実行される、第３ステップと、
前記第１のステップ、第２のステップ、又は、第３のステップの少なくともいずれかと略並行に行われ、ユーザからの入力を受け付ける第４ステップであって、前記ユーザからの入力に基づく情報を、前記第１ステップ、前記第２ステップ又は前記第３ステップのうち少なくともいずれかのステップにおいて入力させることにより、前記ユーザからの入力に基づいて前記所定のタスクを実行させる情報を変化させる、第４ステップと、
を実行させるためのプログラム。
【請求項１４】
請求項１３に記載のコンピュータに含まれる学習モジュールを学習させるプログラムであって、
コンピュータに、
一又は複数の外部システムから取得された第１学習用データと、前記所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、前記学習モジュールを機械学習により学習させる機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスクを実行させるシステム、タスクを実行させる方法、並びにその学習装置及び学習方法に関する。
【背景技術】
【０００２】
従来より、ニューラルネットワークを含む機械学習の技術を用いてシステムに所定のタスクを実行させるように制御することが知られている。例えば、特許文献１には、ばら積み状態の把持対象物のピッキングに対して機械学習を適用し、把持成功率の高い対象物を学習してピッキングを行うことが記載されている。また、例えば、特許文献２には、撮像画像により試料の欠陥の有無を判別する分類処理に対して機械学習（ルールベース型の分類器）を適用し、分類器の構成を学習の事前にユーザが設定することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２０１３５号公報
【特許文献２】特許第３９７８０９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、作業の現場では、作業実行時に要求される精度、実行速度、失敗許容範囲などに応じて、現場ごとに固有の作業に関する要求や制約条件などの条件を作業実行時に調整することがある。しかしながら、学習済みモデルを用いて所定のタスク（以下「作業」ともいう。）を実行させるシステムにおいては、センサ等のデバイスからの入力をもとにシステムの動作が決定されて作業が行われるため、作業の条件に応じた調整をするためには、学習済みモデルを再学習させる必要があり、作業実行時に条件を調整することはできない。
【０００５】
そこで、本発明は、学習済みモデル又はそれと同等のモデルを含む学習モジュールを用いてシステムに所定のタスクを実行させる場合に、作業の条件に応じた調整をユーザが作業実行時に行うことのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
機械学習により所定の学習がなされた学習済みモデル又は学習済みモデルと入出力関係が同等のモデルを含む学習モジュールを備え、所定のタスクを実行させるシステムであり、一又は複数の外部システムから取得される情報を受け付けて、学習モジュールに入力される情報の少なくとも一部を生成する第１入力部と、学習モジュールから出力される情報を取得して、システムから出力される情報を生成する出力部であって、当該システムから出力される情報に基づいて所定のタスクが実行される、出力部と、ユーザからの入力を受け付ける第２入力部であって、ユーザからの入力に基づく情報が、第１入力部、学習モジュール又は出力部のうち少なくともいずれかに入力され、ユーザからの入力に基づいて出力部から出力される情報が変化する、第２入力部と、を備える。
【０００７】
この態様によれば、学習済みモデル又はそれと同等のモデルを含む学習モジュールを用いてシステムに所定のタスクを実行させる際に、センサ等の外部システムから取得される情報に加えて、ユーザによって入力される情報に基づいて、出力される情報が変化する。これにより、ユーザは、作業実行時に、タスクに対する条件を入力することによって、学習モジュールを再学習させることなく、条件に応じて調整された出力を得ることができる。その結果、ユーザは所望する条件に沿ったタスクを高速に実行させることができる。
【０００８】
本実施形態に係るシステムにおいて、第２入力部は、ユーザから所定のタスクに対する条件を受け付け、出力部は、条件に基づいた情報を出力することによって、所定のタスクが実行されてもよい。この態様によれば、タスクに対する条件に応じて、ユーザが作業時に柔軟に条件を設定できるので、作業内容に応じた出力の調整が可能となる。これにより、例えば、作業の精度と処理速度にトレードオフの関係があるようなタスクを実行させる際に、作業内容に応じて、精度を重視したり、処理速度を重視したりといった調整を、学習モジュールを再学習させることなく作業時に柔軟に設定することができる。
【０００９】
本実施形態に係るシステムにおいて、出力部から出力される情報の一部に、条件に対応してユーザに提示される情報を含むものとしてもよい。この態様によれば、ユーザの入力した条件に応じた出力をユーザに提示でき、入力された条件に対応した出力を可視化させることができる。
【００１０】
また、本発明の一態様に係るシステムにおいて、一又は複数の外部システムはカメラを含み、第２入力部で受け付けられるユーザからの入力は、検査の基準に関する条件を含み、出力部は、カメラで撮影された対象物の画像から、ユーザが入力した基準に基づく対象物の検査結果を出力してもよい。この態様によれば、学習モジュールを用いて対象物の良不良等を検査する際に、ユーザの入力を考慮した検査を実行させることができる。
【００１１】
また、本発明の一態様に係るシステムは、出力部から出力される情報に基づいてロボットの動作を制御するシステムであって、一又は複数の外部システムはロボットの現在の姿勢を検知するセンサを含み、第２入力部で受け付けられるユーザからの入力は、ロボットの動作の制約に関する条件を含み、出力部は、ロボットの現在の姿勢と条件とを考慮して、ロボットの動作を制御するための情報を出力してもよい。この態様によれば、学習モジュールを用いてロボットの動作を制御する際に、ユーザの入力を考慮した動作を実行させることができる。
【００１２】
また、本発明の一態様に係るシステムは、出力部から出力される情報に基づいてロボットの動作を制御するシステムであって、一又は複数の外部システムはロボットの現在の位置及び姿勢の少なくともいずれか一方を検知するセンサを含み、第２入力部で受け付けられるユーザからの入力は、ロボットが障害物を回避する安全性に関する条件を含み、出力部は、ロボットの現在の位置と条件とを考慮して、ロボットの動作を制御するための情報を出力してもよい。この態様によれば、学習モジュールを用いてロボットに障害物を回避させる動作を制御する際に、ユーザの入力を考慮した回避動作を実行させることができる。
【００１３】
また、本発明の一態様に係る制御システムにおいて、一又は複数の外部システムはカメラを含み、第２入力部で受け付けられるユーザからの入力は、人の身体の部位に関する条件を含み、出力部は、カメラで撮影された人物の画像から、ユーザが入力した条件に基づいて特定の対象画像との一致度を判定し、当該判定結果を出力してもよい。この態様によれば、学習モジュールを用いて監視カメラ等に映った人物を検索する際に、ユーザの入力を考慮した検索を実行させることができる。
【００１４】
本発明の一態様に係る学習装置は、上記システムに含まれる学習モジュールを学習させるものであって、一又は複数の外部システムから取得された第１学習用データと、所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、学習モジュールを学習させる学習制御部を備える。この態様によれば、学習モジュールを用いて所定のタスクを実行させるシステムに用いられる学習モジュールの学習を行うことができる。
【００１５】
本発明の一態様に係る制御方法は、機械学習により所定の学習がなされた学習済みモデル又は学習済みモデルと入出力関係が同等のモデルを含む学習モジュールを備えるシステムにおいて、所定のタスクを実行させる方法であって、第１入力部が、一又は複数の外部システムから取得される情報を受け付けて、学習モジュールに入力される情報の少なくとも一部を生成する第１ステップと、学習モジュールが、少なくとも第１ステップで生成された情報に基づいて、所定の情報を出力する第２ステップと、出力部が、少なくとも第２ステップで出力された情報を取得して、システムから出力される情報を生成する第３ステップであって、当該システムから出力される情報に基づいて所定のタスクが実行される、第３ステップと、第１のステップ、第２のステップ、又は、第３のステップの少なくともいずれかと略並行に行われ、第２入力部がユーザからの入力を受け付ける第４ステップであって、ユーザからの入力に基づく情報が、第１入力部、学習モジュール又は出力部のうち少なくともいずれかに入力され、ユーザからの入力に基づいて出力部から出力される情報が変化する、第４ステップと、
を備える。この態様によれば、学習モジュールを用いてシステムに所定のタスクを実行させる方法において、学習モジュールを再学習させることなく、ユーザの入力を考慮した適切な出力を生成することができる。
【００１６】
また、本発明の一態様に係る学習方法は、上記システムに含まれる学習モジュールを学習させる方法であって、一又は複数の外部システムから取得された第１学習用データと、所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、学習モジュールを機械学習により学習させる。この態様によれば、学習モジュールを用いて所定のタスクを実行させるシステムに用いられる学習モジュールの学習を行う方法を提供できる。
【００１７】
本発明の一態様に係るプログラムは、機械学習により所定のタスクを実行させるための学習がなされた学習済みモデル又は学習済みモデルと入出力関係が同等のモデルからなる学習モジュールを含むコンピュータに、一又は複数の外部システムから取得された情報を受け付けて、学習モジュールに入力される情報の少なくとも一部を生成する第１ステップと、少なくとも第１ステップで生成された情報に基づいて、学習モジュールが所定の情報を出力する第２ステップと、少なくとも第２ステップで出力された情報を取得して、コンピュータから出力される情報を生成する第３ステップであって、当該システムから出力される情報に基づいて所定のタスクが実行される、第３ステップと、第１のステップ、第２のステップ、又は、第３のステップの少なくともいずれかと略並行に行われ、ユーザからの入力を受け付ける第４ステップであって、ユーザからの入力に基づく情報を、第１ステップ、第２ステップ又は第３ステップのうち少なくともいずれかのステップにおいて入力させることにより、ユーザからの入力に基づいて所定のタスクを実行させる情報を変化させる、第４ステップと、を実行させる。この態様によれば、学習モジュールを用いてシステムに所定のタスクを実行させるプログラムにおいて、学習モジュールを再学習させることなく、ユーザの入力を考慮した適切な出力を生成することができる。
【００１８】
また、本発明の一態様に係るプログラムは、コンピュータに、一又は複数の外部システムから取得された第１学習用データと、所定のタスクを実行させるときにユーザが入力する条件と同形式のデータを含む第２学習用データと、を含む学習用データに基づいて、学習モジュールを機械学習により学習させる機能を実現させる。この態様によれば、学習モジュールを用いて所定のタスクを実行させるシステムに用いられる学習モジュールの学習を行うプログラムを提供できる。
【００１９】
なお、本明細書等において、「部」とは、単に物理的手段ないし部分を意味するものではなく、その手段ないし部分が有する機能を、記憶装置に記憶されたソフトウェアをハードウェアプロセッサが実行することによって実現する場合も含む。また、１つの「部」が有する機能が２つ以上の物理的手段により実現されても、２つ以上の「部」の機能が１つの物理的手段により実現されてもよい。
【発明の効果】
【００２０】
本発明の所定の実施形態によれば、学習済みモデル又はそれと同等のモデルを含む学習モジュールを用いてシステムに所定のタスクを実行させる場合に、作業の条件に応じた調整をユーザが作業実行時に行うことが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態に係る制御システム１０を含む全体システム１の概念を示す図である。
【図２】本実施形態に係る制御システム１０の機能構成の一例を示すブロック図である。
【図３】本実施形態に係るタスク実行システム１０のハードウェア構成の一例を示す図である。
【図４】本実施形態に係る制御システム１０における処理フローの一例を示す図である。
【図５】制御システム１０を画像検査装置に適用した場合の機能構成の一例を示すブロック図である。
【図６】訓練データの一例を示す図である。
【図７】制御システム１０を把持システムに適用した場合の機能構成の一例を示すブロック図である。
【図８】動作候補と把持成功率及び制約充足度の一例を示す図である。
【図９】動作決定ルールの一例である。
【図１０】把持システム２００の他の実施例を示す図である。
【図１１】把持成功率と制約充足度の一例を示す図である。
【図１２】把持システム２００の他の実施例を示す図である。
【図１３】条件を指定する際の一例を示す図である。
【図１４】制御システム１０を多関節ロボットにおける障害物回避システムに適用した場合の機能構成の一例を示すブロック図である。
【図１５】本来の目標軌跡の候補と回避成功率及び目標逸脱率の一例を示す図である。
【図１６】制御システム１０をマルチエージェントにおける障害物回避システムに適用した場合の機能構成の一例を示すブロック図である。
【図１７】マルチエージェントシステムの概略図である。
【図１８】制御システム１０を人物検索システムに適用した場合の機能構成の一例を示すブロック図である。
【図１９】部位ごとの一致度と重みの一例を示す図である。
【図２０】制御システム１０を逆運動学モデルに適用した場合の機能構成の一例を示すブロック図である。
【図２１】逆運動学において複数の解が存在する場合の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
【００２３】
図１は、本発明の一実施形態に係る所定のタスクを実行させるシステム１０（以下「タスク実行システム１０」ともいう。）を含む全体システム１の概念を示す図である。タスク実行システム１０は、学習モジュール１６を用いて、所定のタスクを実行させるシステムである。実行されるタスクとしては、例えば、製品の良不良を判定して検査結果を表示器に出力したり、ロボットに物体を把持させるための動作指令を出力したりすることが想定されるが、これらに限られるものではない。なお、学習モジュール１６は、後述のように、機械学習によって学習する能力を備えた専用若しくは汎用のハードウェア又はソフトウェアの一単位、ないしこれらを任意に組み合わせた一単位を含むものである。すなわち、学習モジュール１６は、機械学習によって学習する能力を備えた学習モデル、および、機械学習によって所定の能力を獲得した学習済みモデル、の少なくともいずれかを含むソフトウェアプログラムを含む。また、学習モジュール１６は、当該ソフトウェアプログラムが保存された記憶装置、当該ソフトウェアを読み出し実行するハードウェアプロセッサ、を有する演算装置、を含む。また、所定のタスクを実行させるとは、外部システム５０に所定のタスクを実行させることのほか、タスク実行システム１０自身が所定のタスクを実行することも含み得る。また、タスク実行システム１０は、実際のシステムにタスクを実行させることのみならず、仮想的なシステムであるシミュレータにタスクを実行させる場合にも適用可能である。この場合、仮想センサ、仮想ロボット、仮想システム等が制御の対象となる。
【００２４】
図１に示すように、タスク実行システム１０は、センサや外部機器などの入力側の外部システム２０（以下「入力側外部システム２０」ともいう。）から入力される情報ＩSに加えて、ユーザ（人）Ｐから入力される情報ＩPを受け付けることができる。
【００２５】
入力側外部システム２０から入力される情報ＩSの例としては、ビットマップ等の画像、点群（ポイントクラウド）、力（力覚センサの出力値）、距離（近接センサの出力値）、ロボット姿勢（エンコーダの出力値）などが挙げられるが、これらに限られない。ユーザから入力される情報ＩPの例としては、作業に対する要求や、作業の制約条件などが挙げられるがこれらに限られない。作業に対する要求とは、例えば、精度と速度のバランスなど、トレードオフの関係にある条件の選択を含み、作業の制約条件とは、例えば、対象物のうち触れてはいけない部分を指定するなど、禁止事項の設定を含む。当該タスクに対する要求や制約条件等の情報ＩPを、以下単に「条件（constraint）」ということがある。本発明の所定の実施形態に係るタスク実行システム１０は、ユーザから入力される条件に基づいて、その挙動が変更される。すなわち、ユーザが入力する条件は、タスク実行システム１０が所定のタスクを実行するときの、タスク実行システム１０の挙動（例えば、出力される判断結果や動作指令等）を変動させる情報である。ユーザが入力する条件は、後述の第１入力部１２に入力される場合には、第１入力部１２を介して学習モジュール１６に入力される情報を変動させる条件として使用され、後述の学習モジュール１６に入力される場合には、学習モジュール１６に含まれる学習済みモデルの内部パラメータを変動させる条件として使用され、後述の出力部１８に入力される場合には、出力部１８から出力される情報を変動させる条件として用いられる。ここで、情報の変動とは、情報の削除を含んでもよい。
【００２６】
タスク実行システム１０は、受け付けられた情報ＩSと情報ＩPに基づいて、学習モジュール１６を用いて所定のタスクを実行する、または、出力側の外部システム５０（以下「出力側外部システム５０」ともいう。）に対して所定のタスクを実行させるための情報ＯSを出力する。タスク実行システム１０から出力された情報ＯSは出力側外部システム５０に渡されて、所定のタスクが実行される。また、タスク実行システム１０から出力される情報のうち一部に、ユーザＰに対して提示される情報ＯPを含めてもよい。出力側外部システム５０に出力される情報ＯSの例としては、モータへの指令値、ロボットハンドへの動作指令、最適な把持姿勢、画像検査結果などが挙げられるが、これらに限られない。ユーザに対して提示される情報ＯPは、例えばユーザＰが入力した情報ＩPに含まれる条件に対応して可視化される情報であり、具体的には、タスクの達成率や中間結果などが挙げられるが、これらに限られない。また、情報ＩPを入力するユーザと、情報ＯPが提示されるユーザは、同一であっても、異なっていてもよい。ここで、情報ＯPは、ユーザが入力する条件に対応した情報であることが好ましい。例えば、ユーザが入力した条件に対応するデータであって、ユーザに対して前記条件の達成度合を示すデータを用いることができる。また、例えば、ユーザから入力される情報ＩPが、ロボットの動作制御における精度と速度とのバランスである場合には、情報ＯPは、ロボットの動作制御に関する指令情報（指令値）と、当該指令情報（指令値）に基づき動作するロボットの予測精度（取り得る動作の誤差範囲）、及び、当該動作の達成時間を情報ＯPとして提示することができる。
【００２７】
本実施形態では、入力側外部システム２０から入力される情報ＩSに基づいて、タスク実行システム１０が学習済みの学習モジュール１６を用いて所定のタスクを実行させる際に、当該タスクに対する要求や制約条件等の情報ＩPをユーザが指定することができる。タスク実行システム１０は、入力側外部システム２０から入力される情報ＩSに加えて、ユーザＰが指定した情報ＩPを考慮して出力を決定する。本実施形態によれば、実行させようとするタスクの精度、実行速度、失敗許容範囲などの要求や制約条件を現場や作業ごとに変えたいときに、学習モジュール１６を再学習させることなく、ユーザが入力する情報ＩPを変更させることにより、要求や制約条件等の条件に応じた所望の出力を得ることができる。
【００２８】
また、タスク実行システム１０が所定のタスクを実行させる際に期待していない動作が発生した場合に、ユーザＰが入力する情報ＩP（例えば入力パラメータ）を調整することで、実行されるタスクの挙動を調整することができる。また、問題が起きたときに、ユーザＰに対して提示される情報ＯPを用いることで、原因の特定が容易になることがある。
【００２９】
なお、入力側外部システム２０から情報ＩSが入力されるたびに、ユーザＰが情報ＩPを入力しなければならないというものではない。情報ＩSをユーザが入力する代わりに、実行されるタスクやタスクの対象となる対象物に応じて予め設定された値が適用されるようにしてもよい。この場合、条件が変化したり、特殊な現場に適用するときなどに、ユーザは状況に応じて、条件をタスク実行システム１０に入力すればよい。このとき、予め設定される値は、後述するように、学習器７０の学習に用いられる訓練データに基づいて決定してよい。すなわち、訓練データには、学習モジュール１６を使用して所定のタスクを実行させるときに、ユーザＰが入力し得る条件と同形式のデータが含まれる。したがって、訓練データに含まれる、タスク実行時にユーザＰが入力する条件と同形式のデータに基づいて、値を設定することができる。
【００３０】
図２は、本実施形態に係るタスク実行システム１０の機能構成の一例を示すブロック図である。図３は、本実施形態に係るタスク実行システム１０のハードウェア構成の一例を示す図である。
【００３１】
図２に示すとおり、タスク実行システム１０は、第１入力部１２と、第２入力部１４と、学習モジュール１６と出力部１８とを備える。また、図３に示すとおり、タスク実行システム１０は、図２に示す機能を実現するために、演算装置６１、記憶装置６２、外部インタフェース（外部Ｉ／Ｆ）６３、入力装置６４及び出力装置６５を備えている。
【００３２】
演算装置６１は、ハードウェアプロセッサであるＣＰＵ（Central Processing Unit）６１１、ＲＡＭ（Random Access Memory）６１２、ＲＯＭ（Read Only Memory）６１３等を含み、情報処理に応じて各構成要素の制御を行う。記憶装置６２は、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置であり、図２に示す学習モジュールに含まれる、学習済みモデルのパラメータや、学習済みモデルによる所定の処理を実行するためのプログラム等を記憶する。また、記憶装置６２は、入力側外部システム２０（例えばセンサ３０）から入力される情報ＩSと、ユーザから入力される情報ＩPを記憶する。また、記憶装置６２は、タスクを実行させるためのプログラムを記憶する。例えば、タスク実行システム１０が、ロボットハンドを用いた把持システムを制御する事例では、ロボットハンドの経路演算プログラムやユーザから入力された姿勢に関する条件の初期値などが記憶装置６２に記憶される。
【００３３】
外部インタフェース６３は、入力側外部システム２０又は出力側外部システム５０と接続するためのインタフェースであり、接続する入力側外部システム２０および出力側外部システム５０に応じて適宜構成される。外部インタフェース６３は、ネットワークを介して他のコンピュータと接続するための通信インタフェースであってもよい。図２に示す第１入力部１２、第２入力部１４及び出力部１８は、ハードウェアとしての外部インタフェース６３を含む。本実施形態において、タスク実行システム１０は、外部インタフェース６３を介して、入力側外部システム２０及び出力側外部システム５０に接続される。タスク実行システム１０は、学習済みモデルに基づく演算処理を実行するためのプログラムを補助記憶装置から読出してＲＡＭ６１２に展開し、ハードウェアプロセッサにより解釈、実行する。
【００３４】
なお、タスク実行システム１０は、さらに、例えば、マウス、キーボード等の入力を行うための入力装置６４、および、例えば、ディスプレイ、スピーカ等の出力を行うための出力装置６５を備えていてよい。
【００３５】
また、タスク実行システム１０は、さらに、例えば、ＣＤドライブ、ＤＶＤドライブ等の、記憶媒体に記憶されたプログラムを読み込むためのドライブ装置６６を備えていてよい。
【００３６】
図２に戻り、第１入力部１２と第２入力部１４は、タスク実行システム１０に対して情報を入力するためのインタフェースとしての機能を有する。第１入力部１２は、センサ３０や外部機器４０など、人以外の外部システム２０から入力される情報ＩSを受け付ける機能を有する。他方、第２入力部１４は、人から入力される情報、すなわちタスク実行システム１０のユーザから入力される情報ＩPを受け付ける機能を有する。
【００３７】
第２入力部１４は、ユーザから受け付けた情報ＩPを、第１入力部１２、学習モジュール１６、出力部１８の少なくともいずれかに渡す。このとき、ユーザから受け付けた情報の一部又は全部をそのまま各部に渡してもよいし、ユーザから受け付けた情報に基づいて生成ないし変換された情報を各部に渡してもよい。
【００３８】
また、第２入力部１４はユーザから受け付けた情報ＩPを記憶するメモリを備えてもよい。これによれば、メモリに記憶された情報を各部に渡すことにより、ユーザＰが情報を毎回入力する手間を省くことができる。このとき、情報ＩPを記憶するメモリは、情報ＩPに加えて、第１入力部１２に入力される情報ＩSとの対応関係を保持していることが好ましい。これによれば、入力側外部システム２０から取得される情報ＩSの内容に応じて、適切な情報ＩPを選択することができる。なお、メモリは、第２入力部１４の内部に位置していてもよい。すなわち、タスク実行システム１０がメモリを備えていればよい。
【００３９】
第１入力部１２は、入力側外部システム２０から受け付けた情報に基づいて、学習モジュール１６に入力される情報を生成する。第２入力部１４から第１入力部１２に情報が渡されたとき、すなわち、ユーザからの入力に基づく情報を第１入力部が取得したときは、当該ユーザからの入力に基づく情報も考慮して、学習モジュール１６に入力される情報が生成される。このとき、第１入力部１２は、入力側外部システム２０や第２入力部１４から受け付けた情報の一部又は全部をそのまま学習モジュール１６に渡してもよいし、入力側外部システム２０や第２入力部１４から受け付けた情報に基づいて生成ないし変換された情報を学習モジュール１６に渡してもよい。
【００４０】
第１入力部１２は、状態認識部１２１と情報生成部１２２を備えてもよい。状態認識部１２１および情報生成部１２２は、タスク実行システム１０が有する演算装置が、記憶装置に記憶された状態認識プログラムに基づいた情報処理を実行することにより実現される。
【００４１】
状態認識部１２１は、センサ３０や外部機器４０から取得された観測情報をもとに、センサ３０が観測する対象物の位置および／または姿勢の状態や外部機器４０の内部状態等を認識し、認識された状態を認識結果として学習モジュール１６に対して出力する。
【００４２】
情報生成部１２２は、センサ３０、外部機器４０、第２入力部１４から取得された情報をもとに、新たな情報を生成したり、データの形式を変換したりする。なお、本明細書では、情報の生成ないし変換を、単に情報の生成ということもある。
【００４３】
なお、状態認識部１２１及び情報生成部１２２は、学習済みモデルを有していてもよい。すなわち、入力側外部システム２０から取得された情報に基づく状態の認識や、入力側外部システム２０から取得された情報の変換を、所定の機械学習に基づき生成された学習済モデルにより行ってよい。このとき、状態認識部１２１及び情報生成部１２２は、学習モジュール１６により実行される所定のタスクを実現するためのサブ学習モジュールとして機能する。
【００４４】
学習モジュール１６は、機械学習によって学習する能力を備えた専用若しくは汎用のハードウェア又はソフトウェアの一単位、ないしこれらを任意に組み合わせた一単位を含む。また、学習モジュール１６は、学習済みモデルやその複製物または蒸留物を含む。ここで、学習済みモデルの複製物は、モデルの内部構造を複製したもののみならず、学習が完了した学習済みの学習モジュール又は当該学習済みの学習モジュールの複製物に対して追加学習を行ったものを含む。蒸留物とは、いわゆる蒸留によって得られる学習済みモデルを指す。なお、蒸留とは、学習済みモデルの機能を保つように、学習済みモデルと構造が異なる他の学習モデルを学習させ、学習済みの当該他の学習済みモデルを得ることを含む。ここで、当該他の学習済みモデル（蒸留物）は、その基となった学習済みモデルよりも内部構造が単純であり、よりディプロイに適したものであることが好ましい。なお、学習済みモデルの複製物や蒸留物は、必ずしも学習能力を備えることを要しない。学習モジュール１６は、パラメータに従って入力を出力に変換する関数の機能を有する所定の構造を含む。そのような構造の一例は、ニューラルネットワークであるので、ここでは、学習モジュール１６がニューラルネットワークによって構成される場合を想定して説明する。しかしながら、学習モジュール１６は、ニューラルネットワークに限定されるものではない。
【００４５】
本実施形態において、学習モジュール１６は、第１入力部１２と第２入力部から情報が入力され得る。これにより、学習モジュール１６において、センサ３０や外部機器４０などの入力側外部システム２０から取得した情報とユーザ（人）から取得した情報とに基づく所定の演算が実行されて、演算結果が値やパターンなどの形式で出力される。出力された情報は出力部１８に渡される。
【００４６】
学習モジュールが多階層のニューラルネットワークによって構成されるとき、第１入力部１２から入力される情報、すなわち入力側外部システム２０から取得された情報は、ニューラルネットワークの入力層に入力される。これに対し、第２入力部１４から入力される情報、すなわちユーザから取得された情報は、ニューラルネットワークの入力層に入力されてもよいが、これに限られず、入力層以外の層、すなわち中間層や出力層に入力されてもよい。
【００４７】
学習モジュール１６としては、機械学習によって、所定のタスクを実行する、または、外部システム５０に対して所定のタスクを実行させることができるように訓練された学習済みモデルを適用することができる。この学習済みモデルは、学習器７０において、センサ３０や外部機器４０などの入力側外部システム２０から取得した情報とユーザ（人）から取得した情報とを含む訓練データを用いた機械学習によって獲得することができる。また、学習モジュール１６として、学習済みモデルの複製物や蒸留物など、学習済みモデルと入出力関係が同等のモデルを適用してもよい。なお、本明細書では、これらをまとめて、単に学習済みモデルということがある。さらに、学習モジュール１６は、複数の学習済みモデルを有するものであってもよい。
【００４８】
出力部１８は、タスク実行システム１０から情報を出力するためのインタフェースである。出力部１８は、学習モジュール１６から取得した情報に基づいて、タスク実行システム１０から出力される情報ＯSとＯPを生成する。なお、出力部１８は、情報ＯSか情報ＯPのいずれかを生成してもよい。第２入力部１４から出力部１８に情報が渡されたとき、すなわち、ユーザからの入力に基づく情報を出力部１８が取得したときは、当該ユーザからの入力に基づく情報も考慮して、タスク実行システム１０から出力される情報ＯSとＯPが生成される。このとき、出力部１８は、学習モジュール１６や第２入力部１４から受け付けた情報の一部又は全部をそのまま出力してもよいし、学習モジュール１６や第２入力部１４から受け付けた情報に基づいて生成ないし変換された情報を出力してもよい。
【００４９】
出力部１８から出力された情報、すなわちタスク実行システム１０から出力された情報ＯSは、出力側外部システム５０に入力され、出力側外部システム５０において所定のタスクが実行される。また、出力部１８から出力される情報のうち一部の情報ＯPは、ユーザＰに対して提示される情報としてもよい。ここで、学習モジュール１６が多階層のニューラルネットワークにより構成される場合には、当該ニューラルネットワークは、中間層と出力層とのいずれかに、ユーザＰに対して提示する情報を出力するノードを有していることが好ましい。
【００５０】
学習器７０は、学習モジュール１６として用いられる学習済みモデルを獲得する機能を有する学習装置である。学習器７０は、タスク実行システム１０を構成する学習モジュール１６を生成し得るものであるが、タスク実行システム１０を直接構成するものではない。学習器７０において、入力側外部システム２０から入力される情報とユーザから入力される情報とを含む訓練データを用いて、所定のタスクを実行させるための機械学習が行われる。機械学習においては、ユーザが入力する条件に対応したデータである入力変数と、当該入力変数の値に対する出力の望ましさを示す出力値と、を含む訓練データが用いられる。例えば、入力変数に対する望ましい出力値を示す正解データを含む訓練データを学習モジュールに対して直接与えて学習を行わせる手法を採用することができる。また、学習モジュールに対して出力の望ましさを示す評価関数を与えて学習を行わせる手法を用いてもよい。例えば、評価関数として、入出力の組み合わせに対する評価値を決定することのできる関数が用いられる。学習器７０によって獲得された学習済みモデル又はそのパラメータ（ニューラルネットワークの場合は結合の重みなど）に基づいて、学習モジュール１６を生成することができる。
【００５１】
また、図２に示すように、タスク実行システム１０は、通信ネットワークを介して、一又は複数のセンサ３０や一又は複数の外部機器４０などの入力側外部システム２０に接続される。なお、個々のセンサ３０や外部機器４０がそれぞれ１つの入力側外部システム２０とみなしてもよいし、任意のセンサ３０や外部機器４０を組み合わせたものを１つの入力側外部システム２０とみなしてもよい。後者の一例はロボットである。さらに、タスク実行システム１０は、通信ネットワークを介して、出力側外部システム５０に接続される。そして、入力側外部システム２０とユーザからタスク実行システム１０に情報が入力され、タスク実行システム１０から出力側外部システム５０に情報が出力されることによって、所定のタスクが実行される。なお、タスク実行システム１０を、所定のタスクを実行するためのサブシステムとして捉え、当該サブシステムと、当該サブシステムが出力する情報を使用する出力側外部システム５０とを一体のシステムとして構成してもよい。
【００５２】
センサ３０は、物理量を検出する物理量センサ、化学量を検出する化学量センサ、情報を検出する情報センサのいずれであってもよいが、これらに限られるものではなく、任意のセンサを含み得る。物理量センサは、例えば光を検出して画像データや動画データを出力するカメラや、人の心拍を検出して心拍データを出力する心拍センサ、人の血圧を検出して血圧データを出力する血圧センサ及び人の体温を検出して体温データを出力する体温センサ等のバイタルセンサを含み、その他任意の物理量を検出して電気的信号を出力するセンサを含む。化学量センサは、例えばガスセンサ、湿度センサ、イオンセンサを含み、その他任意の化学量を検出して電気信号を出力するセンサを含む。情報センサは、例えば統計データから特定のパターンを検出するセンサを含み、その他任意の情報を検出するセンサを含む。
【００５３】
外部機器４０は、コンピュータシステム、ロボット、その他各種デバイスによって構成される。なお、外部機器４０と、センサ３０とは、一体に構成されていてもよい。例えば、外部機器４０としての産業用ロボットは、複数のモータ（軸）と、当該モータ（軸）によって駆動する複数のリンク（構造体）とを有している。モータと、このモータによって駆動されるリンクとが、順次接続され、多関節の産業用ロボットが構成される。ここで、モータは、その回転角度を検出するセンサ３０としてのエンコーダと一体に構成されていてよい。外部機器４０は、動作計画部４２と動作生成部４４を含んでもよい。動作計画部４２は、外部機器４０が制御等する対象物又は外部機器４０自体の動作を計画し、本来の目標となる動作軌跡を作成する機能を有する。動作生成部４４は、動作の候補を生成したり、障害物への衝突等を回避するための回避行動の候補を生成する機能を有する。ここで、動作の候補、及び、回避行動の候補は、外部機器４０の移動方向を示す所定の数値および／または数値ベクトルにより表現される。なお、動作計画部４２と動作生成部４４は、学習済みモデルを有していてもよい。すなわち、動作候補の生成、回避行動の候補の生成を、所定の機械学習に基づき生成された学習済モデルにより行ってよい。また、動作計画部４２と動作生成部４４とは、タスク実行システム１０に設けられてもよい。すなわち、動作計画部４２と動作生成部４４とは、タスク実行システム１０に設けられ、センサ３０および／または外部機器４０から取得される情報ＩPに基づいて、動作候補の生成、回避行動の候補の生成を行い、生成された候補を学習モジュール１６に入力する。このとき、動作計画部４２と動作生成部４４とは、学習モジュール１６により実行される所定のタスクを実現するためのサブ学習モジュールとして機能する。
【００５４】
なお、図２においては、入力側外部システム２０と出力側外部システム５０を別の構成として図示しているが、入力側外部システム２０と出力側外部システム５０は同一の構成であってもよい。例えば、タスク実行システム１０によってロボットハンドを備えたロボットの制御をする場合、当該ロボットハンドは入力側外部システム２０であり、かつ、出力側外部システム５０でもあり得る。例えば、カメラ付きのロボットであれば、カメラやロボットの関節に設けられたエンコーダがセンサ３０に相当し得る。また、エンコーダの値がロボットを介して出力される場合は、ロボットが外部機器４０に相当し得る。さらに、タスク実行システム１０から出力された動作指令に基づいてロボットが動作する場合、ロボットは出力側外部システム５０に相当し得る。なお、本実施形態において、センサから出力されたセンシングデータは、センサ３０自身からタスク実行システム１０に直接的に入力されてよく、センサ３０から外部機器４０を介して、タスク実行システム１０に間接的に入力されてよい。したがって、本明細書では、センサ３０と外部機器４０を特に区別せずに、入力側外部システム２０ということがある。
【００５５】
なお、タスク実行システム１０の構成は図示のものに限定されず、例えば、各ブロックのうち任意の部分を物理的ないし論理的に一体のものとして構成してもよいし、各ブロックを物理的ないし論理的に２以上の要素に分けて構成してもよい。
【００５６】
図４は、本実施形態に係るタスク実行システム１０における処理フローの一例を示す図である。まず第１入力部１２が、センサ３０や外部機器４０などの入力側外部システム２０から情報を取得する（ステップＳ３１）。第１入力部１２は、第２入力部１４から情報を取得することもある。第１入力部１２は、取得した情報を、必要に応じて学習モジュールの処理に適した形式にデータ変換等した後に、学習モジュール１６に出力する。
【００５７】
学習モジュール１６は、第１入力部１２から入力された情報に基づいて、学習済みモデルを用いた演算処理を行う（ステップＳ３２）。学習モジュール１６は、第２入力部１４から情報が入力されることもあり、その場合は、第１入力部１２から入力された情報と第２入力部１４から入力された情報に基づいて演算処理が行われ、演算結果は出力部１８に渡される。
【００５８】
出力部１８は、学習モジュール１６から入力された情報に基づいて、出力側外部システム５０に所定のタスクを実行させるための情報を生成し、出力側外部システム５０に出力する（Ｓ３３）。出力部１８は、第２入力部１４から情報が入力されることもあり、その場合は、学習モジュール１６から入力された情報と第２入力部１４から入力された情報に基づいて、出力側外部システム５０に所定のタスクを実行させるための情報を生成する。例えば、出力側外部システム５０がロボット装置であり、所定のタスクが、ロボットに実行させる所定の動作である場合には、出力部１８は、学習モジュール１６から複数の動作候補を取得し、第２入力部１４から入力された情報に基づいて、複数の動作候補から所定の動作候補を選択して、出力側外部システム５０に対して情報を出力することができる。
【００５９】
ステップＳ３１〜Ｓ３３の処理と並行して、所定のタスクを実行するために必要な条件であって、ユーザＰが指定したタスクの要件や制約条件等の条件を、第２入力部１４が取得する（ステップＳ３４）。第２入力部１４は、取得した情報を、第１入力部１２、学習モジュール１６又は出力部１８の少なくともいずれかに渡す。第１入力部１２、学習モジュール１６又は出力部１８のいずれに情報が渡されるかは、出力側外部システム５０に実行させるタスク等に応じて設定されることが好ましいが、この限りではない。
【００６０】
以下、タスク実行システム１０を、画像検査装置、把持システム、障害物回避システム、人物検索システム及び逆運動学モデルに適用した実施例について説明する。
【００６１】
＜実施例１：画像検査装置＞
図５は、タスク実行システム１０を画像検査装置に適用した場合の機能構成の一例を示すブロック図である。本実施例における画像検査装置１００は、所定のタスクとしてカメラで撮像される画像を用いて製品等の対象物の良不良の判定を行う装置であり、タスク実行システム１１０と、カメラ１３０と、表示器１５０とを含むシステムを、ここでは画像検査装置と称するものとする。タスク実行システム１１０は、第１入力部１１２と、第２入力部１１４と、判定部１１６と、出力部１１８とを備える。なお、本実施例におけるタスク実行システム１１０、第１入力部１１２、第２入力部１１４、判定部１１６、出力部１１８、カメラ１３０及び表示器１５０は、それぞれ図２におけるタスク実行システム１０、第１入力部１２、第２入力部１４、学習モジュール１６、出力部１８、センサ３０及び出力側外部システム５０に相当する構成である。すなわち、画像検査装置１００の各構成に付与された符号の下２ケタは、図２において当該構成に対応する構成の符号に等しい。他の実施例についても同様である。
【００６２】
本実施例において、画像検査装置１００は、カメラ１３０で撮影した検査対象物の画像が、第１入力部１１２を介して判定部１１６に入力される。これに加えて、ユーザＰの入力した条件としての検査基準が、第２入力部１１４を介して判定部１１６に入力される。
【００６３】
判定部１１６は、学習済みモデル（例えば、学習済みのニューラルネットワーク）により構成されている。判定部１１６は、製品の外観が写った画像と検査基準とが入力されると、ユーザが指定した検査基準を考慮して、製品の検査結果を出力する。例えば、検査結果は「良」又は「不良」のいずれかである。判定部１１６が出力した検査結果は、出力部１１８を介して表示器１５０に検査結果が表示される。また、画像検査装置１００は、検査結果に加えて、ユーザが指定した検査基準に基づく情報を表示器１５０に表示してもよい。検査基準としては、例えば、検査を行う対象物に関する基準、検査を行う環境に関する基準、検査の判定に関する基準、を入力することができる。検査を行う対象物の基準としては、例えば、対象物の材質、大きさ、色、反射度、透明度等の少なくともいずれかを入力することができる。また、検査が行われる環境の基準としては、例えば、環境の明るさの度合いを入力することができる。また、検査の判定基準として、出力すべき良不良の厳しさを示す基準を入力することができる。検査基準の例はこれらに限られず、また、複数の検査基準を組合せて使用してよい。
【００６４】
図６は、本実施例において、判定部１１６を構成する学習済みモデルを機械学習によって獲得する際に与えられる訓練データの一例を示す図である。同図に示すように、訓練データは、画像と判定基準ごとの検査結果の正解データとが対応付けられている。図６に示す例では、入力される各画像（画像１，画像２,・・・）は、検査対象物の画像である。ここでは、判定基準が３段階存在する。画像１は、基準１〜３のいずれでも検査結果を「良」と判定すべき画像である。画像２は、基準１と２では検査結果を「良」と判定し、基準３では「不良」と判定すべき画像である。画像３は、基準１では検査結果を「良」と判定し、基準２と３では「不良」と判定すべき画像である。画像４と５は、基準１〜３のいずれでも検査結果を「不要」と判定すべき画像である。
【００６５】
学習器に対し、図６に示すような、画像と、判定基準ごとの検査結果の正解データが対応付けられた訓練データを複数与えて教師あり学習を行うことにより、画像検査装置１００に用いられる学習済みモデルを獲得することができる。
【００６６】
図６に示す訓練データによる学習の結果得られる学習済みモデルは、ユーザが基準１〜３のいずれかの判定基準を選択すると、選択された判定基準に従った検査結果を出力することができる。図６の例では、基準１，２，３はそれぞれ甘い基準、標準的な基準、厳しい基準であるといえる。
【００６７】
本実施例では、ユーザＰが入力する基準が３段階の場合について説明したが、２段階あるいは４段階以上の基準を設けてもよいことはいうまでもない。また、基準１，２，３といった離散的な数値ではなく、−１から１までのような範囲をもった連続値によってユーザＰが基準を指定できるようにしてもよい。さらに、数値ではなく、予め用意されたラベル（甘い、標準、厳しい等）からユーザＰが基準を選択できるようにしてもよい。
【００６８】
このように、所望の検査基準の形式を含む訓練データを用いて機械学習を行うことで検査基準に応じて判断結果が変動する学習済みモデルを獲得し、獲得した学習済みモデルを有する学習モジュール１６と、学習モジュール１６に対してユーザＰから任意に入力される検査基準と、を使用することで、用いて、検査実行時にユーザが検査の内容に応じて、その検査基準を柔軟に指定できる画像検査装置を実現することができる。
【００６９】
＜実施例２−１：把持システム（１）＞
図７は、タスク実行システム１０を把持システムに適用した場合の機能構成の一例を示すブロック図である。本実施例における把持システム２００は、ロボットにより物体を把持させるシステムであり、タスク実行システム２１０と、カメラやエンコーダなどのセンサ２３０と、ロボット２４０，２５０とを備える。図７ではロボット２４０とロボット２５０の符号を分けているが、実際には同じロボットを指しているものとする。また、センサ２３０の一部又は全部はロボット２４０に搭載されていてもよい。
【００７０】
タスク実行システム２１０は、第１入力部２１２と、第２入力部２１４と、予測器２１６と、動作決定部２１８とを備える。それぞれ、図２における、第１入力部１２、第２入力部１４、学習モジュール１６及び出力部１８に相当する構成である。
【００７１】
本実施例において、把持システム２００は、カメラ２３０で撮影したロボットのハンド及び把持対象物を含む画像と、ロボットの関節に搭載されたエンコーダ２３０の出力値から得られるロボット２４０の現在の姿勢とが、第１入力部２１２を介して予測器２１６に入力されるように構成されている。また、タスク実行システム２１０は、ロボット２４０の動作生成部２４４が作成した複数の動作候補を取得し、取得された複数の動作候補が第１入力部２１２を介して予測器２１６に入力されるように構成されている。これらに加えて、ユーザＰの入力した条件が、第２入力部２１４を介して予測器２１６に入力される。なお、動作生成部２４４は、タスク実行システム２１０に設けられていてもよく、ロボット２３０及び把持システム２１０とは別体に設けられていてもよい。また、動作生成部２４４は、学習済みモデルを有していてもよい。すなわち、動作候補の生成を、所定の機械学習に基づき生成された学習済みモデルを用いて行ってよい。このとき、動作生成部２４４は、学習モジュール１６により実行される所定のタスクを実現するためのサブ学習モジュールとして機能する。
【００７２】
ユーザＰが入力する条件としては、例えば、作業時の制約として把持対象物のうち「持たせたい場所」（把持推奨領域）や「持ってはならない場所」（把持禁止領域）などの制約条件を指定することが想定される。
【００７３】
予測器２１６は、ロボット２４０から取得された複数の動作候補を示す移動方向ベクトル、センサとしてのカメラ２３０から入力された画像や、センサとしてのエンコーダ２３０から入力された値に基いて算出されるロボットの現在の位置および／または姿勢と、ユーザが入力した制約条件と、をもとに、それぞれの移動方向ベクトルに従って移動した場合の把持達成率と、ユーザＰが入力する制約条件に対応した制約充足度を予測する。動作決定部２１８は、予測器から出力された把持成功率と制約充足度に基づいて各動作候補の評価値を算出し、評価値をもとに動作候補の中から次の動作を決定する。そして、決定された動作を実行させるための動作指令を生成して、ロボット２５０に出力する。また、図示省略するが、予測器２１６によって予測された把持達成率と制約充足度に基づく情報をディスプレイ等に出力して、ユーザＰに提示してもよい。
【００７４】
図８は、本実施例において、予測器２１６に入力される複数の動作候補（移動方向ベクトル）と、予測器２１６から出力される各動作候補の把持成功率及び制約充足度の一例を示す図である。同図では、（０，０，０）、（０，１，０）、（０，−１，０）、・・・などの移動方向ベクトルが次の動作の候補となっている。移動方向ベクトル（ｘ，ｙ，ｚ）において、ｘはハンドの左右方向の移動量、ｙはハンドの上下方向の移動量、ｚはハンドの回転量を表している。例えば（０，０，０）は、次の動作として、ハンドを動かさないことを表し、（０，１，０）は上方向に１単位ハンドを動かすことをあらわしている。
【００７５】
把持成功率は、次にその動作をしたときに最終的に把持に成功する確率を表している。制約充足度は、次にその動作をしたときに、ユーザが指定した制約条件を満たすか否かを表している。制約充足度が「１」の場合は制約条件を満たすが、「０」の場合は制約条件を満たさないことを表す。例えば、把持禁止領域をユーザが指定したとき、動作候補の動作を行うことで対象物の把持禁止領域をハンドが触れてしまう場合、当該動作候補の制約充足度を「０」と判定する。
【００７６】
図８に示す例では、予測器２１６が、動作候補（０，０，０）に対して把持成功率「０．４」、制約充足度「１」を出力し、動作候補（０，１，０）に対して把持成功率「０．７」、制約充足度「０」を出力することを表している。つまり、ハンドを動かさないとき、把持成功率は０．４しかないが、禁止領域には入らないこと、他方、ハンドを上方向に１単位動かすと把持成功率が０．７になるが、把持が成功した場合には、禁止領域を把持してしまうため制約充足度が０になることを表している。
【００７７】
なお、予測器２１６を構成する学習済みモデルは、ハンドと作業対象が写った画像と、ロボットの関節のエンコーダ値から得られるロボットの現在姿勢と、移動方向ベクトルとを入力すると、当該移動方向ベクトルに従ってハンドを移動させたときの把持成功率と制約充足度を出力するように機械学習されたものである。このような学習済みモデルは、例えば、ハンドと作業対象が写った画像と、ロボットの関節のエンコーダ値から得られるロボットの現在姿勢と、動作候補となる移動方向ベクトルと、当該移動方向ベクトルに従ってハンドを移動させたときの把持成功率と制約充足度とが対応付けられた訓練データを用いた機械学習によって獲得することができる。
【００７８】
動作決定部２１８は、予測器２１６から出力された動作候補ごとの把持成功率と制約充足度に基づいて、評価値を算出する。図８では、評価値＝把持成功率×制約充足度により算出しているが、評価値の算出手法はこれに限られるものではない。動作決定部２１８は、動作候補ごとの評価値にもとに、所定の動作決定ルールに従って、次にどの動作を行うかを決定する。
【００７９】
図９は、本実施例における動作決定ルールの一例である。図８の動作候補に図９の動作決定ルールを当てはめた場合、移動しない場合（０，０，０）の評価値が０．４＜０．９であるから条件１が不成立であり、動作候補（０，０，０．５）の評価値が０．６＞０．５であるから条件２も不成立であるから、条件３が成立し、「成功率が最大となる方向に移動」するという動作が選択される。したがって、次の動作として、移動方向ベクトル（０，０，０．５）が選択される。こうして、動作決定部２１８はハンドを９０度回転させるための動作指令をロボット２５０に出力する。
【００８０】
なお、ここでは、予測器２１６が把持成功率と制約充足度を出力し、動作決定部２１８において把持成功率と制約充足度に基づいて評価値を算出し、評価値に基づいて動作を決定する実施例について説明したが、予測器２１６がユーザの制約条件を加味した評価値を出力し、動作決定部２１８は予測器２１６から受け取った評価値に基づいて動作を決定するものとしてもよい。この場合、予測器２１６を構成する学習済みモデルは、ハンドと作業対象が写った画像と、ロボットの関節のエンコーダ値から得られるロボットの現在姿勢と、移動方向ベクトルとを入力すると、当該移動方向ベクトルに従ってハンドを移動させたときの評価値を出力するように機械学習されたものを用いればよい。なお、本実施例においては、ユーザＰが入力する条件として、把持推奨領域および／または把持禁止領域を入力することとしたが、これに加えて、動作決定を行うための評価値を入力するようにしてもよい。このとき、ユーザＰが入力した評価値は、第２入力部２１４を介して動作決定部（出力部）２１８に入力される。これによれば、物体を把持するためのグリッパの開閉動作を行うか否かの判断の基準を、ユーザＰが任意に設定できる。このとき、把持システム２００は、設定された基準や判断された結果に基づく情報をディスプレイ等に出力して、ユーザＰに提示してもよい。
【００８１】
＜実施例２−２：把持システム（２）＞
図１０は、把持システム２００の他の実施例を示す図である。実施例２−１では、把持成功率と制約充足度を１つの予測器２１６が出力するように構成したが、図１０に示すように、把持成功率と制約充足度を出力する予測器を分ける構成とすることができる。
【００８２】
この実施例では、予測器２１６ａは、ロボット２４０から取得された複数の動作候補に対して、カメラ２３０から入力された画像や、エンコーダ２３０から入力された値に基づいて算出されるロボットの現在の位置および／または姿勢をもとに、現在の状態でそれぞれの方向に移動した場合の把持達成率を予測する。また、予測器２１６ｂは、ロボット２４０から取得された複数の動作候補に対して、カメラ２３０から入力された画像や、エンコーダ２３０から入力された値に基づいて算出されるロボットの現在の位置および／または姿勢と、ユーザが入力した制約条件と、をもとに、現在の状態からそれぞれの方向に移動した場合の制約充足度を予測する。
【００８３】
図１１は、予測器２１６ａから出力される把持成功率と、予測器２１６ｂから出力される制約充足度の一例を示す図である。図１１（Ａ）は、予測器２１６ａに入力される複数の移動方向ベクトル（動作候補）と、予測器２１６ａから出力される各動作候補の把持成功率の一例を示す図である。図１１（Ｂ）は、予測器２１６ｂに入力される複数の移動方向ベクトル（動作候補）と、予測器２１６ｂから出力される各動作候補の制約充足度の一例を示す図である。
【００８４】
図１０に戻り、動作決定部２１８は、予測器２１６ａから動作候補ごとの把持成功率を取得し、予測器２１６ｂから動作候補ごとの制約充足度を取得し、これらを合わせて、動作候補ごとの評価値を算出する。他の処理は、図６の実施例と同様であるので、説明を省略する。
【００８５】
把持成功率と制約充足度を予測する予測器を２つに分けることにより、把持成功率を予測するための学習済みモデルと、制約充足度を予測する学習済みモデルを、それぞれ分けて学習させることができるようになる。例えば、把持成功率を予測するための予測器２１６ａは、従来からあるものを利用し、ユーザの入力した制約条件に基づく制約充足度を予測するための予測器２１６ｂについて、機械学習を行って学習済みモデルを獲得すればよい。このように、把持システム２００を構成する予測器２１６を複数の予測器に分けて構成することにより、例えば種々の制約条件を追加しようとする場合に、予測器２１６をはじめから作り直す必要がなく、個々の制約条件に応じて個別に機械学習をすればよいため、機械学習を行うための訓練データを縮約できる。また、個々の制約条件に応じて獲得された学習済みモデルを追加すればよいため、予測器２１６を柔軟に構成することができるようになる。
【００８６】
この把持システム２００のように、タスク実行システム１０を所定のシステムに適用したときに、当該システムが複数の予測器２１６を有するとき、複数の予測器２１６は、少なくとも以下の２つの学習モジュールを含むことが好ましい。すなわち、外部システム２０から取得されるセンシングデータなどの情報を入力データとして情報処理を行う第１の学習モジュールと、外部システム２０から取得される情報とユーザＰが入力する条件を学習モジュールでの演算に適したデータ形式に変換した情報とを入力データとして情報処理を行う第２の学習モジュールの２つである。
【００８７】
本実施例において、第１の学習モジュールは、センサ２３０から取得されるセンシングデータを入力データとし、把持成功率を出力する学習モジュール２１６ａである。また、第２の学習モジュールは、センサ２３０から取得されるセンシングデータと、ユーザＰが入力する条件としての把持推奨領域および／または把持禁止領域を示す情報と、を入力データとし、条件の充足度を出力する学習モジュール２１６ｂである。このように、複数の学習モジュールを含む構成によれば、ロボットにより対象物を把持するタスクを実行するために必須な学習モジュール２１６ａと、タスクを実行するときの制約条件を考慮した制約充足度を示す情報を出力する学習モジュール２１６ｂとを別々に構成することができるので、タスクに課す制約条件に応じて、適切な学習モジュールの使い分けを容易にすることができる。
【００８８】
＜実施例２−３：把持システム（３）＞
図１２は、把持システム２００の他の実施例を示す図である。実施例２−１では、ユーザＰが入力した条件が、第２入力部２１４を介して予測部２１６に入力される構成について説明したが、図１２に示すように、ユーザＰが入力した条件が、第１入力部２１２に入力される構成とすることができる。
【００８９】
この実施例において、第１入力部２１２は、ロボット２４０の動作生成部２４４が作成した複数の動作候補（当初の動作候補）を受け付ける。他方、第１入力部２１２は、ユーザＰが入力した制約条件を、第２入力部２１４を介して受け付ける。第１入力部２１２の情報生成部２１２２は、ロボット２４０から取得した当初の動作候補のそれぞれが、ユーザＰが入力した制約条件を満たすか否かを判別し、制約条件を満たす動作候補を予測部２１６に渡す。予測部２１６は、入力された複数の動作候補のそれぞれについて把持成功率を予測し、動作決定部３１８において、把持成功率に基づいて次の動作を決定する。これにより、ユーザＰが入力した制約条件を満たさない動作候補については予測部２１６に入力する前に候補から外すことができるため、予測部２１６における演算時間を短縮できる。
【００９０】
図１３は、実施例２−１乃至２−３に記載の把持システム２００において、ユーザＰが制約条件を指定する際の一例を示す図である。例えば、把持対象となる物体のうち、触れてはいけない領域（把持禁止領域）や、把持させたい領域（把持推奨領域）が存在するとき、ユーザＰは、コンピュータの表示画面等に表示された把持対象物の３Ｄモデル上で、制約条件を指定することができる。ユーザが指定した制約条件を考慮した学習済みモデルを獲得する際、ユーザが入力した制約条件を、学習モデルに入力可能な、すなわち、学習モデルで行われる演算に適した形式に変換する必要がある。図１３に示す例では、ユーザが指定した制約条件を特徴量ベクトルに変換することによって、ニューラルネットワークに入力可能な形式に変換させている。具体的には、第２入力部２１４に接続された所定の表示装置に、把持対象の２次元又は３次元形状を表示する。このとき把持対象物の形状を特定の大きさのボックス（ボクセル）で離散化したデータを保持しておく。第２入力部２１４に接続された所定の隆の句装置を介してユーザが指定した把持推奨領域および／または把持禁止領域に応じて、把持対象物を構成するボクセルに対し、把持可能である旨を示す数値ベクトルと、把持可能である旨を示す数値ベクトルとを対応付ける。これにより、生成された把持対象物をボクセルで離散化した数値ベクトルと、各ボクセルに対応づけられた把持可能または把持不可能である旨を示す数値ベクトルデータ、とに基づいて把持可能なセルと把持不可能なセルを識別可能であって、ニューラルネットワークに入力可能な形式のベクトルを生成すればよい。
【００９１】
＜実施例３：障害物回避システム（多関節ロボット）＞
図１４は、タスク実行システム１０を多関節ロボットにおける障害物回避システムに適用した場合の機能構成の一例を示すブロック図である。本実施例における障害物回避システム３００は、ロボットが動的な環境において障害物を回避しつつ、作業を自律的に実行するシステムである。ユーザＰが入力する作業に対する要求に関する条件として、障害物を回避する実現性と作業効率との優先度合いを使用することができる。すなわち、タスク実行システム１０は、ユーザＰが、条件として、障害物を回避する実現性としての障害物を回避する確率と作業効率としての作業速度とのバランス、を指定できるように構成されている。また、ユーザＰが入力する条件として、例えば、障害物を回避する実現性、作業速度、に加え、「移動に係る消費エネルギー」などを含む、複数の指標に対する重要度や優先度を指定することができる。
【００９２】
障害物回避システム３００は、タスク実行システム３１０と、センサ３３０と、ロボット３４０，３５０とを備える。センサ３３０の一部または全部はロボット３４０に搭載されてもよい。図１４ではロボット３４０とロボット３５０の符号を分けているが、実際には同じロボットを指しているものとする。
【００９３】
タスク実行システム３１０は、第１入力部３１２と、第２入力部３１４と、予測部３１６と、動作決定部３１８とを備える。それぞれ、図２における、第１入力部１２、第２入力部１４、学習モジュール１６及び出力部１８に相当する構成である。
【００９４】
本実施例において、障害物回避システム３００は、センサ３３０がセンシングしたロボット周辺に存在する障害物に関する情報としての点群が、第１入力部３１２を介して予測部３１６に入力されるように構成されている。なお、障害物に関する情報としては、センサ３３０によりセンシングされた障害物の形状を、多面体や点群により近似して数値ベクトルとして表現されていることが好ましい。また、タスク実行システム３１０は、ロボット３４０の動作計画部３４２が作成した、障害物の存在を加味しない動作経路である本来の目標軌跡を取得し、第１入力部３１２を介して予測部３１６に入力する。さらに、ロボット３４０の動作生成部３４４が生成した障害物を回避するための回避行動の候補を取得し、第１入力部３１２を介して予測部３１６に入力する。これらに加えて、ユーザＰの入力した条件である安全係数が、第２入力部３１４を介して予測部３１６に入力される。なお、動作生成部３４４は、障害物を回避するための回避行動の候補を送信する代わりに、ロボット３４０の現在の姿勢からいずれの方向に移動すべきかを示す動作候補を送信してもよい。
【００９５】
予測部３１６は、複数の回避行動の候補のそれぞれについて、回避成功率と目標逸脱率を予測し、ユーザの指定した安全係数を考慮した評価値を出力する。動作決定部３１８は、評価値に基づいて回避行動を決定し、決定された回避行動を実現させるための動作指令をロボット３５０に出力する。ロボット３５０は、タスク実行システム３１０から受け取った動作指令に基づいて回避行動を実行する。加えて、障害物回避システム３００は、ユーザの指定した安全係数に基づく情報をディスプレイ等に表示して、ユーザに提示してもよい。
【００９６】
また、予測部３１６は、複数の回避行動の候補のそれぞれについて、回避成功率と目標逸脱率を予測して、動作決定部３１８に出力してもよい。このとき、ユーザが指定した安全係数は、第２入力部３１４から動作決定部３１８に入力される（図１４の破線矢印）。動作決定部３１８において、回避成功率と目標逸脱率をもとに、複数の回避行動の候補のそれぞれについて、ユーザの指定した安全係数を考慮した評価値を算出し、評価値に基づいて回避行動を決定してもよい。
【００９７】
図１５は、本実施例において、予測部３１６に入力される本来の目標軌跡の候補と、予測器３１６から出力される目標軌跡の候補ごとの回避成功率及び目標逸脱率の一例を示す図である。同図において、軸１、２、・・・、６は、６軸多関節ロボットの各関節を構成するモータの番号である。ｖ１、ｖ２、・・・、ｖｎは、ロボットの動作候補（目標軌跡）の種別を示す記号である。各動作を表現する記号のうち、矢印はモータの回転方向を表し、φはモータが動かないこと表している。具体的には、「↑」はモータを正方向に回転させ、「↓」はモータを逆方向に回転させ、「φ」はモータを動かさない。また、モータの回転方向を矢印ではなく数値ベクトル（−１〜＋１）で表現して、回転方向と合わせて回転量を連続的に表してもよい。また、数値ベクトルをモータの回転方向としてではなく、モータの加速度（角加速度）として表してもよい。
【００９８】
回避成功率Ｐは、ロボットが動作ｖｎを行った場合に、障害物を回避できる確率を示す。目標逸脱率Ｑは、ロボットが動作ｖｎを行った場合に、障害物が無かった場合の通常経路（目標軌跡）にどれほど近いかを示す指標である。例えば、障害物がなかった場合の動作軌跡と完全一致している場合を１とし、始点と終点のみが一致しており中間軌跡が一切一致していない場合を０とした指標である。
【００９９】
例えば、図１５において、動作候補ｖ１は、軸１の関節を正方向に回転させ、残りの軸２〜６の関節は動かさないという動作を示しており、次の動作として動作候補ｖ１が実行されたときの回避成功率と目標逸脱率は、それぞれ０．２と０．８であることを示している。すなわち、予測器３１６は現在の状態において、動作候補ｖ１の回避成功率と目標逸脱率として、それぞれ０．２と０．８を出力する。
【０１００】
本実施例において、ユーザＰは、安全係数αを入力する。この安全係数によって、いずれの動作候補ｖｎを選択するかが決定される。例えば、動作の評価値Ｋを、評価式：Ｋ＝回避成功率×α（安全係数）＋目標逸脱率×（１−α）  によって算出する場合、ユーザが安全係数αを調整することによって、回避成功率と目標逸脱率のいずれを重視するかを調整することができる。図１５の例では、例えば、安全係数αを１とすれば、回避成功率の高い動作候補ｖ２が選択され、安全係数αを０とすれば、目標逸脱率の高い動作候補ｖ１が選択される。このように、本実施例では、人による入力を追加することで、安全性と効率のトレードオフをユーザがその場で指定することができるようなる。
【０１０１】
なお、予測部３１６は学習済みモデルによって構成される。学習器においては、回避行動の候補を実行した場合の回避成功率と、本来の目標軌跡（作業目標動作）からの逸脱率の比が、人による入力の値に近づくほど高い報酬が得られるような報酬関数を用いて訓練を行うことで、所望の出力を行う学習済みモデルを獲得することができる。
【０１０２】
＜実施例４：障害物回避システム（マルチエージェント）＞
図１６は、タスク実行システム１０をマルチエージェントにおける障害物回避システムに適用した場合の機能構成の一例を示すブロック図である。本実施例における障害物回避システム４００は、複数の移動ロボット（エージェント）が、工場や倉庫などの共通の空間内でそれぞれの目的地に衝突せずに最短時間で到達する経路を決定するシステムであり、タスク実行システム４１０と、移動ロボット４４０，４５０とを備える。移動ロボット４４０には、カメラ４３０が搭載されている。図１６では移動ロボット４４０と移動ロボット４５０の符号を分けているが、実際には同じ移動ロボットを指しているものとする。
【０１０３】
タスク実行システム４１０は、第１入力部４１２と、第２入力部４１４と、予測部４１６と、動作決定部４１８とを備える。それぞれ、図２における、第１入力部１２、第２入力部１４、学習モジュール１６及び出力部１８に相当する構成である。また、本実施例において、第１入力部４１２は、状態認識部４１２１を含む。これは図２における、状態認識部１２１に相当する構成である。
【０１０４】
本実施例において、障害物回避システム４００は、カメラ４３０が撮影した移動ロボット周辺の画像が、第１入力部４１２の状態認識部４１２１に入力される。状態認識部４１２１は、カメラ４３０から取得した画像に基づいて移動ロボット４４０の状態を認識し、状態ベクトルを予測部４１６に出力する。また、タスク実行システム４１０は、ロボット４４０の動作計画部４４２が作成した本来の目標軌跡（目標ベクトル）を取得し、第１入力部４１２を介して予測部４１６に入力する。さらに、ロボット４４０の動作生成部４４４が生成した他の移動ロボットとの衝突を回避するための回避行動の候補を取得し、第１入力部４１２を介して予測部４１６に入力する。
【０１０５】
図１７は、本実施例におけるマルチエージェントシステムの概略図である。同図に示す例では全部で５台の移動ロボットがあり、それぞれの位置と速度を示す状態ベクトル（ｐ，ｖ）を有する。また、移動ロボットは目標妃を示す目標ベクトル｛ｕ0｝を有する。
【０１０６】
図１６に戻り、予測部４１６は、第１入力部４１２から入力された目標ベクトル｛ｕ0｝と、状態ベクトル｛ｐ0，ｖ0，ｐ1，ｖ1，ｐ2，ｖ2，ｐ3，ｖ3｝と、複数の回避動作の候補｛↑，↓，←，→，φ｝に基づいて、複数の回避行動の候補のそれぞれについて評価値を算出し、動作決定部４１８に出力する。
【０１０７】
動作決定部４１８には、評価値に加えて、ユーザＰの入力した安全係数が、第２入力部４１４を介して入力される。動作決定部４１８は、評価値と安全件数に基づいて回避動作を決定し、動作指令をロボット４５０に出力する。また、障害物回避システム４００は、ユーザの入力した安全係数に基づく情報をディスプレイ等に表示して、ユーザに提示してもよい。
【０１０８】
各移動ロボットは、自身の現在状態と、周囲の移動ロボットの現在状態をもとに、最適な行動を決定する必要があり、そのような行動ポリシーを機械学習により獲得することができる。
【０１０９】
＜実施例５：人物検索システム＞
図１８は、タスク実行システム１０を人物検索システムに適用した場合の機能構成の一例を示すブロック図である。本実施例における人物検索システム５００は、監視映像から、見本で示された特定の人物を抽出するシステムである。本実施例では、重視したい体の部位をユーザＰが指定することにより、効果的な絞り込みを可能にしたものである。
【０１１０】
人物検索システム５００は、タスク実行システム５１０と、動画を撮影してフレーム画像を取得する監視カメラ５３０と、見本画像が格納された外部システム５４０と、処理結果を表示するための表示器５５０とを備える。タスク実行システム５１０は、第１入力部５１２と、第２入力部５１４と、判定部５１６と、出力部５１８とを含む。
【０１１１】
本実施例において、人物検索システム５００は、監視カメラ５３０が撮影した動画フレーム画像が、第１入力部５１２を介して判定部５１６に入力される。また、外部システム５４０に格納された見本画像が、第１入力部５１２を介して判定部５１６に入力される。
【０１１２】
判定部５１６は、取得された動画フレーム画像と見本画像から、特定の人物が映っているか否かを判定する。本実施例では、判定部５１６は複数の学習モジュールによって構成される。各学習モジュールはそれぞれ身体の所定の部位を比較して一致度を判定することができるように機械学習されている。ここでは、判定部は４つの比較部により構成され、それぞれ、目、口、髪型及び輪郭を比較するためのニューラルネットワークにより構成さえれている。４つの判定部は、カメラ５３０から入力された画像に映っている人物と、見本画像の人物とを比較して、各部位（目、口、髪型、輪郭）ごとに一致度を判定し、部位ごとの一致度を出力する。
【０１１３】
出力部５１８は、部位ごとの一致度を判定部５１６から取得する。他方、出力部５１８は、ユーザＰが入力した部位ごとの重みを第２入力部５１４から受け取り、部位ごとの重み付けを考慮した総合的な一致度を算出し、表示器５５０に出力する。また、人物検索システム５００は、ユーザＰが入力した部位ごとの重みに基づく情報を、表示器５５０に出力してもよい。
【０１１４】
図１９は、本実施例における、部位ごとの一致度と重みの一例を示す図である。各部位の重みは、ユーザが入力したものである。出力部５１８は、判定部から出力された各部位の一致度と、ユーザの入力した各部位の重みとに基づいて、総合的な一致度を所定のロジックで算出する。
【０１１５】
＜実施例６：逆運動学モデル＞
図２０は、タスク実行システム１０を逆運動学モデルに適用した場合の機能構成の一例を示すブロック図である。図２１は、逆運動学において複数の解が存在する場合の一例を示す図である。
【０１１６】
本実施例における逆運動学制御システム６００は、ハンドやグリッパなどのエンドエフェクタの姿勢が与えられたときに、その姿勢を実現するジョイント角を出力することのできるシステムである。エンドエフェクタの姿勢を与えた時に、図２１に示すように、それを実現するジョイント角が複数存在する場合がある。本実施例では、現在姿勢からの移動距離が最小になるものなど、ユーザが指定した条件に基づいて、適切な解を出力する。
【０１１７】
図２０に示すように、本実施例における逆運動学制御システム６００は、タスク実行システム６１０と、センサ６３０と、ロボット６４０，６５０とを備える。センサ６３０の一部又は全部は、ロボット６４０に搭載されてもよい。図２０ではロボット６４０とロボット６５０の符号を分けているが、実際には同じロボットを指しているものとする。タスク実行システム６１０は、第１入力部６１２と、第２入力部６１４と、予測器６１６と、動作決定部６１８とを含む。
【０１１８】
本実施例において、タスク実行システム６１０は、エンコーダなどのセンサ６３０からロボット６４０の現在姿勢を取得し、第１入力部６１２を介して予測器６１６に入力する。また、エンドエフェクタの目標姿勢を、ロボット６４０の動作計画部（不図示）から取得し、第１入力部６１２を介して予測器６１６に入力する。タスク実行システム６１０はこれらに加えて、ユーザＰの入力した条件を取得し、第２入力部を介して予測器６１６に入力する。
【０１１９】
予測器６１６は、学習済みモデルによって構成され、ロボットの現在姿勢とエンドエフェクタの目標姿勢とに基づいて、目標姿勢を実現するためのジョイント角を出力する。複数の解が存在するときは、ユーザＰによって入力された条件に基づいて、適切な解を選択し、選択された解（ジョイント角）を出力する。
【０１２０】
動作決定部６１８は、予測器６１６から受け取ったジョイント角に基づいて動作指令を生成し、ロボット６５０に出力する。ロボット６５０は、受信した動作指令に基づいて動作することにより、ユーザが指定した条件に沿った形でエンドエフェクタの姿勢を制御することができる。また、逆運動学制御システム６００は、ユーザＰによって入力された条件に基づく情報を、ディスプレイ等に出力して、ユーザＰに提示してもよい。
【０１２１】
本実施例において、予測器６１６を構成する学習済みモデルは、学習器において、エンドエフェクタの姿勢とそれに対応するジョイント角のセットを訓練データとして与えて教師あり学習を行うことで、逆運動学のモデルを獲得することができる。具体的には、様々なジョイント角の組み合わせを生成し、それに対応するエンドエフェクタの姿勢を順運動学により計算することで、正解となる訓練データのセットを生成できる。
【０１２２】
さらに、エンドエフェクタの姿勢に対するジョイント角の組み合わせが複数存在するとき、所定の評価指標を設定し、評価指標が最大となるものを正解とする訓練データを生成する。このように生成された訓練データを用いた教師あり学習により、指定された評価関数を最大化するような解を出力する学習済みモデルを得ることができる。評価関数は、例えば、位置決め精度と移動コストの組み合わせなどにより表現できる。位置決め精度は、要求されたエンドエフェクタの姿勢とジョイント角の姿勢との差であり、移動コストは現在姿勢からの移動量として計算することができる。また、他にも、特異点からの距離などを評価指標としてもよい。
【０１２３】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で処理ステップの一部を省略したり、各処理ステップの順番を任意に変更して又は並列に実行することができる。また、各実施形態における機能構成及びハードウェア構成は一例にすぎず、図示したものに限定されるものではない。
【０１２４】
本明細書において説明した各処理を実施するプログラムは、記録媒体に記憶させてもよい。例えば、コンピュータに、上記プログラムをインストールすることによって、当該コンピュータをタスク実行システム１０として機能させることができる。ここで、上記プログラムを記憶した記録媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は特に限定されないが、例えば、ＣＤ−ＲＯＭ等の記録媒体であってもよい。
【０１２５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１２６】
（付記１）
少なくとも１つのメモリと、前記メモリと接続された少なくとも１つのハードウェアプロセッサとを備え、機械学習により所定の学習がなされた学習済みモデル又は前記学習済みモデルと入出力関係が同等のモデルを含む学習モジュールを用いて所定のタスクを実行させるシステムであって、
前記ハードウェアプロセッサが、
第１入力部において、一又は複数の外部システムから取得される情報を受け付けて、前記学習モジュールに入力される情報の少なくとも一部を生成し、
出力部において、前記学習モジュールから出力される情報を取得して、前記システムから出力される情報であって、当該情報に基づいて所定のタスクが実行される情報を生成し、
ユーザからの入力を受け付けて、前記ユーザからの入力に基づく情報が、前記第１入力部、前記学習モジュール又は前記出力部のうち少なくともいずれかに入力され、前記ユーザからの入力に基づいて前記出力部から出力される情報が変化する、
システム。
【０１２７】
（付記２）
機械学習により所定の学習がなされた学習済みモデル又は前記学習済みモデルと入出力関係が同等のモデルからなる学習モジュールを用いて所定のタスクを実行させるシステムを制御する方法であって、
少なくとも１つ以上のハードウェアプロセッサによって、第１入力部において、一又は複数の外部システムから取得される情報を受け付けて、前記学習モジュールに入力される第１情報の少なくとも一部を生成し、
前記ハードウェアプロセッサによって、前記学習モジュールにおいて、少なくとも前記生成された第１情報に基づいて、所定のタスクが実行される第２情報を出力し、
前記ハードウェアプロセッサによって、出力部において、少なくとも前記出力された第２情報を取得して、前記システムから出力される第３情報を生成し、
前記ハードウェアプロセッサによって、前記第１情報の生成、前記第２情報の出力、又は、前記第３情報のせ生成の少なくともいずれかと略並行に行われ、ユーザからの入力を受け付けて、前記ユーザからの入力に基づく情報を、前記第１入力部、前記学習モジュール又は前記出力部のうち少なくともいずれかに入力し、前記ユーザからの入力に基づいて前記出力部から出力される情報を変化させる、
方法。
【符号の説明】
【０１２８】
１…全体システム、１０…タスク実行システム、１２…第１入力部、１２１…状態認識部、１２２…情報生成部、１４…第２入力部、１６…学習モジュール、１８…出力部、２０…入力側外部システム、３０…センサ、４０…外部機器、４２…動作計画部、４４…動作生成部、５０…出力側外部システム、７０…学習器、１００…画像検査装置、２００…把持システム、３００…障害物回避システム、４００…障害物回避システム、５００…人物検索システム、６００…逆運動学制御システム。
【図１】
2018190241.tif 000003
【図２】
2018190241.tif 000004
【図３】
2018190241.tif 000005
【図４】
2018190241.tif 000006
【図５】
2018190241.tif 000007
【図６】
2018190241.tif 000008
【図７】
2018190241.tif 000009
【図８】
2018190241.tif 000010
【図９】
2018190241.tif 000011
【図１０】
2018190241.tif 000012
【図１１】
2018190241.tif 000013
【図１２】
2018190241.tif 000014
【図１３】
2018190241.tif 000015
【図１４】
2018190241.tif 000016
【図１５】
2018190241.tif 000017
【図１６】
2018190241.tif 000018
【図１７】
2018190241.tif 000019
【図１８】
2018190241.tif 000020
【図１９】
2018190241.tif 000021
【図２０】
2018190241.tif 000022
【図２１】
2018190241.tif 000023