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

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

▶ 富士通株式会社の特許一覧

特許7268754評価方法、評価プログラムおよび情報処理装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-25
(45)【発行日】2023-05-08
(54)【発明の名称】評価方法、評価プログラムおよび情報処理装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230426BHJP
   G06T 7/20 20170101ALI20230426BHJP
   G06V 20/64 20220101ALI20230426BHJP
【FI】
G06T7/00 300Z
G06T7/00 C
G06T7/00 660B
G06T7/20 300A
G06V20/64
【請求項の数】 11
(21)【出願番号】P 2021550882
(86)(22)【出願日】2019-10-03
(86)【国際出願番号】 JP2019039125
(87)【国際公開番号】W WO2021064942
(87)【国際公開日】2021-04-08
【審査請求日】2022-04-19
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】鈴木 達也
(72)【発明者】
【氏名】池田 弘
(72)【発明者】
【氏名】村上 亮
【審査官】笠田 和宏
(56)【参考文献】
【文献】国際公開第2018/207292(WO,A1)
【文献】特開2015-167008(JP,A)
【文献】米国特許出願公開第2016/0335790(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 7/20
G06V 20/64
(57)【特許請求の範囲】
【請求項1】
コンピュータが、
被写体までの距離をセンシングするセンサの測定データに基づく、前記被写体の点群データを取得し、
前記被写体に応じた3次元モデルを取得し、
前記3次元モデルを前記点群データに当てはめる処理を実行する際に、
前回の当てはめ処理の結果を初期値として設定した前記3次元モデルを前記点群データに当てはめる第1処理と、前回の当てはめ処理から今回の当てはめ処理までの時間による変化を基に予測された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第2処理と、前記測定データを、骨格認識モデルに入力した結果を基にして算出された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第3処理とを実行し、
前記第1処理の結果の尤度と、前記第2処理の結果の尤度と、前記第3処理の結果の尤度とを基にして、前記第1処理の結果と、前記第2処理の結果と、前記第3処理の結果とを評価し、
評価結果を基にして、前記第1処理の結果、前記第2処理の結果、前記第3処理の結果のうち、いずれかの結果を、前記被写体の骨格認識結果として、出力する
処理を実行することを特徴とする評価方法。
【請求項2】
前記第1処理、前記第2処理、前記第3処理を並列して実行することを特徴とする請求項1に記載の評価方法。
【請求項3】
前記評価する処理は、人体の動きに関する制限を更に用いて、前記第1処理の結果、前記第2処理の結果、前記第3処理の結果を評価することを特徴とする請求項2に記載の評価方法。
【請求項4】
前記評価する処理は、前記第1処理の結果を出力候補として初期設定し、前記第2処理の結果の尤度から、前記出力候補の尤度を減算した値が、閾値以上である場合に、前記第2処理の結果を前記出力候補に設定し、前記出力候補の尤度から前記第3処理の結果の尤度を減算した値が、閾値以上である場合に、前記第3処理の結果を前記出力候補に設定することを特徴とする請求項3に記載の評価方法。
【請求項5】
前記評価する処理は、前記出力候補に設定された結果と前記第2処理の結果との相違が所定範囲内であり、かつ、前記出力候補の尤度が、前記第2処理の結果の尤度未満である場合に、前記第2処理の結果を前記出力候補に設定し、
前記出力候補に設定された結果と前記第3処理の結果との相違が所定範囲内であり、かつ、前記出力候補の尤度が、前記第3処理の結果の尤度未満である場合に、前記第3処理の結果を前記出力候補に設定することを特徴とする請求項4に記載の評価方法。
【請求項6】
前記3次元モデルは、人体の各部位に対応する複数の円柱を関節部分でそれぞれ接続した3次元モデルであり、前記第1処理、前記第2処理、前記第3処理は、前記3次元モデルの関節角度を変化させ、前記関節角度を変化させた前記3次元モデルと、前記点群データとの合致具合を評価する評価関数の値を算出する処理を、前記評価関数の値が所定条件を満たすまで繰り返し実行することを特徴とする請求項1~5のいずれか一つに記載の評価方法。
【請求項7】
前記第1処理、前記第2処理、前記第3処理は、前記関節角度を変化させる方向を、人体の可動方向に限定することを特徴とする請求項6に記載の評価方法。
【請求項8】
前記被写体の点群データを基にして、前記被写体による一連の動作におけるシーンを特定する処理を更に実行し、前記第1処理、前記第2処理、前記第3処理は、前記シーンを基にして、前記評価関数の値を補正することを特徴とする請求項6に記載の評価方法。
【請求項9】
前記第1処理、前記第2処理、前記第3処理は、前記シーンを基にして、前記関節角度を変化させる場合の制約条件を設定し、前記制約条件を満たす範囲で、前記関節角度を変化させることを特徴とする請求項8に記載の評価方法。
【請求項10】
コンピュータに、
被写体までの距離をセンシングするセンサの測定データに基づく、前記被写体の点群データを取得し、
前記被写体に応じた3次元モデルを取得し、
前記3次元モデルを前記点群データに当てはめる処理を実行する際に、
前回の当てはめ処理の結果を初期値として設定した前記3次元モデルを前記点群データに当てはめる第1処理と、前回の当てはめ処理から今回の当てはめ処理までの時間による変化を基に予測された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第2処理と、前記測定データを、骨格認識モデルに入力した結果を基にして算出された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第3処理とを実行し、
前記第1処理の結果の尤度と、前記第2処理の結果の尤度と、前記第3処理の結果の尤度とを基にして、前記第1処理の結果と、前記第2処理の結果と、前記第3処理の結果とを評価し、
評価結果を基にして、前記第1処理の結果、前記第2処理の結果、前記第3処理の結果のうち、いずれかの結果を、前記被写体の骨格認識結果として、出力する
処理を実行させることを特徴とする評価プログラム。
【請求項11】
被写体までの距離をセンシングするセンサの測定データを取得して、前記測定データを点群データに変換する取得部と、
前記被写体に応じた3次元モデルを取得し、前記3次元モデルを前記点群データに当てはめる処理を実行する際に、前回の当てはめ処理の結果を初期値として設定した前記3次元モデルを前記点群データに当てはめる第1算出部と、
前記被写体の3次元モデルを取得し、前回の当てはめ処理から今回の当てはめ処理までの時間による変化を基に予測された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第2算出部と、
前記測定データを、骨格認識モデルに入力した結果を基にして算出された値を、初期値として設定した前記3次元モデルを前記点群データに当てはめる第3算出部と、
前記第1算出部から出力される第1処理結果の尤度と、前記第2算出部から出力される第2処理結果の尤度と、前記第3算出部から出力される第3処理結果の尤度とを基にして、前記第1処理結果と、前記第2処理結果と、前記第3処理結果とを評価する評価部と、
評価結果を基にして、前記第1処理結果、前記第2処理結果、前記第3処理結果のうち、いずれかの結果を、前記被写体の骨格認識結果として、出力する出力制御部と
を有することを特徴とする情報処理装置
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、評価方法等に関する。
【背景技術】
【0002】
レーザセンサ等の距離画像測定装置を用いて、被写体の3次元点群を測定し、被写体の骨格等を認識する従来技術がある。図28は、従来技術を説明するための図である。図28に示すように、従来技術では、事前に準備したモデル1bを3次元点群1aに当てはめ、当てはめたモデル1bの状態を手がかりとして、被写体の骨格情報1cを特定することで、3次元の骨格認識を行っている。
【0003】
以下の説明では、3次元点群1aにモデル1bを当てはめる処理を「フィッティング」と表記する。また、レーザセンサ等の距離画像測定装置を「センサ」と表記する。なお、3次元点群1aは、センサによって測定される距離画像から変換される情報である。距離画像では、点と距離値とをそれぞれ対応付ける。3次元点群1aの各点は、直交座標系の座標情報と対応付けられる。
【0004】
フィッティングで用いられるモデル1bは、人体の各部位をそれぞれ円柱で表現した円筒モデルである。円筒モデルを構成する各円柱の太さと長さは、事前に決まっている。従来技術では、モデル1bの各関節角度をそれぞれ変えながら、3次元点群1aに最もフィットする各関節角度を探索する。
【0005】
ここで、センサは、所定のフレームレートで、距離画像を連続して測定している。従来技術では、距離画像に対する3次元点群に対して、フィッティングを順次実施するが、フィッティング実施時には、初めに、3次元点群に対するモデルの初期値を設定する。たとえば、モデルの初期値には、モデルの位置、モデルの各関節角度等が含まれる。以下の説明では、連続する複数の距離画像のうち、ある一つの距離画像に対する3次元点群の情報を「点群フレーム」と表記する。
【0006】
初期値を特定する場合、従来技術では、前の点群フレームに対して実施したフィッティング結果を、初期値として流用する。または、従来技術では、フィッティングの対象となる点群フレームと同一の点群フレーム(あるいは、点群フレームに対応する距離画像)を、Deep Learning等の機械学習を利用した別の骨格認識手段に入力して、初期値を算出している。
【先行技術文献】
【特許文献】
【0007】
【文献】国際公開第2018/207292号
【文献】国際公開第2019/030794号
【非特許文献】
【0008】
【文献】X.Wei et al.,“Accurate Realtime Full-body Motion Capture Using a Single Depth Camera,”ACM Transactions on Graphics,Vol.31,No.6,Article 188(2012)
【発明の概要】
【発明が解決しようとする課題】
【0009】
初期値の設定は、最終的な骨格認識結果に大きな影響を与えるため、初期値の精度を高めることが重要である。従来技術では、前の点群フレームに対して実施したフィッティング結果を初期値として流用することや、Deep Learning等の機械学習を利用した別の骨格認識手段に入力して、初期値を算出している。しかしながら、いずれも、被写体の動きが前の点群フレームから高速で変化すると、初期値の精度が低くなってしまう。
【0010】
また、被写体が演技を行っている際、あるタイミングの被写体の姿勢によっては、被写体の3次元点群の一部が消失し、骨格認識の精度が一時的に低下する場合がある。かかる骨格認識の結果を初期値として、次の点群フレームのフィッティングに流用すると、次の点群フレームにおいても、再度、骨格認識の精度が低下してしまう。また、3次元点群の一部が消失した情報を、Deep Learning等の機械学習による骨格認識手段に入力しても、骨格認識の精度が低下してしまうため、かかる骨格認識の結果を初期値として用いると、フィッティングによる骨格認識の精度の低下につながる。
【0011】
本発明は、上記に鑑みてなされたものであって、フィッティング型の骨格認識の最終出力結果の精度を向上させることができる評価方法、評価プログラムおよび情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、被写体までの距離をセンシングするセンサの測定データに基づく、被写体の点群データを取得し、被写体に応じた3次元モデルを取得する。コンピュータは、3次元モデルを点群データに当てはめる処理を実行する際に、前回の当てはめ処理の結果を初期値として設定した3次元モデルを点群データに当てはめる第1処理を実行する。コンピュータは、前回の当てはめ処理から今回の当てはめ処理までの時間による変化を基に予測された値を、初期値として設定した3次元モデルを点群データに当てはめる第2処理を実行する。コンピュータは、測定データを、骨格認識モデルに入力した結果を基にして算出された値を、初期値として設定した3次元モデルを点群データに当てはめる第3処理を実行する。コンピュータは、第1処理の結果の尤度と、第2処理の結果の尤度と、第3処理の結果の尤度とを基にして、第1処理の結果と、第2処理の結果と、第3処理の結果とを評価する。コンピュータは、評価結果を基にして、第1処理の結果、第2処理の結果、第3処理の結果のうち、いずれかの結果を、被写体の骨格認識結果として、出力する。
【発明の効果】
【0013】
フィッティング型の骨格認識の最終出力結果の精度を向上させることができる。
【図面の簡単な説明】
【0014】
図1図1は、本実施例1に係る情報処理システムの一例を示す図である。
図2図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図3図3は、Deep Learning等の機械学習による骨格認識モデルを説明するための図である。
図4図4は、円筒モデルデータの一例を示す図である。
図5図5は、優先テーブルのデータ構造の一例を示す図である。
図6図6は、本実施例1に係る評価処理部の構成を示す機能ブロック図である。
図7図7は、第1初期値を説明するための図である。
図8図8は、第2初期値を説明するための図である。
図9図9は、第3初期値を説明するための図である。
図10図10は、EステップとMステップとの関係を示す図である。
図11図11は、Close Pointを説明するための図(1)である。
図12図12は、Close Pointを説明するための図(2)である。
図13図13は、画面情報の一例を示す図である。
図14図14は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
図15図15は、フィッティング処理の処理手順を示すフローチャートである。
図16図16は、評価処理の処理手順を示すフローチャートである。
図17図17は、本実施例2に係る情報処理装置の処理を説明するための図である。
図18図18は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図19図19は、シーン切換判定テーブルのデータ構造の一例を示す図である。
図20図20は、種目「跳馬」に対するシーン切換条件を示す図である。
図21図21は、シーン限定テーブルのデータ構造の一例を示す図である。
図22図22は、制約条件テーブルのデータ構造の一例を示す図である。
図23図23は、本実施例2に係る評価処理部の構成を示す機能ブロック図である。
図24図24は、変換量と評価関数の値との関係を示す図である。
図25図25は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。
図26図26は、シーン判定処理の処理手順を示すフローチャートである。
図27図27は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図28図28は、従来技術を説明するための図である。
【発明を実施するための形態】
【0015】
以下に、本発明にかかる評価方法、評価プログラムおよび情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0016】
図1は、本実施例1に係る情報処理システムの一例を示す図である。図1に示すように、この情報処理システムは、センサ10a,10bと、情報処理装置100とを有する。センサ10a,10bと、情報処理装置100とは、有線または無線によってそれぞれ接続されている。図1では、センサ10a,10bを示すが、情報処理システムは、他のセンサを有していてもよい。
【0017】
本実施例では一例として、被写体1が、器具上で一連の演技を行うものとするがこれに限定されるものではない。たとえば、被写体1は、器具の存在しない場所で演技を行ってもよいし、演技以外の動作を行ってもよい。
【0018】
センサ10aは、被写体1の表面とセンサ10aとの距離を測定する測定装置(レーザーセンサ)である。センサ10aは、測定結果となる距離画像のデータを、情報処理装置100に出力する。距離画像のデータには、点群について、点と距離値とをそれぞれ対応付けた情報が含まれる。距離画像のデータは、「測定データ」に対応する。
【0019】
センサ10bに関する説明は、センサ10aに関する説明と同様である。以下の説明では、適宜、センサ10a,10bをまとめて「センサ10」と表記する。
【0020】
情報処理装置100は、センサ10から距離画像のデータを取得し、距離画像のデータを、3次元点群データに変換する。3次元点群データには、被写体表面を示す点群について、点と、3次元直交座標系の座標とをそれぞれ対応付けた情報が含まれる。
【0021】
情報処理装置100は、3次元点群データに対して、3つの初期値を用いた3種類のフィッティングを実行し、最も確からしいフィッティング結果を、最終的な骨格認識結果として特定する。フィッティングは、3次元点群データに対して、円筒モデルを当てはめる処理である。円筒モデルに設定されるフィッティングの初期値には、円筒モデルの位置、離接する円筒モデル間の各関節角度等が含まれる。円筒モデルは「3次元モデル」に対応する。なお、人体の特定部位においては、必ずしも円筒である必要はなく、楕円筒、楕円体などであってもかまわない。
【0022】
3種類のフィッティングには、第1フィッティング、第2フィッティング、第3フィッティングが含まれる。第1フィッティングは「第1処理」に対応する。第2フィッティングは「第2処理」に対応する。第3フィッティングは「第3処理」に対応する。
【0023】
第1フィッティングでは、前回のフィッティングの結果を初期値として、円筒モデルに設定し、円筒モデルの関節角度を調整して、3次元点群データに当てはめる。第1フィッティングで用いる初期値を「第1初期値(Previous)」と表記する。
【0024】
第2フィッティングでは、前回のフィッティングから今回のフィッティングまでの時間変化を基に予測した値を初期値として、円筒モデルに設定し、円筒モデルの関節角度を調整して、3次元点群データに当てはめる。第2フィッティングで用いる初期値を「第2初期値(Predict)」と表記する。
【0025】
第3フィッティングでは、距離画像データを、Deep Learning等の機械学習による骨格認識モデルに入力した結果を基にして算出された値を初期値として、円筒モデルに設定し、円筒モデルの関節角度を調整して、3次元点群データに当てはめる。第3フィッティングで用いる初期値を「第3初期値(Skeleton)」と表記する。
【0026】
情報処理装置100は、センサ10から距離画像のデータを受け付ける度に、フィッティングによる最終的な骨格認識結果を特定する処理を繰り返し実行する。情報処理装置100は、骨格認識結果の時系列情報を基にして、被写体1が行った技を認識し、各種競技の技認定、採点結果等を示す画面情報を生成して表示する。
【0027】
図2は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図2に示すように、この情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0028】
通信部110は、センサ10から距離画像のデータを受信する処理部である。通信部110は、受信した距離画像のデータを、制御部150に出力する。通信部110は、通信装置の一例である。通信部110は、図示しない他の外部装置からデータを受信してもよい。
【0029】
入力部120は、情報処理装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。利用者は、入力部120を操作して、画面情報の表示要求、画面操作などを行う。また、利用者は、入力部120を操作して、被写体1が演技する種目のデータを制御部150に入力してもよい。
【0030】
表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、各種競技の技認定、採点結果等の画面情報を表示する。表示部130は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
【0031】
記憶部140は、測定テーブル141、骨格認識モデル142、円筒モデルデータ143、優先テーブル144、技認識テーブル145を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0032】
測定テーブル141は、センサ10により測定される距離画像のデータを格納するテーブルである。たとえば、測定テーブル141は、距離画像のデータを時系列に格納する。測定テーブル141は、センサ10aに測定された各距離画像のデータと、センサ10bに測定された各距離画像のデータとを区別して格納する。
【0033】
骨格認識モデル142は、学習データを基にして、事前に学習された骨格認識モデルのパラメータの集合である。図3は、骨格認識モデルを説明するための図である。たとえば、学習装置(図示略)は、学習データ5を用いて、骨格認識モデル6Aの学習を行う。骨格認識モデル6Aは、たとえば、NN(Neural Network)で構成される。学習データ5には、距離画像5aと、その画像に含まれる人体の関節座標5bのデータが含まれる。
【0034】
学習装置は、距離画像5aを骨格認識モデル6Aに入力した際の出力が、関節座標5bに近づくように、骨格認識モデル6Aのパラメータを学習する。学習されるパラメータには、NNの重みやバイアス等が含まれる。学習処理によって学習されたパラメータを、骨格認識モデル6Aに設定したものが、骨格認識モデル6Bとなる。学習装置によって学習された骨格認識モデル6Bのパラメータが、骨格認識モデル142として、記憶部140に格納される。
【0035】
骨格認識モデル6Bに、センサ10が測定した距離画像3aを入力することで、被写体1の関節座標3bが出力される。骨格認識モデル6Bは、後述する学習型骨格認識実行部152により実行される。
【0036】
円筒モデルデータ143は、被写体1となる人体の各部位を円筒(あるいは楕円柱など)で表現したモデルのデータであり、各円筒は、被写体1の関節に対応する部分で接続されている。図4は、円筒モデルデータの一例を示す図である。図4に示す例では、各円筒Md1~Md14が含まれる。各円筒Md1~Md14には円筒パラメータがそれぞれ設定されている。円筒パラメータには、円筒の高さ、円筒の半径等が含まれる。円筒モデルデータ143を構成する各円筒Md1~Md14の高さ、半径、長径等は、被写体1に合わせて予め調整されているものとする。つまり、被写体1の体型に合わせた円筒モデルデータがフィッティングに使用される。
【0037】
優先テーブル144は、第1初期値、第2初期値、第3初期値を用いてそれぞれフィッティングを実行した結果、いずれのフィッティング結果を優先するのかを定義するテーブルである。図5は、優先テーブルのデータ構造の一例を示す図である。図5に示すように、この優先テーブル144は、種目毎に優先するフィッティング結果が定められている。iの値が小さいほど、優先する初期値であることを示す。
【0038】
たとえば、種目「あん馬」に対する初期値の優先順は、第1処理の結果、第2処理の結果、第3処理の結果となる。被写体1の動きが遅い種目については、第1処理の結果を優先し、動きの速い種目については、第2処理の結果を優先する。
【0039】
技認識テーブル145は、各骨格認識結果に含まれる各関節位置の時系列変化と、技の種別とを対応付けるテーブルである。また、技認識テーブル145は、技の種別の組み合わせと、スコアとを対応付ける。スコアは、D(Difficulty)スコアとE(Execution)スコアとの合計で算出される。たとえば、Dスコアは、技の難易度に基づいて算出されるスコアである。Eスコアは、技の完成度に応じて、減点法により算出されるスコアである。
【0040】
制御部150は、取得部151、学習型骨格認識実行部152、変換部153、評価処理部154、技認識部155、画面情報出力制御部156を有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
【0041】
取得部151は、センサ10から距離画像のデータを取得する処理部である。取得部151は、センサごとに取得した距離画像のデータを、測定テーブル141に格納する。また、取得部151は、複数センサの距離画像を3次元点群データに変換する点群統合処理、ノイズ除去処理を実行する。距離画像のデータには、それぞれフレーム番号が割り振られているものとする。
【0042】
3次元点群データに変換する点群統合処理について説明する。取得部151は、センサ10aの外部パラメータと、センサ10bの外部パラメータとを基にして、各3次元点群データを統合する。外部パラメータには、センサ10の位置、設置方位角度等の情報が含まれる。取得部151は、3次元点群データに、変換前の距離画像のフレーム番号と同一のフレーム番号が付与する。
【0043】
取得部151は、連続するフレーム番号について、各3次元点群データを統合する処理を繰り返し実行する。以下の説明において、フレーム番号nにおいて統合した結果となる3次元点群データを、フレーム番号nの「点群フレーム」と表記する。
【0044】
ノイズ除去処理について説明する。取得部151は、各フレーム番号の点群フレームについて、ノイズ除去処理を実行する。たとえば、取得部151は、点群フレームに含まれる3次元点群に対してクラスタリングを実行し、3次元点群を複数のクラスタに分類する。取得部151は、分類した各クラスタのうち、クラスタに属する点の数が閾値未満となるクラスタを、ノイズとして除去する。以下の説明では、点群フレームからノイズを除去したものを、単に、点群フレームと表記する。取得部151は、各点群フレームについて、上記処理を繰り返し実行する。
【0045】
取得部151は、各フレーム番号に対応する点群フレームを、評価処理部154に順次出力する。
【0046】
学習型骨格認識実行部152は、骨格認識モデル142を基にして、骨格認識モデルを実行する処理部である。学習型骨格認識実行部152が使用する骨格認識モデルは、図3において説明した骨格認識モデル6Bに対応する。学習型骨格認識実行部152は、測定テーブル141に格納された距離画像のデータを、骨格認識モデル6Bに入力して、関節座標のデータを算出する。関節座標のデータには、被写体1の各関節位置の3次元座標が含まれる。学習型骨格認識実行部152は、関節座標のデータに、距離画像のフレーム番号が付与する。
【0047】
学習型骨格認識実行部152は、フレーム番号の順に、距離画像のデータを、骨格認識モデル6Bに入力し、上記処理を繰り返し実行する。学習型骨格認識実行部152は、関節座標のデータを、変換部153に出力する。
【0048】
学習型骨格認識実行部152は、センサ10aに測定された距離画像のデータを、骨格認識モデル6Bに入力してもよいし、センサ10bに測定された距離画像のデータを、骨格認識モデル6Bに入力してもよい。
【0049】
変換部153は、関節座標のデータを、関節角度に変換する処理部である。学習型骨格認識により得られた各関節座標で定まる各部位の長さは、必ずしも、円筒モデルの各部位の長さと一致しないため、たとえば、変換部153は、学習型骨格認識によって得られた各関節座標から得られる各関節角度を、円筒モデルの関節角度に変換する。変換部153は、関節角度のデータを、評価処理部154に出力する。変換部153は、関節座標のデータに付与されたフレーム番号を、関節角度のデータに付与する。
【0050】
変換部153は、フレーム番号の順に、学習型骨格認識によって得られた関節座標のデータを、円筒モデルの関節角度のデータに変換する処理を、繰り返し実行する。
【0051】
評価処理部154は、3つの初期値を用いた3種類のフィッティングを実行し、それぞれのフィッティング結果を評価する処理部である。評価処理部154は、最も確からしいフィッティング結果を、最終的な骨格認識結果として、技認識部155に出力する。
【0052】
図6は、本実施例1に係る評価処理部の構成を示す機能ブロック図である。図6に示すように、この評価処理部154は、第1算出部161と、第2算出部162と、第3算出部163と、評価部164と、出力制御部165とを有する。
【0053】
第1算出部161は、第1フィッティングを実行する処理部である。第1算出部161は、フレーム番号n-1の点群フレームからフィッティングにより特定された骨格認識結果データを、評価部164から取得しておく。骨格認識結果データから特定される円筒モデルデータ143の各関節角度を、第1初期値とする。以下の説明では、フレーム番号n-1の点群フレームから特定された骨格認識結果データを、フレーム番号n-1の骨格認識結果データと表記する。
【0054】
第1算出部161は、フレーム番号nの点群フレームに対して、フィッティングを実行する場合、円筒モデルデータ143の初期値として、第1初期値を設定する。第1算出部161は、EM(Expectation Maximization)アルゴリズムを用いて、評価関数の値が最小値となる円筒モデルデータ143の関節角度を算出する。第1算出部161は、第1フィッティングの結果と、尤度とを、評価部164に出力する。ここで、評価関数の値が小さいほど、点群のモデルとの距離が小さいことを示し、より確からしい(尤度が高い)ことを意味する。すなわち、「尤度は、評価関数の値の逆数」に対応する。
【0055】
図7は、第1初期値を説明するための図である。図7において、モデルMn-1は、フレーム番号n-1の骨格認識結果データを示すものである。モデルM1nは、第1初期値を設定した円筒モデルデータ143である。モデルM1nの各関節角度は、モデルMn-1の各関節角度と同じである。
【0056】
第2算出部162は、第2フィッティングを実行する処理部である。第2算出部162は、フレーム番号n-2、n-1の点群フレームから特定された骨格認識結果のデータを、評価部164から取得しておき、各関節角度の直前の姿勢変化速度(角速度)を算出する。第2算出部162は、直前の姿勢変化速度Δθn-1を、式(1)によって算出する。式(1)において、θn-1は、フレーム番号n-1の骨格認識結果のデータから特定される各関節角度を示す。θn-2は、フレーム番号n-2の骨格認識結果のデータから特定される各関節角度を示す。
【0057】
Δθn-1=θn-1-θn-2・・・(1)
【0058】
第2算出部162は、フレーム番号nの各関節角度θを、式(2)によって予測する。第2算出部162は、式(2)によって予測した各関節角度θを、第2初期値として用いる。
【0059】
θ=θn-1+Δθn-1・・・(2)
【0060】
第2算出部162は、フレーム番号nの点群フレームに対して、フィッティングを実行する場合、円筒モデルデータ143の初期値として、第2初期値を設定する。第2算出部162は、EMアルゴリズムを用いて、評価関数の値が最小値となる円筒モデルデータ143の関節角度を算出する。第2算出部162は、第2フィッティングの結果と、尤度とを、評価部164に出力する。
【0061】
図8は、第2初期値を説明するための図である。図8において、モデルMn-1は、フレーム番号n-1の骨格認識結果データを示すものである。モデルMn-2は、フレーム番号n-2の骨格認識結果データを示すものである。モデルM2nは、第2初期値を設定した円筒モデルデータ143である。モデルM2nの各関節角度は、モデルMn-1、Mn-2の各関節角度から予測されるものである。
【0062】
第3算出部163は、第3フィッティングを実行する処理部である。第3算出部163は、変換部153から、フレーム番号nの関節角度のデータを取得し、第3初期値として用いる。
【0063】
第3算出部163は、フレーム番号nの点群フレームに対して、フィッティングを実行する場合、円筒モデルデータ143の初期値として、第3初期値を設定する。第3算出部163は、EMアルゴリズムを用いて、評価関数の値が最小値となる円筒モデルデータ143の関節角度を算出する。第3算出部163は、第3フィッティングの結果と、尤度とを、評価部164に出力する。
【0064】
図9は、第3初期値を説明するための図である。図9において、学習型骨格認識結果mは、フレーム番号nの距離画像のデータを、骨格認識モデル6Bに入力した際に得られる関節座標をつなぎ合わせたモデルである。モデルM3nは、第3初期値を設定した円筒モデルデータ143である。学習型骨格認識結果mの各関節角度と、モデルM3nの各関節角度は同一である。
【0065】
続いて、第1算出部161が実行するEMアルゴリズムの一例について説明する。第2算出部162および第3算出部163が実行するEMアルゴリズムは、初期値が異なること以外、第1算出部161が実行するEMアルゴリズムと同様であるため、説明を省略する。
【0066】
第1算出部161は、EMアルゴリズムにおいて、Eステップ、Mステップを繰り返し実行することで、円筒モデルデータ143の円筒パラメータ(各関節角度)を更新し、円筒パラメータを最適化する。
【0067】
Eステップでは、点群フレームに含まれる点群と、円筒モデルデータ143の各部位の表面残差、事後分布を点群割り当ての結果を元に算出し、評価関数を更新する。
【0068】
Mステップでは、Eステップで更新された評価関数に基づき、評価関数の値が最小となるように円筒パラメータを更新する。評価関数の値が小さいほど、点群と、円筒モデルデータ143の各部位とがより当てはまっていることを示す。
【0069】
図10は、EステップとMステップとの関係を示す図である。図10のグラフの横軸は、姿勢(円筒パラメータに相当)に対応する軸である。図10のグラフの縦軸は、評価関数の尤度に対応する軸である。たとえば、1回目のEステップで更新した評価関数に基づき、Mステップを実行すると、極小値は、θoldとなる。2回目のEステップで更新した評価関数に基づき、Mステップを実行すると、極小値は、θnewとなる。このように、Eステップ、Mステップを繰り返し実行することで、円筒パラメータが、最適点に近づいていく。本実施例1では、評価関数の値が小さいほど、より確からしいものとする。
【0070】
ここで、第1算出部161が実行するEステップの一例について説明する。第1算出部161は、初期姿勢の円筒モデルデータ143と、点群フレームとを比較して、点群の事後分布pnmを算出する。初期姿勢の円筒モデルデータ143は、第1初期値を、円筒モデルデータ143に設定したものである。
【0071】
事後分布pnmは、式(3)によって定義される。式(3)に含まれる「n」は、点群フレームに含まれる点を示すものであり、点群フレームに点がn個含まれている場合、n=1~nとなる。Mは、円筒モデルデータ143の各円筒(部位)を示すものであり、図4で示したように、各部位識別情報Md1~Md14により識別される部位が14個存在する場合、m=1~14(Md1~Md14)となる。
【0072】
【数1】
【0073】
式(3)に含まれるεは、表面残差を示すものであり、点群割り当てはガウス分布であることが仮定される。表面残差は、点群と、m番目の円筒の表面との垂直な方向の差を示す。たとえば、1番目の円筒は、部位識別番号Md1の円筒を示す。表面残差εは、x、σにより特定される。xは、n番目の点の3次元座標を示す。σは、点群フレームに含まれる点群の3次元座標の分散を示す。
【0074】
第1算出部161は、事後分布pnmを算出した後に、式(4)で定義される評価関数Qを更新する。式(4)において、Pは、pnmの総和を示す。
【0075】
【数2】
【0076】
続いて、第1算出部161が実行するMステップの一例について説明する。第1算出部161は、Levenberg-Marquardt(LM)法を用いて、評価関数Qの尤度が最小となるような円筒パラメータの変化量Δθを算出する。たとえば、第1算出部161は、式(5)、式(6)に基づいて、変化量Δθを算出する。第1算出部161は、LM法に限らず、ランダムに変化量Δθを生成してもよい。
【0077】
【数3】
【数4】
【0078】
第1算出部161は、現在の円筒パラメータに、変化量Δθを加算した値を、評価関数Qに入力することで、尤度を算出する。なお、尤度は、評価関数Qの値の逆数に相当する。
【0079】
第1算出部161は、所定の収束条件を満たすまで、Eステップ、Mステップを繰り返し実行する。第1算出部161は、Eステップ、Mステップを繰り返す回数を事前に設定しておいてもよい。第1算出部161は、所定の収束条件を満たした時点における、円筒パラメータと、評価関数Qの逆数に相当する尤度を、評価部164に出力する。第1算出部161が出力する円筒パラメータは、「第1処理の結果」に対応する。
【0080】
ところで、第2算出部162も同様にして、所定の収束条件を満たすまで、Eステップ、Mステップを繰り返し実行する。第2算出部162は、Eステップ、Mステップを繰り返す回数を事前に設定しておいてもよい。第2算出部162は、所定の収束条件を満たした時点における、円筒パラメータと、評価関数Qの逆数に相当する尤度を、評価部164に出力する。第2算出部162が出力する円筒パラメータは、「第2処理の結果」に対応する。
【0081】
第3算出部163も同様にして、所定の収束条件を満たすまで、Eステップ、Mステップを繰り返し実行する。第3算出部163は、Eステップ、Mステップを繰り返す回数を事前に設定しておいてもよい。第3算出部163は、所定の収束条件を満たした時点における、円筒パラメータと、評価関数Qの逆数に相当する尤度を、評価部164に出力する。第3算出部163が出力する円筒パラメータは、「第3処理の結果」に対応する。
【0082】
図6の説明に戻る。評価部164は、第1~3処理の結果の尤度を基にして、第1~3処理の結果を評価し、第1~3処理の結果のうち、いずれかの処理の結果を、最終的な骨格認識結果データとして特定する。評価部164は、フレーム番号毎に、上記処理を繰り返し実行する。評価部164は、特定したフレーム番号毎の骨格認識結果データを、第1算出部161、第2算出部162、出力制御部165に出力する。
【0083】
評価部164は、第1~3処理の結果の優先順を特定する処理、第1スクリーニング、第2スクリーニング処理を実行することで、最終的な骨格認識結果データを特定する。
【0084】
評価部164が、優先順を特定する処理について説明する。評価部164は、被写体1が演技する種目のデータと、優先テーブル144とを基にして、第1~3処理の結果の優先順を特定する。以下の説明では、最も優先する処理の結果を、1番目のItr情報と表記し、2番目に優先する処理の結果を、2番目のItr情報と表記し、3番目に優先する処理の結果を、3番目のItr情報と表記する。評価部164は、1番目のItr情報を「暫定採用Itr」に設定する。
【0085】
たとえば、種目が「あん馬」となる場合、1番目のItr情報は「第1処理の結果」となる。2番目のItr情報は「第2処理の結果」となる。3番目のItr情報は「第3処理の結果」となる。
【0086】
評価部164が実行する、第1スクリーニングについて説明する。評価部164は、2番目のItr情報が、第1棄却条件に適合するか否かを判定する。評価部164は、2番目のItr情報が、第1棄却条件に適合する場合には、2番目のItr情報を棄却する。ここでは、2番目のItr情報が、第2処理の結果である場合について説明する。
【0087】
評価部164は、フレーム番号n-1の第2処理の結果となる円筒パラメータを基にして、フレーム番号n-1の骨格認識結果を特定する。評価部164は、フレーム番号nの第2処理の結果となる円筒パラメータを基にして、フレーム番号nの骨格認識結果を特定する。
【0088】
評価部164は、フレーム番号n-1の骨格認識結果と、フレーム番号nの骨格認識結果とを比較し、骨格の動きが異常であるか否か(人体の移動の運動限界量や関節可動域を超えているか否かなど)を判定する。評価部164は、骨格の移動量が予め設定された基準移動量以上である場合、または、骨格の移動方向が予め設定された基準移動方向と異なる場合、骨格の動きが異常であると判定する。評価部164は、骨格の動きに異常がある場合、第1棄却条件に適合すると判定する。
【0089】
また、評価部164は、Close Pointを基にして、棄却条件に適合するか否かを判定してもよい。図11および図12は、Close Pointを説明するための図である。評価部164は、フレーム番号nにおける第2処理の結果となる円筒パラメータを円筒モデルデータ143に設定し、円筒モデルデータ143の各円筒と、フレーム番号nの点群フレームとを比較する。
【0090】
図11では、円筒モデルデータ143の各円筒のうち、左腕の円筒Md5を用いて、説明を行う。円筒Md5には、点群D5が割り当てられているものとする。評価部164は、点群D5の各点と、円筒Md5までの最短距離dをそれぞれ算出する。評価部164は、最短距離dが閾値Th未満となる点の数をカウントとし、カウントした数を、Close Pointとする。点群D5の点の数を100とし、全ての最短距離dが、閾値Th未満の場合には、Close Point=100となる。
【0091】
図12では、円筒モデルデータ143の各円筒のうち、左腕の円筒Md5を用いて、説明を行う。円筒Md5には、点群D5が割り当てられているものとする。評価部164は、点群D5の各点と、円筒Md5までの最短距離dをそれぞれ算出する。評価部164は、最短距離dが閾値Th未満となる点の数をカウントとし、カウントした数を、Close Pointとする。点群D5の点の数を100とし、そのうち30の点に関する最短距離dが、閾値Th未満の場合には、Close Point=30となる。
【0092】
評価部164は、特定の円筒に割り当てられた点群の数に対するClose Pointの割合が所定の割合未満である場合に、第1棄却条件に適合すると判定する。
【0093】
評価部164は、第1スクリーニングを実行した結果、2番目のItr情報が棄却されなかった場合には、暫定採用Itrの尤度と、2番目のItr情報の尤度とを比較する。評価部164は、2番目のItr情報の尤度から暫定採用Itr情報の尤度を減算した尤度が、閾値以上である場合に、暫定採用Itrを、2番目のItr情報によって更新する。すなわち、2番目のItr情報の尤度が、暫定座標Itrの尤度よりも圧倒的に大きい場合には、暫定採用Itrを、2番目のItr情報によって更新する。
【0094】
評価部164は、3番目のItr情報についても、2番目のItr情報と同様にして、第1棄却条件に適合するか否かを判定する。評価部164は、3番目のItr情報が棄却されなかった場合には、暫定採用Itrの尤度と、3番目のItr情報の尤度とを比較する。評価部164は、3番目のItr情報の尤度から、暫定採用Itr情報の尤度を減算した尤度が、閾値以上である場合に、暫定採用Itrを、3番目のItr情報によって更新する。すなわち、3番目のItr情報の尤度が、暫定座標Itrの尤度よりも圧倒的に大きい場合には、暫定採用Itrを、3番目のItr情報によって更新する。
【0095】
評価部164が実行する、第2スクリーニングについて説明する。評価部164は、2番目のItr情報が、第2棄却条件に適合するか否かを判定する。評価部164は、2番目のItr情報が、第2棄却条件に適合する場合には、2番目のItr情報を棄却する。ただし、2番目のItr情報は、第1スクリーニングで棄却されず、かつ、暫定採用Itrと2番目のItr情報の尤度との差分が閾値未満であるものとする。
【0096】
評価部164は、暫定採用Itrの円筒パラメータを基にして、骨格認識結果(暫定骨格認識結果)を特定する。評価部164は、2番目のItr情報の円筒パラメータを基にして、骨格認識結果を特定する。評価部164は、暫定骨格認識結果と、骨格認識結果との差分が、閾値以上である場合に、第2棄却条件に適合すると判定する。すなわち、優先される、暫定骨格認識結果と、2番目のItr情報の骨格認識結果が大きく異なっている場合には、2番目のItr情報を棄却する。
【0097】
評価部164は、第2スクリーニングを実行した結果、2番目のItr情報が棄却されなかった場合には、暫定採用Itrの尤度と、2番目のItr情報の尤度とを比較する。評価部164は、暫定採用Itrの尤度よりも、2番目のItr情報の尤度の方が大きい場合に、暫定採用Itrを、2番目のItr情報によって更新する。
【0098】
評価部164は、3番目のItr情報についても、2番目のItr情報と同様にして、第2棄却条件に適合するか否かを判定する。評価部164は、3番目のItr情報が棄却されなかった場合には、暫定採用Itrの尤度と、3番目のItr情報の尤度とを比較する。評価部164は、暫定採用Itrの尤度よりも、3番目のItr情報の尤度の方が大きい場合に、暫定採用Itrを、3番目のItr情報によって更新する。
【0099】
上記のように、評価部164は、優先順を特定する処理、第1スクリーニング、第2スクリーニング処理を実行することで、最終的な骨格認識結果データを特定する。評価部164は、各フレーム番号に対応する第1~3処理の結果を、第1算出部161、第2算出部162、第3算出部163から取得する度に、最終的な骨格認識結果データを繰り返し実行する。評価部164は、最終的な骨格認識結果データを、出力制御部165に出力する。
【0100】
出力制御部165は、各フレーム番号に対応する最終的な骨格認識結果データを順次受け付け、受け付けた最終的な骨格認識結果データを、技認識部155に出力する処理部である。以下の説明では、技認識部155に出力される最終的な骨格認識結果データを、単に、骨格認識結果データと表記する。
【0101】
図2の説明に戻る。技認識部155は、フレーム番号の順に骨格認識結果データを、評価処理部154から取得し、連続する骨格認識結果データを基にして、各関節座標の時系列変化を特定する。技認識部155は、各関節位置の時系列変化と、技認識テーブル145とを比較して、技の種別を特定する。また、技認識部155は、技の種別の組み合わせと、技認識テーブル145とを比較して、被写体1の演技のスコアを算出する。
【0102】
技認識部155は、演技に含まれる技の種別、演技のスコア、演技の開始から終了までの骨格認識結果データ等を、画面情報出力制御部156に出力する。
【0103】
画面情報出力制御部156は、演技のスコアと、演技の開始から終了までの骨格認識結果データとを基にして、画面情報を生成する。画面情報出力制御部156は、生成した画面情報を、表示部130に出力して表示させる。
【0104】
図13は、画面情報の一例を示す図である。図13に示すように、この画面情報60には、領域60a,60b,60cが含まれる。領域60aは、被写体1が行った演技において、認識された技の種別を表示する領域である。技の種別に加えて、技の難度も表示してもよい。領域60bは、演技のスコアを表示する領域である。領域60aは、演技の開始から終了までの骨格認識結果データに基づく3次元モデルをアニメーション表示する領域である。利用者は、入力部120を操作して、アニメーションの再生、停止等を指示する。
【0105】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。図14は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。図14に示すように、情報処理装置100の取得部151は、センサ10から距離画像のデータを取得する(ステップS10)。
【0106】
取得部151は、同一のフレーム番号の点群を統合する(ステップS11a)。取得部151は、点群フレームからノイズを除去する(ステップS12a)。また、情報処理装置100の学習型骨格認識実行部152は、学習型骨格認識モデルを用いて、関節座標のデータを算出する(ステップS11b)。情報処理装置100の変換部153は、関節座標のデータを、関節角度のデータに変換する(ステップS12b)。
【0107】
情報処理装置100の評価処理部154は、第1フィッティング処理、第2フィッティング処理、第3フィッティング処理を並列して実行する(ステップS13a、S13b、S13c)。評価処理部154は、種目と優先テーブル144とを基にして、1~3番目のItr情報を設定する(ステップS14)。
【0108】
評価処理部154は、評価処理を実行する(ステップS15)。情報処理装置100は、被写体1の演技が終了していない場合には(ステップS16,No)、ステップS10に移行する。情報処理装置100は、被写体1の演技が終了した場合には(ステップS16,Yes)、ステップS17に移行する。
【0109】
情報処理装置100の技認識部155は、技認識を実行し、技の種別、演技のスコアを特定する(ステップS17)。情報処理装置100の画面情報出力制御部156は、認識結果を基にして、画面情報を生成する(ステップS18)。画面情報出力制御部156は、画面情報を表示部130に表示させる(ステップS19)。
【0110】
次に、図14のステップS13に示したフィッティング処理(第1フィッティング処理、第2フィッティング処理、第3フィッティング処理)の処理手順について説明する。第1フィッティング処理、第2フィッティング処理、第3フィッティング処理では、第1算出部161、第2算出部162、第3算出部163がそれぞれフィッティング処理を実行する。
【0111】
図15は、フィッティング処理の処理手順を示すフローチャートである。図15では一例として、第1算出部161が実行する第1フィッティング処理について説明する。なお、第2算出部162、第3算出部163が実行する第2、3フィッティング処理は、上述したように、初期値の設定が異なる以外、第1算出部161が実行する第1フィッティング処理と同様であるため、説明を省略する。
【0112】
図15に示すように、情報処理装置100の第1算出部161は、点群フレームを取得する(ステップS20)。第1算出部161は、円筒モデルデータ143の初期値状態を生成する(ステップS21)。
【0113】
第1算出部161は、事後分布pnmを算出する(ステップS22)。第1算出部161は、円筒パラメータの変化量Δθを算出する(ステップS23)。第1算出部161は、円筒パラメータを更新する(ステップS24)。第1算出部161は、評価関数Qを用いて尤度を算出する(ステップS25)。
【0114】
第1算出部161は、円筒パラメータが収束したか否かを判定する(ステップS26)。ステップS26において、第1算出部161は、Δθが十分小さくなった場合(予め設定される閾値Thθ未満となった場合)に、円筒パラメータが収束したと判定する。
【0115】
第1算出部161は、円筒パラメータが収束していない場合には(ステップS26,No)、ステップS22に移行する。一方、第1算出部161は、円筒パラメータが収束した場合には(ステップS26,Yes)、ステップS27に移行する。
【0116】
第1算出部161は、フィッティングに成功したか否かを判定する(ステップS27)。ステップS27において、第1算出部161は、事後分布pnmの和が、予め設定される閾値Thp以上であれば、フィッティングに成功したと判定する。
【0117】
第1算出部161は、フィッティングに成功していない場合には(ステップS27,No)、ステップS21に移行する。一方、第1算出部161は、フィッティングに成功した場合には(ステップS27,Yes)、ステップS28に移行する。
【0118】
第1算出部161は、フィッティング結果および尤度を評価部164に出力する(ステップS28)。たとえば、フィッティング結果には、フィッティングに成功した円筒パラメータが含まれる。
【0119】
次に、図14のステップS15に示した評価処理の処理手順について説明する。図16は、評価処理の処理手順を示すフローチャートである。図16に示すように、情報処理装置100の評価部164は、i=1に設定する(ステップS101)。評価部164は、i番目のItr情報を取得する(ステップS102)。
【0120】
評価部164は、i=1となる場合には(ステップS103,Yes)、ステップS115に移行する。一方、評価部164は、i=1とならない場合には(ステップS103,No)、ステップS104に移行する。
【0121】
評価部164は、第1スクリーニング処理を実行する(ステップS104)。評価部164は、第1廃却条件に適合するか否かを判定する(ステップS105)。評価部164は、第1棄却条件に適合する場合には(ステップS105,Yes)、ステップS119に移行する。一方、評価部164は、第1棄却条件に適合しない場合には(ステップS105,No)、ステップS106に移行する。
【0122】
評価部164は、i番目のItr情報の尤度が、暫定採用Itrの尤度と比較して十分大きい否かを(より確からしいかを)判定する(ステップS106)。評価部164は、十分大きい場合には(ステップS107,Yes)、ステップS115に移行する。一方、評価部164は、十分大きくない場合には(ステップS107,No)、ステップS111に移行する。
【0123】
評価部164は、第2スクリーニング処理を実行する(ステップS111)。評価部164は、第2廃却条件に適合するか否かを判定する(ステップS112)。評価部164は、第2棄却条件に適合する場合には(ステップS112,Yes)、ステップS119に移行する。一方、評価部164は、第2棄却条件に適合しない場合には(ステップS112,No)、ステップS113に移行する。
【0124】
評価部164は、i番目のItr情報の尤度が、暫定採用Itrの尤度と比較して、大きいか否かを判定する(ステップS113)。評価部164は、大きい場合には(ステップS114,Yes)、ステップS115に移行する。一方、評価部164は、大きくない場合には(ステップS114,No)、ステップS116に移行する。
【0125】
評価部164は、i番目のItr情報によって、暫定採用Itrを更新する(ステップS115)。評価部164は、i=Nであるか否かを判定する(ステップS116)。本実施例1では、N=3とする。評価部164は、i=Nである場合には、ステップS117に移行する。一方、評価部164は、i=Nでない場合には、ステップS120に移行する。
【0126】
評価部164は、暫定採用Itrを、最終的な骨格認識結果として特定する(ステップS117)。情報処理装置100の出力制御部165は、最終的な骨格認識結果を技認識部155に出力する(ステップS118)。
【0127】
ステップS119以降の処理について説明する。評価部164は、i番目のItr情報を棄却する(ステップS119)。評価部164は、i=i+1によって、iの値を更新し(ステップS120)、ステップS102に移行する。
【0128】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、点群フレームに対して、3つの初期値を用いた3種類のフィッティングを実行し、最も確からしいフィッティング結果を、最終的な骨格認識結果として特定して出力する。これによって、点群フレーム毎に、3つのフィッティング結果のうち、最も精度の高いフィッティング結果を出力することができる。
【0129】
情報処理装置100は、第1算出部161、第2算出部162、第3算出部163が、フィッティング処理を並列して実行する。これによって、1つのフィッティング処理を実行した場合と同程度の時間で、複数のフィッティング結果を得られる。
【0130】
情報処理装置100は、フレーム番号n-1の骨格認識結果と、フレーム番号nの骨格認識結果とを比較し、骨格の動きが異常であるか否かを評価し、骨格の動きが異常である骨格認識結果を、棄却する。このように、情報処理装置100が、被写体の動きに関する制限を更に用いて評価することで、骨格の動きが異常である骨格認識結果を、最終的な骨格認識結果から除外することができる。
【0131】
情報処理装置100は、1番目のItr情報を、出力候補に設定し、2番目のItr情報の尤度から出力候補の尤度を減算した値が、閾値以上である場合に、2番目のItr情報を出力候補に設定する。また、情報処理装置100は、3番目のItr情報の尤度から出力候補の尤度を減算した値が、閾値以上である場合に、3番目のItr情報を出力候補に設定する。これによって、1番目のItr情報を、優先して、出力候補に設定することができる。1番目のItr情報に設定される情報は、種目と優先テーブル144によって特定される。
【0132】
情報処理装置100は、出力候補に設定された情報と、2番目のItr情報との相違が所定範囲内であり、出力候補の尤度よりも2番目のItr情報の尤度が大きい場合に、2番目のItr情報を出力候補に設定する。情報処理装置100は、出力候補に設定された情報と、3番目のItr情報との相違が所定範囲内であり、出力候補の尤度よりも3番目のItr情報の尤度が大きい場合に、3番目のItr情報を出力候補に設定する。
【実施例2】
【0133】
次に、本実施例2に係る情報処理システムについて説明する。本実施例2に係る情報処理システムは、図1で説明した情報処理システムと同様にして、センサ10a,10bを有しており、情報処理装置は、センサ10a,10bと接続されているものとする。
【0134】
本実施例2に係る情報処理装置は、被写体の演技のシーンを特定し、特定したシーンに応じて、フィッティング処理を実行する場合の制約条件、評価関数の値の算出方法を変更する。制約条件には、関節可動範囲、関節自由度、動き対称性が含まれる。本実施例でも、評価関数の値が小さいほど(尤度が大きいほど)、より確からしいものとする。
【0135】
図17は、本実施例2に係る情報処理装置の処理を説明するための図である。図17では一例として、被写体1が、跳馬を行う場合について説明する。情報処理装置は、被写体1が実行する一連の演技のシーンを順に特定する。
【0136】
たとえば、情報処理装置は、演技の期間T~Tのシーンを、一般技シーン(非対称)と特定する。情報処理装置は、演技の期間T~Tのシーンを、空中シーンと特定する。情報処理装置は、演技の期間T~Tのシーンを、着地手前シーンと特定する。情報処理装置は、演技の期間T以降のシーンを、着地シーンと特定する。
【0137】
情報処理装置は、一般技シーン(非対称)である場合には「通常モデル」によって、フィッティングを実行する。通常モデルによるフィッティングは、実施例1で説明したフィッティングと同様である。
【0138】
情報処理装置は、空中シーンである場合には「空中モデル」によってフィッティングを実行する。空中モデルによるフィッティングでは、前フレームからの腕および脚の変化量が大きいほど、評価関数Qの値を大きくする補正を行う。
【0139】
情報処理装置は、着地手前シーンである場合には「着地手前モデル」によってフィッティングを実行する。着地手前モデルによるフィッティングでは、前フレームからの脚の変化量が大きいほど、評価関数Qの値を大きくする補正を行う。
【0140】
情報処理装置は、着地シーンである場合には「着地モデル」によってフィッティングを実行する。着地モデルによるフィッティングでは、足首の関節可動範囲を限定して、フィッティングを実行する。たとえば、情報処理装置は、足首の位置が地面近傍から離れないように関節の可動範囲を限定する。
【0141】
このように、本実施例2に係る情報処理装置は、被写体の演技のシーンを特定し、特定したシーンに応じて、フィッティング処理を実行する場合の制約条件、評価関数の値の算出方法を変更する。これによって、シーンに応じて最適なフィッティングを実行することができ、骨格認識結果の精度を向上させることができる。
【0142】
次に、本実施例2に係る情報処理装置の構成について説明する。図18は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。図18に示すように、情報処理装置200は、通信部210と、入力部220と、表示部230と、記憶部240と、制御部250とを有する。
【0143】
通信部210は、センサ10から距離画像のデータを受信する処理部である。通信部210は、受信した距離画像のデータを、制御部250に出力する。通信部210は、通信装置の一例である。通信部210は、図示しない他の外部装置からデータを受信してもよい。
【0144】
入力部220は、情報処理装置200の制御部250に各種の情報を入力する入力装置である。入力部220は、キーボードやマウス、タッチパネル等に対応する。利用者は、入力部220を操作して、画面情報の表示要求、画面操作などを行う。また、利用者は、入力部220を操作して、被写体1が演技する種目のデータを制御部250に入力してもよい。
【0145】
表示部230は、制御部250から出力される情報を表示する表示装置である。たとえば、表示部230は、各種競技の技認定、採点結果等の画面情報を表示する。表示部230は、液晶ディスプレイ、有機ELディスプレイ、タッチパネル等に対応する。
【0146】
記憶部240は、測定テーブル241、骨格認識モデル242、円筒モデルデータ243、優先テーブル144、技認識テーブル245、シーン切換判定テーブル246、シーン限定テーブル247、制約条件テーブル248を有する。記憶部240は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0147】
測定テーブル241は、センサ10により測定される距離画像のデータを格納するテーブルである。測定テーブル241の説明は、実施例1で説明した測定テーブル141の説明と同様である。
【0148】
骨格認識モデル242は、学習データを基にして、事前に学習された骨格認識モデルのパラメータの集合である。骨格認識モデル242の説明は、実施例1で説明した骨格認識モデル142の説明と同様である。
【0149】
円筒モデルデータ243は、被写体1となる人体の各部位を円筒(あるいは楕円柱など)で表現したモデルのデータであり、各円筒は、被写体1の関節に対応する部分で接続されている。円筒モデルデータ243の説明は、実施例1で説明した円筒モデルデータ143の説明と同様である。
【0150】
優先テーブル244は、第1初期値、第2初期値、第3初期値を用いてそれぞれフィッティングを実行した結果、いずれのフィッティング結果を優先するのかを定義するテーブルである。優先テーブル244の説明は、実施例1で説明した優先テーブル144の説明と同様である。
【0151】
技認識テーブル245は、各骨格認識結果に含まれる各関節位置の時系列変化と、技の種別とを対応付けるテーブルである。また、技認識テーブル245は、技の種別の組み合わせと、スコアとを対応付ける。技認識テーブル245の説明は、実施例1で説明した技認識テーブル245の説明と同様である。
【0152】
シーン切換判定テーブル246は、種目に応じたシーンの切換を判定するテーブルである。図19は、シーン切換判定テーブルのデータ構造の一例を示す図である。図19に示すように、このシーン切換判定テーブル246は、種目と、シーン切換条件とを対応付ける。種目は、演技の種目を示すものである。シーン切換条件は、シーンが切り替わる条件を定義するものである。たとえば、被写体1の所定の部位間の距離、Close Pointの大きさ等に応じて、シーンが切り替わる。なお、初期のシーンは、一般技シーンとなるが、人の動きに応じて変更が可能である。一般技シーンには、種目に応じて、一般技シーン(対称)または一般技シーン(非対処)となる。
【0153】
一例として、種目「跳馬」に対するシーン切換条件について説明する。図20は、種目「跳馬」に対するシーン切換条件を示す図である。図20に示すように、種目「跳馬」では、「一般技シーン」から「空中シーン」に切り替わる切換条件と、「空中シーン」から「着地手前シーン」に切り替わる切換条件と、「着地手前シーン」から「着地シーン」に切り替わる切換条件とが含まれる。
【0154】
「一般技シーン」から「空中シーン」に切り替わる切換条件は、腕と胴、または、腕と脚との距離が閾値未満という条件である。「空中シーン」から「着地手前シーン」に切り替わる切換条件は、腕のClose Pointが閾値未満という条件である。「着地手前シーン」から「着地シーン」に切り替わる切換条件は、足と地面との距離が閾値未満という条件である。
【0155】
シーン限定テーブル247は、種目に応じたシーンを限定する場合に利用するテーブルである。図21は、シーン限定テーブルのデータ構造の一例を示す図である。図21に示すように、このシーン限定テーブル247は、種目と、対称性と、一般技と、終末技とを有する。種目は、演技の種目を示すものである。対称性は、被写体1の左右の関節角度が「対称」であるか、「非対称」であるかを示すものである。
【0156】
各種目の一般技には、一般技シーン(非対称)と、一般技シーン(対称)と、特殊シーンとのうち、少なくとも一つが含まれる。一般技シーン(非対称)は、被写体1の左右の関節角度が非対称となる一般技を示す。一般技シーン(対称)は、被写体1の左右の関節角度が対称となる一般技を示す。特殊シーンには、ベントニーターン(bent-knee turn)、離れ技などが含まれる。
【0157】
各種目の終末技には、空中シーンと、着地手前シーンと、着地シーンとのうち、少なくとも一つのシーンが含まれる。
【0158】
図19に示すように、種目と対称性により、一般技のシーン、終末技のシーンが絞られる。
【0159】
制約条件テーブル248は、シーンに応じた評価関数の値の算出方法、制約条件を定義するテーブルである。図22は、制約条件テーブルのデータ構造の一例を示す図である。図22に示すように、制約条件テーブル248は、シーン種別と、算出方法と、関節可動範囲と、対称性とを含む。シーン種別は、シーンの種別を示すものである。
【0160】
算出方法は、評価関数の算出方法を示すものである。算出方法が「通常」の場合には、式(4)に示した評価関数Qをそのまま用いて、値を算出することを示す。算出方法が「腕および脚の評価関数を補正」の場合には、フレーム番号n-1の腕および脚の関節角度と、フレーム番号nの腕および脚の関節角度との変化量が大きいほど、評価関数Qの値を大きくする補正を行う。算出方法が「脚の評価関数を補正」の場合には、フレーム番号n-1の脚の関節角度と、フレーム番号nの脚の関節角度との変化量が大きいほど、評価関数Qの値を大きくする補正を行う。
【0161】
関節可動範囲は、骨格の関節の可動範囲を示すものである。関節可動範囲が「通常」である場合には、骨格の関節の可動範囲を、制約のない人体の関節可動域とする。関節可動範囲が「通常」以外の場合には、関節可動範囲に定義された範囲に従う。たとえば、シーン種別「着地シーン」に対応する関節可動範囲は、「足首の位置を地面近傍から離れない角度に設定」となる。
【0162】
関節動き自由度は、関節角度の自由度を示すものである。関節動き自由度が「通常」である場合には、各関節の自由度を、一般の動きにおける人体の関節可動域に基づく自由度とする。関節動き自由度が「通常」でない場合には、関節動き自由度に定義された自由度に従う。たとえば、シーン種別「ひざ曲げターン」に対応する関節動き自由度は、膝の自由度を増加させる。
【0163】
対称性は、フィッティングにおいて、円筒モデルデータ243の各関節角度を変化させる場合に、左右の関節角度に対称性を持たせるか否かを示す情報である。図4に示した円筒モデルデータを用いて説明すると、対称性を持たせる部位は、円筒Md4,Md5と、円筒Md6,Md7との組、円筒Md8、Md9,Md13と、円筒Md10、Md11,Md14との組となる。
【0164】
図17で説明した「通常モデル」は、制約条件テーブル248のシーン種別「一般技シーン(非対称)」の算出方法、関節可動範囲、関節動き自由度、対称性に基づくフィッティングに相当する。「空中モデル」は、制約条件テーブル248のシーン種別「空中シーン」の算出方法、関節可動範囲、関節動き自由度、対称性に基づくフィッティングに相当する。
【0165】
「着地手前モデル」は、制約条件テーブル248のシーン種別「着地手前シーン」の算出方法、関節可動範囲、関節動き自由度、対称性に基づくフィッティングに相当する。「着地モデル」は、制約条件テーブル248のシーン種別「着地シーン」の算出方法、関節可動範囲、関節動き自由度、対称性に基づくフィッティングに相当する。
【0166】
図18の説明に戻る。制御部250は、取得部251、学習型骨格認識実行部252、変換部253、評価処理部254、技認識部255、画面情報出力制御部256を有する。制御部250は、CPUやGPU、ASICやFPGAなどのハードワイヤードロジック等によって実現される。
【0167】
取得部251は、センサ10から距離画像のデータを取得する処理部である。取得部251に関する説明は、実施例1の取得部151に関する説明と同様である。取得部251は、各フレーム番号に対応する点群フレームを、評価処理部254に順次出力する。
【0168】
学習型骨格認識実行部252は、骨格認識モデル242を基にして、骨格認識モデルを実行する処理部である。学習型骨格認識実行部252に関する説明は、実施例1の学習型骨格認識実行部152に関する説明と同様である。学習型骨格認識実行部252は、関節座標のデータを、変換部253に出力する。
【0169】
変換部253は、関節座標のデータを、関節角度に変換する処理部である。変換部253に関する説明は、実施例1の変換部153に関する説明と同様である。変換部253は、関節角度のデータを、評価処理部254に出力する。
【0170】
評価処理部254は、3つの初期値を用いた3種類のフィッティングを実行し、それぞれのフィッティング結果を評価する処理部である。評価処理部254は、最も確からしいフィッティング結果を、最終的な骨格認識結果として、技認識部255に出力する。
【0171】
図23は、本実施例2に係る評価処理部の構成を示す機能ブロック図である。図23に示すように、この評価処理部254は、第1算出部261と、第2算出部262と、第3算出部263と、評価部264と、出力制御部265と、シーン判定部270とを有する。
【0172】
第1算出部261は、第1初期値を円筒モデルデータ243の初期状態とし、第1フィッティングを実行する処理部である。第1算出部261は、シーン判定部270から取得するシーン種別に応じて、第1フィッティングを実行する場合の、制約条件、評価関数の値の算出方法を変更する。第1算出部261は、第1処理の結果を、評価部264に出力する。
【0173】
第1算出部261は、シーン種別と、制約条件テーブル248とを比較して、制約条件、評価関数の値の算出方法を変更する。
【0174】
第1算出部261は、シーン種別が「一般技シーン(非対称)」である場合には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。
【0175】
第1算出部261は、シーン種別が「一般技シーン(対称)」である場合には、基本的には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。ただし、第1算出部261は、被写体1の左右の円筒Md4,Md5の関節角度と、円筒Md6,Md7の関節角度とが対称性をもつという制約条件のもと、第1フィッティングを実行する。第1算出部261は、被写体1の左右の円筒Md8、Md9,Md13と、円筒Md10、Md11,Md14との組についても、各関節角度の関係が対称性をもつという制約条件のもと、第1フィッティングを実行する。
【0176】
第1算出部261は、シーン種別が「ひざ曲げターン」である場合には、基本的には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。ただし、第1算出部261は、膝関節に対応する関節角度の自由度を増加させた上で、関節角度を更新し、第1フィッティングを実行する。たとえば、通常の自由度が「1」である場合には、自由度を「2」に変更する。
【0177】
第1算出部261は、シーン種別が「離れ技」である場合には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。
【0178】
第1算出部261は、シーン種別が「空中シーン」である場合には、基本的には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。ただし、第1算出部261は、フレーム番号n-1の腕および脚の関節角度と、フレーム番号nの腕および脚の関節角度との変化量が大きいほど、評価関数Qの値を大きくする補正を行う。
【0179】
たとえば、第1算出部261は、式(4)に示す評価関数の値を算出する場合、腕(円筒Md4、5,7,6)および脚(円筒Md8,9,10,11)に関する「pnmε」の項目に、係数をかけることで、評価関数Qの値を大きくする補正を行う。係数は、フレーム番号nの腕および脚の関節角度との変化量が大きいほど、値を大きくする追加項である。
【0180】
図24は、変換量と評価関数の値との関係を示す図である。図24において横軸は変化量Δθに対応する軸であり、縦軸は評価関数の値に対応する軸である。評価関数の値が小さいほど、フィッティング結果がより確からしいことを示す。図24において、線7aは、補正しない評価関数Qの値を示すものである。線7bは、変化量に応じて補正を行った評価関数Qの値を示すものである。
【0181】
たとえば、空中シーンでは、被写体1の腕および脚は固定される(動きづらい)傾向がある。このため、フレーム番号n-1の腕および脚の関節角度と、フレーム番号nの腕および脚の関節角度との変化量が大きいほど、評価関数の値を大きくすることで、適切にフィッティング結果を現実の人の動きに近づけることができる。
【0182】
第1算出部261は、シーン種別が「着地手前シーン」の場合には、基本的には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。ただし、第1算出部261は、フレーム番号n-1の脚の関節角度と、フレーム番号nの脚の関節角度との変化量が大きいほど、評価関数Qの値を大きくする補正を行う。
【0183】
たとえば、着地手前シーンでは、被写体1の腕は動きやすく、脚は動きづらい傾向がある。このため、フレーム番号n-1の脚の関節角度と、フレーム番号nの脚の関節角度との変化量が大きいほど、評価関数の値を大きくすることで、適切にフィッティング結果を現実の人の動きに近づけることができる。
【0184】
たとえば、第1算出部261は、式(4)に示す評価関数の値を算出する場合、脚(円筒Md8,9,10,11)に関する「pnmε」の項目に、係数をかけることで、評価関数Qの値を大きくする補正を行う。係数は、フレーム番号nの脚の関節角度との変化量が大きいほど、値を大きくする追加項である。
【0185】
第1算出部261は、シーン種別が「着地シーン」の場合には、基本的には、実施例1の第1算出部161と同様にして、第1フィッティングを実行する。ただし、第1算出部261は、足首の位置が地面近傍から離れないように関節の可動範囲を限定して、フィッティングを実行する。
【0186】
たとえば、着地シーンでは、腕、脚が共に動きやすく、足が地面付近から離れづらいためであり、足首の位置が地面近傍から離れないように関節の可動範囲を限定することで、骨格認識結果を現実の人の動きに近づけることができる。
【0187】
第2算出部262は、第2初期値を円筒モデルデータ243の初期状態とし、第2フィッティングを実行する処理部である。初期値が異なる以外、第2算出部262の第2フィッティングは、第1算出部261の第1フィッティングと同様である。第2算出部262は、第2処理の結果を、評価部264に出力する。
【0188】
第3算出部263は、第3初期値を円筒モデルデータ243の初期状態とし、第3フィッティングを実行する処理部である。初期値が異なる以外、第3算出部263の第3フィッティングは、第1算出部261の第1フィッティングと同様である。第3算出部263は、第3処理の結果を、評価部264に出力する。
【0189】
評価部264は、第1~3処理の結果の尤度を基にして、第1~3処理の結果を評価し、第2~3処理の結果のうち、いずれかの処理の結果を、最終的な骨格認識結果データとして特定する。評価部264は、フレーム番号毎に、上記処理を繰り返し実行する。評価部264は、特定したフレーム番号毎の骨格認識結果データを、第1算出部261、第2算出部262、出力制御部265、シーン判定部270に出力する。
【0190】
評価部264に関するその他の説明は、実施例1の評価部164に関する説明と同様である。
【0191】
出力制御部265は、各フレーム番号に対応する最終的な骨格認識結果データを順次受け付け、受け付けた最終的な骨格認識結果データを、技認識部255に出力する処理部である。以下の説明では、技認識部255に出力される最終的な骨格認識結果データを、単に、骨格認識結果データと表記する。
【0192】
シーン判定部270は、評価部264から取得する骨格認識結果データ、シーン切換判定テーブル246、シーン限定テーブル247を基にして、シーン種別を判定する処理部である。シーン判定部270は、判定したシーン種別の情報を、第1算出部261、第2算出部262、第3算出部263に出力する。たとえば、第1算出部261、第2算出部262、第3算出部263は、フレーム番号nにおけるシーン種別の判別結果を基にして、フレーム番号n+1の点群フレームに対してフィッティングを実行する。
【0193】
シーン判定部270は、被写体1の演技の種目のデータを、入力部220等から事前に取得しておくものとする。シーン判定部270は、被写体1の演技の種目と、シーン切換判定テーブル246とを比較して、シーン切換条件を特定する。なお、初期のシーン種別を、一般技シーンとする。シーン判定部270は、被写体1の演技の種目と、シーン限定テーブル247とを比較して、一般技シーンが、一般技シーン(非対称)か、一般技シーン(対称)かを判定する。
【0194】
シーン判定部270は、骨格認識結果データを基にして、被写体1の部位を特定し、シーン切換条件と比較して、シーン種別を判定する。また、シーン判定部270は、Close Pointを算出し、シーン種別を判定する。
【0195】
図20を用いて、シーン判定部270の処理を説明する。初期のシーン種別を、一般技シーンとする。シーン判定部270は、骨格認識結果データを順次取得し、腕と胴、または、腕と脚との距離が閾値未満となった場合、シーン種別を「空中シーン」と判定する。
【0196】
シーン判定部270は、骨格認識結果データを順次取得し、腕のClose Pointが閾値未満となった場合、シーン種別を「着地手前シーン」と判定する。シーン判定部270は、骨格認識結果データを順次取得し、足と地面との距離が閾値未満となった場合、シーン種別を「着地シーン」と判定する。各閾値や地面の位置等は、予めシーン判定部270に設定されているものとする。
【0197】
なお、シーン判定部270は、ある時点において、シーン種別が「一般技シーン」と判定され、骨格認識結果データが所定の条件を満たす場合に、シーン種別が「特殊シーン」であると判定する。シーン判定部270は、特殊シーンと判定した場合、被写体1の演技の種目と、シーン限定テーブル247とを比較して、特殊シーンの具体的なシーン種別を判定する。たとえば、種目が「平均台」である場合には、シーン種別は「ひざ曲げターン」となる。
【0198】
図18の説明に戻る。技認識部255は、フレーム番号の順に骨格認識結果データを、評価処理部254から取得し、連続する骨格認識結果データを基にして、各関節座標の時系列変化を特定する。技認識部255は、各関節位置の時系列変化と、技認識テーブル245とを比較して、技の種別を特定する。また、技認識部255は、技の種別の組み合わせと、技認識テーブル245とを比較して、被写体1の演技のスコアを算出する。
【0199】
技認識部255は、演技に含まれる技の種別、演技のスコア、演技の開始から終了までの骨格認識結果データ等を、画面情報出力制御部256に出力する。
【0200】
画面情報出力制御部256は、演技のスコアと、演技の開始から終了までの骨格認識結果データとを基にして、画面情報を生成する。画面情報出力制御部256は、生成した画面情報を、表示部230に出力して表示させる。画面情報出力制御部256が生成する画面情報は、実施例1の画面情報出力制御部156が生成する画面情報と同様である。
【0201】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。図25は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。図25に示すように、情報処理装置200の取得部251は、センサ10から距離画像のデータを取得する(ステップS50)。
【0202】
取得部251は、同一のフレーム番号の点群を統合する(ステップS51a)。取得部251は、点群フレームからノイズを除去する(ステップS52a)。また、情報処理装置200の学習型骨格認識実行部252は、骨格認識モデルを用いて、関節座標のデータを算出する(ステップS51b)。情報処理装置200の変換部253は、関節座標のデータを、関節角度のデータに変換する(ステップS52b)。
【0203】
情報処理装置200の評価処理部254は、第1フィッティング処理、第2フィッティング処理、第3フィッティング処理を並列して実行する(ステップS53a、S53b、S53c)。評価処理部254は、種目と優先テーブル244とを基にして、1~3番目のItr情報を設定する(ステップS54)。
【0204】
評価処理部254は、評価処理を実行する(ステップS55)。評価処理部254は、シーン判定処理を実行する(ステップS56)。情報処理装置200は、被写体1の演技が終了していない場合には(ステップS57,No)、ステップS50に移行する。情報処理装置200は、被写体1の演技が終了した場合には(ステップS57,Yes)、ステップS58に移行する。
【0205】
情報処理装置200の技認識部255は、技認識を実行し、技の種別、演技のスコアを特定する(ステップS58)。情報処理装置200の画面情報出力制御部256は、認識結果を基にして、画面情報を生成する(ステップS59)。画面情報出力制御部256は、画面情報を表示部230に表示させる(ステップS60)。
【0206】
図25のステップS53に示したフィッティング処理は、シーン種別に応じた制約条件を設定すること、評価関数の値の算出方法を用いること以外、実施例1の図15で示したフィッティング処理と同様である。
【0207】
図25のステップS55に示した評価処理は、実施例1の図16で示した評価処理と同様である。
【0208】
続いて、図25のステップS56に示したシーン判定処理の処理手順の一例について説明する。図26は、シーン判定処理の処理手順を示すフローチャートである。図26に示すように、情報処理装置200のシーン判定部270は、一般技か否かを判定する(ステップS201)。シーン判定部270は、一般技である場合には(ステップS201,Yes)、ステップS202に移行する。一方、シーン判定部270は、一般技でない場合(終末技である場合)には(ステップS201,No)、ステップS207に移行する。
【0209】
シーン判定部270は、特殊シーンであるか否かを判定する(ステップS202)。シーン判定部270により、特殊シーンであると判定された場合(ステップS202,Yes)、各算出部は、特殊シーンに応じた評価関数の値の算出方法および制約条件を選択する(ステップS203)。各算出部は、第1算出部261、第2算出部262、第3算出部263に対応する。
【0210】
一方、シーン判定部270は、特殊シーンでないと判定した場合(ステップS202,No)、ステップS204に移行する。シーン判定部270は、種目の対称性が非対称であるか否かを判定する(ステップS204)。シーン判定部270により、一般技シーン(非対称)であると判定された場合(ステップS204,Yes)、各算出部は、一般技シーン(非対称)に応じた評価関数の値の算出方法および制約条件を選択する(ステップS205)。
【0211】
シーン判定部270により、一般技シーン(非対称)でないと判定された場合(ステップS204,No)、各算出部は、一般技シーン(対称)に応じた評価関数の値の算出方法および制約条件を選択する(ステップS206)。
【0212】
シーン判定部270は、種目に応じたシーン切換条件と、骨格認識結果を基にして、シーン種別を判定する(ステップS207)。シーン種別には、空中シーン、着地手前シーン、着地シーンが含まれる。各算出部は、シーン種別に応じた評価関数の値の算出方法および制約条件を選択する(ステップS208)。
【0213】
次に、本実施例2に係る情報処理装置200の効果について説明する。本実施例2に係る情報処理装置200は、被写体の演技のシーン種別を特定し、特定したシーン種別に応じて、フィッティング処理を実行する場合の制約条件、評価関数の値の算出方法を変更する。これによって、シーン種別に応じて最適なフィッティングを実行することができ、骨格認識結果の精度を向上させることができる。また、フィッティングの確からしさを補正することができるので、最適な骨格認識結果を選択することもできる。
【0214】
ところで、本実施例1、2で説明した情報処理装置100,200の処理は、各種の採点競技に適用可能である。採点競技には、体操演技の他に、トランポリン、水泳の飛び込み、フィギュアスケート、空手の型、社交ダンス、スノーボード、スケートボード、スキーエアリアル、サーフィンを含む。また、クラシックバレエ、スキージャンプ、モーグルのエアー・ターン、野球、バスケットボールのフォームチェック等にも適用してもよい。また、剣道、柔道、レスリング、相撲などの競技にも適用してもよい。更に、ウェイトリフティングのバーベルが上がったか否かの評価にも用いることができる。
【0215】
次に、上記実施例に示した情報処理装置100(200)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図27は、情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0216】
図27に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、センサ10から距離画像のデータを受信する通信装置304と、各種の装置と接続するインタフェース装置305とを有する。コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0217】
ハードディスク装置307は、取得プログラム307a、学習型骨格認識実行プログラム307b、変換プログラム307c、評価処理プログラム307d、技認識プログラム307e、画面情報出力制御プログラム307fを有する。CPU201は、取得プログラム307a、学習型骨格認識実行プログラム307b、変換プログラム307c、評価処理プログラム307d、技認識プログラム307e、画面情報出力制御プログラム307fを読み出してRAM306に展開する。
【0218】
取得プログラム307aは、取得プロセス306aとして機能する。学習型骨格認識実行プログラム307bは、学習型骨格認識実行プロセス306bとして機能する。変換プログラム307cは、変換プロセス306cとして機能する。評価処理プログラム307dは、評価処理プロセス306dとして機能する。技認識プログラム307eは、技認識プロセス306eとして機能する。画面情報出力制御プログラム307fは、画面情報出力制御プロセス306fとして機能する。
【0219】
取得プロセス306aの処理は、取得部151,251の処理に対応する。骨格認識モデル実行プロセス306bの処理は、学習型骨格認識実行部152,252の処理に対応する。変換プロセス306cの処理は、変換部153,253の処理に対応する。評価処理プロセス306dの処理は、評価処理部154,254の処理に対応する。技認識プロセス306eの処理は、技認識部155,255の処理に対応する。画面情報出力制御プロセス306fの処理は、画面情報出力制御部156,256の処理に対応する。
【0220】
なお、各プログラム307a~307fについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307fを読み出して実行するようにしてもよい。
【符号の説明】
【0221】
10a,10b センサ
100 情報処理装置
110,210 通信部
120,220 入力部
130,230 表示部
140,240 記憶部
141,241 測定テーブル
142,242 骨格認識モデル
143,243 円筒モデルデータ
144,244 優先テーブル
145,245 技認識テーブル
150,250 制御部
151,251 取得部
152,252 学習型骨格認識実行部
153,253 変換部
154,254 評価処理部
155,255 技認識部
156,256 画面情報出力制御部
161 第1算出部
162 第2算出部
163 第3算出部
164 評価部
165 出力制御部
246 シーン切換判定テーブル
247 シーン限定テーブル
248 制約条件テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28