説明

トレーニングプログラムおよびトレーニング装置

【課題】ユーザが表情筋のトレーニングを効果的に行うことのできるトレーニングプログラムおよびトレーニング装置を提供すること。
【解決手段】予め用意された複数の課題表情のうちの1つが画面に表示される。ユーザに課題表情が提示された後、カメラカートリッジ38によって撮像されたユーザの顔画像から顔特徴点の位置が検出される。検出された顔特徴点の位置に基づいて、課題表情に対応する評価基準に従って顔画像におけるユーザの表情が評価され、その評価結果を示す画像が画面に表示される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、トレーニングプログラムおよびトレーニング装置に関し、特に、表情筋のトレーニングを支援するためのトレーニングプログラムおよびトレーニング装置に関する。
【背景技術】
【0002】
従来、プレイヤの顔を撮像手段によって撮像し、撮像された顔画像を利用してプレイヤ同士で勝負することが可能なゲーム装置がある(例えば、特許文献1を参照)。このゲーム装置では、顔画像を読み込み、読み込んだ顔画像の顔特徴点データを抽出して、特定の計算式および係数により顔特徴点データから得点データを算出している。そして、算出した複数プレイヤの得点データを比較することによって勝敗を決定している。
【特許文献1】特開2004−173960号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、特許文献1に記載のゲーム装置は、プレイヤに所定の表情を指示したり、その後のプレイヤの表情を評価したりする機能を有していないため、表情筋のトレーニングの用途に利用することができない。
【0004】
ところで、表情筋のトレーニングを支援するものとして、従来、お手本となる表情を示すイラストや写真を含む書籍が提供されているが、このような書籍を利用して表情筋のトレーニングを行う場合、ユーザは、お手本通りの表情ができているかどうかを鏡を見ながら自己評価しなければならず、客観的な評価結果を得ることはできなかった。
【0005】
それゆえに本発明は、ユーザが表情筋のトレーニングを効果的に行うことのできるトレーニングプログラムおよびトレーニング装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号は、本発明の理解を助けるために、図面との対応関係の一例を示したものであって、本発明の範囲を何ら限定するものではない。
【0007】
本発明のトレーニングプログラム(50)は、表情筋のトレーニングを支援するためのトレーニングプログラムである。当該トレーニングプログラムは、コンピュータ(21)に、選択ステップ(S23)、顔画像取得ステップ(51)、顔特徴点検出ステップ(51)、評価ステップ(S24,S26)、および、評価結果提示ステップ(S29)を実行させる。選択ステップは、予め用意された複数の課題表情の中から今回の課題となる課題表情を選択するステップである。顔画像取得ステップは、コンピュータに接続された撮像装置(38)よりユーザの顔画像を取得するステップである。顔特徴点検出ステップは、顔画像取得ステップで取得された顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置を検出するステップである。評価ステップは、複数の課題表情毎に予め設定された評価基準(52)のうち、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された顔特徴点の位置に基づいて顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップである。評価結果提示ステップは、評価ステップの評価結果を画像又は音声によりユーザに提示するステップである。
【0008】
なお、課題表情に応じて参照すべき顔特徴点が変わるように評価基準が設定されており、評価ステップでは、選択ステップで選択された課題表情に応じて異なる顔特徴点の位置を参照して、顔画像におけるユーザの表情を評価してもよい。これにより、課題表情に応じてユーザの表情を適切に評価することができる。
【0009】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から、選択ステップで選択された課題表情に対応する少なくとも2つの顔特徴点の位置を検出し、評価ステップでは、顔特徴点検出ステップで検出された2つの顔特徴点の間の位置関係に基づいて顔画像におけるユーザの表情を評価してもよい。
【0010】
また、評価ステップは、顔特徴点検出ステップで検出された2つの顔特徴点の間の距離を算出するステップと、当該算出された距離に基づいて顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。これにより、特定の2つの顔特徴点がどれだけ離れているかという観点から、ユーザの表情を評価することができる。
【0011】
また、複数の課題表情毎に目標距離データが予め設定されており、評価ステップでは、距離を算出するステップにより算出された距離と、複数の課題表情毎に予め設定された目標距離データのうちの選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【0012】
また、評価ステップでは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置(24)に格納されている当該顔特徴点の標準位置との間の位置関係に基づいて顔画像におけるユーザの表情を評価してもよい。
【0013】
また、複数の課題表情毎に目標距離データが予め設定されており、評価ステップは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点の標準位置との間の距離を算出するステップと、当該算出された距離と、複数の課題表情毎に予め設定された目標距離データのうちの選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。
【0014】
また、トレーニングプログラムは、コンピュータに、標準顔画像取得ステップ(51)、標準位置検出ステップ(51)、および、標準位置記憶ステップ(S22)をさらに実行させてもよい。標準顔画像取得ステップは、少なくとも顔画像取得ステップよりも前に、撮像手段よりユーザの無表情時の顔画像を標準顔画像として取得するステップである。標準位置検出ステップは、標準顔画像取得ステップで取得された顔画像における予め定められた顔特徴点の位置を検出するステップである。標準位置記憶ステップは、標準位置検出ステップで検出された顔特徴点の位置を当該顔特徴点の標準位置として記憶装置に格納するステップである。これにより、ユーザ自身の顔画像に基づいて顔特徴点の標準位置が設定されるので、ユーザの表情をより適切に評価することができる。
【0015】
また、標準位置検出ステップでは、標準顔画像取得ステップで取得された顔画像における複数の顔特徴点の位置を検出し、標準位置記憶ステップでは、複数の顔特徴点の位置を記憶装置にそれぞれ格納し、顔特徴点検出ステップでは、顔画像取得ステップにより取得された顔画像から複数の顔特徴点の位置を検出し、複数の課題表情毎に、顔画像の評価に利用する顔特徴点として、複数の顔特徴点のうちいずれかが予め指定されており、評価ステップでは、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された複数の顔特徴点のうち選択手段によって選択された課題表情に応じた顔特徴点の位置と、標準位置記憶ステップにより格納されている複数の顔特徴点のうち選択手段によって選択された課題表情に応じた顔特徴点の位置とを比較することにより、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【0016】
また、評価ステップは、顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点に対応する基準位置との間の距離を算出するステップと、当該算出された距離に基づいて顔画像におけるユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの顔特徴点が基準位置からどれだけ移動しているかという観点から、ユーザの表情を評価することができる。
【0017】
また、評価ステップでは、複数の課題表情毎に予め設定された評価基準のうち、選択ステップで選択された課題表情に対応する評価基準に従って、顔特徴点検出ステップで検出された顔特徴点の位置に基づいて顔画像取得ステップで取得された顔画像の得点を計算し、評価結果提示ステップでは、評価ステップで算出された得点を画像又は音声によりユーザに提示してもよい。ユーザの顔特徴点が基準位置からどれだけ移動しているかという観点から、顔画像の得点を決定することができる。なお、ここで言う「得点」は、後述する実施形態における「項目得点」、「顔画像の得点」、「区間得点」、「動き課題の得点」、「静止課題の得点」のいずれの種類の得点であってもよい。
【0018】
また、顔画像取得ステップでは、所定期間において撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置を、顔画像取得ステップで取得された複数の顔画像からそれぞれ検出し、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。これにより、1枚の顔画像からユーザの表情を評価する場合と比較して、より多様な観点からユーザの表情を評価することが可能となる。
【0019】
また、顔画像取得ステップでは、一定の周期で顔画像を取得してもよい。これにより、ユーザの表情が変化する過程における顔特徴点の位置を取得することができる。
【0020】
また、評価ステップは、顔特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された所定期間における複数の顔画像の得点をそれぞれ計算するステップと、顔画像取得ステップで取得された所定期間における複数の顔画像のうち、得点が一定値以下のまたは比較的得点の低い少なくとも1つの顔画像の得点を除いた他の得点を用いて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。これにより、ユーザの表情の時間的な変化を考慮して顔画像の得点を変化させることができる。
【0021】
また、評価ステップは、顔特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された所定期間における複数の顔画像の得点をそれぞれ計算するステップと、顔画像取得ステップで取得された所定期間における複数の顔画像の得点の平均を求め、当該平均を用いて、顔画像取得ステップで取得された顔画像におけるユーザの表情を評価してもよい。
【0022】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像のそれぞれについて、各顔画像における顔特徴点の位置に基づいて、当該各顔画像が課題表情に近いほど高い評価となるように、当該各顔画像におけるユーザの表情を評価する第1評価ステップと、当該第1評価ステップの評価結果に基づいて、撮像タイミングが遅い顔画像ほど評価がより高くなっているかどうかに応じてユーザの表情を評価する第2評価ステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかを評価することができる。
【0023】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ(S52)と、撮像タイミングが遅い顔画像ほど得点がより高くなっているかどうかに応じて少なくとも1つの顔画像の得点(例えば、後述の実施形態における第5区間得点)を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかに応じて、顔画像の得点を変化させることができる。
【0024】
また、トレーニングは、無表情から課題表情へと一定速度で滑らかに表情変化させるトレーニングであり、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点を、当該各顔画像が課題表情に近いほど高くなるようにそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じてユーザの表情を評価するステップ(S47)とを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかを評価することができる。
【0025】
また、評価ステップは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ(S52)と、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じて少なくとも1つの顔画像の得点(例えば、後述の実施形態における第5区間得点)を補正するステップ(S47)と、当該補正された得点に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、ユーザの表情が滑らかに変化しているかどうかに応じて、顔画像の得点を変化させることができる。
【0026】
また、顔画像取得ステップでは、撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、顔画像取得ステップで取得された各顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ(S54)と、当該複数の顔画像の得点の最高値、最低値、平均値または部分平均値の少なくともいずれかを計算するステップ(S57)と、当該最高値、最低値、平均値または部分平均値に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、顔特徴点の検出精度によらず、ユーザの表情を高精度に評価することができる。
【0027】
また、評価ステップでは、特徴点検出ステップで検出された複数の顔画像における顔特徴点の位置に基づいて、顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップ(S54)と、複数の顔画像のうちの比較的得点の高い一部の顔画像の得点の平均値を当該複数の顔画像の部分平均値として計算するステップ(S57)と、当該部分平均値に応じてユーザの表情を評価するステップとを含んでいてもよい。これにより、顔特徴点の検出精度によらず、ユーザの表情を高精度に評価することができる。
【0028】
また、顔画像取得ステップでは、所定期間(例えば、後述の実施形態における動き課題期間)に撮像タイミングの異なる複数の顔画像を取得し、顔特徴点検出ステップでは、顔画像取得ステップで取得された各顔画像から、少なくとも選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、評価ステップは、所定期間を構成する複数の区間(例えば、後述の実施形態における第1区間〜第5区間)のそれぞれについて、当該区間に取得された複数の顔画像における顔特徴点の位置に基づいて当該複数の顔画像のそれぞれの点数を計算するステップ(S54)、当該区間に取得された複数の顔画像の得点に基づいて当該区間の区間得点を計算するステップ(S57)、複数の区間の区間得点に基づいてユーザの表情を評価するステップとを含んでいてもよい(図22)。これにより、顔特徴点の検出精度によらず、ユーザの表情の変化を高精度に評価することができる。
【0029】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から少なくとも第1顔特徴点と第2顔特徴点の2つの顔特徴点の位置を検出し、評価ステップは、顔特徴点検出ステップで検出された第1顔特徴点の位置と、記憶装置に格納されている当該第1顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ(S74)と、顔特徴点検出ステップで検出された第2顔特徴点の位置と、記憶装置に格納されている当該第2顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を減点するステップ(S74)とを含んでいてもよい。これにより、例えば、ある顔特徴点だけを移動させて、他の顔特徴点は移動させない、というようなエクササイズにおいて、ユーザの表情を適切に評価することが可能となる。
【0030】
また、顔特徴点検出ステップでは、顔画像取得ステップで取得された顔画像から少なくとも第1顔特徴点と第2顔特徴点の2つの顔特徴点の位置を検出し、評価ステップは、顔特徴点検出ステップで検出された第1顔特徴点の位置と、記憶装置に格納されている当該第1顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ(S74)と、顔特徴点検出ステップで検出された第2顔特徴点の位置と、記憶装置に格納されている当該第2顔特徴点に対応する基準位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を加点するステップ(S74)と、顔特徴点検出ステップで検出された第1顔特徴点の位置と、顔特徴点検出ステップで検出された第2顔特徴点の位置との位置関係に基づいて、顔画像取得ステップで取得された顔画像の得点を変化させるステップ(S74)とを含んでいてもよい。これにより、例えば、特定の2箇所の顔特徴点をバランス良く移動させる、というようなエクササイズにおいて、ユーザの表情を適切に評価することが可能となる。
【0031】
また、トレーニングプログラムは、コンピュータに、顔特徴点検出ステップの後、当該顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点の位置に基づいて顔座標系の原点および座標軸を設定する顔座標系設定ステップ(S34〜S36)、および、当該顔特徴点検出ステップで検出された各顔特徴点の位置を示す座標を、顔座標系設定ステップで設定された顔座標系の座標へと座標変換するステップ(S37〜S38)をさらに実行させてもよい。
【0032】
また、顔座標系設定ステップでは、顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点(P13,P22)を結ぶ直線の方向に基づいて顔座標系の座標軸(X軸,Y軸)の方向を設定してもよい。これにより、撮像装置のレンズの光軸周りにユーザの顔が回転しても、そのことに起因して顔特徴点における各顔特徴点の座標が変化してしまうことがないため、ユーザの表情を正しく評価することができる。
【0033】
また、顔座標系設定ステップでは、顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点(P13,P22)の距離に基づいて顔座標系の座標軸(X軸,Y軸)のスケール(X軸単位ベクトルの大きさ,Y軸単位ベクトルの大きさ)を設定してもよい。これにより、撮像装置とユーザの顔の距離が変化しても、そのことに起因して顔特徴点における各顔特徴点の座標が変化してしまうことがないため、ユーザの表情を正しく評価することができる。
【0034】
また、トレーニングプログラムは、選択ステップで選択された課題表情に対応するお手本画像(40)を画面(11)に表示するステップをコンピュータにさらに実行させてもよい。これにより、ユーザはお手本画像を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【0035】
また、お手本画像がアニメーション画像であってもよい(図6)。これにより、例えば表情をゆっくりと変化させるようなエクササイズを行うときに、ユーザはアニメーション表示されるお手本画像を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【0036】
また、トレーニングプログラムは、撮像装置によって撮像されたユーザの顔画像を画面(12)に表示するステップをコンピュータにさらに実行させてもよい。これにより、ユーザは自分の実際の顔の表情を見ながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【0037】
また、トレーニングプログラムは、選択ステップで選択された課題表情に対応するお手本画像と、撮像装置によって撮像されたユーザの顔画像とを同一または異なる画面(11,12)に同時に表示するステップをコンピュータにさらに実行させてもよい(図7)。これにより、ユーザはお手本画像と自分の実際の顔の表情を見比べながら表情筋のエクササイズを行うことができるので、効果的なエクササイズが可能となる。
【0038】
本発明のトレーニング装置(10)は、表情筋のトレーニングを支援するためのトレーニング装置である。当該トレーニング装置は、選択手段(21)、顔画像取得手段(21)、顔特徴点検出手段(21)、評価手段(21)、および、評価結果提示手段(21)を備える。選択手段は、予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する手段である。顔画像取得手段は、撮像装置(38)よりユーザの顔画像を取得する手段である。顔特徴点検出手段は、顔画像取得手段によって取得された顔画像から、少なくとも選択手段によって選択された課題表情に関連する顔特徴点の位置を検出する手段である。評価手段は、複数の課題表情毎に予め設定された評価基準(52)のうち、選択手段によって選択された課題表情に対応する評価基準に従って、顔特徴点検出手段によって検出された顔特徴点の位置に基づいて顔画像取得手段によって取得された顔画像におけるユーザの表情を評価する手段である。評価結果提示手段は、評価手段の評価結果を画像又は音声によりユーザに提示する手段である。
【発明の効果】
【0039】
本発明によれば、ユーザは、表情筋のトレーニングを行うときに客観的な評価結果を得ることができるので、効果的なトレーニングを行うことが可能となる。
【発明を実施するための最良の形態】
【0040】
以下、本発明の実施形態ついて説明する。
【0041】
図1は、本発明の一実施形態に係るゲーム装置の外観図である。ただし、本発明は、携帯型のゲーム装置に限らず、据置型のゲーム装置にも適用可能である。さらに、本発明はゲーム装置に限らず、任意の情報処理装置(例えば、パーソナルコンピュータや携帯電話等)に適用可能である。
【0042】
図1において、ゲーム装置10は、第1のLCD(Liquid Crystal Display:液晶表示装置)11および第2のLCD12を含む。ハウジング13は上側ハウジング13aと下側ハウジング13bとによって構成されている。第1のLCD11は上側ハウジング13aに収納され、第2のLCD12は下側ハウジング13bに収納される。第1のLCD11および第2のLCD12の解像度はいずれも256dot×192dotである。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【0043】
上側ハウジング13aには、後述する1対のスピーカ(図3の右スピーカ30aおよび左スピーカ30b)からの音を外部に放出するための音抜き孔18aおよび18bが形成されている。また、上側ハウジング13aと下側ハウジング13bとを開閉可能に接続するヒンジ部にはマイクロフォン用孔33が設けられている。
【0044】
下側ハウジング13bには、入力装置として、十字スイッチ14a、スタートスイッチ14b、セレクトスイッチ14c、Aボタン14d、Bボタン14e、Xボタン14f、およびYボタン14gが設けられている。また、下側ハウジング13bの側面には、図示しないLボタンおよびRボタンが設けられている。また、さらなる入力装置として、第2のLCD12の画面上にタッチパネル15が装着されている。下側ハウジング13bの側面には、電源スイッチ19、メモリカード17を接続するための挿入口35、スティック16を収納するための挿入口36、および、カメラカートリッジ38を接続するための挿入口34が設けられている。
【0045】
タッチパネル15としては、例えば抵抗膜方式や光学式(赤外線方式)や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル15は、スティック16に限らず指で操作することも可能である。本実施形態では、タッチパネル15として、第2のLCD12の解像度と同じく256dot×192dotの解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル15の解像度と第2のLCD12の解像度が一致している必要はない。
【0046】
メモリカード17は、ゲーム装置10で実行すべきコンピュータプログラムであるトレーニングプログラムを記録した記録媒体であり、下部ハウジング13bに設けられた挿入口35に着脱自在に装着される。図1では省略するが、挿入口35の奥部には、メモリカード17の挿入方向先端部に設けられるコネクタと接合するための第1コネクタ23a(図3参照)が設けられている。メモリカード17が挿入口35に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア21(図3参照)がメモリカード17にアクセス可能となる。
【0047】
また、カメラカートリッジ38は、ユーザの顔を撮像する機能を有するカートリッジであり、下部ハウジング13bに設けられた挿入口34に着脱自在に装着される。図1では省略するが、挿入口34の奥部には、カメラカートリッジ38の挿入方向先端部に設けられるコネクタ(図示せず)と接合するための第2コネクタ23b(図3参照)が設けられている。カメラカートリッジ38が挿入口34に挿入されると、コネクタ同士が接合される。カメラカートリッジ38にはカメラレンズ38aが設けられている。カメラレンズ38aは、カメラカートリッジ38を挿入口34に挿入した状態でも下部ハウジング13bに隠れてしまわないような位置に設けられている。カメラレンズ38aが、カメラカートリッジ38を挿入口34に挿入した際に下部ハウジング13bに隠れてしまうような場合には、カメラレンズ38aを含むカメラカートリッジ38の一部を可動にして、カメラレンズ38aが下部ハウジング13bに隠れないようにしても良い。
【0048】
本実施形態では、ユーザが図2のようにゲーム装置10を両手で把持した状態で、第1のLCD11および第2のLCD12の画面を見ながら表情筋のトレーニングを行うものとする。
【0049】
次に、図3を参照してゲーム装置10の内部構成を説明する。図3は、ゲーム装置10の内部構成を示すブロック図である。図3において、ハウジング13に収納される電子回路基板20には、CPUコア21が実装される。CPUコア21には、バス22を介して、第1コネクタ23aおよび第2コネクタ23bが接続されるとともに、入出力インターフェース回路(図面ではI/F回路と記す)25、第1GPU(Graphics Processing Unit)26、第2GPU27、RAM24、およびLCDコントローラ31、およびワイヤレス通信部39が接続される。第1コネクタ23aには、メモリカード17が着脱自在に接続される。第2コネクタ23bには、カメラカートリッジ38が着脱自在に接続される。
【0050】
I/F回路25には、タッチパネル15、右スピーカ30a、左スピーカ30b、図1の十字スイッチ14aやAボタン14d等から成る操作スイッチ部14、およびマイクロフォン37が接続される。右スピーカ30aと左スピーカ30bは、音抜き孔18a、18bの内側にそれぞれ配置される。マイクロフォン37は、マイクロフォン用孔33の内側に配置される。
【0051】
第1GPU26には、第1VRAM(Video RAM)28が接続され、第2GPU27には、第2VRAM29が接続される。第1GPU26は、CPUコア21からの指示に応じて第1の表示画像を生成し、第1VRAM28に描画する。第2GPU27は、同様にCPUコア21からの指示に応じて第2の表示画像を生成し、第2VRAM29に描画する。第1VRAM28および第2VRAM29はLCDコントローラ31に接続されている。
【0052】
LCDコントローラ31はレジスタ32を含む。レジスタ32はCPUコア21からの指示に応じて0または1の値を記憶する。LCDコントローラ31は、レジスタ32の値が0の場合は、第1VRAM28に描画された第1の表示画像を第1のLCD11に出力し、第2VRAM29に描画された第2の表示画像を第2のLCD12に出力する。また、レジスタ32の値が1の場合は、第1VRAM28に描画された第1の表示画像を第2のLCD12に出力し、第2VRAM29に描画された第2の表示画像を第1のLCD11に出力する。
【0053】
ワイヤレス通信部39は、他のゲーム装置のワイヤレス通信部との間で、データを送受信する機能を有している。また、ゲーム装置10は、ワイヤレス通信部39を介してインターネット等の広域ネットワークに接続することが可能であり、ネットワークを介して他のゲーム装置との間で通信を行うことも可能である。
【0054】
メモリカード17のROM17aは、上記トレーニングプログラムの他、このトレーニングプログラムの実行時に利用される各種データ(画像データや音声データ等)を記憶する。
【0055】
また、メモリカード17のフラッシュメモリ17bは、消去および書込み可能な、つまり、書き換え可能な不揮発性のメモリである。フラッシュメモリ17bには、上記コンピュータプログラムの実行結果等を示すセーブデータが必要に応じて記憶される。
【0056】
メモリカード17を第1コネクタ23aに挿入した状態でユーザがゲーム装置10の電源をオンにすると、メモリカード17のROM17aに記憶されたトレーニングプログラムがRAM24にロードされ、RAM24にロードされたトレーニングプログラムがCPUコア21によって実行される。トレーニングプログラムは、一度に全部、または、必要に応じて部分的にかつ順次的に読み出される。RAM24には、トレーニングプログラムの他にも、CPUコア21がトレーニングプログラムを実行して得られる一時的なデータや、表示画像を生成するためのデータが記憶される。
【0057】
カメラカートリッジ38は、カメラレンズ38aを通じてユーザの顔を撮像し、その撮像結果としてユーザの顔画像データを出力する。
【0058】
なお、本実施形態ではトレーニングプログラムがメモリカード17からゲーム装置10の本体部に供給されるが、本発明はこれに限らない。例えば、トレーニングプログラムが光ディスクなどの他の任意のコンピュータ読み取り可能な記憶媒体よりゲーム装置10に供給されても良いし、トレーニングプログラムが他のコンピュータシステムから有線または無線の通信回線を通じてゲーム装置10に供給されてもよいし、トレーニングプログラムがゲーム装置10の本体内部の不揮発性記憶装置に予め格納されていてもよい。
【0059】
また、本実施形態では、撮像手段がカメラカートリッジ38に設けられているが、本発明はこれに限らない。例えば、ゲーム装置10の本体部(ハウジング13の内部)に撮像手段が設けられていてもよい。また、ゲーム装置10の本体部と撮像手段とが通信ケーブルを通じて接続されていてもよい。さらには、撮像手段によって撮像された顔画像データが無線通信によってゲーム装置10の本体部に供給されてもよい。
【0060】
以下、図4〜図12を参照して、ゲーム装置10の動作の概要を説明する。なお、CPUコア21がトレーニングプログラムを実行することによって、ゲーム装置10は、表情筋のトレーニングを支援するトレーニング装置として機能する。
【0061】
本実施形態では、ユーザは、ゲーム装置10の第1のLCD11(以下、左画面と称す)と第2のLCD12(以下、右画面と称す)に表示される画像を見ながら、第1課題から第4課題の4つのエクササイズを行う。
【0062】
図4は、ユーザが第1課題を開始するときに第1のLCD11(以下、左画面と称す)と第2のLCD12(以下、右画面と称す)に表示される画像を示している。第1課題は、左右の口角を下げるエクササイズである。左画面には、ユーザがこれから行うべき表情(課題表情と称す)を示すお手本画像40と説明文が表示される。右画面には、カメラカートリッジ38により撮影されるユーザの顔画像がリアルタイムで表示される。なお、右画面に表示される顔画像は、ユーザの顔があたかも鏡に映っているかのように左右反転表示される。例えば、図4において、右画面の右側に表示されている方の目は、ユーザの右目である。
【0063】
第1課題から第4課題の各課題は、それぞれ「動き課題」と「静止課題」の2つの課題で構成される。「動き課題」とは、無表情の状態から指定された表情(課題表情)へと5秒間かけてゆっくりと表情を変化させるエクササイズであり、「静止課題」とは、動き課題に続いて、指定された表情(課題表情)を5秒間維持するエクササイズである。なお、本実施形態では、動き課題と静止課題がそれぞれ5秒間行われるが、本発明はこれに限らない。
【0064】
図5は、第1課題の動き課題(以下、第1動き課題と称す)の開始直前における左画面と右画面の様子を示している。左画面には、これから実行しようとする第1動き課題の内容を示す説明文が表示される。
【0065】
第1動き課題が開始されると、左画面では、お手本画像40がアニメーション表示される。図6は、第1動き課題において左画面に表示されるお手本画像40の変化の様子を示している。第1動き課題の開始直後では、お手本画像40の顔の表情は無表情であるが、時間の経過に伴って徐々に表情が変化し、第1動き課題の終了直前(すなわち、第1動き課題の開始から5秒後)には、第1課題の課題表情(図4の左画面の表情)と同じ表情となる。動き課題では、ユーザは、このお手本画像40の変化に合わせてゆっくりと表情を変化させる。
【0066】
図7は、第1動き課題の開始直後における左画面と右画面の様子を示している。ここでは、まだ第1動き課題の開始直後のため、お手本画像40の表情はほぼ無表情である。右画面には、課題開始からの経過時間(言い換えれば、課題終了までの残り時間)を示すゲージ画像41が表示される。なお、ゲージ画像41を表示する代わりに、課題開始からの経過時間(秒数)を示す数字を表示したり、課題終了までの残り時間を音声にてカウントダウンしたりしてもよい。また、ゲージ画像41は必ずしも表示する必要は無い。
【0067】
図8は、第1動き課題が開始してから2〜3秒が経過した時点における左画面と右画面の様子を示している。ここでは、お手本画像40の左右の口角が少し下がっている。ユーザも、お手本画像に合わせて左右の口角を少し下げている。
【0068】
図9は、第1動き課題の終了直前における左画面と右画面の様子を示している。ここでは、お手本画像40の左右の口角が大きく下がっている。ユーザも、お手本画像に合わせて左右の口角を大きく下げているが、力んでいるために、無表情時と比較して左右の目がやや閉じてしまっている。
【0069】
第1動き課題の開始から5秒間が経過すると第1動き課題が終了し、続いて第1課題の静止課題(以下、第1静止課題と称す)の準備に移る。
【0070】
図10は、第1静止課題の開始直前における左画面と右画面の様子を示している。左画面には、これから実行しようとする第1静止課題の内容を示す説明文が表示される。
【0071】
図11は、第1静止課題が開始してから2〜3秒が経過した時点における左画面と右画面の様子を示している。静止課題においても、動き課題と同様に左画面にお手本画像40が表示されるが、静止課題においてはお手本画像40の表情は時間の経過に応じて変化せず、常に一定の表情である。ユーザも、お手本画像に合わせて左右の口角を大きく下げた状態で、その表情を維持する。右画面には、動き課題のときと同様に、課題開始からの経過時間(言い換えれば、課題終了までの残り時間)を示すゲージ画像41が表示される。なお、ゲージ画像41を表示する代わりに、課題開始からの経過時間(秒数)を示す数字を表示したり、課題終了までの残り時間を音声にてカウントダウンしたりしてもよい。また、ゲージ画像41は必ずしも表示する必要は無い。
【0072】
第1静止課題の開始から5秒間が経過すると第1静止課題が終了し、続いてユーザは第2課題を行う。
【0073】
図12は、ユーザが第2課題を開始するときに左画面と右画面に表示される画像を示している。第2課題は、左目を閉じるエクササイズである。左画面には、課題表情を示すお手本画像40と説明文が表示される。この後、第2動き課題と第2静止課題が行われる。
【0074】
第2課題が終了すると、続いて第3課題(第3動き課題および第3静止課題)と第4課題(第4動き課題および第4静止課題)が順次行われる。
【0075】
第1課題から第4課題までの4つの課題が全て終了すると、これらの4つの課題を通じてユーザの「表情力」が評価され、その評価結果が図13に示すように表示される。「表情力」とは、表情筋を制御する能力を示しており、各課題におけるユーザの表情がお手本画像40の表情に近いほど高い数値となる。本実施形態では、表情力は0%〜200%の数値で表される。これにより、ユーザは客観的な評価結果を得ることができるので、従来のようにお手本通りの表情ができているかどうかを鏡を見ながら自己評価しなければならない場合と比較して、表情筋のトレーニングを効果的に行うことができる。
【0076】
次に、ゲーム装置10の動作について、より詳細に説明する。
【0077】
図14に、RAM24のメモリマップを示す。RAM24には、トレーニングプログラム50、顔特徴点データ54、および、その他データ55が格納される。トレーニングプログラム50には、顔特徴点検出プログラム51、評価基準情報52およびお手本画像データ53が含まれている。
【0078】
顔特徴点検出プログラム51は、カメラカートリッジ38によって撮像されたユーザの顔画像に対してエッジ検出等の画像処理を施すことによって、顔画像におけるユーザの顔特徴点の位置を検出するプログラムである。顔特徴点検出プログラム51としては、例えば沖電気工業株式会社のFSE(Face Sensing Engine)(登録商標)のような公知のソフトウェアを利用することができる。
【0079】
図15は、顔特徴点検出プログラム51によって検出される顔特徴点の具体例を示している。本実施形態では、顔特徴点検出プログラム51によって顔画像から42箇所の顔特徴点(顔特徴点P1〜P42)が検出される。
【0080】
顔特徴点検出プログラム51の検出結果(すなわち顔特徴点P1〜P42の位置)は2次元のカメラ座標系で表されている。本実施形態では、顔特徴点検出プログラム51の検出結果をより利用しやすくするために、カメラ座標系から顔座標系への座標変換処理が行われる。顔座標系とは、図16に示すように、顔画像におけるユーザの両目(P13、P22)の中間点を原点とし、この原点を始点とし右目(P22)を終点とするベクトルをX軸単位ベクトルとし、このX軸単位ベクトルを時計回りに90度回転させて得られるベクトルをY軸単位ベクトルとする座標系である。つまり、顔座標系のX軸およびY軸のスケールは、顔画像におけるユーザの両目(P13、P22)の中間点と右目との間の距離に応じて決定される。各顔特徴点の位置を顔座標系で表せば、カメラレンズ38aとユーザの顔の間の距離が変化した場合やカメラレンズ38aの光軸周りにユーザの顔が回転した場合でも、各顔特徴点の座標は変化しないため、ユーザの表情を正しく評価することができる。なお、本実施形態では、顔画像におけるユーザの両目(P13、P22)の位置に基づいて顔座標系を設定しているが、本発明はこれに限らず、任意の2箇所の顔特徴点の位置に基づいて顔座標系を設定してもよい。
【0081】
顔特徴点検出プログラム51によって検出された各顔特徴点の座標は、顔特徴点データ54としてRAM24に格納される。なお、顔特徴点データ54には、各顔特徴点(P1〜P42)の標準位置(Po1〜Po42)と現在位置(Pc1〜Pc42)がそれぞれ格納される。ここで、標準位置とは、無表情時における各顔特徴点の位置であり、現在位置とは、最新の顔特徴点検出結果における各顔特徴点の位置である。
【0082】
評価基準情報52は、ユーザの表情を評価するための情報であり、図18に示すように、課題表情毎に、評価基準として複数の評価項目と項目得点基準値が指定されている。例えば、「左右の口角を下げる」という課題表情については、「左の口角を下げたら加点」、「右の口角を下げたら加点」、「左眉を上げたら減点」、「右眉を上げたら減点」、「左眉を下げたら減点」、「右眉を下げたら減点」、「左目を閉じたら減点」、「右目を閉じたら減点」の8つの評価項目と、これらの8つの評価項目のそれぞれに対応する8組の項目得点基準値((第1閾値A、第2閾値A、最高値A)〜(第1閾値H、第2閾値H、最高値H))が指定されている。項目得点基準値は、顔特徴点データ54を利用して各評価項目の得点(後述する区間得点等と区別するために「項目得点」と称す)を算出するための計算に用いられる基準値である。なお、本実施形態では、評価基準として項目得点基準値が指定されているが、本発明はこれに限らない。後述するような、第1閾値、第2閾値、最高値等の項目得点基準値が設定された計算式を評価項目ごとに指定されていても良い。
【0083】
以下、図18〜図21を参照して、「左右の口角を下げる」という課題表情の場合を例に、ユーザの表情の評価方法(より具体的には、カメラカートリッジ38によって撮像されたユーザの顔画像から、当該顔画像の得点を計算する方法)の具体的に説明する。
【0084】
「左右の口角を下げる」という課題表情の場合には、図19に示すような8箇所の顔特徴点(P1、P4、P7、P11、P16、P20、P26、P30)の位置に基づいて、顔画像の得点が計算される。
【0085】
図18の評価基準情報52において、「左右の口角を下げる」という課題表情については、「左の口角を下げたら加点」、「右の口角を下げたら加点」、「左眉を上げたら減点」、「右眉を上げたら減点」、「左眉を下げたら減点」、「右眉を下げたら減点」、「左目を閉じたら減点」、「右目を閉じたら減点」の8つの評価項目が指定されている。
【0086】
各評価項目の項目得点は、評価基準情報52を参照して、当該評価項目に対応する第1閾値データ、第2閾値データ、最高値データを参照して算出処理される。例えば、「左の口角を下げたら加点」という評価項目の項目得点は、(第1閾値A、第2閾値A、最高値A)を用いて計算される。より具体的には、表情の変化量が「第1閾値」から「第2閾値」までの間のときに、得点が0点から「最高点」までの間になるように計算される。また、表情の変化量が第1閾値以下の場合には得点は0点とし、表情の変化量が第2閾値以上の場合には得点は最高点とする。すなわち、第2閾値は、表情の変化量の目標値としての意義を有する。なお、少なくとも、第2閾値(目標値)は評価項目ごとに設定されるが、第1閾値や最高値を評価項目ごとに設定することは必須ではなく、例えば、第1閾値や最高値は評価項目に関らず定数としてもよい。また、表情の変化量が第2閾値(目標値)以上になったときに、さらに得点を上昇させたり、あるいは、逆に減少させたりしてもよい。前者の場合には、表情の変化量が大きいほど評価を高くすることができ、後者の場合には表情の変化量が目標値に近いほど評価を高くすることができる。なお、ここでいう「表情の変化量」は、(a)ユーザの顔画像における所定の顔特徴点に関する現在位置と標準位置との間の距離の場合と、(b)複数の顔特徴点の間の距離の場合がある。このようにして(第1閾値A、第2閾値A、最高値A)を共通の計算式に設定した上で、「左口角の下がり量」から項目得点を算出する。「左口角の下がり量」は、左の口角に対応する顔特徴点P26の現在位置Pc26のY座標値d26から標準位置Po26のY座標値b26を減算した結果の値である。(第1閾値A、第2閾値A、最高値A)を共通の計算式に設定した一具体例を図20に示す。顔特徴点の現在位置のY座標値から標準位置のY座標値を減算した結果の値は、顔特徴点の現在位置から標準位置のY軸方向の距離を示している。第1閾値は、Y軸方向の距離がこれ以上短くなると項目得点が最低値(図20の例では0)となる閾値である。第2閾値は、Y軸方向の距離がこれ以上長くなると項目得点が最高値となる閾値である。最高値は、「左口角の下がり量」から算出される項目得点の最高となる値である。「左口角の下がり量」が第1閾値(例えば0)よりも小さいときは、項目得点は0となる。また、「左口角の下がり量」が第2閾値よりも大きいときは、項目得点は所定の最高値(例えば10点)となる。また、「左口角の下がり量」が第1閾値よりも大きくかつ第2閾値よりも小さいときは、項目得点は「左口角の下がり量」に応じて線形的に変化する。このように、(第1閾値A、第2閾値A、最高値A)を設定された共通の計算式によって算出される項目得点は、基本的に、「左口角の下がり量」が大きいほど大きくなる。なお、第1閾値、第2閾値、最高値の値は、評価項目ごとに任意の値に設定することができる。
【0087】
「右の口角を下げたら加点」という評価項目の項目得点は、(第1閾値B、第2閾値B、最高値B)を設定された共通の計算式を用いて計算される。(第1閾値B、第2閾値B、最高値B)を設定された共通の計算式では、「右口角の下がり量」から項目得点を算出する。「右口角の下がり量」は、右の口角に対応する顔特徴点P30の現在位置Pc30のY座標値d30から標準位置Po30のY座標値b30を減算した結果の値である。(第1閾値B、第2閾値B、最高値B)を設定された共通の計算式によって算出される項目得点は、基本的に、「右口角の下がり量」が大きいほど大きくなる。
【0088】
「左眉を上げたら減点」という評価項目の項目得点は、(第1閾値C、第2閾値C、最高値C)を設定された共通の計算式を用いて計算される。(第1閾値C、第2閾値C、最高値C)を設定された共通の計算式では、「左眉の上がり量」から項目得点を算出する。「左眉の上がり量」は、左眉に対応する顔特徴点P4の現在位置Pc4のY座標値d4から標準位置Po4のY座標値b4を減算した結果の値である。「左眉を上げたら減点」という評価項目は、減点用の評価項目であるため、(第1閾値C、第2閾値C、最高値C)を設定された共通の計算式によって算出される項目得点は、基本的に、「左眉の上がり量」が大きいほど小さくなる。また、(第1閾値C、第2閾値C、最高値C)を設定された共通の計算式によって算出される項目得点の最高値は0である。
【0089】
残りの評価項目についても、同様にして項目得点が算出される。上記の8つの評価項目の項目得点を合計した値が、顔画像の得点となる。
【0090】
なお、上記の例では、ある顔特徴点の標準位置と現在位置の位置関係に基づいて項目得点を計算しているが、本発明はこれに限らない。例えば、ある顔特徴点の現在位置と別の顔特徴点の現在位置の位置関係に基づいて項目得点を計算してもよい。例えば、図18における「口を開けたら減点」という評価項目では、口の上端部(図15のP28)の現在位置と口の下端部(図15のP32)の現在位置との間の距離に応じて項目得点が計算される。
【0091】
なお、上記のような評価項目以外の評価基準を用いてユーザの表情を評価することもできる。例えば、「左右の口角を下げる」という課題表情については、(第1閾値A、第2閾値A、最高値A)を設定された共通の計算式で算出された項目得点や、(第1閾値B、第2閾値B、最高値B)を設定された共通の計算式で算出された項目得点に対して、左右の口角の高さが揃っているか否かに応じて決定される乗数を乗算するようにしてもよい。この場合の乗数の計算式の一具体例を図21に示す。「左右の口角の高さの差」は、左の口角に対応する顔特徴点P26の現在位置Pc26のY座標値d26と、右の口角に対応する顔特徴点P30の現在位置Pc30のY座標値d30の差分(絶対値)である。これにより、左右の口角の高さの差が大きいほど、「左の口角を下げたら加点」という評価項目の項目得点と、「左の口角を下げたら加点」という評価項目の項目得点が減ることになる。
【0092】
なお、上記の説明では、1つの顔画像から当該顔画像の得点を計算する方法について具体的に説明したが、動き課題および静止課題では、複数の顔画像に基づいてユーザの表情が評価される。
【0093】
まず、図22〜図24を参照して、動き課題でのユーザの表情の評価方法について具体的に説明する。
【0094】
本実施形態では、10フレーム(1フレームは60分の1秒)の周期で、カメラカートリッジ38によってユーザの顔画像が撮像され、当該撮像された顔画像に基づいて得点が計算される。本実施形態では、動き課題は5秒間なので、動き課題の開始から終了までの間(以下、動き課題期間と称す)で、合計で30枚の顔画像の得点が計算される。
【0095】
動き課題期間は、図22に示すような5つの区間に区分される。以下では、動き課題の開始から最初の1秒間を第1区間と称し、次の1秒間を第2区間と称し、さらに次の1秒間を第3区間と称し、さらに次の1秒間を第4区間と称し、さらに次の1秒間を第5区間と称する。そして、第1区間に撮像される6枚の顔画像を、撮像時間の早い順番に、顔画像1a、顔画像1b、顔画像1c、顔画像1d、顔画像1e、顔画像1fと称す。同様に、第2区間において撮像される6枚の顔画像を、撮像時間の早い順番に、顔画像2a、顔画像2b、顔画像2c、顔画像2d、顔画像2e、顔画像2fと称す。第2区間以降の区間の顔画像についても同様に標記する。
【0096】
動き課題では、上記のように区分された区間毎に、区間得点が算出される。以下、区間得点の計算方法を、第3区間の区間得点(第3区間得点)を算出する場合を例に、説明する。
【0097】
まず、第3区間の最初の顔画像3aについて、前述したように評価基準情報52を参照して評価項目毎の項目得点を計算し、それら項目得点を加算することによって顔画像3aの得点を算出する。同様にして、顔画像3b〜3fの得点も算出する。
【0098】
次に、顔画像3a〜3fの得点の平均値を計算することによって、第3区間得点を求める。つまり、第3区間得点は、第3区間に撮像された複数の顔画像に基づいて計算される。なお、顔画像3a〜3fの得点の平均値を計算するときに、顔画像3a〜3fの全ての顔画像を対象としてそれらの平均値を求めてもよいし、顔画像3a〜3fのうちの一部の顔画像だけを対象としてそれらの平均値を求めてもよい。以下では、後者のような平均を「部分平均」と称す。本実施形態では、顔画像3a〜3fのうち、得点の高い順番に3つの顔画像を選択し、これらの3つの顔画像の平均値を、第3区間得点とする。なお、このように第3区間得点を部分平均により計算することの利点は、顔特徴点検出プログラム51の検出誤差などによって顔画像3a〜3fのうちの一部の顔画像の得点が本来の得点よりも低い値に計算されてしまった場合に、第3区間得点がそのような異常な得点の影響を受けてしまうのを防止することができる点である。
【0099】
第3区間以外の区間についても、同様にして区間得点が計算される。
【0100】
上記のようにして第1区間得点〜第5区間得点が計算されると、図23に示すように、これらの区間得点に基づいて、動き課題の得点が決定される。動き課題におけるユーザの表情は、大きく分けて、下記の2つの観点から評価される。
(1)最終的なユーザの表情がお手本画像40に近いかどうかという観点からの評価
(2)動き課題期間においてユーザの表情が滑らかに変化したかどうかという観点からの評価
【0101】
上記(1)の評価は、第5区間得点の大きさに基づいて行われる。具体的には、第5区間得点がより高いほど、動き課題の得点はより高くなる。
【0102】
上記(2)の評価は、第5区間得点を基準としたときの第1区間得点〜第4区間得点の各区間得点の比率に基づいて行われる。図20に示したように、本実施形態では基本的に、無表情時からの顔特徴点の移動量が大きいほど、その移動量にほぼ比例して(移動量に対して線形的に)顔画像の得点が高くなる。したがって、ユーザが5秒間かけて表情を理想的に滑らかに変化させた場合、図24に示すように、第1区間得点は第5区間得点のほぼ5分の1となり、第2区間得点は第5区間得点のほぼ5分の2となり、第3区間得点は第5区間得点のほぼ5分の3となり、第4区間得点は第5区間得点のほぼ5分の4となる。よって、第5区間得点を基準としたときの各区間得点の比率が、上記のような理想的な比率により近いほど、動き課題の得点はより高くなる。
【0103】
次に、図25を参照して、静止課題でのユーザの表情の評価方法について具体的に説明する。
【0104】
静止課題においても動き課題と同様に、10フレーム(1フレームは60分の1秒)の周期で、カメラカートリッジ38によってユーザの顔画像が撮像され、当該撮像された顔画像に基づいて得点が計算される。本実施形態では、静止課題は5秒間なので、静止課題の開始から終了までの間(以下、静止課題期間と称す)で、合計で30枚の顔画像の得点が計算される。
【0105】
静止課題期間は、動き課題期間とは異なり、複数の区間には区分されないが、説明の便宜上、静止課題期間全体を第6区間と称する。
【0106】
静止課題では、第6区間の区間得点(第6区間得点)が算出される。区間得点の計算方法については、前述した通りである。すなわち、第6区間において撮像された30枚の顔画像の得点をそれぞれ計算し、それらの顔画像の得点の部分平均を求めることによって、第6区間得点を計算する。静止課題においては、この第6区間得点が、静止課題の得点となる。
【0107】
以下、図26〜図33のフローチャートを参照して、トレーニングプログラム50に従って動作するCPUコア21の処理の流れを説明する。
【0108】
トレーニングプログラム50の実行が開始されると、CPUコア21は、以下の3つの処理を並列的に実行する。
【0109】
第1の処理は、顔特徴点検出プログラム51による顔特徴点検出処理である。顔特徴点検出処理では、CPUコア21は、周期的に、カメラカートリッジ38によって撮像された顔画像から42箇所の顔特徴点を検出する。
【0110】
第2の処理は、図26に示す顔特徴点取得処理である。顔特徴点取得処理では、CPUコア21は、顔特徴点検出プログラム51による顔特徴点検出処理の処理結果を監視し、顔特徴点検出プログラム51によって検出された顔特徴点の座標を取得する。
【0111】
第3の処理は、図27〜図33に示すメイン処理である。メイン処理では、CPUコア21は、顔特徴点取得処理において取得された顔特徴点の座標を利用して、図15〜図25を参照して説明したような得点計算処理等を行う。なお、フローチャートによる図示は省略するが、メイン処理では図4〜図13で示した画像を生成する処理も実行される。
【0112】
次に、図26を参照して、顔特徴点取得処理の流れを説明する。
【0113】
顔特徴点取得処理が開始されると、ステップS10で、CPUコア21は使用するデータを定義する(すなわち、データにRAM24の記憶領域を割り当てる)。ここで定義されるデータは以下のとおりである。
・Count:フレーム数のカウント用
・IsEnable:顔特徴点データが有効かどうか
・IsCheck:得点計算すべきフレームかどうか
・FacePointArray[42]:顔特徴点(2次元座標)の配列
【0114】
ステップS11では、CPUコア21は使用するデータを初期化する。具体的には、Countの値を0に初期化し、IsEnableの値をfalseに初期化し、IsCheckの値をfalseに初期化する。
【0115】
つづいてCPUコア21は、ループAの処理(すなわち、ステップS12からステップS18又はステップS19までの一連の処理)を、1フレーム周期で繰り返し実行する。
【0116】
ステップS12では、CPUコア21は、顔特徴点検出プログラム51による顔特徴点検出処理が終了しているかどうか(すなわち、ある顔画像から当該顔画像の全ての顔特徴点の位置が検出されたかどうか)を判断する。顔特徴点検出処理が終了している場合にはステップS13に進み、顔特徴点検出処理が終了していない場合にはステップS16に進む。
【0117】
ステップS13では、CPUコア21は、顔特徴点検出プログラム51による顔特徴点検出処理によって顔特徴点が検出されたかどうかを判断する。例えば、カメラカートリッジ38の撮像範囲にユーザの顔の一部が収まっていない場合には顔特徴点は検出されない。顔特徴点検出処理によって顔特徴点が検出された場合にはステップS14に進み、顔特徴点検出処理によって顔特徴点が検出されなかった場合にはステップS15に進む。
【0118】
ステップS14では、CPUコア21はIsEnableの値をtrueに更新し、FacePointArray[42]の各要素の値を、顔特徴点検出プログラム51による顔特徴点検出処理によって検出された42箇所の顔特徴点の位置を示す2次元座標(カメラ座標系)に更新する。
【0119】
ステップS15では、CPUコア21はIsEnableの値をfalseに更新する。
【0120】
ステップS16では、CPUコア21はCountの値を(Count+1)÷10の剰余に更新する。
【0121】
ステップS17では、CPUコア21は、Countの値が0かどうかを判断する。Countの値が0である場合にはステップS18に進み、Countの値が0でない場合にはステップS19に進む。
【0122】
ステップS18では、CPUコア21はIsCheckの値をtrueに更新し、ステップS12に戻る。
【0123】
ステップS19では、CPUコア21はIsCheckの値をfalseに更新し、ステップS12に戻る。
【0124】
上記ステップS16〜ステップS18(またはステップS19)の処理により、IsCheckの値は10フレームの周期で一時的にtrueとなる。後述するメイン処理では、IsCheckの値がtrueのときに前述の得点計算処理を行うので、結果として、前述の得点計算処理は10フレームの周期で繰り返し実行されることになる。
【0125】
次に、図27を参照して、メイン処理の流れを説明する。
【0126】
メイン処理が開始されると、ステップS20で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ScoreSum:合計得点
・Score:区間得点
・ScoreSlow:動き課題の得点
・MaxDataNum:区間得点の算出に使用する顔画像数
・NeutralFacePointArray[42]:顔特徴点の標準位置(2次元座標)の配列
【0127】
ステップS21では、CPUコア21は使用するデータを初期化する。具体的には、ScoreSumの値を0に初期化する。
【0128】
ステップS22では、CPUコア21は標準位置取得処理を実行する。標準位置取得処理は、無表情時のユーザの各顔特徴点の位置(顔座標系)を標準位置としてRAM24に格納するための処理である。以下、図28を参照して、標準位置取得処理の詳細を説明する。
【0129】
標準位置取得処理が開始されると、ステップS30で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・Base:カメラ座標系で表した顔座標系の原点(2次元座標)
・XAxis:カメラ座標系で表した顔座標系のX軸単位ベクトル(2次元ベクトル)
・YAxis:カメラ座標系で表した顔座標系のY軸単位ベクトル(2次元ベクトル)
・FacePointOriginal[42]:顔特徴点(2次元座標、カメラ座標系)の配列
【0130】
ステップS31では、CPUコア21は、左画面(第1のLCD11)に、例えば「無表情の状態で右画面を見て下さい。」というような指示メッセージを表示する。
【0131】
ステップS32では、CPUコア21は、IsEnableの値がtrueかどうかを判断する。IsEnableの値がtrueである(これは、前述の顔特徴点検出処理および顔特徴点取得処理が無事に完了したことを意味する)場合には、ステップS33に進み、IsEnableの値がfalseである場合には、IsEnableの値がtrueになるまで待機する。
【0132】
ステップS33では、CPUコア21は、FacePointOriginal[42]の各要素の値を、FacePointArray[42]の各要素の値にそれぞれ更新する。
【0133】
ステップS34では、CPUコア21は、左目と右目の中間点の座標(カメラ座標系)を計算し、Baseの値をその中間点の座標に更新する。左目と右目の中間点の座標は、FacePointOriginal[42]に含まれている左目の座標と右目の座標を平均することによって求めることができる。
【0134】
ステップS35では、CPUコア21は、XAxisの値を、右目の中心の座標−Baseの計算結果の値(2次元ベクトル)に更新する。
【0135】
ステップS36では、CPUコア21は、YAxisの値を、XAxisを時計回りに90度回転させたベクトルに更新する。
【0136】
つづいてCPUコア21は、ループCの処理(すなわち、ステップS37からステップS38までの一連の処理)を、ループ変数Iを0から41までカウントアップしつつ、繰り返し実行する。
【0137】
ステップS37では、CPUコア21は、FacePointOriginal[I]=Base+a×XAxis+b×YAxisとなるようなaとbを計算する。
【0138】
ステップS38では、CPUコア21は、NeutralFacePoint[I]の値(2次元座標)を(a,b)に更新する。
【0139】
上記ステップS37〜ステップS38の処理を繰り返すことにより、各顔特徴点の標準位置を示す座標がカメラ座標系から顔座標系へと変換されて、NeutralFacePoint[42]に格納される。NeutralFacePoint[42]は、図17における顔特徴点データ54の「標準位置」に相当する。
【0140】
ループCの処理が終了すると、標準位置取得処理は終了する。
【0141】
図27において、ステップS22の標準位置取得処理が終了すると、つづいてCPUコア21は、ループBの処理(すなわち、ステップS23からステップS27までの一連の処理)を4回繰り返し実行する。なお、繰り返し回数の「4回」は、一例に過ぎない。
【0142】
ステップS23では、CPUコア21は予め用意された複数の課題表情の中から1つの課題表情を選択し、画像及び/又は音声によりユーザに提示する(例えば図4のような画像を左画面に表示する)。課題表情の選び方は任意である。例えば、予め定められた順番に従って選択してもよいし、ランダムに選択してもよいし、ユーザの熟練度に応じた難易度の課題表情を選択するようにしてもよい。
【0143】
ステップS24では、CPUコア21は、ステップS23で選択された課題表情に関する動き課題評価処理を実行する。動き課題評価処理は、動き課題でのユーザの表情を評価するための処理である。以下、図29を参照して、動き課題評価処理の詳細を説明する。
【0144】
動き課題評価処理が開始されると、ステップS40で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・ScoreNum:計算完了した区間得点の数
・ScoreArray[6]:区間得点の配列
・MaxDataNum:区間得点の計算に使用する顔画像数
・Score:区間得点の計算結果を入れるバッファ
【0145】
ステップS41では、CPUコア21は使用するデータを初期化する。具体的には、ScoreNumの値を1に初期化し、MaxDataNumの値を6に初期化する。
【0146】
ステップS42では、CPUコア21は、動き課題の内容を画像及び/又は音声によりユーザに提示する(例えば図5のような画像を左画面に表示する)。
【0147】
つづいてCPUコア21は、ループDの処理(すなわち、ステップS43からステップS45までの一連の処理)を、ScoreNumの値が6未満である間、繰り返し実行する(結果として、ループDの処理は5回繰り返し実行されることになる)。
【0148】
ステップS43では、CPUコア21は区間得点計算処理を実行する。区間得点計算処理は、区間得点(図23の第1区間得点〜第5区間得点、および図25の第6区間得点)を計算するための処理である。以下、図30を参照して、区間得点計算処理の詳細を説明する。
【0149】
区間得点計算処理が開始されると、ステップS50で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・DataNum:処理した顔特徴点データセットの個数(ただし、同一の顔画像に対応する顔特徴点データの集合を1個のデータセットとする)
・UsableDataNum:有効な顔特徴点データセットの個数
・DataArray[MaxDataNum]:顔画像毎の点数の配列
・FacePoint[42]:顔特徴点(2次元座標、顔座標系)の配列
【0150】
ステップS51では、CPUコア21は使用するデータを初期化する。具体的には、DataNumの値を0に初期化し、UsableDataNumの値を0に初期化する。
【0151】
つづいてCPUコア21は、ループFの処理(すなわち、ステップS52からステップS56までの一連の処理)を、DataNumの値がMaxDataNumの値よりも小さい間、繰り返し実行する。
【0152】
ステップS52では、CPUコア21は現在位置取得処理を実行する。現在位置取得処理は、最新の顔特徴点検出結果におけるユーザの各顔特徴点の位置(顔座標系)を現在位置としてRAM24に格納するための処理である。以下、図31を参照して、現在位置取得処理の詳細を説明する。
【0153】
現在位置取得処理が開始されると、ステップS60で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・Base:カメラ座標系で表した顔座標系の原点(2次元座標)
・XAxis:カメラ座標系で表した顔座標系のX軸単位ベクトル(2次元ベクトル)
・YAxis:カメラ座標系で表した顔座標系のY軸単位ベクトル(2次元ベクトル)
・FacePointOriginal[42]:顔特徴点(2次元座標、カメラ座標系)の配列
【0154】
ステップS61では、CPUコア21は、IsCheckの値がtrueかどうかを判断する。IsCheckの値がtrueである場合にはステップS62に進み、IsCheckの値がfalseである場合には、IsCheckの値がtrueになるまで待機する。なお前述したように、IsCheckの値は10フレーム周期で一時的にtrueになる。
【0155】
ステップS62では、CPUコア21は、IsEnableの値がtrueかどうかを判断する。IsEnableの値がtrueである(これは、前述の顔特徴点検出処理および顔特徴点取得処理が無事に完了したことを意味する)場合にはステップS63に進み、IsEnableの値がfalseである場合には現在位置取得処理を終了する。
【0156】
ステップS63では、CPUコア21は、FacePointOriginal[42]の各要素の値を、FacePointArray[42]の各要素の値にそれぞれ更新する。
【0157】
ステップS64では、CPUコア21は、左目と右目の中間点の座標(カメラ座標系)を計算し、Baseの値をその中間点の座標に更新する。左目と右目の中間点の座標は、FacePointOriginal[42]に含まれている左目の座標と右目の座標を平均することによって求めることができる。
【0158】
ステップS65では、CPUコア21は、XAxisの値を、右目の中心の座標−Baseの計算結果の値(2次元ベクトル)に更新する。
【0159】
ステップS66では、CPUコア21は、YAxisの値を、XAxisを時計回りに90度回転させたベクトルに更新する。
【0160】
つづいてCPUコア21は、ループGの処理(すなわち、ステップS67からステップS68までの一連の処理)を、ループ変数Iを0から41までカウントアップしつつ、繰り返し実行する。
【0161】
ステップS67では、CPUコア21は、FacePointOriginal[I]=Base+a×XAxis+b×YAxisとなるようなaとbを計算する。
【0162】
ステップS68では、CPUコア21は、FacePoint[I]の値(2次元座標)を(a,b)に更新する。
【0163】
上記ステップS67〜ステップS68の処理を繰り返すことにより、各顔特徴点の現在位置を示す座標がカメラ座標系から顔座標系へと変換されて、FacePoint[42]に格納される。FacePoint[42]は、図17における顔特徴点データ54の「現在位置」に相当する。
【0164】
ループGの処理が終了すると、現在位置取得処理は終了する。
【0165】
図30において、ステップS52の現在位置取得処理が終了すると、ステップS53に進む。
【0166】
ステップS53では、CPUコア21は、ステップS52において現在位置の取得に成功したかどうかを判断する。現在位置の取得に成功した場合にはステップS54に進み、現在位置の取得に失敗した場合にはステップS56に進む。例えば、図31のステップS62でNoと判断した場合には、現在位置の取得に失敗しているので、ステップS56に進む。
【0167】
ステップS54では、CPUコア21は得点計算処理を行う。得点計算処理は、顔画像の得点を計算するための処理である。以下、図32を参照して、得点計算処理の詳細を説明する。
【0168】
得点計算処理が開始されると、ステップS70で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・PointSum:項目得点の合計
・PointMax:項目得点の合計の最高値
【0169】
ステップS71では、CPUコア21は使用するデータを初期化する。具体的には、PointSumの値を0に初期化し、PointMaxの値を0に初期化する。
【0170】
つづいてCPUコア21は、ループHの処理(すなわち、ステップS72からステップS75までの一連の処理)を、現在の課題表情(すなわち図27のステップS23で選択された課題表情)に対応する評価項目数だけ繰り返し実行する。例えば、現在の課題表情が「左目を閉じる」という課題表情である場合には、図18の評価基準情報52において、この課題表情のための評価基準として11個の評価項目が指定されていることから、ループHの処理が11回繰り返し実行される。
【0171】
ステップS72では、CPUコア21は、現在の課題表情に対応する評価項目の中から、項目得点を計算すべき評価項目(すなわち、まだ項目得点を計算していない評価項目)を順番に選択する。
【0172】
ステップS73では、CPUコア21は、ステップS72で選択した評価項目の項目点数を計算するのに必要なデータを、顔特徴点データ54から読み出す。項目点数を計算するのに必要なデータは、評価項目毎に異なる。
【0173】
ステップS74では、CPUコア21は、ステップS72で選択した評価項目に対応する項目得点基準値に従って、項目得点を計算する。例えば、現在の課題表情が「左目を閉じる」という課題表情であり、計算対象となる評価項目が「右目を閉じたら減点」である場合には、図18の評価基準情報52から、(第1閾値H、第2閾値H、最高値H)に従って当該評価項目の項目得点が計算される。
【0174】
ステップS75では、CPUコア21は、PointSumの値を、現在のPointSumの値とステップS74で算出された項目得点との加算結果の値に更新するとともに、PointMaxの値を、現在のPointMaxの値とステップS72で選択した評価項目の最高値との加算結果の値に更新する。ここで、評価項目の最高値は、評価項目毎に予め設定されている値であって、例えば、図18の「左の口角を下げたら加点」の評価項目では、図20のような最高値が設定されている。
【0175】
ループHの処理が終了した時点で、PointSumの値は、現在の課題表情に対応する評価項目の項目得点の合計値を示していることになる。また、PointMaxの値は、現在の課題表情に対応する評価項目の項目得点の最大合計値を示していることになる。
【0176】
ステップS76では、CPUコア21は、PointSumの値が負の場合にはPointSumの値を0に更新する。これは、顔画像の得点の下限値を0にするためである。
【0177】
ステップS77では、CPUコア21は、DataArray[UsableDataNum]の値を、PointSum×20/PointMaxの計算結果の値に更新する。PointSum×20/PointMaxを計算しているのは、項目得点の合計値を20点満点の値に換算するためである。ステップS77の処理が終了すると、得点計算処理は終了する。
【0178】
図30において、ステップS54の得点計算処理が終了すると、ステップS55に進む。
【0179】
ステップS55では、CPUコア21はUsableDataNumの値に1を加算する。
【0180】
ステップS56では、CPUコア21はDataNumの値に1を加算する。
【0181】
ループFの処理が終了した時点で、同一区間内に撮像された各顔画像(動き課題では最大で6枚の顔画像)の得点がDataArrayに格納されていることになる。
【0182】
つづいてCPUコア21は部分平均計算処理を行う。部分平均計算処理は、複数の顔画像の得点の部分平均を計算するための処理である。以下、図33を参照して、部分平均計算処理の詳細を説明する。
【0183】
部分平均計算処理が開始されると、ステップS80で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・SortDataArray[MaxDataNum]:得点の順番にソートした区間得点の配列
・UseDataNum:部分平均の計算に使用する区間得点の数
・UseDataSum:区間得点の和
【0184】
ステップS81では、CPUコア21は使用するデータを初期化する。具体的には、UseDataSumの値を0に初期化する。
【0185】
ステップS82では、CPUコア21は、UsableDataNumの値が0かどうかを判断する。UsableDataNumの値が0である場合にはステップS87に進み、UsableDataNumの値が0でない場合にはステップS83に進む。
【0186】
ステップS83では、CPUコア21は、UsableDataNumの値を、(UsableDataNum+1)/2の計算結果の値に更新する。これは、同一区間に撮像された複数の顔画像のうちの半数の顔画像の得点を用いて部分平均を計算することを意味する。
【0187】
ステップS84では、CPUコア21は、DataArrayの各要素の値(すなわち同一区間における各顔画像の得点)を降順に並べ替えて、SortDataArrayに格納する。
【0188】
つづいてCPUコア21は、ループIの処理(すなわち、ステップS85の処理)を、ループ変数Iを0から(UseDataNum−1)までカウントアップしつつ、繰り返し実行する。
【0189】
ステップS85では、CPUコア21は、UseDataSumの値を、UseDataSum+SortDataArray[I]の計算結果の値に更新する。
【0190】
ループIの処理が終了した時点で、UseDataSumの値は、同一区間に撮像された複数の顔画像のうち、得点が高いものから順番に抽出された半数の顔画像の得点の合計値を示していることになる。
【0191】
ステップS86では、CPUコア21は、Scoreの値を、ScoreDataNum/UseDataNumの計算結果の値に更新する。つまり、Scoreの値は、同一区間に撮像された複数の顔画像のうち、得点が高いものから順番に抽出された半数の顔画像の得点の平均値を示している。
【0192】
ステップS87では、CPUコア21はScoreの値を0に更新する。
【0193】
ステップS86またはステップS87の処理が終了すると、部分平均計算処理は終了する。
【0194】
図30において、ステップS57の部分平均計算処理が終了すると、区間得点計算処理は終了する。
【0195】
図29において、ステップS43の区間得点計算処理が終了すると、ステップS44に進む。
【0196】
ステップS44では、CPUコア21は、ScoreArray[ScoreNum]の値を、ステップS43の区間得点計算処理において更新されたScoreの値に更新する。
【0197】
ステップS45では、ScoreNumの値に1を加算する。
【0198】
ループDの処理が終了した時点で、第1区間得点〜第5区間得点がScoreArray[1]〜ScoreArray[5]にそれぞれ格納されていることになる。
【0199】
ステップS46では、CPUコア21はSlowMinusの値を0に初期化する。
【0200】
つづいてCPUコア21は、ループEの処理(すなわち、ステップS47の処理)を、ループ変数Iを1から4までカウントアップしつつ、繰り返し実行する。
【0201】
ステップS47では、CPUコア21は、SlowMinusの値を、SlowMinus+(((ScoreArray[5]×I/5)−ScoreArray[I])の絶対値)の計算結果の値に更新する。ここで、((ScoreArray[5]×I/5)−ScoreArray[I])の絶対値は、実際に計算された区間得点と、図24を参照して説明したように第5区間得点に基づいて計算される理想値(例えば、第1区間得点の理想値は、第5区間得点の5分の1であり、第2区間得点の理想値は、第5区間得点の5分の2である)との差の大きさを示している。つまり、SlowMinusの値は、ユーザが表情を理想的に滑らかに動かすほど小さい値となる。
【0202】
ループEの処理が終了すると、ステップS48に進む。
【0203】
ステップS48では、CPUコア21は、ScoreSlowの値を、(1−SlowMinus×一定値)×(ScoreArray[5]×5/20)の計算結果の値に更新する。これは、第5区間得点を、20点満点の得点から5点満点の得点へと換算するとともに、SlowMinusの値に応じて減点することを意味する。
【0204】
ステップS48の処理が終了すると、動き課題評価処理は終了する。
【0205】
図27において、ステップS24の動き課題評価処理が終了すると、ステップS25に進む。
【0206】
ステップS25では、CPUコア21は、ScoreSumの値に、ステップS24の動き課題評価処理で更新されたScoreSlowの値(すなわち動き課題の得点)を加算する。
【0207】
ステップS26では、CPUコア21は、ステップS23で選択された課題表情に関する静止課題評価処理を実行する。静止課題評価処理は、静止課題でのユーザの表情を評価するための処理である。以下、図34を参照して、静止課題評価処理の詳細を説明する。
【0208】
静止課題評価処理が開始されると、ステップS90で、CPUコア21は使用するデータを定義する。ここで定義されるデータは以下のとおりである。
・MaxDataNum:区間得点の計算に使用する顔画像数
【0209】
ステップS91では、CPUコア21は使用するデータを初期化する。具体的には、MaxDataNumの値を30に初期化する。
【0210】
ステップS92では、CPUコア21は、静止課題の内容を画像及び/又は音声によりユーザに提示する(例えば図10のような画像を左画面に表示する)。
【0211】
ステップS93では、CPUコア21は区間得点計算処理を実行する。ここで実行される区間得点計算処理は、区間得点の計算に使用する顔画像数が異なる点を除けば、前述した図29のステップS43の区間得点計算処理と同じ処理であるため、ここでは説明を省略する。
【0212】
ステップS93の区間得点計算処理が終了すると、静止課題評価処理は終了する。
【0213】
図27において、ステップS26の静止課題評価処理が終了すると、ステップS27に進む。
【0214】
ステップS27では、CPUコア21は、ScoreSumの値にステップS26の静止課題評価処理で更新されたScoreの値(すなわち静止課題の得点)を加算する。
【0215】
ループBの処理が終了した時点で、ScoreSumの値は、第1課題〜第4課題の動き課題および静止課題のそれぞれの得点の合計値を示している。
【0216】
ステップS28では、CPUコア21は、(ScoreSum×200/100)を計算することによって「表現力」を決定する。これは、ScoreSumの値を100点満点の値から200点満点の値へと換算することを意味する。この結果、「表現力」は0〜200の範囲の数値で表される。
【0217】
ステップS29では、CPUコア21は、ユーザの表情の評価結果(例えば、ステップS28で決定した「表現力」の数値)を画像及び/又は音声によりユーザに提示する(例えば図13のような画像を右画面に表示する)。そして、メイン処理が終了する。
【0218】
なお、本実施形態では、カメラカートリッジ38で撮像したユーザの顔画像を右画面に表示しているが、本発明においては、必ずしもユーザの顔画像を画面に表示する必要はない。ただし、ユーザの顔画像を画面に表示することにより、ユーザは実際の自分の表情を確認しながらエクササイズを行うことができるため、よりエクササイズの効果を高めることができる。
【0219】
また、本実施形態では、動き課題と静止課題の両方の結果に基づいてユーザの表情を評価しているが、いずれか一方の課題のみに基づいてユーザの表情を評価してもよい。
【0220】
また、本実施形態では、顔画像から42箇所の全ての顔特徴点を検出した後で、その中から評価項目に応じて必要な顔特徴点のデータを参照して評価項目得点を計算しているが、本発明はこれに限らない。すなわち、顔画像から42箇所の全ての顔特徴点を検出するのではなく、評価項目に応じて必要な顔特徴点だけをその都度検出するようにしてもよい。
【0221】
また、本実施形態では、顔特徴点の標準位置と現在位置の位置関係や、顔特徴点間の現在位置の位置関係に基づいて顔画像の得点を計算しているが、本発明はこれに限らず、例えば、ある顔特徴点の移動速度(これは、顔特徴点の現在位置と、一定時間前に撮像された顔画像における当該顔特徴点の位置とを比較することによって計算することができる)などに基づいて顔画像の得点を計算してもよい。これにより、例えば、眼球を左右にすばやく動かすようなエクササイズにおいて、眼球の移動速度に基づいて顔画像の得点を計算することができる。
【0222】
また、本実施形態では、ユーザの表情の評価結果を数字で提示しているが、本発明はこれに限らない。例えば、評価結果に応じて、画面に表示されるキャラクターの表情や動きが変化してもよい。
【0223】
また、本実施形態では、各区間に撮像された複数の顔画像の得点の平均値または部分平均値を求めることによって区間得点を計算しているが、本発明はこれに限らず、例えば、各区間に撮像された複数の顔画像の得点の最高値または最低値を、区間得点としてもよい。
【0224】
また、本実施形態では、各区間において撮像された複数の顔画像のうち、得点が上位のものから順番に選択された半数の顔画像を用いて部分平均値を計算しているが、本発明はこれに限らない。例えば、各区間に撮像された複数の顔画像のうち、得点が上位のものから順番に一定枚数の顔画像を選択して、当該選択した顔画像の得点の平均値を計算してもよい。また例えば、各区間に撮像された複数の顔画像のうち、得点が所定のしきい値を下回っている顔画像を除外して、残りの顔画像の得点の平均値を計算してもよい。
【0225】
また、本実施形態では、第5区間得点を基準としたときの各区間得点の比率が、図24に示すような理想的な比率により近いほど、動き課題の得点はより高くなるが、本発明はこれに限らない。例えば、撮像時間に応じて区間得点が単調増加しているかどうかに応じて(つまり、第1区間得点<第2区間得点<第3区間得点<第4区間得点<第5区間得点の関係を満たすかどうかに応じて)、動き課題の得点を変化させてもよい。
【0226】
なお、顔特徴点を取得する処理の精度は、撮像装置の性能や画像解析処理の解析精度に左右される。顔特徴点を取得する処理の精度が悪いと、顔特徴点に対応した部位を静止した状態であっても多少移動しているように判定される事がある。そのような判定をされた場合に備え、静止状態から移動を行った時の移動をしているという判定基準を厳しくすることにより、多少の動きではなるべく移動をしていないと判定を行うように処理を行うことが有効的である。しかし、判定基準を厳しくすることによって、静止状態から移動を行った時の採点基準が、他の時点での採点基準と異なってしまい、各時点での公平な採点を行えなくなってしまう問題が生じる。そのような場合には、静止状態から移動を行った時の採点のデータを使用しないようにすることにより、同じ採点基準のデータから採点を行う等の対処を行うことにより問題を解消することが考えられる。
【0227】
なお、本実施形態では、顔特徴点の現在位置が標準位置からより離れるほど、顔画像の得点がより高くなるように、ユーザの表情を評価しているが、本発明はこれに限らない。例えば、図35に示すように、課題表情毎に1つまたは複数の顔特徴点の目標位置を予め設定しておき、顔特徴点の現在位置と目標位置を比較することによって、ユーザの表情を評価してもよい(例えば、現在位置が目標位置により近い程、顔画像の得点がより高くなるようにする)。
【図面の簡単な説明】
【0228】
【図1】本発明の一実施形態に係るゲーム装置の外観図
【図2】ユーザによる利用時のゲーム装置の外観図
【図3】ゲーム装置の内部構成を示すブロック図
【図4】トレーニングプログラムの実行時の表示画像例
【図5】トレーニングプログラムの実行時の表示画像例
【図6】トレーニングプログラムの実行時の表示画像例
【図7】トレーニングプログラムの実行時の表示画像例
【図8】トレーニングプログラムの実行時の表示画像例
【図9】トレーニングプログラムの実行時の表示画像例
【図10】トレーニングプログラムの実行時の表示画像例
【図11】トレーニングプログラムの実行時の表示画像例
【図12】トレーニングプログラムの実行時の表示画像例
【図13】トレーニングプログラムの実行時の表示画像例
【図14】RAMのメモリマップ
【図15】顔画像から検出される顔特徴点の位置を示す図
【図16】カメラ座標系から顔座標系への座標変換方法を示す図
【図17】顔特徴点データの詳細を示す図
【図18】評価基準情報の詳細を示す図
【図19】顔画像の得点の計算に利用される顔特徴点の一例
【図20】項目得点の計算方法の一例を示す図
【図21】項目得点の計算方法の他の例を示す図
【図22】動き課題における区間得点の計算方法を示す図
【図23】動き課題の得点の計算方法を示す図
【図24】動き課題の得点の計算方法を示す他の図
【図25】静止課題の得点の計算方法を示す図
【図26】顔特徴点取得処理の流れを示すフローチャート
【図27】メイン処理の流れを示すフローチャート
【図28】標準位置取得処理の流れを示すフローチャート
【図29】動き課題評価処理の流れを示すフローチャート
【図30】区間得点計算処理の流れを示すフローチャート
【図31】現在位置取得処理の流れを示すフローチャート
【図32】得点計算処理の流れを示すフローチャート
【図33】部分平均計算処理の流れを示すフローチャート
【図34】静止課題評価処理の流れを示すフローチャート
【図35】評価基準情報の変形例を示す図
【符号の説明】
【0229】
10 ゲーム装置
11 第1のLCD
12 第2のLCD
13 ハウジング
13a 上側ハウジング
13b 下側ハウジング
14 操作スイッチ部
14a 十字スイッチ
14b スタートスイッチ
14c セレクトスイッチ
14d Aボタン
14e Bボタン
14f Xボタン
14g Yボタン
15 タッチパネル
16 スティック
17 メモリカード
17a ROM
17b フラッシュメモリ
18a,18b 音抜き孔
19 電源スイッチ
20 電子回路基板
21 CPUコア
22 バス
23a 第1コネクタ
23b 第2コネクタ
24 RAM
25 I/F回路
26 第1GPU
27 第2GPU
28 第1VRAM
29 第2VRAM
30a 右スピーカ
30b 左スピーカ
31 LCDコントローラ
32 レジスタ
33 マイクロフォン用孔
34 挿入口
35 挿入口
36 挿入口
37 マイクロフォン
38 カメラカートリッジ
38a カメラレンズ
39 ワイヤレス通信部
40 お手本画像
41 ゲージ画像
50 トレーニングプログラム
51 顔特徴点検出プログラム
52 評価基準情報
53 お手本画像データ
54 顔特徴点データ
55 その他データ

