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

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

▶ 公立大学法人会津大学の特許一覧

特開2024-72168関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム
<>
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図1
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図2
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図3
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図4
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図5
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図6
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図7
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図8
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図9
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図10
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図11
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図12
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図13
  • 特開-関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024072168
(43)【公開日】2024-05-27
(54)【発明の名称】関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システム
(51)【国際特許分類】
   A61B 5/11 20060101AFI20240520BHJP
【FI】
A61B5/11 230
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022182875
(22)【出願日】2022-11-15
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度、国立研究開発法人新エネルギー・産業技術総合開発機構「官民による若手研究者発掘支援事業/マッチングサポートフェーズ/安価かつ高性能な自己完結型データグローブの研究開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(74)【代理人】
【識別番号】110003421
【氏名又は名称】弁理士法人フィールズ国際特許事務所
(72)【発明者】
【氏名】荊 雷
(72)【発明者】
【氏名】宮田 大輔
【テーマコード(参考)】
4C038
【Fターム(参考)】
4C038VA04
4C038VB12
4C038VC09
(57)【要約】
【課題】作業者が行っている作業の内容に依らず、作業者の手の姿勢を推定することを可能とする関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システムを提供する。
【解決手段】推定対象の作業者が手に装着した導電性の布グローブに取り付けられたセンサから、推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、学習対象の作業者の関節位置における圧力に対応するセンサ値と、学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して第1のセンサ値を入力し、第1のセンサ値の入力に伴って機械学習モデルから出力される第1の関節角度を取得し、取得した第1の関節角度を出力する。
【選択図】図2
【特許請求の範囲】
【請求項1】
推定対象の作業者が手に装着した導電性の布グローブに取り付けられたセンサから、前記推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、
学習対象の作業者の関節位置における圧力に対応するセンサ値と、前記学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して、受信した前記第1のセンサ値を入力し、前記第1のセンサ値の入力に伴って前記機械学習モデルから出力される第1の関節角度を取得し、
取得した前記第1の関節角度を出力する、
処理をコンピュータに実行させることを特徴とする関節角度推定プログラム。
【請求項2】
請求項1において、
さらに、前記複数の教師データを学習することによって前記機械学習モデルを生成し、
生成した前記機械学習モデルを記憶部に記憶する、
処理をコンピュータに実行させ、
前記取得する処理では、前記記憶部に記憶された前記機械学習モデルに対して前記第1のセンサ値を入力する、
ことを特徴とする関節角度推定プログラム。
【請求項3】
請求項1において、
前記出力する処理では、
前記第1の関節角度から前記推定対象の作業者の手の姿勢を推定し、
推定した前記姿勢を出力する、
ことを特徴とする関節角度推定プログラム。
【請求項4】
請求項1において、
さらに、前記第1の関節角度を取得する処理の後、前記布グローブを装着した場合における前記推定対象の作業者の第2の関節角度を取得し、
取得した前記第1の関節角度と、取得した前記第2の関節角度とから、前記第1の関節角度と前記第2の関節角度との誤差値を算出し、
前記算出する処理の後、前記センサから、前記推定対象の作業者の関節位置における圧力に対応する第2のセンサ値を受信し、
前記機械学習モデルに対して前記第2のセンサ値を入力し、前記第2のセンサ値の入力に伴って前記機械学習モデルから出力される第3の関節角度を取得し、
算出した前記誤差値を用いて、取得した前記第3の関節角度を補正し、
補正した前記第3の関節角度を出力する、
処理をコンピュータに実行させることを特徴とする関節角度推定プログラム。
【請求項5】
推定対象の作業者が手に装着した導電性の布グローブに取り付けられたセンサから、前記推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、
学習対象の作業者の関節位置における圧力に対応するセンサ値と、前記学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して、受信した前記第1のセンサ値を入力し、前記第1のセンサ値の入力に伴って前記機械学習モデルから出力される第1の関節角度を取得し、
取得した前記第1の関節角度を出力する、
ことを特徴とする情報処理装置。
【請求項6】
推定対象の作業者が手に装着した導電性の布グローブに取り付けられたセンサから、前記推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、
学習対象の作業者の関節位置における圧力に対応するセンサ値と、前記学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して、受信した前記第1のセンサ値を入力し、前記第1のセンサ値の入力に伴って前記機械学習モデルから出力される第1の関節角度を取得し、
取得した前記第1の関節角度を出力する、
処理をコンピュータが実行することを特徴とする関節角度推定方法。
【請求項7】
センサが取り付けられた導電性の布グローブと、前記センサから受信したセンサ値を用いて処理を行う情報処理装置とを有し、
前記情報処理装置は、
推定対象の作業者が手に装着した前記布グローブに取り付けられた前記センサから、前記推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、
学習対象の作業者の関節位置における圧力に対応するセンサ値と、前記学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して、受信した前記第1のセンサ値を入力し、前記第1のセンサ値の入力に伴って前記機械学習モデルから出力される第1の関節角度を取得し、
取得した前記第1の関節角度を出力する、
ことを特徴とする関節角度推定システム。
【請求項8】
請求項7において、
前記センサは、前記布グローブを装着した場合における前記推定対象の作業者の関節位置に取り付けられたセンサを含む、
ことを特徴とする関節角度推定システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システムに関する。
【背景技術】
【0002】
近年、人間と外部環境との間の相互作用を触覚によって検出する際に、導電性布が用いられる場合がある。このような導電性布は、例えば、厚み方向の抵抗値(以下、単に抵抗値とも呼ぶ)が厚み方向に印加される圧力によって変化する性質を有している。そのため、例えば、導電性布によって生成されたグローブを作業者の手に装着することにより、作業中において測定された抵抗値から作業者の手の姿勢を推定することが可能になる(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2021/0315485
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、上記のような姿勢の推定に用いられる学習モデル(以下、単に学習モデルとも呼ぶ)は、例えば、予め定められた特定の作業(以下、単に特定の作業とも呼ぶ)が行われている際の姿勢を推定することを想定して学習されたものであり、特定の作業以外の作業が行われている際の姿勢については十分な判定精度を確保することができない。そのため、上記のような分野では、例えば、作業者が行っている作業の内容に依らず、作業者の手の姿勢を高精度に推定することが可能な方法が求められている。
【0005】
そこで、本発明の目的は、作業者が行っている作業の内容に依らず、作業者の手の姿勢を推定することを可能とする関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システムを提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するための本発明における関節角度推定プログラムは、推定対象の作業者が手に装着した導電性の布グローブに取り付けられたセンサから、前記推定対象の作業者の関節位置における圧力に対応する第1のセンサ値を受信し、学習対象の作業者の関節位置における圧力に対応するセンサ値と、前記学習対象の作業者の関節角度とをそれぞれ含む複数の教師データを学習した機械学習モデルに対して、受信した前記第1のセンサ値を入力し、前記第1のセンサ値の入力に伴って前記機械学習モデルから出力される第1の関節角度を取得し、取得した前記第1の関節角度を出力する、処理をコンピュータに実行させる。
【発明の効果】
【0007】
本発明における関節角度推定プログラム、情報処理装置、関節角度推定方法及び関節角度推定システムによれば、作業者が行っている作業の内容に依らず、作業者の手の姿勢を推定することが可能になる。
【図面の簡単な説明】
【0008】
図1図1は、第1の実施の形態における情報処理装置1の構成例を示す図である。
図2図2は、第1の実施の形態におけるグローブ2の構成例を示す図である。
図3図3は、第1の実施の形態の概略を説明する図である。
図4図4は、第1の実施の形態の概略を説明する図である。
図5図5は、第1の実施の形態における学習処理の詳細を説明するフローチャート図である。
図6図6は、第1の実施の形態における学習処理の詳細を説明するフローチャート図である。
図7図7は、第1の実施の形態における学習処理の詳細を説明するフローチャート図である。
図8図8は、第1の実施の形態における学習処理の詳細を説明する図である。
図9図9は、第1の実施の形態における学習処理の詳細を説明する図である。
図10図10は、第1の実施の形態における姿勢推定処理の詳細を説明するフローチャート図である。
図11図11は、第1の実施の形態における姿勢推定処理の詳細を説明する図である。
図12図12は、第1の変形例における姿勢推定処理を説明するフローチャート図である。
図13図13は、第2の変形例における姿勢推定処理を説明するフローチャート図である。
図14図14は、第2の変形例における姿勢推定処理を説明する図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【0010】
[第1の実施の形態における情報処理装置1の構成例]
初めに、第1の実施の形態における情報処理装置1の構成例について説明を行う。図1は、第1の実施の形態における情報処理装置1の構成例を示す図である。
【0011】
情報処理装置1は、情報処理システム10に含まれるコンピュータ装置であって、例えば、汎用的なPC(Personal Computer)である。そして、情報処理装置1は、例えば、グローブ2を装着した作業者の手の姿勢を推定する処理(以下、姿勢推定処理とも呼ぶ)を行う。
【0012】
情報処理装置1は、汎用的なコンピュータ装置のハードウエア構成を有し、例えば、図1に示すように、プロセッサであるCPU101と、メモリ102と、通信インタフェース103と、記憶媒体104(以下、記憶部104とも呼ぶ)とを有する。各部は、バス105を介して互いに接続される。
【0013】
記憶媒体104は、例えば、姿勢推定処理を行うためのプログラム(図示しない)を記憶するプログラム格納領域(図示しない)を有する。
【0014】
また、記憶媒体104は、例えば、姿勢推定処理を行う際に用いられる情報を記憶する記憶領域(図示せず)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
【0015】
CPU101は、例えば、記憶媒体104からメモリ102にロードされたプログラム(図示せず)を実行することによって姿勢推定処理を行う。
【0016】
通信インタフェース103は、例えば、有線通信または無線通信によってグローブ2と通信を行う。
【0017】
[第1の実施の形態におけるグローブ2の構成例]
次に、第1の実施の形態におけるグローブ2の構成例について説明を行う。図2は、第1の実施の形態におけるグローブ2の構成例を示す図である。なお、図2に示すグローブ2に取り付けられる(縫い付けられる)センサの位置や数等は、一例であり、これに限られるものではない。
【0018】
グローブ2は、例えば、情報処理システム10に含まれるグローブである。そして、グローブ2は、例えば、導電性布によって生成されたグローブ本体21と、グローブ本体21に取り付けられた1以上のセンサ22、1以上のセンサ23、1以上のセンサ24及び1以上のセンサ25を有する。
【0019】
具体的に、1以上のセンサ22は、例えば、グローブ本体21を作業者が装着した場合における作業者の小指の平坦位置に対応する位置に取り付けられたセンサ22a、センサ22b及びセンサ22cを含む。また、1以上のセンサ22は、例えば、グローブ本体21を作業者が装着した場合における作業者の薬指の平坦位置に対応する位置に取り付けられたセンサ22d、センサ22e及びセンサ22fを含む。また、1以上のセンサ22は、例えば、グローブ本体21を作業者が装着した場合における作業者の中指の平坦位置に対応する位置に取り付けられたセンサ22g、センサ22h及びセンサ22iを含む。また、1以上のセンサ22は、例えば、グローブ本体21を作業者が装着した場合における作業者の人差し指の平坦位置に対応する位置に取り付けられたセンサ22j、センサ22k及びセンサ22lを含む。さらに、1以上のセンサ22は、例えば、グローブ本体21を作業者が装着した場合における作業者の親指の平坦位置に対応する位置に取り付けられたセンサ22m及びセンサ22nを含む。
【0020】
すなわち、1以上のセンサ22は、例えば、作業者の指の平坦位置における圧力を測定するセンサとして機能する。具体的に、1以上のセンサ22は、例えば、作業者の指の姿勢に応じて作業者の指の平坦位置において発生するグローブ本体21(導電性布)の厚み方向の抵抗値(以下、センサ値とも呼ぶ)を測定する。そして、1以上のセンサ22は、例えば、測定したセンサ値を情報処理装置1に送信する。
【0021】
また、1以上のセンサ23は、例えば、グローブ本体21を作業者が装着した場合における作業者の小指の関節位置に対応する位置に取り付けられたセンサ23a、センサ23b及びセンサ23cを含む。また、1以上のセンサ23は、例えば、グローブ本体21を作業者が装着した場合における作業者の薬指の関節位置に対応する位置に取り付けられたセンサ23d、センサ23e及びセンサ23fを含む。また、1以上のセンサ23は、例えば、グローブ本体21を作業者が装着した場合における作業者の中指の関節位置に対応する位置に取り付けられたセンサ23g、センサ23h及びセンサ23iを含む。また、1以上のセンサ23は、例えば、グローブ本体21を作業者が装着した場合における作業者の人差し指の関節位置に対応する位置に取り付けられたセンサ23j、センサ23k及びセンサ23lを含む。さらに、1以上のセンサ23は、例えば、グローブ本体21を作業者が装着した場合における作業者の親指の関節位置に対応する位置に取り付けられたセンサ23m及びセンサ23nを含む。
【0022】
すなわち、1以上のセンサ23は、例えば、作業者の指の関節位置における圧力を測定するセンサとして機能する。具体的に、1以上のセンサ23は、例えば、作業者の指の姿勢に応じて作業者の指の関節位置において発生するグローブ本体21(導電性布)の厚み方向の抵抗値(センサ値)を測定する。そして、1以上のセンサ23は、例えば、測定したセンサ値を情報処理装置1に送信する。
【0023】
また、1以上のセンサ24は、例えば、グローブ本体21を作業者が装着した場合における作業者の掌の平坦位置に対応する位置のうち、指側の位置に取り付けられたセンサ24a、センサ24b、センサ24c、センサ24d、センサ24e、センサ24f、センサ24g及びセンサ24hを含む。また、1以上のセンサ24は、例えば、グローブ本体21を作業者が装着した場合における作業者の掌の平坦位置に対応する位置のうち、手首側の位置に取り付けられたセンサ24i、センサ24j、センサ24k、センサ24l、センサ24m、センサ24n、センサ24о及びセンサ24pを含む。
【0024】
すなわち、1以上のセンサ24は、例えば、作業者の掌の平坦位置における圧力を測定するセンサとして機能する。具体的に、1以上のセンサ24は、例えば、作業者の掌の姿勢に応じて作業者の掌の平坦位置において発生するグローブ本体21(導電性布)の厚み方向の抵抗値(センサ値)を測定する。そして、1以上のセンサ24は、例えば、測定したセンサ値を情報処理装置1に送信する。
【0025】
また、1以上のセンサ25は、例えば、グローブ本体21を作業者が装着した場合における作業者の掌の関節位置に対応する位置(例えば、センサ24a等が取り付けられた位置とセンサ24i等が取り付けられた位置との間の位置)に取り付けられたセンサ25aを含む。
【0026】
すなわち、1以上のセンサ25は、例えば、作業者の掌の関節位置における圧力を測定するセンサとして機能する。具体的に、1以上のセンサ25は、例えば、作業者の掌の姿勢に応じて作業者の掌の関節位置において発生するグローブ本体21(導電性布)の厚み方向の抵抗値(センサ値)を測定する。そして、1以上のセンサ25は、例えば、測定したセンサ値を情報処理装置1に送信する。
【0027】
このように、本実施の形態におけるグローブ2には、例えば、グローブ本体21を作業者が装着した場合における手の平坦位置に加え、グローブ本体21を作業者が装着した場合における手の関節位置においても各センサが取り付けられている。そして、グローブ2は、例えば、各センサによって測定されたセンサ値を情報処理装置1に対して随時送信する。
【0028】
これにより、本実施の形態における情報処理装置1は、後述するように、例えば、各センサから送信されたセンサ値を入力することによって作業者の手の関節角度を推定する学習モデルを生成することが可能になる。
【0029】
なお、以下、1以上のセンサ22と1以上のセンサ24とを総称して平坦位置センサFSとも呼び、1以上のセンサ23と1以上のセンサ25とを総称して関節位置センサJSとも呼ぶ。
【0030】
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明を行う。図3及び図4は、第1の実施の形態の概略を説明する図である。具体的に、図3は、情報処理装置1の機能について説明するブロック図である。また、図4は、記憶媒体104に記憶される情報について説明する図である。
【0031】
情報処理装置1は、図3に示すように、例えば、センサ値受信部111、データ生成部112、モデル生成部113、関節角度取得部114、姿勢推定部115及び結果出力部116を含む各機能を実現する。なお、センサ値受信部111、データ生成部112及びモデル生成部113は、学習モデルMDの生成を行う処理(以下、学習処理とも呼ぶ)を実現する機能である。また、センサ値受信部111、関節角度取得部114、姿勢推定部115及び結果出力部116は、姿勢推定処理を実現する機能である。
【0032】
また、記憶媒体104は、図4に示すように、例えば、センサ値131と、関節角度132と、教師データ133と、補正値134と、学習モデルMDを記憶する。なお、補正値134の説明については後述する。
【0033】
初めに、学習処理を実現する機能について説明を行う。
【0034】
情報処理装置1のセンサ値受信部111は、例えば、作業者(以下、学習対象の作業者とも呼ぶ)が手に装着したグローブ2に取り付けられた各センサから、学習対象の作業者の平坦位置及び関節位置における圧力に対応するセンサ値131(以下、学習対象のセンサ値131とも呼ぶ)を受信する。そして、センサ値受信部111は、例えば、受信したセンサ値131を記憶媒体104に記憶する。
【0035】
具体的に、センサ値受信部111は、例えば、平坦位置センサFSのそれぞれから、学習対象の作業者の手の各平坦位置における圧力に対応するセンサ値131を受信する。また、センサ値受信部111は、例えば、関節位置センサJSのそれぞれから、学習対象の作業者の手の各関節位置における圧力に対応するセンサ値131を受信する。
【0036】
なお、平坦位置センサFS及び関節位置センサJSのそれぞれは、例えば、定期的なタイミング(例えば、数msごとのタイミング)においてセンサ値131を測定して情報処理装置1に送信するものであってよい。
【0037】
情報処理装置1のデータ生成部112は、例えば、センサ値受信部111が関節位置センサJSから受信したセンサ値131(記憶媒体104に記憶されたセンサ値131)と、学習対象の作業者の関節角度132(記憶媒体104に記憶された関節角度132)とをそれぞれ含む複数の教師データ133を生成する。学習対象の作業者の関節角度132は、例えば、撮影装置(図示しない)によって予め撮影された画像データ(学習対象の作業者の手が映る画像データ)から特定された各関節の関節角度(学習対象の作業者の各関節における関節角度)であり、記憶媒体104に予め記憶された情報である。そして、データ生成部112は、例えば、生成した複数の教師データ133を記憶媒体104に記憶する。
【0038】
具体的に、データ生成部112は、例えば、関節位置センサJSにおいて測定されたセンサ値131(以下、特定のセンサ値131とも呼ぶ)を含む教師データ133を生成する場合、特定のセンサ値131が測定されたタイミング(以下、第1タイミングとも呼ぶ)に対応するタイミング(以下、第2タイミングとも呼ぶ)において撮影された画像データから特定された関節角度132のうち、特定のセンサ値131を測定したセンサが取り付けられた位置に対応する関節の関節角度132(以下、特定の関節角度132とも呼ぶ)を特定する。第2タイミングは、例えば、第1タイミングと同一のタイミング、または、第1タイミングとの差が予め定められた閾値以下であるタイミングである。そして、データ生成部112は、例えば、特定のセンサ値131と特定の関節角度132とを含む教師データ133を生成する。
【0039】
情報処理装置1のモデル生成部113は、例えば、データ生成部112が生成した複数の教師データ(記憶媒体104に記憶された複数の教師データ)を学習することによって機械学習モデルMD(以下、単に学習モデルMDとも呼ぶ)を生成する。そして、モデル生成部113は、例えば、生成した学習モデルMDを記憶媒体104に記憶する。なお、学習モデルMDは、例えば、回帰型のDNN(Deep Neural Network)モデルであってよい。
【0040】
次に、姿勢推定処理を実現する機能について説明を行う。
【0041】
情報処理装置1のセンサ値受信部111は、例えば、作業者(以下、推定対象の作業者とも呼ぶ)が手に装着したグローブ2に取り付けられた関節位置センサJSから、推定対象の作業者の関節位置における圧力に対応する新たなセンサ値131(以下、センサ値131aまたは推定対象のセンサ値131aとも呼ぶ)を受信する。そして、センサ値受信部111は、例えば、受信したセンサ値131aを記憶媒体104に記憶する。
【0042】
具体的に、センサ値受信部111は、例えば、平坦位置センサFSのそれぞれから、推定対象の作業者の手の各平坦位置における圧力に対応するセンサ値131aを受信する。また、センサ値受信部111は、例えば、関節位置センサJSのそれぞれから、学習対象の作業者の手の各関節位置における圧力に対応するセンサ値131aを受信する。
【0043】
情報処理装置1の関節角度取得部114は、例えば、モデル生成部113が生成した学習モデルMD(記憶媒体104に記憶された学習モデルMD)に対して、センサ値受信部111が受信したセンサ値131a(記憶媒体104に記憶されたセンサ値131a)を入力する。そして、関節角度取得部114は、例えば、センサ値131aの入力に伴って学習モデルMDから出力される関節角度132の推定値(以下、関節角度132aとも呼ぶ)を取得する。そして、関節角度取得部114は、例えば、取得した関節角度132aを記憶媒体104に記憶する。
【0044】
具体的に、関節角度取得部114は、例えば、関節位置センサJSのそれぞれによって測定されたセンサ値131aを学習モデルMDにそれぞれ入力する。そして、関節角度取得部114は、例えば、学習モデルMDから出力される関節角度132aのそれぞれを取得する。
【0045】
情報処理装置1の姿勢推定部115は、例えば、関節角度取得部114が取得した関節角度132a(記憶媒体104に記憶された関節角度132a)のそれぞれから、推定対象の作業者の手の姿勢を推定する。
【0046】
具体的に、姿勢推定部115は、例えば、推定対象の作業者の手における各関節についての全ての関節角度132aを用いることによって、推定対象の作業者の手の姿勢を推定する。
【0047】
情報処理装置1の結果出力部116は、例えば、姿勢推定部115によって推定された手の姿勢を出力装置(図示せず)に出力する。
【0048】
すなわち、結果出力部116は、例えば、関節位置センサJSのそれぞれがセンサ値131aを測定したタイミングにおける推定対象の作業者の手の姿勢を出力する。
【0049】
なお、結果出力部116は、例えば、センサ値受信部111が受信したセンサ値131a(記憶媒体104に記憶されたセンサ値131a)から、推定対象の作業者の手における圧力分布を生成して出力装置に出力するものであってもよい。具体的に、結果出力部116は、例えば、平坦位置センサFSのそれぞれが測定したセンサ値131aを用いることによって、推定対象の作業者の手における圧力分布を生成するものであってもよい。
【0050】
すなわち、本実施の形態における情報処理装置1は、姿勢推定処理において、例えば、グローブ2に取り付けられた関節位置センサJSのそれぞれから送信されたセンサ値131aの入力に応じてグローブ2を装着した作業者(推定対象の作業者)の関節角度132aを出力する学習モデルMDを用いる。そして、本実施の形態における情報処理装置1では、学習モデルMDから出力された関節角度132aを用いることによって、関節位置センサJSのそれぞれがセンサ値131を測定したタイミングにおける作業者の手の姿勢の推定を行う。
【0051】
この点、例えば、グローブに取り付けられた各センサから送信されたセンサ値の入力に応じてグローブを装着した作業者の手の姿勢を直接出力する分類型のDNN等(以下、他の学習モデルとも呼ぶ)を用いる場合、作業者が把持している物体の種類によってセンサ値が変わる可能性があるため、他の学習モデルを作業者が把持する可能性がある物体の種類ごとに用意する必要がある。
【0052】
これに対し、本実施の形態における情報処理装置1では、例えば、他の学習モデルに代えて、関節位置センサJSのそれぞれから送信されたセンサ値131aの入力に応じて関節角度132aを出力する学習モデルMDを用い、さらに、学習モデルMDから出力された関節角度132aから作業者の手の姿勢の推定を行う。そのため、情報処理装置1では、例えば、作業者が物体を把持しているか否かによらず、また、作業者が把持している物体の種類によらず、単一の学習モデル(学習モデルMD)によって作業者の手の姿勢の推定を行うことが可能になる。言い換えれば、本実施の形態における情報処理装置1では、例えば、他の学習モデルを用いる場合と比較して、手の姿勢の推定についての汎用性を高めることが可能になる。
【0053】
ここで、学習処理及び姿勢推定処理は、例えば、複数の情報処理装置1のそれぞれが各処理を連携して行うものであってもよい。
【0054】
具体的に、学習処理については、例えば、スペックの高い情報処理装置1が実行し、姿勢推定処理(すなわち、学習処理よりも処理負荷が低い処理)については、例えば、スペックの低い情報処理装置1が実行するものであってよい。さらに具体的に、学習処理については、例えば、PC等のコンピュータが実行するものであってよい。また、姿勢推定処理については、例えば、スマートフォンやRaspberry Pi(登録商標)等の小型のコンピュータが実行するものであってよい。なお、姿勢推定処理を実行する情報処理装置1は、この場合、例えば、図4で説明したセンサ値131、関節角度132及び教師データ133を有しない(記憶媒体104に記憶しない)ものであってよい。
【0055】
また、情報処理装置1(データ生成部112)は、学習処理において、例えば、複数人の学習用の作業者についてのセンサ値131のそれぞれを含む複数の教師データ133を生成するものであってもよい。そして、情報処理装置1(モデル生成部113)は、例えば、複数人の学習用の作業者についてのセンサ値131のそれぞれを含む複数の教師データ133を学習することによって学習モデルMDを生成するものであってもよい。
【0056】
[第1の実施の形態の詳細]
次に、第1の実施の形態における学習処理の詳細について説明を行う。図5から図7は、第1の実施の形態における学習処理の詳細を説明するフローチャート図である。また、図8及び図9は、第1の実施の形態における学習処理の詳細を説明する図である。また、図10は、第1の実施の形態における姿勢推定処理の詳細を説明するフローチャート図である。また、図11は、第1の実施の形態における姿勢推定処理の詳細を説明する図である。
【0057】
[センサ値記憶処理]
初めに、第1の実施の形態における学習処理のうち、平坦位置センサFS及び関節位置センサJSのそれぞれから送信されたセンサ値131を記憶媒体104に蓄積する処理(以下、センサ値記憶処理をも呼ぶ)について説明を行う。図5は、第1の実施の形態におけるセンサ値記憶処理について説明する図である。
【0058】
センサ値受信部111は、図5に示すように、例えば、平坦位置センサFS及び関節位置センサJSのいずれかからセンサ値131を受信するまで待機する(S11のNO)。
【0059】
そして、センサ値131を受信した場合、(S11のYES)、センサ値受信部111は、例えば、受信したセンサ値131を記憶媒体104に記憶する(S12)。
【0060】
[関節角度記憶処理]
次に、第1の実施の形態における学習処理のうち、撮影装置(図示せず)によって撮影された画像データから特定した作業者(学習対象の作業者)の各関節の関節角度132を記憶媒体104に蓄積する処理(以下、関節角度記憶処理とも呼ぶ)について説明を行う。図6は、第1の実施の形態における関節角度記憶処理について説明する図である。
【0061】
データ生成部112は、図6に示すように、例えば、撮影装置によって撮影された画像データから作業者の関節角度132を特定する(S21)。画像データは、例えば、S11の処理で受信した各センサ値131(記憶媒体104に記憶された各センサ値131)の測定タイミングと同じタイミングにおいて撮影された各画像データ(作業者の手が映る画像データ)であり、予め記憶媒体104に記憶されているものであってよい。
【0062】
具体的に、データ生成部112は、例えば、各画像データから作業者の手の姿勢についての各スケルトンデータを生成するものであってよい。そして、データ生成部112は、例えば、生成したスケルトンデータごとに、各スケルトンデータから作業者の手における各関節の関節角度132を特定するものであってよい。
【0063】
そして、データ生成部112は、例えば、S21の処理で特定した関節角度132を記憶媒体104に記憶する(S22)。
【0064】
[学習処理のメイン処理]
次に、第1の実施の形態における学習処理のメイン処理について説明を行う。図7は、第1の実施の形態における学習処理のメイン処理について説明する図である。
【0065】
データ生成部112は、図7及び図8(A)に示すように、例えば、記憶媒体104に記憶されたセンサ値131と関節角度132とをそれぞれ含む複数の教師データ133を生成する(S31)。
【0066】
具体的に、データ生成部112は、例えば、記憶媒体104に記憶されたセンサ値131ごとに、各センサ値131の計測タイミングと同じタイミングにおいて撮影された画像データから特定された関節角度132(以下、特定の関節角度132とも呼ぶ)を特定する。そして、データ生成部112は、例えば、各センサ値131と、各センサ値131に対応する特定の関節角度132とが同一の教師データ133に含まれるように、複数の教師データ133を生成する。以下、複数の教師データ133の具体例について説明を行う。
【0067】
[複数の教師データ133の具体例]
図9は、複数の教師データ133の具体例について説明を行う。
【0068】
図9に示す複数の教師データ133のそれぞれは、例えば、グローブ2に取り付けられた各センサ(関節位置センサJSのそれぞれ)から受信した各センサ値131が設定される「センサ23a」、「センサ23b」、・・・、「センサ23n」及び「センサ25a」を項目として有する。また、図9に示す複数の教師データ133のそれぞれは、例えば、グローブ2を装着した作業者(学習対象の作業者)に対応する各関節角度132が設定される「関節1」、「関節2」、・・・、「関節N-1」及び「関節N」を項目として有する。
【0069】
具体的に、図9に示す複数の教師データ133における1行目のデータは、例えば、「センサ23a」として「0.532(Pa)」が設定され、「センサ23b」として「1.241(Pa)」が設定され、「センサ25a」として「0.565(Pa)」が設定され、「関節1」として「177(度)」が設定され、「関節2」として「177(度)」が設定され、「関節N」として「176(度)」が設定されている。
【0070】
また、図9に示す複数の教師データ133における2行目のデータは、例えば、「センサ23a」として「0.532(Pa)」が設定され、「センサ23b」として「1.241(Pa)」が設定され、「センサ25a」として「0.565(Pa)」が設定され、「関節1」として「177(度)」が設定され、「関節2」として「176(度)」が設定され、「関節N」として「176(度)」が設定されている。図9に含まれる他のデータについての説明は省略する。
【0071】
そして、モデル生成部113は、図7及び図8(B)に示すように、例えば、S31の処理で生成した複数の教師データ133を用いた機械学習を行うことによって学習モデルMDを生成する(S32)。
【0072】
その後、モデル生成部113は、例えば、S32の処理で生成した学習モデルMDを記憶媒体104に記憶する(S33)。
【0073】
[姿勢推定処理]
次に、第1の実施の形態における姿勢推定処理について説明を行う。図10は、第1の実施の形態における姿勢推定処理について説明する図である。
【0074】
センサ値受信部111は、図10に示すように、例えば、平坦位置センサFS及び関節位置センサJSのいずれかからセンサ値131aを受信するまで待機する(S41のNO)。
【0075】
そして、センサ値131aを受信した場合、(S41のYES)、関節角度取得部114は、図11に示すように、例えば、受信したセンサ値131aを学習モデルMDに入力する(S42)。
【0076】
具体的に、関節角度取得部114は、例えば、S41の処理で受信したセンサ値131aが関節センサ23等のいずれかによって測定(送信)されたものであるか否かを判定するものであってよい。そして、関節角度取得部114は、例えば、S41の処理で受信したセンサ値131aが関節センサ23等のいずれかによって測定されたものであると判定した場合に、S42の処理を行うものであってよい。
【0077】
続いて、関節角度取得部114は、例えば、学習モデルMDから出力された関節角度132aを取得する(S43)。
【0078】
そして、姿勢推定部115は、例えば、S43の処理で取得した関節角度132aから作業者(推定対象の作業者)の手の姿勢を推定する(S44)。
【0079】
具体的に、姿勢推定部115は、例えば、S43の処理において作業者の手における全ての関節の関節角度132a(すなわち、グローブ2に取り付けられた全ての関節センサ23等から送信されたセンサ値131aのそれぞれに対応する全ての関節角度132a)を取得したと判定した場合に、S44の処理を行うものであってよい。
【0080】
その後、結果出力部116は、例えば、S44の処理で推定した姿勢を示す情報を出力装置(図示せず)に出力する(S45)。具体的に、結果出力部116は、例えば、S44の処理で推定した姿勢を示す3次元画像データを出力するものであってよい。
【0081】
なお、結果出力部116は、S45の処理において、例えば、S41の処理で受信したセンサ値131aのうち、平坦位置センサFSのそれぞれによって測定されたセンサ値131aを用いることにより、作業者の手における圧力分布を生成して出力するものであってもよい。
【0082】
このように、本実施の形態における情報処理装置1は、例えば、推定対象の作業者が手に装着した導電性の布グローブ(グローブ2)に取り付けられた関節位置センサJSから、推定対象の作業者の関節位置における圧力に対応するセンサ値131a(以下、第1のセンサ値131aとも呼ぶ)を受信する。
【0083】
そして、情報処理装置1は、例えば、学習対象の作業者の関節位置における圧力に対応するセンサ値131と、学習対象の作業者の関節角度132とをそれぞれ含む複数の教師データ133を学習した学習モデルMDに対して第1のセンサ値131aを入力し、第1のセンサ値131aの入力に伴って学習モデルMDから出力される関節角度132a(以下、第1の関節角度132aとも呼ぶ)を取得する。その後、情報処理装置1は、例えば、取得した第1の関節角度132aを出力する。
【0084】
これにより、本実施の形態における情報処理装置1では、例えば、作業者が物体を把持しているか否かによらず、また、作業者が把持している物体の種類によらず、単一の学習モデル(学習モデルMD)によって作業者の手の姿勢を行うことが可能になる。そのため、情報処理装置1では、例えば、分類型のDNNモデル等の他の学習モデルを用いる場合よりも、手の姿勢の推定についての汎用性を高めることが可能になる。
【0085】
[第1の実施の形態における変形例(1)]
次に、第1の実施の形態における第1の変形例について説明を行う。図12は、第1の変形例における姿勢推定処理を説明するフローチャート図である。具体的に、図12は、第1の実施の形態におけるS41及びS42の処理の変形例について説明する図である。
【0086】
センサ値受信部111は、図12に示すように、例えば、平坦位置センサFS及び関節位置センサJSのいずれかからセンサ値131aを受信するまで待機する(S111のNO)。
【0087】
そして、センサ値131aを受信した場合(S111のYES)、センサ値受信部111は、例えば、S111の処理で受信したセンサ値131aが予め定められた所定の閾値(以下、単に所定の閾値とも呼ぶ)以下であるか否かを判定する(S112)。
【0088】
その結果、センサ値131aが所定の閾値以下でないと判定した場合(S112のNO)、センサ値受信部111は、例えば、S111以降の処理を再度行う。
【0089】
一方、センサ値131aが所定の閾値以下であると判定した場合(S112のYES)、関節角度取得部114は、例えば、受信したセンサ値131aを学習モデルMDに入力する(S113)。
【0090】
すなわち、例えば、手話等が行われる際の手の姿勢を推定する場合、グローブ2を装着した作業者(推定対象の作業者)は、物を把持していない状態で姿勢推定処理を行うことが好ましい。
【0091】
そのため、本変形例における情報処理装置1は、例えば、センサ値131aが所定の閾値以下でない場合、グローブ2を装着した作業者が物を把持していると判定し、グローブ2を装着した作業者が物を把持していない状態になるまで待機するものであってもよい。
【0092】
これにより、本変形例における情報処理装置1は、例えば、手話等が行われる場合における姿勢推定処理の判定精度を向上させることが可能になる。
【0093】
なお、情報処理装置1は、例えば、S112の処理において、センサ値131aが所定の閾値以下でないと判定した場合、作業者に対して把持している物を手放すことを促す通知(例えば、音声による通知)を行うものであってもよい。
【0094】
[第1の実施の形態における変形例(2)]
次に、第1の実施の形態における第2の変形例について説明を行う。図13は、第2の変形例における姿勢推定処理を説明するフローチャート図である。具体的に、図13は、第1の実施の形態におけるS43及びS44の処理の変形例について説明する図である。また、図14は、第2の変形例における姿勢推定処理を説明する図である。
【0095】
関節角度取得部114は、図14に示すように、例えば、学習モデルMDから出力された関節角度132aを取得する(S211)。
【0096】
そして、姿勢推定部115は、例えば、記憶媒体104に記憶された補正値134を用いることによって、S211の処理で取得した関節角度132aの補正を行う(S212)。
【0097】
補正値134は、例えば、所定のタイミングにおいて関節位置センサJSから送信されたセンサ値131a(以下、特定のセンサ値131aとも呼ぶ)を学習モデルMDに入力することによって取得された関節角度132a(以下、基準関節角度132aとも呼ぶ)と、特定のセンサ値131aの測定タイミングにおいて撮影された画像データに映る関節角度132(以下、関節角度132bまたは参照関節角度132bとも呼ぶ)との誤差値であり、情報処理装置1によって予め算出されて記憶媒体104に記憶される情報である。
【0098】
すなわち、基準関節角度132aは、例えば、S43の処理によって取得された関節角度132aのいずれかであってよい。また、参照関節角度132bは、例えば、S21の処理と同様の処理によって取得された関節角度132であってよい。
【0099】
その後、姿勢推定部115は、例えば、S212の処理で補正を行った関節角度132aから作業者(推定対象の作業者)の手の姿勢を推定する(S213)。以下、補正値134の具体例について説明を行う。
【0100】
[補正値134の具体例]
図14は、補正値134の具体例について説明する図である。以下、グローブ2に取り付けられた関節位置センサJSの数が9個であるものとして説明を行う。
【0101】
図14に示す例において、基準関節角度132aは、関節位置センサJSのそれぞれの位置に対応する関節の関節角度(学習モデルMDから出力された関節角度)が「0(1段目の左)」、「2(1段目の真中)」、「0(1段目の右)」、「1(2段目の左)」、「2(2段目の真中)」、「1(2段目の右)」、「4(3段目の左)」、「0(3段目の真中)」及び「0(3段目の右)」のそれぞれであることを示している。また、図14に示す例において、参照関節角度132bは、関節位置センサJSのそれぞれの位置に対応する関節の関節角度(画像データから特定された関節の関節角度)が「0(1段目の左)」、「2(1段目の真中)」、「0(1段目の右)」、「0(2段目の左)」、「1(2段目の真中)」、「3(2段目の右)」、「1(3段目の左)」、「0(3段目の真中)」及び「0(3段目の右)」のそれぞれであることを示している。
【0102】
ここで、参照関節角度132bに含まれる各値から基準関節角度132aに含まれる各値を減算した場合、各減算結果(すなわち、参照関節角度132bと基準関節角度132aとの間における誤差値)は、図14に示すように、「0(1段目の左)」、「0(1段目の真中)」、「0(1段目の右)」、「-1(2段目の左)」、「-1(2段目の真中)」、「2(2段目の右)」、「-3(3段目の左)」、「0(3段目の真中)」及び「0(3段目の右)」のそれぞれになる。
【0103】
そのため、姿勢推定部115は、図14に示すように、例えば、「0(1段目の左)」、「0(1段目の真中)」、「0(1段目の右)」、「-1(2段目の左)」、「-1(2段目の真中)」、「2(2段目の右)」、「-3(3段目の左)」、「0(3段目の真中)」及び「0(3段目の右)」のそれぞれを補正値134として予め算出する。
【0104】
そして、姿勢推定部115は、S212の処理において、例えば、S211の処理で取得した関節角度132aのそれぞれ(各センサの位置に対応する関節の関節角度132aのそれぞれ)に対して、補正値134のうちの各センサの位置に対応する関節の値のそれぞれを加算することによって、S211の処理で取得した関節角度132aのそれぞれの補正を行う。
【0105】
このように、本変形例における情報処理装置1は、例えば、学習モデルMDから出力された第1の関節角度132aを取得した後、グローブ2を装着した場合における作業者(推定対象の作業者)の関節角度132b(以下、第2の関節角度132bとも呼ぶ)を取得する。そして、情報処理装置1は、例えば、取得した第1の関節角度132aと、取得した第2の関節角度132bとから、第1の関節角度132aと第2の関節角度132bとの誤差値(補正値134)を算出する。
【0106】
続いて、情報処理装置1は、例えば、関節位置センサJSから、作業者の関節位置における圧力に対応するセンサ値131a(以下、第2のセンサ値131aとも呼ぶ)を受信する。そして、情報処理装置1は、例えば、学習モデルMDに対して第2のセンサ値131aを入力し、第2のセンサ値131aの入力に伴って学習モデルMDから出力される関節角度132a(以下、第3の関節角度132aとも呼ぶ)を取得する。
【0107】
その後、情報処理装置1は、例えば、算出した誤差値を用いて、取得した第3の関節角度132aを補正する。そして、情報処理装置1は、例えば、補正した第3の関節角度132aを出力する。
【0108】
これにより、本変形例における情報処理装置1は、例えば、作業者(推定対象の作業者)の手の姿勢をより精度良く推定することが可能になる。また、情報処理装置1は、補正値134を定期的(例えば、1週間1回等の頻度)に更新することによって、例えば、グローブ2の継続的な使用に伴ってグローブ2の形状が変化する場合であっても、判定精度の低下を抑制することが可能になる。
【符号の説明】
【0109】
1:情報処理装置
2:グローブ
101:CPU
102:メモリ
103:通信インタフェース
104:記憶媒体
105:バス
111:センサ値受信部
112:データ生成部
113:モデル生成部
114:関節角度取得部
115:姿勢推定部
116:結果出力部
FS:平坦位置センサ
JS:関節位置センサ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14