(57)【要約】  スキル判定装置（１００）は、フェーズ判定部（１５０）とスキル判定部（１６０）とを有する。フェーズ判定部（１５０）は、お手本データ（１２０ａ）と、利用者のモーションデータとを基にして、フェーズの種別毎に第２フレームデータを抽出する。スキル判定部（１６０）は、フェーズの種別毎の第２フレームデータと、スキル判定定義データ（１２０ｂ）とを基にして、利用者のスキルを判定する。
2016056449.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
第１利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む複数の第１フレームと前記複数の第１フレームにそれぞれ対応するフェーズの種別とを対応付けたフェーズ定義情報に基づいて、第２利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む第２フレームから、前記フェーズの種別に対応する第２フレームをそれぞれ判定し、
前記複数の第１フレームにそれぞれ含まれる前記特徴点から導き出される前記第１利用者の動作、姿勢または関節の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義したスキル定義情報に基づいて、フェーズの種別毎に判定した前記第２フレームに含まれる前記特徴点から導き出される前記第２利用者の動作、姿勢または関節の特徴量を判定する
処理を実行させることを特徴とするスキル判定プログラム。
【請求項２】
前記フェーズの種別毎に第２フレームを判定する処理は、前記複数の第１フレームの特徴点の位置情報と、前記第２フレームの特徴点の位置情報との類似度をそれぞれ算出し、類似度を基にして、第２フレームに対応する第１フレームを前記複数の第１フレームから選択し、選択した第１フレームに対応するフェーズの種別を、前記第２フレームの種別として特定する処理を実行することを特徴とする請求項１に記載のスキル判定プログラム。
【請求項３】
前記フェーズの種別毎に第２フレームを判定する処理は、前記類似度を算出する場合において、前回選択した第１フレームの時刻と、前記類似度の算出対象となる第１フレームの時刻との関係を基にして重みを特定し、特定した重みによって前記類似度を補正する処理を実行することを特徴とする請求項２に記載のスキル判定プログラム。
【請求項４】
画像情報、音声情報または前記第２利用者に対する肉体的な刺激によって、前記スキルの判定結果を出力する処理を更にコンピュータに実行させることを特徴とする請求項１、２または３に記載のスキル判定プログラム。
【請求項５】
コンピュータが実行するスキル判定方法であって、
第１利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む複数の第１フレームと前記複数の第１フレームにそれぞれ対応するフェーズの種別とを対応付けたフェーズ定義情報に基づいて、第２利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む第２フレームから、前記フェーズの種別に対応する第２フレームをそれぞれ判定し、
前記複数の第１フレームにそれぞれ含まれる前記特徴点から導き出される前記第１利用者の動作、姿勢または関節の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義したスキル定義情報に基づいて、フェーズの種別毎に判定した前記第２フレームに含まれる前記特徴点から導き出される前記第２利用者の動作、姿勢または関節の特徴量を判定する
処理を実行することを特徴とするスキル判定方法。
【請求項６】
第１利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む複数の第１フレームと前記複数の第１フレームにそれぞれ対応するフェーズの種別とを対応付けたフェーズ定義情報に基づいて、第２利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む第２フレームから、前記フェーズの種別に対応する第２フレームをそれぞれ判定するフェーズ判定部と、
フェーズの種別毎に第２フレームを抽出し、前記複数の第１フレームにそれぞれ含まれる前記特徴点から導き出される前記第１利用者の動作、姿勢または関節の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義したスキル定義情報に基づいて、フェーズの種別毎に判定した前記第２フレームに含まれる前記特徴点から導き出される前記第２利用者の動作、姿勢または関節の特徴量を判定するスキル判定部と
を有することを特徴とするスキル判定装置。
【請求項７】
利用者端末から、所定の種目に関連する動作を利用者が行った場合におけるスキルの判定結果を取得し、前記所定の種目と前記スキルの判定結果とを対応付けて記憶部に格納する取得部と、
前記所定の種目と、前記所定の種目に関連する広告情報とを対応付けて記憶する第１テーブルと、
前記スキルの判定結果の特徴と商品情報とを対応付けて記憶する第２テーブルと、
前記利用者端末から、前記スキルの判定結果に対するアクセスを受け付けた場合に、前記スキルの判定結果に対応する所定の種目と前記第１テーブルとを基にして、前記所定の種目に関連する広告情報を検索し、前記スキルの判定結果の特徴と前記第２テーブルとを基にして、前記スキルの判定結果の特徴に対応する商品情報を検索する検索部と、
前記アクセスの対象となるスキルの判定結果と、前記検索部に検索された広告情報および商品情報とを含む画面を生成し、生成した画面の情報を前記アクセス元の利用者端末に通知する画面生成部と
を有することを特徴とするサーバ。
【請求項８】
利用者を識別する利用者識別情報と前記利用者の特徴とを対応付けて記憶するテーブルを基にして、前記利用者識別情報を、前記利用者の特徴毎のグループに分類する分類部と、
利用者端末から、利用者に対するスキルの判定結果と利用者識別情報とを受信した場合に、前記分類部に分類された各グループのうち、受信した利用者識別情報が属するグループを特定し、特定したグループに含まれる利用者識別情報に対応する連絡先に、前記スキルの判定結果を通知する通知部と、
を有することを特徴とするサーバ。
【請求項９】
第１利用者の特徴と、前記第１利用者が所定の種目に関連する動作を行った際のモーション情報とを対応付けた情報を、複数種類記憶する記憶部と、
複数の第１利用者の特徴を、利用者端末に通知し、前記複数の第１利用者の特徴のうち、いずれかの第１利用者の特徴の選択を受け付けると、選択を受け付けた第１利用者の特徴に対応するモーション情報を、前記記憶部から取得する受付部と、
前記受付部が取得したモーション情報を、利用者端末に通知して、前記モーション情報に基づく第２利用者のスキルを判定させる通知部と
を有することを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキル判定プログラム等に関する。
【背景技術】
【０００２】
各種のスポーツ分野でトレーニングを行う利用者は、専門家の指導を受ける場合がある。一般的に専門家は、過去の指導経験に基づく感覚等により、利用者を指導することになる。近年では、専門家は、利用者を撮影した映像をリアルタイムにディスプレイに表示させて、利用者に自身のフォームを確認させつつ、利用者に指導を行う場合もある。【０００３】
また、専門家は、利用者に加速度センサ等を装着させてセンシングを行い、トレーニング中のセンシング結果から得られる数値データを参照して、利用者にアドバイスを行うこともある。このような数値データを根拠にしてアドバイスを行うことによって、利用者に納得感のある指導を行うことができる。【０００４】
なお、一部の人気スポーツでは、特定の動作に着目して、利用者の特定の動作を評価する専用のアプリケーションソフトウェアが販売されている。以下では、専用のアプリケーションソフトウェアを専用アプリと表記する。利用者は、かかる専用アプリを利用することで、専門家がいない場合でも、特定のスキルについて自身のスキルを確認することができる。例えば、バットのスイングスピードを評価する専用アプリを利用することで、利用者は、自身のスイングスピードを知ることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３１３４７９号公報
【特許文献２】特開２００８−２３６１２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、汎用的に、利用者のスキルを自動で判定することができないという問題がある。【０００７】
例えば、利用者のセンシングを行って指導する場合には、専門家がいることが大前提になっており、センシングの開始・終了タイミングや各数値データの解析を専門家が行うため、利用者自身が自動で用いられるものではなかった。【０００８】
また、専門アプリは利用者自身で容易に使用することができるものの、一部のスポーツの限られた内容において評価を得られるのみであり、汎用性に欠ける。【０００９】
１つの側面では、汎用的に、利用者のスキルを自動で判定することができるスキル判定プログラム、スキル判定方法、スキル判定装置およびサーバを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、コンピュータに下記の処理を実行させる。コンピュータは、フェーズ定義情報に基づいて、第２利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む第２フレームから、フェーズの種別に対応する第２フレームをそれぞれ判定する。フェーズ定義情報は、第１利用者の体の所定の部位または関節部に対応する特徴点の位置情報を含む複数の第１フレームと複数の第１フレームにそれぞれ対応するフェーズの種別とを対応付けた情報である。コンピュータは、スキル定義情報に基づいて、フェーズの種別毎に判定した第２フレームに含まれる特徴点から導き出される第２利用者の動作、姿勢または関節の特徴量を判定する。スキル定義情報は、複数の第１フレームにそれぞれ含まれる特徴点から導き出される第１利用者の動作、姿勢または関節の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義した情報である。
【発明の効果】
【００１１】
本発明の１実施態様によれば、汎用的に、利用者のスキルを自動で判定することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例１に係るスキル判定装置の構成を示す機能ブロック図である。
【図２】図２は、フレームデータのデータ構造の一例を示す図である。
【図３】図３は、お手本データのデータ構造の一例を示す図である。
【図４】図４は、スキル判定定義データのデータ構造の一例を示す図である。
【図５】図５は、スキル判定定義データを補足説明するための図である。
【図６】図６は、表示装置に表示される表示画面の一例を示す図である。
【図７】図７は、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のパラメータ設定画面の一例を示す図である。
【図８】図８は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」のパラメータ設定画面の一例を示す図である。
【図９】図９は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」のパラメータ設定画面の一例を示す図である。
【図１０】図１０は、フレームマッチングの一例を説明するための図である。
【図１１】図１１は、重みを説明するための図である。
【図１２】図１２は、スキル判定部の処理を説明するための図（１）である。
【図１３】図１３は、スキル判定部の処理を説明するための図（２）である。
【図１４】図１４は、出力部が生成する表示画面の一例を示す図（１）である。
【図１５】図１５は、出力部が生成する表示画面の一例を示す図（２）である。
【図１６】図１６は、スキル判定装置の処理手順を示すフローチャートである。
【図１７】図１７は、スキル判定処理の処理手順を示すフローチャートである。
【図１８】図１８は、設定処理の処理手順を示すフローチャートである。
【図１９】図１９は、スキル判定プログラムを実行するコンピュータの一例を示す図である。
【図２０】図２０は、本実施例２に係るシステムの構成を示す図である。
【図２１】図２１は、本実施例２に係るサーバの構成を示す機能ブロック図である。
【図２２】図２２は、スキル判定結果テーブルのデータ構造の一例を示す図である。
【図２３】図２３は、スキル判定結果の一例を示す図である。
【図２４】図２４は、本実施例２に係る個人情報テーブルのデータ構造の一例を示す図である。
【図２５】図２５は、バーナー情報テーブルのデータ構造の一例を示す図である。
【図２６】図２６は、商品テーブルのデータ構造の一例を示す図である。
【図２７】図２７は、本実施例２に係るサーバの処理手順を示すフローチャートである。
【図２８】図２８は、本実施例３に係るシステムの構成を示す図である。
【図２９】図２９は、本実施例３に係るサーバの構成を示す機能ブロック図である。
【図３０】図３０は、本実施例３に係る個人情報テーブルのデータ構造の一例を示す図である。
【図３１】図３１は、グループ管理テーブルのデータ構造の一例を示す図である。
【図３２】図３２は、本実施例３に係るサーバの処理手順を示すフローチャートである。
【図３３】図３３は、本実施例４に係るシステムの構成を示す図である。
【図３４】図３４は、本実施例４に係るサーバの構成を示す機能ブロック図である。
【図３５】図３５は、専門家データテーブルのデータ構造の一例を示す図である。
【図３６】図３６は、本実施例４に係るサーバの処理手順を示すフローチャートである。
【図３７】図３７は、制御プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するスキル判定プログラム、スキル判定方法、スキル判定装置およびサーバの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
本実施例に係るスキル判定装置の構成について説明する。図１は、本実施例に係るスキル判定装置の構成を示す機能ブロック図である。図１に示すように、スキル判定装置１００は、モーションセンサ１０ａ，１０ｂに接続される。スキル判定装置１００は、センシング部１１０ａ，１１０ｂ、記憶部１２０、お手本データ生成部１３０、スキル判定定義部１４０、フェーズ判定部１５０、スキル判定部１６０、出力部１７０を有する。【００１５】
モーションセンサ１０ａ，１０ｂをまとめて、適宜、モーションセンサ１０と表記する。モーションセンサ１０は、人や物の動きを検知するセンサである。例えば、モーションセンサ１０は、人の特徴点の３次元座標を検知し、特徴点と３次元座標とを対応付けたセンシング情報を、スキル判定装置１００に出力する。ここで、人の特徴点は、例えば、人の頭、首、背中、腰や、その他の関節部分に対応する。【００１６】
モーションセンサ１０は、どのような従来技術を用いて、センシング情報を出力してもよい。例えば、モーションセンサ１０は、反射型のＭＡモーションセンサ、受光型の熱型センサに対応する。または、人に３軸加速度センサ、３軸ジャイロセンサを装着させて、センシング情報を抽出してもよい。【００１７】
センシング部１１０ａは、専門家の指導を受ける利用者のセンシング情報をモーションセンサ１０から取得する処理部である。以下の説明において、専門家の指導を受ける利用者を単に利用者と表記する。センシング部１１０ａは、モーションセンサ１０からセンシング情報をフレームデータとして連続的に取得し、フェーズ判定部１５０に出力する。【００１８】
図２は、フレームデータのデータ構造の一例を示す図である。図２に示すように、フレームデータは連続的にセンシング部１１０ａによって取得され、フェーズ判定部１５０に出力される。各フレームデータは、それぞれフレーム番号に対応付けられる。図示を省略するが、各フレームデータは、時刻情報に対応付けられ、時系列順に、フェーズ判定部１５０に出力される。例えば、フレーム番号「１０２」のフレームデータは、時刻「ｔ２」において、モーションセンサ１０に検出された利用者の特徴点の３次元座標を示す。【００１９】
センシング部１１０ｂは、専門家のセンシング情報をモーションセンサ１０から取得する処理部である。センシング部１１０ｂは、モーションセンサ１０からセンシング情報をフレームデータを連続的に取得し、お手本データ生成部１３０に出力する。専門家のフレームデータのデータ構造は、図２に示したフレームデータのデータ構造と同じである。【００２０】
以下では、説明の便宜上、専門家のモーションデータに含まれるフレームデータを、第１フレームデータと表記する。利用者のモーションデータに含まれるフレームデータを第２フレームデータと表記する。【００２１】
記憶部１２０は、お手本データ１２０ａおよびスキル判定定義データ１２０ｂを有する。記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子やＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。【００２２】
お手本データ１２０ａは、第１フレームデータと、この第１フレームデータのフェーズの種別とをそれぞれ対応付ける情報である。お手本データ１２０ａは、フェーズ定義情報に対応する。例えば、フェーズの種別には、「ｓｔａｒｔ」、「ｂａｃｋｓｗｉｎｇ」、「ｔｏｐ」、「ｉｍｐａｃｔ」、「ｆｏｌｌｏｗ」、「ｅｎｄ」等が含まれる。お手本データ１２０ａは、後述するお手本データ生成部１３０によって生成される。【００２３】
図３は、お手本データのデータ構造の一例を示す図である。図３に示すように、このお手本データ１２０ａは、メタデータ３０と、モーションデータ２０とを含む。メタデータ３０は、第１フレームデータのフレーム番号と、フェーズの種別とを対応付ける情報である。図３に示すモーションデータ２０は、複数の第１フレームデータを有する。【００２４】
図３のメタデータ３０において、領域３０ａは、フレーム番号「１００」の第２フレームデータのフレームの種別が「ｓｔａｒｔ」であることを定義する。領域３０ｂは、フレーム番号「１５０」の第１フレームデータのフレームの種別が「ｂａｃｋｓｗｉｎｇ」であることを定義する。領域３０ｃは、フレーム番号「２５０」の第１フレームデータのフレームの種別が「ｔｏｐ」であることを定義する。領域３０ｄは、フレーム番号「４５０」の第１フレームデータのフレームの種別が「ｅｎｄ」であることを定義する。【００２５】
スキル判定定義データ１２０ｂは、複数の第２フレームデータに含まれる特徴点から導き出させる利用者の動作の特徴量と、スキルの判定基準と、判定対象となるフェーズの種別とを対応付けて定義する情報である。【００２６】
図４は、スキル判定定義データのデータ構造の一例を示す図である。図５は、スキル判定定義データを補足説明するための図である。図４に示すように、このスキル判定定義データ１２０ｂは、モジュール名と、スキル判定名と、パラメータ定義とを対応付ける。モジュール名は、後述するスキル判定部１６０がスキルの判定を行う場合に利用するモジュール名である。スキル判定名は、スキルの判定名を定義したものである。パラメータ定義は、対象フェーズと、比較位置と、基準パラメータとを有する。ここで、スキルは、例えば、専門家がゴルフのスイング等を行う間の、一連の動作、姿勢、関節の角度を示すものである。例えば、スキル判定名の「頭の移動」は、スイングを行う間の専門家の頭の移動をスキルとして定義する。また、スキルの判定基準は、専門家の一連の動作、姿勢、関節の角度を基準とするものであり、利用者の一連の動作、姿勢、関節の角度がどの程度、専門家のものと比較して異なっているのかに応じて、評価が行われる。例えば、対象フェーズ、比較位置、基準パラメータの組が、スキルの判定基準に対応する。このスキルの判定基準を基にスキルを判定する処理については、後述する。【００２７】
対象フェーズは、スキルの判定対象となるフェーズの種別を特定する情報である。比較位置は、比較する第２フレームデータの種別および特徴点の位置を定義する情報である。基準パラメータおよび基準値は、スキルの善し悪しを判定する場合に利用する数値である。【００２８】
図４において、モジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」、スキル判定名「頭の移動」のレコードについて説明する。この「頭の移動」のスキル判定は、ゴルフのドライバをスイングする間において、利用者の頭の移動の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｆｏｌｌｏｗ」であるため、判定対象となる第２フェーズの種別は図５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ、ｆｏｌｌｏｗ」となる。【００２９】
比較位置は「ｓｔａｒｔ：頭、ｃｕｒｒｅｎｔ：頭」である。このため、比較元の特徴点の位置は、フェーズの種別が「ｓｔｒａｔ」となる第２フレームデータのうち最初の第２フレームデータの頭の特徴点の位置となる。比較先の特徴点の位置は、現在の第２フレームデータの頭の特徴点の位置となる。【００３０】
基準パラメータは「８、１０、２０」である。比較対象となる特徴点の位置の差が「８ｃｍ未満」の場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。比較対象となる特徴点の位置の差が「８ｃｍ以上、１０ｃｍ未満」の場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。比較対象となる特徴点の位置の差が「１０ｃｍ以上、２０ｃｍ未満」の場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【００３１】
続いて、モジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」、スキル判定名「左肘角度」のレコードについて説明する。この「左肘角度」のスキル判定は、ドライバをスイングする間において、利用者の左肘角度の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｉｍｐａｃｔ」である。判定対象となる第２フェーズの種別は図５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ」となる。【００３２】
比較位置は「ｃｕｒｒｅｎｔ：左肩、ｃｕｒｒｅｎｔ：左肘、ｃｕｒｒｅｎｔ：左手首」である。このため、現在の第２フレームデータの左肩の特徴点および左肘の特徴点を通る線分と、左肘の特徴点および左手首の特徴点を通る直線とのなす角度が、判定対象となる。【００３３】
基準パラメータは「（１３５−１８０）、（１３０−１３５、１８０−１９０）、（１１０−１３０、１９０−２００）」である。なす角度が「１３５−１８０」に含まれる場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。なす角度が「１３０−１３５、１８０−１９０」に含まれる場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。なす角度が「１１０−１３０、１９０−２００」に含まれる場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【００３４】
続いて、モジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」、スキル判定名「前傾姿勢」のレコードについて説明する。この「前傾姿勢」のスキル判定は、ドライバをスイングする間において、利用者の前傾姿勢の善し悪しを判定するものである。対象フェーズは「ｓｔａｒｔ−ｉｍｐａｃｔ」である。判定対象となる第２フェーズの種別は図５に示すように「ｓｔａｒｔ、ｂａｃｋｓｗｉｎｇ、ｔｏｐ、ｉｍｐａｃｔ」となる。【００３５】
比較位置は「ｃｕｒｒｅｎｔ：頭、ｃｕｒｒｅｎｔ：腰」である。このため、現在の第２フレームデータの頭の特徴点および腰の特徴点を通る線分と垂線とのなす角度が、判定対象となる。【００３６】
基準パラメータは「（２５−４０）、（２０−２５、４０−５５）、（８−２０、５５−６０）」である。なす角が「２５−４０」に含まれる場合に、判定結果が「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」であることが定義される。なす角が「２０−２５、４０−５５」である場合に、判定結果が「よい（Ｇｏｏｄ）」であることが定義される。なす角が「８−２０、５５−６０」である場合に、判定結果が「悪い（Ｂａｄ）」であることが定義される。【００３７】
図１の説明に戻る。お手本データ生成部１３０は、センシング部１１０ｂから専門家のモーションデータを取得し、お手本データ１２０ａを生成する処理部である。お手本データ生成部１３０は、生成したお手本データ１２０ａを記憶部１２０に保存する。【００３８】
例えば、お手本データ生成部１３０は、専門家のモーションデータに含まれる第１フレームデータを表示装置に表示させ、どの第１フレームデータがどのフェーズの種別に対応するのかを、入力装置から受け付ける。ここでは、表示装置および入力装置の図示を省略する。【００３９】
専門家は、入力装置を操作して、第１フレームデータとフェーズの種別との関係を、お手本データ生成部１３０に入力する。お手本データ生成部１３０は、入力装置から受け付けた情報を基にして、第１フレームデータのフレーム番号と、フェーズの種別を対応付けて、図３に示したメタデータ３０を生成する。お手本データ生成部１３０は、メタデータ３０と、モーションデータ２０とを有するお手本データ１２０ａを、記憶部１２０に保存する。【００４０】
スキル判定定義部１４０は、スキル判定定義データ１２０ｂを生成する処理部である。スキル判定定義部１４０は、生成したスキル判定定義データ１２０ｂを記憶部１２０に保存する。【００４１】
例えば、スキル判定定義部１４０は、スキル判定定義の設定画面を、表示装置に表示させ、スキル判定定義に関する情報を、入力装置から受け付ける。専門家は、入力装置を操作して、スキル判定定義に関する情報を入力する。スキル判定定義部１４０は、スキル判定定義に関する情報を基にして、スキル判定定義データ１２０ｂを生成し、記憶部１２０に保存する。【００４２】
図６は、表示装置に表示される表示画面の一例を示す図である。表示画面５０には、お手本データ生成部１３０が表示させるフェーズ設定画面５０ａと、スキル判定定義部１４０が表示させるスキル設定画面５０ｂが含まれる。また、表示画面５０には、専門家のモーションデータを表示する再生画面５０ｃと、現在の第１フレームデータのフレーム番号表示画面５０ｄとを表示してもよい。【００４３】
専門家は、入力装置を操作して、再生画面５０ｃとフレーム番号表示画面５０ｄとを参照しつつ、フェーズ設定画面５０ａに、フレーム番号と、フェーズの種別との対応関係を入力する。例えば、お手本データ生成部１３０は、フェーズ設定画面５０ａに入力された情報を基にして、お手本データ１２０ａを生成する。【００４４】
専門家は、入力装置を操作して、スキル設定画面５０ｂのいずれかのチェッカー名を選択する。以下の説明では、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」、「ＡｎｇｌｅＣｈｅｋｅｒ（１）」、「ＡｎｇｌｅＣｈｅｋｅｒ（２）」が選択された場合に表示されるパラメータ設定画面の一例についてそれぞれ説明する。【００４５】
図７は、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のパラメータ設定画面の一例を示す図である。図７に示すように、パラメータ設定画面６０には、判定対象を定義する領域６１と、判定基準を定義する領域６２が含まれる。また、領域６１には、比較元を定義する領域６１ａ、比較先を定義する領域６１ｂ、対象区間を定義する領域６１ｃが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【００４６】
図７に示す例では、比較元を定義する領域６１ａには、比較元の特徴点の位置が、フェーズの種別が「ｓｔａｒｔ」となる第２フレームデータのうち最初の第２フレームデータの頭の特徴点の位置であることが定義されている。比較先を定義する領域６１ｂには、比較先の特徴点の位置が、現在の第２フレームデータの頭の特徴点の位置であることが定義されている。対象区間を定義する領域６１ｃには、対象フェーズが「ｓｔａｒｔ−ｆｏｌｌｏｗ」であることが定義されている。判定基準を定義する領域６２には、基準パラメータは「８、１０、２０」である旨が定義されている。【００４７】
例えば、図７に入力された情報を基にして、スキル判定定義部１４０は、図４のモジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」に対応するレコードを生成する。【００４８】
図８は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」のパラメータ設定画面の一例を示す図である。パラメータ設定画面７０には、判定対象を定義する領域７１と、判定基準を定義する領域７２が含まれる。また、領域７１には、比較対象の特徴点を定義する領域７１ａ、対象区間を定義する領域７１ｂが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【００４９】
図８に示す例では、比較対象の特徴点を定義する領域７１ａには、現在の第２フレームデータの左肩の特徴点および左肘の特徴点を通る線分と、左肘の特徴点および左手首の特徴点を通る直線とのなす角度が、判定対象であることが定義されている。対象区間を定義する領域７１ｂには、対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であることが定義されている。判定基準を定義する領域７２には、各種の基準パラメータが定義されている。【００５０】
例えば、図８に入力された情報を基にして、スキル判定定義部１４０は、図４のモジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」に対応するレコードを生成する。【００５１】
図９は、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」のパラメータ設定画面の一例を示す図である。パラメータ設定画面８０には、判定対象を定義する領域８１と、判定基準を定義する領域８２が含まれる。また、領域８１には、垂線を定義する領域８１ａ、比較対象の特徴点を定義する領域８１ｂ、対象区間を定義する領域８１ｃが含まれる。専門家は、入力装置を操作して、各領域に情報を入力する。【００５２】
図９に示す例では、垂線を定義する領域８１ａには、垂線の始点と終点の３次元座標が定義されている。比較対象の特徴点を定義する領域８１ｂには、現在の第２フレームデータの頭の特徴点および腰の特徴点を通る線分が定義されている。対象区間を定義する領域８１ｃには、対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であることが定義されている。判定基準を定義する領域８２には、各種の基準パラメータが定義されている。【００５３】
例えば、図９に入力された情報を基にして、スキル判定定義部１４０は、図４のモジュール名「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」に対応するレコードを生成する。【００５４】
図１の説明に戻る。フェーズ判定部１５０は、お手本データ１２０ａに含まれる各第１フレームデータと、利用者の第２フレームデータとを比較して、第２フレームデータに対応するフェーズの種別を判定する処理部である。フェーズ判定部１５０は、判定したフェーズの種別を取得したフレームデータに付与し、スキル判定部１６０に出力する。【００５５】
以下において、フェーズ判定部１５０の処理の一例を具体的に説明する。フェーズ判定部１５０は、利用者の第２フレームデータをメモリに保存し、補正処理、特徴量計算、フレームマッチングを順に実行する。【００５６】
フェーズ判定部１５０が実行する補正処理の一例について説明する。フェーズ判定部１５０は、第２フレームデータの縦軸補正を行う。例えば、モーションセンサ１０が、設置型センサの場合には、設置位置や設置角度が前回の環境と異なる場合があり、設置環境に合わせて第２フレームデータの縦軸を補正する。例えば、フェーズ判定部１５０は、第２フレームデータを表示装置に表示させて、利用者からの補正情報の入力を受け付け、第２フレームデータの縦軸を垂線に対応させる。また、フェーズ判定部１５０は、利用者の向きが正面の向きとなるように合わせて補正してもよい。フェーズ判定部１５０は、補正情報の入力を受け付けた後は、係る補正情報を利用して、残りの第２フレームデータの縦軸補正や向きの補正を行ってもよい。【００５７】
フェーズ判定部１５０は、第２フレームデータの特徴点の位置のばらつきを押さえるための補正処理も合わせて実行する。例えば、フェーズ判定部１５０は、前後の第２フレームデータの特徴点の位置の平均値を、間の第２フレームデータの特徴点の位置とすることで、ばらつきを押さえる。また、フェーズ判定部１５０は、ローパスフィルタを用いて、第２フレームデータに含まれるノイズ成分を取り除いてもよい。【００５８】
フェーズ判定部１５０が実行する特徴量計算の一例について説明する。本実施例では、一例として、第２フレームデータに含まれる各関節に対する特徴点の３次元座標を、特徴量としてそれぞれ算出するものとする。【００５９】
フェーズ判定部１５０が実行するその他の特徴量計算の一例について説明する。各スポーツ固有のスイングを特徴付ける関節をピックアップする場合において、フェーズ判定部１５０は、手や腰、指等の３次元座標や速度・加速度を特徴量として計算してもよい。【００６０】
各スポーツ固有ではない汎用的なデータを特徴量とする場合に、フェーズ判定部１５０は、全関節の３次元座標や速度・加速度を特徴量として計算してもよい。また、フェーズ判定部１５０は、全関節位置の重心位置等を特徴量として計算してもよい。【００６１】
フェーズ判定部１５０が実行するフレームマッチングの一例について説明する。図１０は、フレームマッチングの一例を説明するための図である。図１０に示す例では、現在の第２フレームデータを、第２フレームデータＳ０とする。また、お手本データ１２０ａに含まれる各第１フレームデータをそれぞれ、第１フレームデータｔ１〜ｔ６とする。フェーズ判定部１５０は、式（１）を基にして、第２フレームデータＳ０と、第１フレームデータｔ１〜ｔ６とについて、関節の特徴点毎の距離の平均値をそれぞれ算出する。以下の説明では、関節の特徴点毎の距離の平均値を、「関節平均距離」と表記する。【００６２】
【数１】
2016056449.tif 000003
【００６３】
式（１）について、ｘＳ０ｊ、ｙＳ０ｊ、ｚＳ０ｊは、第２フレームデータのある関節（ｊの数値に対応する関節）の特徴点の３次元座標である。ｘｔｉｊ、ｙｔｉｊ、ｚｔｉｊは、第１フレームデータｔｉのある関節（ｊの数値に対応する関節）の特徴点の３次元座標である。ｎは、関節の特徴点の数である。フェーズ判定部１５０は、式（１）によって算出される各関節平均距離のうち、かかる関節平均距離が最小となる第２フレームデータＳ０と第１フレームデータとの組を特定する。【００６４】
図１０に示す例では、第２フレームデータＳ０と第１フレームデータｔ２との組における関節平均距離が最小となるため、フェーズ判定部１５０は、第２フレームデータＳ０に対応する第１フレームデータを、第１フレームデータｔ２として判定する。また、フェーズ判定部１５０は、第２フレームデータＳ０のフェーズの種別を、第１フレームデータｔ２に対応するフェーズの種別として判定する。【００６５】
ところで、フェーズ判定部１５０は、式（１）を用いて関節平均距離を算出する場合に、重みを用いて、関節平均距離の値を補正する。例えば、フェーズ判定部１５０は、関節平均距離を重みで除算することで、関節平均距離を補正してもよい。図１１は、重みを説明するための図である。図１１において、横軸は、第１フレームデータのフレーム番号に対応し、縦軸は重みに対応する。例えば、各フレーム番号に対応する重みの合計を１とする。【００６６】
例えば、第２フレームデータＳ０がマッチする第１フレームデータは、その前の第２フレームデータＳ−１がマッチした第１フレームデータの近くの第１フレームデータである可能性が高い。例えば、第２フレームデータＳ−１がマッチした第１フレームデータを第１フレームデータｔ４とすると、第２フレームデータＳ０がマッチする第１フレームデータは、第１フレームデータｔ４の後でかつ、近くの第１フレームデータである可能性が高い。【００６７】
このため、前の第２フレームデータＳ−１がマッチした第１フレームデータよりも後の第１フレームで、マッチした第１フレームデータに近い第１フレームデータほど、重みを大きくする。また、マッチした第１フレームデータの近くでも、マッチした第１フレームデータの前のフレームでは、可能性が低いため、重みを小さくする。【００６８】
式（１）で算出した関節平均距離の値を重みで補正することにより、マッチングする第１フレームデータが前後したり、ジャンプすることを防止することができる。【００６９】
フェーズ判定部１５０は、他の第２フレームデータに対しても上記処理を繰り返し実行することで、各第２フレームデータに対応する第１フレームデータを判定し、各第２フレームデータのフェーズの種別を判定する。フェーズ判定部１５０は、第２フレームデータのうち、フェーズの種別がｓｔａｒｔからｅｎｄまでの第２フレームデータを抽出し、モーションデータとしてファイルに保存し、出力部１７０に出力する。【００７０】
スキル判定部１６０は、スキル判定定義データ１２０ｂと、フェーズの種別毎に抽出された第２フレームデータに含まれる特徴点から導き出される利用者の動作、姿勢、関節の特徴量とを基にして、フェーズの種別毎に、利用者のスキルを判定する処理部である。【００７１】
スキル判定部１６０の処理の一例について説明する。スキル判定部１６０は、スキル判定定義データ１２０ｂを参照し、判定モジュールを生成する。例えば、図４に示す例では、スキル判定部１６０は、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュールを生成する。【００７２】
スキル判定部１６０は、フェーズ判定部１５０から受け付けた第２フレームデータを、この第２フレームデータに対応するフェーズの種別と、スキル判定定義データ１２０ｂに基づき、対応するモジュールに第２フレームデータを出力する。モジュールは、第２フレームデータを受け付けると、スキル判定定義データ１２０ｂに定義されたデータを基にして、利用者のスキル判定の結果を出力する。【００７３】
図１２および図１３は、スキル判定部の処理を説明するための図である。図１２について説明する。スキル判定部１６０は、フェーズの種別が「ｓｔａｒｔ」の第２フレームデータＳ０を取得する。図４で示したように、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」の対象フェーズが「ｓｔａｒｔ―ｆｏｌｌｏｗ」であるため、スキル判定部１６０は、第２フレームデータＳ０を「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａに出力する。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の３次元座標を保存する。【００７４】
図４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０は、第２フレームデータＳ０を「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂに出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、比較位置と基準パラメータに基づき、第２フレームデータＳ０を評価することで、利用者のスキル判定を行い、判定結果を出力する。【００７５】
例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３５−１８０」に含まれる場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３０−１３５、１８０−１９０」に含まれる場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１１０−１３０、１９０−２００」に含まれる場合に、判定結果「悪い（Ｂａｄ）」を出力する。【００７６】
なお、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、判定結果とは別に、コメントを出力してもよい。例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１３０−１３５」に含まれる場合に、コメント「曲げ気味」を出力し、なす角が「１８０−１９０」に含まれる場合に、コメント「伸ばし気味」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂは、なす角が「１１０−１３０」に含まれる場合に、コメント「曲げすぎ」を出力し、なす角が「１９０−２００」に含まれる場合に、コメント「伸ばしすぎ」を出力する。【００７７】
図４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０は、第２フレームデータＳ０を「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃに出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、比較位置と基準パラメータに基づき、第２フレームデータＳ０を評価することで、利用者のスキル判定を行い、判定結果を出力する。【００７８】
例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２５−４０」に含まれる場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２０−２５、４０−５５」である場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「８−２０、５５−６０」である場合に、判定結果「悪い（Ｂａｄ）」を出力する。【００７９】
なお、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、判定結果とは別に、コメントを出力してもよい。例えば、「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「２０−２５」に含まれる場合に、コメント「立ち気味」を出力し、なす角が「４０−５５」に含まれる場合に、コメント「かがみ気味」を出力する。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃは、なす角が「８−２０」に含まれる場合に、コメント「立ちすぎ」を出力し、なす角が「５５−６０」に含まれる場合に、コメント「かがみすぎ」を出力する。【００８０】
続いて、図１３について説明する。スキル判定部１６０は、フェーズの種別が「ｆｏｌｌｏｗ」の第２フレームデータＳｍを取得する。図４で説明したように、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」の対象フェーズが「ｓｔａｒｔ−ｆｏｌｌｏｗ」であるため、スキル判定部１６０は、第２フレームデータＳｍを「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａに出力する。【００８１】
「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、比較位置と基準パラメータに基づき、第２フレームデータＳｍを評価することで、利用者のスキル判定を行い、判定結果を出力する。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「８ｃｍ未満」の場合に、判定結果「すばらしい（Ｅｘｃｅｌｌｅｎｔ）」を出力する。「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「８ｃｍ以上、１０ｃｍ未満」の場合に、判定結果「よい（Ｇｏｏｄ）」を出力する。「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「１０ｃｍ以上、２０ｃｍ未満」の場合に、判定結果「悪い（Ｂａｄ）」を出力する。【００８２】
「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、判定結果とは別に、コメントを出力してもよい。例えば、「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」モジュール１６０ａは、第２フレームデータＳ０の頭の特徴点の位置と、第２フレームデータＳｍの頭の特徴点の位置との差が「１０ｃｍ」以上である場合に、コメント「動きすぎ」を出力する。【００８３】
なお、図４で示したように、「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０は、第２フレームデータＳｍを「ＡｎｇｌｅＣｈｅｃｋｅｒ（１）」モジュール１６０ｂに出力しない。「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」の対象フェーズが「ｓｔａｒｔ−ｉｍｐａｃｔ」であるため、スキル判定部１６０は、第２フレームデータＳｍを「ＡｎｇｌｅＣｈｅｃｋｅｒ（２）」モジュール１６０ｃに出力しない。なお、スキル判定部１６０が、第２フレームデータを各モジュールに出力し、モジュールが、第２フレームデータを処理するか否かを個別に判定してもよい。【００８４】
スキル判定部１６０は、各モジュールの判定結果と、第２フレームデータとを対応付けた判定結果の情報とを、出力部１７０に出力する。【００８５】
出力部１７０は、画像情報、音声情報または利用者に対する肉体的な刺激によって、スキル判定部１６０の判定結果を出力する処理部である。以下において、出力部１７０の処理の一例について説明する。【００８６】
出力部１７０が、スキル判定部１６０の判定結果を基にして生成する表示画面について説明する。図１４は、出力部が生成する表示画面の一例を示す図（１）である。図１４に示すように、この表示画面２００には、自データ画面２００ａと、手本データ画面２００ｂと、スキル判定画面２００ｃとが含まれる。【００８７】
出力部１７０は、自データ画面２００ａに、スキル判定部１６０から取得する利用者の第２フレームデータを表示させる。また、出力部１７０は、第２フレームデータの各特徴点と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。図１４に示す例では、出力部１７０は、特徴点の頭にヘッド移動（１１ｃｍ、動きすぎ）を表示させる。出力部１７０は、特徴点の左肩に左肘角度（１５４°）を表示させる。【００８８】
出力部１７０は、手本データ画面２００ｂに、お手本データ１２０ａの第１フレームデータを表示させる。例えば、出力部１７０は、第１フレームデータのフェーズの種別を、自データ画面２００ａに表示させている第２フレームデータのフェーズの種別に対応させる。また、出力部１７０は、第１フレームデータの各特徴点と、動き、姿勢、関節の特徴量とを対応付けて表示させてもよい。図１４に示す例では、出力部１７０は、特徴点の頭にヘッド移動（９ｃｍ）を表示させる。出力部１７０は、特徴点の左肩に左肘角度（１５５°）を表示させる。【００８９】
出力部１７０は、スキル判定部１６０から取得するスキルの判定結果を、スキル判定画面２００ｃに表示させる。例えば、出力部１７０は、スキル判定名と、判定結果と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。【００９０】
出力部１７０は、図１４の表示画面を各第２フレームデータが取得されるたびに、２００ａ，２００ｂ、２００ｃをリアルタイムに更新してもよい。また、フェーズ種別が「Ｅｎｄ」を判定後に、ｓｔａｒｔ−ｅｎｄまでのフレームデータを本画面と同様な画面で再生してもよい。【００９１】
また、出力部１７０は、図１４の表示画面２００の自データ画面２００ａにおいて、第２フレームデータのフェーズを順に変化させ、それに合わせて、手本データ画面２００ｂ、スキル判定画面２００ｃの内容を切り替える処理を行ってもよい。【００９２】
出力部１７０は、各フェーズの種別と、第２フレームデータと、判定結果とを対応付けて表示画面を生成してもよい。図１５は、出力部が生成する表示画面の一例を示す図（２）である。図１５の表示画面２１０に示すように、出力部１７０は、各フェーズの種別の第２フレームデータと、判定結果とを対応付けて表示する。例えば、出力部１７０は、スキル判定名と、判定結果と、動き、姿勢、関節の特徴量と、コメントとを対応付けて表示させてもよい。また、出力部１７０は、３Ｄの骨格情報に加えて、画像情報を合わせて表示させてもよい。【００９３】
続いて、出力部１７０が判定結果を基にして、音声情報を出力する場合の処理について説明する。出力部１７０は、スキル判定部１６０から出力される判定結果に合わせて、スキル結果や直すべきポイントを音声で出力させてもよい。例えば、出力部１７０は、ヘッド移動に関する判定結果がＢａｄである場合には、「頭が動きすぎです」という音声を出力させる。どの判定結果に対してどの音声を出力するのかは、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０は音声を出力する。【００９４】
続いて、出力部が利用者に対する肉体的な刺激によって、判定結果を通知する場合の処理について説明する。利用者は、小型モータを含む装備を装着し、出力部１７０は、判定結果に合わせて小型モータを動作させる。例えば、出力部１７０は、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、小型モータの回転数を変化させる。判定結果に対する小型モータの回転数は、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０は小型モータを回転させる。【００９５】
利用者は、ペルチェ素子等の冷却デバイスを装着し、出力部１７０は、判定結果に合わせて冷却デバイスを冷却させる。例えば、出力部１７０は、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、冷却デバイスの温度を変化させる。判定結果に対する冷却デバイスの温度は、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０は冷却デバイスを制御する。【００９６】
利用者は、低周波電流の流れるデバイスを装着し、出力部１７０は、判定結果に合わせてデバイスに電流を発生させる。例えば、出力部１７０は、各種の判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に応じて、電流の大きさを変化させる。判定結果に対する電流の大きさは、事前にテーブル等に設定されており、係るテーブルを基にして、出力部１７０はデバイスを制御する。【００９７】
更に、出力部１７０は、パワードスーツや人工筋肉を利用者に装着させ、専門家のモーションデータに合わせてパワードスーツや人工筋肉を動かすことで、利用者に専門家の動きを体感させてもよい。【００９８】
次に、本実施例に係るスキル判定装置１００の処理手順について説明する。図１６は、スキル判定装置の処理手順を示すフローチャートである。図１６に示すように、スキル判定装置１００のフェーズ判定部１５０は、お手本データ１２０ａを読み込む（ステップＳ１０１）。スキル判定装置１００のスキル判定部１６０は、スキル判定定義データ１２０ｂを読み込む（ステップＳ１０２）。【００９９】
スキル判定部１６０は、スキル判定定義データ１２０ｂに基づいて、モジュールを生成し、パラメータをセットする（ステップＳ１０３）。フェーズ判定部１５０は、利用者のモーションデータの取得を開始する（ステップＳ１０４）。スキル判定装置１００は、入力装置を介して、終了イベントを検知したか否かを判定する（ステップＳ１０５）。【０１００】
スキル判定装置１００は、入力装置を介して、終了イベントを検知した場合には（ステップＳ１０５，Ｙｅｓ）、フェーズ判定部１５０が利用者のモーションデータ取得終了処理を実行する（ステップＳ１０６）。【０１０１】
一方、スキル判定装置１００は、入力装置を介して、終了イベントを検知していない場合には（ステップＳ１０５，Ｎｏ）、入力装置を介して、スキル判定処理のイベントを検知したか否かを判定する（ステップＳ１０７）。スキル判定装置１００は、入力装置を介して、スキル判定処理のイベントを検知した場合には（ステップＳ１０７，Ｙｅｓ）、スキル判定部１６０がスキル判定処理を実行し（ステップＳ１０８）、ステップＳ１０５に移行する。なお、スキル判定処理のイベントは、センシング部１１０ａがモーションセンサからフレームデータ取得時に発生するイベントである。【０１０２】
一方、スキル判定装置１００は、入力装置を介して、再生処理のイベントを検知した場合には（ステップＳ１０７，Ｎｏ）、スキル判定装置１００の出力部１７０が再生処理を実行し（ステップＳ１０９）、ステップＳ１０５に移行する。【０１０３】
次に、ステップＳ１０８に示したスキル判定処理の処理手順について説明する。図１７は、スキル判定処理の処理手順を示すフローチャートである。図１７に示すように、スキル判定装置１００のフェーズ判定部１５０は、第２フレームデータをメモリに保存する（ステップＳ２０１）。フェーズ判定部１５０は、第２フレームデータを補正する（ステップＳ２０２）。【０１０４】
フェーズ判定部１５０は、第２フレームデータの特徴量を計算する（ステップＳ２０３）。フェーズ判定部１５０は、お手本データ１２０ａの中から第２フレームデータと一番特徴量の近い第１フレームデータを抽出する（ステップＳ２０４）。フェーズ判定部１５０は、第１フレームデータに対応するフェーズの種別を抽出し、抽出したフェーズの種別を第２フレームデータに付与する（ステップＳ２０５）。なお、フェーズの種別とは、図６の５０ａに示すように「ｓｔａｒｔ」,「ｂａｃｋｓｗｉｎｇ」等のフレーム番号に１対１に対応するフェーズ種別だけでなく、「ｓｔａｒｔ」から「ｂａｃｋｓｗｉｎｇ」の間にあるフェーズを表すフェーズ種別も含む。【０１０５】
フェーズ判定部１５０は、抽出したフェーズの種別がＳｔａｒｔからＥｎｄ内であるかを判定する（ステップＳ２０６）。フェーズ判定部１５０は、フェーズの種別がｓｔａｒｔからＥｎｄ内でない場合には（ステップＳ２０６，Ｎｏ）、Ｓ２０１において格納した第２フレームデータをメモリから削除し（ステップＳ２１３）、スキル判定処理を終了する。【０１０６】
一方、フェーズの種別がｓｔａｒｔからＥｎｄ内である場合には（ステップＳ２０６，Ｙｅｓ）、スキル判定部１６０は、フェーズの種別に対応するモジュールに対して、第２フレームデータを出力し、スキルを判定する（ステップＳ２０７）。出力部１７０は、判定結果を出力する（ステップＳ２０８）。【０１０７】
フェーズ判定部１５０は、抽出したフェーズの種別がＥｎｄであるか否かを判定する（ステップＳ２０９）。フェーズ判定部１５０は、抽出したフェーズの種別がＥｎｄでない場合には（ステップＳ２０９，Ｎｏ）、スキル判定処理を終了する。【０１０８】
一方、フェーズ判定部１５０は、抽出したフレームの種別がＥｎｄである場合には（ステップＳ２０９，Ｙｅｓ）、ステップＳ２１０に移行する。フェーズ判定部１５０は、メモリに保存された第２フレームデータの中からフェーズの種別がＳｔａｒｔからＥｎｄまでの一連の第２フレームデータを抽出し、モーションデータとしてファイルに保存する（ステップＳ２１０）。出力部１７０は、一連のモーションデータの判定結果を出力し（ステップＳ２１１）、Ｓ２０１において格納した第２フレームデータをメモリから削除し（ステップＳ２１２）、スキル判定処理を終了する。【０１０９】
次に、お手本データ生成部１３０およびスキル判定定義部１４０が実行する設定処理の処理手順について説明する。図１８は、設定処理の処理手順を示すフローチャートである。図１８に示すように、スキル判定装置１００は、イベント検知したか否かを判定する（ステップＳ３０１）。スキル判定装置１００は、イベント検知していない場合には（ステップＳ３０１，Ｎｏ）、再度ステップＳ３０１に移行する。【０１１０】
スキル判定装置１００は、モーションデータ取得選択のイベントを検知した場合には（ステップＳ３０１，モーションデータ取得選択）ステップＳ３０２に移行する。お手本データ生成部１３０またはスキル判定定義部１４０は、モーションデータを取得してメモリに保存し（ステップＳ３０２）、ステップＳ３０１に移行する。【０１１１】
スキル判定装置１００は、フェーズ設定選択のイベントを検知した場合には（ステップＳ３０１、フェーズ設定選択）、ステップＳ３０３に移行する。お手本データ生成部１３０は、フェーズの種別とフレーム番号とをメモリに保存し（ステップＳ３０３）、ステップＳ３０１に移行する。【０１１２】
スキル判定装置１００は、スキル判定定義選択のイベントを検知した場合には（ステップＳ３０１，スキル判定定義選択）、ステップＳ３０４に移行する。スキル判定定義部１４０は、利用するモジュール名、スキル判定名、パラメータ定義をメモリに保存し（ステップＳ３０４）、ステップＳ３０１に移行する。【０１１３】
スキル判定装置１００は、保存選択のイベントを検知した場合には（ステップＳ３０１，保存選択）、お手本データ生成部１３０は、メモリに保存されたモーションデータおよびフェーズの種別、フレーム番号の対応関係をファイルに出力する（ステップＳ３０５）。スキル判定定義部１４０は、メモリに保存されたスキル判定定義データ１２０ｂをファイルに出力し（ステップＳ３０６）、ステップＳ３０１に移行する。【０１１４】
次に、本実施例に係るスキル判定装置１００の効果について説明する。スキル判定装置１００は、フェーズの種別毎に対応する第２フレームデータを利用者のモーションデータから抽出し、スキル判定定義データ１２０ｂを基にして、フェーズの種別毎の第２フレームデータに対して利用者のスキルを判定する。このため、スキル判定装置１００によれば、汎用的に、利用者のスキルを自動で判定することができる。【０１１５】
例えば、スキル判定定義部１４０は、入力装置からの情報を基にして、スキル判定を行うスキル判定定義データ１２０ｂを適宜更新し、スキル判定部１６０は、係るスキル判定定義データ１２０ｂを基にして、スキル判定を行う。従来技術では、スキル判定のためのロジックが埋め込まれているため、スキル判定対象が固定されているが、スキル判定定義部１４０により適宜、スキル判定定義データ１２０ｂを更新可能であるため、汎用性を高めることができる。また、スキル判定定義データ１２０ｂは、モジュールおよびパラメータ定義の組み合わせで定義されるものであるため、他の対象で定義したモジュール、パラメータ定義を別対象に再利用することが容易である。【０１１６】
また、スキル判定装置１００は、スキルの判定結果を利用者のモーションデータと専門家のモーションデータとを対応付けて、表示画面に表示する。これにより、専門家がそばにいなくても、利用者自身で改善すべき点が分かる。また、画面をいちいち気にしないで、スイングを行った後からプレイバックして改善点を把握することができる。また、利用者自身と専門家との差を比較して、スキル向上に役立てることができる。また、利用者の第２フレームデータは、フェーズの種別と対応付けて管理されるため、解析などを行う場合の取り扱いを容易にすることができる。【０１１７】
スキル判定装置１００は、お手本データ１２０ａと、利用者のモーションデータに含まれる各第２フレームデータとを比較して、第２フレームデータに対応するフェーズの種別を判定し、フェーズの種別毎に第２フレームデータを抽出する。例えば、スキル判定装置１００は、各第１フレームデータと第２フレームデータとの類似度から、第２フレームデータに対応する第１フレームデータを特定し、係る第１フレームデータに対応するフェーズの種別を、第２フレームデータの種別と判定する。このため、利用者の第２フレームデータの種別を精度よく判定することができ、スキル判定精度を向上させることができる。【０１１８】
スキル判定装置１００は、マッチングを行う場合に、第１フレームデータと第２フレームデータの類似度を重みで補正する。この重みは、前回選択した第１フレームデータの時刻と、今回類似度の算出対象となる第１フレームデータの時刻に基づいて、図１１により決定されるものである。これにより、第２フレームデータとマッチングする第１フレームデータが前後したり、ジャンプすることを防止することができる。【０１１９】
スキル判定装置１００は、画像情報、音声情報または利用者に対する肉体的な刺激によって、スキルの判定結果を出力する。これにより、利用者のスキルアップを様々な通知方法によって支援することができる。【０１２０】
ところで、上述したスキル判定装置１００の処理は一例である。以下では、スキル判定装置１００が実行するその他の処理について説明する。【０１２１】
例えば、スキル判定装置１００の機能をネットワーク上のサーバに持たせてもよい。サーバは、利用者や専門家の端末装置からモーションデータを取得して、蓄積する。また、サーバは、お手本データ１２０ａ、スキル判定定義データ１２０ｂを保存しておく。サーバは、利用者の端末装置からアクセスを受け付けた場合には、端末装置のＷｅｂ画面上に、モーションデータやスキルの判定結果を表示させる。【０１２２】
スキル判定定義部１４０は、入力装置からの入力を受け付けてスキル判定定義データ１２０ｂを生成していたが、お手本データ１２０ａを基にして、自動的にスキル判定データ１２０ｂを生成してもよい。例えば、スキル判定定義部１４０は、お手本データ１２０ａを解析し、スキル判定の該当パラメータの平均値等の統計処理を行った結果を、スキル判定定義データ１２０ｂに設定する。例えば、お手本データ１２０ａに含まれる第１フレームデータの頭の特徴点の移動量の平均値をαとする。この場合には、スキル判定定義部１４０は、モジュール名「ＰｏｓｉｔｉｏｎＣｈｅｃｋｅｒ」のレコードの基準パラメータを「α、α＋ａ、α＋２ａ」とする。ａは、適宜設定される数値である。【０１２３】
スキル判定部１６０は、第２フレームデータ毎にスキルを判定し判定結果を出力していたがこれに限定されるものではない。スキル判定部１６０は、各スキル判定結果を総合得点に換算して表示してもよい。例えば、図１５に示したように、スキル判定部１６０は、フェーズ毎にスキル判定を行っているが、ｓｔａｒｔからｅｎｄまでの判定結果を総合得点に換算して、総合得点を表示させてもよい。判定結果「Ｅｘｃｅｌｌｔｅｎｔ、Ｇｏｏｄ、Ｂａｄ」に付与する点数をいくつにするのかは、予め設定される。【０１２４】
スキル判定部１６０は、利用者のモーションデータだけではなく、お手本データのモーションデータに対してもスキル判定処理を行ってもよい。この場合には、出力部１７０は、お手本データ１２０ａのモーションデータに対する判定結果と、利用者のモーションデータに対する判定結果との差分を表示してもよい。【０１２５】
出力部１７０が出力するモーションデータの見せ方は固定でなくてもよい。例えば、出力部１７０は、入力装置からの操作を受け付けて、モーションデータの背面や側面、上側等の別角度で表示してもよい。また、出力部１７０は、利用者のモーションデータの見せ方の変化に連動させて、お手本データ１２０ａのモーションデータも見せ方を変化させてもよい。【０１２６】
ところで、上記実施例では、ゴルフのスキル判定を行う場合について説明したが、本実施例に係るスキル判定装置１００は、ゴルフ以外のその他のスポーツ等にも適用可能である。例えば、スキル判定装置１００は、テニス、陸上、ダンス、料理器具の使い方、楽器演奏などに適用することができる。【０１２７】
次に、上記実施例に示したスキル判定装置１００と同様の機能を実現するスキル判定プログラムを実行するコンピュータの一例について説明する。図１９は、スキル判定プログラムを実行するコンピュータの一例を示す図である。【０１２８】
図１９に示すように、コンピュータ３００は、加速度センサ、モーションセンサ等の入力デバイス３５０ａと、スピーカ、振動デバイス等の出力デバイス３５０ｂに接続させる。コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、各種情報を一時記憶する一次記憶部３０２と、ディスプレイ等の表示部３０３と、入力装置等の操作部３０４とを有する。コンピュータ３００は、入力デバイス３５０ａとデータをやり取りするデバイスＩＦ３０５と、出力デバイス３５０ｂとデータをやり取りするデバイスＩＦ３０６を有する。また、コンピュータ３００は、ハードディスクドライブ等に対応する二次記憶部３０７を有する。【０１２９】
二次記憶部３０７は、スキル判定プログラム３０７ａと、スキル設定プログラム３０７ｂと、各種データ３０７ｃを有する。スキル判定プログラム３０７ａは、ＣＰＵ３０１に読み出され、実行されることで、図１のフェーズ判定部１５０、スキル判定部１６０、出力部１７０に対応する処理を行う。スキル設定プログラム３０７ｂは、ＣＰＵ３０１に読み出され、実行されることで、図１のお手本データ生成部１３０、スキル設定定義部１４０に対応する処理を行う。また、各種データ３０７ｃは、お手本データ１２０ａ、スキル判定定義データ１２０ｂ、利用者のモーションデータ等に対応する。【０１３０】
なお、各プログラム３０７ａ，３０７ｂについては、必ずしも最初から二次記憶部３０７に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ，３０７ｂを読み出して実行するようにしてもよい。
【実施例２】
【０１３１】
図２０は、本実施例２に係るシステムの構成を示す図である。図２０に示すように、このシステムは、利用者端末４００ａ，４００ｂ，４００ｃと、サーバ５００とを有する。利用者端末４００ａ〜４００ｃと、サーバ５００とは、ネットワーク５０を介して相互に接続される。ここでは一例として、利用者端末４００ａ〜４００ｃを示すが、その他の利用者端末が、ネットワーク５０に接続されていても良い。以下の説明では、利用者端末４００ａ〜４００ｂをまとめて、適宜、利用者端末４００と表記する。【０１３２】
利用者端末４００は、上記実施例１に示したスキル判定装置１００と同様の機能を有する。利用者端末４００は、利用者のモーションデータを取得して、利用者のスキルを判定し、スキルの判定結果を、サーバ５００に通知する処理部である。なお、利用者端末４００は、スキル判定装置１００に接続して、接続先のスキル判定装置１００から、利用者のスキルの判定結果を取得しても良い。【０１３３】
利用者は、利用者端末４００を操作して、サーバ５００にアクセスし、サーバ５００に蓄積された過去のスキルの判定結果を参照する。【０１３４】
サーバ５００は、各利用者端末４００から、スキルの判定結果の情報を受信し、保持する。また、サーバ５００は、利用者端末から、スキルの判定結果の情報に対するアクセスを受け付けた場合には、該当するスキルの判定結果を利用者端末４００に通知する。【０１３５】
ここで、サーバ５００は、利用者端末４００に、スキルの判定結果の情報を通知する場合に、スキル判定を行ったスポーツの種別に直接的または間接的に関連する広告バーナーを、利用者端末４００の表示画面に表示させる。また、サーバ５００は、利用者のスキルの判定結果に応じた商品の情報を表示画面に表示させる。例えば、サーバ５００は、スポーツの種別が、ゴルフの場合には、ゴルフ関連の広告バーナーを表示させると共に、スキルにあったゴルフ商品の情報を、利用者端末４００に通知する。なお、ゴルフ以外にも、野球、テニス、陸上、ダンス、料理器具の使い方、楽器演奏に対しても同様に、広告バーナーや、商品の情報を利用者端末４００に通知しても良い。【０１３６】
図２１は、本実施例２に係るサーバの構成を示す機能ブロック図である。図２１に示すように、このサーバ５００は、通信部５１０と、記憶部５２０と、制御部５３０とを有する。【０１３７】
通信部５１０は、ネットワーク５０を介して、各利用者端末４００とデータ通信を実行する処理部である。通信部５１０は、通信装置に対応する。後述する制御部５３０は、通信部５１０を介して、各利用者端末４００とデータをやり取りする。【０１３８】
記憶部５２０は、スキル判定結果テーブル５２０ａと、個人情報テーブル５２０ｂと、バーナー情報テーブル５２０ｃと、商品テーブル５２０ｄとを有する。記憶部５２０は、例えば、ＲＡＭ（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の数が減少している場合または変化がない場合には、該当する専門家の評価値を小さくする補正を行っても良い。【０２０７】
次に、本実施例４に係るサーバ７００の処理手順の一例について説明する。図３６は、本実施例４に係るサーバの処理手順を示すフローチャートである。図３６に示すように、サーバ７００の受付部７３０ａは、利用者端末４００から、専門家のお手本データの要求を受け付ける（ステップＳ５０１）。【０２０８】
ここで、サーバ７００は、利用者自身が専門家のお手本データを選択する場合には（ステップＳ５０２，Ｙｅｓ）、ステップＳ５０３に移行する。一方、利用者自身が専門家のお手本データを選択しない場合には（ステップＳ５０２，Ｎｏ）、ステップＳ５０６に移行する。【０２０９】
ステップＳ５０３以降の処理について説明する。サーバ７００の受付部７３０ｂは、専門家のプロフィール情報と、お手本データと、評価値とを対応付けて、利用者端末４００に表示させる（ステップＳ５０３）。【０２１０】
受付部７３０ｂは、お手本データの選択を受け付けたか否かを判定する（ステップＳ５０４）。受付部７３０ｂは、お手本データの選択を受け付けていない場合には（ステップＳ５０４，Ｎｏ）、再度、ステップＳ５０４に移行する。【０２１１】
一方、受付部７３０ｂは、お手本データの選択を受け付けた場合には（ステップＳ５０４，Ｙｅｓ）、選択を受け付けたお手本データを利用者端末４００に通知する（ステップＳ５０５）。【０２１２】
ステップＳ５０６以降の処理について説明する。サーバ７００の選択部７３０ｃは、利用者端末４００から、利用者識別情報を取得する（ステップＳ５０６）。選択部７３０ｃは、利用者に適切なお手本データを選択する（ステップＳ５０７）。サーバ７００は、選択部７３０ｃに選択されたお手本データを、利用者端末４００に通知する（ステップＳ５０８）。【０２１３】
次に、本実施例４に係るサーバ７００の効果について説明する。サーバ７００は、専門家のお手本データを利用者端末４００に表示し、専門家のお手本データの選択を受け付けると、選択を受け付けたお手本データを、利用者端末４００に通知する。または、サーバ７００は、利用者に適した専門家のお手本データを選択し、選択した専門家のお手本データを、利用者端末４００に通知する。このため、利用者は、自分に適した専門家のお手本データを用いてスキル判定を行うことができる。【０２１４】
次に、上記実施例に示したサーバ５００、６００、７００と同様の機能を実現する制御プログラムを実行するコンピュータの一例およびハードウェア構成について説明する。図３７は、制御プログラムを実行するコンピュータの一例を示す図である。【０２１５】
図３７に示すように、コンピュータ８００は、各種演算処理を実行するＣＰＵ８０１と、ユーザからのデータの入力を受け付ける入力装置８０２と、ディスプレイ８０３とを有する。また、コンピュータ８００は、記憶媒体からプログラム等を読取る読み取り装置８０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置８０５とを有する。また、コンピュータ８００は、各種情報を一時記憶するＲＡＭ８０６と、ハードディスク装置８０７とを有する。そして、各装置８０１〜８０７は、バス８０８に接続される。【０２１６】
ハードディスク装置８０７は、制御プログラム８０７ａを有する。ＣＰＵ８０１は、制御プログラム８０７ａを読み出してＲＡＭ８０６に展開する。制御プログラム８０７ａは、制御プロセス８０６ａとして機能する。例えば、制御プロセス８０６ａは、図２１に示した、取得部５３０ａ、受付部５３０ｂ、検索部５３０ｃ、画面生成部５３０ｄに対応する。または、制御プロセス８０６ａは、図２９に示した、取得部６３０ａ、分類部６３０ｂ、ＳＮＳ提供部６３０ｃに対応する。または、制御プロセス８０６ａは、図３４に示した、取得部７３０ａ、受付部７３０ｂ、選択部７３０ｃ、通知部７３０ｄに対応する。【０２１７】
なお、制御プログラム８０７ａについては、必ずしも最初からハードディスク装置８０７に記憶させておかなくても良い。例えば、コンピュータ８００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ８００が制御プログラム８０７ａを読み出して実行するようにしてもよい。
【符号の説明】
【０２１８】
１００  スキル判定装置
１３０  お手本データ生成部
１４０  スキル判定定義部
１５０  フェーズ判定部
１６０  スキル判定部
５００，６００，７００  サーバ
【図１】
2016056449.tif 000004
【図２】
2016056449.tif 000005
【図３】
2016056449.tif 000006
【図４】
2016056449.tif 000007
【図５】
2016056449.tif 000008
【図６】
2016056449.tif 000009
【図７】
2016056449.tif 000010
【図８】
2016056449.tif 000011
【図９】
2016056449.tif 000012
【図１０】
2016056449.tif 000013
【図１１】
2016056449.tif 000014
【図１２】
2016056449.tif 000015
【図１３】
2016056449.tif 000016
【図１４】
2016056449.tif 000017
【図１５】
2016056449.tif 000018
【図１６】
2016056449.tif 000019
【図１７】
2016056449.tif 000020
【図１８】
2016056449.tif 000021
【図１９】
2016056449.tif 000022
【図２０】
2016056449.tif 000023
【図２１】
2016056449.tif 000024
【図２２】
2016056449.tif 000025
【図２３】
2016056449.tif 000026
【図２４】
2016056449.tif 000027
【図２５】
2016056449.tif 000028
【図２６】
2016056449.tif 000029
【図２７】
2016056449.tif 000030
【図２８】
2016056449.tif 000031
【図２９】
2016056449.tif 000032
【図３０】
2016056449.tif 000033
【図３１】
2016056449.tif 000034
【図３２】
2016056449.tif 000035
【図３３】
2016056449.tif 000036
【図３４】
2016056449.tif 000037
【図３５】
2016056449.tif 000038
【図３６】
2016056449.tif 000039
【図３７】
2016056449.tif 000040
【国際調査報告】
2016056449.tif 000041
2016056449.tif 000042
2016056449.tif 000043
2016056449.tif 000044