(57)【要約】  骨格推定装置（１００）は、対象者の頭、両腕、胴体、両足の領域を大まかに特定し、両腕および両足の骨格の位置を認識した後に、両腕および両足の骨格の位置の認識結果を制約条件として、胴体の骨格を認識する。例えば、骨格推定装置（１００）は、両腕および両足の骨格の座標と、関節間の長さを固定した状態で、角度パラメータを変化させることで、胴体の骨格の位置の候補を複数算出する。骨格推定装置（１００）は、胴体の骨格の位置の候補のうち、胴体概算座標に近い候補を、胴体の骨格の位置として推定する。
2017187641.tif 000002
【特許請求の範囲】
【請求項１】
対象物上に存在する複数の観測点の３次元情報を距離センサから取得し、前記３次元情報を基にして、前記対象物の領域から、第１領域と、前記第１領域に隣接する複数の第２領域とを特定し、前記第２領域に含まれる複数の特徴点の位置を特定する特定部と、
前記第２領域に含まれる各特徴点に基づいてリンクを設定することで、前記第２領域に含まれる骨格の位置を推定する第１推定部と、
前記第１領域に含まれる部位の位置を特定する際に用いる複数のパラメータのうち、前記第２領域に含まれる骨格の端点と、前記骨格の端点から前記第１領域に含まれる部位の位置までの長さとを固定した状態で、前記第１領域に含まれる部位の位置を特定し、特定した部位の位置を基にして、前記第１領域に含まれる骨格の位置を推定する第２推定部と
を有することを特徴とする骨格推定装置。
【請求項２】
前記複数のパラメータは角度パラメータを含み、前記第２推定部は、前記角度パラメータを変更することで複数の部位候補の位置を特定し、複数の部位候補のうち、前記第１領域内の予め定められた点の位置との距離が近い部位候補を、前記第１領域に含まれる部位として特定することを特徴とする請求項１に記載の骨格推定装置。
【請求項３】
前記第２推定部は、前記第１領域に含まれる部位を特定した場合に、特定した部位の位置によって、前記第１領域内の予め定められた点の位置を更新することを特徴とする請求項２に記載の骨格推定装置。
【請求項４】
前記第１領域は、前記対象物の胴体部分の領域に対応し、前記複数の第２領域は、前記対象物の頭部の領域、腕部分の領域、足部分の領域に対応することを特徴とする請求項１、２または３に記載の骨格推定装置。
【請求項５】
コンピュータが実行する骨格推定方法であって、
対象物上に存在する複数の観測点の３次元情報を距離センサから取得し、前記３次元情報を基にして、前記対象物の領域から、第１領域と、前記第１領域に隣接する複数の第２領域とを特定し、前記第２領域に含まれる複数の特徴点の位置を特定し、
前記第２領域に含まれる各特徴点に基づいてリンクを設定することで、前記第２領域に含まれる骨格の位置を推定し、
前記第１領域に含まれる部位の位置を特定する際に用いる複数のパラメータのうち、前記第２領域に含まれる骨格の端点と、前記骨格の端点から前記第１領域に含まれる部位の位置までの長さとを固定した状態で、前記第１領域に含まれる部位の位置を特定し、特定した部位の位置を基にして、前記第１領域に含まれる骨格の位置を推定する
処理を実行することを特徴とする骨格推定方法。
【請求項６】
前記複数のパラメータは角度パラメータを含み、前記第１領域に含まれる骨格の位置を推定する処理は、前記角度パラメータを変更することで複数の部位候補の位置を特定し、複数の部位候補のうち、前記第１領域内の予め定められた点の位置との距離が近い部位候補を、前記第１領域に含まれる部位として特定することを特徴とする請求項５に記載の骨格推定方法。
【請求項７】
前記第１領域に含まれる骨格の位置を推定する処理は、前記第１領域に含まれる部位を特定した場合に、特定した部位の位置によって、前記第１領域内の予め定められた点の位置を更新することを特徴とする請求項６に記載の骨格推定方法。
【請求項８】
前記第１領域は、前記対象物の胴体部分の領域に対応し、前記複数の第２領域は、前記対象物の頭部の領域、腕部分の領域、足部分の領域に対応することを特徴とする請求項５、６または７に記載の骨格推定方法。
【請求項９】
コンピュータに、
対象物上に存在する複数の観測点の３次元情報を距離センサから取得し、前記３次元情報を基にして、前記対象物の領域から、第１領域と、前記第１領域に隣接する複数の第２領域とを特定し、前記第２領域に含まれる複数の特徴点の位置を特定し、
前記第２領域に含まれる各特徴点に基づいてリンクを設定することで、前記第２領域に含まれる骨格の位置を推定し、
前記第１領域に含まれる部位の位置を特定する際に用いる複数のパラメータのうち、前記第２領域に含まれる骨格の端点と、前記骨格の端点から前記第１領域に含まれる部位の位置までの長さとを固定した状態で、前記第１領域に含まれる部位の位置を特定し、特定した部位の位置を基にして、前記第１領域に含まれる骨格の位置を推定する
処理を実行させることを特徴とする骨格推定プログラム。
【請求項１０】
前記複数のパラメータは角度パラメータを含み、前記第１領域に含まれる骨格の位置を推定する処理は、前記角度パラメータを変更することで複数の部位候補の位置を特定し、複数の部位候補のうち、前記第１領域内の予め定められた点の位置との距離が近い部位候補を、前記第１領域に含まれる特徴点として特定することを特徴とする請求項９に記載の骨格推定プログラム。
【請求項１１】
前記第１領域に含まれる骨格の位置を推定する処理は、前記第１領域に含まれる部位を特定した場合に、特定した部位の位置によって、前記第１領域内の予め定められた点の位置を更新することを特徴とする請求項１０に記載の骨格推定プログラム。
【請求項１２】
前記第１領域は、前記対象物の胴体部分の領域に対応し、前記複数の第２領域は、前記対象物の頭部の領域、腕部分の領域、足部分の領域に対応することを特徴とする請求項９、１０または１１に記載の骨格推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、骨格推定装置等に関する。
【背景技術】
【０００２】
近年、ＩＣＴ（Information  and  Communication  Technology）を活用することにより、スポーツのスキルを向上させることや、業務の効率化を目指す試みがなされている。例えば、スポーツのスキルを向上させる技術として、指導者の体の動きと、利用者の体の動きとを比較解析し、指導者と利用者との体の動きの相違点を表示するものがある。【０００３】
人の体の動きを解析する場合には、Kinect（登録商標）等の３Ｄ（dimension）センサから距離画像情報を取得し、人の頭、手、胴体、足等の各部位の位置を認識する従来技術を用いる。以下において、人の各部位の位置を認識する従来技術の一例として、身体部位認識手法と、モデルフィッティング手法を説明する。【０００４】
身体部位認識手法について説明する。身体部位認識手法は、距離画像を入力とし、ランダムフォレスト方式を用いて学習した識別器を用いてピクセル毎のラベル分けを行う。そして、身体部位認識手法は、関節位置に相当するラベルの重心を用いて、直接関節座標を推定する。【０００５】
図５８は、身体部位認識手法を説明するための図である。図５８に示すように、身体部位認識手法は、３Ｄセンサから距離画像情報を取得し、距離画像情報の背景を除去することで、画像１１を生成する（ステップＳ１０）。身体部位認識手法は、ランダムフォレスト方式を用いて学習した識別器を用いて、ピクセル毎のラベル分けを行う（ステップＳ１１）。身体部位認識手法は、各ラベルの重心を関節位置として推定し（ステップＳ１２）、各ラベルの重心を結んだものを骨格として認識する（ステップＳ１３）。【０００６】
モデルフィッティング手法について説明する。モデルフィッティング手法は、各関節を結ぶ領域を、円柱モデル（あるいは円錐モデル）等で定義し、モデルの位置や大きさを変化させながら、観測点に対して最も当てはまる円柱モデルの形状を算出する。モデルフィッティング手法は、円柱モデルの形状を算出する処理を各部位に相当する領域において繰り返し実行し、各円柱モデルを組み合わせたものを骨格として認識する。【０００７】
図５９および図６０は、モデルフィッティング手法を説明するための図である。図５９に示すように、モデルフィッティング手法は、円柱２０の半径ｒ、高さｈ、両端の中心位置２０ａ（ｘ１、ｙ１、ｚ１）、２０ｂ（ｘ２、ｙ２、ｚ２）の８変数をある一定範囲で変化させる。モデルフィッティング手法は、円柱２０内に含まれる観測点の数を評価値とし、最も高い評価値となる円柱を骨格とする。図５９のマルが、観測点に相当する。図６０に示すように、モデルフィッティング手法は、図５９で説明した処理を、人の各部位に対して繰り返し実行することで、各部位に相当する複数の円柱を求め、各円柱を組み合わせたものを骨格として認識する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】J.Shotton，A.Fitzgibbon，M.Cook,T.Sharp，M.Finocchio，R.Moore，A.Kipman,A.Blake“Real-time  human  pose  recognition  in  parts  from  a  single  depth  image”In  Proc.CVPR，2011.
【非特許文献２】堀内英一、「シングルスキャン点群データのための半形状幾何学モデル」、日本ロボット学会誌  Vol.32  No.8,pp.721〜730,2014
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、高速かつ正確に利用者の骨格を認識することができないという問題がある。【００１０】
身体部位認識手法は、ラベルの重心から直接関節座標を求めるため、３Ｄセンサのノイズ、部位の隠れによるラベル分割、学習の難しい姿勢でのラベル位置誤りが発生すると、人体骨格としてあり得ないような位置を関節の位置として推定する場合がある。また、身体部位認識手法は、ピクセル毎に確率的にラベル付けを行うため、部位の境界付近のラベルが曖昧になり、時系列フレームで見た場合、関節位置が安定しない。【００１１】
図６１は、従来技術の問題を説明するための図である。図６１において、マルは関節の位置を示し、関節を結ぶ直線をリンクと定義する。また、各関節と各リンクとをまとめたものを骨格と定義する。図６１では、利用者がゴルフスイングをするあるタイミングの骨格を示しており、左腕によって、胴体２５の関節の一部が部分的に隠れている。この場合には、ラベルの位置誤りが発生し、適切に骨格を認識することができない。【００１２】
一方、モデルフィッティング手法は、多数のパラメータの組み合わせを評価するため、人体のように多数の部位により構成される対象のフィッティングを行う場合には、計算時間が大きくなる。また、胴体のように観測点が多い部位では、評価値の組み合わせが多くなり、他の部位と比較して、計算時間が大きくなり、高速に利用者の骨格を認識することができない。【００１３】
１つの側面では、本発明は、高速かつ正確に利用者の骨格を認識することができる骨格推定装置、骨格推定方法および骨格推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、骨格推定装置は、特定部と、第１推定部と、第２推定部とを有する。特定部は、対象物上に存在する複数の観測点の３次元情報を距離センサから取得し、３次元情報を基にして、対象物の領域から、第１領域と、第１領域に隣接する複数の第２領域とを特定し、第１領域、第２領域に含まれる複数の特徴点の位置を特定する。第１推定部は、第２領域に含まれる各特徴点に基づいてリンクを設定することで、第２領域に含まれる骨格の位置を推定する。第２推定部は、第１領域に含まれる特徴点の位置を特定する際に用いる複数のパラメータのうち、第２領域に含まれる骨格の端点と、骨格の端点から第１領域に含まれる部位の位置までの長さとを固定した状態で次の処理を行う。第２推定部は、第１領域に含まれる部位の位置を特定し、特定した部位の位置を基にして、第１領域に含まれる骨格の位置を推定する。
【発明の効果】
【００１５】
本発明の１実施態様によれば、高速かつ正確に利用者の骨格を認識することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本実施例１に係る骨格推定装置の構成を示す機能ブロック図である。
【図２】図２は、本実施例１に係る３次元データテーブルのデータ構造の一例を示す図である。
【図３】図３は、本実施例１に係るモデルデータのデータ構造の一例を示す図である。
【図４】図４は、本実施例１に係る骨格データテーブルのデータ構造の一例を示す図である。
【図５】図５は、本実施例１の特定部が特定する各領域の一例を示す図である。
【図６】図６は、２値化画像の一例を示す図である。
【図７】図７は、細線化画像の一例を示す図である。
【図８】図８は、除去パターンの一例を示す図である。
【図９】図９は、特徴点の一例を示す図である。
【図１０】図１０は、交点を抽出する処理の一例を説明するための図である。
【図１１】図１１は、モデル照合処理の一例を説明するための図である。
【図１２】図１２は、円柱主軸の決定処理の一例を説明するための図である。
【図１３】図１３は、円柱半径および円柱中心の決定処理の一例を説明するための図である。
【図１４】図１４は、リンク結合処理の一例を説明するための図である。
【図１５】図１５は、本実施例１に係る第２推定部の処理の一例を説明するための図である。
【図１６】図１６は、胴体推定座標を推定する処理の一例を説明するための図（１）である。
【図１７】図１７は、胴体推定座標を推定する処理の一例を説明するための図（２）である。
【図１８】図１８は、本実施例１に係る骨格推定装置の処理手順を示すフローチャートである。
【図１９】図１９は、胴体の骨格認識処理の処理手順を示すフローチャートである。
【図２０】図２０は、骨格推定装置のハードウェア構成の一例を示す図である。
【図２１】図２１は、本実施例２に係るスキル判定装置の構成を示す機能ブロック図である。
【図２２】図２２は、フレームデータのデータ構造の一例を示す図である。
【図２３】図２３は、お手本データのデータ構造の一例を示す図である。
【図２４】図２４は、スキル判定定義データのデータ構造の一例を示す図である。
【図２５】図２５は、スキル判定定義データを補足説明するための図である。
【図２６】図２６は、表示装置に表示される表示画面の一例を示す図である。
【図２７】図２７は、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のパラメータ設定画面の一例を示す図である。
【図２８】図２８は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」のパラメータ設定画面の一例を示す図である。
【図２９】図２９は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」のパラメータ設定画面の一例を示す図である。
【図３０】図３０は、フレームマッチングの一例を説明するための図である。
【図３１】図３１は、重みを説明するための図である。
【図３２】図３２は、スキル判定部の処理を説明するための図（１）である。
【図３３】図３３は、スキル判定部の処理を説明するための図（２）である。
【図３４】図３４は、出力部が生成する表示画面の一例を示す図（１）である。
【図３５】図３５は、出力部が生成する表示画面の一例を示す図（２）である。
【図３６】図３６は、スキル判定装置の処理手順を示すフローチャートである。
【図３７】図３７は、スキル判定処理の処理手順を示すフローチャートである。
【図３８】図３８は、設定処理の処理手順を示すフローチャートである。
【図３９】図３９は、スキル判定プログラムを実行するコンピュータの一例を示す図である。
【図４０】図４０は、本実施例３に係るシステムの構成を示す図である。
【図４１】図４１は、本実施例３に係るサーバの構成を示す機能ブロック図である。
【図４２】図４２は、スキル判定結果テーブルのデータ構造の一例を示す図である。
【図４３】図４３は、スキル判定結果の一例を示す図である。
【図４４】図４４は、本実施例３に係る個人情報テーブルのデータ構造の一例を示す図である。
【図４５】図４５は、バーナー情報テーブルのデータ構造の一例を示す図である。
【図４６】図４６は、商品テーブルのデータ構造の一例を示す図である。
【図４７】図４７は、本実施例３に係るサーバの処理手順を示すフローチャートである。
【図４８】図４８は、本実施例４に係るシステムの構成を示す図である。
【図４９】図４９は、本実施例４に係るサーバの構成を示す機能ブロック図である。
【図５０】図５０は、本実施例４に係る個人情報テーブルのデータ構造の一例を示す図である。
【図５１】図５１は、グループ管理テーブルのデータ構造の一例を示す図である。
【図５２】図５２は、本実施例４に係るサーバの処理手順を示すフローチャートである。
【図５３】図５３は、本実施例５に係るシステムの構成を示す図である。
【図５４】図５４は、本実施例５に係るサーバの構成を示す機能ブロック図である。
【図５５】図５５は、専門家データテーブルのデータ構造の一例を示す図である。
【図５６】図５６は、本実施例５に係るサーバの処理手順を示すフローチャートである。
【図５７】図５７は、制御プログラムを実行するコンピュータの一例を示す図である。
【図５８】図５８は、身体部位認識手法を説明するための図である。
【図５９】図５９は、モデルフィッティング手法を説明するための図（１）である。
【図６０】図６０は、モデルフィッティング手法を説明するための図（２）である。
【図６１】図６１は、従来技術の問題を説明するための図である。
【発明を実施するための形態】
【００１７】
以下に、本発明にかかる骨格推定装置、骨格推定方法および骨格推定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１８】
図１は、本実施例１に係る骨格推定装置の構成を示す機能ブロック図である。図１に示すように、この骨格推定装置１００は、３Ｄセンサ１１０と、通信部１２０と、入力部１３０と、表示部１４０と、記憶部１５０と、制御部１６０とを有する。【００１９】
３Ｄセンサ１１０は、３Ｄセンサ１１０の設置位置から、３Ｄセンサ１１０の撮影範囲に含まれる対象者上の各観測点までの距離情報を計測するセンサである。例えば、３Ｄセンサ１１０は、所定時間毎あるいはフレーム毎に、各観測点の３次元座標を示す３次元データを生成し、生成した３次元データを制御部１６０に出力する。【００２０】
図２は、本実施例１に係る３次元データテーブルのデータ構造の一例を示す図である。図２に示すように、この３次元データテーブル１５１は、観測点識別情報と、３次元座標とを対応付ける。観測点識別情報は、観測点を一意に識別する情報である。３次元座標は、互いに直交するｘ軸、ｙ軸、ｚ軸上の観測点の座標を示すものである。例えば、ｘ軸は、３Ｄセンサ１１０に対して水平方向の軸とする。ｙ軸は、３Ｄセンサ１１０に対して鉛直方向の軸とする。ｚ軸は、３Ｄセンサ１１０の奥行き方向の軸とする。【００２１】
通信部１２０は、ネットワークを介して、図示しない外部装置等と通信を行う処理部である。通信部１２０は、通信装置等に対応する。【００２２】
入力部１３０は、各種の情報を骨格推定装置１００に入力するための入力装置である。入力部１３０は、例えば、キーボード、マウス、タッチパネル等に対応する。【００２３】
表示部１４０は、制御部１６０から出力される各種の情報を表示する表示装置である。表示部１４０は、例えば、液晶ディスプレイやタッチパネル等に対応する。【００２４】
記憶部１５０は、３次元データテーブル１５１、モデルデータ１５２、骨格データテーブル１５３を有する。記憶部１５０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。【００２５】
３次元データテーブル１５１は、３Ｄセンサ１１０から取得する複数の３次元データを格納するテーブルである。各３次元データのデータ構造は、図２に説明したものに対応する。【００２６】
モデルデータ１５２は、モデルの種別と、モデルの各部位の３次元座標とを定義した情報である。例えば、モデルの種別は、対象者の様々な姿勢に対応するものである。図３は、本実施例１に係るモデルデータのデータ構造の一例を示す図である。図３に示すように、このモデルデータ１５２は、モデル番号と、部位と、３次元座標とを対応付ける。モデル番号は、モデルの種別を識別する番号である。部位は、対象者の部位を示す。３次元座標は、モデル上の部位の３次元座標を示すものである。【００２７】
骨格データテーブル１５３は、所定時間毎の、対象者の骨格の情報を格納するテーブルである。図４は、本実施例１に係る骨格データテーブルのデータ構造の一例を示す図である。図４に示すように、この骨格データテーブル１５３は、識別番号と、部位と、３次元座標とを対応付ける。識別番号は、レコードを識別する情報である。部位は、対象者の部位を示す。３次元座標は、対象者の部位の３次元座標を示すものである。【００２８】
制御部１６０は、取得部１６１と、特定部１６２と、第１推定部１６３と、第２推定部１６４と、出力部１６５とを有する。制御部１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１６０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００２９】
取得部１６１は、３Ｄセンサ１１０から、３次元データを取得する処理部である。取得部１６１は、３次元データを取得する度に、３次元データテーブル１５１に格納する。上述した説明では、３Ｄセンサ１１０が、３次元データを生成する場合について説明したが、取得部１６１が、３Ｄセンサ１１０から取得する距離情報を、所定の変換規則に従って、３次元データに変換することで、３次元データを生成しても良い。【００３０】
特定部１６２は、３次元データテーブル１５１から３次元データを取得し、３次元データを基にして、対象者の領域から、第１領域と、第１領域に隣接する複数の第２領域とを特定する処理部である。図５は、本実施例１の特定部が特定する各領域の一例を示す図である。図５に示すように、特定部１６２は、対象者の領域３０から、第１領域３１、第２領域３２，３３，３４，３５，３６を特定する。第１領域３１は、対象者の胴体に対応する。第２領域３２は、対象者の頭に対応する。第２領域３３は、対象者の右腕に対応する。第２領域３４は、対象者の左腕に対応する。第２領域３５は、対象者の右足に対応する。第２領域３６は、対象者の左足に対応する。【００３１】
また、特定部１６２は、複数の第２領域に含まれる部位の位置を特定し、特定した結果を、第１推定部１６３に出力し、複数の第１領域に含まれる部位の位置を特定し、特定した結果を第２推定部１６４に出力する。【００３２】
特定部１６２は、第１領域３１、第２領域３２〜３６を特定し、第１領域３１、第２領域３２〜３６に含まれる部位の位置を特定する場合に、後述する２値化処理、細線化処理、特徴点抽出処理、モデル照合処理を実行する。なお、かかる処理は一例であり、特定部１６２は、機械学習による識別器を用いて、第１領域３１、第２領域３２〜３６を特定し、第１領域３１、第２領域３２〜３６に含まれる部位の位置を特定しても良い。【００３３】
特定部１６２が実行する２値化処理の一例について説明する。特定部１６２は、３次元データに含まれる各観測点のうち、予め設定した背景差分領域に存在する観測点の情報を取得する。特定部１６２は、背景差分領域に含まれる各観測点の３次元座標のうち、ｚ軸の値に着目する。特定部１６２は、ｚ軸の値が閾値Ｚｔｈ以上である場合には、該当する２次元座標の値を「１」に設定し、ｚ軸の値が閾値Ｚｔｈ未満である場合には、該当する２次元座標の値を「０」に設定する。【００３４】
例えば、背景差分領域に含まれるある観測点の３次元座標を（ｘ１、ｙ２、ｚ１）とし、その観測点に対応する２値化画像上の画素を（ｕ１、ｖ２）とする。特定部１６２は、「ｚ１」が閾値Ｚｔｈ以上である場合には、２値化画像上の画素（ｕ１、ｖ２）の値を「１」に設定する。一方、特定部１６２は、「ｚ１」が閾値Ｚｔｈ未満である場合には、２値化画像上の画素（ｕ１、ｖ２）の値を「０」に設定する。特定部１６２は、背景差分領域に含まれる各観測点について上記処理を繰り返し実行することで、２値化処理を実行し、２値化画像を生成する。【００３５】
図６は、２値化画像の一例を示す図である。２値化画像４０ａにおいて、白色の領域は、上記２値化処理によって「０」が設定された領域であり、対象者の領域に対応する。黒色の領域は、上記２値化処理によって「１」が設定された領域であり、対象者以外の領域に対応する。ここでは説明の便宜上、値「０」、「１」を用いて説明したが、例えば、値「０」は、画素値の「０」、値「１」は、画素値の「２５５」であってもよい。【００３６】
特定部１６２が実行する細線化処理の一例について説明する。特定部１６２は、２値化画像に対して細線化処理を実行することで、細線化画像を生成する。図７は、細線化画像の一例を示す図である。図７に示す細線化画像４０ｂは、図６に示した２値化画像４０ａに対して、細線化処理を実行することで得られる画像である。【００３７】
特定部１６２は、２値化画像４０ａ上の部分パターンが除去パターンに該当するか否かを判定し、部分パターンが除去パターンと一致する場合には、部分パターンに対応する領域の値を「１」に変更する。特定部１６２は、２値化画像４０ａ上の部分パターンの位置をずらしながら、上記処理を繰り返し実行することで、細線化処理を実行する。【００３８】
図８は、除去パターンの一例を示す図である。図８に示す例では、除去パターンは、除去パターン５ａ，５ｂ，５ｃとなる。例えば、除去パターンのサイズを、３×３ピクセルとし、２値化画像上に設定される部分パターンのサイズを３×３ピクセルとするが、これに限定されるものではない。除去パターンにおいて「１」は、部分パターンの該当するピクセルの値が「１」であることを示す。「０」は、部分パターンの該当するピクセルに値が「０」であること示す。「×」は、部分パターンの該当するピクセルの値が「０」でも「１」でも良い旨を示す。【００３９】
特定部１６２が実行する特徴点抽出処理の一例について説明する。特定部１６２は、細線化画像に対して特徴点抽出処理を実行することで、細線化画像から特徴点を抽出する。図９は、特徴点の一例を示す図である。図９に示す例では、細線化画像４０ｂから、特徴点６ａ〜６ｋが抽出される例を示す。例えば、特徴点は、端点に対応する特徴点６ａ，６ｄ，６ｅ，６ｆ，６ｇと、交点に対応する特徴点６ｂ，６ｃと、コーナーに対応する特徴点６ｈ、６ｉ、６ｊ、６ｋを含む。【００４０】
例えば、特定部１６２は、３通りのアプローチで特徴点を抽出する。１つ目のアプローチについて説明する。特定部１６２は、細線化画像４０ｂのうち、値が「０」となる領域において、端点を特徴点として抽出する。図９に示す例では、点６ａ，６ｄ，６ｅ，６ｆ，６ｇが端点となるため、特定部１６２は、点６ａ，６ｄ，６ｅ，６ｆ，６ｇを特徴点とする。【００４１】
２つ目のアプローチについて説明する。特定部１６２は、細線化画像４０ｂのうち、値が「０」となる領域において、交点を特徴点として抽出する。図９に示す例では、点６ｂ，６ｃが交点となるため、特定部１６２は、点６ｂ，６ｃを特徴点とする。【００４２】
例えば、特定部１６２は、交点の特徴点を抽出する場合に、近傍画素値に値が「１」となる画素で区切られた３つ以上の空白領域が含まれている点を、特徴点として抽出する。空白領域は、１画素または複数の連続した値が「０」となる画素の集まりである。図１０は、交点を抽出する処理の一例を説明するための図である。図１０において、特定部１６２は、点６Ａを特徴点として抽出するが、点６Ｂ，６Ｃを特徴点として抽出しない。点６Ａが特徴点となる理由は、点６Ａの左上、右上、下に値が「０」となる点があり、それぞれの点が「１」の点により区切られているため空白領域が３つとなり、点６Ｂ，６Ｃが交点とならない理由としては、点６Ｂは左上、上、右上の３点が１となっているが、間に「１」となる点が無く、連続しているため近接の空白領域が１つとなり、点６Ｃは４点の「０」となる点があるが、左上、左と右上、右がそれぞれ連続しているため近接の空白領域が２つとなり、３つ以上存在していないためである。【００４３】
３つ目のアプローチについて説明する。特定部１６２は、細線化画像４０ｂのうち、値が「０」となる領域において、コーナーの点を特徴点として抽出する。例えば、特定部１６２は、細線化画像４０ｂに対し、コーナー検出フィルタを適用することにより、コーナーに対応する点を特定する。図９に示す例では、点６ｈ，６ｉ，６ｊ，６ｋがコーナーの点に対応する。【００４４】
特定部１６２が上記処理を実行することで、細線化画像４０ｂから、特徴点６ａ〜６ｋを抽出する。【００４５】
特定部１６２が実行するモデル照合処理について説明する。特定部１６２は、特徴点の位置と、モデルデータ１５２とを基にして、各特徴点の部位を特定する処理部である。例えば、特定部１６２は、モデルデータ１５２のモデル番号毎に、特徴点の大きさに正規化し、特徴点の座標と部位の座標との対応付けを行い、対応付けた特徴点の座標と部位の座標との差分の合計値を算出する。正規化は、以下のように実施する。まず、モデルデータの重心と各部位との最も遠い距離L1、特徴点の重心と各特徴点との最も遠い距離L2、を求め、L1=L2になるように、モデルデータの大きさを変更する。また、重心は、モデルデータであれば部位の座標、特徴点であれば特徴点の座標の、それぞれ平均座標である。特定部１６２は、距離が最も近い特徴点と部位とを対応付けるものとする。特定部１６２は、対応付けた特徴点の座標と部位の座標との差分の合計値が最小となるモデル番号を特定する。特定部１６２は、特徴点の部位を、特定したモデル番号において対応付けた部位として特定する。【００４６】
図１１は、モデル照合処理の一例を説明するための図である。図１１に示すように、特定部１６２は、細線化画像４０ｂから特徴点６ａ〜６ｇを抽出したものとする。説明の便宜上、特徴点６ｈ〜６ｋの説明は省略する。また、モデルデータ１５２には、モデル番号ｍ１〜ｍ３が含まれているものとする。モデル番号ｍ１の部位７ａ，７ｂ，７ｃ，７ｄ，７ｅ，７ｆ，７ｇは、それぞれ、頭、首、骨盤、右手首、左手首、右足首、左足首に対応する。モデル番号ｍ２の部位８ａ，８ｂ，８ｃ，８ｄ，８ｅ，８ｆ，８ｇは、それぞれ、頭、首、骨盤、右手首、左手首、右足首、左足首に対応する。モデル番号ｍ１の部位９ａ，９ｂ，９ｃ，９ｄ，９ｅ，９ｆ，９ｇは、それぞれ、頭、首、骨盤、右手首、左手首、右足首、左足首に対応する。【００４７】
特定部１６２は、特徴点の座標と部位の座標との距離が最小となるように、特徴点６ａ〜６ｇと、モデルｍ１の部位７ａ〜７ｇとをそれぞれ対応付け、対応付けた特徴点の座標と部位の座標との差分の合計値Ｍ１を算出する。特定部１６２は、特徴点の座標と部位の座標との距離が最小となるように、特徴点６ａ〜６ｇと、モデルｍ２の部位８ａ〜８ｇとをそれぞれ対応付け、対応付けた特徴点の座標と部位の座標との差分の合計値Ｍ２を算出する。特定部１６２は、特徴点の座標と部位の座標との距離が最小となるように、特徴点６ａ〜６ｇと、モデルｍ３の部位９ａ〜９ｇとをそれぞれ対応付け、対応付けた特徴点の座標と部位の座標との差分の合計値Ｍ３を算出する。【００４８】
特定部１６２は、合計値Ｍ１〜Ｍ３のうち、合計値Ｍ１が最小である場合には、モデルｍ１を特定し、特定したモデルｍ１の部位７ａ〜７ｇと、特徴点６ａ〜６ｇとの対応関係から、特徴点６ａ〜６ｇの部位を特定する。図１１に示す例では、特定部１６２は、特徴点６ａ〜６ｇをそれぞれ、頭、首、骨盤、右手首、左手首、左足首、右足首と特定する。図１１では図示を省略したが、特定部１６２は、特徴点６ｈ〜６ｋについても同様に処理を行うことで、特徴点６ｈ〜６ｋの部位を、右肩、左肩、右股関節、左股関節として特定する。【００４９】
上記説明では、特定部１６２は、頭、首、左手首、右手首、骨盤、左足首、右足首、右肩、左肩、右股関節、左股関節に対応する特徴点を特定したが、これに限定されるものではない。特定部１６２は、更に、他の部位に対応する特徴点を特定してもよい。他の部位は、例えば、背骨、右肘関節、左肘関節、右膝関節、左膝関節等に対応する。さらに、特定部１６２は、細線化画像から特徴点を特定できない部位の位置を特定しても良い。例えば、モデルデータ１５２に、背骨の位置を定義しておき、正規化を行った後で特定されたモデルにおいて、特徴点として特定された首、骨盤の位置から背骨の位置を算出する。【００５０】
特定部１６２は、上記の２値化処理、細線化処理、特徴点抽出処理、モデル照合処理を実行することで、第２領域３２〜３６に含まれる特徴点と、特徴点に対応する部位と、特徴点の３次元座標とを対応付けた情報を、第１推定部１６３に出力する。また、特定部１６２は上記の２値化処理、細線化処理、特徴点抽出処理、モデル照合処理を実行することで第１領域３１に含まれる胴体部分に対応する部位の位置情報を第２推定部１６４に出力する。【００５１】
第１推定部１６３は、第２領域３２〜３６に含まれる各特徴点に基づいてリンクで設定することで、第２領域３２〜３６に含まれる骨格の位置を推定する処理部である。例えば、第１推定部１６３は、円柱主軸の決定処理、円柱半径および円柱中心の決定処理、リンク結合処理を実行することで、骨格の位置を推定する。【００５２】
第１推定処理部１６３が実行する円柱主軸の決定処理について説明する。ここでは一例として、第２領域３４の骨格の位置を推定する場合について説明する。また、第２領域３４には、左肩に対応する特徴点６ｉ、左肘関節に対応する特徴点６ｌ、左手首に対応する特徴点６ｅが含まれているものとする。【００５３】
図１２は、円柱主軸の決定処理の一例を説明するための図である。図１２において、特徴点６ｉは右肩に対応する特徴点を示し、特徴点６ｌは右肘関節に対応する特徴点を示すものとする。第１推定部１６３は、特徴点６ｉ，６ｌの近傍に円柱５０を設定する。例えば、円柱５０の高さは、特徴点６ｌから特徴点６ｉまでの高さに対応する。また、第１推定部１６３は、円柱５０から所定距離内に存在する観測点の３次元座標の情報を、３次元データテーブル１５１から取得する。【００５４】
第１推定部１６３は、主成分分析を用いて円柱５０の主軸の傾きを算出する。例えば、第１推定部１６３は、式（１）に基づいて、特徴点間に存在する観測点の３次元座標のベクトルｘ１，ｘ２、・・・、ｘｎから共分散行列σｘｘを算出する。式（１）において、Ｎは、観測点のデータ数に対応する。＜ｘ＞は、ｘｎの平均であり、式（２）によって定義される。【００５５】
【数１】
2017187641.tif 000003
【００５６】
【数２】
2017187641.tif 000004
【００５７】
第１推定部１６３は、共分散行列σｘｘを算出し、共分散行列σｘｘの固有ベクトルｅ１，ｅ２，ｅ３を計算する。第１推定部１６３は、固有ベクトルｅ１，ｅ２，ｅ３のうち、最大固有値に属する固有ベクトルの向きを、円柱５０の向きとして特定する。この円柱５０の向きは、円柱５０の主軸の傾きに対応する。第１推定部１６３は、第２領域に含まれる他の特徴点の組についても、上記処理を実行することで、円柱の主軸の傾きを算出する。【００５８】
第１推定部１６３が実行する円柱半径および円柱中心の決定処理について説明する。図１３は、円柱半径および円柱中心の決定処理の一例を説明するための図である。図１３において、縦軸は第二主成分に対応する軸であり、横軸は第三主成分に対応する軸である。第二主成分は、共分散行列σｘｘの固有ベクトルｅ１，ｅ２，ｅ３のうち、２番目に大きい固有値に属する固有ベクトルに対応する。第三主成分は、共分散行列σｘｘの固有ベクトルｅ１，ｅ２，ｅ３のうち、３番目に大きい固有値に属する固有ベクトルに対応する。【００５９】
第１推定部１６３は、円柱５０から所定距離内に存在する観測点を、第二、三主成分の平面に投影し、最小二乗法等を用いることで、円柱５０の円（楕円）５０ａと、投影した各観測点との誤差が最小となるように、円柱半径５０ｂおよび円柱中心５０ｃを特定する。第１推定部１６３は、第２領域に含まれる他の特徴点についても、上記処理を実行することで、円柱半径および円柱中心を特定する。【００６０】
第１推定部１６３が実行するリンク結合処理について説明する。例えば、リンクは上述した円柱主軸の決定処理、円柱半径および円柱中心の決定処理によって算出された円柱の軸に対応するものである。図１４は、リンク結合処理の一例を説明するための図である。図１４に示す例では、ある円柱のリンクをリンク５５ａとし、他の円柱のリンクをリンク５５ｂとする。リンク５５ａの上側端点を端点ａ１とし、リンク５５ａの下側端点を端点ａ２とする。リンク５５ｂの上側端点を端点ｂ１とし、リンク５５ｂの下側端点を端点ｂ２とする。【００６１】
第１推定部１６３は、複数の結合点の候補を設定し、各結合点の候補にリンクの延長線が通るように、リンク５５ａ，５５ｂの傾きを調整する。第１推定部１６３は、リンク５５ａの傾きの変化と、リンク５５ｂの傾きの変化とを合計した値が最小となる結合点の候補を、複数の結合点の中から特定する。【００６２】
例えば、図１４に示す例では、第１推定部１６３は、複数の結合点の候補ｃ１〜ｃ３を設定する。第１推定部１６３は、各結合点の候補にリンクの延長線が通るように、リンク５５ａ，５５ｂの傾きを調整する。例えば、結合点を結合点ｃ１とした場合において、リンク５５ａの傾きの変化と、リンク５５ｂの傾きの変化とを合計した値をｃ１とする。結合点を結合点ｃ２とした場合において、リンク５５ａの傾きの変化と、リンク５５ｂの傾きの変化とを合計した値をｃ２とする。例えば、結合点を結合点ｃ３とした場合において、リンク５５ａの傾きの変化と、リンク５５ｂの傾きの変化とを合計した値をｃ３とする。【００６３】
第１推定部１６３は、値ｃ１〜ｃ３のうち、値ｃ２が最小となる場合には、結合点がｃ２となるように、リンク５５ａおよび５５ｂの傾きを調整する。第１推定部１６３は、他の第２領域に含まれる他のリンクについても、上記処理を実行することで、結合点を特定し、各リンクの傾きを調整する。また、第１推定部１６３は、結合点にリンクが接続されるように、リンクの長さを調整する。第１推定部１６３は、結合点により接続されたリンクのグループを、第２領域に含まれる骨格の位置として推定する。【００６４】
第１推定部１６３は、上記処理を実行することで、第２領域３３〜３６に対応する骨格の位置を推定し、各骨格の位置の情報を、第２推定部１６４および出力部１６５に出力する。【００６５】
第２推定部１６４は、角度パラメータ毎に、第２領域３３〜３６に含まれる骨格の端点と、骨格の端点から第１領域３１に含まれる部位の位置までの長さとを固定した状態で、第１領域３１の複数の部位の位置を推定する。第２推定部１６４は、角度パラメータに対応する複数の部位の組と、第１領域３１の複数の部位の概算座標とを比較し、概算座標に最も近い、複数の部位の組を、第１領域３１の部位として推定する。第２推定部１６４は、推定した第１領域３１の部位をリンクで接続し、リンクで接続したものを、第１領域３１に含まれる骨格の位置として推定する。【００６６】
図１５は、本実施例１に係る第２推定部の処理の一例を説明するための図である。図１５において、Ｆ０は、右肩に対応する点である。右肩に対応する点は、第２領域３３に含まれる骨格の上端の点に対応する。Ｆ１は、左肩に対応する点である。左肩に対応する点は、第２領域３４に含まれる骨格の上端の点に対応する。Ｆ２は、右股関節に対応する点である。右股関節に対応する点は、第２領域３５に含まれる骨格の上端の点に対応する。Ｆ３は、左股関節に対応する点である。左股関節に対応する点は、第２領域３６に含まれる骨格の上端の点に対応する。【００６７】
第２推定部１６４は、Ｆ０〜Ｆ３の３次元座標を固定し、各リンクの長さＬ０〜Ｌ５を固定した状態で、ある角度パラメータθによって、胴体推定座標Ｐ０，Ｐ１，Ｐ２を推定する。第２推定部１６４は、特定部１６２によるモデル照合処理により特定された部位座標の内、胴体部分に対応する胴体概算座標Ｊ０，Ｊ１，Ｊ２と、推定した胴体推定座標Ｐ０，Ｐ１，Ｐ２とをそれぞれ対応付け、対応付けた点の距離合計値Ｄを算出する。例えば、距離合計値Ｄは、式（３）によって定義される。【００６８】
【数３】
2017187641.tif 000005
【００６９】
第２推定部１６４は、所定の範囲内で、角度パラメータθを変化させ、変化させた各角度パラメータに対する、合計値を算出する。第２推定部１６４は、算出した合計値のうち、最小となる合計値における、胴体推定座標Ｐ０，Ｐ１，Ｐ２を、第１領域３１の部位として特定する。第２推定部１６４は、推定した部位をリンクで結んだものを、第１領域３１に含まれる骨格として推定する。また、第２推定部１６４は、特定部１６２によるモデル照合処理によって特定した部位座標を用いる代わりに、算出した胴体推定座標Ｐ０，Ｐ１，Ｐ２によって、次フレームの処理のために胴体概算座標Ｊ０，Ｊ１，Ｊ２を更新してもよい。【００７０】
続いて、第２推定部１６４が第１領域３１の胴体推定座標Ｐ０，Ｐ１，Ｐ２を推定する具体的な処理について説明する。図１６および図１７は、胴体推定座標を推定する処理の一例を説明するための図である。図１６に示すＦ０〜Ｆ３は、図１５で説明したＦ０〜Ｆ３に対応するものである。図１６に示すＬ０〜Ｌ５は、図１５で説明したＬ０〜Ｌ５に対応するものである。【００７１】
図１６において、左右の肩座標Ｆ０，Ｆ１、首座標Ｐ０までの骨の長さＬ０、Ｌ１が固定されるため、首座標Ｐ０は、半径ｒ０、θ０によって決まる円周上の点となる。同様に、左右の股関節座標Ｆ２，Ｆ３、骨盤座標Ｐ２までの骨の長さＬ２，Ｌ３が固定されるため、骨盤座標Ｐ０は、半径ｒ２、θ２によって決まる円周上の点となる。θ０，θ２によって首座標Ｐ０および骨盤座標Ｐ２が決まる。【００７２】
また、首座標Ｐ０と背骨座標Ｐ１との長さは、Ｌ４で固定される。骨盤座標Ｐ２と背骨座標Ｐ１との長さは、Ｌ５で固定される。このため、θ０およびθ２によって、首座標Ｐ０および骨盤座標Ｐ２が決まると、背骨座標Ｐ１は、半径ｒ１、θ１によって決まる円周上の点となる。第２推定部１６４は、角度パラメータを変更しつつ、距離合計値Ｄを算出する。【００７３】
続いて、図１７を用いて、θによって決まるＰの座標算出例について説明する。【００７４】
第２推定部１６４は、Ｆ０、Ｆ１、Ｌ０、Ｌ１によりＯの座標（ｘ０，ｙ０，ｚ０）を式（４）に基づき算出する。ここで、Ｆ０の座標を（ｘＦ０，ｙＦ０，ｚＦ０）とし、Ｆ１の座標を（ｘＦ１，ｙＦ１，ｚＦ１）とする。また、Ｌ０とＬ１との長さは等しいものとする。【００７５】
【数４】
2017187641.tif 000006
【００７６】
第２推定部１６４は、式（５）に基づき、ｂの長さを算出する。また、第２推定部１６４は、式（６）に基づき、半径ｒを算出する。【００７７】
【数５】
2017187641.tif 000007
【００７８】
【数６】
2017187641.tif 000008
【００７９】
第２推定部１６４は、Ｏを通りｙ軸に平行な直線を、Ｏを通りＦ０Ｆ１に垂直な平面に正射影した直線上でのＯからの距離ｒの点をＰＡとする。第２推定部１６４は、ＯＰ、ＯＰＡ、ＯＦ１のベクトルをそれぞれ、式（７）に示すものとする。【００８０】
【数７】
2017187641.tif 000009
【００８１】
第２推定部１６４は、ＯＰ⊥ＯＦ１の関係より、式（８）を定義する。【００８２】
【数８】
2017187641.tif 000010
【００８３】
第２推定部１６４は、ＯＰＡとＯＰとの内積の関係より式（９）を定義する。【００８４】
【数９】
2017187641.tif 000011
【００８５】
第２推定部１６４は、ＯＰＡとＯＰとの外積より式（１０）を定義する。【００８６】
【数１０】
2017187641.tif 000012
【００８７】
第２推定部１６４は、式（５）、（６）、（７）、（８）より、Ｐ０の座標（ｘ，ｙ，ｚ）を算出する。第２推定部１６４は、Ｐ２の座標も同様にして算出する。【００８８】
第２推定部１６４は、上記処理を行うことで、第１領域３１に含まれる骨格の首Ｐ０、背骨Ｐ１、骨盤Ｐ２の座標を算出する。第２推定部１６４は、算出した首Ｐ０、背骨Ｐ１、骨盤Ｐ２の座標の情報を、出力部１６５に出力する。【００８９】
出力部１６５は、第１推定部１６３および第２推定部１６４から、第１領域３１、第２領域３２〜３３に含まれる骨格の認識結果の情報を取得し、取得した情報を出力する処理部である。例えば、骨格の認識結果の情報は、頭、首、背骨、骨盤、左手首、右手首、股関節、左足首、右足首、右肩、左肩、右股関節、左股関節、右肘関節、左肘関節、右膝関節、左膝関節の座標に対応する。【００９０】
出力部１６５は、骨格の認識結果の情報と、３Ｄセンサ１１０から取得した３次元データとを対応付けて出力しても良い。例えば、第２推定部１６４は、ｄを描画する色として（ｘ，ｙ，ｚ，ｄ）の形式で、３次元データと、骨格の認識結果の情報とを並べて出力する。描画する色ｄは、予め、ｄの数値と対応する色を定義しているものとする。また、出力部１６５は、骨格の認識結果の情報に従って、骨格の認識結果の情報を表示部１４０に表示しても良い。【００９１】
上述した特定部１６２、第１推定部１６３、第２推定部１６４は、所定フレーム毎に、上記処理を繰り返し実行し、所定フレームに対応する骨格の認識結果を生成する。出力部１６５は、識別番号と対応付けて、骨格の認識結果を、骨格データテーブル１５３に順次格納する。【００９２】
次に、本実施例１に係る骨格推定装置１００の処理手順の一例について説明する。図１８は、本実施例１に係る骨格推定装置の処理手順を示すフローチャートである。図１８に示すように、骨格推定装置１００の特定部１６２は、背景差分領域に含まれる観測点の情報を取得する（ステップＳ５０）。【００９３】
特定部１６２は、２値化処理を実行する（ステップＳ５１）。特定部１６２は、細線化処理を実行する（ステップＳ５２）。特定部１６２は、特徴点抽出処理を実行する（ステップＳ５３）。特定部１６２は、モデル照合処理を実行する（ステップＳ５４）。【００９４】
骨格推定装置１００の第１推定部１６３は、円柱主軸の決定処理を実行する（ステップＳ５５）。第１推定部１６３は、円柱半径および円柱中心の決定処理を実行する（ステップＳ５６）。第１推定部１６３は、リンク結合処理を実行する（ステップＳ５７）。骨格推定装置１００の第２推定部１６４は、胴体の骨格認識処理を実行する（ステップＳ５８）。骨格推定装置１００の出力部１６５は、骨格の認識結果を出力する（ステップＳ５９）。【００９５】
続いて、図１８のステップＳ５８に示した胴体の骨格認識処理の処理手順について説明する。図１９は、胴体の骨格認識処理の処理手順を示すフローチャートである。図１９に示すように、骨格推定装置１００の第２推定部１６４は、両肩、両股関節の座標、各関節間の長さを取得する（ステップＳ６１）。【００９６】
第２推定部１６４は、パラメータθ０を更新し（ステップＳ６２）、パラメータθ２を更新する（ステップＳ６３）。第２推定部１６４は、首座標Ｐ０を算出し（ステップＳ６４）、骨盤座標Ｐ２を算出する（ステップＳ６５）。第２推定部１６４は、首−骨盤間距離Ｐ０Ｐ２が首から骨盤までのリンク長合計よりも短いか否かを判定する（ステップＳ６６）。【００９７】
第２推定部１６４は、首−骨盤間距離Ｐ０Ｐ２が首から骨盤までのリンク長合計よりも短くない場合には（ステップＳ６６，Ｎｏ）、ステップＳ６３に移行する。一方、第２推定部１６４は、首−骨盤間距離Ｐ０Ｐ２が首から骨盤までのリンク長合計よりも短い場合には（ステップＳ６６，Ｙｅｓ）、ステップＳ６７に移行する。【００９８】
第２推定部１６４は、パラメータθ１を更新する（ステップＳ６７）。第２推定部１６４は、背骨座標Ｐ１を算出する（ステップＳ６８）。第２推定部１６４は、ＰＪの距離合計値Ｄを算出する（ステップＳ６９）。【００９９】
第２推定部１６４は、距離合計値Ｄが最小であるか否かを判定する（ステップＳ７０）。第２推定部１６４は、距離合計値Ｄが最小でない場合には（ステップＳ７０，Ｎｏ）、ステップＳ７２に移行する。一方、第２推定部１６４は、距離合計値Ｄが最小である場合には（ステップＳ７０，Ｙｅｓ）、ステップＳ７１に移行する。【０１００】
第２推定部１６４は、各θを保存する（ステップＳ７１）。例えば、距離合計値Ｄが最小となるθをθｍｉｎ＝（θ０，θ１，θ２）とする。【０１０１】
第２推定部１６４は、全てのθ１の選択が完了したか否かを判定する（ステップＳ７２）。第２推定部１６４は、全てのθ１の選択が完了していない場合には（ステップＳ７２，Ｎｏ）、ステップＳ６７に移行する。第２推定部１６４は、全てのθ１の選択が完了した場合には（ステップＳ７２，Ｙｅｓ）、ステップＳ７３に移行する。【０１０２】
第２推定部１６４は、全てのθ２の選択が完了したか否かを判定する（ステップＳ７３）。第２推定部１６４は、全てのθ２の選択が完了していない場合には（ステップＳ７３，Ｎｏ）、ステップＳ６３に移行する。第２推定部１６４は、全てのθ２の選択が完了した場合には（ステップＳ７３，Ｙｅｓ）、ステップＳ７４に移行する。【０１０３】
第２推定部１６４は、全てのθ０の選択が完了したか否かを判定する（ステップＳ７４）。第２推定部１６４は、全てのθ０の選択が完了していない場合には（ステップＳ７４，Ｎｏ）、ステップＳ６２に移行する。第２推定部１６４は、全てのθ０の選択が完了した場合には（ステップＳ７４，Ｙｅｓ）、ステップＳ７５に移行する。【０１０４】
第２推定部１６４は、θｍｉｎを用いて首Ｐ０、背骨Ｐ１、骨盤Ｐ２の座標を算出する（ステップＳ７５）。第２推定部１６４は、首Ｐ０、背骨Ｐ１、骨盤Ｐ２の座標を出力する（ステップＳ７６）。【０１０５】
次に、本実施例１に係る骨格推定装置１００の効果について説明する。骨格推定装置１００は、対象者の頭、両腕、胴体、両足の領域を大まかに特定し、両腕および両足の骨格の位置を認識した後に、両腕および両足の骨格の位置の認識結果を制約条件として、胴体の骨格を認識する。これにより、高速かつ正確に対象者の骨格を認識することができる。【０１０６】
例えば、骨格推定装置１００は、両腕および両足の骨格の座標と、関節間の長さを固定した状態で、角度パラメータを変化させることで、胴体の骨格の位置の候補を複数算出する。骨格推定装置１００は、胴体の骨格の位置の候補のうち、胴体概算座標に近い候補を、胴体の骨格の位置として推定する。両腕および両足の骨格の位置は、胴体と比較して、高速かつ正確に骨格の位置を推定できるので、両腕および両足の骨格の位置を先に求めて、胴体を算出する場合の制約条件に用いることで、胴体の骨格の位置を算出する際に、計算量を削減しつつ、精度を向上させることができる。【０１０７】
なお、第２推定部１６４は、両腕および両足の骨格の座標と、関節間の長さを固定した状態で、角度パラメータを変化させることで、胴体の骨格の位置の候補を複数算出する場合に、対象者のスケールにあわせて、関節間の長さを調整しても良い。このような処理を実行することで、より正確に、対象者の骨格を認識することができる。【０１０８】
次に、上記実施例に示した骨格推定装置１００のハードウェア構成の一例について説明する。図２０は、骨格推定装置のハードウェア構成の一例を示す図である。【０１０９】
図２０に示すように、コンピュータ１７０は、各種演算処理を実行するＣＰＵ１７１と、利用者からのデータの入力を受け付ける入力装置１７２と、ディスプレイ１７３を有する。また、コンピュータ１７０は、記憶媒体からプログラム等を読取る読み取り装置１７４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置１７５とを有する。コンピュータ１７０は、３Ｄセンサ１７６を有する。また、コンピュータ１７０は、各種情報を一時記憶するＲＡＭ１７７と、ハードディスク装置１７８を有する。そして、各装置１７１〜１７８は、バス１７９に接続される。【０１１０】
ハードディスク装置１７８は、特定プログラム１７８ａ、第１推定プログラム１７８ｂ、第２推定プログラム１７８ｃを有する。ＣＰＵ１７１は、各プログラム１７８ａ〜１７８ｃを読み出してＲＡＭ１７７に展開する。特定プログラム１７８ａは、特定プロセス１７７ａとして機能する。第１推定プログラム１７８ｂは、第１推定プロセス１７７ｂとして機能する。第２推定プログラム１７８ｃは、第２推定プロセス１７７ｃとして機能する。【０１１１】
例えば、特定プロセス１７７ａの処理は、特定部１６２の処理に対応する。第１推定プロセス１７７ｂの処理は、第１推定部１６３の処理に対応する。第２推定プロセス１７７ｃの処理は、第２推定部１６４の処理に対応する。【０１１２】
なお、各プログラム１７８ａ〜１７８ｃについては、必ずしも最初からハードディスク装置１７８に記憶させておかなくても良い。例えば、コンピュータ１７０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ１７０がこれらから各プログラム１７８ａ〜１７８ｃを読み出して実行するようにしてもよい。
【実施例２】
【０１１３】
実施例１において説明した骨格推定装置１００を利用したスキル判定装置の実施例２について説明する。スキル判定装置は、利用者の骨格の認識結果を基にして、利用者のモーションデータを抽出し、利用者のスキルを判定する装置である。【０１１４】
本実施例２に係るスキル判定装置の構成について説明する。図２１は、本実施例２に係るスキル判定装置の構成を示す機能ブロック図である。図２１に示すように、スキル判定装置１００Ａは、モーションセンサ１０ａ，１０ｂに接続される。スキル判定装置１００Ａは、センシング部１１０ａ，１１０ｂ、記憶部１２０Ａ、お手本データ生成部１３０Ａ、スキル判定定義部１４０Ａ、フェーズ判定部１５０Ａ、スキル判定部１６０Ａ、出力部１７０Ａを有する。【０１１５】
モーションセンサ１０ａ，１０ｂをまとめて、適宜、モーションセンサ１０と表記する。モーションセンサ１０は、人や物の動きを検知するセンサである。例えば、モーションセンサ１０は、人の特徴点の３次元座標を検知し、特徴点と３次元座標とを対応付けたセンシング情報を、スキル判定装置１００Ａに出力する。ここで、人の特徴点は、例えば、人の頭、首、背中、腰や、その他の関節部分に対応する。例えば、モーションセンサ１０ａ，１０ｂは、実施例１で説明した骨格推定装置１００の構成を有する。【０１１６】
モーションセンサ１０は、どのような従来技術を用いて、センシング情報を出力してもよい。例えば、モーションセンサ１０は、反射型のＭＡモーションセンサ、受光型の熱型センサに対応する。または、人に３軸加速度センサ、３軸ジャイロセンサを装着させて、センシング情報を抽出してもよい。【０１１７】
センシング部１１０ａは、専門家の指導を受ける利用者のセンシング情報をモーションセンサ１０から取得する処理部である。以下の説明において、専門家の指導を受ける利用者を単に利用者と表記する。センシング部１１０ａは、モーションセンサ１０からセンシング情報をフレームデータとして連続的に取得し、フェーズ判定部１５０Ａに出力する。【０１１８】
図２２は、フレームデータのデータ構造の一例を示す図である。図２２に示すように、フレームデータは連続的にセンシング部１１０ａによって取得され、フェーズ判定部１５０Ａに出力される。各フレームデータは、それぞれフレーム番号に対応付けられる。図示を省略するが、各フレームデータは、時刻情報に対応付けられ、時系列順に、フェーズ判定部１５０Ａに出力される。例えば、フレーム番号「１０２」のフレームデータ２０は、時刻「ｔ２」において、モーションセンサ１０に検出された利用者の特徴点の３次元座標を示す。【０１１９】
センシング部１１０ｂは、専門家のセンシング情報をモーションセンサ１０から取得する処理部である。センシング部１１０ｂは、モーションセンサ１０からセンシング情報をフレームデータを連続的に取得し、お手本データ生成部１３０Ａに出力する。専門家のフレームデータのデータ構造は、図２２に示したフレームデータのデータ構造と同じである。【０１２０】
以下では、説明の便宜上、専門家のモーションデータに含まれるフレームデータを、第１フレームデータと表記する。利用者のモーションデータに含まれるフレームデータを第２フレームデータと表記する。【０１２１】
記憶部１２０Ａは、お手本データ１２０ａおよびスキル判定定義データ１２０ｂを有する。記憶部１２０Ａは、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子やＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【０１２２】
お手本データ１２０ａは、第１フレームデータと、この第１フレームデータのフェーズの種別とをそれぞれ対応付ける情報である。お手本データ１２０ａは、フェーズ定義情報に対応する。例えば、フェーズの種別には、「ｓｔａｒｔ」、「ｂａｃｋｓｗｉｎｇ」、「ｔｏｐ」、「ｉｍｐａｃｔ」、「ｆｏｌｌｏｗ」、「ｅｎｄ」等が含まれる。お手本データ１２０ａは、後述するお手本データ生成部１３０Ａによって生成される。【０１２３】
図２３は、お手本データのデータ構造の一例を示す図である。図２３に示すように、このお手本データ１２０ａは、メタデータ３０Ａと、モーションデータ２０Ａとを含む。メタデータ３０Ａは、第１フレームデータのフレーム番号と、フェーズの種別とを対応付ける情報である。図２３に示すモーションデータ２０Ａは、複数の第１フレームデータを有する。【０１２４】
図２３のメタデータ３０Ａにおいて、領域３０ａは、フレーム番号「１００」の第１フレームデータのフレームの種別が「ｓｔａｒｔ」であることを定義する。領域３０ｂは、フレーム番号「１５０」の第１フレームデータのフレームの種別が「ｂａｃｋｓｗｉｎｇ」であることを定義する。領域３０ｃは、フレーム番号「２５０」の第１フレームデータのフレームの種別が「ｔｏｐ」であることを定義する。領域３０ｄは、フレーム番号「４５０」の第１フレームデータのフレームの種別が「ｅｎｄ」であることを定義する。【０１２５】
スキル判定定義データ１２０ｂは、複数の第２フレームデータに含まれる特徴点から導き出させる利用者の動作の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義する情報である。【０１２６】
図２４は、スキル判定定義データのデータ構造の一例を示す図である。図２５は、スキル判定定義データを補足説明するための図である。図２４に示すように、このスキル判定定義データ１２０ｂは、モジュール名と、スキル判定名と、パラメータ定義とを対応付ける。モジュール名は、後述するスキル判定部１６０Ａがスキルの判定を行う場合に利用するモジュール名である。スキル判定名は、スキルの判定名を定義したものである。パラメータ定義は、対象フェーズと、比較位置と、基準パラメータとを有する。ここで、スキルは、例えば、専門家がゴルフのスイング等を行う間の、一連の動作、姿勢、関節の角度を示すものである。例えば、スキル判定名の「頭の移動」は、スイングを行う間の専門家の頭の移動をスキルとして定義する。また、スキルの判定基準は、専門家の一連の動作、姿勢、関節の角度を基準とするものであり、利用者の一連の動作、姿勢、関節の角度がどの程度、専門家のものと比較して異なっているのかに応じて、評価が行われる。例えば、対象フェーズ、比較位置、基準パラメータの組が、スキルの判定基準に対応する。このスキルの判定基準を基にスキルを判定する処理については、後述する。【０１２７】
対象フェーズは、スキルの判定対象となるフェーズの種別を特定する情報である。比較位置は、比較する第２フレームデータの種別および特徴点の位置を定義する情報である。基準パラメータおよび基準値は、スキルの善し悪しを判定する場合に利用する数値である。【０１２８】
図２４において、モジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」、スキル判定名「頭の移動」のレコードについて説明する。この「頭の移動」のスキル判定は、ゴルフのドライバをスイングする間において、利用者の頭の移動の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｆｏｌｌｏｗ」であるため、判定対象となる第２フェーズの種別は図２５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ、ｆｏｌｌｏｗ」となる。【０１２９】
比較位置は「ｓｔａｒｔ：頭、ｃｕｒｒｅｎｔ：頭」である。このため、比較元の特徴点の位置は、フェーズの種別が「ｓｔｒａｔ」となる第２フレームデータのうち最初の第２フレームデータの頭の特徴点の位置となる。比較先の特徴点の位置は、現在の第２フレームデータの頭の特徴点の位置となる。【０１３０】
基準パラメータは「８、１０、２０」である。比較対象となる特徴点の位置の差が「８ｃｍ未満」の場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。比較対象となる特徴点の位置の差が「８ｃｍ以上、１０ｃｍ未満」の場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。比較対象となる特徴点の位置の差が「１０ｃｍ以上、２０ｃｍ未満」の場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【０１３１】
続いて、モジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」、スキル判定名「左肘角度」のレコードについて説明する。この「左肘角度」のスキル判定は、ドライバをスイングする間において、利用者の左肘角度の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｉｍｐａｃｔ」である。判定対象となる第２フェーズの種別は図２５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ」となる。【０１３２】
比較位置は「ｃｕｒｒｅｎｔ：左肩、ｃｕｒｒｅｎｔ：左肘、ｃｕｒｒｅｎｔ：左手首」である。このため、現在の第２フレームデータの左肩の特徴点および左肘の特徴点を通る線分と、左肘の特徴点および左手首の特徴点を通る直線とのなす角度が、判定対象となる。【０１３３】
基準パラメータは「（１３５−１８０）、（１３０−１３５、１８０−１９０）、（１１０−１３０、１９０−２００）」である。なす角度が「１３５−１８０」に含まれる場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。なす角度が「１３０−１３５、１８０−１９０」に含まれる場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。なす角度が「１１０−１３０、１９０−２００」に含まれる場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【０１３４】
続いて、モジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」、スキル判定名「前傾姿勢」のレコードについて説明する。この「前傾姿勢」のスキル判定は、ドライバをスイングする間において、利用者の前傾姿勢の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｉｍｐａｃｔ」である。判定対象となる第２フェーズの種別は図２５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ」となる。【０１３５】
比較位置は「ｃｕｒｒｅｎｔ：頭、ｃｕｒｒｅｎｔ：腰」である。このため、現在の第２フレームデータの頭の特徴点および腰の特徴点を通る線分と垂線とのなす角度が、判定対象となる。【０１３６】
基準パラメータは「（２５−４０）、（２０−２５、４０−５５）、（８−２０、５５−６０）」である。なす角が「２５−４０」に含まれる場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。なす角が「２０−２５、４０−５５」である場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。なす角が「８−２０、５５−６０」である場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【０１３７】
図２１の説明に戻る。お手本データ生成部１３０Ａは、センシング部１１０ｂから専門家のモーションデータを取得し、お手本データ１２０ａを生成する処理部である。お手本データ生成部１３０Ａは、生成したお手本データ１２０ａを記憶部１２０Ａに保存する。【０１３８】
例えば、お手本データ生成部１３０Ａは、専門家のモーションデータに含まれる第１フレームデータを表示装置に表示させ、どの第１フレームデータがどのフェーズの種別に対応するのかを、入力装置から受け付ける。ここでは、表示装置および入力装置の図示を省略する。【０１３９】
専門家は、入力装置を操作して、第１フレームデータとフェーズの種別との関係を、お手本データ生成部１３０Ａに入力する。お手本データ生成部１３０Ａは、入力装置から受け付けた情報を基にして、第１フレームデータのフレーム番号と、フェーズの種別を対応付けて、図２３に示したメタデータ３０Ａを生成する。お手本データ生成部１３０Ａは、メタデータ３０Ａと、モーションデータ２０Ａとを有するお手本データ１２０ａを、記憶部１２０Ａに保存する。【０１４０】
スキル判定定義部１４０Ａは、スキル判定定義データ１２０ｂを生成する処理部である。スキル判定定義部１４０Ａは、生成したスキル判定定義データ１２０ｂを記憶部１２０Ａに保存する。【０１４１】
例えば、スキル判定定義部１４０Ａは、スキル判定定義の設定画面を、表示装置に表示させ、スキル判定定義に関する情報を、入力装置から受け付ける。専門家は、入力装置を操作して、スキル判定定義に関する情報を入力する。スキル判定定義部１４０Ａは、スキル判定定義に関する情報を基にして、スキル判定定義データ１２０ｂを生成し、記憶部１２０Ａに保存する。【０１４２】
図２６は、表示装置に表示される表示画面の一例を示す図である。表示画面５０には、お手本データ生成部１３０Ａが表示させるフェーズ設定画面５０ａと、スキル判定定義部１４０Ａが表示させるスキル設定画面５０ｂが含まれる。また、表示画面５０には、専門家のモーションデータを表示する再生画面５０ｃと、現在の第１フレームデータのフレーム番号表示画面５０ｄとを表示してもよい。【０１４３】
専門家は、入力装置を操作して、再生画面５０ｃとフレーム番号表示画面５０ｄとを参照しつつ、フェーズ設定画面５０ａに、フレーム番号と、フェーズの種別との対応関係を入力する。例えば、お手本データ生成部１３０Ａは、フェーズ設定画面５０ａに入力された情報を基にして、お手本データ１２０ａを生成する。【０１４４】
専門家は、入力装置を操作して、スキル設定画面５０ｂのいずれかのチェッカー名を選択する。以下の説明では、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」、「ＡｎｇｌｅＣｈｅｋｅｒ（１）」、「ＡｎｇｌｅＣｈｅｋｅｒ（２）」が選択された場合に表示されるパラメータ設定画面の一例についてそれぞれ説明する。【０１４５】
図２７は、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のパラメータ設定画面の一例を示す図である。図２７に示すように、パラメータ設定画面６０には、判定対象を定義する領域６１と、判定基準を定義する領域６２が含まれる。また、領域６１には、比較元を定義する領域６１ａ、比較先を定義する領域６１ｂ、対象区間を定義する領域６１ｃが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【０１４６】
図２７に示す例では、比較元を定義する領域６１ａには、比較元の特徴点の位置が、フェーズの種別が「ｓｔａｒｔ」となる第２フレームデータのうち最初の第２フレームデータの頭の特徴点の位置であることが定義されている。比較先を定義する領域６１ｂには、比較先の特徴点の位置が、現在の第２フレームデータの頭の特徴点の位置であることが定義されている。対象区間を定義する領域６１ｃには、対象フェーズが「ｓｔａｒｔ−ｆｏｌｌｏｗ」であることが定義されている。判定基準を定義する領域６２には、基準パラメータは「８、１０、２０」である旨が定義されている。【０１４７】
例えば、図２７に入力された情報を基にして、スキル判定定義部１４０Ａは、図２４のモジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」に対応するレコードを生成する。【０１４８】
図２８は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」のパラメータ設定画面の一例を示す図である。パラメータ設定画面７０には、判定対象を定義する領域７１と、判定基準を定義する領域７２が含まれる。また、領域７１には、比較対象の特徴点を定義する領域７１ａ、対象区間を定義する領域７１ｂが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【０１４９】
図２８に示す例では、比較対象の特徴点を定義する領域７１ａには、現在の第２フレームデータの左肩の特徴点および左肘の特徴点を通る線分と、左肘の特徴点および左手首の特徴点を通る直線とのなす角度が、判定対象であることが定義されている。対象区間を定義する領域７１ｂには、対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であることが定義されている。判定基準を定義する領域７２には、各種の基準パラメータが定義されている。【０１５０】
例えば、図２８に入力された情報を基にして、スキル判定定義部１４０Ａは、図２４のモジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」に対応するレコードを生成する。【０１５１】
図２９は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」のパラメータ設定画面の一例を示す図である。パラメータ設定画面８０には、判定対象を定義する領域８１と、判定基準を定義する領域８２が含まれる。また、領域８１には、垂線を定義する領域８１ａ、比較対象の特徴点を定義する領域８１ｂ、対象区間を定義する領域８１ｃが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【０１５２】
図２９に示す例では、垂線を定義する領域８１ａには、垂線の始点と終点の３次元座標が定義されている。比較対象の特徴点を定義する領域８１ｂには、現在の第２フレームデータの頭の特徴点および腰の特徴点を通る線分が定義されている。対象区間を定義する領域８１ｃには、対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であることが定義されている。判定基準を定義する領域８２には、各種の基準パラメータが定義されている。【０１５３】
例えば、図２９に入力された情報を基にして、スキル判定定義部１４０Ａは、図２４のモジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」に対応するレコードを生成する。【０１５４】
図２１の説明に戻る。フェーズ判定部１５０Ａは、お手本データ１２０ａに含まれる各第１フレームデータと、利用者の第２フレームデータとを比較して、第２フレームデータに対応するフェーズの種別を判定する処理部である。フェーズ判定部１５０Ａは、判定したフェーズの種別を取得したフレームデータに付与し、スキル判定部１６０Ａに出力する。【０１５５】
以下において、フェーズ判定部１５０Ａの処理の一例を具体的に説明する。フェーズ判定部１５０Ａは、利用者の第２フレームデータをメモリに保存し、補正処理、特徴量計算、フレームマッチングを順に実行する。【０１５６】
フェーズ判定部１５０Ａが実行する補正処理の一例について説明する。フェーズ判定部１５０Ａは、第２フレームデータの縦軸補正を行う。例えば、モーションセンサ１０が、設置型センサの場合には、設置位置や設置角度が前回の環境と異なる場合があり、設置環境に合わせて第２フレームデータの縦軸を補正する。例えば、フェーズ判定部１５０Ａは、第２フレームデータを表示装置に表示させて、利用者からの補正情報の入力を受け付け、第２フレームデータの縦軸を垂線に対応させる。また、フェーズ判定部１５０Ａは、利用者の向きが正面の向きとなるように合わせて補正してもよい。フェーズ判定部１５０Ａは、補正情報の入力を受け付けた後は、係る補正情報を利用して、残りの第２フレームデータの縦軸補正や向きの補正を行ってもよい。【０１５７】
フェーズ判定部１５０Ａは、第２フレームデータの特徴点の位置のばらつきを押さえるための補正処理も合わせて実行する。例えば、フェーズ判定部１５０Ａは、前後の第２フレームデータの特徴点の位置の平均値を、間の第２フレームデータの特徴点の位置とすることで、ばらつきを押さえる。また、フェーズ判定部１５０Ａは、ローパスフィルタを用いて、第２フレームデータに含まれるノイズ成分を取り除いてもよい。【０１５８】
フェーズ判定部１５０Ａが実行する特徴量計算の一例について説明する。本実施例１では、一例として、第２フレームデータに含まれる各関節に対する特徴点の３次元座標を、特徴量としてそれぞれ算出するものとする。【０１５９】
フェーズ判定部１５０Ａが実行するその他の特徴量計算の一例について説明する。各スポーツ固有のスイングを特徴付ける関節をピックアップする場合において、フェーズ判定部１５０Ａは、手や腰、指等の３次元座標や速度・加速度を特徴量として計算してもよい。【０１６０】
各スポーツ固有ではない汎用的なデータを特徴量とする場合に、フェーズ判定部１５０Ａは、全関節の３次元座標や速度・加速度を特徴量として計算してもよい。また、フェーズ判定部１５０Ａは、全関節位置の重心位置等を特徴量として計算してもよい。【０１６１】
フェーズ判定部１５０Ａが実行するフレームマッチングの一例について説明する。図３０は、フレームマッチングの一例を説明するための図である。図３０に示す例では、現在の第２フレームデータを、第２フレームデータＳ０とする。また、お手本データ１２０ａに含まれる各第１フレームデータをそれぞれ、第１フレームデータｔ１〜ｔ６とする。フェーズ判定部１５０Ａは、式（１１）を基にして、第２フレームデータＳ０と、第１フレームデータｔ１〜ｔ６とについて、関節の特徴点毎の距離の平均値をそれぞれ算出する。以下の説明では、関節の特徴点毎の距離の平均値を、「関節平均距離」と表記する。【０１６２】
【数１１】
2017187641.tif 000013
【０１６３】
式（１１）について、ｘＳ０ｊ、ｙＳ０ｊ、ｚＳ０ｊは、第２フレームデータのある関節（ｊの数値に対応する関節）の特徴点の３次元座標である。ｘｔｉｊ、ｙｔｉｊ、ｚｔｉｊは、第１フレームデータｔｉのある関節（ｊの数値に対応する関節）の特徴点の３次元座標である。ｎは、関節の特徴点の数である。フェーズ判定部１５０Ａは、式（１１）によって算出される各関節平均距離のうち、かかる関節平均距離が最小となる第２フレームデータＳ０と第１フレームデータとの組を特定する。【０１６４】
図３０に示す例では、第２フレームデータＳ０と第１フレームデータｔ２との組における関節平均距離が最小となるため、フェーズ判定部１５０Ａは、第２フレームデータＳ０に対応する第１フレームデータを、第１フレームデータｔ２として判定する。また、フェーズ判定部１５０Ａは、第２フレームデータＳ０のフェーズの種別を、第１フレームデータｔ２に対応するフェーズの種別として判定する。【０１６５】
ところで、フェーズ判定部１５０Ａは、式（１１）を用いて関節平均距離を算出する場合に、重みを用いて、関節平均距離の値を補正する。例えば、フェーズ判定部１５０Ａは、関節平均距離を重みで除算することで、関節平均距離を補正してもよい。図３１は、重みを説明するための図である。図３１において、横軸は、第１フレームデータのフレーム番号に対応し、縦軸は重みに対応する。例えば、各フレーム番号に対応する重みの合計を１とする。【０１６６】
例えば、第２フレームデータＳ０がマッチする第１フレームデータは、その前の第２フレームデータＳ−１がマッチした第１フレームデータの近くの第１フレームデータである可能性が高い。例えば、第２フレームデータＳ−１がマッチした第１フレームデータを第１フレームデータｔ４とすると、第２フレームデータＳ０がマッチする第１フレームデータは、第１フレームデータｔ４の後でかつ、近くの第１フレームデータである可能性が高い。【０１６７】
このため、前の第２フレームデータＳ−１がマッチした第１フレームデータよりも後の第１フレームで、マッチした第１フレームデータに近い第１フレームデータほど、重みを大きくする。また、マッチした第１フレームデータの近くでも、マッチした第１フレームデータの前のフレームでは、可能性が低いため、重みを小さくする。【０１６８】
式（１１）で算出した関節平均距離の値を重みで補正することにより、マッチングする第１フレームデータが前後したり、ジャンプすることを防止することができる。【０１６９】
フェーズ判定部１５０Ａは、他の第２フレームデータに対しても上記処理を繰り返し実行することで、各第２フレームデータに対応する第１フレームデータを判定し、各第２フレームデータのフェーズの種別を判定する。フェーズ判定部１５０Ａは、第２フレームデータのうち、フェーズの種別がｓｔａｒｔからｅｎｄまでの第２フレームデータを抽出し、モーションデータとしてファイルに保存し、出力部１７０Ａに出力する。【０１７０】
スキル判定部１６０Ａは、スキル判定定義データ１２０ｂと、フェーズの種別毎に抽出された第２フレームデータに含まれる特徴点から導き出される利用者の動作、姿勢、関節の特徴量とを基にして、フェーズの種別毎に、利用者のスキルを判定する処理部である。【０１７１】
スキル判定部１６０Ａの処理の一例について説明する。スキル判定部１６０Ａは、スキル判定定義データ１２０ｂを参照し、判定モジュールを生成する。例えば、図２４に示す例では、スキル判定部１６０Ａは、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュールを生成する。【０１７２】
スキル判定部１６０Ａは、フェーズ判定部１５０Ａから受け付けた第２フレームデータを、この第２フレームデータに対応するフェーズの種別と、スキル判定定義データ１２０ｂに基づき、対応するモジュールに第２フレームデータを出力する。モジュールは、第２フレームデータを受け付けると、スキル判定定義データ１２０ｂに定義されたデータを基にして、利用者のスキル判定の結果を出力する。【０１７３】
図３２および図３３は、スキル判定部の処理を説明するための図である。図３２について説明する。スキル判定部１６０Ａは、フェーズの種別が「ｓｔａｒｔ」の第２フレームデータＳ０を取得する。図２４で示したように、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」の対象フェーズが「ｓｔａｒｔ−ｆｏｌｌｏｗ」であるため、スキル判定部１６０Ａは、第２フレームデータＳ０を「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａに出力する。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の３次元座標を保存する。【０１７４】
図２４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０Ａは、第２フレームデータＳ０を「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂに出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、比較位置と基準パラメータに基づき、第２フレームデータＳ０を評価することで、利用者のスキル判定を行い、判定結果を出力する。【０１７５】
例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３５−１８０」に含まれる場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３０−１３５、１８０−１９０」に含まれる場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１１０−１３０、１９０−２００」に含まれる場合に、判定結果「悪い（Ｂａｄ）」を出力する。【０１７６】
なお、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、判定結果とは別に、コメントを出力してもよい。例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３０−１３５」に含まれる場合に、コメント「曲げ気味」を出力し、なす角が「１８０−１９０」に含まれる場合に、コメント「伸ばし気味」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１１０−１３０」に含まれる場合に、コメント「曲げすぎ」を出力し、なす角が「１９０−２００」に含まれる場合に、コメント「伸ばしすぎ」を出力する。【０１７７】
図２４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０Ａは、第２フレームデータＳ０を「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃに出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、比較位置と基準パラメータに基づき、第２フレームデータＳ０を評価することで、利用者のスキル判定を行い、判定結果を出力する。【０１７８】
例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２５−４０」に含まれる場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２０−２５、４０−５５」である場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「８−２０、５５−６０」である場合に、判定結果「悪い（Ｂａｄ）」を出力する。【０１７９】
なお、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、判定結果とは別に、コメントを出力してもよい。例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２０−２５」に含まれる場合に、コメント「立ち気味」を出力し、なす角が「４０−５５」に含まれる場合に、コメント「かがみ気味」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「８−２０」に含まれる場合に、コメント「立ちすぎ」を出力し、なす角が「５５−６０」に含まれる場合に、コメント「かがみすぎ」を出力する。【０１８０】
続いて、図３３について説明する。スキル判定部１６０Ａは、フェーズの種別が「ｆｏｌｌｏｗ」の第２フレームデータＳｍを取得する。図２４で説明したように、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」の対象フェーズが「ｓｔａｒｔ−ｆｏｌｌｏｗ」であるため、スキル判定部１６０Ａは、第２フレームデータＳｍを「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａに出力する。【０１８１】
「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、比較位置と基準パラメータに基づき、第２フレームデータＳｍを評価することで、利用者のスキル判定を行い、判定結果を出力する。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「８ｃｍ未満」の場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「８ｃｍ以上、１０ｃｍ未満」の場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「１０ｃｍ以上、２０ｃｍ未満」の場合に、判定結果「悪い（Ｂａｄ）」を出力する。【０１８２】
「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、判定結果とは別に、コメントを出力してもよい。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「１０ｃｍ」以上である場合に、コメント「動きすぎ」を出力する。【０１８３】
なお、図２４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０Ａは、第２フレームデータＳｍを「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂに出力しない。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０Ａは、第２フレームデータＳｍを「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃに出力しない。なお、スキル判定部１６０Ａが、第２フレームデータを各モジュールに出力し、モジュールが、第２フレームデータを処理するか否かを個別に判定してもよい。【０１８４】
スキル判定部１６０Ａは、各モジュールの判定結果と、第２フレームデータとを対応付けた判定結果の情報とを、出力部１７０Ａに出力する。【０１８５】
出力部１７０Ａは、画像情報、音声情報または利用者に対する肉体的な刺激によって、スキル判定部１６０Ａの判定結果を出力する処理部である。以下において、出力部１７０Ａの処理の一例について説明する。【０１８６】
出力部１７０Ａが、スキル判定部１６０Ａの判定結果を基にして生成する表示画面について説明する。図３４は、出力部が生成する表示画面の一例を示す図（１）である。図３４に示すように、この表示画面２００には、自データ画面２００ａと、手本データ画面２００ｂと、スキル判定画面２００ｃとが含まれる。【０１８７】
出力部１７０Ａは、自データ画面２００ａに、スキル判定部１６０Ａから取得する利用者の第２フレームデータを表示させる。また、出力部１７０Ａは、第２フレームデータの各特徴点と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。図３４に示す例では、出力部１７０Ａは、特徴点の頭にヘッド移動（１１ｃｍ、動きすぎ）を表示させる。出力部１７０Ａは、特徴点の左肩に左肘角度（１５４°）を表示させる。【０１８８】
出力部１７０Ａは、手本データ画面２００ｂに、お手本データ１２０ａの第１フレームデータを表示させる。例えば、出力部１７０Ａは、第１フレームデータのフェーズの種別を、自データ画面２００ａに表示させている第２フレームデータのフェーズの種別に対応させる。また、出力部１７０Ａは、第１フレームデータの各特徴点と、動き、姿勢、関節の特徴量とを対応付けて表示させてもよい。図３４に示す例では、出力部１７０Ａは、特徴点の頭にヘッド移動（９ｃｍ）を表示させる。出力部１７０Ａは、特徴点の左肩に左肘角度（１５５°）を表示させる。【０１８９】
出力部１７０Ａは、スキル判定部１６０Ａから取得するスキルの判定結果を、スキル判定画面２００ｃに表示させる。例えば、出力部１７０Ａは、スキル判定名と、判定結果と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。【０１９０】
出力部１７０Ａは、図３４の表示画面を各第２フレームデータが取得されるたびに、２００ａ，２００ｂ、２００ｃをリアルタイムに更新してもよい。また、フェーズ種別が「Ｅｎｄ」を判定後に、ｓｔａｒｔ−ｅｎｄまでのフレームデータを本画面と同様な画面で再生してもよい。【０１９１】
また、出力部１７０Ａは、図３４の表示画面２００の自データ画面２００ａにおいて、第２フレームデータのフェーズを順に変化させ、それに合わせて、手本データ画面２００ｂ、スキル判定画面２００ｃの内容を切り替える処理を行ってもよい。【０１９２】
出力部１７０Ａは、各フェーズの種別と、第２フレームデータと、判定結果とを対応付けて表示画面を生成してもよい。図３５は、出力部が生成する表示画面の一例を示す図（２）である。図３５の表示画面２１０に示すように、出力部１７０Ａは、各フェーズの種別の第２フレームデータと、判定結果とを対応付けて表示する。例えば、出力部１７０Ａは、スキル判定名と、判定結果と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。また、出力部１７０Ａは、３Ｄの骨格情報に加えて、画像情報を合わせて表示させてもよい。【０１９３】
続いて、出力部１７０Ａが判定結果を基にして、音声情報を出力する場合の処理について説明する。出力部１７０Ａは、スキル判定部１６０Ａから出力される判定結果に合わせて、スキル結果や直すべきポイントを音声で出力させてもよい。例えば、出力部１７０Ａは、ヘッド移動に関する判定結果がＢａｄである場合には、「頭が動きすぎです」という音声を出力させる。どの判定結果に対してどの音声を出力するのかは、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０Ａは音声を出力する。【０１９４】
続いて、出力部１７０Ａが利用者に対する肉体的な刺激によって、判定結果を通知する場合の処理について説明する。利用者は、小型モータを含む装備を装着し、出力部１７０Ａは、判定結果に合わせて小型モータを動作させる。例えば、出力部１７０Ａは、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、小型モータの回転数を変化させる。判定結果に対する小型モータの回転数は、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０Ａは小型モータを回転させる。【０１９５】
利用者は、ペルチェ素子等の冷却デバイスを装着し、出力部１７０Ａは、判定結果に合わせて冷却デバイスを冷却させる。例えば、出力部１７０Ａは、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、冷却デバイスの温度を変化させる。判定結果に対する冷却デバイスの温度は、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０Ａは冷却デバイスを制御する。【０１９６】
利用者は、低周波電流の流れるデバイスを装着し、出力部１７０Ａは、判定結果に合わせてデバイスに電流を発生させる。例えば、出力部１７０Ａは、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、電流の大きさを変化させる。判定結果に対する電流の大きさは、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０Ａはデバイスを制御する。【０１９７】
更に、出力部１７０Ａは、パワードスーツや人工筋肉を利用者に装着させ、専門家のモーションデータに合わせてパワードスーツや人工筋肉を動かすことで、利用者に専門家の動きを体感させてもよい。【０１９８】
次に、本実施例に係るスキル判定装置１００Ａの処理手順について説明する。図３６は、スキル判定装置の処理手順を示すフローチャートである。図３６に示すように、スキル判定装置１００Ａのフェーズ判定部１５０Ａは、お手本データ１２０ａを読み込む（ステップＳ１０１）。スキル判定装置１００Ａのスキル判定部１６０Ａは、スキル判定定義データ１２０ｂを読み込む（ステップＳ１０２）。【０１９９】
スキル判定部１６０Ａは、スキル判定定義データ１２０ｂに基づいて、モジュールを生成し、パラメータをセットする（ステップＳ１０３）。フェーズ判定部１５０Ａは、利用者のモーションデータの取得を開始する（ステップＳ１０４）。スキル判定装置１００Ａは、入力装置を介して、終了イベントを検知したか否かを判定する（ステップＳ１０５）。【０２００】
スキル判定装置１００Ａは、入力装置を介して、終了イベントを検知した場合には（ステップＳ１０５，Ｙｅｓ）、フェーズ判定部１５０Ａが利用者のモーションデータ取得終了処理を実行する（ステップＳ１０６）。【０２０１】
一方、スキル判定装置１００Ａは、入力装置を介して、終了イベントを検知していない場合には（ステップＳ１０５，Ｎｏ）、入力装置を介して、スキル判定処理のイベントを検知したか否かを判定する（ステップＳ１０７）。スキル判定装置１００Ａは、入力装置を介して、スキル判定処理のイベントを検知した場合には（ステップＳ１０７，Ｙｅｓ）、スキル判定部１６０Ａがスキル判定処理を実行し（ステップＳ１０８）、ステップＳ１０５に移行する。なお、スキル判定処理のイベントは、センシング部１１０ａがモーションセンサからフレームデータ取得時に発生するイベントである。【０２０２】
一方、スキル判定装置１００Ａは、入力装置を介して、再生処理のイベントを検知していない場合には（ステップＳ１０７，Ｎｏ）、スキル判定装置１００Ａの出力部１７０Ａが再生処理を実行し（ステップＳ１０９）、ステップＳ１０５に移行する。【０２０３】
次に、ステップＳ１０８に示したスキル判定処理の処理手順について説明する。図３７は、スキル判定処理の処理手順を示すフローチャートである。図３７に示すように、スキル判定装置１００Ａのフェーズ判定部１５０Ａは、第２フレームデータをメモリに保存する（ステップＳ２０１）。フェーズ判定部１５０Ａは、第２フレームデータを補正する（ステップＳ２０２）。【０２０４】
フェーズ判定部１５０Ａは、第２フレームデータの特徴量を計算する（ステップＳ２０３）。フェーズ判定部１５０Ａは、お手本データ１２０ａの中から第２フレームデータと一番特徴量の近い第１フレームデータを抽出する（ステップＳ２０４）。フェーズ判定部１５０Ａは、第１フレームデータに対応するフェーズの種別を抽出し、抽出したフェーズの種別を第２フレームデータに付与する（ステップＳ２０５）。なお、フェーズの種別とは、図２６の５０ａに示すように「ｓｔａｒｔ」,「ｂａｃｋｓｗｉｎｇ」等のフレーム番号に１対１に対応するフェーズ種別だけでなく、「ｓｔａｒｔ」から「ｂａｃｋｓｗｉｎｇ」の間にあるフェーズを表すフェーズ種別も含む。【０２０５】
フェーズ判定部１５０Ａは、抽出したフェーズの種別がＳｔａｒｔからＥｎｄ内であるかを判定する（ステップＳ２０６）。フェーズ判定部１５０Ａは、フェーズの種別がｓｔａｒｔからＥｎｄ内でない場合には（ステップＳ２０６，Ｎｏ）、Ｓ２０１において格納した第２フレームデータをメモリから削除し（ステップＳ２１３）、スキル判定処理を終了する。【０２０６】
一方、フェーズの種別がｓｔａｒｔからＥｎｄ内である場合には（ステップＳ２０６，Ｙｅｓ）、スキル判定部１６０Ａは、フェーズの種別に対応するモジュールに対して、第２フレームデータを出力し、スキルを判定する（ステップＳ２０７）。出力部１７０Ａは、判定結果を出力する（ステップＳ２０８）。【０２０７】
フェーズ判定部１５０Ａは、抽出したフェーズの種別がＥｎｄであるか否かを判定する（ステップＳ２０９）。フェーズ判定部１５０Ａは、抽出したフェーズの種別がＥｎｄでない場合には（ステップＳ２０９，Ｎｏ）、スキル判定処理を終了する。【０２０８】
一方、フェーズ判定部１５０Ａは、抽出したフェーズの種別がＥｎｄである場合には（ステップＳ２０９，Ｙｅｓ）、ステップＳ２１０に移行する。フェーズ判定部１５０Ａは、メモリに保存された第２フレームデータの中からフェーズの種別がＳｔａｒｔからＥｎｄまでの一連の第２フレームデータを抽出し、モーションデータとしてファイルに保存する（ステップＳ２１０）。出力部１７０Ａは、一連のモーションデータの判定結果を出力し（ステップＳ２１１）、Ｓ２０１において格納した第２フレームデータをメモリから削除し（ステップＳ２１２）、スキル判定処理を終了する。【０２０９】
次に、お手本データ生成部１３０Ａおよびスキル判定定義部１４０Ａが実行する設定処理の処理手順について説明する。図３８は、設定処理の処理手順を示すフローチャートである。図３８に示すように、スキル判定装置１００Ａは、イベント検知したか否かを判定する（ステップＳ３０１）。スキル判定装置１００Ａは、イベント検知していない場合には（ステップＳ３０１，Ｎｏ）、再度ステップＳ３０１に移行する。【０２１０】
スキル判定装置１００Ａは、モーションデータ取得選択のイベントを検知した場合には（ステップＳ３０１，モーションデータ取得選択）ステップＳ３０２に移行する。お手本データ生成部１３０Ａまたはスキル判定定義部１４０Ａは、モーションデータを取得してメモリに保存し（ステップＳ３０２）、ステップＳ３０１に移行する。【０２１１】
スキル判定装置１００Ａは、フェーズ設定選択のイベントを検知した場合には（ステップＳ３０１、フェーズ設定選択）、ステップＳ３０３に移行する。お手本データ生成部１３０Ａは、フェーズの種別とフレーム番号とをメモリに保存し（ステップＳ３０３）、ステップＳ３０１に移行する。【０２１２】
スキル判定装置１００Ａは、スキル判定定義選択のイベントを検知した場合には（ステップＳ３０１，スキル判定定義選択）、ステップＳ３０４に移行する。スキル判定定義部１４０Ａは、利用するモジュール名、スキル判定名、パラメータ定義をメモリに保存し（ステップＳ３０４）、ステップＳ３０１に移行する。【０２１３】
スキル判定装置１００Ａは、保存選択のイベントを検知した場合には（ステップＳ３０１，保存選択）、お手本データ生成部１３０Ａは、メモリに保存されたモーションデータおよびフェーズの種別、フレーム番号の対応関係をファイルに出力する（ステップＳ３０５）。スキル判定定義部１４０Ａは、メモリに保存されたスキル判定定義データ１２０ｂをファイルに出力し（ステップＳ３０６）、ステップＳ３０１に移行する。【０２１４】
次に、本実施例に係るスキル判定装置１００Ａの効果について説明する。スキル判定装置１００Ａは、フェーズの種別毎に対応する第２フレームデータを利用者のモーションデータから抽出し、スキル判定定義データ１２０ｂを基にして、フェーズの種別毎の第２フレームデータに対して利用者のスキルを判定する。このため、スキル判定装置１００Ａによれば、汎用的に、利用者のスキルを自動で判定することができる。【０２１５】
例えば、スキル判定定義部１４０Ａは、入力装置からの情報を基にして、スキル判定を行うスキル判定定義データ１２０ｂを適宜更新し、スキル判定部１６０Ａは、係るスキル判定定義データ１２０ｂを基にして、スキル判定を行う。従来技術では、スキル判定のためのロジックが埋め込まれているため、スキル判定対象が固定されているが、スキル判定定義部１４０Ａにより適宜、スキル判定定義データ１２０ｂを更新可能であるため、汎用性を高めることができる。また、スキル判定定義データ１２０ｂは、モジュールおよびパラメータ定義の組み合わせで定義されるものであるため、他の対象で定義したモジュール、パラメータ定義を別対象に再利用することが容易である。【０２１６】
また、スキル判定装置１００Ａは、スキルの判定結果を利用者のモーションデータと専門家のモーションデータとを対応付けて、表示画面に表示する。これにより、専門家がそばにいなくても、利用者自身で改善すべき点が分かる。また、画面をいちいち気にしないで、スイングを行った後からプレイバックして改善点を把握することができる。また、利用者自身と専門家との差を比較して、スキル向上に役立てることができる。また、利用者の第２フレームデータは、フェーズの種別と対応付けて管理されるため、解析などを行う場合の取り扱いを容易にすることができる。【０２１７】
スキル判定装置１００Ａは、お手本データ１２０ａと、利用者のモーションデータに含まれる各第２フレームデータとを比較して、第２フレームデータに対応するフェーズの種別を判定し、フェーズの種別毎に第２フレームデータを抽出する。例えば、スキル判定装置１００Ａは、各第１フレームデータと第２フレームデータとの類似度から、第２フレームデータに対応する第１フレームデータを特定し、係る第１フレームデータに対応するフェーズの種別を、第２フレームデータの種別と判定する。このため、利用者の第２フレームデータの種別を精度よく判定することができ、スキル判定精度を向上させることができる。【０２１８】
スキル判定装置１００Ａは、マッチングを行う場合に、第１フレームデータと第２フレームデータの類似度を重みで補正する。この重みは、前回選択した第１フレームデータの時刻と、今回類似度の算出対象となる第１フレームデータの時刻に基づいて、図３１により決定されるものである。これにより、第２フレームデータとマッチングする第１フレームデータが前後したり、ジャンプすることを防止することができる。【０２１９】
スキル判定装置１００Ａは、画像情報、音声情報または利用者に対する肉体的な刺激によって、スキルの判定結果を出力する。これにより、利用者のスキルアップを様々な通知方法によって支援することができる。【０２２０】
ところで、上述したスキル判定装置１００Ａの処理は一例である。以下では、スキル判定装置１００Ａが実行するその他の処理について説明する。【０２２１】
例えば、スキル判定装置１００Ａの機能をネットワーク上のサーバに持たせてもよい。サーバは、利用者や専門家の端末装置からモーションデータを取得して、蓄積する。また、サーバは、お手本データ１２０ａ、スキル判定定義データ１２０ｂを保存しておく。サーバは、利用者の端末装置からアクセスを受け付けた場合には、端末装置のＷｅｂ画面上に、モーションデータやスキルの判定結果を表示させる。【０２２２】
スキル判定定義部１４０Ａは、入力装置からの入力を受け付けてスキル判定定義データ１２０ｂを生成していたが、お手本データ１２０ａを基にして、自動的にスキル判定データ１２０ｂを生成してもよい。例えば、スキル判定定義部１４０Ａは、お手本データ１２０ａを解析し、スキル判定の該当パラメータの平均値等の統計処理を行った結果を、スキル判定定義データ１２０ｂに設定する。例えば、お手本データ１２０ａに含まれる第１フレームデータの頭の特徴点の移動量の平均値をαとする。この場合には、スキル判定定義部１４０Ａは、モジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のレコードの基準パラメータを「α、α＋ａ、α＋２ａ」とする。ａは、適宜設定される数値である。【０２２３】
スキル判定部１６０Ａは、第２フレームデータ毎にスキルを判定し判定結果を出力していたがこれに限定されるものではない。スキル判定部１６０Ａは、各スキル判定結果を総合得点に換算して表示してもよい。例えば、図３５に示したように、スキル判定部１６０Ａは、フェーズ毎にスキル判定を行っているが、ｓｔａｒｔからｅｎｄまでの判定結果を総合得点に換算して、総合得点を表示させてもよい。判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に付与する点数をいくつにするのかは、予め設定される。【０２２４】
スキル判定部１６０Ａは、利用者のモーションデータだけではなく、お手本データ１２０ａのモーションデータに対してもスキル判定処理を行ってもよい。この場合には、出力部１７０Ａは、お手本データ１２０ａのモーションデータに対する判定結果と、利用者のモーションデータに対する判定結果との差分を表示してもよい。【０２２５】
出力部１７０Ａが出力するモーションデータの見せ方は固定でなくてもよい。例えば、出力部１７０Ａは、入力装置からの操作を受け付けて、モーションデータの背面や側面、上側等の別角度で表示してもよい。また、出力部１７０Ａは、利用者のモーションデータの見せ方の変化に連動させて、お手本データ１２０ａのモーションデータも見せ方を変化させてもよい。【０２２６】
ところで、上記実施例では、ゴルフのスキル判定を行う場合について説明したが、本実施例に係るスキル判定装置１００Ａは、ゴルフ以外のその他のスポーツ等にも適用可能である。例えば、スキル判定装置１００Ａは、テニス、陸上、ダンス、料理器具の使い方、楽器演奏などに適用することができる。【０２２７】
次に、上記実施例に示したスキル判定装置１００Ａと同様の機能を実現するスキル判定プログラムを実行するコンピュータの一例について説明する。図３９は、スキル判定プログラムを実行するコンピュータの一例を示す図である。【０２２８】
図３９に示すように、コンピュータ３００は、加速度センサ、モーションセンサ等の入力デバイス３５０ａと、スピーカ、振動デバイス等の出力デバイス３５０ｂに接続させる。コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、各種情報を一時記憶する一次記憶部３０２と、ディスプレイ等の表示部３０３と、入力装置等の操作部３０４とを有する。コンピュータ３００は、入力デバイス３５０ａとデータをやり取りするデバイスＩＦ３０５と、出力デバイス３５０ｂとデータをやり取りするデバイスＩＦ３０６を有する。また、コンピュータ３００は、ハードディスクドライブ等に対応する二次記憶部３０７を有する。【０２２９】
二次記憶部３０７は、スキル判定プログラム３０７ａと、スキル設定プログラム３０７ｂと、各種データ３０７ｃを有する。スキル判定プログラム３０７ａは、ＣＰＵ３０１に読み出され、実行されることで、図２１のフェーズ判定部１５０Ａ、スキル判定部１６０Ａ、出力部１７０Ａに対応する処理を行う。スキル設定プログラム３０７ｂは、ＣＰＵ３０１に読み出され、実行されることで、図２１のお手本データ生成部１３０Ａ、スキル設判定定義部１４０Ａに対応する処理を行う。また、各種データ３０７ｃは、お手本データ１２０ａ、スキル判定定義データ１２０ｂ、利用者のモーションデータ等に対応する。【０２３０】
なお、各プログラム３０７ａ，３０７ｂについては、必ずしも最初から二次記憶部３０７に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ，３０７ｂを読み出して実行するようにしてもよい。
【実施例３】
【０２３１】
図４０は、本実施例３に係るシステムの構成を示す図である。図４０に示すように、このシステムは、利用者端末４００ａ，４００ｂ，４００ｃと、サーバ５００とを有する。利用者端末４００ａ〜４００ｃと、サーバ５００とは、ネットワーク５０を介して相互に接続される。ここでは一例として、利用者端末４００ａ〜４００ｃを示すが、その他の利用者端末が、ネットワーク５０に接続されていても良い。以下の説明では、利用者端末４００ａ〜４００ｂをまとめて、適宜、利用者端末４００と表記する。【０２３２】
利用者端末４００は、上記実施例２に示したスキル判定装置１００Ａと同様の機能を有する。利用者端末４００は、利用者のモーションデータを取得して、利用者のスキルを判定し、スキルの判定結果を、サーバ５００に通知する処理部である。なお、利用者端末４００は、スキル判定装置１００Ａに接続して、接続先のスキル判定装置１００Ａから、利用者のスキルの判定結果を取得しても良い。【０２３３】
利用者は、利用者端末４００を操作して、サーバ５００にアクセスし、サーバ５００に蓄積された過去のスキルの判定結果を参照する。【０２３４】
サーバ５００は、各利用者端末４００から、スキルの判定結果の情報を受信し、保持する。また、サーバ５００は、利用者端末から、スキルの判定結果の情報に対するアクセスを受け付けた場合には、該当するスキルの判定結果を利用者端末４００に通知する。【０２３５】
ここで、サーバ５００は、利用者端末４００に、スキルの判定結果の情報を通知する場合に、スキル判定を行ったスポーツの種別に直接的または間接的に関連する広告バーナーを、利用者端末４００の表示画面に表示させる。また、サーバ５００は、利用者のスキルの判定結果に応じた商品の情報を表示画面に表示させる。例えば、サーバ５００は、スポーツの種別が、ゴルフの場合には、ゴルフ関連の広告バーナーを表示させると共に、スキルにあったゴルフ商品の情報を、利用者端末４００に通知する。なお、ゴルフ以外にも、野球、テニス、陸上、ダンス、料理器具の使い方、楽器演奏に対しても同様に、広告バーナーや、商品の情報を利用者端末４００に通知しても良い。【０２３６】
図４１は、本実施例３に係るサーバの構成を示す機能ブロック図である。図４１に示すように、このサーバ５００は、通信部５１０と、記憶部５２０と、制御部５３０とを有する。【０２３７】
通信部５１０は、ネットワーク５０を介して、各利用者端末４００とデータ通信を実行する処理部である。通信部５１０は、通信装置に対応する。後述する制御部５３０は、通信部５１０を介して、各利用者端末４００とデータをやり取りする。【０２３８】
記憶部５２０は、スキル判定結果テーブル５２０ａと、個人情報テーブル５２０ｂと、バーナー情報テーブル５２０ｃと、商品テーブル５２０ｄとを有する。記憶部５２０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子などの記憶装置に対応する。【０２３９】
スキル判定結果テーブル５２０ａは、利用者端末４００から通知されるスキルの判定結果の情報を保持するテーブルである。図４２は、スキル判定結果テーブルのデータ構造の一例を示す図である。図４２に示すように、利用者識別情報と、種目と、スキル判定結果とを対応付ける。利用者識別情報は、利用者を一意に識別する情報である。種目は、スキル判定の対象となった種目を示すものである。スキル判定結果は、種目に関連する動作を行った利用者に対するスキルの判定結果である。【０２４０】
図４３は、スキル判定結果の一例を示す図である。図４３に示すスキル判定結果は、ある利用者識別情報に対応するスキル判定結果である。例えば、各スキル判定結果は、スキルの判定を行った日付に対応付けられる。また、各スキル判定結果は、フェーズ毎に、ヘッド移動の判定結果、右肘角度の判定結果、前傾姿勢の判定結果、腰回転の判定結果を対応付ける。また、ここでは図示を省略するが、スキル判定結果テーブル５２０ａは、スキル判定結果の判定元となった、利用者のモーションデータを、スキル判定結果に対応付けて保持して良い。【０２４１】
個人情報テーブル５２０ｂは、利用者の個人情報を保持するテーブルである。図４４は、本実施例３に係る個人情報テーブルのデータ構造の一例を示す図である。図４４に示すように、この個人情報テーブル５２０ｂは、利用者識別情報と、アドレスと、性別と、年齢と、身長と、体重とを対応付ける。このうち、利用者識別情報は、利用者を一意に識別する情報である。アドレスは、例えば、利用者が用いるＥメールアドレス（Electronic  mail  address）である。性別、年齢、身長、体重は、利用者識別情報によって識別される利用者の性別、年齢、身長、体重である。【０２４２】
バーナー情報テーブル５２０ｃは、利用者端末４００の表示画面に表示させる広告バーナーに関する情報を保持するテーブルである。図４５は、バーナー情報テーブルのデータ構造の一例を示す図である。図４５に示すように、このバーナー情報テーブル５２０ｃは、条件と、広告バーナー情報とを対応付ける。条件には、例えば、種目と、性別と、年齢とが含まれる。例えば、図４５に示す例では、スキルの判定結果に対応する種目が「ゴルフ」、利用者の性別が「男」、利用者の年齢が「２０才以上」の場合には、広告バーナーＡ１，Ｂ１，Ｃ１を、利用者端末４００の表示画面に表示させることを示している。例えば、広告バーナーＡ１，Ｂ１、Ｃ１は、種目「ゴルフ」に直接的または間接的に、関連する広告バーナーである。【０２４３】
商品テーブル５２０ｄは、利用者のスキル判定結果に応じた商品を定義するテーブルである。図４６は、商品テーブルのデータ構造の一例を示す図である。図４６に示すように、この商品テーブル５２０ｄは、条件と、商品名と、コメントとを対応付ける。条件は、商品を選択する場合に条件を示し、条件には、種目、フェーズ、判定結果が含まれる。種目は、スキルの判定を行った種目である。商品名は、利用者に推薦する商品の名称を示す。コメントは、商品を推薦する理由などを示す。例えば、種目が「ゴルフ」である場合に、フェーズ「impact」において、腰回転の判定結果が−４５°±αであり、右膝角度の判定結果が１０°±αである場合には、商品「ゴルフクラブＡ」を推薦することが定義されている。また、この商品「ゴルフクラブＡ」を推薦する際に、コメント「ボディターン・タイプには、しなりを大きく使えるように手元側を柔らかくしたシャフトを推薦」を付与することも定義されている。【０２４４】
制御部５３０は、取得部５３０ａと、受付部５３０ｂと、検索部５３０ｃと、画面生成部５３０ｄとを有する。制御部５３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部５３０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【０２４５】
取得部５３０ａは、利用者端末４００からスキルの判定結果に関する情報を取得する取得部である。例えば、スキルの判定結果に関する情報は、利用者識別情報と、種目と、スキル判定結果と、モーションデータとを対応付けた情報である。取得部５３０ａは、利用者識別情報と、種目と、スキル判定結果とを対応付けて、スキル判定結果テーブル５２０ａに格納する。【０２４６】
取得部５３０ａは、スキル判定結果に関する情報を、スキル判定結果テーブル５２０ａに格納する場合に、既に同一の利用者識別情報と種目との組のレコードが格納されている場合には、該当するレコードにスキル判定結果の情報を追加する。【０２４７】
受付部５３０ｂは、利用者端末４００から、スキル判定結果テーブル５２０ａに格納された過去のスキル判定結果の情報に対するアクセスを受け付ける処理部である。例えば、利用者端末４００は、過去のスキル判定結果の情報に対するアクセスを行う場合に、サーバ５００に、利用者識別情報を通知するものとする。受付部５３０ｂは、利用者端末４００から受け付けた利用者識別情報を検索部５３０ｃに出力する。【０２４８】
検索部５３０ｃは、利用者識別情報に対応する過去のスキル判定結果と、スキルの判定対象となった種目に関連する広告バーナー情報と、利用者のスキル判定結果に応じた商品とを検索する処理部である。以下の説明において、利用者識別情報に対応する過去のスキル判定結果を、適宜、履歴情報と表記する。検索部５３０ｃは、検索した履歴情報と、広告バーナー情報と、商品の情報とを、画面生成部５３０ｄに出力する。以下において、検索部５３０ｃの処理の一例について説明する。【０２４９】
まず、検索部５３０ｃが、履歴情報を検索する処理の一例について説明する。検索部５３０ｃは、受付部５３０ｂから取得した利用者識別情報と、スキル判定結果テーブル５２０ａとを比較して、利用者識別情報に対応する種目およびスキル判定結果を検索する。検索部５３０ｃは、検索したスキル判定結果の情報を、履歴情報として、画面生成部５３０ｄに出力する。検索部５３０ｃが検索した種目は、後述する、広告バーナー情報を検索する場合に利用する。また、検索部５３０ｃが検索した、スキル判定結果の情報は、後述する、商品情報を検索する場合に利用する。【０２５０】
続いて、検索部５３０ｃが、広告バーナー情報を検索する処理の一例について説明する。検索部５３０ｃは、利用者識別情報と、個人情報テーブル５２０ｂとを比較して、利用者識別情報に対応する性別および年齢を特定する。そして、検索部５３０ｃは、種目と、性別と、年齢との組と、バーナー情報テーブル５２０ｃの条件とを比較して、該当するレコードを特定する。検索部５３０ｃは、特定したレコードに含まれる広告バーナー情報を、画面生成部５３０ｄに出力する。【０２５１】
例えば、検索部５３０ｃは、種目と、性別と、年齢との組が、「ゴルフ」、「男」、「２５才」である場合には、図４５の１行目のレコードを特定する。そして、検索部５３０ｃは、広告バーナーＡ１，Ｂ１，Ｃ１の情報を、画面生成部５３０ｄに出力する。【０２５２】
続いて、検索部５３０ｃが、商品情報を検索する処理の一例について説明する。検索部５３０ｃは、種目とスキル判定結果との組と、商品テーブル５２０ｄの条件とを比較して、該当するレコードを特定する。検索部５３０ｃは、特定したレコードに含まれる商品情報を、画面生成部５３０ｄに出力する。例えば、商品情報には、商品名およびコメントが含まれる。検索部５３０ｃは、同一の利用者識別情報に対して、スキル判定結果が複数存在する場合には、最新のスキル判定結果を用いて、商品情報を検索する。【０２５３】
例えば、種目が「ゴルフ」であり、スキル判定結果に含まれるフェーズ「impact」において、腰回転の判定結果が「４５°±α」、右膝角度の判定結果が「１０°±α」であるとする。この場合には、検索部５３０ｃは、図４６の１行目のレコードに含まれる商品名とコメントとの組を、商品情報として検索する。【０２５４】
画面生成部５３０ｄは、利用者端末４００の画面に表示させる表示画面を生成する処理部である。例えば、画面生成部５３０ｄは、検索部５３０ｃから取得するスキル判定結果の情報、広告バーナー情報、商品情報を画面上に配置することで、表示画面を生成する。画面生成部５３０ｄは、生成した表示画面の情報を、スキル判定結果に対するアクセスを行った利用者端末４００に通知する。【０２５５】
次に、本実施例３に係るサーバ５００の処理手順の一例について説明する。図４７は、本実施例３に係るサーバの処理手順を示すフローチャートである。図４７に示すように、サーバ５００の受付部５３０ｂは、利用者識別情報を受信する（ステップＳ３０１）。サーバ５００の検索部５３０ｃは、スキル判定結果テーブル５２０ａを参照し、利用者識別情報に対応するスキル判定結果を検索し、履歴情報を生成する（ステップＳ３０２）。【０２５６】
検索部５３０ｃは、バーナー情報テーブル５２０ｃを参照し、広告バーナー情報を検索する（ステップＳ３０３）。検索部５３０ｃは、商品テーブル５２０ｄを参照し、商品情報を検索する（ステップＳ３０４）。【０２５７】
サーバ５００の画面生成部５３０ｄは、履歴情報、広告バーナー情報、商品情報を配置した表示画面を生成する（ステップＳ３０５）。画面生成部５３０ｄは、表示画面の情報を、利用者端末４００に送信する（ステップＳ３０６）。【０２５８】
次に、本実施例３に係るサーバ５００の効果について説明する。サーバ５００は、利用者端末４００に、過去のスキルの判定結果の情報を通知する場合に、スキル判定を行った種目に直接的または間接的に関連する広告バーナーを、利用者端末４００の表示画面に表示させる。また、サーバ５００は、利用者のスキルの判定結果に応じた商品の情報を表示画面に表示させる。これによって、スキル判定結果を参照する利用者に、直接的、間接的に関連する情報を広告することができる。また、スキル判定結果に応じた商品情報を推薦することができる。【０２５９】
ところで、サーバ５００の受付部５３０ｂは、利用者端末４００からスキルの判定結果の情報を、スキル判定結果テーブル５２０ａに格納する場合に、データ量に応じた課金情報を利用者端末４００に通知しても良い。例えば、受付部５３０ｂは、スキル判定結果テーブルに記憶されたデータ量を、利用者識別情報毎に監視する。受付部５３０ｂは、データ量が閾値を超えた利用者識別情報に対応する利用者端末４００に、アップロードするデータ量が閾値を超えたため、これ以上のアップロードは有料である旨を通知する。この通知に対して、利用者が支払いに同意した場合には、受付部５３０ｂは、支払い方法を受け付け、利用者識別情報に対応付けて保存する。【０２６０】
なお、利用者端末４００を操作する利用者は、スキルの判定結果に関する情報を、サーバ５００に通知する場合に、スキルの判定結果に関する全ての情報を、サーバ５００に通知する代わりに、通知するデータを選択しても良い。例えば、利用者は、モーションデータに関するデータ量が大きいと判断した場合には、スキルの判定結果のみを、サーバ５００に通知して、データ量を節約することもできる。また、利用者は、モーションデータの代わりに、スナップショットのみを、サーバ５００に通知して、データ量を削減することもできる。
【実施例４】
【０２６１】
図４８は、本実施例４に係るシステムの構成を示す図である。図４８に示すように、このシステムは、利用者端末４００ａ，４００ｂ，４００ｃと、サーバ６００とを有する。利用者端末４００ａ〜４００ｃと、サーバ６００とは、ネットワーク５０を介して相互に接続される。ここでは一例として、利用者端末４００ａ〜４００ｃを示すが、その他の利用者端末が、ネットワーク５０に接続されていても良い。以下の説明では、利用者端末４００ａ〜４００ｃをまとめて、適宜、利用者端末４００と表記する。【０２６２】
利用者端末４００は、上記実施例２に示したスキル判定装置１００Ａと同様の機能を有する。利用者端末４００は、利用者のモーションデータを取得して、利用者のスキルを判定し、スキルの判定結果を、サーバ６００に通知する処理部である。なお、利用者端末４００は、スキル判定装置１００Ａに接続して、接続先のスキル判定装置１００Ａから、利用者のスキルの判定結果を取得しても良い。【０２６３】
サーバ６００は、利用者の特徴に基づいて、利用者を複数のグループに分類しておく。サーバ６００は、利用者端末４００からスキルの判定結果を受信した場合に、このスキルの判定対象となった利用者が属するグループを判定し、判定したグループに含まれる各利用者の利用者端末４００に、スキルの判定結果の情報を通知する。【０２６４】
図４９は、本実施例４に係るサーバの構成を示す機能ブロック図である。図４９に示すように、このサーバ６００は、通信部６１０と、記憶部６２０と、制御部６３０とを有する。【０２６５】
通信部６１０は、ネットワーク５０を介して、各利用者端末４００とデータ通信を実行する処理部である。通信部６１０は、通信装置に対応する。後述する制御部６３０は、通信部６１０を介して、各利用者端末４００とデータをやり取りする。【０２６６】
記憶部６２０は、スキル判定結果テーブル６２０ａと、個人情報テーブル６２０ｂと、グループ管理テーブル６２０ｃとを有する。記憶部６２０は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。【０２６７】
スキル判定結果テーブル６２０ａは、利用者端末４００から通知されるスキルの判定結果を保持するテーブルである。スキル判定結果テーブル６２０ａのデータ構造は、例えば、図４２に示した、スキル判定結果テーブル５２０ａのデータ構造と同様である。【０２６８】
個人情報テーブル６２０ｂは、利用者の個人情報を保持するテーブルである。図５０は、本実施例４に係る個人情報テーブルのデータ構造の一例を示す図である。図５０に示すように、この個人情報テーブル６２０ｂは、利用者識別情報と、アドレスと、性別と、年齢と、身長と、体重と、学校と、練習場とを対応付ける。このうち、利用者識別情報は、利用者を一意に識別する情報である。アドレスは、例えば、利用者が用いるＥメールアドレスである。年齢、身長、体重は、利用者識別情報によって識別される利用者の性別、年齢、身長、体重である。学校は、利用者が通う学校を示すものである。練習場は、利用者が練習を行う場所を示すものである。【０２６９】
グループ管理テーブル６２０ｃは、利用者の属するグループの情報を保持するテーブルである。図５１は、グループ管理テーブルのデータ構造の一例を示す図である。図５１に示すように、このグループ管理テーブル６２０ｃは、グループ識別情報と、所属利用者識別情報とを対応付ける。グループ識別情報は、グループを一意に識別する情報である。所属利用者識別情報は、グループに所属する利用者の利用者識別情報を示す。例えば、図５１に示す例では、グループ識別情報「Ｇ１０１」のグループには、利用者識別情報「Ｕ１０１，Ｕ１０３，Ｕ１１４，・・・」の利用者が所属する旨が示される。【０２７０】
制御部６３０は、取得部６３０ａと、分類部６３０ｂと、ＳＮＳ（Social  Networking  Service）提供部６３０ｃを有する。ＳＮＳ提供部６３０ｃは、通知部に対応する。制御部６３０は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部６３０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。【０２７１】
取得部６３０ａは、利用者端末４００からスキルの判定結果に関する情報を取得する取得部である。例えば、スキルの判定結果に関する情報は、利用者識別情報と、種目と、スキル判定結果とを対応付けた情報である。取得部６３０ａは、利用者識別情報と、種目と、スキル判定結果とを対応付けて、スキル判定結果テーブル６２０ａに格納する。【０２７２】
取得部６３０ａは、スキル判定結果に関する情報を、スキル判定結果テーブル６２０ａに格納する場合に、既に同一の利用者識別情報と種目との組のレコードが格納されている場合には、該当するレコードにスキル判定結果の情報を追加する。【０２７３】
分類部６３０ｂは、個人情報テーブル６２０ｂを参照し、利用者識別情報を、利用者の特徴毎のグループに分類する処理部である。分類部６３０ｂは、分類結果に基づいて、グループ識別情報と、このグループ識別情報のグループに所属する利用者識別情報とを対応付けて、グループ管理テーブル６２０ｃに登録する。【０２７４】
以下において、分類部６３０ｂの処理の一例について説明する。例えば、分類部６３０ｂは、個人情報テーブル６２０ｂを参照し、同一の学校に通う利用者識別情報を特定し、特定した利用者識別情報を、同一のグループに分類する。または、分類部６３０ｂは、個人情報テーブル６２０ｂを参照し、同一の練習場に通う利用者識別情報を特定し、特定した利用者識別情報を、同一のグループに分類する。【０２７５】
上記の分類処理は一例であり、分類部６３０ｂは、利用者識別情報を、同一年代のグループ、家族のグループ、同一のコーチの指導を受けているグループに分類しても良い。また、分類部６３０ｂは、スキル判定結果テーブル６２０ａを参照し、スキルが同レベルの利用者識別情報を、同一のグループに分類しても良い。例えば、分類部６３０ｂは、スキル判定結果に含まれるｇｏｏｄ、ｂａｄ、Ｅｘｃｅｌｌｅｎｔに応じた点数を合計することで、各利用者識別情報の点数を求め、点数が類似する利用者識別情報同士を、同一グループに分類しても良い。【０２７６】
ＳＮＳ提供部６３０ｃは、各利用者端末４００に、ＳＮＳを提供する処理部である。例えば、ＳＮＳ提供部６３０ｃは、グループ管理テーブル６２０ｃを参照して、同一のグループに所属する利用者識別情報の利用者間で、スキル判定結果の情報やその他の電子掲示番等の情報を共有させる。【０２７７】
例えば、ＳＮＳ提供部６３０ｃは、スキル判定結果テーブル６２０ａにスキル判定結果の情報が登録された場合に、スキル判定結果に対応する利用者識別情報と同じグループに属する利用者識別情報を、グループ管理テーブル６２０ｃを基にして判定する。ＳＮＳ提供部６３０ｃは、特定した利用者識別情報に対応する利用者端末４００に、スキル判定結果テーブル６２０ａに登録されたスキル判定結果の情報を、通知する。ＳＮＳ提供部６３０ｃは、個人情報テーブル６２０ｂを参照して、グループに属する利用者識別情報のアドレスを特定し、特定したアドレスを宛先として、スキル判定結果の情報を通知しても良い。【０２７８】
例えば、図５１を参照すると、グループ識別情報「Ｇ１０１」のグループには、所属利用者識別情報Ｕ１０１，Ｕ１０３，Ｕ１１４が所属している。また、取得部６３０ａにより、利用者識別情報Ｕ１０１のスキル判定結果が、スキル判定テーブル６２０ａに登録されたとする。この場合には、ＳＮＳ提供部６３０ｃは、利用者識別情報Ｕ１０１のスキル判定結果を、同一グループの利用者識別情報Ｕ１０３、Ｕ１１４の利用者端末４００に通知する。【０２７９】
次に、本実施例４に係るサーバ６００の処理手順の一例について説明する。図５２は、本実施例４に係るサーバの処理手順を示すフローチャートである。図５２に示すように、サーバ６００の分類部６３０ｂは、個人情報テーブル６２０ｂを参照して、利用者識別情報を複数のグループに分類する（ステップＳ４０１）。【０２８０】
サーバ６００のＳＮＳ提供部６３０ｃは、スキル判定結果を受信したか否かを判定する（ステップＳ４０２）。ＳＮＳ提供部６３０ｃは、スキル判定結果を受信していない場合には（ステップＳ４０２，Ｎｏ）、再度、ステップＳ４０２に移行する。【０２８１】
ＳＮＳ提供部６３０ｃは、スキル判定結果を受信した場合には（ステップＳ４０２，Ｙｅｓ）、受信したスキル判定結果を、スキル判定結果テーブル６２０ａに格納する（ステップＳ４０３）。ＳＮＳ提供部６３０ｃは、受信したスキル判定結果に対応する利用者識別情報の属するグループを特定する（ステップＳ４０４）。【０２８２】
ＳＮＳ提供部６３０ｃは、特定したグループに属する利用者識別情報を特定し、特定した利用者識別情報に対応する利用者端末４００に、スキル判定結果を通知する（ステップＳ４０５）。【０２８３】
次に、本実施例４に係るサーバ６００の効果について説明する。サーバ６００は、利用者の特徴に基づいて、利用者識別情報を複数のグループに分類しておく。サーバ６００は、利用者端末４００からスキルの判定結果を受信した場合に、このスキルの判定対象となった利用者が属するグループを判定し、判定したグループに含まれる各利用者識別情報の利用者端末４００に、スキルの判定結果の情報を通知する。このため、同一グループに属する各利用者がコミュニケーションを取ることを容易にすることができる。例えば、ソーシャルネットワーク上で、スキルを上達させるためのアドバイスをやり取りすることができる。また、上記処理は、種目への勧誘、イベント勧誘、出会い勧誘など間接的に関連するサイトや、オフラインの窓口になり得る。
【実施例５】
【０２８４】
図５３は、本実施例５に係るシステムの構成を示す図である。図５３に示すように、このシステムは、利用者端末４００ａ，４００ｂ，４００ｃと、サーバ７００とを有する。利用者端末４００ａ〜４００ｃと、サーバ７００とは、ネットワーク５０を介して相互に接続される。ここでは一例として、利用者端末４００ａ〜４００ｃを示すが、その他の利用者端末が、ネットワーク５０に接続されていても良い。以下の説明では、利用者端末４００ａ〜４００ｂをまとめて、適宜、利用者端末４００と表記する。【０２８５】
利用者端末４００は、上記実施例２に示したスキル判定装置１００Ａと同様の機能を有する。利用者端末４００は、利用者のモーションデータを取得して、利用者のスキルを判定し、スキルの判定結果を、サーバ７００に通知する処理部である。なお、利用者端末４００は、スキル判定装置１００Ａに接続して、接続先のスキル判定装置１００Ａから、利用者のスキルの判定結果を取得しても良い。【０２８６】
また、利用者は、利用者端末４００を操作して、サーバ７００から、自分好みの専門家のお手本データを取得し、取得した、専門家のお手本データを利用して、利用者のスキルを判定する。【０２８７】
サーバ７００は、複数種類の専門家のお手本データを管理するサーバである。サーバ７００は、利用者端末４００からアクセスを受け付けると、複数種類の専門家のお手本データを表示し、いずれかの専門家のお手本データの選択を受け付ける。サーバ７００は、専門家のお手本データの選択を受け付けると、選択を受け付けたお手本データを、利用者端末４００に通知する。なお、サーバ７００は、利用者に適した専門家のお手本データを選択し、選択した専門家のお手本データを、利用者端末４００に通知しても良い。【０２８８】
図５４は、本実施例５に係るサーバの構成を示す機能ブロック図である。図５４に示すように、このサーバ７００は、通信部７１０と、記憶部７２０と、制御部７３０とを有する。【０２８９】
通信部７１０は、ネットワーク５０を介して、各利用者端末４００とデータ通信を実行する処理部である。通信部７１０は、通信装置に対応する。後述する制御部７３０は、通信部７１０を介して、各利用者端末４００とデータをやり取りする。【０２９０】
記憶部７２０は、スキル判定結果テーブル７２０ａと、個人情報テーブル７２０ｂと、専門家データテーブル７２０ｃとを有する。記憶部７２０は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子などの記憶装置に対応する。【０２９１】
スキル判定結果テーブル７２０ａは、利用者端末４００から通知されるスキルの判定結果を保持するテーブルである。スキル判定結果テーブル７２０ａのデータ構造は、例えば、図４２に示した、スキル判定結果テーブル５２０ａのデータ構造と同様である。【０２９２】
個人情報テーブル７２０ｂは、利用者の個人情報を保持するテーブルである。個人情報テーブル７２０ｂのデータ構造は、例えば、図４４に示した、個人情報テーブル５２０ｂのデータ構造と同様である。【０２９３】
専門家データテーブル７２０ｃは、専門家のお手本データに関する情報を保持するテーブルである。図５５は、専門家データテーブルのデータ構造の一例を示す図である。図５５に示すように、この専門家データテーブル７２０ｃは、専門家識別情報と、プロフィール情報と、お手本データと、評価値とを対応付ける。このうち、専門家識別情報は、専門家を一意に識別する情報である。プロフィール情報は、専門家のプロフィールの情報である。例えば、専門家のプロフィールの情報には、専門家の性別、年齢、体重、身長等の情報が含まれる。お手本データは、実施例２で説明したお手本データ１２０ａに対応するものである。【０２９４】
制御部７３０は、取得部７３０ａと、受付部７３０ｂと、選択部７３０ｃと、通知部７３０ｄとを有する。制御部７３０は、例えば、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部７３０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。【０２９５】
取得部７３０ａは、利用者端末４００からスキルの判定結果に関する情報を取得する取得部である。例えば、スキルの判定結果に関する情報は、利用者識別情報と、種目と、スキル判定結果とを対応付けた情報である。取得部７３０ａは、利用者識別情報と、種目と、スキル判定結果とを対応付けて、スキル判定結果テーブル７２０ａに格納する。【０２９６】
取得部７３０ａは、スキル判定結果に関する情報を、スキル判定結果テーブル７２０ａに格納する場合に、既に同一の利用者識別情報と種目との組のレコードが格納されている場合には、該当するレコードにスキル判定結果の情報を追加する。【０２９７】
受付部７３０ｂは、利用者端末から専門家のお手本データに関するアクセス要求を受け付けた場合に、次の動作を実行する。受付部７３０ｂは、専門家データテーブル７２０ｃに格納された専門家のプロフィール情報と、お手本データと、評価値とを対応させた表示画面を、利用者端末４００に表示させる。受付部７３０ｂは、お手本データの選択を、利用者端末を操作する利用者から受け付けると、選択を受け付けたお手本データを、利用者端末４００に通知する。なお、後述する通知部７３０ｄが、選択を受け付けたお手本データを、利用者端末４００に通知しても良い。【０２９８】
また、受付部７３０ｂは、専門家のお手本データに対する評価値の情報を、利用者端末４００から受け付けた場合には、該当する評価値を更新する。例えば、受付部７３０ｂは、専門家に対応する各利用者端末４００からの評価値を平均化することで、専門家データテーブル７２０ｃの評価値を更新しても良い。【０２９９】
上述した例では、利用者端末を操作する利用者が、お手本データを選択する場合について説明したが、サーバ７００が、利用者に対する適切なお手本データを選択し、選択したお手本データを利用者端末４００に通知して良い。【０３００】
選択部７３０ｃは、利用者に対する適切なお手本データを選択する処理部である。例えば、選択部７３０ｃは、利用者端末４００から、利用者識別情報を取得し、個人情報テーブル７２０ｂから、利用者識別情報に対応する性別、年齢、身長、体重を取得する。以下の説明では、利用者識別情報に対応する性別、年齢、身長、体重をまとめて、適宜、利用者プロフィール情報と表記する。【０３０１】
通知部７３０ｄは、選択部７３０ｃから取得したお手本データを、要求元の利用者端末４００に通知する処理部である。【０３０２】
続いて、選択部７３０ｃの処理の一例について説明する。選択部７３０ｃは、利用者プロフィール情報と最も類似する、専門家データテーブル７２０ｃのプロフィール情報を選択する。選択部７３０ｃは、選択したプロフィール情報に対応するレコードのお手本データを選択し、選択したお手本データを、通知部７３０ｄに出力する。【０３０３】
選択部７３０ｃは、類似するプロフィール情報をどのように選択しても良い。例えば、選択部７３０ｃは、利用者プロフィール情報と専門家のプロフィール情報とを比較し、性別が一致するか否か、年齢の差分、身長の差分、体重の差分にそれぞれ点数を与え、合計点数が最も高いプロフィール情報を、類似するプロフィール情報として選択する。例えば、性別が一致する場合には、所定の点数を与え、一致しない場合には、点数を与えない。年齢の差分、身長の差分、体重の差分については、差分が小さいほど、大きい点数を与える。【０３０４】
更に、選択部７３０ｃは、利用者端末４００から、利用者のモーションデータを取得し、取得したモーションデータに最も類似するお手本データを、専門家データテーブル７２０ｃのお手本データから取得しても良い。例えば、選択部７３０ｃは、利用者のモーションデータと、専門家データテーブル７２０ｃの各お手本データとを基にして、実施例２で説明したスキル判定装置１００Ａと同様の処理を行ってスキル判定を行うことで、利用者のモーションデータと最も類似するお手本データを選択する。例えば、選択部７３０ｃは、スキル判定を行い、Excellentの数が最も多いお手本データを、最も類似するお手本データとして選択しても良い。【０３０５】
また、選択部７３０ｃは、利用者端末４００に通知したお手本データと、このお手本データを基にしたスキル判定結果を対応付けて、スキル判定結果テーブル７２０ａに格納しても良い。選択部７３０ｃは、上記処理を繰り返し実行し、スキル判定結果テーブル７２０ａに格納されたスキル判定結果に基づき、利用者のスキルが上達しているか否かを判定する。例えば、選択部７３０ｃは、同一の利用者識別情報に対応する過去のスキル判定結果と現在のスキル判定結果を比較して、Excellentの数が増加している場合には、利用者と専門家との相性が良いと判定する。この場合には、選択部７３０ｃは、引き続き、同一の専門家のお手本データを利用者端末４００に通知する。また、選択部７３０ｃは、Excellentの数が増加している場合には、該当する専門家の評価値を大きくする補正を行っても良い。【０３０６】
これに対して、選択部７３０ｃは、同一の利用者識別情報に対応する過去のスキル判定結果と現在のスキル判定結果を比較して、Excellentの数が減少している場合または変化していない場合には、利用者と専門家との相性が悪いと判定する。この場合には、選択部７３０ｃは、他の専門家のお手本データを利用者端末４００に通知する。また、選択部７３０ｃは、Excellentの数が減少している場合または変化がない場合には、該当する専門家の評価値を小さくする補正を行っても良い。【０３０７】
次に、本実施例５に係るサーバ７００の処理手順の一例について説明する。図５６は、本実施例５に係るサーバの処理手順を示すフローチャートである。図５６に示すように、サーバ７００の受付部７３０ａは、利用者端末４００から、専門家のお手本データの要求を受け付ける（ステップＳ５０１）。【０３０８】
ここで、サーバ７００は、利用者自身が専門家のお手本データを選択する場合には（ステップＳ５０２，Ｙｅｓ）、ステップＳ５０３に移行する。一方、利用者自身が専門家のお手本データを選択しない場合には（ステップＳ５０２，Ｎｏ）、ステップＳ５０６に移行する。【０３０９】
ステップＳ５０３以降の処理について説明する。サーバ７００の受付部７３０ｂは、専門家のプロフィール情報と、お手本データと、評価値とを対応付けて、利用者端末４００に表示させる（ステップＳ５０３）。【０３１０】
受付部７３０ｂは、お手本データの選択を受け付けたか否かを判定する（ステップＳ５０４）。受付部７３０ｂは、お手本データの選択を受け付けていない場合には（ステップＳ５０４，Ｎｏ）、再度、ステップＳ５０４に移行する。【０３１１】
一方、受付部７３０ｂは、お手本データの選択を受け付けた場合には（ステップＳ５０４，Ｙｅｓ）、選択を受け付けたお手本データを利用者端末４００に通知する（ステップＳ５０５）。【０３１２】
ステップＳ５０６以降の処理について説明する。サーバ７００の選択部７３０ｃは、利用者端末４００から、利用者識別情報を取得する（ステップＳ５０６）。選択部７３０ｃは、利用者に適切なお手本データを選択する（ステップＳ５０７）。サーバ７００は、選択部７３０ｃに選択されたお手本データを、利用者端末４００に通知する（ステップＳ５０８）。【０３１３】
次に、本実施例５に係るサーバ７００の効果について説明する。サーバ７００は、専門家のお手本データを利用者端末４００に表示し、専門家のお手本データの選択を受け付けると、選択を受け付けたお手本データを、利用者端末４００に通知する。または、サーバ７００は、利用者に適した専門家のお手本データを選択し、選択した専門家のお手本データを、利用者端末４００に通知する。このため、利用者は、自分に適した専門家のお手本データを用いてスキル判定を行うことができる。【０３１４】
次に、上記実施例に示したサーバ５００、６００、７００と同様の機能を実現する制御プログラムを実行するコンピュータの一例およびハードウェア構成について説明する。図５７は、制御プログラムを実行するコンピュータの一例を示す図である。【０３１５】
図５７に示すように、コンピュータ８００は、各種演算処理を実行するＣＰＵ８０１と、ユーザからのデータの入力を受け付ける入力装置８０２と、ディスプレイ８０３とを有する。また、コンピュータ８００は、記憶媒体からプログラム等を読取る読み取り装置８０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインタフェース装置８０５とを有する。また、コンピュータ８００は、各種情報を一時記憶するＲＡＭ８０６と、ハードディスク装置８０７とを有する。そして、各装置８０１〜８０７は、バス８０８に接続される。【０３１６】
ハードディスク装置８０７は、制御プログラム８０７ａを有する。ＣＰＵ８０１は、制御プログラム８０７ａを読み出してＲＡＭ８０６に展開する。制御プログラム８０７ａは、制御プロセス８０６ａとして機能する。例えば、制御プロセス８０６ａは、図４１に示した、取得部５３０ａ、受付部５３０ｂ、検索部５３０ｃ、画面生成部５３０ｄに対応する。または、制御プロセス８０６ａは、図４９に示した、取得部６３０ａ、分類部６３０ｂ、ＳＮＳ提供部６３０ｃに対応する。または、制御プロセス８０６ａは、図５４に示した、取得部７３０ａ、受付部７３０ｂ、選択部７３０ｃ、通知部７３０ｄに対応する。【０３１７】
なお、制御プログラム８０７ａについては、必ずしも最初からハードディスク装置８０７に記憶させておかなくても良い。例えば、コンピュータ８００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ８００が制御プログラム８０７ａを読み出して実行するようにしてもよい。
【符号の説明】
【０３１８】
１００    骨格推定装置
１１０    ３Ｄセンサ
１２０    通信部
１３０    入力部
１４０    表示部
１５０    記憶部
１５１    ３次元データテーブル
１５２    モデルデータ
１５３    骨格データテーブル
１６０    制御部
１６１    取得部
１６２    特定部
１６３    第１推定部
１６４    第２推定部
１６５    出力部
【図１】
2017187641.tif 000014
【図２】
2017187641.tif 000015
【図３】
2017187641.tif 000016
【図４】
2017187641.tif 000017
【図５】
2017187641.tif 000018
【図６】
2017187641.tif 000019
【図７】
2017187641.tif 000020
【図８】
2017187641.tif 000021
【図９】
2017187641.tif 000022
【図１０】
2017187641.tif 000023
【図１１】
2017187641.tif 000024
【図１２】
2017187641.tif 000025
【図１３】
2017187641.tif 000026
【図１４】
2017187641.tif 000027
【図１５】
2017187641.tif 000028
【図１６】
2017187641.tif 000029
【図１７】
2017187641.tif 000030
【図１８】
2017187641.tif 000031
【図１９】
2017187641.tif 000032
【図２０】
2017187641.tif 000033
【図２１】
2017187641.tif 000034
【図２２】
2017187641.tif 000035
【図２３】
2017187641.tif 000036
【図２４】
2017187641.tif 000037
【図２５】
2017187641.tif 000038
【図２６】
2017187641.tif 000039
【図２７】
2017187641.tif 000040
【図２８】
2017187641.tif 000041
【図２９】
2017187641.tif 000042
【図３０】
2017187641.tif 000043
【図３１】
2017187641.tif 000044
【図３２】
2017187641.tif 000045
【図３３】
2017187641.tif 000046
【図３４】
2017187641.tif 000047
【図３５】
2017187641.tif 000048
【図３６】
2017187641.tif 000049
【図３７】
2017187641.tif 000050
【図３８】
2017187641.tif 000051
【図３９】
2017187641.tif 000052
【図４０】
2017187641.tif 000053
【図４１】
2017187641.tif 000054
【図４２】
2017187641.tif 000055
【図４３】
2017187641.tif 000056
【図４４】
2017187641.tif 000057
【図４５】
2017187641.tif 000058
【図４６】
2017187641.tif 000059
【図４７】
2017187641.tif 000060
【図４８】
2017187641.tif 000061
【図４９】
2017187641.tif 000062
【図５０】
2017187641.tif 000063
【図５１】
2017187641.tif 000064
【図５２】
2017187641.tif 000065
【図５３】
2017187641.tif 000066
【図５４】
2017187641.tif 000067
【図５５】
2017187641.tif 000068
【図５６】
2017187641.tif 000069
【図５７】
2017187641.tif 000070
【図５８】
2017187641.tif 000071
【図５９】
2017187641.tif 000072
【図６０】
2017187641.tif 000073
【図６１】
2017187641.tif 000074
【国際調査報告】
2017187641.tif 000075
2017187641.tif 000076