(57)【要約】【課題】ユーザが表情筋のトレーニングを効果的に行うことのできるトレーニングプログラムおよびトレーニング装置を提供すること。【解決手段】予め用意された複数の課題表情のうちの１つが画面に表示される。ユーザに課題表情が提示された後、カメラカートリッジ３８によって撮像されたユーザの顔画像から顔特徴点の位置が検出される。検出された顔特徴点の位置に基づいて、課題表情に対応する評価基準に従って顔画像におけるユーザの表情が評価され、その評価結果を示す画像が画面に表示される。【選択図】図１１
2008264367.tif 000002
【特許請求の範囲】
【請求項１】
表情筋のトレーニングを支援するためのトレーニングプログラムであって、
コンピュータに、
予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する選択ステップ、
前記コンピュータに接続された撮像装置よりユーザの顔画像を取得する顔画像取得ステップ、
前記顔画像取得ステップで取得された顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置を検出する顔特徴点検出ステップ、
前記複数の課題表情毎に予め設定された評価基準のうち、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された顔特徴点の位置に基づいて前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する評価ステップ、および、
前記評価ステップの評価結果を画像又は音声によりユーザに提示する評価結果提示ステップを実行させる、トレーニングプログラム。
【請求項２】
課題表情に応じて参照すべき顔特徴点が変わるように前記評価基準が設定されており、
前記評価ステップでは、前記選択ステップで選択された課題表情に応じて異なる顔特徴点の位置を参照して、前記顔画像におけるユーザの表情を評価する、請求項１に記載のトレーニングプログラム。
【請求項３】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から、前記選択ステップで選択された課題表情に対応する少なくとも２つの顔特徴点の位置を検出し、
前記評価ステップでは、前記顔特徴点検出ステップで検出された前記２つの顔特徴点の間の位置関係に基づいて前記顔画像におけるユーザの表情を評価する、請求項１に記載のトレーニングプログラム。
【請求項４】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記２つの顔特徴点の間の距離を算出するステップと、当該算出された距離に基づいて前記顔画像におけるユーザの表情を評価するステップとを含む、請求項３に記載のトレーニングプログラム。
【請求項５】
前記複数の課題表情毎に目標距離データが予め設定されており、
前記評価ステップでは、前記距離を算出するステップにより算出された距離と、前記複数の課題表情毎に予め設定された目標距離データのうちの前記選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項４に記載のトレーニングプログラム。
【請求項６】
前記評価ステップでは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点の標準位置との間の位置関係に基づいて前記顔画像におけるユーザの表情を評価する、請求項１に記載のトレーニングプログラム。
【請求項７】
前記複数の課題表情毎に目標距離データが予め設定されており、
前記評価ステップは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、前記記憶装置に格納されている当該顔特徴点の標準位置との間の距離を算出するステップと、当該算出された距離と、前記複数の課題表情毎に予め設定された目標距離データのうちの前記選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップとを含む、請求項６に記載のトレーニングプログラム。
【請求項８】
前記トレーニングプログラムは、前記コンピュータに、
少なくとも前記顔画像取得ステップよりも前に、前記撮像手段よりユーザの無表情時の顔画像を標準顔画像として取得する標準顔画像取得ステップ、
前記標準顔画像取得ステップで取得された顔画像における予め定められた顔特徴点の位置を検出する標準位置検出ステップ、および、
前記標準位置検出ステップで検出された顔特徴点の位置を当該顔特徴点の標準位置として記憶装置に格納する標準位置記憶ステップをさらに実行させる、請求項６に記載のトレーニングプログラム。
【請求項９】
前記標準位置検出ステップでは、前記標準顔画像取得ステップで取得された顔画像における複数の顔特徴点の位置を検出し、
前記標準位置記憶ステップでは、前記複数の顔特徴点の位置を前記記憶装置にそれぞれ格納し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップにより取得された顔画像から前記複数の顔特徴点の位置を検出し、
複数の課題表情毎に、顔画像の評価に利用する顔特徴点として、前記複数の顔特徴点のうちいずれかが予め指定されており、
前記評価ステップでは、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された前記複数の顔特徴点のうち前記選択手段によって選択された課題表情に応じた顔特徴点の位置と、前記標準位置記憶ステップにより格納されている前記複数の顔特徴点のうち前記選択手段によって選択された課題表情に応じた顔特徴点の位置とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項８に記載のトレーニングプログラム。
【請求項１０】
前記評価ステップは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、前記記憶装置に格納されている当該顔特徴点に対応する基準位置との間の距離を算出するステップと、当該算出された距離に基づいて前記顔画像におけるユーザの表情を評価するステップとを含む、請求項６に記載のトレーニングプログラム。
【請求項１１】
前記評価ステップでは、複数の課題表情毎に予め設定された評価基準のうち、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された顔特徴点の位置に基づいて前記顔画像取得ステップで取得された顔画像の得点を計算し、
前記評価結果提示ステップでは、前記評価ステップで算出された前記得点を画像又は音声によりユーザに提示する、請求項１に記載のトレーニングプログラム。
【請求項１２】
前記顔画像取得ステップでは、所定期間において撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置を、前記顔画像取得ステップで取得された複数の顔画像からそれぞれ検出し、
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項１に記載のトレーニングプログラム。
【請求項１３】
前記顔画像取得ステップでは、一定の周期で顔画像を取得する、請求項１２に記載のトレーニングプログラム。
【請求項１４】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点をそれぞれ計算するステップと、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像のうち、得点が一定値以下のまたは比較的得点の低い少なくとも１つの顔画像の得点を除いた他の得点を用いて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項１２に記載のトレーニングプログラム。
【請求項１５】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点をそれぞれ計算するステップと、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点の平均を求め、当該平均を用いて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項１２に記載のトレーニングプログラム。
【請求項１６】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像のそれぞれについて、各前記顔画像における顔特徴点の位置に基づいて、当該各顔画像が前記課題表情に近いほど高い評価となるように、当該各顔画像におけるユーザの表情を評価する第１評価ステップと、当該第１評価ステップの評価結果に基づいて、撮像タイミングが遅い顔画像ほど評価がより高くなっているかどうかに応じてユーザの表情を評価する第２評価ステップとを含む、請求項１２に記載のトレーニングプログラム。
【請求項１７】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、撮像タイミングが遅い顔画像ほど得点がより高くなっているかどうかに応じて少なくとも１つの顔画像の得点を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含む、請求項１６に記載のトレーニングプログラム。
【請求項１８】
前記トレーニングは、無表情から課題表情へと一定速度で滑らかに表情変化させるトレーニングであり、
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点を、当該各顔画像が前記課題表情に近いほど高くなるようにそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じてユーザの表情を評価するステップとを含む、請求項１３に記載のトレーニングプログラム。
【請求項１９】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じて少なくとも１つの顔画像の得点を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含む、請求項１８に記載のトレーニングプログラム。
【請求項２０】
前記顔画像取得ステップでは、撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された各顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、当該複数の顔画像の得点の最高値、最低値、平均値または部分平均値の少なくともいずれかを計算するステップと、当該最高値、最低値、平均値または部分平均値に応じてユーザの表情を評価するステップとを含む、請求項１に記載のトレーニングプログラム。
【請求項２１】
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、前記複数の顔画像のうちの比較的得点の高い一部の顔画像の得点の平均値を当該複数の顔画像の部分平均値として計算するステップと、当該部分平均値に応じてユーザの表情を評価するステップとを含む、請求項２０に記載のトレーニングプログラム。
【請求項２２】
前記顔画像取得ステップでは、所定期間に撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された各顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、
前記評価ステップは、前記所定期間を構成する複数の区間のそれぞれについて、当該区間に取得された複数の顔画像における顔特徴点の位置に基づいて当該複数の顔画像のそれぞれの点数を計算するステップ、当該区間に取得された複数の顔画像の得点に基づいて当該区間の区間得点を計算するステップ、前記複数の区間の区間得点に基づいてユーザの表情を評価するステップとを含む、請求項１に記載のトレーニングプログラム。
【請求項２３】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から少なくとも第１顔特徴点と第２顔特徴点の２つの顔特徴点の位置を検出し、
前記評価ステップは、前記顔特徴点検出ステップで検出された前記第１顔特徴点の位置と、記憶装置に格納されている当該第１顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第２顔特徴点の位置と、前記記憶装置に格納されている当該第２顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を減点するステップとを含む、請求項１に記載のトレーニングプログラム。
【請求項２４】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から少なくとも第１顔特徴点と第２顔特徴点の２つの顔特徴点の位置を検出し、
前記評価ステップは、前記顔特徴点検出ステップで検出された前記第１顔特徴点の位置と、記憶装置に格納されている当該第１顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第２顔特徴点の位置と、前記記憶装置に格納されている当該第２顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第１顔特徴点の位置と、前記顔特徴点検出ステップで検出された前記第２顔特徴点の位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を変化させるステップとを含む、請求項１に記載のトレーニングプログラム。
【請求項２５】
前記トレーニングプログラムは、前記コンピュータに、
前記顔特徴点検出ステップの後、当該顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点の位置に基づいて顔座標系の原点および座標軸を設定する顔座標系設定ステップ、および、
当該顔特徴点検出ステップで検出された各顔特徴点の位置を示す座標を、前記顔座標系設定ステップで設定された顔座標系の座標へと座標変換するステップをさらに実行させる、請求項１に記載のトレーニングプログラム。
【請求項２６】
前記顔座標系設定ステップでは、前記顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点を結ぶ直線の方向に基づいて前記顔座標系の座標軸の方向を設定する、請求項２５に記載のトレーニングプログラム。
【請求項２７】
前記顔座標系設定ステップでは、前記顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点の距離に基づいて前記顔座標系の座標軸のスケールを設定する、請求項２５に記載のトレーニングプログラム。
【請求項２８】
前記選択ステップで選択された課題表情に対応するお手本画像を画面に表示するステップを前記コンピュータにさらに実行させる、請求項１に記載のトレーニングプログラム。
【請求項２９】
前記お手本画像がアニメーション画像である、請求項２８に記載のトレーニングプログラム。
【請求項３０】
前記撮像装置によって撮像されたユーザの顔画像を画面に表示するステップを前記コンピュータにさらに実行させる、請求項１に記載のトレーニングプログラム。
【請求項３１】
前記選択ステップで選択された課題表情に対応するお手本画像と、前記撮像装置によって撮像されたユーザの顔画像とを同一または異なる画面に同時に表示するステップを前記コンピュータにさらに実行させる、請求項１に記載のトレーニングプログラム。
【請求項３２】
表情筋のトレーニングを支援するためのトレーニング装置であって、
予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する選択手段、
撮像装置よりユーザの顔画像を取得する顔画像取得手段、
前記顔画像取得手段によって取得された顔画像から、少なくとも前記選択手段によって選択された課題表情に関連する顔特徴点の位置を検出する顔特徴点検出手段、
前記複数の課題表情毎に予め設定された評価基準のうち、前記選択手段によって選択された課題表情に対応する評価基準に従って、前記顔特徴点検出手段によって検出された顔特徴点の位置に基づいて前記顔画像取得手段によって取得された顔画像におけるユーザの表情を評価する評価手段、および、
前記評価手段の評価結果を画像又は音声によりユーザに提示する評価結果提示手段を備える、トレーニング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、トレーニングプログラムおよびトレーニング装置に関し、特に、表情筋のトレーニングを支援するためのトレーニングプログラムおよびトレーニング装置に関する。
【背景技術】
【０００２】
従来、プレイヤの顔を撮像手段によって撮像し、撮像された顔画像を利用してプレイヤ同士で勝負することが可能なゲーム装置がある（例えば、特許文献１を参照）。このゲーム装置では、顔画像を読み込み、読み込んだ顔画像の顔特徴点データを抽出して、特定の計算式および係数により顔特徴点データから得点データを算出している。そして、算出した複数プレイヤの得点データを比較することによって勝敗を決定している。
【特許文献１】特開２００４−１７３９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載のゲーム装置は、プレイヤに所定の表情を指示したり、その後のプレイヤの表情を評価したりする機能を有していないため、表情筋のトレーニングの用途に利用することができない。
【０００４】
ところで、表情筋のトレーニングを支援するものとして、従来、お手本となる表情を示すイラストや写真を含む書籍が提供されているが、このような書籍を利用して表情筋のトレーニングを行う場合、ユーザは、お手本通りの表情ができているかどうかを鏡を見ながら自己評価しなければならず、客観的な評価結果を得ることはできなかった。
【０００５】
それゆえに本発明は、ユーザが表情筋のトレーニングを効果的に行うことのできるトレーニングプログラムおよびトレーニング装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は、本発明の理解を助けるために、図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
本発明のトレーニングプログラム（５０）は、表情筋のトレーニングを支援するためのトレーニングプログラムである。当該トレーニングプログラムは、コンピュータ（２１）に、選択ステップ（Ｓ２３）、顔画像取得ステップ（５１）、顔特徴点検出ステップ（５１）、評価ステップ（Ｓ２４，Ｓ２６）、および、評価結果提示ステップ（Ｓ２９）を実行させる。選択ステップは、予め用意された複数の課題表情の中から今回の課題となる課題表情を選択するステップである。顔画像取得ステップは、コンピュータに接続された撮像装置（３８）よりユーザの顔画像を取得するステップである。顔特徴点検出ステップは、顔画像取得ステップで取得された顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置を検出するステップである。評価ステップは、複数の課題表情毎に予め設定された評価基準（５２）のうち、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された顔特徴点の位置に基づいて顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップである。評価結果提示ステップは、評価ステップの評価結果を画像又は音声によりユーザに提示するステップである。
【０００８】
なお、課題表情に応じて参照すべき顔特徴点が変わるように評価基準が設定されており、評価ステップでは、選択ステップで選択された課題表情に応じて異なる顔特徴点の位置を参照して、顔画像におけるユーザの表情を評価してもよい。これにより、課題表情に応じてユーザの表情を適切に評価することができる。
【０００９】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から、選択ステップで選択された課題表情に対応する少なくとも２つの顔特徴点の位置を検出し、評価ステップでは、顔特徴点検出ステップで検出された２つの顔特徴点の間の位置関係に基づいて顔画像におけるユーザの表情を評価してもよい。
【００１０】
また、評価ステップは、顔特徴点検出ステップで検出された２つの顔特徴点の間の距離を算出するステップと、当該算出された距離に基づいて顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。これにより、特定の２つの顔特徴点がどれだけ離れているかという観点から、ユーザの表情を評価することができる。
【００１１】
また、複数の課題表情毎に目標距離データが予め設定されており、評価ステップでは、距離を算出するステップにより算出された距離と、複数の課題表情毎に予め設定された目標距離データのうちの選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【００１２】
また、評価ステップでは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置（２４）に格納されている当該顔特徴点の標準位置との間の位置関係に基づいて顔画像におけるユーザの表情を評価してもよい。
【００１３】
また、複数の課題表情毎に目標距離データが予め設定されており、評価ステップは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点の標準位置との間の距離を算出するステップと、当該算出された距離と、複数の課題表情毎に予め設定された目標距離データのうちの選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。
【００１４】
また、トレーニングプログラムは、コンピュータに、標準顔画像取得ステップ（５１）、標準位置検出ステップ（５１）、および、標準位置記憶ステップ（Ｓ２２）をさらに実行させてもよい。標準顔画像取得ステップは、少なくとも顔画像取得ステップよりも前に、撮像手段よりユーザの無表情時の顔画像を標準顔画像として取得するステップである。標準位置検出ステップは、標準顔画像取得ステップで取得された顔画像における予め定められた顔特徴点の位置を検出するステップである。標準位置記憶ステップは、標準位置検出ステップで検出された顔特徴点の位置を当該顔特徴点の標準位置として記憶装置に格納するステップである。これにより、ユーザ自身の顔画像に基づいて顔特徴点の標準位置が設定されるので、ユーザの表情をより適切に評価することができる。
【００１５】
また、標準位置検出ステップでは、標準顔画像取得ステップで取得された顔画像における複数の顔特徴点の位置を検出し、標準位置記憶ステップでは、複数の顔特徴点の位置を記憶装置にそれぞれ格納し、顔特徴点検出ステップでは、顔画像取得ステップにより取得された顔画像から複数の顔特徴点の位置を検出し、複数の課題表情毎に、顔画像の評価に利用する顔特徴点として、複数の顔特徴点のうちいずれかが予め指定されており、評価ステップでは、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された複数の顔特徴点のうち選択手段によって選択された課題表情に応じた顔特徴点の位置と、標準位置記憶ステップにより格納されている複数の顔特徴点のうち選択手段によって選択された課題表情に応じた顔特徴点の位置とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【００１６】
また、評価ステップは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点に対応する基準位置との間の距離を算出するステップと、当該算出された距離に基づいて顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの顔特徴点が基準位置からどれだけ移動しているかという観点から、ユーザの表情を評価することができる。
【００１７】
また、評価ステップでは、複数の課題表情毎に予め設定された評価基準のうち、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された顔特徴点の位置に基づいて顔画像取得ステップで取得された顔画像の得点を計算し、評価結果提示ステップでは、評価ステップで算出された得点を画像又は音声によりユーザに提示してもよい。ユーザの顔特徴点が基準位置からどれだけ移動しているかという観点から、顔画像の得点を決定することができる。なお、ここで言う「得点」は、後述する実施形態における「項目得点」、「顔画像の得点」、「区間得点」、「動き課題の得点」、「静止課題の得点」のいずれの種類の得点であってもよい。
【００１８】
また、顔画像取得ステップでは、所定期間において撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置を、顔画像取得ステップで取得された複数の顔画像からそれぞれ検出し、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。これにより、１枚の顔画像からユーザの表情を評価する場合と比較して、より多様な観点からユーザの表情を評価することが可能となる。
【００１９】
また、顔画像取得ステップでは、一定の周期で顔画像を取得してもよい。これにより、ユーザの表情が変化する過程における顔特徴点の位置を取得することができる。
【００２０】
また、評価ステップは、顔特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された所定期間における複数の顔画像の得点をそれぞれ計算するステップと、顔画像取得ステップで取得された所定期間における複数の顔画像のうち、得点が一定値以下のまたは比較的得点の低い少なくとも１つの顔画像の得点を除いた他の得点を用いて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。これにより、ユーザの表情の時間的な変化を考慮して顔画像の得点を変化させることができる。
【００２１】
また、評価ステップは、顔特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された所定期間における複数の顔画像の得点をそれぞれ計算するステップと、顔画像取得ステップで取得された所定期間における複数の顔画像の得点の平均を求め、当該平均を用いて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【００２２】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像のそれぞれについて、各顔画像における顔特徴点の位置に基づいて、当該各顔画像が課題表情に近いほど高い評価となるように、当該各顔画像におけるユーザの表情を評価する第１評価ステップと、当該第１評価ステップの評価結果に基づいて、撮像タイミングが遅い顔画像ほど評価がより高くなっているかどうかに応じてユーザの表情を評価する第２評価ステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかを評価することができる。
【００２３】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ（Ｓ５２）と、撮像タイミングが遅い顔画像ほど得点がより高くなっているかどうかに応じて少なくとも１つの顔画像の得点（例えば、後述の実施形態における第５区間得点）を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかに応じて、顔画像の得点を変化させることができる。
【００２４】
また、トレーニングは、無表情から課題表情へと一定速度で滑らかに表情変化させるトレーニングであり、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点を、当該各顔画像が課題表情に近いほど高くなるようにそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じてユーザの表情を評価するステップ（Ｓ４７）とを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかを評価することができる。
【００２５】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ（Ｓ５２）と、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じて少なくとも１つの顔画像の得点（例えば、後述の実施形態における第５区間得点）を補正するステップ（Ｓ４７）と、当該補正された得点に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかに応じて、顔画像の得点を変化させることができる。
【００２６】
また、顔画像取得ステップでは、撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、顔画像取得ステップで取得された各顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ（Ｓ５４）と、当該複数の顔画像の得点の最高値、最低値、平均値または部分平均値の少なくともいずれかを計算するステップ（Ｓ５７）と、当該最高値、最低値、平均値または部分平均値に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、顔特徴点の検出精度によらず、ユーザの表情を高精度に評価することができる。
【００２７】
また、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ（Ｓ５４）と、複数の顔画像のうちの比較的得点の高い一部の顔画像の得点の平均値を当該複数の顔画像の部分平均値として計算するステップ（Ｓ５７）と、当該部分平均値に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、顔特徴点の検出精度によらず、ユーザの表情を高精度に評価することができる。
【００２８】
また、顔画像取得ステップでは、所定期間（例えば、後述の実施形態における動き課題期間）に撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、顔画像取得ステップで取得された各顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、評価ステップは、所定期間を構成する複数の区間（例えば、後述の実施形態における第１区間〜第５区間）のそれぞれについて、当該区間に取得された複数の顔画像における顔特徴点の位置に基づいて当該複数の顔画像のそれぞれの点数を計算するステップ（Ｓ５４）、当該区間に取得された複数の顔画像の得点に基づいて当該区間の区間得点を計算するステップ（Ｓ５７）、複数の区間の区間得点に基づいてユーザの表情を評価するステップとを含んでいてもよい（図２２）。これにより、顔特徴点の検出精度によらず、ユーザの表情の変化を高精度に評価することができる。
【００２９】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から少なくとも第１顔特徴点と第２顔特徴点の２つの顔特徴点の位置を検出し、評価ステップは、顔特徴点検出ステップで検出された第１顔特徴点の位置と、記憶装置に格納されている当該第１顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ（Ｓ７４）と、顔特徴点検出ステップで検出された第２顔特徴点の位置と、記憶装置に格納されている当該第２顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を減点するステップ（Ｓ７４）とを含んでいてもよい。これにより、例えば、ある顔特徴点だけを移動させて、他の顔特徴点は移動させない、というようなエクササイズにおいて、ユーザの表情を適切に評価することが可能となる。
【００３０】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から少なくとも第１顔特徴点と第２顔特徴点の２つの顔特徴点の位置を検出し、評価ステップは、顔特徴点検出ステップで検出された第１顔特徴点の位置と、記憶装置に格納されている当該第１顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ（Ｓ７４）と、顔特徴点検出ステップで検出された第２顔特徴点の位置と、記憶装置に格納されている当該第２顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ（Ｓ７４）と、顔特徴点検出ステップで検出された第１顔特徴点の位置と、顔特徴点検出ステップで検出された第２顔特徴点の位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を変化させるステップ（Ｓ７４）とを含んでいてもよい。これにより、例えば、特定の２箇所の顔特徴点をバランス良く移動させる、というようなエクササイズにおいて、ユーザの表情を適切に評価することが可能となる。
【００３１】
また、トレーニングプログラムは、コンピュータに、顔特徴点検出ステップの後、当該顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点の位置に基づいて顔座標系の原点および座標軸を設定する顔座標系設定ステップ（Ｓ３４〜Ｓ３６）、および、当該顔特徴点検出ステップで検出された各顔特徴点の位置を示す座標を、顔座標系設定ステップで設定された顔座標系の座標へと座標変換するステップ（Ｓ３７〜Ｓ３８）をさらに実行させてもよい。
【００３２】
また、顔座標系設定ステップでは、顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点（Ｐ１３，Ｐ２２）を結ぶ直線の方向に基づいて顔座標系の座標軸（Ｘ軸，Ｙ軸）の方向を設定してもよい。これにより、撮像装置のレンズの光軸周りにユーザの顔が回転しても、そのことに起因して顔特徴点における各顔特徴点の座標が変化してしまうことがないため、ユーザの表情を正しく評価することができる。
【００３３】
また、顔座標系設定ステップでは、顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも２箇所の顔特徴点（Ｐ１３，Ｐ２２）の距離に基づいて顔座標系の座標軸（Ｘ軸，Ｙ軸）のスケール（Ｘ軸単位ベクトルの大きさ，Ｙ軸単位ベクトルの大きさ）を設定してもよい。これにより、撮像装置とユーザの顔の距離が変化しても、そのことに起因して顔特徴点における各顔特徴点の座標が変化してしまうことがないため、ユーザの表情を正しく評価することができる。
【００３４】
また、トレーニングプログラムは、選択ステップで選択された課題表情に対応するお手本画像（４０）を画面（１１）に表示するステップをコンピュータにさらに実行させてもよい。これにより、ユーザはお手本画像を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【００３５】
また、お手本画像がアニメーション画像であってもよい（図６）。これにより、例えば表情をゆっくりと変化させるようなエクササイズを行うときに、ユーザはアニメーション表示されるお手本画像を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【００３６】
また、トレーニングプログラムは、撮像装置によって撮像されたユーザの顔画像を画面（１２）に表示するステップをコンピュータにさらに実行させてもよい。これにより、ユーザは自分の実際の顔の表情を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【００３７】
また、トレーニングプログラムは、選択ステップで選択された課題表情に対応するお手本画像と、撮像装置によって撮像されたユーザの顔画像とを同一または異なる画面（１１，１２）に同時に表示するステップをコンピュータにさらに実行させてもよい（図７）。これにより、ユーザはお手本画像と自分の実際の顔の表情を見比べながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【００３８】
本発明のトレーニング装置（１０）は、表情筋のトレーニングを支援するためのトレーニング装置である。当該トレーニング装置は、選択手段（２１）、顔画像取得手段（２１）、顔特徴点検出手段（２１）、評価手段（２１）、および、評価結果提示手段（２１）を備える。選択手段は、予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する手段である。顔画像取得手段は、撮像装置（３８）よりユーザの顔画像を取得する手段である。顔特徴点検出手段は、顔画像取得手段によって取得された顔画像から、少なくとも選択手段によって選択された課題表情に関連する顔特徴点の位置を検出する手段である。評価手段は、複数の課題表情毎に予め設定された評価基準（５２）のうち、選択手段によって選択された課題表情に対応する評価基準に従って、顔特徴点検出手段によって検出された顔特徴点の位置に基づいて顔画像取得手段によって取得された顔画像におけるユーザの表情を評価する手段である。評価結果提示手段は、評価手段の評価結果を画像又は音声によりユーザに提示する手段である。
【発明の効果】
【００３９】
本発明によれば、ユーザは、表情筋のトレーニングを行うときに客観的な評価結果を得ることができるので、効果的なトレーニングを行うことが可能となる。
【発明を実施するための最良の形態】
【００４０】
以下、本発明の実施形態ついて説明する。
【００４１】
図１は、本発明の一実施形態に係るゲーム装置の外観図である。ただし、本発明は、携帯型のゲーム装置に限らず、据置型のゲーム装置にも適用可能である。さらに、本発明はゲーム装置に限らず、任意の情報処理装置（例えば、パーソナルコンピュータや携帯電話等）に適用可能である。
【００４２】
図１において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されている。第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００４３】
上側ハウジング１３ａには、後述する１対のスピーカ（図３の右スピーカ３０ａおよび左スピーカ３０ｂ）からの音を外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。また、上側ハウジング１３ａと下側ハウジング１３ｂとを開閉可能に接続するヒンジ部にはマイクロフォン用孔３３が設けられている。
【００４４】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、およびＹボタン１４ｇが設けられている。また、下側ハウジング１３ｂの側面には、図示しないＬボタンおよびＲボタンが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５が装着されている。下側ハウジング１３ｂの側面には、電源スイッチ１９、メモリカード１７を接続するための挿入口３５、スティック１６を収納するための挿入口３６、および、カメラカートリッジ３８を接続するための挿入口３４が設けられている。
【００４５】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、スティック１６に限らず指で操作することも可能である。本実施形態では、タッチパネル１５として、第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度が一致している必要はない。
【００４６】
メモリカード１７は、ゲーム装置１０で実行すべきコンピュータプログラムであるトレーニングプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口３５に着脱自在に装着される。図１では省略するが、挿入口３５の奥部には、メモリカード１７の挿入方向先端部に設けられるコネクタと接合するための第１コネクタ２３ａ（図３参照）が設けられている。メモリカード１７が挿入口３５に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア２１（図３参照）がメモリカード１７にアクセス可能となる。
【００４７】
また、カメラカートリッジ３８は、ユーザの顔を撮像する機能を有するカートリッジであり、下部ハウジング１３ｂに設けられた挿入口３４に着脱自在に装着される。図１では省略するが、挿入口３４の奥部には、カメラカートリッジ３８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するための第２コネクタ２３ｂ（図３参照）が設けられている。カメラカートリッジ３８が挿入口３４に挿入されると、コネクタ同士が接合される。カメラカートリッジ３８にはカメラレンズ３８ａが設けられている。カメラレンズ３８ａは、カメラカートリッジ３８を挿入口３４に挿入した状態でも下部ハウジング１３ｂに隠れてしまわないような位置に設けられている。カメラレンズ３８ａが、カメラカートリッジ３８を挿入口３４に挿入した際に下部ハウジング１３ｂに隠れてしまうような場合には、カメラレンズ３８ａを含むカメラカートリッジ３８の一部を可動にして、カメラレンズ３８ａが下部ハウジング１３ｂに隠れないようにしても良い。
【００４８】
本実施形態では、ユーザが図２のようにゲーム装置１０を両手で把持した状態で、第１のＬＣＤ１１および第２のＬＣＤ１２の画面を見ながら表情筋のトレーニングを行うものとする。
【００４９】
次に、図３を参照してゲーム装置１０の内部構成を説明する。図３は、ゲーム装置１０の内部構成を示すブロック図である。図３において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、第１コネクタ２３ａおよび第２コネクタ２３ｂが接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４、およびＬＣＤコントローラ３１、およびワイヤレス通信部３９が接続される。第１コネクタ２３ａには、メモリカード１７が着脱自在に接続される。第２コネクタ２３ｂには、カメラカートリッジ３８が着脱自在に接続される。
【００５０】
Ｉ／Ｆ回路２５には、タッチパネル１５、右スピーカ３０ａ、左スピーカ３０ｂ、図１の十字スイッチ１４ａやＡボタン１４ｄ等から成る操作スイッチ部１４、およびマイクロフォン３７が接続される。右スピーカ３０ａと左スピーカ３０ｂは、音抜き孔１８ａ、１８ｂの内側にそれぞれ配置される。マイクロフォン３７は、マイクロフォン用孔３３の内側に配置される。
【００５１】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて第１の表示画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２の表示画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００５２】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１の表示画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２の表示画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１の表示画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２の表示画像を第１のＬＣＤ１１に出力する。
【００５３】
ワイヤレス通信部３９は、他のゲーム装置のワイヤレス通信部との間で、データを送受信する機能を有している。また、ゲーム装置１０は、ワイヤレス通信部３９を介してインターネット等の広域ネットワークに接続することが可能であり、ネットワークを介して他のゲーム装置との間で通信を行うことも可能である。
【００５４】
メモリカード１７のＲＯＭ１７ａは、上記トレーニングプログラムの他、このトレーニングプログラムの実行時に利用される各種データ（画像データや音声データ等）を記憶する。
【００５５】
また、メモリカード１７のフラッシュメモリ１７ｂは、消去および書込み可能な、つまり、書き換え可能な不揮発性のメモリである。フラッシュメモリ１７ｂには、上記コンピュータプログラムの実行結果等を示すセーブデータが必要に応じて記憶される。
【００５６】
メモリカード１７を第１コネクタ２３ａに挿入した状態でユーザがゲーム装置１０の電源をオンにすると、メモリカード１７のＲＯＭ１７ａに記憶されたトレーニングプログラムがＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたトレーニングプログラムがＣＰＵコア２１によって実行される。トレーニングプログラムは、一度に全部、または、必要に応じて部分的にかつ順次的に読み出される。ＲＡＭ２４には、トレーニングプログラムの他にも、ＣＰＵコア２１がトレーニングプログラムを実行して得られる一時的なデータや、表示画像を生成するためのデータが記憶される。
【００５７】
カメラカートリッジ３８は、カメラレンズ３８ａを通じてユーザの顔を撮像し、その撮像結果としてユーザの顔画像データを出力する。
【００５８】
なお、本実施形態ではトレーニングプログラムがメモリカード１７からゲーム装置１０の本体部に供給されるが、本発明はこれに限らない。例えば、トレーニングプログラムが光ディスクなどの他の任意のコンピュータ読み取り可能な記憶媒体よりゲーム装置１０に供給されても良いし、トレーニングプログラムが他のコンピュータシステムから有線または無線の通信回線を通じてゲーム装置１０に供給されてもよいし、トレーニングプログラムがゲーム装置１０の本体内部の不揮発性記憶装置に予め格納されていてもよい。
【００５９】
また、本実施形態では、撮像手段がカメラカートリッジ３８に設けられているが、本発明はこれに限らない。例えば、ゲーム装置１０の本体部（ハウジング１３の内部）に撮像手段が設けられていてもよい。また、ゲーム装置１０の本体部と撮像手段とが通信ケーブルを通じて接続されていてもよい。さらには、撮像手段によって撮像された顔画像データが無線通信によってゲーム装置１０の本体部に供給されてもよい。
【００６０】
以下、図４〜図１２を参照して、ゲーム装置１０の動作の概要を説明する。なお、ＣＰＵコア２１がトレーニングプログラムを実行することによって、ゲーム装置１０は、表情筋のトレーニングを支援するトレーニング装置として機能する。
【００６１】
本実施形態では、ユーザは、ゲーム装置１０の第１のＬＣＤ１１（以下、左画面と称す）と第２のＬＣＤ１２（以下、右画面と称す）に表示される画像を見ながら、第１課題から第４課題の４つのエクササイズを行う。
【００６２】
図４は、ユーザが第１課題を開始するときに第１のＬＣＤ１１（以下、左画面と称す）と第２のＬＣＤ１２（以下、右画面と称す）に表示される画像を示している。第１課題は、左右の口角を下げるエクササイズである。左画面には、ユーザがこれから行うべき表情（課題表情と称す）を示すお手本画像４０と説明文が表示される。右画面には、カメラカートリッジ３８により撮影されるユーザの顔画像がリアルタイムで表示される。なお、右画面に表示される顔画像は、ユーザの顔があたかも鏡に映っているかのように左右反転表示される。例えば、図４において、右画面の右側に表示されている方の目は、ユーザの右目である。
【００６３】
第１課題から第４課題の各課題は、それぞれ「動き課題」と「静止課題」の２つの課題で構成される。「動き課題」とは、無表情の状態から指定された表情（課題表情）へと５秒間かけてゆっくりと表情を変化させるエクササイズであり、「静止課題」とは、動き課題に続いて、指定された表情（課題表情）を５秒間維持するエクササイズである。なお、本実施形態では、動き課題と静止課題がそれぞれ５秒間行われるが、本発明はこれに限らない。
【００６４】
図５は、第１課題の動き課題（以下、第１動き課題と称す）の開始直前における左画面と右画面の様子を示している。左画面には、これから実行しようとする第１動き課題の内容を示す説明文が表示される。
【００６５】
第１動き課題が開始されると、左画面では、お手本画像４０がアニメーション表示される。図６は、第１動き課題において左画面に表示されるお手本画像４０の変化の様子を示している。第１動き課題の開始直後では、お手本画像４０の顔の表情は無表情であるが、時間の経過に伴って徐々に表情が変化し、第１動き課題の終了直前（すなわち、第１動き課題の開始から５秒後）には、第１課題の課題表情（図４の左画面の表情）と同じ表情となる。動き課題では、ユーザは、このお手本画像４０の変化に合わせてゆっくりと表情を変化させる。
【００６６】
図７は、第１動き課題の開始直後における左画面と右画面の様子を示している。ここでは、まだ第１動き課題の開始直後のため、お手本画像４０の表情はほぼ無表情である。右画面には、課題開始からの経過時間（言い換えれば、課題終了までの残り時間）を示すゲージ画像４１が表示される。なお、ゲージ画像４１を表示する代わりに、課題開始からの経過時間（秒数）を示す数字を表示したり、課題終了までの残り時間を音声にてカウントダウンしたりしてもよい。また、ゲージ画像４１は必ずしも表示する必要は無い。
【００６７】
図８は、第１動き課題が開始してから２〜３秒が経過した時点における左画面と右画面の様子を示している。ここでは、お手本画像４０の左右の口角が少し下がっている。ユーザも、お手本画像に合わせて左右の口角を少し下げている。
【００６８】
図９は、第１動き課題の終了直前における左画面と右画面の様子を示している。ここでは、お手本画像４０の左右の口角が大きく下がっている。ユーザも、お手本画像に合わせて左右の口角を大きく下げているが、力んでいるために、無表情時と比較して左右の目がやや閉じてしまっている。
【００６９】
第１動き課題の開始から５秒間が経過すると第１動き課題が終了し、続いて第１課題の静止課題（以下、第１静止課題と称す）の準備に移る。
【００７０】
図１０は、第１静止課題の開始直前における左画面と右画面の様子を示している。左画面には、これから実行しようとする第１静止課題の内容を示す説明文が表示される。
【００７１】
図１１は、第１静止課題が開始してから２〜３秒が経過した時点における左画面と右画面の様子を示している。静止課題においても、動き課題と同様に左画面にお手本画像４０が表示されるが、静止課題においてはお手本画像４０の表情は時間の経過に応じて変化せず、常に一定の表情である。ユーザも、お手本画像に合わせて左右の口角を大きく下げた状態で、その表情を維持する。右画面には、動き課題のときと同様に、課題開始からの経過時間（言い換えれば、課題終了までの残り時間）を示すゲージ画像４１が表示される。なお、ゲージ画像４１を表示する代わりに、課題開始からの経過時間（秒数）を示す数字を表示したり、課題終了までの残り時間を音声にてカウントダウンしたりしてもよい。また、ゲージ画像４１は必ずしも表示する必要は無い。
【００７２】
第１静止課題の開始から５秒間が経過すると第１静止課題が終了し、続いてユーザは第２課題を行う。
【００７３】
図１２は、ユーザが第２課題を開始するときに左画面と右画面に表示される画像を示している。第２課題は、左目を閉じるエクササイズである。左画面には、課題表情を示すお手本画像４０と説明文が表示される。この後、第２動き課題と第２静止課題が行われる。
【００７４】
第２課題が終了すると、続いて第３課題（第３動き課題および第３静止課題）と第４課題（第４動き課題および第４静止課題）が順次行われる。
【００７５】
第１課題から第４課題までの４つの課題が全て終了すると、これらの４つの課題を通じてユーザの「表情力」が評価され、その評価結果が図１３に示すように表示される。「表情力」とは、表情筋を制御する能力を示しており、各課題におけるユーザの表情がお手本画像４０の表情に近いほど高い数値となる。本実施形態では、表情力は０％〜２００％の数値で表される。これにより、ユーザは客観的な評価結果を得ることができるので、従来のようにお手本通りの表情ができているかどうかを鏡を見ながら自己評価しなければならない場合と比較して、表情筋のトレーニングを効果的に行うことができる。
【００７６】
次に、ゲーム装置１０の動作について、より詳細に説明する。
【００７７】
図１４に、ＲＡＭ２４のメモリマップを示す。ＲＡＭ２４には、トレーニングプログラム５０、顔特徴点データ５４、および、その他データ５５が格納される。トレーニングプログラム５０には、顔特徴点検出プログラム５１、評価基準情報５２およびお手本画像データ５３が含まれている。
【００７８】
顔特徴点検出プログラム５１は、カメラカートリッジ３８によって撮像されたユーザの顔画像に対してエッジ検出等の画像処理を施すことによって、顔画像におけるユーザの顔特徴点の位置を検出するプログラムである。顔特徴点検出プログラム５１としては、例えば沖電気工業株式会社のＦＳＥ（Face Sensing Engine）（登録商標）のような公知のソフトウェアを利用することができる。
【００７９】
図１５は、顔特徴点検出プログラム５１によって検出される顔特徴点の具体例を示している。本実施形態では、顔特徴点検出プログラム５１によって顔画像から４２箇所の顔特徴点（顔特徴点Ｐ１〜Ｐ４２）が検出される。
【００８０】
顔特徴点検出プログラム５１の検出結果（すなわち顔特徴点Ｐ１〜Ｐ４２の位置）は２次元のカメラ座標系で表されている。本実施形態では、顔特徴点検出プログラム５１の検出結果をより利用しやすくするために、カメラ座標系から顔座標系への座標変換処理が行われる。顔座標系とは、図１６に示すように、顔画像におけるユーザの両目（Ｐ１３、Ｐ２２）の中間点を原点とし、この原点を始点とし右目（Ｐ２２）を終点とするベクトルをＸ軸単位ベクトルとし、このＸ軸単位ベクトルを時計回りに９０度回転させて得られるベクトルをＹ軸単位ベクトルとする座標系である。つまり、顔座標系のＸ軸およびＹ軸のスケールは、顔画像におけるユーザの両目（Ｐ１３、Ｐ２２）の中間点と右目との間の距離に応じて決定される。各顔特徴点の位置を顔座標系で表せば、カメラレンズ３８ａとユーザの顔の間の距離が変化した場合やカメラレンズ３８ａの光軸周りにユーザの顔が回転した場合でも、各顔特徴点の座標は変化しないため、ユーザの表情を正しく評価することができる。なお、本実施形態では、顔画像におけるユーザの両目（Ｐ１３、Ｐ２２）の位置に基づいて顔座標系を設定しているが、本発明はこれに限らず、任意の２箇所の顔特徴点の位置に基づいて顔座標系を設定してもよい。
【００８１】
顔特徴点検出プログラム５１によって検出された各顔特徴点の座標は、顔特徴点データ５４としてＲＡＭ２４に格納される。なお、顔特徴点データ５４には、各顔特徴点（Ｐ１〜Ｐ４２）の標準位置（Ｐｏ１〜Ｐｏ４２）と現在位置（Ｐｃ１〜Ｐｃ４２）がそれぞれ格納される。ここで、標準位置とは、無表情時における各顔特徴点の位置であり、現在位置とは、最新の顔特徴点検出結果における各顔特徴点の位置である。
【００８２】
評価基準情報５２は、ユーザの表情を評価するための情報であり、図１８に示すように、課題表情毎に、評価基準として複数の評価項目と項目得点基準値が指定されている。例えば、「左右の口角を下げる」という課題表情については、「左の口角を下げたら加点」、「右の口角を下げたら加点」、「左眉を上げたら減点」、「右眉を上げたら減点」、「左眉を下げたら減点」、「右眉を下げたら減点」、「左目を閉じたら減点」、「右目を閉じたら減点」の８つの評価項目と、これらの８つの評価項目のそれぞれに対応する８組の項目得点基準値（（第１閾値Ａ、第２閾値Ａ、最高値Ａ）〜（第１閾値Ｈ、第２閾値Ｈ、最高値Ｈ））が指定されている。項目得点基準値は、顔特徴点データ５４を利用して各評価項目の得点（後述する区間得点等と区別するために「項目得点」と称す）を算出するための計算に用いられる基準値である。なお、本実施形態では、評価基準として項目得点基準値が指定されているが、本発明はこれに限らない。後述するような、第１閾値、第２閾値、最高値等の項目得点基準値が設定された計算式を評価項目ごとに指定されていても良い。
【００８３】
以下、図１８〜図２１を参照して、「左右の口角を下げる」という課題表情の場合を例に、ユーザの表情の評価方法（より具体的には、カメラカートリッジ３８によって撮像されたユーザの顔画像から、当該顔画像の得点を計算する方法）の具体的に説明する。
【００８４】
「左右の口角を下げる」という課題表情の場合には、図１９に示すような８箇所の顔特徴点（Ｐ１、Ｐ４、Ｐ７、Ｐ１１、Ｐ１６、Ｐ２０、Ｐ２６、Ｐ３０）の位置に基づいて、顔画像の得点が計算される。
【００８５】
図１８の評価基準情報５２において、「左右の口角を下げる」という課題表情については、「左の口角を下げたら加点」、「右の口角を下げたら加点」、「左眉を上げたら減点」、「右眉を上げたら減点」、「左眉を下げたら減点」、「右眉を下げたら減点」、「左目を閉じたら減点」、「右目を閉じたら減点」の８つの評価項目が指定されている。
【００８６】
各評価項目の項目得点は、評価基準情報５２を参照して、当該評価項目に対応する第１閾値データ、第２閾値データ、最高値データを参照して算出処理される。例えば、「左の口角を下げたら加点」という評価項目の項目得点は、（第１閾値Ａ、第２閾値Ａ、最高値Ａ）を用いて計算される。より具体的には、表情の変化量が「第１閾値」から「第２閾値」までの間のときに、得点が０点から「最高点」までの間になるように計算される。また、表情の変化量が第１閾値以下の場合には得点は０点とし、表情の変化量が第２閾値以上の場合には得点は最高点とする。すなわち、第２閾値は、表情の変化量の目標値としての意義を有する。なお、少なくとも、第２閾値（目標値）は評価項目ごとに設定されるが、第１閾値や最高値を評価項目ごとに設定することは必須ではなく、例えば、第１閾値や最高値は評価項目に関らず定数としてもよい。また、表情の変化量が第２閾値（目標値）以上になったときに、さらに得点を上昇させたり、あるいは、逆に減少させたりしてもよい。前者の場合には、表情の変化量が大きいほど評価を高くすることができ、後者の場合には表情の変化量が目標値に近いほど評価を高くすることができる。なお、ここでいう「表情の変化量」は、（ａ）ユーザの顔画像における所定の顔特徴点に関する現在位置と標準位置との間の距離の場合と、（ｂ）複数の顔特徴点の間の距離の場合がある。このようにして（第１閾値Ａ、第２閾値Ａ、最高値Ａ）を共通の計算式に設定した上で、「左口角の下がり量」から項目得点を算出する。「左口角の下がり量」は、左の口角に対応する顔特徴点Ｐ２６の現在位置Ｐｃ２６のＹ座標値ｄ２６から標準位置Ｐｏ２６のＹ座標値ｂ２６を減算した結果の値である。（第１閾値Ａ、第２閾値Ａ、最高値Ａ）を共通の計算式に設定した一具体例を図２０に示す。顔特徴点の現在位置のＹ座標値から標準位置のＹ座標値を減算した結果の値は、顔特徴点の現在位置から標準位置のＹ軸方向の距離を示している。第１閾値は、Ｙ軸方向の距離がこれ以上短くなると項目得点が最低値（図２０の例では０）となる閾値である。第２閾値は、Ｙ軸方向の距離がこれ以上長くなると項目得点が最高値となる閾値である。最高値は、「左口角の下がり量」から算出される項目得点の最高となる値である。「左口角の下がり量」が第１閾値（例えば０）よりも小さいときは、項目得点は０となる。また、「左口角の下がり量」が第２閾値よりも大きいときは、項目得点は所定の最高値（例えば１０点）となる。また、「左口角の下がり量」が第１閾値よりも大きくかつ第２閾値よりも小さいときは、項目得点は「左口角の下がり量」に応じて線形的に変化する。このように、（第１閾値Ａ、第２閾値Ａ、最高値Ａ）を設定された共通の計算式によって算出される項目得点は、基本的に、「左口角の下がり量」が大きいほど大きくなる。なお、第１閾値、第２閾値、最高値の値は、評価項目ごとに任意の値に設定することができる。
【００８７】
「右の口角を下げたら加点」という評価項目の項目得点は、（第１閾値Ｂ、第２閾値Ｂ、最高値Ｂ）を設定された共通の計算式を用いて計算される。（第１閾値Ｂ、第２閾値Ｂ、最高値Ｂ）を設定された共通の計算式では、「右口角の下がり量」から項目得点を算出する。「右口角の下がり量」は、右の口角に対応する顔特徴点Ｐ３０の現在位置Ｐｃ３０のＹ座標値ｄ３０から標準位置Ｐｏ３０のＹ座標値ｂ３０を減算した結果の値である。（第１閾値Ｂ、第２閾値Ｂ、最高値Ｂ）を設定された共通の計算式によって算出される項目得点は、基本的に、「右口角の下がり量」が大きいほど大きくなる。
【００８８】
「左眉を上げたら減点」という評価項目の項目得点は、（第１閾値Ｃ、第２閾値Ｃ、最高値Ｃ）を設定された共通の計算式を用いて計算される。（第１閾値Ｃ、第２閾値Ｃ、最高値Ｃ）を設定された共通の計算式では、「左眉の上がり量」から項目得点を算出する。「左眉の上がり量」は、左眉に対応する顔特徴点Ｐ４の現在位置Ｐｃ４のＹ座標値ｄ４から標準位置Ｐｏ４のＹ座標値ｂ４を減算した結果の値である。「左眉を上げたら減点」という評価項目は、減点用の評価項目であるため、（第１閾値Ｃ、第２閾値Ｃ、最高値Ｃ）を設定された共通の計算式によって算出される項目得点は、基本的に、「左眉の上がり量」が大きいほど小さくなる。また、（第１閾値Ｃ、第２閾値Ｃ、最高値Ｃ）を設定された共通の計算式によって算出される項目得点の最高値は０である。
【００８９】
残りの評価項目についても、同様にして項目得点が算出される。上記の８つの評価項目の項目得点を合計した値が、顔画像の得点となる。
【００９０】
なお、上記の例では、ある顔特徴点の標準位置と現在位置の位置関係に基づいて項目得点を計算しているが、本発明はこれに限らない。例えば、ある顔特徴点の現在位置と別の顔特徴点の現在位置の位置関係に基づいて項目得点を計算してもよい。例えば、図１８における「口を開けたら減点」という評価項目では、口の上端部（図１５のＰ２８）の現在位置と口の下端部（図１５のＰ３２）の現在位置との間の距離に応じて項目得点が計算される。
【００９１】
なお、上記のような評価項目以外の評価基準を用いてユーザの表情を評価することもできる。例えば、「左右の口角を下げる」という課題表情については、（第１閾値Ａ、第２閾値Ａ、最高値Ａ）を設定された共通の計算式で算出された項目得点や、（第１閾値Ｂ、第２閾値Ｂ、最高値Ｂ）を設定された共通の計算式で算出された項目得点に対して、左右の口角の高さが揃っているか否かに応じて決定される乗数を乗算するようにしてもよい。この場合の乗数の計算式の一具体例を図２１に示す。「左右の口角の高さの差」は、左の口角に対応する顔特徴点Ｐ２６の現在位置Ｐｃ２６のＹ座標値ｄ２６と、右の口角に対応する顔特徴点Ｐ３０の現在位置Ｐｃ３０のＹ座標値ｄ３０の差分（絶対値）である。これにより、左右の口角の高さの差が大きいほど、「左の口角を下げたら加点」という評価項目の項目得点と、「左の口角を下げたら加点」という評価項目の項目得点が減ることになる。
【００９２】
なお、上記の説明では、１つの顔画像から当該顔画像の得点を計算する方法について具体的に説明したが、動き課題および静止課題では、複数の顔画像に基づいてユーザの表情が評価される。
【００９３】
まず、図２２〜図２４を参照して、動き課題でのユーザの表情の評価方法について具体的に説明する。
【００９４】
本実施形態では、１０フレーム（１フレームは６０分の１秒）の周期で、カメラカートリッジ３８によってユーザの顔画像が撮像され、当該撮像された顔画像に基づいて得点が計算される。本実施形態では、動き課題は５秒間なので、動き課題の開始から終了までの間（以下、動き課題期間と称す）で、合計で３０枚の顔画像の得点が計算される。
【００９５】
動き課題期間は、図２２に示すような５つの区間に区分される。以下では、動き課題の開始から最初の１秒間を第１区間と称し、次の１秒間を第２区間と称し、さらに次の１秒間を第３区間と称し、さらに次の１秒間を第４区間と称し、さらに次の１秒間を第５区間と称する。そして、第１区間に撮像される６枚の顔画像を、撮像時間の早い順番に、顔画像１ａ、顔画像１ｂ、顔画像１ｃ、顔画像１ｄ、顔画像１ｅ、顔画像１ｆと称す。同様に、第２区間において撮像される６枚の顔画像を、撮像時間の早い順番に、顔画像２ａ、顔画像２ｂ、顔画像２ｃ、顔画像２ｄ、顔画像２ｅ、顔画像２ｆと称す。第２区間以降の区間の顔画像についても同様に標記する。
【００９６】
動き課題では、上記のように区分された区間毎に、区間得点が算出される。以下、区間得点の計算方法を、第３区間の区間得点（第３区間得点）を算出する場合を例に、説明する。
【００９７】
まず、第３区間の最初の顔画像３ａについて、前述したように評価基準情報５２を参照して評価項目毎の項目得点を計算し、それら項目得点を加算することによって顔画像３ａの得点を算出する。同様にして、顔画像３ｂ〜３ｆの得点も算出する。
【００９８】
次に、顔画像３ａ〜３ｆの得点の平均値を計算することによって、第３区間得点を求める。つまり、第３区間得点は、第３区間に撮像された複数の顔画像に基づいて計算される。なお、顔画像３ａ〜３ｆの得点の平均値を計算するときに、顔画像３ａ〜３ｆの全ての顔画像を対象としてそれらの平均値を求めてもよいし、顔画像３ａ〜３ｆのうちの一部の顔画像だけを対象としてそれらの平均値を求めてもよい。以下では、後者のような平均を「部分平均」と称す。本実施形態では、顔画像３ａ〜３ｆのうち、得点の高い順番に３つの顔画像を選択し、これらの３つの顔画像の平均値を、第３区間得点とする。なお、このように第３区間得点を部分平均により計算することの利点は、顔特徴点検出プログラム５１の検出誤差などによって顔画像３ａ〜３ｆのうちの一部の顔画像の得点が本来の得点よりも低い値に計算されてしまった場合に、第３区間得点がそのような異常な得点の影響を受けてしまうのを防止することができる点である。
【００９９】
第３区間以外の区間についても、同様にして区間得点が計算される。
【０１００】
上記のようにして第１区間得点〜第５区間得点が計算されると、図２３に示すように、これらの区間得点に基づいて、動き課題の得点が決定される。動き課題におけるユーザの表情は、大きく分けて、下記の２つの観点から評価される。
（１）最終的なユーザの表情がお手本画像４０に近いかどうかという観点からの評価
（２）動き課題期間においてユーザの表情が滑らかに変化したかどうかという観点からの評価
【０１０１】
上記（１）の評価は、第５区間得点の大きさに基づいて行われる。具体的には、第５区間得点がより高いほど、動き課題の得点はより高くなる。
【０１０２】
上記（２）の評価は、第５区間得点を基準としたときの第１区間得点〜第４区間得点の各区間得点の比率に基づいて行われる。図２０に示したように、本実施形態では基本的に、無表情時からの顔特徴点の移動量が大きいほど、その移動量にほぼ比例して（移動量に対して線形的に）顔画像の得点が高くなる。したがって、ユーザが５秒間かけて表情を理想的に滑らかに変化させた場合、図２４に示すように、第１区間得点は第５区間得点のほぼ５分の１となり、第２区間得点は第５区間得点のほぼ５分の２となり、第３区間得点は第５区間得点のほぼ５分の３となり、第４区間得点は第５区間得点のほぼ５分の４となる。よって、第５区間得点を基準としたときの各区間得点の比率が、上記のような理想的な比率により近いほど、動き課題の得点はより高くなる。
【０１０３】
次に、図２５を参照して、静止課題でのユーザの表情の評価方法について具体的に説明する。
【０１０４】
静止課題においても動き課題と同様に、１０フレーム（１フレームは６０分の１秒）の周期で、カメラカートリッジ３８によってユーザの顔画像が撮像され、当該撮像された顔画像に基づいて得点が計算される。本実施形態では、静止課題は５秒間なので、静止課題の開始から終了までの間（以下、静止課題期間と称す）で、合計で３０枚の顔画像の得点が計算される。
【０１０５】
静止課題期間は、動き課題期間とは異なり、複数の区間には区分されないが、説明の便宜上、静止課題期間全体を第６区間と称する。
【０１０６】
静止課題では、第６区間の区間得点（第６区間得点）が算出される。区間得点の計算方法については、前述した通りである。すなわち、第６区間において撮像された３０枚の顔画像の得点をそれぞれ計算し、それらの顔画像の得点の部分平均を求めることによって、第６区間得点を計算する。静止課題においては、この第６区間得点が、静止課題の得点となる。
【０１０７】
以下、図２６〜図３３のフローチャートを参照して、トレーニングプログラム５０に従って動作するＣＰＵコア２１の処理の流れを説明する。
【０１０８】
トレーニングプログラム５０の実行が開始されると、ＣＰＵコア２１は、以下の３つの処理を並列的に実行する。
【０１０９】
第１の処理は、顔特徴点検出プログラム５１による顔特徴点検出処理である。顔特徴点検出処理では、ＣＰＵコア２１は、周期的に、カメラカートリッジ３８によって撮像された顔画像から４２箇所の顔特徴点を検出する。
【０１１０】
第２の処理は、図２６に示す顔特徴点取得処理である。顔特徴点取得処理では、ＣＰＵコア２１は、顔特徴点検出プログラム５１による顔特徴点検出処理の処理結果を監視し、顔特徴点検出プログラム５１によって検出された顔特徴点の座標を取得する。
【０１１１】
第３の処理は、図２７〜図３３に示すメイン処理である。メイン処理では、ＣＰＵコア２１は、顔特徴点取得処理において取得された顔特徴点の座標を利用して、図１５〜図２５を参照して説明したような得点計算処理等を行う。なお、フローチャートによる図示は省略するが、メイン処理では図４〜図１３で示した画像を生成する処理も実行される。
【０１１２】
次に、図２６を参照して、顔特徴点取得処理の流れを説明する。
【０１１３】
顔特徴点取得処理が開始されると、ステップＳ１０で、ＣＰＵコア２１は使用するデータを定義する（すなわち、データにＲＡＭ２４の記憶領域を割り当てる）。ここで定義されるデータは以下のとおりである。
・Ｃｏｕｎｔ：フレーム数のカウント用
・ＩｓＥｎａｂｌｅ：顔特徴点データが有効かどうか
・ＩｓＣｈｅｃｋ：得点計算すべきフレームかどうか
・ＦａｃｅＰｏｉｎｔＡｒｒａｙ［４２］：顔特徴点（２次元座標）の配列
【０１１４】
ステップＳ１１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、Ｃｏｕｎｔの値を０に初期化し、ＩｓＥｎａｂｌｅの値をｆａｌｓｅに初期化し、ＩｓＣｈｅｃｋの値をｆａｌｓｅに初期化する。
【０１１５】
つづいてＣＰＵコア２１は、ループＡの処理（すなわち、ステップＳ１２からステップＳ１８又はステップＳ１９までの一連の処理）を、１フレーム周期で繰り返し実行する。
【０１１６】
ステップＳ１２では、ＣＰＵコア２１は、顔特徴点検出プログラム５１による顔特徴点検出処理が終了しているかどうか（すなわち、ある顔画像から当該顔画像の全ての顔特徴点の位置が検出されたかどうか）を判断する。顔特徴点検出処理が終了している場合にはステップＳ１３に進み、顔特徴点検出処理が終了していない場合にはステップＳ１６に進む。
【０１１７】
ステップＳ１３では、ＣＰＵコア２１は、顔特徴点検出プログラム５１による顔特徴点検出処理によって顔特徴点が検出されたかどうかを判断する。例えば、カメラカートリッジ３８の撮像範囲にユーザの顔の一部が収まっていない場合には顔特徴点は検出されない。顔特徴点検出処理によって顔特徴点が検出された場合にはステップＳ１４に進み、顔特徴点検出処理によって顔特徴点が検出されなかった場合にはステップＳ１５に進む。
【０１１８】
ステップＳ１４では、ＣＰＵコア２１はＩｓＥｎａｂｌｅの値をｔｒｕｅに更新し、ＦａｃｅＰｏｉｎｔＡｒｒａｙ［４２］の各要素の値を、顔特徴点検出プログラム５１による顔特徴点検出処理によって検出された４２箇所の顔特徴点の位置を示す２次元座標（カメラ座標系）に更新する。
【０１１９】
ステップＳ１５では、ＣＰＵコア２１はＩｓＥｎａｂｌｅの値をｆａｌｓｅに更新する。
【０１２０】
ステップＳ１６では、ＣＰＵコア２１はＣｏｕｎｔの値を（Ｃｏｕｎｔ＋１）÷１０の剰余に更新する。
【０１２１】
ステップＳ１７では、ＣＰＵコア２１は、Ｃｏｕｎｔの値が０かどうかを判断する。Ｃｏｕｎｔの値が０である場合にはステップＳ１８に進み、Ｃｏｕｎｔの値が０でない場合にはステップＳ１９に進む。
【０１２２】
ステップＳ１８では、ＣＰＵコア２１はＩｓＣｈｅｃｋの値をｔｒｕｅに更新し、ステップＳ１２に戻る。
【０１２３】
ステップＳ１９では、ＣＰＵコア２１はＩｓＣｈｅｃｋの値をｆａｌｓｅに更新し、ステップＳ１２に戻る。
【０１２４】
上記ステップＳ１６〜ステップＳ１８（またはステップＳ１９）の処理により、ＩｓＣｈｅｃｋの値は１０フレームの周期で一時的にｔｒｕｅとなる。後述するメイン処理では、ＩｓＣｈｅｃｋの値がｔｒｕｅのときに前述の得点計算処理を行うので、結果として、前述の得点計算処理は１０フレームの周期で繰り返し実行されることになる。
【０１２５】
次に、図２７を参照して、メイン処理の流れを説明する。
【０１２６】
メイン処理が開始されると、ステップＳ２０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＳｃｏｒｅＳｕｍ：合計得点
・Ｓｃｏｒｅ：区間得点
・ＳｃｏｒｅＳｌｏｗ：動き課題の得点
・ＭａｘＤａｔａＮｕｍ：区間得点の算出に使用する顔画像数
・ＮｅｕｔｒａｌＦａｃｅＰｏｉｎｔＡｒｒａｙ［４２］：顔特徴点の標準位置（２次元座標）の配列
【０１２７】
ステップＳ２１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＳｃｏｒｅＳｕｍの値を０に初期化する。
【０１２８】
ステップＳ２２では、ＣＰＵコア２１は標準位置取得処理を実行する。標準位置取得処理は、無表情時のユーザの各顔特徴点の位置（顔座標系）を標準位置としてＲＡＭ２４に格納するための処理である。以下、図２８を参照して、標準位置取得処理の詳細を説明する。
【０１２９】
標準位置取得処理が開始されると、ステップＳ３０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・Ｂａｓｅ：カメラ座標系で表した顔座標系の原点（２次元座標）
・ＸＡｘｉｓ：カメラ座標系で表した顔座標系のＸ軸単位ベクトル（２次元ベクトル）
・ＹＡｘｉｓ：カメラ座標系で表した顔座標系のＹ軸単位ベクトル（２次元ベクトル）
・ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］：顔特徴点（２次元座標、カメラ座標系）の配列
【０１３０】
ステップＳ３１では、ＣＰＵコア２１は、左画面（第１のＬＣＤ１１）に、例えば「無表情の状態で右画面を見て下さい。」というような指示メッセージを表示する。
【０１３１】
ステップＳ３２では、ＣＰＵコア２１は、ＩｓＥｎａｂｌｅの値がｔｒｕｅかどうかを判断する。ＩｓＥｎａｂｌｅの値がｔｒｕｅである（これは、前述の顔特徴点検出処理および顔特徴点取得処理が無事に完了したことを意味する）場合には、ステップＳ３３に進み、ＩｓＥｎａｂｌｅの値がｆａｌｓｅである場合には、ＩｓＥｎａｂｌｅの値がｔｒｕｅになるまで待機する。
【０１３２】
ステップＳ３３では、ＣＰＵコア２１は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］の各要素の値を、ＦａｃｅＰｏｉｎｔＡｒｒａｙ［４２］の各要素の値にそれぞれ更新する。
【０１３３】
ステップＳ３４では、ＣＰＵコア２１は、左目と右目の中間点の座標（カメラ座標系）を計算し、Ｂａｓｅの値をその中間点の座標に更新する。左目と右目の中間点の座標は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］に含まれている左目の座標と右目の座標を平均することによって求めることができる。
【０１３４】
ステップＳ３５では、ＣＰＵコア２１は、ＸＡｘｉｓの値を、右目の中心の座標−Ｂａｓｅの計算結果の値（２次元ベクトル）に更新する。
【０１３５】
ステップＳ３６では、ＣＰＵコア２１は、ＹＡｘｉｓの値を、ＸＡｘｉｓを時計回りに９０度回転させたベクトルに更新する。
【０１３６】
つづいてＣＰＵコア２１は、ループＣの処理（すなわち、ステップＳ３７からステップＳ３８までの一連の処理）を、ループ変数Ｉを０から４１までカウントアップしつつ、繰り返し実行する。
【０１３７】
ステップＳ３７では、ＣＰＵコア２１は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［Ｉ］＝Ｂａｓｅ＋ａ×ＸＡｘｉｓ＋ｂ×ＹＡｘｉｓとなるようなａとｂを計算する。
【０１３８】
ステップＳ３８では、ＣＰＵコア２１は、ＮｅｕｔｒａｌＦａｃｅＰｏｉｎｔ［Ｉ］の値（２次元座標）を（ａ，ｂ）に更新する。
【０１３９】
上記ステップＳ３７〜ステップＳ３８の処理を繰り返すことにより、各顔特徴点の標準位置を示す座標がカメラ座標系から顔座標系へと変換されて、ＮｅｕｔｒａｌＦａｃｅＰｏｉｎｔ［４２］に格納される。ＮｅｕｔｒａｌＦａｃｅＰｏｉｎｔ［４２］は、図１７における顔特徴点データ５４の「標準位置」に相当する。
【０１４０】
ループＣの処理が終了すると、標準位置取得処理は終了する。
【０１４１】
図２７において、ステップＳ２２の標準位置取得処理が終了すると、つづいてＣＰＵコア２１は、ループＢの処理（すなわち、ステップＳ２３からステップＳ２７までの一連の処理）を４回繰り返し実行する。なお、繰り返し回数の「４回」は、一例に過ぎない。
【０１４２】
ステップＳ２３では、ＣＰＵコア２１は予め用意された複数の課題表情の中から１つの課題表情を選択し、画像及び／又は音声によりユーザに提示する（例えば図４のような画像を左画面に表示する）。課題表情の選び方は任意である。例えば、予め定められた順番に従って選択してもよいし、ランダムに選択してもよいし、ユーザの熟練度に応じた難易度の課題表情を選択するようにしてもよい。
【０１４３】
ステップＳ２４では、ＣＰＵコア２１は、ステップＳ２３で選択された課題表情に関する動き課題評価処理を実行する。動き課題評価処理は、動き課題でのユーザの表情を評価するための処理である。以下、図２９を参照して、動き課題評価処理の詳細を説明する。
【０１４４】
動き課題評価処理が開始されると、ステップＳ４０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＳｃｏｒｅＮｕｍ：計算完了した区間得点の数
・ＳｃｏｒｅＡｒｒａｙ［６］：区間得点の配列
・ＭａｘＤａｔａＮｕｍ：区間得点の計算に使用する顔画像数
・Ｓｃｏｒｅ：区間得点の計算結果を入れるバッファ
【０１４５】
ステップＳ４１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＳｃｏｒｅＮｕｍの値を１に初期化し、ＭａｘＤａｔａＮｕｍの値を６に初期化する。
【０１４６】
ステップＳ４２では、ＣＰＵコア２１は、動き課題の内容を画像及び／又は音声によりユーザに提示する（例えば図５のような画像を左画面に表示する）。
【０１４７】
つづいてＣＰＵコア２１は、ループＤの処理（すなわち、ステップＳ４３からステップＳ４５までの一連の処理）を、ＳｃｏｒｅＮｕｍの値が６未満である間、繰り返し実行する（結果として、ループＤの処理は５回繰り返し実行されることになる）。
【０１４８】
ステップＳ４３では、ＣＰＵコア２１は区間得点計算処理を実行する。区間得点計算処理は、区間得点（図２３の第１区間得点〜第５区間得点、および図２５の第６区間得点）を計算するための処理である。以下、図３０を参照して、区間得点計算処理の詳細を説明する。
【０１４９】
区間得点計算処理が開始されると、ステップＳ５０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＤａｔａＮｕｍ：処理した顔特徴点データセットの個数（ただし、同一の顔画像に対応する顔特徴点データの集合を１個のデータセットとする）
・ＵｓａｂｌｅＤａｔａＮｕｍ：有効な顔特徴点データセットの個数
・ＤａｔａＡｒｒａｙ［ＭａｘＤａｔａＮｕｍ］：顔画像毎の点数の配列
・ＦａｃｅＰｏｉｎｔ［４２］：顔特徴点（２次元座標、顔座標系）の配列
【０１５０】
ステップＳ５１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＤａｔａＮｕｍの値を０に初期化し、ＵｓａｂｌｅＤａｔａＮｕｍの値を０に初期化する。
【０１５１】
つづいてＣＰＵコア２１は、ループＦの処理（すなわち、ステップＳ５２からステップＳ５６までの一連の処理）を、ＤａｔａＮｕｍの値がＭａｘＤａｔａＮｕｍの値よりも小さい間、繰り返し実行する。
【０１５２】
ステップＳ５２では、ＣＰＵコア２１は現在位置取得処理を実行する。現在位置取得処理は、最新の顔特徴点検出結果におけるユーザの各顔特徴点の位置（顔座標系）を現在位置としてＲＡＭ２４に格納するための処理である。以下、図３１を参照して、現在位置取得処理の詳細を説明する。
【０１５３】
現在位置取得処理が開始されると、ステップＳ６０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・Ｂａｓｅ：カメラ座標系で表した顔座標系の原点（２次元座標）
・ＸＡｘｉｓ：カメラ座標系で表した顔座標系のＸ軸単位ベクトル（２次元ベクトル）
・ＹＡｘｉｓ：カメラ座標系で表した顔座標系のＹ軸単位ベクトル（２次元ベクトル）
・ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］：顔特徴点（２次元座標、カメラ座標系）の配列
【０１５４】
ステップＳ６１では、ＣＰＵコア２１は、ＩｓＣｈｅｃｋの値がｔｒｕｅかどうかを判断する。ＩｓＣｈｅｃｋの値がｔｒｕｅである場合にはステップＳ６２に進み、ＩｓＣｈｅｃｋの値がｆａｌｓｅである場合には、ＩｓＣｈｅｃｋの値がｔｒｕｅになるまで待機する。なお前述したように、ＩｓＣｈｅｃｋの値は１０フレーム周期で一時的にｔｒｕｅになる。
【０１５５】
ステップＳ６２では、ＣＰＵコア２１は、ＩｓＥｎａｂｌｅの値がｔｒｕｅかどうかを判断する。ＩｓＥｎａｂｌｅの値がｔｒｕｅである（これは、前述の顔特徴点検出処理および顔特徴点取得処理が無事に完了したことを意味する）場合にはステップＳ６３に進み、ＩｓＥｎａｂｌｅの値がｆａｌｓｅである場合には現在位置取得処理を終了する。
【０１５６】
ステップＳ６３では、ＣＰＵコア２１は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］の各要素の値を、ＦａｃｅＰｏｉｎｔＡｒｒａｙ［４２］の各要素の値にそれぞれ更新する。
【０１５７】
ステップＳ６４では、ＣＰＵコア２１は、左目と右目の中間点の座標（カメラ座標系）を計算し、Ｂａｓｅの値をその中間点の座標に更新する。左目と右目の中間点の座標は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［４２］に含まれている左目の座標と右目の座標を平均することによって求めることができる。
【０１５８】
ステップＳ６５では、ＣＰＵコア２１は、ＸＡｘｉｓの値を、右目の中心の座標−Ｂａｓｅの計算結果の値（２次元ベクトル）に更新する。
【０１５９】
ステップＳ６６では、ＣＰＵコア２１は、ＹＡｘｉｓの値を、ＸＡｘｉｓを時計回りに９０度回転させたベクトルに更新する。
【０１６０】
つづいてＣＰＵコア２１は、ループＧの処理（すなわち、ステップＳ６７からステップＳ６８までの一連の処理）を、ループ変数Ｉを０から４１までカウントアップしつつ、繰り返し実行する。
【０１６１】
ステップＳ６７では、ＣＰＵコア２１は、ＦａｃｅＰｏｉｎｔＯｒｉｇｉｎａｌ［Ｉ］＝Ｂａｓｅ＋ａ×ＸＡｘｉｓ＋ｂ×ＹＡｘｉｓとなるようなａとｂを計算する。
【０１６２】
ステップＳ６８では、ＣＰＵコア２１は、ＦａｃｅＰｏｉｎｔ［Ｉ］の値（２次元座標）を（ａ，ｂ）に更新する。
【０１６３】
上記ステップＳ６７〜ステップＳ６８の処理を繰り返すことにより、各顔特徴点の現在位置を示す座標がカメラ座標系から顔座標系へと変換されて、ＦａｃｅＰｏｉｎｔ［４２］に格納される。ＦａｃｅＰｏｉｎｔ［４２］は、図１７における顔特徴点データ５４の「現在位置」に相当する。
【０１６４】
ループＧの処理が終了すると、現在位置取得処理は終了する。
【０１６５】
図３０において、ステップＳ５２の現在位置取得処理が終了すると、ステップＳ５３に進む。
【０１６６】
ステップＳ５３では、ＣＰＵコア２１は、ステップＳ５２において現在位置の取得に成功したかどうかを判断する。現在位置の取得に成功した場合にはステップＳ５４に進み、現在位置の取得に失敗した場合にはステップＳ５６に進む。例えば、図３１のステップＳ６２でＮｏと判断した場合には、現在位置の取得に失敗しているので、ステップＳ５６に進む。
【０１６７】
ステップＳ５４では、ＣＰＵコア２１は得点計算処理を行う。得点計算処理は、顔画像の得点を計算するための処理である。以下、図３２を参照して、得点計算処理の詳細を説明する。
【０１６８】
得点計算処理が開始されると、ステップＳ７０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＰｏｉｎｔＳｕｍ：項目得点の合計
・ＰｏｉｎｔＭａｘ：項目得点の合計の最高値
【０１６９】
ステップＳ７１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＰｏｉｎｔＳｕｍの値を０に初期化し、ＰｏｉｎｔＭａｘの値を０に初期化する。
【０１７０】
つづいてＣＰＵコア２１は、ループＨの処理（すなわち、ステップＳ７２からステップＳ７５までの一連の処理）を、現在の課題表情（すなわち図２７のステップＳ２３で選択された課題表情）に対応する評価項目数だけ繰り返し実行する。例えば、現在の課題表情が「左目を閉じる」という課題表情である場合には、図１８の評価基準情報５２において、この課題表情のための評価基準として１１個の評価項目が指定されていることから、ループＨの処理が１１回繰り返し実行される。
【０１７１】
ステップＳ７２では、ＣＰＵコア２１は、現在の課題表情に対応する評価項目の中から、項目得点を計算すべき評価項目（すなわち、まだ項目得点を計算していない評価項目）を順番に選択する。
【０１７２】
ステップＳ７３では、ＣＰＵコア２１は、ステップＳ７２で選択した評価項目の項目点数を計算するのに必要なデータを、顔特徴点データ５４から読み出す。項目点数を計算するのに必要なデータは、評価項目毎に異なる。
【０１７３】
ステップＳ７４では、ＣＰＵコア２１は、ステップＳ７２で選択した評価項目に対応する項目得点基準値に従って、項目得点を計算する。例えば、現在の課題表情が「左目を閉じる」という課題表情であり、計算対象となる評価項目が「右目を閉じたら減点」である場合には、図１８の評価基準情報５２から、（第１閾値Ｈ、第２閾値Ｈ、最高値Ｈ）に従って当該評価項目の項目得点が計算される。
【０１７４】
ステップＳ７５では、ＣＰＵコア２１は、ＰｏｉｎｔＳｕｍの値を、現在のＰｏｉｎｔＳｕｍの値とステップＳ７４で算出された項目得点との加算結果の値に更新するとともに、ＰｏｉｎｔＭａｘの値を、現在のＰｏｉｎｔＭａｘの値とステップＳ７２で選択した評価項目の最高値との加算結果の値に更新する。ここで、評価項目の最高値は、評価項目毎に予め設定されている値であって、例えば、図１８の「左の口角を下げたら加点」の評価項目では、図２０のような最高値が設定されている。
【０１７５】
ループＨの処理が終了した時点で、ＰｏｉｎｔＳｕｍの値は、現在の課題表情に対応する評価項目の項目得点の合計値を示していることになる。また、ＰｏｉｎｔＭａｘの値は、現在の課題表情に対応する評価項目の項目得点の最大合計値を示していることになる。
【０１７６】
ステップＳ７６では、ＣＰＵコア２１は、ＰｏｉｎｔＳｕｍの値が負の場合にはＰｏｉｎｔＳｕｍの値を０に更新する。これは、顔画像の得点の下限値を０にするためである。
【０１７７】
ステップＳ７７では、ＣＰＵコア２１は、ＤａｔａＡｒｒａｙ［ＵｓａｂｌｅＤａｔａＮｕｍ］の値を、ＰｏｉｎｔＳｕｍ×２０／ＰｏｉｎｔＭａｘの計算結果の値に更新する。ＰｏｉｎｔＳｕｍ×２０／ＰｏｉｎｔＭａｘを計算しているのは、項目得点の合計値を２０点満点の値に換算するためである。ステップＳ７７の処理が終了すると、得点計算処理は終了する。
【０１７８】
図３０において、ステップＳ５４の得点計算処理が終了すると、ステップＳ５５に進む。
【０１７９】
ステップＳ５５では、ＣＰＵコア２１はＵｓａｂｌｅＤａｔａＮｕｍの値に１を加算する。
【０１８０】
ステップＳ５６では、ＣＰＵコア２１はＤａｔａＮｕｍの値に１を加算する。
【０１８１】
ループＦの処理が終了した時点で、同一区間内に撮像された各顔画像（動き課題では最大で６枚の顔画像）の得点がＤａｔａＡｒｒａｙに格納されていることになる。
【０１８２】
つづいてＣＰＵコア２１は部分平均計算処理を行う。部分平均計算処理は、複数の顔画像の得点の部分平均を計算するための処理である。以下、図３３を参照して、部分平均計算処理の詳細を説明する。
【０１８３】
部分平均計算処理が開始されると、ステップＳ８０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＳｏｒｔＤａｔａＡｒｒａｙ［ＭａｘＤａｔａＮｕｍ］：得点の順番にソートした区間得点の配列
・ＵｓｅＤａｔａＮｕｍ：部分平均の計算に使用する区間得点の数
・ＵｓｅＤａｔａＳｕｍ：区間得点の和
【０１８４】
ステップＳ８１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＵｓｅＤａｔａＳｕｍの値を０に初期化する。
【０１８５】
ステップＳ８２では、ＣＰＵコア２１は、ＵｓａｂｌｅＤａｔａＮｕｍの値が０かどうかを判断する。ＵｓａｂｌｅＤａｔａＮｕｍの値が０である場合にはステップＳ８７に進み、ＵｓａｂｌｅＤａｔａＮｕｍの値が０でない場合にはステップＳ８３に進む。
【０１８６】
ステップＳ８３では、ＣＰＵコア２１は、ＵｓａｂｌｅＤａｔａＮｕｍの値を、（ＵｓａｂｌｅＤａｔａＮｕｍ＋１）／２の計算結果の値に更新する。これは、同一区間に撮像された複数の顔画像のうちの半数の顔画像の得点を用いて部分平均を計算することを意味する。
【０１８７】
ステップＳ８４では、ＣＰＵコア２１は、ＤａｔａＡｒｒａｙの各要素の値（すなわち同一区間における各顔画像の得点）を降順に並べ替えて、ＳｏｒｔＤａｔａＡｒｒａｙに格納する。
【０１８８】
つづいてＣＰＵコア２１は、ループＩの処理（すなわち、ステップＳ８５の処理）を、ループ変数Ｉを０から（ＵｓｅＤａｔａＮｕｍ−１）までカウントアップしつつ、繰り返し実行する。
【０１８９】
ステップＳ８５では、ＣＰＵコア２１は、ＵｓｅＤａｔａＳｕｍの値を、ＵｓｅＤａｔａＳｕｍ＋ＳｏｒｔＤａｔａＡｒｒａｙ［Ｉ］の計算結果の値に更新する。
【０１９０】
ループＩの処理が終了した時点で、ＵｓｅＤａｔａＳｕｍの値は、同一区間に撮像された複数の顔画像のうち、得点が高いものから順番に抽出された半数の顔画像の得点の合計値を示していることになる。
【０１９１】
ステップＳ８６では、ＣＰＵコア２１は、Ｓｃｏｒｅの値を、ＳｃｏｒｅＤａｔａＮｕｍ／ＵｓｅＤａｔａＮｕｍの計算結果の値に更新する。つまり、Ｓｃｏｒｅの値は、同一区間に撮像された複数の顔画像のうち、得点が高いものから順番に抽出された半数の顔画像の得点の平均値を示している。
【０１９２】
ステップＳ８７では、ＣＰＵコア２１はＳｃｏｒｅの値を０に更新する。
【０１９３】
ステップＳ８６またはステップＳ８７の処理が終了すると、部分平均計算処理は終了する。
【０１９４】
図３０において、ステップＳ５７の部分平均計算処理が終了すると、区間得点計算処理は終了する。
【０１９５】
図２９において、ステップＳ４３の区間得点計算処理が終了すると、ステップＳ４４に進む。
【０１９６】
ステップＳ４４では、ＣＰＵコア２１は、ＳｃｏｒｅＡｒｒａｙ［ＳｃｏｒｅＮｕｍ］の値を、ステップＳ４３の区間得点計算処理において更新されたＳｃｏｒｅの値に更新する。
【０１９７】
ステップＳ４５では、ＳｃｏｒｅＮｕｍの値に１を加算する。
【０１９８】
ループＤの処理が終了した時点で、第１区間得点〜第５区間得点がＳｃｏｒｅＡｒｒａｙ［１］〜ＳｃｏｒｅＡｒｒａｙ［５］にそれぞれ格納されていることになる。
【０１９９】
ステップＳ４６では、ＣＰＵコア２１はＳｌｏｗＭｉｎｕｓの値を０に初期化する。
【０２００】
つづいてＣＰＵコア２１は、ループＥの処理（すなわち、ステップＳ４７の処理）を、ループ変数Ｉを１から４までカウントアップしつつ、繰り返し実行する。
【０２０１】
ステップＳ４７では、ＣＰＵコア２１は、ＳｌｏｗＭｉｎｕｓの値を、ＳｌｏｗＭｉｎｕｓ＋（（（ＳｃｏｒｅＡｒｒａｙ［５］×Ｉ／５）−ＳｃｏｒｅＡｒｒａｙ［Ｉ］）の絶対値）の計算結果の値に更新する。ここで、（（ＳｃｏｒｅＡｒｒａｙ［５］×Ｉ／５）−ＳｃｏｒｅＡｒｒａｙ［Ｉ］）の絶対値は、実際に計算された区間得点と、図２４を参照して説明したように第５区間得点に基づいて計算される理想値（例えば、第１区間得点の理想値は、第５区間得点の５分の１であり、第２区間得点の理想値は、第５区間得点の５分の２である）との差の大きさを示している。つまり、ＳｌｏｗＭｉｎｕｓの値は、ユーザが表情を理想的に滑らかに動かすほど小さい値となる。
【０２０２】
ループＥの処理が終了すると、ステップＳ４８に進む。
【０２０３】
ステップＳ４８では、ＣＰＵコア２１は、ＳｃｏｒｅＳｌｏｗの値を、（１−ＳｌｏｗＭｉｎｕｓ×一定値）×（ＳｃｏｒｅＡｒｒａｙ［５］×５／２０）の計算結果の値に更新する。これは、第５区間得点を、２０点満点の得点から５点満点の得点へと換算するとともに、ＳｌｏｗＭｉｎｕｓの値に応じて減点することを意味する。
【０２０４】
ステップＳ４８の処理が終了すると、動き課題評価処理は終了する。
【０２０５】
図２７において、ステップＳ２４の動き課題評価処理が終了すると、ステップＳ２５に進む。
【０２０６】
ステップＳ２５では、ＣＰＵコア２１は、ＳｃｏｒｅＳｕｍの値に、ステップＳ２４の動き課題評価処理で更新されたＳｃｏｒｅＳｌｏｗの値（すなわち動き課題の得点）を加算する。
【０２０７】
ステップＳ２６では、ＣＰＵコア２１は、ステップＳ２３で選択された課題表情に関する静止課題評価処理を実行する。静止課題評価処理は、静止課題でのユーザの表情を評価するための処理である。以下、図３４を参照して、静止課題評価処理の詳細を説明する。
【０２０８】
静止課題評価処理が開始されると、ステップＳ９０で、ＣＰＵコア２１は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ＭａｘＤａｔａＮｕｍ：区間得点の計算に使用する顔画像数
【０２０９】
ステップＳ９１では、ＣＰＵコア２１は使用するデータを初期化する。具体的には、ＭａｘＤａｔａＮｕｍの値を３０に初期化する。
【０２１０】
ステップＳ９２では、ＣＰＵコア２１は、静止課題の内容を画像及び／又は音声によりユーザに提示する（例えば図１０のような画像を左画面に表示する）。
【０２１１】
ステップＳ９３では、ＣＰＵコア２１は区間得点計算処理を実行する。ここで実行される区間得点計算処理は、区間得点の計算に使用する顔画像数が異なる点を除けば、前述した図２９のステップＳ４３の区間得点計算処理と同じ処理であるため、ここでは説明を省略する。
【０２１２】
ステップＳ９３の区間得点計算処理が終了すると、静止課題評価処理は終了する。
【０２１３】
図２７において、ステップＳ２６の静止課題評価処理が終了すると、ステップＳ２７に進む。
【０２１４】
ステップＳ２７では、ＣＰＵコア２１は、ＳｃｏｒｅＳｕｍの値にステップＳ２６の静止課題評価処理で更新されたＳｃｏｒｅの値（すなわち静止課題の得点）を加算する。
【０２１５】
ループＢの処理が終了した時点で、ＳｃｏｒｅＳｕｍの値は、第１課題〜第４課題の動き課題および静止課題のそれぞれの得点の合計値を示している。
【０２１６】
ステップＳ２８では、ＣＰＵコア２１は、（ＳｃｏｒｅＳｕｍ×２００／１００）を計算することによって「表現力」を決定する。これは、ＳｃｏｒｅＳｕｍの値を１００点満点の値から２００点満点の値へと換算することを意味する。この結果、「表現力」は０〜２００の範囲の数値で表される。
【０２１７】
ステップＳ２９では、ＣＰＵコア２１は、ユーザの表情の評価結果（例えば、ステップＳ２８で決定した「表現力」の数値）を画像及び／又は音声によりユーザに提示する（例えば図１３のような画像を右画面に表示する）。そして、メイン処理が終了する。
【０２１８】
なお、本実施形態では、カメラカートリッジ３８で撮像したユーザの顔画像を右画面に表示しているが、本発明においては、必ずしもユーザの顔画像を画面に表示する必要はない。ただし、ユーザの顔画像を画面に表示することにより、ユーザは実際の自分の表情を確認しながらエクササイズを行うことができるため、よりエクササイズの効果を高めることができる。
【０２１９】
また、本実施形態では、動き課題と静止課題の両方の結果に基づいてユーザの表情を評価しているが、いずれか一方の課題のみに基づいてユーザの表情を評価してもよい。
【０２２０】
また、本実施形態では、顔画像から４２箇所の全ての顔特徴点を検出した後で、その中から評価項目に応じて必要な顔特徴点のデータを参照して評価項目得点を計算しているが、本発明はこれに限らない。すなわち、顔画像から４２箇所の全ての顔特徴点を検出するのではなく、評価項目に応じて必要な顔特徴点だけをその都度検出するようにしてもよい。
【０２２１】
また、本実施形態では、顔特徴点の標準位置と現在位置の位置関係や、顔特徴点間の現在位置の位置関係に基づいて顔画像の得点を計算しているが、本発明はこれに限らず、例えば、ある顔特徴点の移動速度（これは、顔特徴点の現在位置と、一定時間前に撮像された顔画像における当該顔特徴点の位置とを比較することによって計算することができる）などに基づいて顔画像の得点を計算してもよい。これにより、例えば、眼球を左右にすばやく動かすようなエクササイズにおいて、眼球の移動速度に基づいて顔画像の得点を計算することができる。
【０２２２】
また、本実施形態では、ユーザの表情の評価結果を数字で提示しているが、本発明はこれに限らない。例えば、評価結果に応じて、画面に表示されるキャラクターの表情や動きが変化してもよい。
【０２２３】
また、本実施形態では、各区間に撮像された複数の顔画像の得点の平均値または部分平均値を求めることによって区間得点を計算しているが、本発明はこれに限らず、例えば、各区間に撮像された複数の顔画像の得点の最高値または最低値を、区間得点としてもよい。
【０２２４】
また、本実施形態では、各区間において撮像された複数の顔画像のうち、得点が上位のものから順番に選択された半数の顔画像を用いて部分平均値を計算しているが、本発明はこれに限らない。例えば、各区間に撮像された複数の顔画像のうち、得点が上位のものから順番に一定枚数の顔画像を選択して、当該選択した顔画像の得点の平均値を計算してもよい。また例えば、各区間に撮像された複数の顔画像のうち、得点が所定のしきい値を下回っている顔画像を除外して、残りの顔画像の得点の平均値を計算してもよい。
【０２２５】
また、本実施形態では、第５区間得点を基準としたときの各区間得点の比率が、図２４に示すような理想的な比率により近いほど、動き課題の得点はより高くなるが、本発明はこれに限らない。例えば、撮像時間に応じて区間得点が単調増加しているかどうかに応じて（つまり、第１区間得点＜第２区間得点＜第３区間得点＜第４区間得点＜第５区間得点の関係を満たすかどうかに応じて）、動き課題の得点を変化させてもよい。
【０２２６】
なお、顔特徴点を取得する処理の精度は、撮像装置の性能や画像解析処理の解析精度に左右される。顔特徴点を取得する処理の精度が悪いと、顔特徴点に対応した部位を静止した状態であっても多少移動しているように判定される事がある。そのような判定をされた場合に備え、静止状態から移動を行った時の移動をしているという判定基準を厳しくすることにより、多少の動きではなるべく移動をしていないと判定を行うように処理を行うことが有効的である。しかし、判定基準を厳しくすることによって、静止状態から移動を行った時の採点基準が、他の時点での採点基準と異なってしまい、各時点での公平な採点を行えなくなってしまう問題が生じる。そのような場合には、静止状態から移動を行った時の採点のデータを使用しないようにすることにより、同じ採点基準のデータから採点を行う等の対処を行うことにより問題を解消することが考えられる。
【０２２７】
なお、本実施形態では、顔特徴点の現在位置が標準位置からより離れるほど、顔画像の得点がより高くなるように、ユーザの表情を評価しているが、本発明はこれに限らない。例えば、図３５に示すように、課題表情毎に１つまたは複数の顔特徴点の目標位置を予め設定しておき、顔特徴点の現在位置と目標位置を比較することによって、ユーザの表情を評価してもよい（例えば、現在位置が目標位置により近い程、顔画像の得点がより高くなるようにする）。
【図面の簡単な説明】
【０２２８】
【図１】本発明の一実施形態に係るゲーム装置の外観図
【図２】ユーザによる利用時のゲーム装置の外観図
【図３】ゲーム装置の内部構成を示すブロック図
【図４】トレーニングプログラムの実行時の表示画像例
【図５】トレーニングプログラムの実行時の表示画像例
【図６】トレーニングプログラムの実行時の表示画像例
【図７】トレーニングプログラムの実行時の表示画像例
【図８】トレーニングプログラムの実行時の表示画像例
【図９】トレーニングプログラムの実行時の表示画像例
【図１０】トレーニングプログラムの実行時の表示画像例
【図１１】トレーニングプログラムの実行時の表示画像例
【図１２】トレーニングプログラムの実行時の表示画像例
【図１３】トレーニングプログラムの実行時の表示画像例
【図１４】ＲＡＭのメモリマップ
【図１５】顔画像から検出される顔特徴点の位置を示す図
【図１６】カメラ座標系から顔座標系への座標変換方法を示す図
【図１７】顔特徴点データの詳細を示す図
【図１８】評価基準情報の詳細を示す図
【図１９】顔画像の得点の計算に利用される顔特徴点の一例
【図２０】項目得点の計算方法の一例を示す図
【図２１】項目得点の計算方法の他の例を示す図
【図２２】動き課題における区間得点の計算方法を示す図
【図２３】動き課題の得点の計算方法を示す図
【図２４】動き課題の得点の計算方法を示す他の図
【図２５】静止課題の得点の計算方法を示す図
【図２６】顔特徴点取得処理の流れを示すフローチャート
【図２７】メイン処理の流れを示すフローチャート
【図２８】標準位置取得処理の流れを示すフローチャート
【図２９】動き課題評価処理の流れを示すフローチャート
【図３０】区間得点計算処理の流れを示すフローチャート
【図３１】現在位置取得処理の流れを示すフローチャート
【図３２】得点計算処理の流れを示すフローチャート
【図３３】部分平均計算処理の流れを示すフローチャート
【図３４】静止課題評価処理の流れを示すフローチャート
【図３５】評価基準情報の変形例を示す図
【符号の説明】
【０２２９】
１０  ゲーム装置
１１  第１のＬＣＤ
１２  第２のＬＣＤ
１３  ハウジング
１３ａ  上側ハウジング
１３ｂ  下側ハウジング
１４  操作スイッチ部
１４ａ  十字スイッチ
１４ｂ  スタートスイッチ
１４ｃ  セレクトスイッチ
１４ｄ  Ａボタン
１４ｅ  Ｂボタン
１４ｆ  Ｘボタン
１４ｇ  Ｙボタン
１５  タッチパネル
１６  スティック
１７  メモリカード
１７ａ  ＲＯＭ
１７ｂ  フラッシュメモリ
１８ａ，１８ｂ  音抜き孔
１９  電源スイッチ
２０  電子回路基板
２１  ＣＰＵコア
２２  バス
２３ａ  第１コネクタ
２３ｂ  第２コネクタ
２４  ＲＡＭ
２５  Ｉ／Ｆ回路
２６  第１ＧＰＵ
２７  第２ＧＰＵ
２８  第１ＶＲＡＭ
２９  第２ＶＲＡＭ
３０ａ  右スピーカ
３０ｂ  左スピーカ
３１  ＬＣＤコントローラ
３２  レジスタ
３３  マイクロフォン用孔
３４  挿入口
３５  挿入口
３６  挿入口
３７  マイクロフォン
３８  カメラカートリッジ
３８ａ  カメラレンズ
３９  ワイヤレス通信部
４０  お手本画像
４１  ゲージ画像
５０  トレーニングプログラム
５１  顔特徴点検出プログラム
５２  評価基準情報
５３  お手本画像データ
５４  顔特徴点データ
５５  その他データ
【図１】
2008264367.tif 000003
【図２】
2008264367.tif 000004
【図３】
2008264367.tif 000005
【図４】
2008264367.tif 000006
【図５】
2008264367.tif 000007
【図６】
2008264367.tif 000008
【図７】
2008264367.tif 000009
【図８】
2008264367.tif 000010
【図９】
2008264367.tif 000011
【図１０】
2008264367.tif 000012
【図１１】
2008264367.tif 000013
【図１２】
2008264367.tif 000014
【図１３】
2008264367.tif 000015
【図１４】
2008264367.tif 000016
【図１５】
2008264367.tif 000017
【図１６】
2008264367.tif 000018
【図１７】
2008264367.tif 000019
【図１８】
2008264367.tif 000020
【図１９】
2008264367.tif 000021
【図２０】
2008264367.tif 000022
【図２１】
2008264367.tif 000023
【図２２】
2008264367.tif 000024
【図２３】
2008264367.tif 000025
【図２４】
2008264367.tif 000026
【図２５】
2008264367.tif 000027
【図２６】
2008264367.tif 000028
【図２７】
2008264367.tif 000029
【図２８】
2008264367.tif 000030
【図２９】
2008264367.tif 000031
【図３０】
2008264367.tif 000032
【図３１】
2008264367.tif 000033
【図３２】
2008264367.tif 000034
【図３３】
2008264367.tif 000035
【図３４】
2008264367.tif 000036
【図３５】
2008264367.tif 000037