IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特許7654983作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体
<>
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図1
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図2
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図3
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図4
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図5
  • 特許-作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-25
(45)【発行日】2025-04-02
(54)【発明の名称】作業推定装置、作業推定装置の制御方法、情報処理プログラム、および記録媒体
(51)【国際特許分類】
   G06T 7/20 20170101AFI20250326BHJP
   G06Q 50/04 20120101ALI20250326BHJP
   G06Q 10/0639 20230101ALI20250326BHJP
【FI】
G06T7/20 300Z
G06Q50/04
G06Q10/0639
【請求項の数】 6
(21)【出願番号】P 2021009138
(22)【出願日】2021-01-22
(65)【公開番号】P2022113042
(43)【公開日】2022-08-03
【審査請求日】2023-11-09
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100155712
【弁理士】
【氏名又は名称】村上 尚
(72)【発明者】
【氏名】木焦 火炎
【審査官】石田 宏之
(56)【参考文献】
【文献】特開2019-012328(JP,A)
【文献】特開2019-197373(JP,A)
【文献】特許第6789590(JP,B1)
【文献】特開2020-204819(JP,A)
【文献】特開2019-125013(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
G06Q 50/04
G06Q 10/0639
(57)【特許請求の範囲】
【請求項1】
作業場において作業者が行っている作業の内容を推定する作業推定装置であって、
前記作業場を撮像した作業場画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容を出力とする学習済モデルである作業予測モデルを用いて、前記作業場画像または前記特徴情報から、前記作業者が前記作業対象物について行っている作業の内容を予測する予測部と、
前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて、前記予測部の予測の正否を判定する判定部と、
前記判定部によって前記予測部の予測が正しいと判定されると、前記予測部によって予測された前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容として推定する推定部と、
を備えるとともに、
(A)前記作業場を含む複数の作業場を撮像した全体画像を入力、または、(B)前記作業場画像を入力、または、(C)前記全体画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場に前記作業者が存在するか否かを出力とする学習済モデルである存否モデルを用いて、前記全体画像、または、前記作業場画像、または、前記全体画像または前記作業場画像から生成された特徴情報から、前記作業場に前記作業者が存在するか否かを予測する存否予測部をさらに備え、
前記判定部は、前記存否予測部によって前記作業場に前記作業者が存在すると予測されると、前記予測部の予測が正しいと判定する、作業推定装置。
【請求項2】
前記作業に用いられる工具、前記作業対象物、および、前記作業場の少なくとも1つの状態を検知するセンサの検知情報から、前記作業場において前記作業者が行っている前記作業の内容を予測する作業検知部、
をさらに備え、
前記判定部は、前記存否予測部によって前記作業場に前記作業者が存在すると予測され、かつ、前記予測部によって予測された前記作業の内容と、前記作業検知部によって予測された前記作業の内容とが一致すると、前記予測部の予測が正しいと判定する
請求項1に記載の作業推定装置。
【請求項3】
前記作業予測モデルは、前記作業に用いられる工具、前記作業対象物、および、前記作業場の少なくとも1つの状態を検知するセンサの検知情報から予測された、前記作業場において前記作業者が行っている前記作業の内容が、前記作業場画像または前記作業場画像から生成された特徴情報に対してラベルとして付された学習用データセットを用いた機械学習によって、構築される
請求項1または2に記載の作業推定装置。
【請求項4】
作業場において作業者が行っている作業の内容を推定する作業推定装置の制御方法であって、
前記作業場を撮像した作業場画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容を出力とする学習済モデルである作業予測モデルを用いて、前記作業場画像または前記特徴情報から、前記作業者が前記作業対象物について行っている作業の内容を予測する予測ステップと、
前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて、前記予測ステップでの予測の正否を判定する判定ステップと、
前記判定ステップにて前記予測ステップでの予測が正しいと判定されると、前記予測ステップにて予測された前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容として推定する推定ステップと、
を含むとともに、
(A)前記作業場を含む複数の作業場を撮像した全体画像を入力、または、(B)前記作業場画像を入力、または、(C)前記全体画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場に前記作業者が存在するか否かを出力とする学習済モデルである存否モデルを用いて、前記全体画像、または、前記作業場画像、または、前記全体画像または前記作業場画像から生成された特徴情報から、前記作業場に前記作業者が存在するか否かを予測する存否予測ステップをさらに含み、
前記判定ステップは、前記存否予測ステップによって前記作業場に前記作業者が存在すると予測されると、前記予測ステップの予測が正しいと判定する、制御方法。
【請求項5】
請求項1から3のいずれか1項に記載の作業推定装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
【請求項6】
請求項5に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業場において作業者が行っている作業の内容を推定する作業推定装置等に関する。
【背景技術】
【0002】
従来、工場等の生産現場における作業工程の実施状況を撮像した撮像データを、当該作業工程の改善等に利用する種々の試みが知られている。例えば、下掲の特許文献1には、画像データの解析結果を利用して作業者の行動を判別する安全管理システムが開示されている。また、撮像画像から、撮像画像に撮像されている人間とオブジェクトとの間の相互作用(HOI、Human Object Interaction)として、人間がオブジェクトについて行っている動作を検出するHOI検出についても、研究が進められている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-173957号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、HOI検出による作業内容の予測は、それ単体では、精度が十分とはいえないとの問題がある。
【0005】
本発明の一態様は、撮像画像から、十分な精度をもって、作業者が作業対象物について行っている作業の内容を推定することのできる作業推定装置等を実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するために、本発明の一態様に係る作業推定装置は、作業場において作業者が行っている作業の内容を推定する作業推定装置であって、前記作業場を撮像した作業場画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容を出力とする学習済モデルである作業予測モデルを用いて、前記作業場画像または前記特徴情報から、前記作業者が前記作業対象物について行っている作業の内容を予測する予測部と、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて、前記予測部の予測の正否を判定する判定部と、前記判定部によって前記予測部の予測が正しいと判定されると、前記予測部によって予測された前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容として推定する推定部と、を備える。
【0007】
前記の構成によれば、前記作業推定装置は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場における前記作業者の存否の判定結果の少なくとも一方を用いて判定する。そして、前記作業推定装置は、前記作業予測モデルを用いた予測が正しいと判定されると、前記作業予測モデルを用いて予測した前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容であると推定する。
【0008】
つまり、前記作業推定装置は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて検証する。
【0009】
したがって、前記作業推定装置は、前記作業場画像から、前記作業場において前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【0010】
本発明の一態様に係る作業推定装置は、前記作業に用いられる工具、前記作業対象物、および、前記作業場の少なくとも1つの状態を検知するセンサの検知情報から、前記作業場において前記作業者が行っている前記作業の内容を予測する作業検知部をさらに備えてもよく、前記判定部は、前記予測部によって予測された前記作業の内容と、前記作業検知部によって予測された前記作業の内容とが一致すると、前記予測部の予測が正しいと判定してもよい。
【0011】
前記の構成によれば、前記作業推定装置は、前記センサの検知情報から予測した前記作業の内容と、前記作業予測モデルを用いて予測した前記作業の内容とが一致するか否かを判定する。そして、前記作業推定装置は、両者が一致すると判定すると、前記作業予測モデルを用いて予測した前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容であると推定する。
【0012】
つまり、前記作業推定装置は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記センサの検知情報から予測した前記作業の内容によって検証する。
【0013】
したがって、前記作業推定装置は、前記作業場画像から、前記作業場において前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【0014】
本発明の一態様に係る作業推定装置は、(A)前記作業場を含む複数の作業場を撮像した全体画像、または、(B)前記作業場画像、または、(C)前記全体画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場に前記作業者が存在するか否かを出力とする学習済モデルである存否モデルを用いて、前記全体画像、または、前記作業場画像、または、前記全体画像または前記作業場画像から生成された特徴情報から、前記作業場に前記作業者が存在するか否かを予測する存否予測部をさらに備えてもよく、前記判定部は、前記存否予測部によって前記作業場に前記作業者が存在すると予測されると、前記予測部の予測が正しいと判定してもよい。
【0015】
前記の構成によれば、前記作業推定装置は、前記存否モデルを用いて、前記作業場に前記作業者が存在するか否かを予測する。そして、前記作業推定装置は、前記作業場に前記作業者が存在すると予測すると、前記作業予測モデルを用いて予測した前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容であると推定する。
【0016】
つまり、前記作業推定装置は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記存否モデルを用いて予測した前記作業場における前記作業者の存否によって検証する。
【0017】
したがって、前記作業推定装置は、前記作業場画像から、前記作業場において前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【0018】
本発明の一態様に係る作業推定装置は、前記作業に用いられる工具、前記作業対象物、および、前記作業場の少なくとも1つの状態を検知するセンサの検知情報から、前記作業場において前記作業者が行っている前記作業の内容を予測する作業検知部と、(A)前記作業場を含む複数の作業場を撮像した全体画像、または、(B)前記作業場画像、または、(C)前記全体画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場に前記作業者が存在するか否かを出力とする学習済モデルである存否モデルを用いて、前記全体画像、または、前記作業場画像、または、前記全体画像または前記作業場画像から生成された特徴情報から、前記作業場に前記作業者が存在するか否かを予測する存否予測部と、をさらに備えてもよく、前記判定部は、前記存否予測部によって前記作業場に前記作業者が存在すると予測され、かつ、前記予測部によって予測された前記作業の内容と、前記作業検知部によって予測された前記作業の内容とが一致すると、前記予測部の予測が正しいと判定してもよい。
【0019】
前記の構成によれば、前記作業推定装置は、前記センサの検知情報から予測した前記作業の内容、および、前記作業場における前記作業者の存否を予測する。そして、前記作業推定装置は、前記作業場に前記作業者が存在すると予測し、かつ、前記センサの検知情報から予測した内容と前記作業予測モデルを用いて予測した内容とが一致すると、前記作業予測モデルを用いて予測した内容が正しいと判定する。
【0020】
つまり、前記作業推定装置は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記センサの検知情報から予測した前記作業の内容と、前記存否モデルを用いて予測した前記作業場における前記作業者の存否とによって検証する。
【0021】
したがって、前記作業推定装置は、前記作業場画像から、前記作業場において前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【0022】
本発明の一態様に係る作業推定装置において、前記作業予測モデルは、前記作業に用いられる工具、前記作業対象物、および、前記作業場の少なくとも1つの状態を検知するセンサの検知情報から予測された、前記作業場において前記作業者が行っている前記作業の内容が、前記作業場画像または前記作業場画像から生成された特徴情報に対してラベルとして付された学習用データセットを用いた機械学習によって、構築されてもよい。
【0023】
前記の構成によれば、前記作業推定装置は、前記センサの検知情報から予測した「前記作業場において前記作業者が行っている前記作業の内容」がラベルとして付された学習用データセットを用いた機械学習によって、前記作業予測モデルを構築する。
【0024】
教師あり学習のためには、大量の教師データ(学習用データセット)が必要であることが知られており、そのような教師データの生成に必要なラベリング作業、および、教師データに付されているラベル(メタデータ)は、「アノテーション」とも呼ばれる。
【0025】
例えば、前記作業予測モデルの構築に際して学習される教師データには、前記作業者を検出するためのバウンディングボックス(Bounding Box)の設定が不要であったとしても、前記作業場画像に対して以下の5つのアノテーションが必要となる。すなわち、前記作業場画像に対して、前記作業対象物を検出するためのバウンディングボックスの範囲を示す4点のうち、左下の点および右上の点の各々のX座標およびY座標を設定することが必要であり、つまり、4つのアノテーションが必要となる。さらに、前記作業場画像に対して、「前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容」を示す情報(ラベル)の付与が必要であり、つまり、1つのアノテーションが必要となる。
【0026】
そして、大量の前記作業場画像の各々について、「前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容」を人間に判定させようとする場合、それに要するコストは極めて大きい。
【0027】
そこで、前記作業予測モデルの構築に際して学習される教師データの生成に際しては、前記作業場画像から人間が判定した「作業の内容」ではなく、前記センサの検知情報から予測された「作業の内容」が、前記「作業の内容」を示すラベルとして付与される。つまり、前記作業予測モデルの構築に際して学習される教師データにおいては、前記作業場画像から人間が判定した「作業の内容」ではなく、前記センサの検知情報から予測された「作業の内容」が、前記「作業の内容」を示すラベルとして付されている。
【0028】
そのため、前記作業予測モデルの構築に必要となるコスト(特に、前記学習用データセットの生成に必要なアノテーションコスト)は、前記「作業の内容」を示すラベルとして「前記作業場画像から人間が判定した内容」を用いる場合と比べて、大幅に抑制できる。例えば、前記作業場画像に対して必要な上述の5つのアノテーションの内の1つを、「人間による判定内容」から「前記作業推定装置等の装置が前記センサの検知情報から予測した内容」へと変更するので、アノテーションコストを20%抑制することができる。
【0029】
したがって、前記の構成によれば、前記作業推定装置は、アノテーションコストが大幅に抑制された前記作業予測モデルを用いて、前記作業場画像から、前記作業場で前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【0030】
上記の課題を解決するために、本発明の一態様に係る制御方法は、作業場において作業者が行っている作業の内容を推定する作業推定装置の制御方法であって、前記作業場を撮像した作業場画像または前記作業場画像から生成された特徴情報を入力とし、前記作業場画像に撮像されている前記作業者が、前記作業場画像に撮像されている作業対象物について行っている作業の内容を出力とする学習済モデルである作業予測モデルを用いて、前記作業場画像または前記特徴情報から、前記作業者が前記作業対象物について行っている作業の内容を予測する予測ステップと、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて、前記予測ステップでの予測の正否を判定する判定ステップと、前記判定ステップにて前記予測ステップでの予測が正しいと判定されると、前記予測ステップにて予測された前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容として推定する推定ステップと、を含む。
【0031】
前記の構成によれば、前記制御方法は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場における前記作業者の存否の判定結果の少なくとも一方を用いて判定する。そして、前記制御方法は、前記作業予測モデルを用いた予測が正しいと判定されると、前記作業予測モデルを用いて予測した前記作業の内容を、前記作業場において前記作業者が行っている前記作業の内容であると推定する。
【0032】
つまり、前記制御方法は、前記作業予測モデルを用いて予測した前記作業の内容の正否を、前記作業予測モデルを用いずに予測された前記作業の内容、および、前記作業場に前記作業者が存在するか否かの判定結果の少なくとも一方を用いて検証する。
【0033】
したがって、前記制御方法は、前記作業場画像から、前記作業場において前記作業者が行っている前記作業の内容を、高精度に推定することができるとの効果を奏する。
【発明の効果】
【0034】
本発明の一態様によれば、撮像画像から、十分な精度をもって、作業者が作業対象物について行っている作業の内容を推定することができるとの効果を奏する。
【図面の簡単な説明】
【0035】
図1】本発明の実施形態1に係る情報処理装置の要部構成を示すブロック図である。
図2図1の情報処理装置を含む制御システム等の全体概要を示す図である。
図3】第二予測のうち作業予測のみを用いて第一予測を検証する場合に、図1の情報処理装置が実行する処理の全体概要を説明するフロー図である。
図4】第二予測のうち存否予測のみを用いて第一予測を検証する場合に、図1の情報処理装置が実行する処理の全体概要を説明するフロー図である。
図5】存否予測および作業予測の両方を用いて第一予測を検証する場合に、図1の情報処理装置が実行する処理の全体概要を説明するフロー図である。
図6】教師データの生成に必要なアノテーションの一例を説明する図である。
【発明を実施するための形態】
【0036】
〔実施形態1〕
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。本実施の形態においては、情報処理装置10を、「作業場Arにおいて作業者Huが行っている作業Opの内容を推定する作業推定装置」の典型例として説明を行なう。
【0037】
以下の説明において、「n」、「m」、「p」、「q」、「x」、「y」は、各々、「1」以上の整数を示すものとし、「p」と「q」とは互いに異なる整数であり、「x」と「y」とは互いに異なる整数であるものとする。
【0038】
§1.適用例
本発明の一態様に係る情報処理装置10(作業推定装置)についての理解を容易にするため、先ず、情報処理装置10が適用される環境について説明する。情報処理装置10は、例えば、作業場Arを撮像した作業場画像Icの解析結果を利用して、作業者Huが作業対象物Obについて行う作業Opの効率化等に資する情報(支援情報)を生成する。そこで先ず、作業者Hu、作業対象物Ob、作業Op、作業場Ar、および、1つ以上の作業場Arを含む工場Fa等について、説明する。
【0039】
(工場および作業工程について)
生産現場である工場Faにおいては、例えば、各種の製品が、1つ以上の作業工程Pr(1)、Pr(2)、Pr(3)、・・・Pr(n)を経て生産される。工場Faにおいて実施される複数の作業工程Pr(1)、Pr(2)、Pr(3)、・・・Pr(n)の各々は、例えば、「塗装」工程、「主要ワークの組み立て」工程、「主要ワークの本体への組み込み」工程、「検査」工程である。
【0040】
複数の工場Faを互いに区別する必要がある場合には、符号に「(A)」、「(B)」、「(C)」、・・・、「(Z)」等の添え字を付して区別する。例えば、「工場Fa(A)」、「工場Fa(B)」、「工場Fa(X)」、・・・、「工場Fa(Z)」と記載して区別する。複数の工場Faの各々を特に区別する必要がない場合は単に「工場Fa」と称する。
【0041】
また、作業工程Prについて、複数の作業工程Prの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別する。例えば、「作業工程Pr(1)」、「作業工程Pr(2)」、「作業工程Pr(3)」、・・・、「作業工程Pr(n)」と記載して区別する。複数の作業工程Prの各々を特に区別する必要がない場合は単に「作業工程Pr」と称する。
【0042】
(作業について)
作業工程Prにおいて、作業者Huは、1つ以上の作業Op(1)、Op(2)、Op(3)、・・・Op(n)を行う。例えば、作業工程Pr(x)において、作業者Huは、作業Op(x1)、Op(x2)、Op(x3)を行う。一例を挙げれば、作業工程Pr(m)が「塗装」工程の場合、作業Op(x1)は、作業対象物Obの「把持」であってもよいし、作業Op(x2)は、作業対象物Obの「塗装」であってもよいし、作業Op(x3)は、作業対象物Obの「運搬」であってもよい。
【0043】
作業Opについて、複数の作業Opの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「作業Op」と称する。
【0044】
(作業場について)
工場Faは、1つ以上の作業場Ar(1)、Ar(2)、Ar(3)、・・・Ar(n)を含む。作業場Arは「セル」とも呼ばれ、つまり、工場Faは、1つ以上のセルを含む。1つ以上の作業場Ar(1)、Ar(2)、Ar(3)、・・・Ar(n)の各々は、1つ以上の作業工程Pr(1)、Pr(2)、Pr(3)、・・・Pr(n)の各々に対応付けられている。すなわち、作業場Ar(m)は、作業工程Pr(m)に含まれる作業Op(m)を、作業者Huが行う領域である。
【0045】
作業場Arについて、複数の作業場Arの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「作業場Ar」と称する。
【0046】
(作業対象物について)
作業場Arには、作業者Huが行う作業Opの対象である作業対象物Obが1つ以上配置され、例えば、作業場Ar(x)には、作業対象物Ob(x1)、Ob(x2)、Ob(x3)、・・・、Ob(xn)が配置されている。
【0047】
作業対象物Obは、作業者Hu以外の存在であり、例えば、いわゆる「ワーク」であり、また、例えば、作業者Huが作業Opを行う際に用いる工具である。
【0048】
作業対象物Obについて、複数の作業対象物Obの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「作業対象物Ob」と称する。
【0049】
(作業者について)
工場Faには、作業工程Prに含まれる作業Opを実行する作業者Huが1人以上存在し、例えば、作業者Hu(1)、Hu(2)、Hu(3)、・・・、Hu(n)が存在する。作業者Huは、例えば、作業者Huが被っている帽子の頭頂部などに付された作業者IDによって識別されてもよい。具体的には、工場Faに存在する作業者Hu(1)と作業者Hu(2)とは、作業者Hu(1)が被る帽子に付された作業者ID(1)と、作業者Hu(2)が被る帽子に付された作業者ID(2)とにより、各々が識別されてもよい。また、或る作業者Hu(1)を、別の作業者Hu(2)にとっての作業対象物Obとみなしてもよい。
【0050】
作業者Huについて、複数の作業者Huの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「作業者Hu」と称する。
【0051】
(機器および動作について)
工場Faは、1つ以上の機器40(1)、40(2)、40(3)、・・・40(n)を備える。機器40は、センサなどの入力デバイス41と、アクチュエータなどの出力デバイス42とを含む。
【0052】
出力デバイス42は、PLC20によって出力を制御されるデバイスである。作業者Huは、作業Opを行う際に、出力デバイス42の出力を利用してもよく、具体的には、作業者Huは、出力デバイス42が実行する動作Acを利用して、作業Opを行ってもよい。すなわち、作業者Huは、作業Opを行う際に、出力デバイス42を工具として利用してもよく、言い換えれば、出力デバイス42は、作業者Huが作業Opを行う際に作業者Huが利用する工具であってもよい。例えば、作業工程Pr(x)に含まれる作業Op(x)を作業者Huが行う際には、出力デバイス42(x)が利用されてもよく、具体的には、出力デバイス42(x)が実行する動作Ac(x)を利用して、作業者Huは作業Op(x)を行ってもよい。
【0053】
入力デバイス41は、作業Opに用いられる工具(例えば、出力デバイス42、および、後述する出力デバイス42以外の器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態を検知するセンサ(検知装置)である。例えば、入力デバイス41は、工具の消費電力、工具・作業対象物Ob等の作業者Huによる把持、工具・作業場Ar・作業対象物Ob等が備えるボタンの作業者Huによる押下、工具・作業場Ar・作業対象物Ob等が備える開閉機構の開閉などを検知する。
【0054】
具体的には、入力デバイス41は、例えば電流検知センサであり、作業者Huが「作業Op(x):ネジ締め作業」を行う際に利用する「器具90(x):電動ドライバ」に流れる電流を検知してもよい。また、入力デバイス41は、例えば把持センサであり、「器具90(x):電動ドライバ」が作業者Huによって把持されたのを検知してもよい。さらに、入力デバイス41は、例えば開始/終了ボタンであり、作業者Huによる押下を検知してもよい。また、入力デバイス41は、例えば光電センサであり、工具・作業場Ar・作業対象物Ob等が備える開閉機構の開閉を検知してもよい。
【0055】
入力デバイス41は、検知した状態を示す情報(以下、「検知情報Id」とも称する)を、制御ネットワーク50を介して、PLC20へと周期的に出力する。特に、入力デバイス41は、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態を検知した時刻(検知時刻Td)」を、検知情報Idに含めてPLC20へと周期的に出力する。
【0056】
機器40について、複数の機器40の各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「機器40」と称する。同様に、入力デバイス41について、複数の入力デバイス41の各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「入力デバイス41」と称する。また、出力デバイス42について、複数の出力デバイス42の各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「出力デバイス42」と称する。
【0057】
さらに、動作Acについて、複数の動作Acの各々を区別する必要がある場合には、符号に「(1)」、「(2)」、「(3)」、・・・、「(n)」等の添え字を付して区別し、特に区別する必要がない場合は単に「動作Ac」と称する。
【0058】
また、「作業Op(x)に用いられる工具(例えば、出力デバイス42(x)または器具90(x))、作業対象物Ob(x)、および、作業場Ar(x)の少なくとも1つの状態」を示す検知情報Idを、特に「検知情報Id(x)」と表現することがある。
【0059】
(工具について)
工場Faは、出力デバイス42に加えて、出力デバイス42以外の器具90(不図示)を備えてもよい。作業者Huは、作業Opを行う際、器具90を利用してもよく、具体的には、作業者Huは、器具90が実行する動作Acを利用して、作業Opを行ってもよい。例えば、作業工程Pr(x)に含まれる作業Op(x)を作業者Huが行う際には、器具90(x)が利用されてもよく、具体的には、器具90(x)が実行する動作Ac(x)を利用して、作業者Huは作業Op(x)を行ってもよい。一例を挙げれば、作業者Huは、「器具90(x):電動ドライバ」の実行する「動作Ac(x):回転動作」を利用して、「作業Op(x):ネジ締め作業」を行ってもよい。
【0060】
前述の通り、器具90の状態(例えば、作業者Huによって使用されているとの状態)は、入力デバイス41によって検知され、入力デバイス41は、検知した「器具90の状態」を、制御ネットワーク50を介して、PLC20へと周期的に出力する。すなわち、入力デバイス41は、「器具90の状態」を検知すると、検知した「器具90の状態」と、その「器具90の状態」を検知した時刻(検知時刻Td)とを含む検知情報Idを、PLC20へと周期的に出力する。
【0061】
(作業場画像について)
作業場画像Icは、作業場Arを撮像した撮像画像であり、複数の作業場画像Icの各々は、複数の作業場Arの各々を撮像した撮像画像である。例えば、作業場画像Icは、作業場Arにおいて作業Opを行っている作業者Huを略正面から撮像した撮像画像であり、作業場画像Icは作業場Arごとに生成される撮像画像である。
【0062】
複数の作業場画像Icは、各々に撮像されている作業場Arによって区別されてもよい。例えば、複数の作業場画像Icの各々と、各々の作業場画像Icに撮像されている作業場Arとを対応付けることによって、複数の作業場画像Icの各々を区別してもよい。
【0063】
すなわち、作業場Ar(1)を撮像した作業場画像Icを作業場画像Ic(1)と記載し、作業場Ar(2)を撮像した作業場画像Icを作業場画像Ic(2)と記載してもよい。同様に、作業場Ar(n)を撮像した作業場画像Icを作業場画像Ic(n)と記載してもよい。
【0064】
複数の作業場画像Icについて、各々に撮像されている作業場Arによって複数の作業場画像Icを互いに区別する必要がない場合には、単に「作業場画像Ic」と称する。
【0065】
(全体画像について)
作業場画像Icが作業場Arごとの撮像画像であるのに対して、全体画像Iaは、複数の作業場Arが撮像されている撮像画像であり、例えば、工場Faの天井から見下ろした、工場Faの全体が撮像されている撮像画像である。
【0066】
以下では先ず、図2を用いて、情報処理装置10を含む制御システム1等の概要について説明する。
【0067】
(情報処理装置を含むシステムの全体概要について)
図2は、情報処理装置10を含む制御システム1等の全体概要を示す図である。これまで説明してきた環境について、情報処理装置10は、作業場Arを撮像した作業場画像Icから、作業場画像Icに撮像されている作業者Huが行っている作業Opの内容を高精度に推定する。
【0068】
セルカメラ30は、作業場Ar(つまり、セル)に設置され、作業場画像Icを生成する。例えば、作業場Arごとにセルカメラ30が設置され、複数のセルカメラ30の各々は、作業場Arごとに、作業場Arにおいて作業Opを行っている作業者Huを略正面から撮像可能な位置に設置される。セルカメラ30は、生成した作業場画像Icを、情報処理装置10へと出力し、特に、作業場Arを撮像した時刻である撮像時刻Tpと共に、作業場画像Icを、情報処理装置10へと出力する。
【0069】
工場Faにおいて作業場Arごとに設置されたセルカメラ30を互いに区別する場合、複数のセルカメラ30の各々と、各々のセルカメラ30が設置されている作業場Arとを対応付けることによって、複数のセルカメラ30の各々を区別してもよい。例えば、作業場Ar(1)に設置されているセルカメラ30をセルカメラ30(1)と記載し、作業場Ar(2)に設置されているセルカメラ30をセルカメラ30(2)と記載してもよい。同様に、作業場Ar(n)に設置されているセルカメラ30をセルカメラ30(n)と記載してもよい。
【0070】
天井カメラ80は、例えば工場Faの天井に設置され、複数の作業場Arを斜め上から見下ろす全体画像Iaを生成し、例えば、1台の天井カメラ80によって工場Faの全体を撮像した全体画像Iaを生成する。ただし、天井カメラ80が工場Faの天井に1台設置されることは必須ではなく、工場Faの天井に設置された複数の天井カメラ80の各々が、工場Fa内の複数の作業場Arを撮像した全体画像Iaを生成してもよい。つまり、天井カメラ80は、複数の作業場Arを撮像した全体画像Iaを生成できればよい。
【0071】
以下の説明においては、工場Faの天井に、広域撮像カメラである天井カメラ80を1台設置し、1台の天井カメラ80が、工場Faの全体を俯瞰して撮像した全体画像Iaを生成する例を説明する。天井カメラ80は、生成した全体画像Iaを、情報処理装置10へと出力し、特に、工場Faの全体を撮像した時刻(つまり、全体画像Iaを生成した時刻)である全体時刻Taと共に、全体画像Iaを、情報処理装置10へと出力する。
【0072】
(作業場画像に対する画像解析による、作業内容の予測)
情報処理装置10は、制御システム1に含まれ、例えばUSB(Universal Serial Bus)ケーブルを介して、セルカメラ30と通信可能に接続されている。情報処理装置10は、セルカメラ30から、作業場Arを撮像した作業場画像Icを取得し、取得した作業場画像Icに対し画像解析を実行して、作業場画像Icに撮像されている作業者Huが作業対象物Obについて行っている作業Opの内容を予測する。情報処理装置10は、HOI(Human Object Interaction)検出アルゴリズムを用いて、作業場画像Icから、「作業場画像Icに撮像されている作業者Huが作業対象物Obについて行っている作業Opの内容」を予測する。特に、情報処理装置10は、セルカメラ30から、作業場画像Icと共に、作業場画像Icが生成された時刻である撮像時刻Tpを取得し、取得した作業場画像Icと撮像時刻Tpとから、以下の予測を実行する。すなわち、情報処理装置10は、「撮像時刻Tpにおいて、作業場画像Icに撮像されている作業者Huが、作業場Arで、作業対象物Obについて行っている作業Opの内容」を予測する。作業場画像Icから予測される「作業者Huが作業対象物Obについて行っている作業Opの内容」を、特に、「撮像時刻Tpにおいて、作業者Huが、作業場Arで作業対象物Obについて行っている作業Opの内容」を、第一予測Pfとも称する。
【0073】
例えば、情報処理装置10は、作業場Ar(x)を撮像した作業場画像Ic(x)に対し画像解析を実行して、作業場Ar(x)において作業者Hu(x)が作業対象物Ob(x)について行っている作業Op(x)の内容を予測する。特に、情報処理装置10は、作業場画像Ic(x)から、「作業場画像Ic(x)が撮像された撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」を予測する。作業場画像Ic(x)から予測される、「作業場画像Ic(x)が撮像された撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」を、特に「第一予測Pf(x)」と称することがある。
【0074】
(全体画像に対する画像解析による、作業者の存否の予測)
情報処理装置10は、制御システム1に含まれ、例えばUSB(Universal Serial Bus)ケーブルを介して、天井カメラ80と通信可能に接続されている。情報処理装置10は、天井カメラ80から、工場Faの全体を俯瞰して撮像した全体画像Iaを取得し、取得した全体画像Iaに対し画像解析を実行して、作業者Huが作業場Arに居るかを予測する。情報処理装置10は、例えばYOLOなどの動線検出アルゴリズム(物体検出アルゴリズム)を利用して、全体画像Iaから、「全体画像Iaに撮像されている作業場Arに、作業者Huが居るか」を予測する。特に、情報処理装置10は、天井カメラ80から、全体画像Iaと共に、全体画像Iaが生成された時刻である全体時刻Taを取得し、取得した全体画像Iaと全体時刻Taとから、以下の予測を実行する。すなわち、情報処理装置10は、「全体時刻Taにおいて、作業者Huが作業場Ar(特に、作業場画像Icに撮像されている作業場Ar)に居るか」を予測する。
【0075】
したがって、情報処理装置10は、「撮像時刻Tpに対応する全体時刻Taにおいて、作業場Ar(特に、作業場画像Icに撮像されている作業場Ar)に作業者Huが居るか否か」を予測することができる。
【0076】
全体画像Iaから予測される「作業場Arにおける作業者Huの存否」を、特に、「撮像時刻Tpに対応する全体時刻Taにおいて、作業場Arに作業者Huが居るか否か」の予測を、存否予測Paとも称する。
【0077】
例えば、情報処理装置10は、「セルカメラ30(x)が生成した作業場画像Ic(x)に撮像されている作業場Ar(x)に作業者Hu(x)が居るか」を、天井カメラ80が生成した全体画像Iaに対する画像解析によって予測する。特に、情報処理装置10は、全体画像Iaから、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する全体時刻Taにおいて、作業者Hu(x)が、作業場Ar(x)に居るか」を予測する。全体画像Iaから予測される、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する全体時刻Taにおいて、作業者Hu(x)が作業場Ar(x)に居るか」の予測を、特に「存否予測Pa(x)」と称することがある。
【0078】
(検知情報を用いた、作業内容の予測)
また、情報処理装置10は、PLC(Programmable Logic Controller)20から、PLC20によって動作Acを制御される機器40が実行した動作Acの内容および結果を示す動作結果Laから生成された工程情報Ipを取得する。工程情報Ipには、例えば、「機器40が動作Acを実行した時刻」、および、「機器40による動作Acの実行が、入力デバイス41等によって検知された時刻」の少なくとも一方が、検知時刻Tdとして含まれている。
【0079】
情報処理装置10は、PLC20から取得する工程情報Ipによって、出力デバイス42の状態(例えば、動作Acの内容および結果を含む動作状態)を把握し、把握した状態から、作業者Huが出力デバイス42を用いて行っている作業Opの内容を予測する。特に、情報処理装置10は、検知時刻Tdを含む工程情報Ipから、「『撮像時刻Tpに対応する検知時刻Td』における出力デバイス42の状態」を把握する。そして、情報処理装置10は、把握した「『撮像時刻Tpに対応する検知時刻Td』における出力デバイス42の状態」から、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Huが出力デバイス42を用いて行っている作業Opの内容」を予測する。
【0080】
ただし、PLC20が、機器40の出力等から出力デバイス42の状態を把握し、把握した状態から作業者Huが出力デバイス42を用いて行っている作業Opの内容を予測してもよい。そして、PLC20は、予測した作業Opの内容を含む工程情報Ipを、情報処理装置10に出力してもよい。すなわち、出力デバイス42の状態から作業者Huが出力デバイス42を用いて行っている作業Opの内容を予測するのは、PLC20であっても、情報処理装置10であってもよい。情報処理装置10は、出力デバイス42の状態から予測される「作業者Huが出力デバイス42を用いて行っている作業Opの内容」を取得または生成できればよい。
【0081】
ここで、工程情報Ipは、「PLC20の制御する機器40の出力、および、PLC20による出力デバイス42に対する制御内容」等から生成される、出力デバイス42等の状態を示す情報である。そのため、PLC20は、「出力デバイス42からフィードバックとして取得する出力デバイス42の出力、および、出力デバイス42に対する制御内容」等から、出力デバイス42の状態を検知する検知装置と捉えることもできる。また、工程情報Ipは、「作業Opに用いられる工具(例えば、出力デバイス42、および、器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す情報である「検知情報Id」の一種と捉えることもできる。
【0082】
さらに、情報処理装置10は、PLC20から、入力デバイス41によって検知された「作業Opに用いられる工具(例えば、出力デバイス42、および、器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す検知情報Idを取得する。
【0083】
なお、情報処理装置10は、PLC20を介さずに、入力デバイス41から直接、入力デバイス41の検知した状態を示す検知情報Idを取得してもよい。
【0084】
検知情報Idには、入力デバイス41が「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を検知した時刻である検知時刻Tdが含まれる。
【0085】
情報処理装置10は、PLC20から取得する検知情報Idによって、作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態を把握し、把握した状態から、作業者Huが行っている作業Opの内容を予測する。
【0086】
ただし、入力デバイス41から取得した検知情報Idによって、工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態を把握し、把握した状態から作業者Huが行っている作業Opの内容を予測するのは、PLC20であってもよい。そして、PLC20が、予測した作業Opの内容を含む工程情報Ipを、情報処理装置10に出力してもよい。すなわち、工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態から作業者Huが行っている作業Opの内容を予測するのは、PLC20であっても、情報処理装置10であってもよい。情報処理装置10は、工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態から予測される「作業者Huが行っている作業Opの内容」を取得または生成できればよい。
【0087】
すなわち、情報処理装置10は、PLC20から取得する、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す検知情報Id(工程情報Ipを含む)を取得する。情報処理装置10は、取得した検知情報Idから、「作業者Huが行っている作業Opの内容」を予測し、特に、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Huが行っている作業Opの内容」を予測する。ただし、情報処理装置10は、PLC20が検知情報Idから予測した「作業者Huが行っている作業Opの内容」を、検知情報Idと共に、または、検知情報Idに代えて、PLC20から取得してもよい。例えば、情報処理装置10は、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Huが行っている作業Opの内容」を、検知情報Idと共に、または、検知情報Idに代えて、PLC20から取得してもよい。
【0088】
検知情報Id(工程情報Ipを含む)から予測される「作業者Huが行っている作業Opの内容」を、特に、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Huが行っている作業Opの内容」を、作業予測Poとも称する。
【0089】
例えば、情報処理装置10は、作業場Ar(x)において作業者Hu(x)が行っている作業Op(x)の内容を、以下の検知情報Id(x)(工程情報Ip(x)を含む)から予測する。すなわち、情報処理装置10は、「作業場Ar(x)に備えられた工具、作業場Ar(x)に配置されている作業対象物Ob(x)、および、作業場Ar(x)の少なくとも1つの状態」を示す検知情報Id(x)から、作業Op(x)の内容を予測する。「作業場Ar(x)に備えられた工具(例えば、出力デバイス42(x)、および、器具90(x)の少なくとも一方)」は、作業者Hu(x)が作業Op(x)を行う際に用いる工具である。特に、情報処理装置10は、工程情報Ip(x)から、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」を予測する。検知情報Id(x)(工程情報Ip(x)を含む)から予測される「『撮像時刻Tpに対応する検知時刻Td』において、作業者Hu(x)が行っている作業Op(x)の内容」を、「作業予測Po(x)」と称することがある。
【0090】
(予測した作業内容の検証と、推定結果の出力)
情報処理装置10は、作業場画像Icから予測した「作業者Huが作業対象物Obについて行っている作業Opの内容」を、以下の2つの予測の少なくとも一方を用いて、検証する。すなわち、情報処理装置10は、作業場画像Icから予測した内容を、全体画像Iaから予測した「作業者Huの存否」の予測、および、検知情報Idから予測された「作業者Huが行っている作業Opの内容」の少なくとも一方を用いて、検証する。つまり、情報処理装置10は、第一予測Pfの正否を、存否予測Paおよび作業予測Poの少なくとも一方を用いて検証し、特に、第一予測Pf(x)の正否を、存否予測Pa(x)および作業予測Po(x)の少なくとも一方を用いて検証する。
【0091】
第一予測Pf(x)は、情報処理装置10が作業場画像Ic(x)から予測した、「作業場Ar(x)において作業者Hu(x)が作業対象物Ob(x)について行っている作業Op(x)の内容」の予測である。「第一予測Pf(x)」は、例えば、作業場画像Ic(x)から予測された、「作業場画像Ic(x)が撮像された撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」である。
【0092】
存否予測Pa(x)は、情報処理装置10が全体画像Iaから予測した、「作業場Ar(x)に作業者Huが存在するか否か」の予測である。存否予測Pa(x)は、例えば、全体画像Iaから予測された、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する全体時刻Taにおいて、作業者Hu(x)が作業場Ar(x)に居るか」の予測である。
【0093】
作業予測Po(x)は、情報処理装置10が検知情報Id(x)から予測した、「作業場Ar(x)において作業者Hu(x)が行っている作業Op(x)の内容」の予測である。作業予測Po(x)は、例えば、検知情報Id(x)から予測された、「『撮像時刻Tpに対応する検知時刻Td』において、作業者Hu(x)が作業場Ar(x)で行っている作業Op(x)の内容」である。
【0094】
例えば、情報処理装置10(特に、後述する判定部150)は、存否予測Pa(x)において、「作業場Ar(x)に作業者Huが存在する」と予測されていると、「第一予測Pf(x)は正しい」と判定する。より具体的には、情報処理装置10は、存否予測Pa(x)として、「『撮像時刻Tpに対応する全体時刻Ta』において、作業者Hu(x)が作業場Ar(x)に居る」と予測されていると、「第一予測Pf(x)は正しい」と判定する。そして、情報処理装置10(特に、後述する推定部160)は、判定部150によって正しいと判定された第一予測Pf(x)を、推定結果として、外部へと出力する。
【0095】
例えば、情報処理装置10(特に、後述する判定部150)は、作業予測Po(x)における作業Op(x)と第一予測Pf(x)における作業Op(x)とが一致すると、「第一予測Pf(x)は正しい」と判定する。より具体的には、情報処理装置10は、存否予測Pa(x)における「『撮像時刻Tpに対応する検知時刻Td』での作業Op(x)の内容」と、第一予測Pf(x)における「撮像時刻Tpでの作業Op(x)の内容」とが一致しているか否かを確認する。そして、情報処理装置10は、両者が一致していることを確認すると、「第一予測Pf(x)は正しい」と判定する。そして、情報処理装置10(特に、後述する推定部160)は、判定部150によって正しいと判定された第一予測Pf(x)を、推定結果として、外部へと出力する。
【0096】
例えば、情報処理装置10(特に、後述する判定部150)は、存否予測Pa(x)において「作業場Ar(x)に作業者Huが存在する」と予測された場合に、作業予測Po(x)と第一予測Pf(x)とが一致するかを確認する。より具体的には、情報処理装置10は、存否予測Pa(x)として、「『撮像時刻Tpに対応する全体時刻Ta』において、作業者Hu(x)が作業場Ar(x)に居る」と予測された場合に、作業予測Po(x)と第一予測Pf(x)との一致を確認する。情報処理装置10は、存否予測Pa(x)における「撮像時刻Tpに対応する検知時刻Tdでの作業Op(x)の内容」と、第一予測Pf(x)における「撮像時刻Tpでの作業Op(x)の内容」との一致を確認すると、第一予測Pf(x)は正しいと判定する。そして、情報処理装置10(特に、後述する推定部160)は、判定部150によって正しいと判定された第一予測Pf(x)を、推定結果として、外部へと出力する。
【0097】
(マスタスレーブ制御システムについて)
制御システム1において、工場Faにおける作業工程Prを実施するのに用いられる機器40は、ラインコントローラとしてのPLC20により制御される。すなわち、PLC20をマスタとし、複数の機器40の各々をスレーブとするマスタスレーブ制御システムとしての制御システム1が構築され、複数の機器40の各々はネットワーク(制御ネットワーク50)を介してPLC20に通信可能に接続されている。PLC20は、制御ネットワーク50を介したデータ伝送を管理しているという意味で「マスタ」と呼ばれる。「マスタ」および「スレーブ」は、制御ネットワーク50上のデータ伝送の制御機能に着目して定義されるものであり、各装置間でどのような情報が送受信されるかについては、特に限定されない。
【0098】
PLC20は、制御システム1全体を制御する制御装置(コントローラ)であり、複数の機器40の各々と通信可能に接続されている。PLC20は、入力デバイス41(計測デバイス)としての複数の機器40の各々からの情報を入力データとして取得する。PLC20は、予め組み込まれたユーザプログラムに従って、取得した入力データを用いた演算処理を実行する。PLC20は、前記演算処理を実行して、制御システム1に対する制御内容を決定し、例えば、アクチュエータなどの出力デバイス42としての複数の機器40の各々への制御内容を決定する。そして、PLC20は、決定した制御内容に対応する制御データを、複数の機器40(特に、出力デバイス42)の各々へと出力する。PLC20は、複数の機器40(具体的には、入力デバイス41)の各々からの入力データの取得と、複数の機器40(具体的には、出力デバイス42)の各々への制御データの取得とを、所定の周期(制御周期)で繰り返し実行する。PLC20には、例えば、不図示の表示部および操作部が接続されてもよい。表示部は、画像を表示可能な液晶パネル等で構成され、また、操作部は、典型的には、タッチパネル、キーボード、マウス等で構成される。
【0099】
機器40は、PLC20をマスタとするマスタスレーブ制御システムとしての制御システム1におけるスレーブである。機器40は、所定の制御周期ごとに繰り返し入力データをPLC20へと送信する入力デバイス41であり、または、所定の制御周期ごとに繰り返し制御データをPLC20から受信し、受信した制御データにしたがって動作する出力デバイス42である。
【0100】
機器40(特に、入力デバイス41)は、例えば、入力データとして、PLC20に検知結果等を送信するセンサである。例えば、入力デバイス41は、光電センサであってもよく、また、読み取り結果を送信するバーコードリーダであってもよく、さらに、検査結果を送信する検査機(テスター)であってもよい。
【0101】
機器40(具体的には、出力デバイス42)は、ネジ締め、ピッキング等を実行する出力デバイスとしてのロボット等であってもよいし、各種のアクチュエータであってもよい。
【0102】
また、機器40は、複数の入力デバイス41が接続されたPT(Programmable Terminal)であってもよい。
【0103】
制御ネットワーク50は、PLC20が受信し、またはPLC20が送信する各種データを伝送し、典型的には、各種の産業用イーサネット(登録商標)を用いることができ、フィールドネットワークと称されることもある。産業用イーサネット(登録商標)としては、たとえば、EtherCAT(登録商標)、Profinet IRT、MECHATROLINK(登録商標)-III、Powerlink、SERCOS(登録商標)-III、CIP Motionなどが知られており、これらのうちのいずれを採用してもよい。さらに、産業用イーサネット(登録商標)以外のフィールドネットワークを用いてもよい。たとえば、モーション制御を行わない場合であれば、DeviceNet、CompoNet/IP(登録商標)などを用いてもよい。
【0104】
本実施形態では、制御ネットワーク50上をデータフレームが順次転送されることで、PLC20(マスタ)と機器40(スレーブ)との間でデータが送受信される制御システム1について説明を行う。すなわち、制御ネットワーク50上をデータフレームが所定の制御周期で順次転送されることで、PLC20と機器40との間でデータが制御周期ごとに繰り返し送受信される。制御ネットワーク50上をデータフレームが順次転送されることで、複数の機器40の間で、つまり、複数のスレーブ間で、データが送受信されてもよい。
【0105】
情報処理装置10は、制御システム1に含まれるが、情報処理装置10は、制御システム1におけるスレーブでなくともよい。
【0106】
機器40をスレーブとするマスタスレーブ制御システムである制御システム1において、マスタであるPLC20は、例えば所定の制御周期ごとに繰り返し、スレーブである機器40から、動作結果Laおよび検知情報Idを受信する。
【0107】
(工程情報について)
機器40をスレーブとするマスタスレーブ制御システムである制御システム1において、マスタであるPLC20は、例えば所定の制御周期ごとに繰り返し、スレーブである機器40から、動作結果Laを受信する。動作結果Laは、「機器40の実行した動作Acの内容および結果」を示す情報である。すなわち、機器40は、作業工程Prの実施に際して実際に実行した動作Acの内容および結果を示す動作結果Laを、所定の周期で繰り返し、PLC20へと送信する。例えば、機器40(x)は、作業工程Pr(x)の実施の際に実行した動作Ac(x)の内容および結果を示す動作結果La(x)を、制御周期で繰り返し、PLC20へと送信する。
【0108】
PLC20は、例えば、入力デバイス41(計測デバイス)としての機器40が実行した計測動作の結果である計測結果を、機器40の動作結果Laとして取得する。また、機器40が検査機である場合、PLC20は、機器40が実行した検査動作の結果を、例えば、「検査基準を満たした、または、満たさなかった」といった検査結果を、機器40の動作結果Laとして取得する。さらに、PLC20は、例えば、出力デバイス42としての機器40が実行した出力動作の結果を、機器40の動作結果Laとして取得する。機器40がネジ締め、ピッキング等を実行するロボットである場合、PLC20は、ネジ締め回数、ピッキング結果(ピッキングの成功またはピッキングエラー)等の動作結果Laを、機器40の動作結果Laとして取得する。
【0109】
PLC20は、作業工程Prの実施に際して機器40が実際に実行した動作Acの内容および結果を示す動作結果Laを、機器40から所定の周期で繰り返し受信し、受信した動作結果Laを、工程情報Ipとして情報処理装置10へと送信し、つまり転送する。また、PLC20は、機器40から所定の周期で繰り返し受信した動作結果Laを用いて生成した情報を、工程情報Ipとして情報処理装置10へ送信する。
【0110】
さらに、PLC20は、機器40から所定の周期で繰り返し受信した動作結果Laを、工程情報Ipとして、制御システム1の外部に送信してもよい。例えば、PLC20は、機器40から所定の周期で繰り返し受信した動作結果Laを、工程情報Ipとして、MES(Manufacturin g Execution System、製造実行システム)などに接続した、図2に示す社内LAN(Local Area Network)に送信してもよい。
【0111】
情報処理装置10は、PLC20から取得する工程情報Ip(動作結果La)から、作業工程Prの実施に際し機器40が実行した動作Acの動作開始時刻Tms、動作完了時刻Tme、動作期間Daを特定する。そして、情報処理装置10は、特定した動作開始時刻Tms、動作完了時刻Tme、動作期間Da、および、動作Acに対応する所定の動作基準Saを用いて、動作Acに対する種々の判定を実行する。
【0112】
しかしながら、工程情報Ipに含まれる動作結果La(特に、動作Ac)に対する上述の判定は、PLC20が実行してもよく、PLC20は、上述の判定の結果を、工程情報Ipに含めて、または、工程情報Ipに代えて、情報処理装置10へと送信してもよい。
【0113】
上述の説明において、動作開始時刻Tmsとは、作業工程Prに用いられる機器40が、作業工程Prの実施に際して、動作Acの実行を開始した時点であり、動作完了時刻Tmeとは、動作Acの実行を完了した時点である。動作期間Daは、動作開始時刻Tmsから動作完了時刻Tmeまでの期間である。
【0114】
前述の通り、工程情報Ipは、「作業Opに用いられる工具(特に、出力デバイス42)の状態」を示す情報と捉えることもできる。工程情報Ipは、例えば、「『撮像時刻Tpに対応する検知時刻Td』における、作業Opに用いられる工具(特に、出力デバイス42)の状態」を示す情報と捉えることもできる。そのため、工程情報Ipは、「作業Opに用いられる工具(例えば、出力デバイス42、および、器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す検知情報Idの一種と理解することができる。
【0115】
(検知情報について)
制御システム1において、PLC20は、例えば所定の制御周期ごとに繰り返し、スレーブである機器40(特に、入力デバイス41)から、検知情報Idを受信する。検知情報Idは、入力デバイス41が検知した「作業Opに用いられる工具(例えば、出力デバイス42、および、後述する出力デバイス42以外の器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す情報である。すなわち、機器40(特に、入力デバイス41)は、「作業者Huによって作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を、所定の周期で繰り返し、PLC20へと送信する。検知情報Idには、入力デバイス41が「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を検知した時刻(すなわち、検知時刻Td)を示す情報が含まれる。
【0116】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、器具90(x)に流れる電流の大きさ(器具90(x)の消費電力等)を示す情報を、器具90(x)についての検知情報Id(x)として、取得する。
【0117】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、器具90(x)が作業者Huによって把持されたか否かを示す情報を、器具90(x)についての検知情報Id(x)として、取得する。
【0118】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、作業対象物Ob(x)が備える開閉機構の開閉を示す情報を、作業対象物Ob(x)についての検知情報Id(x)として、取得する。
【0119】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、作業対象物Ob(x)が備えるボタンが押下されたか否かを示す情報を、作業対象物Ob(x)についての検知情報Id(x)として、取得する。
【0120】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、作業場Ar(x)が備える開閉機構の開閉を示す情報を、作業場Ar(x)についての検知情報Id(x)として、取得する。
【0121】
PLC20は、例えば、入力デバイス41(y)としての機器40(y)から、作業場Ar(x)が備えるボタンが押下されたか否かを示す情報を、作業場Ar(x)についての検知情報Id(x)として、取得する。
【0122】
PLC20は、検知情報Idを入力デバイス41から所定の周期で繰り返し受信し、受信した検知情報Idを、情報処理装置10へと送信し、つまり、転送する。
【0123】
さらに、PLC20は、入力デバイス41から所定の周期で繰り返し受信した検知情報Idを、工程情報Ipと同様に、制御システム1の外部に送信してもよい。例えば、PLC20は、入力デバイス41から所定の周期で繰り返し受信した検知情報Idを、MES(Manufacturing Execution System、製造実行システム)などに接続した、図2に示す社内LAN(Local Area Network)に送信してもよい。
【0124】
情報処理装置10は、PLC20から取得する検知情報Idから、「作業者Huによって作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」と、入力デバイス41がその状態を検知した時刻である検知時刻Tdを特定する。そして、情報処理装置10は、特定した検知時刻Tdと、「作業者Huによって作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」とから、検知時刻Tdにおいて作業者Huが行っている作業Opの内容を予測する。つまり、情報処理装置10は、PLC20から取得する検知情報Idから、検知時刻Tdにおいて作業者Huが行っている作業Opの内容を予測する。
【0125】
しかしながら、検知情報Idから、検知時刻Tdにおいて作業者Huが行っている作業Opの内容を予測する処理は、PLC20が実行してもよい。その場合、PLC20は、予測結果を、検知情報Idに含めて、または、検知情報Idに代えて、情報処理装置10へと送信してもよい。
【0126】
(マスタスレーブ制御システム以外のシステムおよび装置について)
図2には、マスタスレーブ制御システムとしての制御システム1に加えて、社内LANシステム、他ネットワークシステム等が示されている。社内LANは、MESとも称される工程情報DB(Database)等に接続している。工程情報DBには、「作業工程Prの実施に用いられる機器40が実行すべき標準的な動作」を示す情報が、動作基準Saとして格納されている。
【0127】
また、図2に示す例では、MESとしての工程情報DBに、工場Faにおいて発生した各種のイベントを監視し、管理するイベント管理装置60が、社内LANを介して接続している。ただし、イベント管理装置60が社内LANを介して工程情報DBに接続していることは必須ではなく、イベント管理装置60は設けなくてもよい。
【0128】
さらに、工程情報DBには、社内LANを介して、PLC20が接続している。図示はしていないが、工程情報DBと情報処理装置10とは接続されていてもよい。また、社内LANには、MESに加えて、不図示のERP(Enterprise Resources Planning)、WMS(Warehouse Management System)等が接続されていてもよい。
【0129】
図2において、工程情報DBには、制御ネットワーク50とも社内LANとも異なる「他ネットワーク」を介して、動画保存サーバ等が接続されている。動画保存サーバ等には、他ネットワークを介して情報処理装置10が接続されており、情報処理装置10から送信された作業場画像Ic、全体画像Ia、情報処理装置10が推定した作業Opの内容、および、支援情報などが動画保存サーバ等に格納される。また、動画保存サーバ等には、PC(Personal Computer)等によって実現される外部装置70が接続される。外部装置70は、例えば、作業場画像Ic、全体画像Ia、情報処理装置10が推定した作業Opの内容、および、支援情報などを表示し、工程情報Ip等の可視化を実行する。すなわち、外部装置70は、作業工程Prの改善に必要な情報を一覧表示し、ボトルネックとなっている作業工程Pr、作業工程Prに発生したエラーの日時等を示す情報を、対応する作業場画像Icと対応付けて表示する。
【0130】
セルカメラ30は、前述の通り、作業場Arを撮像して作業場画像Icを生成し、生成した作業場画像Icを、例えば例えばUSB(Universal Serial Bus)ケーブルである通信ケーブルを介して、情報処理装置10へと送信する。
【0131】
また、天井カメラ80は、工場Faの全体を俯瞰して撮像して全体画像Iaを生成し、生成した全体画像Iaを、例えば例えばUSBケーブルである通信ケーブルを介して、情報処理装置10へと送信する。
【0132】
情報処理装置10は、例えば、PC等によって実現され、PLC20から取得する工程情報Ipと、セルカメラ30から取得する作業場画像Icとを組み合わせて、両者の効率的な利用を可能とするデータ抽出装置であってもよい。情報処理装置10は、「工場Faにおける複数の機器40の実際の動作Acの内容および結果を示す動作結果La」を含む工程情報Ipを、「作業場画像Ic」および「作業場画像Icから推定した作業Opの内容」と組み合わせることで、作業工程Prを可視化する。情報処理装置10は、PLC20から取得する工程情報Ip、セルカメラ30から取得する作業場画像Ic、および、作業場画像Icから推定した作業Opの内容などを組み合わせることで、作業工程Prを可視化し、また、作業工程Prを効率的かつ精緻に分析する。
【0133】
例えば、情報処理装置10は、工程情報Ipの可視化に加え、ボトルネックとなっている作業工程Prを抽出し、抽出した作業工程Prの実施状況を撮像した作業場画像Icと、抽出した作業工程Prの工程情報Ipとを組み合わせる。したがって、ユーザは、例えば、ボトルネックとなっている作業工程Prについて、ボトルネックとなっている原因、不具合要因を特定するのが容易になり、作業工程Prの改善作業を効率的に行うことができるようになる。加えて、情報処理装置10は、不良発生時のトレイサビリティにも用いることができる。
【0134】
また、情報処理装置10は、作業場画像Icと、複数の機器40の各々の工程情報Ipとを組み合わせることにより、作業場画像Icに対する解析と工程情報Ipに対する解析との両方の解析制度を向上させることができる。例えば、情報処理装置10は、PLC20から取得する工程情報Ip(動作結果La)を用いて、機器40が動作Acを開始した動作開始時刻Tms、および、動作Acを完了した動作完了時刻Tmeを特定する。情報処理装置10は、動作開始時刻Tmsから動作完了時刻Tmeまでの期間である動作期間Daに撮像された作業場画像Icに対し解析を実行することで、動作期間Daにおける機器40の動作Acと作業者Huの作業Opとを高精度で対応付けることができる。
【0135】
さらに、情報処理装置10は、工程情報DBから、「作業工程Prの実施に用いられる機器40が実行すべき標準的な動作」を示す動作基準Saを取得する。そして、情報処理装置10は、取得した動作基準Saを用いて、「作業工程Prの実施に用いられる機器40が実行した実際の動作Ac」に対する判定を実行する。情報処理装置10は、動作基準Saが示す標準的な動作とは異なると判定した動作Acに対応する作業工程Prの実施状況を撮像した作業場画像Icについて、解析を実行してもよい。
【0136】
(作業内容の推定について)
情報処理装置10は、作業場画像Icを解析して、作業者Huが作業対象物Obについて行った作業Opの内容を予測する。特に、情報処理装置10は、作業場Ar(x)を撮像した作業場画像Ic(x)から、「作業場画像Ic(x)が撮像された撮像時刻Tpに、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」を予測する。作業場Arにおいて作業者Huが行う作業Opは、一般に、作業対象物Obについて行う作業Opである。そのため、作業Opは、作業者Huと作業対象物Obとの組合せ(ペア)についての、作業者Huと作業対象物Obとの間の相互作用として捉えることができる。
【0137】
ここで、従来、作業場画像Icから、作業場画像Icに撮像されている人間と、作業場画像Icに撮像されているオブジェクトとの間の相互作用であるHOI(Human Object Interaction)を検出する方法が研究されている。例えば、人間とオブジェクトとの両方をローカライズし、両者の間の相互作用を特定するHOI検出技術が知られている。
【0138】
情報処理装置10は、作業者Huが作業対象物Obについて行っている作業Opの内容を推定するのに、HOI検出アルゴリズムを利用することができる。すなわち、情報処理装置10は、作業場画像Icに撮像されている「作業者Huと作業対象物Obとのペア」について、作業者Huが作業対象物Obについて行っている作業Opの内容を、HOIを検出するHOI検出アルゴリズムを利用して、予測することができる。
【0139】
ただし、HOI検出アルゴリズムを用いた予測の精度は、十分に高いとは言い難い。すなわち、作業場画像Icから、作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容を予測するHOI検出アルゴリズムの予測精度は、十分に高いとは言い難い。特に、作業場画像Icに以下の現象が発生すると、一般に、その作業場画像Icに対するHOI検出の精度は低下する傾向にあることが知られている。
【0140】
すなわち、手前にある障害物等が、作業者Huおよび作業対象物Obの少なくとも一方の全部または一部を隠す「オクルージョン(occlusion)」が発生した作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0141】
また、作業場画像Icに撮像されている作業者Huおよび作業対象物Obの少なくとも一方のサイズ(スケール)が(極端に)小さかったり大きかったりする場合、その作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0142】
作業者Huおよび作業対象物Obの少なくとも一方の全部または一部が、撮像範囲外に飛び出すなどして撮像されない「トランケーション(truncation)」が発生した作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0143】
作業者Huおよび作業対象物Obの少なくとも一方の全部または一部が透明体である場合、作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0144】
さらに、通常は撮像されない角度・大きさ等で作業対象物Obが撮像されている作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。例えば、作業場画像Icに撮像されている作業対象物Obの角度(回転)・大きさ等がレアタイプである場合、その作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0145】
また、撮像時点での照明が明るすぎたり、暗すぎたりした場合にも、その作業場画像Icに対するHOI検出の精度は、一般に低下する傾向があることが知られている。
【0146】
以下の説明においては、HOI検出(つまり、作業Opの内容の予測)のために、情報処理装置10が、作業者Huおよび作業対象物Obを、バウンディングボックス(Bounding Box)を用いて作業場画像Icから検出する例を説明する。ただし、情報処理装置10が作業者Huおよび作業対象物Obの検出にバウンディングボックスを用いることは必須ではない。情報処理装置10は、「Mask R-CNN」を利用して、作業場画像Icについて、作業者Huおよび作業対象物Obの分類タスク(セグメンテーション)を実行してもよい。また、情報処理装置10は、「Mask R-CNN」と同時に、深層学習において用いられるAttention機構を利用して、作業場画像Icから作業者Huおよび作業対象物Obを検出してもよい。情報処理装置10は、「Mask R-CNN」、Attention機構などを利用して、HOI検出の予測精度を改善してもよい。
【0147】
(HOI検出結果の検証)
前述の通り、HOI検出アルゴリズムを用いた予測の精度は、十分に高いとは言い難い。そこで、情報処理装置10は、HOI検出アルゴリズムを用いて予測したHOI(つまり、作業Op)の内容(つまり、第一予測Pf(x))を、存否予測Pa(x)および作業予測Po(x)の少なくとも一方を用いて検証する。
【0148】
情報処理装置10は、HOI検出アルゴリズムを、「YOLOなどの動線検出アルゴリズム」および「入力デバイス41等からの検知情報Id」と組み合わせて用いることで、「作業Opの内容」の推定について、ロバスト性および推定精度を向上させる。つまり、情報処理装置10は、動線検出アルゴリズムによる存否予測Pa、および、検知情報Idから予測した作業予測Poの少なくとも一方を、HOI検出アルゴリズムによる第一予測Pf(HOI検出結果)に対するノイズフィルターとして利用する。
【0149】
情報処理装置10は、HOI検出アルゴリズムに加えて、「動線検出アルゴリズム」および「入力デバイス41等からの検知情報Id」の少なくとも一方を用いて、「作業Opの内容」を推定する作業推定装置である。
【0150】
(アノテーションコストの抑制)
HOI検出アルゴリズムで用いられる学習済モデルとしての作業予測モデル171は、例えば、作業場画像Icまたはその特徴情報に対して以下のラベルが付された教師データDt1の集合(学習用データセットDS1)に対する教師あり学習によって構築される。すなわち、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」がラベルとして付された教師データDt1の集合を用いた機械学習によって、作業予測モデル171は構築される。教師データDt1において作業場画像Icまたはその特徴情報に対して付されている「ラベル」は、「アノテーション」または「メタデータ」とも称される。
【0151】
本実施形態において、ラベルとして付される「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」は、検知情報Idから予測される作業予測Poである。すなわち、「検知情報Idから予測された『作業者Huが行っている作業Opの内容』が、作業場画像Icまたはその特徴情報に対してラベルとして付された」教師データDt1の集合に対する教師あり学習によって、作業予測モデル171は構築される。
【0152】
一般に、学習済モデルの構築に必要となる大量の教師データDt1の生成には、ひじょうに手間がかかることが知られており、いわゆるアノテーションコストは極めて大きいことが知られている。例えば、大量の作業場画像Icの各々について、人間に、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を判定させようとする場合、それに要するコストは極めて大きい。
【0153】
そこで、本実施形態では、検知情報Idから予測される「作業者Huが行っている作業Opの内容」を、作業場画像Icまたはその特徴情報に対して付される「ラベル」として利用する。これによって、大量の教師データDt1の生成に必要となるコスト(アノテーションコスト)を抑制することができ、つまり、作業予測モデル171の構築に際して必要となるコストを抑制することができる。そのため、情報処理装置10は、低コストで構築された作業予測モデル171を用いて、高精度かつロバスト性の高い、「作業Opの内容」の推定を実現することができる。
【0154】
(本実施形態に係る情報処理装置についての整理)
これまでに図2を用いて説明してきた内容は、以下のように整理することができる。すなわち、情報処理装置10は、作業場Arにおいて作業者Huが行っている作業Opの内容を推定する作業推定装置であって、第一予測部120(予測部)と、判定部150と、推定部160と、を備える。
【0155】
第一予測部120は、作業予測モデル171を用いて、「作業場画像Ic、または、作業場画像Icから生成された特徴情報」から、「作業者Huが作業対象物Obについて行っている作業Opの内容」を予測する。作業予測モデル171は、「作業場Arを撮像した作業場画像Ic」または「作業場画像Icから生成された特徴情報」を入力とし、以下の情報を出力とする学習済モデルである。すなわち、作業予測モデル171は、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を出力とする学習済モデルである。
【0156】
判定部150は、「作業予測モデル171を用いずに予測された作業Opの内容」、および、「作業場Arに作業者Huが存在するか否かの判定結果」の少なくとも一方を用いて、第一予測部120の予測の正否を判定する。つまり、判定部150は、作業予測Poおよび存否予測Paの少なくとも一方を用いて、第一予測Pfの正否を判定する。
【0157】
推定部160は、判定部150によって第一予測部120の予測が正しいと判定されると、第一予測部120によって予測された作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。つまり、推定部160は、作業予測Poおよび存否予測Paの少なくとも一方を用いて第一予測Pfが正しいことが検証されると、第一予測Pfを、「作業場Arにおいて作業者Huが行っている作業Opの内容」についての推定結果として出力する。
【0158】
前記の構成によれば、情報処理装置10は、作業予測モデル171を用いて予測した作業Opの内容(つまり、第一予測Pf)の正否を、以下の2つの予測の少なくとも一方を用いて判定する。すなわち、情報処理装置10は、作業予測モデル171を用いずに予測された作業Opの内容(作業予測Po)、および、作業場Arにおける作業者Huの存否の判定結果(存否予測Pa)の少なくとも一方を用いて、第一予測Pfの正否を判定する。
【0159】
そして、情報処理装置10は、作業予測モデル171を用いた予測が正しいと判定すると、作業予測モデル171を用いて予測した作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。
【0160】
つまり、情報処理装置10は、作業予測モデル171を用いて予測した作業Opの内容の正否を、作業予測モデル171を用いずに予測された作業Opの内容、および、作業場Arに作業者Huが存在するか否かの判定結果の少なくとも一方を用いて検証する。
【0161】
したがって、情報処理装置10は、作業場画像Icから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0162】
情報処理装置10は、検知情報Idから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を予測する作業予測部142(作業検知部)をさらに備える。検知情報Idは、入力デバイス41(センサ)によって検知された「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す情報である。
【0163】
判定部150は、第一予測部120によって予測された作業Opの内容(つまり、第一予測Pf)と、作業予測部142によって予測された作業Opの内容(つまり、作業予測Po)とが一致すると、第一予測部120の予測が正しいと判定する。
【0164】
前記の構成によれば、情報処理装置10は、入力デバイス41の検知情報Idから予測した作業Opの内容と、作業予測モデル171を用いて予測した作業Opの内容とが一致するか否かを判定する。そして、情報処理装置10は、両者が一致すると判定すると、作業予測モデル171を用いて予測した作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。
【0165】
つまり、情報処理装置10は、作業予測モデル171を用いて予測した作業Opの内容の正否を、入力デバイス41の検知情報Idから予測した作業Opの内容によって検証する。
【0166】
したがって、情報処理装置10は、作業場画像Icから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0167】
情報処理装置10は、存否予測部141をさらに備え、判定部150は、存否予測部141によって「作業場Arに作業者Huが存在する」と予測されると、第一予測部120の予測が正しいと判定する。存否予測部141は、存否モデル172を用いて、全体画像Ia、または、作業場画像Ic、または、全体画像Iaまたは作業場画像Icから生成された特徴情報から、「作業場Arに作業者Huが存在するか否か」を予測する。存否モデル172は、学習済モデルであり、その入力は、(A)作業場Arを含む複数の作業場Arを撮像した全体画像Ia、または、(B)作業場画像Ic、または、(C)全体画像Iaまたは作業場画像Icから生成された特徴情報である。また、存否モデル172の出力は、「作業場Arに作業者Huが存在するか否か」を示す情報である。
【0168】
前記の構成によれば、情報処理装置10は、存否モデル172を用いて、「作業場Arに作業者Huが存在するか否か」を予測する。そして、情報処理装置10は、「作業場Arに作業者Huが存在する」と予測すると、作業予測モデル171を用いて予測した作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。
【0169】
つまり、情報処理装置10は、作業予測モデル171を用いて予測した作業Opの内容の正否を、存否モデル172を用いて予測した「作業場Arにおける作業者Huの存否」によって検証する。
【0170】
したがって、情報処理装置10は、作業場画像Icから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0171】
情報処理装置10は、作業予測部142と存否予測部141とを共に備えてもよい。判定部150は、存否予測部141によって作業場Arに作業者Huが存在すると予測され、かつ、以下の条件が満たされると、第一予測部120の予測が正しいと判定する。すなわち、判定部150は、第一予測部120によって予測された作業Opの内容と、作業予測部142によって予測された作業Opの内容とが一致すると、第一予測部120の予測が正しいと判定する。
【0172】
前記の構成によれば、情報処理装置10は、入力デバイス41の検知情報Idから予測した作業Opの内容、および、作業場Arにおける作業者Huの存否を予測する。そして、情報処理装置10は、作業場Arに作業者Huが存在すると予測し、かつ、以下の条件が満たされると、第一予測部120の予測が正しいと判定する。すなわち、情報処理装置10は、入力デバイス41の検知情報Idから予測した内容と、作業予測モデル171を用いて予測した内容とが一致すると、作業予測モデル171を用いて予測した内容が正しいと判定する。
【0173】
つまり、情報処理装置10は、作業予測モデル171を用いて予測した作業Opの内容の正否を、入力デバイス41の検知情報Idから予測した作業Opの内容と、存否モデル172を用いて予測した作業場Arにおける作業者Huの存否とによって検証する。
【0174】
したがって、情報処理装置10は、作業場画像Icから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0175】
§2.構成例
これまでに概要を説明してきた情報処理装置10について、次に、図1を用いてその詳細を説明していく。
【0176】
図1は、情報処理装置10の要部構成を示すブロック図である。図1に例示する情報処理装置10は、機能ブロックとして、例えば、第一取得部110、第一予測部120、第二取得部130、第二予測部140、判定部150、推定部160、および、記憶部170を備えている。
【0177】
情報処理装置10は、上述の各機能ブロックに加えて、以下の各部を備えてもよい。すなわち、情報処理装置10は、作業場画像Icの、所定の格納領域(保存領域)への格納(保存)を制御する管理部、作業者Huが作業場Arに滞在している時間(滞在時間)を測定する測定部、工程情報Ipと滞在時間とを対応付ける分析部等を備えてもよい。記載の簡潔性を担保するため、本実施の形態に直接関係のない情報処理装置10の構成は、説明およびブロック図から省略している。ただし、実施の実情に則して、情報処理装置10は、これらの省略された構成を備えてもよい。
【0178】
情報処理装置10の備える上述の機能ブロックは、例えば、演算装置が、ROM(read only memory)、NVRAM(non-Volatile random access memory)等で実現された記憶装置(記憶部170)に記憶されているプログラムを不図示のRAM(random access memory)等に読み出して実行することで実現できる。演算装置として利用可能なデバイスとしては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、マイクロコントローラ、又は、これらの組み合わせを挙げることができる。
【0179】
以下に先ず、第一取得部110、第一予測部120、第二取得部130、第二予測部140、判定部150、および、推定部160の各々について、その詳細を説明する。
【0180】
(記憶部以外の機能ブロックについて)
第一取得部110は、セルカメラ30から、セルカメラ30が作業場Arを撮像した作業場画像Icを取得し、取得した作業場画像Icを、第一予測部120へと出力する。
【0181】
第一予測部120は、セルカメラ30が撮像した作業場画像Icに対する画像解析を実行し、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を予測する。第一予測部120は、例えば、作業場画像Icに対してモデルベースの画像解析を実行し、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を予測する。
【0182】
モデルベースの画像解析を実行する第一予測部120は、例えば、ニューラルネットワーク(Neural Network)として実現され、HOI検出アルゴリズムを実行することによって、HOIとして作業Opを検出する。具体的には、第一予測部120は、記憶部170を参照して、作業予測モデル171を取得する。作業予測モデル171は、作業場画像Icを入力とし、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を出力とする、学習済モデルである。第一予測部120は、記憶部170を参照して取得した作業予測モデル171を用いて、作業場画像Icから、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を予測する。以下、「ニューラルネットワーク」は、「NN」と略記することがある。
【0183】
例えば、第一予測部120は、作業場画像Ic(x)から作業予測モデル171を用いて、以下の第一予測Pf(x)を生成する。すなわち、第一予測部120は、「作業場画像Ic(x)に撮像されている作業者Huが、作業場画像Ic(x)に撮像されている作業対象物Ob(x)について行っている作業Op(x)の内容」についての予測である第一予測Pf(x)を生成する。
【0184】
特に、第一予測部120は、「セルカメラ30が作業場Ar(x)を撮像して作業場画像Ic(x)を生成した時刻」である撮像時刻Tpを用いて、作業場画像Ic(x)から、以下の予測を実行する。すなわち、第一予測部120は、作業場画像Ic(x)から、「撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」を予測する。
【0185】
第一予測部120は、作業場画像Icから作業予測モデル171を用いて予測した作業Opの内容を、第一予測Pfとして、判定部150へと出力する。例えば、第一予測部120は、作業場画像Ic(x)から生成した第一予測Pf(x)を、判定部150へと出力する。
【0186】
第二取得部130は、第二予測Psを生成するための各種の情報を外部から取得し、取得した各種の情報を第二予測部140へと出力する。第二予測Psは、第一予測Pf(の正否)を検証するための予測であり、存否予測Paおよび作業予測Poの少なくとも一方を含む。図1に例示する第二取得部130は、全体画像取得部131と、検知情報取得部132とを含む。
【0187】
全体画像取得部131は、天井カメラ80から、天井カメラ80が工場Faの全体を俯瞰して撮像した全体画像Iaを取得し、取得した全体画像Iaを、第二予測部140へと、特に存否予測部141へと、出力する。
【0188】
検知情報取得部132は、PLC20から、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す検知情報Id(工程情報Ipを含む)を取得する。前述の通り、検知情報Idは、例えば、検知装置(測定装置)としての入力デバイス41が検知した、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す情報である。検知情報取得部132は、取得した検知情報Idを、第一予測部120へと出力する。
【0189】
第二予測部140は、存否予測Paおよび作業予測Poの少なくとも一方を含む第二予測Psを生成し、生成した第二予測Psを判定部150へと出力する。第二予測部140は、存否予測部141と、作業予測部142とを含む。
【0190】
存否予測部141は、第二取得部130(特に、全体画像取得部131)から取得した全体画像Iaに対して画像解析を実行し、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測し、つまり、存否予測Paを生成する。存否予測部141は、例えば、全体画像Iaに対してモデルベースの画像解析を実行し、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測する。
【0191】
モデルベースの画像解析を実行する存否予測部141は、例えば、NNとして実現され、YOLOなどの動線検出アルゴリズム(物体検出アルゴリズム)を実行することによって、作業場Arにおける作業者Huの存否を予測する。具体的には、存否予測部141は、記憶部170を参照して、存否モデル172を取得する。存否モデル172は、全体画像Iaを入力とし、「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を出力とする、学習済モデルである。存否予測部141は、記憶部170を参照して取得した存否モデル172を用いて、全体画像Iaから、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測する。例えば、存否予測部141は、全体画像Iaから存否モデル172を用いて、「作業場画像Ic(x)に撮像されている作業場Ar(x)に作業者Huが居るか」についての予測である存否予測Pa(x)を、生成する。
【0192】
特に、存否予測部141は、「天井カメラ80が、『作業場画像Ic(x)に撮像されている作業場Ar(x)』を含む複数の作業場Arを撮像して全体画像Iaを生成した時刻」である全体時刻Taを用いて、全体画像Iaから、以下の予測を実行する。すなわち、存否予測部141は、全体画像Iaから、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する全体時刻Taにおいて、作業者Hu(x)が作業場Ar(x)に居るか」を予測する。
【0193】
存否予測部141は、所定期間(例えば、5秒間)の全体画像Iaから、存否モデル172を用いて、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を、特に、「撮像時刻Tpに、作業場Arに作業者Huが居るか」を、予測してもよい。存否予測部141による存否モデル172を用いた作業者Huの存否の予測には、誤検出および未検出などの失敗があり得る。そのため、存否予測部141が、例えば5秒間の内、1秒間だけ「作業者Huが居る」と予測しても、残りの4秒間で「作業者Huが居ない」と予測した場合には、「作業者Huが居る」との予測は誤検出(つまり、誤った予測)とみなしてもよい。1秒間だけ「作業者Huが居る」と予測しても、残りの4秒間で「作業者Huが居ない」と予測した場合、存否予測部141は、その5秒間の全体画像Iaから、「作業者Huが居ない」と予測してもよい。つまり、存否予測部141は、その5秒間の全体画像Iaから、「その5秒間に、『作業場画像Icに撮像されている作業場Ar』に作業者Huは居なかった」との存否予測Paを生成してもよい。
【0194】
整理すると、存否予測部141は、所定期間の全体画像Iaから、その所定期間の内の所定割合(例、5割)以上の期間について「作業者Huが居た」と予測した場合にのみ、その所定期間の全体について、「作業者Huが居た」との存否予測Paを生成してもよい。例えば、存否予測部141は、5秒間の全体画像Iaについて、「作業者Huが居た」と予測した期間が2.5秒以上ある場合にのみ、「その5秒間に、作業者Huは居た」との存否予測Paを生成してもよい。
【0195】
存否予測部141が作業者Huの存否を予測するのに用いる動線検出アルゴリズムは、例えばYOLOであるが、存否予測部141が用いる動線検出アルゴリズムがYOLOであることは必須ではなく、YOLO以外の動線検出アルゴリズムであってもよい。存否予測部141は、動線検出アルゴリズムによって、全体画像Iaから「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測できればよい。
【0196】
存否予測部141は、全体画像Iaから存否モデル172を用いて予測した、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」についての予測である存否予測Pa(例えば、存否予測Pa(x))を、判定部150へと出力する。
【0197】
作業予測部142は、第二取得部130(特に、検知情報取得部132)から取得した検知情報Id(工程情報Ipを含む)を用いて、「作業者Huが行っている作業Opの内容」を予測し、つまり、作業予測Poを生成する。前述の通り、検知情報Idは、「作業Opに用いられる工具(例えば、出力デバイス42、および、器具90)、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を示す情報である。例えば、作業予測部142は、検知情報Id(x)から、以下の作業予測Po(x)を生成する。すなわち、作業予測部142は、検知情報Id(x)から、「作業場Ar(x)において作業者Hu(x)が行っている作業Op(x)の内容」についての予測である、作業予測Po(x)を生成する。ここで前述の通り、検知情報Id(x)は、「作業Op(x)に用いられる工具(例えば、出力デバイス42(x)または器具90(x))、作業対象物Ob(x)、および、作業場Ar(x)の少なくとも1つの状態」を示す情報である。
【0198】
作業予測部142は、例えば、「器具90(x)等の工具に流れる電流の大きさ」から、「動作Ac(x)が実行され、動作Ac(x)に対応する作業Op(x)を作業場Ar(x)において作業者Huが行った」と予測する。
【0199】
作業予測部142は、例えば、「工具の消費電力」から、「動作Ac(x)が実行され、動作Ac(x)に対応する作業Op(x)を作業場Ar(x)において作業者Huが行った」と予測する。
【0200】
作業予測部142は、例えば、「工具、または、作業対象物Ob(x)が把持された」ことから、「作業Op(x)が作業場Ar(x)において作業者Huによって行われた」と予測する。
【0201】
作業予測部142は、例えば、「工具、または、作業対象物Ob(x)、または、作業場Ar(x)の備える開閉機構が開閉された」ことから、「作業Op(x)が作業場Ar(x)において作業者Huによって行われた」と予測する。
【0202】
作業予測部142は、例えば、「工具、または、作業対象物Ob(x)、または、作業場Ar(x)の備えるボタンが押下された」ことから、「作業Op(x)が作業場Ar(x)において作業者Huによって行われた」と予測する。
【0203】
以上に説明した通り、作業予測部142は、検知情報Idから「作業者Huが行っている作業Opの内容」を予測し、例えば、検知情報Id(x)から「作業場Ar(x)において作業者Hu(x)が行っている作業Op(x)の内容」を予測する。
【0204】
特に、作業予測部142は、検知情報Id(x)に含まれる、「作業Op(x)に用いられる工具、作業対象物Ob(x)、および、作業場Ar(x)の少なくとも1つの状態」が検知された時刻である検知時刻Tdを用いて、以下の予測を実行する。すなわち、作業予測部142は、検知情報Id(x)から、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する検知時刻Tdにおいて、作業者Hu(x)が行っている作業Op(x)の内容」を予測する。
【0205】
作業予測部142は、検知情報Idから予測した「作業者Huが行っている作業Opの内容」を、作業予測Poとして、判定部150へと出力する。例えば、作業予測部142は、検知情報Id(x)から予測した「作業場Ar(x)において作業者Hu(x)が行っている作業Op(x)の内容」である作業予測Po(x)を、判定部150へと出力する。
【0206】
判定部150は、第一予測Pf(の正否)を、第二予測Psを用いて検証し、つまり、第一予測Pf(の正否)を、存否予測Paおよび作業予測Poの少なくとも一方を用いて検証する。具体的には、判定部150は、第一予測Pf(x)(の正否)を、存否予測Pa(x)および作業予測Po(x)の少なくとも一方を用いて検証する。
【0207】
前述の通り、第一予測Pf(x)は、例えば、作業場画像Ic(x)から予測される、「撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で作業対象物Ob(x)について行っている作業Op(x)の内容」である。存否予測Pa(x)は、例えば、全体画像Iaから予測される、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する全体時刻Taにおいて、作業者Hu(x)が作業場Ar(x)に居るか」についての予測である。作業予測Po(x)は、例えば、検知情報Id(x)から予測される、「『作業場画像Ic(x)が撮像された撮像時刻Tp』に対応する検知時刻Tdにおいて、作業者Hu(x)が行っている作業Op(x)の内容」である。
【0208】
例えば、判定部150は、存否予測Pa(x)において「作業場Ar(x)に作業者Huが存在する」と予測されていると、「第一予測Pf(x)は正しい」と判定する。特に、判定部150は、「セルカメラ30が作業場画像Ic(x)を生成した時刻である撮像時刻Tpにおいて、作業場Ar(x)に作業者Huが存在する」と予測されていると、「第一予測Pf(x)は正しい」と判定する。
【0209】
例えば、判定部150は、作業予測Po(x)における作業Op(x)と第一予測Pf(x)における作業Op(x)とが一致すると、「第一予測Pf(x)は正しい」と判定する。特に、判定部150は、「作業予測Po(x)における、撮像時刻Tp(x)での作業Op(x)」と「第一予測Pf(x)における、撮像時刻Tp(x)での作業Op(x)」とが一致すると、「第一予測Pf(x)は正しい」と判定する。
【0210】
例えば、判定部150は、「作業場Ar(x)に作業者Huが存在する」と予測され、かつ、作業予測Po(x)における作業Op(x)と第一予測Pf(x)における作業Op(x)とが一致した場合に、「第一予測Pf(x)は正しい」と判定する。特に、判定部150は、以下の2つの条件がいずれも満たされている場合に「第一予測Pf(x)は正しい」と判定する。すなわち、第一の条件は、作業予測Po(x)において、「セルカメラ30が作業場画像Ic(x)を生成した時刻である撮像時刻Tpにおいて、作業場Ar(x)に作業者Huが存在する」と予測されていることである。第二の条件は、「作業予測Po(x)における、撮像時刻Tp(x)での作業Op(x)」と「第一予測Pf(x)における、撮像時刻Tp(x)での作業Op(x)」とが一致することである。
【0211】
判定部150は、判定結果(検証結果)と共に、第一予測Pfを推定部160へと通知する。判定部150は、さらに、第二予測Ps(存否予測Paおよび作業予測Poの少なくとも一方)を推定部160へと通知してもよい。
【0212】
推定部160は、判定部150によって「第一予測Pf(x)は正しい」と判定されると、第一予測Pf(x)を「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定し、第一予測Pf(x)を、推定結果として外部に出力する。
【0213】
推定部160は、判定部150によって「第一予測Pf(x)は正しくない」と判定されると、「作業場Ar(x)に作業者Huがいない」との推定結果、または、「所望の精度で推定できた作業Op(x)の内容はない」との推定結果を、外部に出力する。推定部160は、上述の推定結果を、作業場画像Icと共に、図2の動画保存サーバ等に出力してもよい。
【0214】
(記憶部について)
記憶部170は、情報処理装置10が使用する各種データを格納する記憶装置である。なお、記憶部170は、情報処理装置10が実行する(1)制御プログラム、(2)OSプログラム、(3)情報処理装置10が有する各種機能を実行するためのアプリケーションプログラム、および、(4)該アプリケーションプログラムを実行するときに読み出す各種データを非一時的に記憶してもよい。上記の(1)~(4)のデータは、例えば、ROM(read only memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)、HDD(Hard Disc Drive)等の不揮発性記憶装置に記憶される。情報処理装置10は、図示しない一時記憶部を備えていてもよい。一時記憶部は、情報処理装置10が実行する各種処理の過程で、演算に使用するデータおよび演算結果等を一時的に記憶するいわゆるワーキングメモリであり、RAM(Random Access Memory)等の揮発性記憶装置で構成される。どのデータをどの記憶装置に記憶するのかについては、情報処理装置10の使用目的、利便性、コスト、または、物理的な制約等から適宜決定される。記憶部170はさらに、作業予測モデル171および存否モデル172を格納している。
【0215】
作業予測モデル171は、第一予測部120が、作業場画像Icから「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を予測するためのモデルである。作業予測モデル171は、例えば、作業場画像Icを入力とし、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す情報を出力とする学習済モデルである。
【0216】
存否モデル172は、存否予測部141が、全体画像Iaから「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測するためのモデルである。存否モデル172は、全体画像Iaを入力とし、「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を出力とする、学習済モデルである。
【0217】
§3.動作例
図3図4、および図5は、それぞれ、情報処理装置10が実行する処理の全体概要を説明するフロー図である。情報処理装置10は、第二予測Psを用いて第一予測Pf(の正否)を検証することによって、「作業者Huが行っている作業Opの内容」を高精度に推定することができる。
【0218】
(作業予測Poのみを用いて検証を行う場合の処理例)
図3は、第二予測Psのうち作業予測Poのみを用いて第一予測Pf(の正否)を検証する場合に、情報処理装置10が実行する処理の全体概要を説明するフロー図である。図3に例示するように、情報処理装置10(特に、判定部150)は、第一予測Pf(の正否)を、作業予測Poのみを用いて検証してもよい。
【0219】
図3に示すように、判定部150は先ず、作業予測Poにおいて「作業者Huが行っている作業Opの内容」が予測されているか否か、つまり、「検知情報Idから、何らかの作業Opが行われていると予測されたか否か」を確認する(S110)。
【0220】
「検知情報Idから、何らかの作業Opが行われていると予測された」ことを確認すると(S110でYES)、判定部150はさらに、第一予測Pfにおいて「作業者Huが行っている作業Opの内容」が予測されているか否かを確認する。つまり、判定部150は、「作業予測モデル171を用いて、何らかの作業Opが行われていると予測されたか否か」を確認する(S120)。
【0221】
「作業予測モデル171を用いて、何らかの作業Opが行われていると予測された」ことを確認すると(S120でYES)、判定部150は、以下の判定を実行する。すなわち、判定部150は、「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致するか否か」を判定する(S130)。つまり、判定部150は、「作業予測Poにおける作業Op」と「第一予測Pfにおける作業Op(x)」とが一致するか否かを判定する。
【0222】
判定部150によって、「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致する」と判定されると(S130でYES)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、第一取得部110が作業場画像Icから作業予測モデル171を用いて予測した作業Opの内容を、推定結果として出力し(S140)、つまり、第一予測Pf(x)を、推定結果として出力する。
【0223】
「検知情報Idからは、何らかの作業Opが行われているとは予測されなかった」ことを確認すると(S110でNO)、つまり、作業予測部142が検知情報Idから作業Opの内容を予測できなかった場合、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S150)。
【0224】
「作業予測モデル171を用いて、何らかの作業Opが行われているとは予測されなかった」ことを確認すると(S120でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S150)。つまり、第一予測部120が作業場画像Icから作業Opの内容を予測できなかった場合、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する。
【0225】
「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致しない」と判定されると(S130でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S150)。
【0226】
情報処理装置10は、作業予測Poを用いて第一予測Pf(の正否)を検証し、つまり、HOI検出アルゴリズムを、「入力デバイス41等からの検知情報Id」と組み合わせて用いる。情報処理装置10は、HOI検出アルゴリズムを実行する第一予測部120と、検知情報Idから作業予測Poを生成する作業予測部142とを備えることによって、第一予測部120による誤検出(予測の誤り)をキャンセルする。そのため、情報処理装置10は、HOI検出アルゴリズムの誤検出(予測の誤り)をキャンセルし、精度の高い推定を実現することができる。
【0227】
作業予測部142は、入力デバイス41等からの検知情報Idから、「作業者Huが行っている作業Opの内容」を予測し、つまり、作業予測Poを生成する。そして、HOI検出アルゴリズムを実行する第一予測部120による「作業者Huが行っている作業Opの内容」の予測よりも、検知情報Idを用いた作業予測部142による「作業者Huが行っている作業Opの内容」の予測の方が、予測精度が高い。つまり、第一予測Pfの予測精度よりも、作業予測Poの予測精度の方が高い。
【0228】
そのため、情報処理装置10は、第一予測Pfと作業予測Poとを用いることによって、「作業者Huが行っている作業Opの内容」を、高精度に推定することができる。第一予測部120がHOI検出アルゴリズムを実行して予測可能な「作業者Huが行っている作業Op」の種類は、作業予測部142が検知情報Idから予測可能な「作業者Huが行っている作業Op」の種類と同じであってもよく、前者が後者より多くてもよい。
【0229】
一般に、HOI検出アルゴリズムによるHOI検出(つまり、「作業Opの内容」の予測)は、作業場画像Icから、作業者Huおよび作業対象物Obの少なくとも一方を検出(物体検出)できなかった場合、失敗する。そのため、HOI検出の失敗を、つまり、「作業予測モデル171を用いて、何らかの作業Opが行われているとは予測されなかった」ことを、「物体(例えば、作業者Hu)の検出失敗(つまり、不在)」とみなしてもよい。
【0230】
(存否予測Paのみを用いて検証を行う場合の処理例)
図4は、第二予測Psのうち存否予測Paのみを用いて第一予測Pf(の正否)を検証する場合に、情報処理装置10が実行する処理の全体概要を説明するフロー図である。図4に例示するように、情報処理装置10(特に、判定部150)は、第一予測Pf(の正否)を、存否予測Paのみを用いて検証してもよい。
【0231】
図4に示すように、判定部150は先ず、存否予測Paにおいて「作業場Arに作業者Huが存在する」と予測されているか否か、つまり、「存否モデル172を用いて、作業場Arに作業者Huが存在すると予測されたか否か」を確認する(S210)。
【0232】
前述の通り、存否予測部141は、所定期間(例えば、5秒間)の全体画像Iaから、「その所定期間に、作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測してもよい。存否予測部141は、その所定期間の内の所定割合(例えば、5割)の期間以上、「作業者Huが居る」と予測した場合にのみ、「その所定期間に、作業場画像Icに撮像されている作業場Arに作業者Huが居た」と予測してもよい。
【0233】
「存否モデル172を用いて、作業場Arに作業者Huが存在すると予測された」ことを確認すると(S210でYES)、判定部150はさらに、第一予測Pfにおいて「作業者Huが行っている作業Opの内容」が予測されているか否かを確認する。つまり、判定部150は、「作業予測モデル171を用いて、何らかの作業Opが行われていると予測されたか否か」を確認する(S220)。
【0234】
判定部150によって、「作業予測モデル171を用いて、何らかの作業Opが行われていると予測された」ことが確認されると(S220でYES)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、第一取得部110が作業場画像Icから作業予測モデル171を用いて予測した作業Opの内容を、推定結果として出力し(S230)、つまり、第一予測Pf(x)を、推定結果として出力する。
【0235】
「存否モデル172を用いて、作業場Arに作業者Huが存在しないと予測された」ことを確認すると(S210でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「作業場Arに作業者Huがいない」との推定結果を出力する(S250)。つまり、存否予測部141が全体画像Iaから「作業場画像Icに撮像されている作業場Arに作業者Huが居ない」と予測する場合、推定部160は、「作業場Arに作業者Huがいない」との推定結果を出力する。
【0236】
「作業予測モデル171を用いて、何らかの作業Opが行われているとは予測されなかった」ことを確認すると(S220でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S240)。つまり、第一予測部120が作業場画像Icから作業Opの内容を予測できなかった場合、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する。
【0237】
情報処理装置10は、存否予測Paを用いて第一予測Pf(の正否)を検証し、つまり、HOI検出アルゴリズムを、「YOLOなどの動線検出アルゴリズム」と組み合わせて用いる。すなわち、情報処理装置10は、HOI検出アルゴリズムを実行する第一予測部120と、動線検出アルゴリズムを実行する存否予測部141とを備えることによって、第一予測部120による誤検出(予測の誤り)をキャンセルすることができる。動線検出アルゴリズムで予測(検出)できるのは、作業者Huの存否のみである代わりに、動線検出アルゴリズムの予測精度は、HOI検出アルゴリズムの予測精度よりも高い。そのため、情報処理装置10は、第一予測Pfと存否予測Paとを用いることによって、「作業者Huが行っている作業Opの内容」を、高精度に推定することができる。
【0238】
(存否予測Paおよび作業予測Poの両方を用いて検証を行う場合の処理例)
図5は、存否予測Paおよび作業予測Poの両方を用いて第一予測Pf(の正否)を検証する場合に、情報処理装置10が実行する処理の全体概要を説明するフロー図である。図5に例示するように、情報処理装置10(特に、判定部150)は、第一予測Pf(の正否)を、存否予測Paおよび作業予測Poの両方を用いて検証してもよい。
【0239】
図5に示すように、判定部150は先ず、存否予測Paにおいて「作業場Arに作業者Huが存在する」と予測されているか否か、つまり、「存否モデル172を用いて、作業場Arに作業者Huが存在すると予測されたか否か」を確認する(S310)。
【0240】
前述の通り、存否予測部141は、所定期間の全体画像Iaから、「その所定期間に、作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測してもよい。存否予測部141は、その所定期間の内の所定割合の期間以上、「作業者Huが居る」と予測した場合にのみ、「その所定期間に、作業場画像Icに撮像されている作業場Arに作業者Huが居た」と予測してもよい。
【0241】
「存否モデル172を用いて、作業場Arに作業者Huが存在すると予測された」ことを確認すると(S310でYES)、判定部150は、次に、作業予測Poにおいて「作業者Huが行っている作業Opの内容」が予測されているか否かを確認する。すなわち、判定部150は、「検知情報Idから、何らかの作業Opが行われていると予測されたか否か」を確認する(S320)。
【0242】
「検知情報Idから、何らかの作業Opが行われていると予測された」ことを確認すると(S320でYES)、判定部150は、第一予測Pfにおいて「作業者Huが行っている作業Opの内容」が予測されているか否かを確認する。つまり、判定部150は、「作業予測モデル171を用いて、何らかの作業Opが行われていると予測されたか否か」を確認する(S330)。
【0243】
「作業予測モデル171を用いて、何らかの作業Opが行われていると予測された」ことを確認すると(S330でYES)、判定部150は、以下の判定を実行する。すなわち、判定部150は、「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致するか否か」を判定する(S340)。つまり、判定部150は、「作業予測Poにおける作業Op」と「第一予測Pfにおける作業Op(x)」とが一致するか否かを判定する。
【0244】
判定部150によって、「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致する」と判定されると(S340でYES)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、第一取得部110が作業場画像Icから作業予測モデル171を用いて予測した作業Opの内容を、推定結果として出力し(S350)、つまり、第一予測Pf(x)を、推定結果として出力する。
【0245】
「存否モデル172を用いて、作業場Arに作業者Huが存在しないと予測された」ことを確認すると(S310でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「作業場Arに作業者Huがいない」との推定結果を出力する(S360)。つまり、存否予測部141が全体画像Iaから「作業場画像Icに撮像されている作業場Arに作業者Huが居ない」と予測する場合、推定部160は、「作業場Arに作業者Huがいない」との推定結果を出力する。
【0246】
「検知情報Idからは、何らかの作業Opが行われているとは予測されなかった」ことを確認すると(S320でNO)、つまり、作業予測部142が検知情報Idから作業Opの内容を予測できなかった場合、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S370)。
【0247】
「作業予測モデル171を用いて、何らかの作業Opが行われているとは予測されなかった」ことを確認すると(S330でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S370)。つまり、第一予測部120が作業場画像Icから作業Opの内容を予測できなかった場合、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する。
【0248】
「検知情報Idから予測された作業Opの内容と、作業予測モデル171を用いて予測された作業Opの内容とが一致しない」と判定されると(S340でNO)、推定部160は、以下の推定結果を出力する。すなわち、推定部160は、「所望の精度で推定できた作業Opの内容はない」との推定結果を出力する(S370)。
【0249】
前述の通り、検知情報Id(工程情報Ipを含む)から予測可能な事象と、動線検出アルゴリズムによって予測可能な事象とは異なる。具体的には、作業予測部142が検知情報Idから生成する作業予測Poは、「作業者Huが行っている作業Opの内容」についての予測である。これに対して、存否予測部141が動線検出アルゴリズムを用いて生成する存否予測Paは、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」についての予測である。
【0250】
そのため、情報処理装置10(特に、判定部150)は、第一予測Pf(の正否)を検証するのに、作業予測Poおよび存否予測Paの少なくとも一方を用いることができる。具体的には、判定部150は、図3に示すように、作業予測Poのみを用いて第一予測Pf(の正否)を検証してもよいし、図4に示すように、存否予測Paのみを用いて第一予測Pf(の正否)を検証してもよい。
【0251】
また、判定部150は、存否予測Paおよび作業予測Poの両方を用いて第一予測Pf(の正否)を検証してもよい。特に、判定部150は、図5に示すように、存否予測Paによって先ず作業者Huの存否をフィルタリングし、作業者Huが存在すると予測した場合にさらに、作業予測Poを利用して、第一予測Pf(の正否)を検証してもよい。
【0252】
これまで図3図4、および、図5を用いて説明してきた情報処理装置10の実行する処理は、以下のように整理することができる。すなわち、情報処理装置10の実行する制御方法は、「作業場Arにおいて作業者Huが行っている作業Opの内容」を推定する作業推定装置の制御方法である。情報処理装置10の実行する制御方法は、予測ステップ(S120、S220、S330)と、判定ステップ(S130、S210、S310、S340)と、推定ステップ(S140、S230、S350)とを含む。
【0253】
予測ステップは、作業予測モデル171を用いて、「作業場画像Ic、または、作業場画像Icから生成された特徴情報」から、「作業者Huが作業対象物Obについて行っている作業Opの内容」を予測する。作業予測モデル171は、「作業場Arを撮像した作業場画像Ic」または「作業場画像Icから生成された特徴情報」を入力とし、以下の情報を出力とする学習済モデルである。すなわち、作業予測モデル171は、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を出力とする学習済モデルである。
【0254】
判定ステップは、作業予測モデル171を用いずに予測された作業Opの内容、および、作業場Arに作業者Huが存在するか否かの判定結果の少なくとも一方を用いて、予測ステップでの予測の正否を判定する。つまり、判定ステップは、作業予測Poおよび存否予測Paの少なくとも一方を用いて、第一予測Pfの正否を判定する。
【0255】
推定ステップは、判定ステップにて「予測ステップでの予測が正しい」と判定されると、予測ステップにて予測された作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。つまり、推定ステップは、作業予測Poおよび存否予測Paの少なくとも一方を用いて第一予測Pfが正しいことが検証されると、第一予測Pfを、「作業場Arにおいて作業者Huが行っている作業Opの内容」についての推定結果として出力する。
【0256】
前記の構成によれば、前記制御方法は、作業予測モデル171を用いて予測した作業Opの内容の正否を、作業予測モデル171を用いずに予測された作業Opの内容、および、作業場Arにおける作業者Huの存否の判定結果の少なくとも一方を用いて判定する。そして、前記制御方法は、作業予測モデル171を用いた予測が正しいと判定されると、作業予測モデル171を用いて予測した作業Opの内容を、「作業場Arにおいて作業者Huが行っている作業Opの内容」であると推定する。
【0257】
つまり、前記制御方法は、作業予測モデル171を用いて予測した作業Opの内容の正否を、作業予測モデル171を用いずに予測された作業Opの内容、および、作業場Arに作業者Huが存在するか否かの判定結果の少なくとも一方を用いて検証する。
【0258】
したがって、前記制御方法は、作業場画像Icから、「作業場Arにおいて作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0259】
(ニューラルネットワーク(NN)として実現した第一予測部および存否予測部の例)
前述の通り、第一予測部120および存否予測部141の少なくとも一方は、NNとして実現されてもよい。特に、第一予測部120および存否予測部141の少なくとも一方は、CNN(Convolution al Neural Network)またはDNN(Deep Neural Network)として、実現されてもよい。
【0260】
例えば、第一予測部120(作業予測モデル171)は、作業場画像Icから、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す第一予測Pfを出力する。また、例えば、存否予測部141(存否モデル172)は、全体画像Iaから、「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を示す存否予測Paを出力する。
【0261】
次に、学習済モデルである作業予測モデル171および存否モデル172を構築する学習処理について、以下に説明する。
【0262】
(学習処理)
(作業予測モデルについて)
NNとして実現された第一予測部120は、学習済モデルである作業予測モデル171を、例えば、教師データDt1の集合である学習用データセットDS1に対する教師あり学習によって構築する。教師データDt1は、作業場画像Icに対し、少なくとも「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す情報がラベルとして付されたデータである。「教師データ」は「学習用データ」とも呼ばれる。また、「第一予測部120が、学習用データセットDS1に対する教師あり学習によって、作業予測モデル171を構築する」処理を、「学習処理SS1」とも称する。
【0263】
学習処理SS1において、NNとして実現された第一予測部120は、学習用データセットDS1に対する教師あり学習によって、作業場画像Icの入力に対して、以下の情報を出力する作業予測モデル171を、学習済モデルとして構築する。すなわち、作業予測モデル171は、作業場画像Icを入力とし、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を出力とする学習済モデルである。
【0264】
つまり、教師データDt1において作業場画像Icには、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す情報がラベルとして付されている。教師データDt1において作業場画像Icに対するラベルとして付される情報は、教師データDt1の集合である学習用データセットDS1に対する機械学習により構築される作業予測モデル171が、作業場画像Icの入力に対して出力する情報と同様である。
【0265】
NNとして実現された第一予測部120は、学習処理SS1によって構築した作業予測モデル171を、記憶部170に格納する。
【0266】
(教師データの準備について)
図6は、教師データDt1の生成に必要なアノテーションの一例を説明する図である。図6に例示する教師データDt1において、作業場画像Icには、以下のラベル(アノテーション)が付されている。すなわち、作業場画像Icには、一点鎖線で囲んだ、「作業者Huを検出するバウンディングボックスの範囲」を示すラベルが付されている。また、作業場画像Icには、二点鎖線で囲んだ、「作業対象物Obを検出するバウンディングボックスの範囲」を示すラベルが付されている。さらに、作業場画像Icには、両端を矢印とする直線が、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示すラベルとして付されている。両端を矢印とする直線は、「作業者Huを検出するバウンディングボックスの範囲」の略中央と、「作業対象物Obを検出するバウンディングボックスの範囲」の略中央とを結んでいる。
【0267】
図6に例示するような教師データDt1の準備には、作業者Huを検出するためのバウンディングボックスの設定が不要であったとしても、作業場画像Icに対して以下の5つのアノテーションが必要となる。すなわち、作業場画像Icに対して、作業対象物Obを検出するためのバウンディングボックスの範囲を示す4点のうち、左下の点および右上の点の各々のX座標およびY座標を設定することが必要であり、つまり、4つのアノテーションが必要となる。さらに、作業場画像Icに対して、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す1つのアノテーションが必要となる。
【0268】
ここで、教師あり学習のためには、一般に大量の教師データDt1が必要であり、大量の教師データDt1を準備するためには、大量の作業場画像Icの各々について、上述の5つのアノテーションを行うことが必要となる。そのため、大量の作業場画像Icの各々について、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を人間に判定させようとする場合、それに要するコストは極めて大きい。
【0269】
そこで、本実施形態においては、教師データDt1の準備に際して、作業場画像Icから人間が判定した「作業Opの内容」ではなく、検知情報Idから予測された「作業Opの内容」が、「作業Opの内容」を示すラベルとして、作業場画像Icに付与される。つまり、教師データDt1においては、作業場画像Icから人間が判定した「作業Opの内容」ではなく、作業予測部142が検知情報Idから予測した「作業Opの内容」が、「作業Opの内容」を示すラベルとして付されている。
【0270】
そのため、作業予測モデル171の構築に必要となるコストは、「作業Opの内容」を示すラベルとして「作業場画像Icから人間が判定した内容」を用いる場合と比べて、大幅に抑制できる。特に、学習用データセットDS1の生成に必要なアノテーションコストは、「作業Opの内容」を示すラベルとして「作業場画像Icから人間が判定した内容」を用いる場合と比べて、大幅に抑制できる。例えば、作業場画像Icに対して必要な上述の5つのアノテーションの内の1つを、「人間による判定内容」から「作業予測部142が検知情報Idから予測した内容」へと変更するので、アノテーションコストを20%抑制することができる。
【0271】
例えば、或る撮像時刻Tpにおいてセルカメラ30が作業場Ar(x)を撮像して生成した作業場画像Ic(x)について、以下の「作業Op(x)の内容」が、ラベルとして付されることによって、教師データDt1(x)が生成される。すなわち、作業予測部142が検知情報Id(x)から予測した「撮像時刻Tpにおいて、作業者Hu(x)が、作業場Ar(x)で行っている作業Op(x)の内容」が、作業場画像Ic(x)に対してラベルとして付された教師データDt1(x)が生成される。検知情報Id(x)は、撮像時刻Tpにおける「作業Op(x)に用いられる工具(例えば、出力デバイス42(x)または器具90(x))、作業対象物Ob(x)、および、作業場Ar(x)の少なくとも1つの状態」を示す情報である。
【0272】
具体的には、作業予測部142は、例えば、「撮像時刻Tpにおいて、器具90(x):電動ドライバに流れた電流の大きさ」から、「撮像時刻Tpにおいて、作業者Huが、作業場Ar(x)で作業Op(x):ネジ締め作業を行った」と予測する。この予測内容(つまり、「作業Op(x)の内容::ネジ締め作業」)が、作業場画像Ic(x)に付されることによって、教師データDt1(x)が生成される。
【0273】
これまでに説明してきたように、情報処理装置10において、作業予測モデル171は、学習用データセットDS1を用いた機械学習によって構築された学習済モデルである。学習用データセットDS1において、「作業場画像Icまたは作業場画像Icから生成された特徴情報」には、以下の情報がラベルとして付されている。すなわち、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を検知する入力デバイス41の検知情報Idから予測された、「作業場Arにおいて作業者Huが行っている作業Opの内容」がラベルとして付されている。
【0274】
前記の構成によれば、情報処理装置10は、入力デバイス41の検知情報Idから予測した「作業場Arにおいて作業者Huが行っている作業Opの内容」がラベルとして付された学習用データセットを用いた機械学習によって、作業予測モデル171を構築する。
【0275】
教師あり学習のためには、大量の教師データ(学習用データセット)が必要であることが知られており、そのような教師データの生成に必要なラベリング作業、および、教師データに付されているラベル(メタデータ)は、「アノテーション」とも呼ばれる。
【0276】
例えば、作業予測モデル171の構築に際して学習される教師データDt1には、作業者Huを検出するためのバウンディングボックス(Bounding Box)の設定が不要であったとしても、作業場画像Icに対して以下の5つのアノテーションが必要となる。すなわち、作業場画像Icに対して、作業対象物Obを検出するためのバウンディングボックスの範囲を示す4点のうち、左下の点および右上の点の各々のX座標およびY座標を設定することが必要であり、つまり、4つのアノテーションが必要となる。さらに、作業場画像Icに対して、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を示す情報(ラベル)の付与が必要であり、つまり、1つのアノテーションが必要となる。
【0277】
そして、大量の作業場画像Icの各々について、「作業場画像Icに撮像されている作業者Huが、作業場画像Icに撮像されている作業対象物Obについて行っている作業Opの内容」を人間に判定させようとする場合、それに要するコストは極めて大きい。
【0278】
そこで、教師データDt1の生成に際しては、作業場画像Icから人間が判定した「作業Opの内容」ではなく、入力デバイス41の検知情報Idから予測された「作業Opの内容」が、「作業Opの内容」を示すラベルとして付与される。つまり、教師データDt1においては、作業場画像Icから人間が判定した「作業Opの内容」ではなく、入力デバイス41の検知情報Idから予測された「作業Opの内容」が、「作業Opの内容」を示すラベルとして付されている。
【0279】
そのため、作業予測モデル171の構築に必要となるコストは、「作業Opの内容」を示すラベルとして「作業場画像Icから人間が判定した内容」を用いる場合と比べて、大幅に抑制できる。特に、学習用データセットDS1の生成に必要なアノテーションコストは、「作業Opの内容」を示すラベルとして「作業場画像Icから人間が判定した内容」を用いる場合と比べて、大幅に抑制できる。例えば、作業場画像Icに対して必要な上述の5つのアノテーションの内の1つを、「人間による判定内容」から「情報処理装置10等の装置が検知情報Idから予測した内容」へと変更するので、アノテーションコストを20%抑制することができる。
【0280】
したがって、前記の構成によれば、情報処理装置10は、アノテーションコストが大幅に抑制された作業予測モデル171を用いて、作業場画像Icから、「作業者Huが行っている作業Opの内容」を、高精度に推定することができるとの効果を奏する。
【0281】
(存否モデルについて)
NNとして実現された存否予測部141は、学習済モデルである存否モデル172を、例えば、教師データDt2の集合であるデータセットDS2に対する教師あり学習によって構築する。教師データDt2は、全体画像Iaに対し、「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を示す情報がラベルとして付されたデータである。「存否予測部141が、データセットDS2に対する教師あり学習によって、存否モデル172を構築する」処理を、「学習処理SS2」とも称する。
【0282】
学習処理SS2において、NNとして実現された存否予測部141は、データセットDS2に対する教師あり学習によって、全体画像Iaの入力に対して、以下の情報を出力する存否モデル172を、学習済モデルとして構築する。すなわち、存否モデル172は、全体画像Iaを入力とし、「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を出力とする学習済モデルである。
【0283】
つまり、教師データDt2において全体画像Iaには、「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を示す情報がラベルとして付されている。教師データDt2において全体画像Iaに対するラベルとして付される情報は、教師データDt2の集合であるデータセットDS2に対する機械学習により構築される存否モデル172が、全体画像Iaの入力に対して出力する情報と同様である。
【0284】
NNとして実現された存否予測部141は、学習処理SS2によって構築した存否モデル172を、記憶部170に格納する。
【0285】
ただし、存否予測部141が学習処理SS2によって存否モデル172を構築することは必須ではない。存否予測部141は、動線検出アルゴリズムに用いられる一般的な学習済モデルを存否モデル172として用いて、全体画像Iaから「作業場Ar(より正確には、工場Faにおける複数の作業場Arの各々)に作業者Huが居るか」を予測してもよい。
【0286】
§4.変形例
(機械学習について)
これまで、教師ありデータに対する機械学習によって、学習済データとして作業予測モデル171および存否モデル172を構築する例を説明してきた。しかしながら、作業予測モデル171および存否モデル172を構築するための機械学習は、教師ありデータに対する機械学習に限られない。作業予測モデル171および存否モデル172を構築するための機械学習は、教師あり学習に限らず、教師なし学習、または、強化学習等の他の機械学習であってもよい。
【0287】
(全体画像について)
これまで、存否予測部141が、全体画像Iaから「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測する例を説明してきた。しかしながら、存否予測部141は、作業場画像Icから「作業場画像Icに撮像されている作業場Arに作業者Huが居るか」を予測してもよい。すなわち、情報処理装置10が、作業場画像Icとは別に全体画像Iaを取得することは必須ではない。情報処理装置10(特に、判定部150)は、作業場画像Icから生成した第一予測Pfの正否を、全体画像Iaおよび作業場画像Icの少なくとも一方から生成された存否予測Paによって検証することができる。例えば、判定部150は、全体画像Iaおよび作業場画像Ic(x)の少なくとも一方から生成された存否予測Pa(x)が「作業場Ar(x)に作業者Huが存在する」との予測であると、「第一予測Pf(x)は正しい」と判定する。
【0288】
(作業予測について)
これまで、検知情報Idから、「作業者Huが行っている作業Opの内容」を予測する主体が、情報処理装置10である例を説明してきた。すなわち、作業予測部142が、検知情報Idから、「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を把握し、把握した状態から、作業予測Poを生成する例を説明してきた。
【0289】
しかしながら、検知情報Idから「作業Opに用いられる工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態」を把握し、把握した状態から、「作業者Huが行っている作業Opの内容」を予測する主体は、情報処理装置10でなくともよい。情報処理装置10は、工具、作業対象物Ob、および、作業場Arの少なくとも1つの状態から予測される「作業者Huが行っている作業Opの内容」を取得または生成できればよい。
【0290】
例えば、PLC20が、検知情報Idから作業予測Poを生成してもよい。その場合、情報処理装置10(特に、検知情報取得部132)は、PLC20から、PLC20が実行した予測の結果を、つまり、作業予測Poを取得する。そして、判定部150は、PLC20の生成した作業予測Poを用いて、第一予測Pf(の正否)を検証する。
【0291】
つまり、情報処理装置10(特に、判定部150)が第一予測Pf(の正否)を検証するために作業予測Poを用いる場合、検知情報Idから作業予測Poを生成する主体は、情報処理装置10であってもよいし、情報処理装置10でなくともよい。
【0292】
(第二予測について)
これまで、情報処理装置10が存否予測部141と作業予測部142とを共に備える例を説明してきたが、情報処理装置10が存否予測部141と作業予測部142とを共に備えることは必須ではない。判定部150は、第一予測Pf(の正否)を、第二予測Psを用いて検証できればよく、つまり、第一予測Pf(の正否)を、存否予測Paおよび作業予測Poの少なくとも一方を用いて検証できればよい。そのため、第一予測Pf(の正否)の検証に存否予測Paを用いない場合、情報処理装置10は、存否予測部141を備えなくともよい。また、第一予測Pf(の正否)の検証に作業予測Poを用いない場合、情報処理装置10は、作業予測部142を備えなくともよい。
【0293】
〔ソフトウェアによる実現例〕
情報処理装置10の機能ブロック(具体的には、第一取得部110、第一予測部120、第二取得部130、第二予測部140、判定部150、および推定部160)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよい。また、これらの機能ブロックは、CPU、GPU、DSP等を用いてソフトウェアによって実現してもよい。
【0294】
後者の場合、情報処理装置10は、各々、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、GPU、DSP等と、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROMまたは記憶装置(これらを「記録媒体」と称する)と、上記プログラムを展開するRAM等とを備えている。そして、コンピュータ(またはCPU、GPU、DSP等)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路等を用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0295】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0296】
10 情報処理装置(作業推定装置)
41 入力デバイス(センサ)
42 出力デバイス(工具)
90 器具(工具)
120 第一予測部(予測部)
141 存否予測部
142 作業予測部(作業検知部)
150 判定部
160 推定部
171 作業予測モデル
172 存否モデル
Ar 作業場
DS1 学習用データセット
Hu 作業者
Ia 全体画像
Ic 作業場画像
Id 検知情報
Ob 作業対象物
Op 作業
S120 (予測ステップ)
S130 (判定ステップ)
S140 (推定ステップ)
S210 (判定ステップ)
S220 (予測ステップ)
S230 (推定ステップ)
S310 (判定ステップ)
S330 (予測ステップ)
S340 (判定ステップ)
S350 (推定ステップ)
図1
図2
図3
図4
図5
図6