【特許請求の範囲】
【請求項1】
表情筋のトレーニングを支援するためのトレーニングプログラムであって、
コンピュータに、
予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する選択ステップ、
前記コンピュータに接続された撮像装置よりユーザの顔画像を取得する顔画像取得ステップ、
前記顔画像取得ステップで取得された顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置を検出する顔特徴点検出ステップ、
前記複数の課題表情毎に予め設定された評価基準のうち、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された顔特徴点の位置に基づいて前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する評価ステップ、および、
前記評価ステップの評価結果を画像又は音声によりユーザに提示する評価結果提示ステップを実行させる、トレーニングプログラム。
【請求項2】
課題表情に応じて参照すべき顔特徴点が変わるように前記評価基準が設定されており、
前記評価ステップでは、前記選択ステップで選択された課題表情に応じて異なる顔特徴点の位置を参照して、前記顔画像におけるユーザの表情を評価する、請求項1に記載のトレーニングプログラム。
【請求項3】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から、前記選択ステップで選択された課題表情に対応する少なくとも2つの顔特徴点の位置を検出し、
前記評価ステップでは、前記顔特徴点検出ステップで検出された前記2つの顔特徴点の間の位置関係に基づいて前記顔画像におけるユーザの表情を評価する、請求項1に記載のトレーニングプログラム。
【請求項4】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記2つの顔特徴点の間の距離を算出するステップと、当該算出された距離に基づいて前記顔画像におけるユーザの表情を評価するステップとを含む、請求項3に記載のトレーニングプログラム。
【請求項5】
前記複数の課題表情毎に目標距離データが予め設定されており、
前記評価ステップでは、前記距離を算出するステップにより算出された距離と、前記複数の課題表情毎に予め設定された目標距離データのうちの前記選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項4に記載のトレーニングプログラム。
【請求項6】
前記評価ステップでは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、記憶装置に格納されている当該顔特徴点の標準位置との間の位置関係に基づいて前記顔画像におけるユーザの表情を評価する、請求項1に記載のトレーニングプログラム。
【請求項7】
前記複数の課題表情毎に目標距離データが予め設定されており、
前記評価ステップは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、前記記憶装置に格納されている当該顔特徴点の標準位置との間の距離を算出するステップと、当該算出された距離と、前記複数の課題表情毎に予め設定された目標距離データのうちの前記選択ステップで選択された課題表情に対応する目標距離データが示す距離とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価するステップとを含む、請求項6に記載のトレーニングプログラム。
【請求項8】
前記トレーニングプログラムは、前記コンピュータに、
少なくとも前記顔画像取得ステップよりも前に、前記撮像手段よりユーザの無表情時の顔画像を標準顔画像として取得する標準顔画像取得ステップ、
前記標準顔画像取得ステップで取得された顔画像における予め定められた顔特徴点の位置を検出する標準位置検出ステップ、および、
前記標準位置検出ステップで検出された顔特徴点の位置を当該顔特徴点の標準位置として記憶装置に格納する標準位置記憶ステップをさらに実行させる、請求項6に記載のトレーニングプログラム。
【請求項9】
前記標準位置検出ステップでは、前記標準顔画像取得ステップで取得された顔画像における複数の顔特徴点の位置を検出し、
前記標準位置記憶ステップでは、前記複数の顔特徴点の位置を前記記憶装置にそれぞれ格納し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップにより取得された顔画像から前記複数の顔特徴点の位置を検出し、
複数の課題表情毎に、顔画像の評価に利用する顔特徴点として、前記複数の顔特徴点のうちいずれかが予め指定されており、
前記評価ステップでは、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された前記複数の顔特徴点のうち前記選択手段によって選択された課題表情に応じた顔特徴点の位置と、前記標準位置記憶ステップにより格納されている前記複数の顔特徴点のうち前記選択手段によって選択された課題表情に応じた顔特徴点の位置とを比較することにより、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項8に記載のトレーニングプログラム。
【請求項10】
前記評価ステップは、前記顔特徴点検出ステップで検出された顔特徴点の位置と、前記記憶装置に格納されている当該顔特徴点に対応する基準位置との間の距離を算出するステップと、当該算出された距離に基づいて前記顔画像におけるユーザの表情を評価するステップとを含む、請求項6に記載のトレーニングプログラム。
【請求項11】
前記評価ステップでは、複数の課題表情毎に予め設定された評価基準のうち、前記選択ステップで選択された課題表情に対応する評価基準に従って、前記顔特徴点検出ステップで検出された顔特徴点の位置に基づいて前記顔画像取得ステップで取得された顔画像の得点を計算し、
前記評価結果提示ステップでは、前記評価ステップで算出された前記得点を画像又は音声によりユーザに提示する、請求項1に記載のトレーニングプログラム。
【請求項12】
前記顔画像取得ステップでは、所定期間において撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置を、前記顔画像取得ステップで取得された複数の顔画像からそれぞれ検出し、
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項1に記載のトレーニングプログラム。
【請求項13】
前記顔画像取得ステップでは、一定の周期で顔画像を取得する、請求項12に記載のトレーニングプログラム。
【請求項14】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点をそれぞれ計算するステップと、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像のうち、得点が一定値以下のまたは比較的得点の低い少なくとも1つの顔画像の得点を除いた他の得点を用いて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項12に記載のトレーニングプログラム。
【請求項15】
前記評価ステップは、前記顔特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点をそれぞれ計算するステップと、前記顔画像取得ステップで取得された前記所定期間における複数の顔画像の得点の平均を求め、当該平均を用いて、前記顔画像取得ステップで取得された顔画像におけるユーザの表情を評価する、請求項12に記載のトレーニングプログラム。
【請求項16】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像のそれぞれについて、各前記顔画像における顔特徴点の位置に基づいて、当該各顔画像が前記課題表情に近いほど高い評価となるように、当該各顔画像におけるユーザの表情を評価する第1評価ステップと、当該第1評価ステップの評価結果に基づいて、撮像タイミングが遅い顔画像ほど評価がより高くなっているかどうかに応じてユーザの表情を評価する第2評価ステップとを含む、請求項12に記載のトレーニングプログラム。
【請求項17】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、撮像タイミングが遅い顔画像ほど得点がより高くなっているかどうかに応じて少なくとも1つの顔画像の得点を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含む、請求項16に記載のトレーニングプログラム。
【請求項18】
前記トレーニングは、無表情から課題表情へと一定速度で滑らかに表情変化させるトレーニングであり、
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点を、当該各顔画像が前記課題表情に近いほど高くなるようにそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じてユーザの表情を評価するステップとを含む、請求項13に記載のトレーニングプログラム。
【請求項19】
前記評価ステップは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、顔画像の得点が撮像タイミングに応じて線形的に増加しているかどうかに応じて少なくとも1つの顔画像の得点を補正するステップと、当該補正された得点に応じてユーザの表情を評価するステップとを含む、請求項18に記載のトレーニングプログラム。
【請求項20】
前記顔画像取得ステップでは、撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された各顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、当該複数の顔画像の得点の最高値、最低値、平均値または部分平均値の少なくともいずれかを計算するステップと、当該最高値、最低値、平均値または部分平均値に応じてユーザの表情を評価するステップとを含む、請求項1に記載のトレーニングプログラム。
【請求項21】
前記評価ステップでは、前記特徴点検出ステップで検出された前記複数の顔画像における顔特徴点の位置に基づいて、前記顔画像取得ステップで取得された各顔画像の得点をそれぞれ計算するステップと、前記複数の顔画像のうちの比較的得点の高い一部の顔画像の得点の平均値を当該複数の顔画像の部分平均値として計算するステップと、当該部分平均値に応じてユーザの表情を評価するステップとを含む、請求項20に記載のトレーニングプログラム。
【請求項22】
前記顔画像取得ステップでは、所定期間に撮像タイミングの異なる複数の顔画像を取得し、
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された各顔画像から、少なくとも前記選択ステップで選択された課題表情に関連する顔特徴点の位置をそれぞれ検出し、
前記評価ステップは、前記所定期間を構成する複数の区間のそれぞれについて、当該区間に取得された複数の顔画像における顔特徴点の位置に基づいて当該複数の顔画像のそれぞれの点数を計算するステップ、当該区間に取得された複数の顔画像の得点に基づいて当該区間の区間得点を計算するステップ、前記複数の区間の区間得点に基づいてユーザの表情を評価するステップとを含む、請求項1に記載のトレーニングプログラム。
【請求項23】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から少なくとも第1顔特徴点と第2顔特徴点の2つの顔特徴点の位置を検出し、
前記評価ステップは、前記顔特徴点検出ステップで検出された前記第1顔特徴点の位置と、記憶装置に格納されている当該第1顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第2顔特徴点の位置と、前記記憶装置に格納されている当該第2顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を減点するステップとを含む、請求項1に記載のトレーニングプログラム。
【請求項24】
前記顔特徴点検出ステップでは、前記顔画像取得ステップで取得された顔画像から少なくとも第1顔特徴点と第2顔特徴点の2つの顔特徴点の位置を検出し、
前記評価ステップは、前記顔特徴点検出ステップで検出された前記第1顔特徴点の位置と、記憶装置に格納されている当該第1顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第2顔特徴点の位置と、前記記憶装置に格納されている当該第2顔特徴点に対応する基準位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を加点するステップと、前記顔特徴点検出ステップで検出された前記第1顔特徴点の位置と、前記顔特徴点検出ステップで検出された前記第2顔特徴点の位置との位置関係に基づいて、前記顔画像取得ステップで取得された顔画像の得点を変化させるステップとを含む、請求項1に記載のトレーニングプログラム。
【請求項25】
前記トレーニングプログラムは、前記コンピュータに、
前記顔特徴点検出ステップの後、当該顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点の位置に基づいて顔座標系の原点および座標軸を設定する顔座標系設定ステップ、および、
当該顔特徴点検出ステップで検出された各顔特徴点の位置を示す座標を、前記顔座標系設定ステップで設定された顔座標系の座標へと座標変換するステップをさらに実行させる、請求項1に記載のトレーニングプログラム。
【請求項26】
前記顔座標系設定ステップでは、前記顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点を結ぶ直線の方向に基づいて前記顔座標系の座標軸の方向を設定する、請求項25に記載のトレーニングプログラム。
【請求項27】
前記顔座標系設定ステップでは、前記顔特徴点検出ステップで検出された複数の顔特徴点のうちの予め定められた少なくとも2箇所の顔特徴点の距離に基づいて前記顔座標系の座標軸のスケールを設定する、請求項25に記載のトレーニングプログラム。
【請求項28】
前記選択ステップで選択された課題表情に対応するお手本画像を画面に表示するステップを前記コンピュータにさらに実行させる、請求項1に記載のトレーニングプログラム。
【請求項29】
前記お手本画像がアニメーション画像である、請求項28に記載のトレーニングプログラム。
【請求項30】
前記撮像装置によって撮像されたユーザの顔画像を画面に表示するステップを前記コンピュータにさらに実行させる、請求項1に記載のトレーニングプログラム。
【請求項31】
前記選択ステップで選択された課題表情に対応するお手本画像と、前記撮像装置によって撮像されたユーザの顔画像とを同一または異なる画面に同時に表示するステップを前記コンピュータにさらに実行させる、請求項1に記載のトレーニングプログラム。
【請求項32】
表情筋のトレーニングを支援するためのトレーニング装置であって、
予め用意された複数の課題表情の中から今回の課題となる課題表情を選択する選択手段、
撮像装置よりユーザの顔画像を取得する顔画像取得手段、
前記顔画像取得手段によって取得された顔画像から、少なくとも前記選択手段によって選択された課題表情に関連する顔特徴点の位置を検出する顔特徴点検出手段、
前記複数の課題表情毎に予め設定された評価基準のうち、前記選択手段によって選択された課題表情に対応する評価基準に従って、前記顔特徴点検出手段によって検出された顔特徴点の位置に基づいて前記顔画像取得手段によって取得された顔画像におけるユーザの表情を評価する評価手段、および、
前記評価手段の評価結果を画像又は音声によりユーザに提示する評価結果提示手段を備える、トレーニング装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate