以下、本発明の一実施形態に係る携帯電子機器について説明する。携帯電子機器は、ユーザが手で持って操作可能な手持ち型の情報処理装置であり、例えば、ゲーム装置であってもよいし、携帯電話機(スマートフォン等)、タブレット端末、カメラ、腕時計型の端末等の任意の装置であってもよい。図1は、本実施形態の携帯電子機器1の正面図である。図2は、携帯電子機器1の右側面図である。図3は、携帯電子機器1の背面図である。
図1に示すように、携帯電子機器1は、ディスプレイ2と、タッチパネル3と、赤外線カメラ4と、測距センサ5と、入力ボタン6(6A〜6D)と、照射部7と、プロジェクタ8とを備え、これらはハウジング10に収納される。ハウジング10(携帯電子機器1)は、板状の形状であり、ユーザが片手又は両手で把持可能な大きさである。
ディスプレイ2としては、例えば、液晶表示装置や有機EL表示装置等が用いられ、その他、任意の表示装置が用いられてもよい。ディスプレイ2の画面は、ハウジング10の正面(T5面)に露出するように設けられる。タッチパネル3は、ディスプレイ2の画面上に設けられ、ユーザによってタッチされた画面上の位置を検出する。タッチパネル3としては、1点検出が可能なものや多点検出が可能なものが用いられ、例えば、静電容量方式、抵抗膜方式等、任意のものが用いられてもよい。
入力ボタン6A〜6Dは、ユーザによる入力(押下)を受け付ける。入力ボタン6A〜6Dは、ユーザが携帯電子機器1の両端を把持したときにユーザの指が届く位置に設けられる。具体的には、入力ボタン6Aおよび6Cは、ユーザが右手で携帯電子機器1を把持したときに右手の指が届く位置にあり、入力ボタン6Aは右手の親指が届く位置に、入力ボタン6Cは右手の人差し指又は中指が届く位置に設けられる。また、入力ボタン6Bおよび6Dは、ユーザが左手で携帯電子機器1を把持したときに左手の指が届く位置にあり、入力ボタン6Bは左手の親指が届く位置に、入力ボタン6Dは左手の人差し指又は中指が届く位置に設けられる。図1に示すように、入力ボタン6Aおよび6Bは、ハウジング10の正面(T5面)に設けられ、入力ボタン6Cおよび6Dは、ハウジング10の上面(T4面)に設けられる。なお、ユーザによる入力を受け付ける入力部としては、入力ボタン6A〜6Dの他に、方向入力のための十字キー、アナログスティック等が設けられてもよい。
赤外線カメラ4は、レンズと光(赤外線。具体的には近赤外線)に感光するセンサとを備える。赤外線カメラ4のセンサは、赤外線に感光する素子を縦横に複数並べたイメージセンサであり、当該イメージセンサの各素子が赤外線を受光して電気信号に変換することで2次元の赤外線画像を出力する。
測距センサ5は、測距センサ5に設けられた光源から射出された光(例えば、赤外光)が物体に反射し、当該反射光を受光素子で受光することで物体との間の距離を測定する。測距センサ5としては、三角測距方式、TOF(Time Of Flight)方式等任意のものが用いられてもよい。測距センサ5の光源としては、特定方向に赤外光を射出するLEDやレーザダイオード等が用いられる。
照射部7は、赤外線を所定の時間間隔(例えば、1/60秒間隔)で照射する。赤外線カメラ4が画像を撮像するタイミングと同期して、照射部7が赤外線を照射する。照射部7は、携帯電子機器1の右側面方向の所定の範囲に赤外線を照射する。照射部7によって照射された赤外線が物体によって反射され、当該反射された赤外線が赤外線カメラ4によって受光されることで、赤外線の画像が取得される。なお、照射部7は、赤外線カメラ4による赤外線画像の撮像のため、および、測距センサ5による距離の測定のために用いられてもよい。すなわち、照射部7からの赤外光を利用して、赤外線カメラ4によって画像が撮像されるとともに、測距センサ5によって距離が測定されてもよい。
また、プロジェクタ8は、可視光を射出する光源を有し、当該光源からの光を用いて文字や画像等を投影面(スクリーンやユーザの手等)に投影する。
赤外線カメラ4、測距センサ5、照射部7、およびプロジェクタ8は、ハウジング10の側面(例えば右側面:T1面)に設けられる。具体的には、赤外線カメラ4の撮像方向(光軸)は、右側面に垂直な方向を向く。測距センサ5の検出方向、プロジェクタ8が光を照射する方向もまた同様に右側面に垂直な方向である。すなわち、赤外線カメラ4は、ユーザが左手で携帯電子機器1を把持した際に、携帯電子機器1の右側面方向の空間を撮像し、測距センサ5は、携帯電子機器1の右側面方向の空間に存在する物体までの距離を測定する。また、プロジェクタ8は、赤外線カメラ4および測距センサ5と同じ方向に可視光を照射することで画像等を投影する。
携帯電子機器1の背面(T6面)には、外側カメラ9が設けられる(図3)。外側カメラ9は、典型的には、赤外線カメラ4の撮像方向とは垂直な方向を撮像可能であり、背面と垂直な方向を撮像可能である。外側カメラ9は、レンズと可視光に感光するイメージセンサとを備える。外側カメラ9は、背面方向の空間を撮像し、カラー画像(RGB画像)を取得する。なお、背面の外側カメラ9に加えて正面にもカメラが設けられてもよいし、背面の外側カメラ9は設けられず、正面(ディスプレイ2の画面が設けられた面)にカメラが設けられてもよい。
図4は、携帯電子機器1の内部構成の一例を示すブロック図である。図4に示すように、携帯電子機器1は、上述した各部の他、バイブレータ11、マイク12、スピーカ13、制御部14、通信部15、姿勢検出部16、GPSレシーバ17、および地磁気センサ18を備える。また、携帯電子機器1は、図示しないバッテリーを備え、当該バッテリーから電源が供給される。これら各部はハウジング10内に収納される。
制御部14は、ディスプレイ2、タッチパネル3、赤外線カメラ4、測距センサ5、入力ボタン6、照射部7、プロジェクタ8、バイブレータ11、マイク12、スピーカ13、通信部15、姿勢検出部16、GPSレシーバ17、地磁気センサ18等、各部に接続され、各部を制御する。
具体的には、制御部14は、CPUやメモリ(RAM)等を含み、携帯電子機器1に備えられた図示しない記憶装置(例えば、不揮発性メモリやハードディスク等)に記憶された所定のプログラム(例えば、ゲーム処理や画像処理、各種演算を行うためのアプリケーションプログラム)に基づいて所定の処理を行う。例えば、制御部14は、赤外線カメラ4からの画像を取得して当該画像を解析したり、測距センサ5からの信号に基づいて物体までの距離を算出したり、タッチパネル3や入力ボタン6からの入力信号に応じた処理を行う。そして、制御部14は、所定の処理の結果に基づく画像を生成し、ディスプレイ2に当該画像を出力する。なお、所定の処理を行うためのプログラムは、通信部15を介して外部からダウンロードされてもよい。
バイブレータ11は、制御部14からの命令に基づいて動作し、携帯電子機器1全体を振動させる。バイブレータ11は、ユーザの手に振動が伝わりやすい所定の位置(例えば、ハウジング10内の中央部や左右の何れかに偏った位置)に設けられる。
マイク12およびスピーカ13は、音声を入力/出力するために用いられる。通信部15は、所定の通信方式(例えば、無線LAN等)で他の機器と通信を行うために用いられる。また、姿勢検出部16は、例えば、加速度センサや角速度センサであり、携帯電子機器1の姿勢を検出する。
GPSレシーバ17は、GPS(Global Positioning System)衛星からの信号を受信し、当該信号を受信することで携帯電子機器1は自機の位置を計算することができる。例えば、携帯電子機器1は、特定の位置で所定の操作(例えば、後述する赤外線カメラ4を用いたジェスチャ入力やボタン入力、携帯電子機器1を振るなどの動作)が行われた場合に、当該特定の位置に対応付けられたオブジェクトを表示してもよい。例えば、携帯電子機器1においてゲームが行われる場合において、携帯電子機器1が特定の位置にある場合、当該特定の位置に対応したオブジェクトを当該ゲームに登場させてもよい。
また、地磁気センサ18は、磁気の方向および大きさを検出可能なセンサである。例えば、携帯電子機器1は、地磁気センサ18の検出結果に基づいて、特定の方位を向いているか否かを判定し、特定の方位で所定の操作(上記ジェスチャ入力等)が行われた場合に、オブジェクトを表示してもよい。例えば、携帯電子機器1においてゲームが行われる場合、特定の方位に対応したオブジェクトが当該ゲームに登場してもよい。また、携帯電子機器1は、GPSレシーバ17を用いたGPS情報と地磁気センサを用いた方位情報とを組み合わせてもよい。例えば、携帯電子機器1が、特定の位置にあり、かつ、特定の方位を向いている場合、当該特定の位置及び特定の方位に対応するオブジェクトを表示したり、当該オブジェクトをゲームに登場させてもよい。
図5は、携帯電子機器1の使用状態の一例を示す図であり、ユーザが携帯電子機器1を両手で把持したときの様子を示す図である。図5に示すように、ユーザは携帯電子機器1の左右両端部を把持する。ユーザが左右の両端部を把持した場合に、ユーザは、左手の親指で入力ボタン6Bを押下可能であり、右手の親指で入力ボタン6Aを押下可能である。また、ユーザが左右の両端部を把持した場合に、ユーザは、左手の人差し指又は中指を動かすことができ当該左手の人差し指又は中指で入力ボタン6Dを押下可能であり、右手の人差し指又は中指を動かすことができ当該右手の人差し指又は中指で入力ボタン6Cを押下可能である。
次に、携帯電子機器1に対する入力について説明する。本実施形態では、ユーザは、携帯電子機器1を左手で把持した状態で、右手を用いて携帯電子機器1に対してジェスチャ入力を行うことができる。
図6Aおよび図6Bは、ユーザが携帯電子機器1の右側面方向で右手を用いてジェスチャ入力を行う様子を示す図である。図7Aは、図6Aに示すようなジェスチャ入力が行われた場合の赤外線カメラ4によって撮像される画像の一例を示す図である。図7Bは、図6Bに示すようなジェスチャ入力が行われた場合の赤外線カメラ4によって撮像される画像の一例を示す図である。
図6Aおよび図6Bに示すように、ユーザは、携帯電子機器1の右側面方向の位置で右手を用いて様々なジェスチャ入力を行う。携帯電子機器1は、携帯電子機器1の右側面に設けられた赤外線カメラ4で赤外線画像を撮像し、当該撮像した赤外線画像を解析することにより、ユーザのジェスチャ入力を判別する。
具体的には、図7Aや図7Bに示す画像が赤外線カメラ4から取得されると、携帯電子機器1は、取得された画像に含まれる特定の物体(具体的には、人間の手)を検出し、当該特定の物体の形状等に基づいて、ユーザによって行われたジェスチャの種類を判別する。例えば、携帯電子機器1は、取得された画像に所定の形状の物体が存在するか否かをパターンマッチング等により判定する。例えば、携帯電子機器1は、図7Aに示す画像が取得された場合、指の本数から「グー」を認識することができ、図7Bに示す画像が取得された場合は、指の本数から「パー」を認識することができる。そして、携帯電子機器1は、後述するようにジェスチャの種類に応じた処理を行う。
ここで、判別されるジェスチャは、ユーザの手や顔等の体の一部や全体を用いた身振り・手振りであり、携帯電子機器1は、手等の静止した状態をジェスチャ入力として認識してもよいし、手を使った一連の動作をジェスチャ入力として認識してもよい。また、携帯電子機器1は、ユーザが物を持った状態で行われるジェスチャ入力を認識してもよい。この場合、携帯電子機器1は、ユーザが持っている物のみの静止状態や動作状態をジェスチャ入力として認識してもよいし、ユーザの手と物を含んだ全体の静止状態や動作状態をジェスチャ入力として認識してもよい。
なお、赤外線カメラ4によって撮像された赤外線画像の中に複数の物体が含まれる場合、携帯電子機器1は、複数の物体のうちの特定の物体のみを検出し、当該検出した物体に基づいて処理を行ってもよい。例えば、赤外線カメラ4を用いてユーザの手を撮像する場合、手とその背後の物体が赤外線画像の中に含まれることがある。この場合、携帯電子機器1は、ユーザの手のみを認識してもよい。例えば、携帯電子機器1は、赤外線カメラ4によって撮像された赤外線画像に含まれる複数の物体の画像のうち、平均輝度が最も高い物体の画像のみを取り出して、当該物体の画像を解析することにより、ユーザの手を認識してもよい。また、赤外線カメラ4によって撮像された赤外線画像に含まれる複数の物体の画像からパターンマッチング等に基づいてユーザの手のみを認識してもよい。
本実施形態では、ユーザは、携帯電子機器1の例えば右側面方向において右手を用いてジェスチャを行うことで、携帯電子機器1に対して様々な操作を行う。まず、ユーザは、携帯電子機器1の右側面に配置された赤外線カメラ4で自身の右手が正常に撮像され、ジェスチャ入力が可能な状態か否かを認識する必要がある。そこで、本実施形態では、ジェスチャ入力が可能な位置をユーザに認識させるための(ユーザの手をジェスチャ入力に適した位置に誘導するための)ガイド表示が行われる。例えば、後述するアプリケーションが実行されるに先立って、ガイド表示が行われる。
(ガイド表示)
図8は、本実施形態のガイド表示の一例を示す図である。図8では、赤外線カメラ4の撮像範囲内にユーザの右手があり、かつ、赤外線カメラ4によってユーザの右手が赤外線カメラの正面から撮像される場合におけるガイド表示の一例が示されている。
図8に示すように、ディスプレイ2の画面の右側には、ユーザに正しいジェスチャ入力位置を認識させるためのガイド表示として、輪郭画像21とガイド枠画像22とが表示される。輪郭画像21は、赤外線カメラ4によって撮像された赤外線画像に含まれるユーザの手の画像の輪郭を示す画像である。ガイド枠画像22は、正しいジェスチャ入力位置をユーザに認識させるための画像であり、赤外線カメラ4によって撮像される撮像範囲よりも狭い範囲を示す画像である。
図8に示すように、例えば、携帯電子機器1の右方向(長辺方向)をX軸、上方向(短辺方向)をY軸、ディスプレイ2の画面の奥方向をZ軸と定義する。赤外線カメラ4からX軸方向に延びる直線がユーザの右手の掌のほぼ中央に当たり、かつ、X軸方向の適切な位置にユーザの右手が存在する場合、赤外線カメラ4によってユーザの右手の全部が撮像される。
図9は、図8に示す状態において赤外線カメラ4によって撮像された赤外線画像の一例を示す図である。図10は、図9に示す画像が取得された場合の輪郭描画処理およびガイド枠画像描画処理が行われた後の画像の一例を示す図である。
図9に示すように、赤外線カメラ4によって撮像された赤外線画像40には、ユーザの右手の画像が含まれる。この撮像された赤外線画像40に輪郭描画処理およびガイド枠画像描画処理が行われることで、図10に示す合成画像41が生成される。具体的には、携帯電子機器1は、図10に示すように、赤外線カメラ4によって赤外線画像40が撮像されると、例えばエッジ検出によって赤外線画像40に含まれる右手の輪郭を検出するとともに輪郭以外の内部の画素情報を消去することにより、輪郭画像21を生成する。また、携帯電子機器1は、生成した輪郭画像21に重ねてガイド枠画像22を描画する。具体的には、ガイド枠画像22は、赤外線カメラ4によって撮像された赤外線画像40の画像中心に固定された、一定の大きさを有する四角形の枠を示す画像である。
輪郭画像21とガイド枠画像22とを合成した合成画像41が、所定方向に傾けられて、ディスプレイ2に表示される。具体的には、携帯電子機器1は、図8に示すように、合成画像41にパースをかけ、パースがかかった合成画像(合成画像41を斜めから見た画像)をディスプレイ2に表示する。なお、パースをかける処理の具体例については後述する。
ここで、図8に示す状態からユーザが右手を動かした場合、ディスプレイ2に表示される画像が変化する。図11は、図8に示す状態からユーザが手を上方向(Y軸方向)に移動させた状態を示す図である。図12は、図8に示す状態からユーザが手を画面の奥方向(Z軸方向)に移動させた状態を示す図である。
図11に示すように、赤外線カメラ4の撮像範囲の中心に対して上側にユーザの手の中心がある場合、ガイド枠画像22の上方に輪郭画像21の一部がはみ出た画像が、ディスプレイ2に表示される。また、図12に示すように、赤外線カメラ4の撮像範囲の中心に対して左側(図12のZ軸方向側)にユーザの手の中心がある場合、ガイド枠画像22の左方に輪郭画像21の一部がはみ出た画像が、ディスプレイ2に表示される。ここで、図11及び図12に示すように、輪郭画像21のうちガイド枠画像22からはみ出た部分は、ガイド枠画像22内に収まる部分とは異なる表示態様で表示される。例えば、輪郭画像21のうちガイド枠画像22からはみ出た部分は、色が異なっていたり、太い線で表示されたりする。
図13は、図11に示す状態における輪郭画像21とガイド枠画像22とを合成した合成画像41を示す図である。図14は、図12に示す状態における輪郭画像21とガイド枠画像22とを合成した合成画像41を示す図である。
図13に示すように、赤外線画像の中心(赤外線カメラ4の撮像範囲の中心)よりも上側にユーザの手が存在する場合、ユーザの手の輪郭の一部がガイド枠画像22の上方にはみ出る。また、図14に示すように、赤外線画像の中心よりも左側にユーザの手が存在する場合、ユーザの手の輪郭の一部がガイド枠画像22の左方にはみ出る。これらはみ出た部分は、はみ出てない他の部分(例えば、黒色)とは異なる表示態様(例えば、赤色)で表示される。このような合成画像41が生成された後、これらの画像にパースがかけられディスプレイ2に表示される(図11及び図12に示すように合成画像41がパース表示される)。
このように、パースがかかった画像(合成画像41を斜めから見た画像)が表示されることにより、ユーザは、奥行き方向の位置を認識し易く、自身の手が赤外線カメラ4の撮像範囲に入っているか否かを容易に認識することができる。すなわち、パースがかかった画像は、ユーザが自身の手を直接見たときと同じような画像になるため、ユーザは奥行き方向を認識し易く、自身の手が現在奥行き方向のどの位置にあるかを容易に認識することができる。
また、赤外線カメラ4の撮像範囲に固定されたガイド枠画像22が表示されるため、ユーザはガイド枠画像22内に手が入るように手の位置を調整し易い。また、ガイド枠画像22からはみ出た部分がガイド枠画像22内の部分と異なる態様で表示されるため、ユーザは、手がガイド枠画像22の外に出たことを容易に認識することができ、手の位置を調整し易くなる。
また、ガイド枠画像22は、赤外線カメラ4によって撮像された赤外線画像よりも小さい。このため、ユーザの手がガイド枠画像22からはみ出ても、赤外線カメラ4によって撮像された赤外線画像にユーザの手(指)が含まれる場合は、携帯電子機器1はユーザによって行われたジェスチャを認識することができる。ガイド枠画像22を表示することにより、ユーザよって行われたジェスチャを認識できなくなる前に、赤外線カメラ4の撮像範囲からユーザの手が出てしまうことをユーザに警告することができる。
また、本実施形態では、携帯電子機器1の右側面方向が赤外線カメラ4で撮像され、その撮像された画像がディスプレイ2の画面の右側に表示される。すなわち、携帯電子機器1の側面方向が赤外線カメラ4で撮像され、ディスプレイ2の画面のうち、赤外線カメラ4で撮像される側面方向と同じ側に画像が表示される。このため、ユーザは自身の手の位置を直感的に認識し易い。
このように、本実施形態では、ガイド表示(輪郭画像21及びガイド枠画像22)が行われる。これにより、ユーザに正しいジェスチャ入力位置を認識させることができる。すなわち、上述のようなガイド表示を行うことで、手が適切な位置にあるか否かをユーザに認識させることができる。
ここで、図8、図11及び図12に例示されるようなパース表示を行うための処理の一例について説明する。
図15は、パース表示を行うための処理の一例を示す概略図である。図15に示すように、輪郭画像21とガイド枠画像22とが仮想空間の所定位置に配置される。例えば、x軸、y軸、及びz軸によって定義される仮想空間のyz平面上に、輪郭画像21を形成する各点、及び、ガイド枠画像22を形成する各点がプロットされる。これらの各点がx軸方向に平行移動されて、輪郭画像21’及びガイド枠画像22’を形成する。これら移動後の各点(輪郭画像21’及びガイド枠画像22’)を射影変換することにより、ディスプレイ2にパースがかかった画像が表示される。具体的には、yz平面上に仮想カメラ50が配置され、仮想カメラ50の撮像方向(cz軸方向)はz軸と平行に設定され、仮想カメラ50の上方向(cy軸方向)はy軸と平行に設定される。このような仮想カメラ50で輪郭画像21’及びガイド枠画像22’を撮像した画像がディスプレイ2に表示される。
なお、パース表示のための処理は図15に示す処理に限られない。例えば、輪郭画像21とガイド枠画像22とを合成した合成画像41を、縦軸(図8のY軸)周りに所定の角度だけ回転させ、当該回転させた画像をディスプレイ2に表示することにより、合成画像41にパースがかかった画像が表示されてもよい。
また、上記実施形態では、赤外線カメラ4によって撮像された赤外線画像に含まれる手の画像の輪郭を示す輪郭画像21をディスプレイ2に表示したが、輪郭ではなく、赤外線カメラ4によって撮像された赤外線画像をそのままディスプレイ2にパース表示してもよい。また、赤外線カメラ4によって撮像された赤外線画像をそのままディスプレイ2に表示するのではなく、抽象化してディスプレイ2にパース表示してもよい。上述のような手の輪郭を表示することに限らず、例えば、撮像した手の特徴点を結んだボーン(特徴点を結ぶ線分)を表示することによって、赤外線カメラ4によって撮像された赤外線画像を抽象化して表示してもよいし、他の方法によって赤外線画像を抽象化してもよい。
また、上記実施形態では、手の画像の輪郭のうち、ガイド枠画像22からはみ出た部分を他の部分と異なる特定の態様で表示することにより、ユーザにガイド枠から手がはみ出たことを知らせた。他の実施形態では、ユーザの手がガイド枠からはみ出た場合、手の画像全体(又ははみ出た部分)を特定の態様で表示させることで、ユーザに警告してもよい。また、ユーザの手がガイド枠画像22からはみ出た場合に、手の画像に加えて又は代えて、ガイド枠画像22を通常とは異なる特定の態様で表示することで、ユーザに警告をしてもよい。ここで、特定の態様としては、上述のように色を通常と異ならせたり、線の太さを変えたりするものに限らない。例えば、点滅表示することにより通常と異ならせてもよい。また、ユーザの手がガイド枠からはみ出た場合、他の画像や文字、音、振動(携帯電子機器1を把持した手(左手)に対する振動)、プロジェクタ8(LEDランプでもよい)を用いた光等により、ユーザに警告をしてもよい。
また、上記実施形態では、赤外線カメラ4によって撮像された赤外線画像にパースをかけてディスプレイ2に表示したが、他の実施形態では、撮像された画像(又は撮像された画像を抽象化した画像)にパースをかけずに表示してもよい。すなわち、ユーザが携帯電子機器1に対する手の相対位置を認識可能な態様で表示されればどのような態様で表示されてもよい。例えば、赤外線カメラ4によって撮像される撮像範囲を示す範囲画像をディスプレイに表示し、その範囲画像にユーザの手の位置を示す画像を重ねて(あるいは重ねずに)表示することで、撮像範囲のうちのどの位置にユーザの手があるのかを示してもよい。例えば、ユーザが手の奥行き方向の位置を認識し易いように、奥行き方向の位置を示す範囲画像を表示し、当該範囲画像に重ねて(あるいは重ねずに)、手の位置を示す画像を表示してもよい。具体的には、例えば、赤外線画像4によって撮像された赤外線画像から、当該撮像画像におけるユーザの手の所定位置(例えば重心)を算出する。そして、赤外線画像の左右方向(図9のZ軸方向)の範囲を示す範囲画像を表示するとともに、当該算出した位置に、手の位置を示す画像を表示する。これにより、ユーザの手が奥行き方向(Z軸方向)のどこに位置するかをユーザに認識させることができる。
また、上述したガイド表示は、後述するアプリケーションの実行前に行われることとしたが、携帯電子機器1によって行われる情報処理の実行状況に応じてガイド表示が行われたり、行われなかったりしてもよい。例えば、後述するアプリケーションの実行中に常にガイド表示が行われてもよいし、ユーザによる指示によってガイド表示の表示/非表示が切り替えられてもよい。また、ユーザによってガイド表示を行うためのプログラムの実行の指示が行われた場合に、ガイド表示が行われてもよい。また、携帯電子機器1の設定時や、携帯電子機器1の使い方をユーザに教示ためのチュートリアルのときだけ、上記ガイド表示が行われてもよい。
また、上記実施形態では、ユーザの手を認識できなくなるまでの事前の警告として、ガイド枠画像22からユーザの手がはみ出た場合に、当該はみ出た部分を特定の態様で表示した。具体的には、赤外線カメラ4によって撮像された赤外線画像からユーザの手を認識することができる場合であっても、ユーザの手がガイド枠からはみ出る場合には、上記のようにガイド枠画像22からはみ出た部分を特定の表示態様で表示することにより、ユーザに事前警告を行った。この場合において、実際に赤外線カメラ4によって撮像された赤外線画像からユーザの手を認識することができなくなった場合は、他の警告を行ってもよい。例えば、音声や文字、画像、振動、光等を用いて、上述したガイド枠画像22を用いた事前警告とは異なる第2の警告が行われてもよい。また、後述のようなアプリケーションの実行中に上記ガイド表示を用いて事前警告を行う場合において、赤外線カメラ4によって撮像された赤外線画像からユーザの手を認識することができなくなったときは、第2の警告を行った後(又は第2の警告を行わず)、アプリケーションを終了してもよいし、後述のようにアプリケーションを一時停止してもよい。
また、上記実施形態では、ユーザの手を検出している場合であってもユーザの手の少なくとも一部がガイド枠からはみ出た場合に、ユーザに対して警告を行った。他の実施形態では、警告を行うための条件はこれに限らない。例えば、他の実施形態では、ユーザのジェスチャを認識できなくなる所定の条件が満たされているか否かを赤外線カメラ4によって撮像された画像に基づいて判定し、所定の条件が満たされている場合に、警告を行ってもよい。例えば、所定の条件としては、赤外線カメラ4によって撮像された画像が暗すぎる(又は明るすぎる)こと、画像に含まれるノイズのレベルが所定以上であること等であってもよい。例えば、画像全体の平均輝度が所定値未満である場合に、それよりも輝度が下がるとユーザのジェスチャを判別できないことになるため、そのような場合には警告を行ってもよい。
また、ガイド枠の形状や大きさは単なる一例であり、他の任意の形状、大きさのガイド枠が設定されてガイド枠画像として表示されてもよい。また、枠画像に限らず他の任意の画像が表示されてもよい。すなわち、赤外線カメラ4の撮像範囲に含まれる物体(例えばユーザの手)が適切な位置にあるか否かをユーザに認識可能な画像であればどのような画像が表示されてもよい。例えば、手が適切な位置にあるときには所定の画像が画面の端に表示され、手が適切な位置にないとき(手が撮像範囲内であって、適切な範囲の外にあるとき)には所定の画像が点滅表示されてもよい。
(アプリケーション制御)
次に、携帯電子機器1における赤外線カメラ4によって撮像された赤外線画像に基づくアプリケーションの制御について説明する。図16は、携帯電子機器1のディスプレイ2に表示されるメニュー画面の一例を示す図である。図17は、メニュー画面によって選択されたアプリBが起動した様子を示す図である。
図16に示すように、メニュー画面では携帯電子機器1において実行可能なアプリケーションの一覧が表示される。携帯電子機器1は、例えば、所定のゲームを行うゲームアプリケーション、音楽や映像を再生するためのアプリケーション、通話を行うためのアプリケーション、画像を撮像・表示するためのアプリケーション、電子メールやメッセージ等を送受信するためのアプリケーション、インターネット上のWebページを閲覧するためのブラウザアプリケーション、文書の作成や編集を行うためのアプリケーション等、任意のアプリケーションを実行可能であってもよい。また、メニュー画面から携帯電子機器1の設定を行うためのプログラムを実行可能であってもよい。
ユーザは、メニュー画面に表示された複数のアプリケーションを示すアイコンの中から所望のアプリケーションに対応するアイコンを選択する。例えば、ユーザは、入力ボタンを用いて、アプリケーションを選択可能であってもよいし、指やタッチペンを用いてタッチパネル3に対するタッチ操作を行うことで、アプリケーションを選択可能であってもよい。また、ユーザは、携帯電子機器1の右側面においてジェスチャを行うことによって、メニュー画面に表示された複数のアプリケーションの中から所望のアプリケーションを選択可能であってもよい。
例えば、図16に示すようにアプリBが選択された状態でユーザが手を右側面に近づけると、図17に示すように、アプリBが起動する。具体的には、携帯電子機器1は、赤外線カメラ4によって撮像された赤外線画像を解析して物体(例えばユーザの手)を検出する。物体が検出された場合、携帯電子機器1は、選択されたアプリBを起動する。具体的には、携帯電子機器1の制御部14のCPUは、携帯電子機器1の内部の記憶装置(例えば不揮発性メモリ等)からアプリBのプログラムをRAMに読み込み、当該プログラムの実行を開始する。あるいは、アプリBのプログラムは携帯電子機器1の外部に記憶され、携帯電子機器1は通信部15を介して当該プログラムを取得し、RAMに読み込んでもよい。
なお、選択されたアプリを起動するための条件としては、携帯電子機器1が物体を検出したことに限らず、携帯電子機器1がユーザの手を検出したこと、携帯電子機器1がユーザの所定のジェスチャを検出したこと、携帯電子機器1の右側面がユーザによって把持されたこと、携帯電子機器1が特定の物体を検出したこと、携帯電子機器1と特定の物体との距離が所定の値になったこと、物体が所定以上の速度で移動していること等であってもよい。
例えば、赤外線カメラ4によって撮像された赤外線画像を解析することで、携帯電子機器1は、ユーザが携帯電子機器1を把持したことや携帯電子機器1と物体との距離を検出することができる。また、携帯電子機器1は、赤外線カメラ4から取得した赤外線画像に含まれる特定の物体の大きさに基づいて、携帯電子機器1と特定の物体との間の相対的な距離を判別してもよい。例えば、携帯電子機器1は、赤外線カメラ4によって撮像された赤外線画像の輝度情報に基づいて、ユーザによって把持されたと判定してもよいし、携帯電子機器1と物体との距離を算出してもよい。物体と携帯電子機器1との距離が近いほど赤外線画像の各画素の輝度は高くなる。このため、携帯電子機器1は、例えば撮像された赤外線画像のうち輝度が所定値以上の領域が、所定の割合以上である場合、ユーザによって把持されたと判定することができる。
また、携帯電子機器1は、赤外線画像に含まれる物体の輝度に基づいて、物体との相対的な距離を算出することができ、相対的な距離の変化に基づいて、物体の速度を算出することができる。このようにして算出された距離や速度に基づいて、携帯電子機器1は、アプリケーションを起動(開始)してもよい。
起動されたアプリBは、所定の条件が成立することにより開始される。例えば、アプリBがゲームアプリケーションである場合、ユーザによってゲームスタートのための所定の指示(ボタンやタッチパネル、ジェスチャ等を用いた指示)がされたことを条件に、ゲームが開始される。あるいは、携帯電子機器1がユーザの手を検出したことを条件に、ゲームが開始されてもよい。アプリBがジェスチャを用いたゲームである場合は、ユーザの手が検出されなければゲームを行うことができないため、ユーザの手を検出したことがゲーム開始の条件であってもよい。あるいは、アプリケーションBの起動から所定時間が経過したことを条件に、ゲームが開始されてもよい。
図18は、起動されたアプリBのゲームが開始された直後の画面の一例を示す図である。図18に示すように、ゲームが開始されるとディスプレイ2にはゲーム終了までの残り時間を示す表示と、ゲーム中に獲得された点数を示す表示が行われる。アプリBは、例えば、所定時間内により多くの点数の獲得を目指すゲームであり、ユーザが一人で行うゲームであってもよいし、通信部15を用いて他の携帯電子機器1(又はその他の機器)と双方向に通信することで多人数で協力して点数を獲得するゲームであってもよいし、多人数で点数を競うゲームであってもよい。例えば、アプリBは、ディスプレイ2に表示された指示通りのジェスチャをユーザが行った場合に点数が加算されるゲームである。このようなゲームにおいて、アプリBの起動後にゲームが開始されると、図18に示す画像が表示される。
図19は、ゲームが実行されている間の画面遷移の一例を示す図である。図19の(A)に示すように、ゲーム開始から30秒が経過した時点では、残り時間を示す表示は「30」となり、点数は「75」となっている。また、ユーザに対する指示が画面に表示され、その指示に応じたジェスチャをユーザが行う。(B)に示すように、さらに2秒が経過してゲーム開始から32秒が経過すると、残り時間を示す表示は「28」となり、ユーザが指示に応じたジェスチャを行うことにより点数も加算される。このように、このゲームでは、例えば所定の音楽のリズムにしたがって指示が次々と表示され、表示された指示に応じたジェスチャが行われた場合は、点数が加算される。
ここで、図19の(C)に示すように、ユーザの手が赤外線カメラ4の撮像範囲から外れ、赤外線カメラ4によってユーザの手を検出できなかった場合、アプリBのゲームは一時的に停止され、メニュー画面に戻る。例えば、ユーザの手が検出されなくなってから所定の待機時間が経過すると、アプリBのゲーム画面からメニュー画面に切り替わる。このとき、ゲームは内部的に一時停止され、当該ゲームの進行が一時的に停止される。しかしながら、実行中のゲームは終了されず、当該ゲームの実行に関するデータはRAMに残されたままとなる。例えば、RAMにはゲームの進行状況を示す値(例えば、残り時間や点数)が記憶されており、ゲームの実行中は当該進行状況を示す値が時間経過(あるいは、ユーザの操作)に応じて増加する。ゲームの進行が停止されると、この進行状況を示す値の増加(あるいは減少)も停止する。このメニュー画面において、ユーザは、他の所望のアプリケーションを選択することもできる。
そして、図19の(D)に示すように、アプリBが選択された状態で再びユーザの手が赤外線カメラ4の撮像範囲に入ると、携帯電子機器1はユーザの手を検出しアプリBのゲームを再開する。具体的には、一時停止されたときの状態からアプリBのゲームが再び開始する。例えば、残り時間が28秒で点数が80点のときにゲームが一時停止した場合、残り時間27秒で点数が80点の状態からゲームが再開される。
より具体的には、携帯電子機器1は、ユーザの手を検出した直後に(あるいは、上記待機時間よりも短い期間が経過した後に)アプリBのゲームを再開する。携帯電子機器1は、アプリを一時的に停止する場合は所定の時間待機する一方で、アプリを再開する場合は所定の時間待機せずに即座にアプリを再開することで、ユーザの意図したようにアプリの一時停止/再開を制御することができる。すなわち、手を使ったジェスチャを行うアプリでは、ユーザが意図せずに、赤外線カメラ4の撮像範囲から手が一瞬離れてしまうことがある。このような場合に、実行中のアプリを即座に一時停止すると、ユーザの意図に反してアプリが一時的に停止されてしまう。しかしながら、アプリを一時停止する場合は上記待機時間が設定されるため、このようなユーザの意図しないアプリの一時停止を防止することができる。一方、メニュー画面からアプリを再開する場合は、ユーザは意図的に手を赤外線カメラ4の撮像範囲に入れる。このため、携帯電子機器1は、アプリを再開する場合は上記待機時間を設けずに、即座にアプリを再開する。
なお、携帯電子機器1は、アプリを一時的に停止する場合と同様に、ユーザの手を検出してから所定の待機時間が経過した後、アプリを再開してもよい。また、携帯電子機器1は、アプリを一時的に停止する場合でも、アプリを再開する場合でも、所定の時間待機せずに即座にアプリを一時停止/再開してもよい。また、図19の(C)のようにアプリが一時停止された場合において、所定の時間が経過してもアプリが再開されない場合は、携帯電子機器1は、アプリを終了してもよい。この場合、ユーザが再び赤外線カメラ4の撮像範囲に手を入れても、アプリは最初から開始される。
このように、本実施形態の携帯電子機器1では、ユーザの入力に応じて進行が制御されるインタラクティブなアプリケーションが実行される。具体的には、当該アプリケーションは、携帯電子機器1の側面方向において行われたジェスチャ入力に応じて進行する。例えば、インタラクティブなアプリケーションの一例として、ジェスチャ入力に対する成否判定が行われ、成否判定の結果に応じて点数が加算されるゲームが行われる。携帯電子機器1の側面方向においてユーザが手をかざしたり、手を用いたジェスチャを行ったりすることで、アプリケーションが起動、開始する。また、携帯電子機器1の側面方向においてユーザが手をどけると、実行中のアプリケーションが一時停止するとともに、メニュー画面が表示される。メニュー画面では、ユーザは、他の所望のアプリケーションを選択することができる。一時停止されたアプリケーションが選択された状態で再びユーザが携帯電子機器1の側面方向において手をかざすと、一時停止されたアプリケーションが再開される。
なお、上述した例では、アプリケーションを実行中にユーザが手をどけると、すなわち、赤外線カメラ4によって撮像された赤外線画像にユーザの手が検出されなくなると、メニュー画面が表示された。他の例では、例えば、ユーザが右手を所定の速度で携帯電子機器1の右側面に近づけた場合(あるいは遠ざけた場合)に、メニュー画面が表示されるようにしてもよい。また、ユーザが所定のジェスチャを行った場合に、メニュー画面が表示されてもよい。例えば、ユーザが特定のジェスチャを行った場合に実行中のアプリケーションが一時停止され、かつ、その状態で手を動かした場合に、メニュー画面が表示されるようにしてもよい。
図20は、他の実施形態におけるメニュー画面を表示するためのジェスチャの一例を示す図である。例えば、図20に示すように、携帯電子機器1の右側面方向においてユーザが物を掴むようなジェスチャを行うと、実行中のアプリケーションが一時停止される。この状態で、ユーザが右方向に手を移動させると、ディスプレイ2の左端からメニュー画面の一部が引っ張られるように出てくる。そして、さらにユーザが手を右方向に移動させると、ディスプレイ2の画面全体がメニュー画面に切り替わる。
また、上記では、ユーザが赤外線カメラ4に手をかざすと、メニュー画面において選択されたアプリケーションが開始(再開)された。他の実施形態では、誤動作を防止するために、例えば、ユーザが所定のジェスチャを行った場合や手が所定の速度で動かされた場合に、選択されたアプリケーションが開始されてもよい。また、ユーザによって携帯電子機器1の右側面が把持された場合に、選択されたアプリケーションが開始されてもよい。この場合、ユーザによって携帯電子機器1の右側面が把持されたか否かは、例えば、赤外線カメラ4によって撮像された画像の輝度情報に基づいて判定されてもよいし、輝度の変化に基づいて判定されてもよい。また、携帯電子機器1は、ユーザの脈を検知した場合、アプリケーションを開始(再開)してもよい。例えば、赤外線カメラ4によって撮像された画像の輝度の変化に基づいてユーザの脈を検知することができる。ユーザの脈を検知した場合にアプリケーションを開始することにより、誤動作を防止することができる。
また、アプリケーションの起動と、アプリケーションにおける所定の処理の開始とで、物体の検出に関する条件が異なっていてもよい。また、アプリケーションの一時停止と、アプリケーションの終了とで、物体の検出に関する条件が異なっていてもよい。例えば、物体の検出に関する第1の条件が満たされている場合にはアプリケーションが起動し、第1の条件よりも厳しい第2の条件が満たされている場合にはアプリケーションにおける所定の処理を開始してもよい。この場合、第1の条件が満たされており、かつ、第2の条件が満たされていない場合は、アプリケーションは起動しても当該アプリケーションにおける所定の処理は開始されない。また、例えば、第1の条件が満たされている場合にはアプリケーションを一時停止し、第1の条件よりも厳しい第2の条件が満たされている場合にはアプリケーションを終了してもよい。この場合、第1の条件が満たされており、かつ、第2の条件が満たされていない場合は、アプリケーションは一時停止しても当該アプリケーションは終了されない。
例えば、アプリBは、携帯電子機器1が物体を検出した場合に起動し、図17に示すようにアプリBの起動画面(初期画面)が表示される。この起動画面はアプリBにおける所定の処理(ゲーム処理)が開始される前の画面である。そして、起動画面が表示された後、例えば、携帯電子機器1がユーザの手を検出した場合に、ゲーム処理が開始される。具体的には、赤外線カメラ4によって撮像された赤外線画像に何らかの物体(手であるか否かにかかわらず何らかの物体)を検出した場合に、アプリBの起動画面が表示され、その状態で携帯電子機器1がユーザの手を検出した場合、ゲームが開始する。すなわち、アプリBの起動画面が立ち上がるための条件としては、ユーザの手が検出される必要はなく、何らかの物体が検出されることであり、アプリBにおけるゲーム処理が開始されるための条件としては、ユーザの手が検出されることである。これは、赤外線カメラ4の撮像範囲にユーザの手が入っても、手と赤外線カメラ4との距離が近すぎると携帯電子機器1は何らかの物体が存在することは認識できても、それがユーザの手なのかどうかは認識できない。このような場合にアプリBの起動画面が立ち上がらずメニュー画面のままであれば、ユーザはどのような操作をしたらアプリBが起動するのか分かりにくくなる。このため、携帯電子機器1がユーザの手を認識できなかったとしても(第2の条件が満たされていなかったとしても)、何らかの物体を検出した場合は(第1の条件が満たされている場合は)、携帯電子機器1はアプリBの起動画面を立ち上げる。しかしながら、ゲームはジェスチャを用いたゲームであるため、実際のゲーム処理を行うためには携帯電子機器1はユーザの手を認識する必要がある。したがって、ユーザの手を認識できたことをゲーム開始の条件とする。このように、物体の検出に関する第1の条件が満たされればアプリを開始し、アプリが開始した後に、第1の条件よりも厳しい第2の条件が満たされれば、アプリにおける所定の処理(ゲーム処理)を開始してもよい。
アプリを一時停止、終了する場合も、同様に、物体の検出に関する第1の条件が満たされればアプリを一時停止し、アプリが一時停止した後に、第1の条件よりも厳しい第2の条件が満たされれば、アプリを終了してもよい。
また、実行されるアプリケーションは上述したゲームに限られない。例えば、所定のゲームオブジェクトが表示され、ユーザの手の動きによって所定のゲームオブジェクトを制御するゲームが行われてもよい。例えば、携帯電子機器1は、赤外線カメラ4によって撮像された画像の位置(例えば、輝度が所定以上の領域の重心位置)に基づいて、ゲームオブジェクトの移動を制御してもよい。
また、上記実施形態では、アプリケーションの実行中に携帯電子機器1がユーザの手を検出しなくなった場合にアプリケーションを一時停止してメニュー画面を表示した。他の実施形態では、アプリケーションの実行中に携帯電子機器1がユーザの手を検出しなくなった場合にアプリケーションを一時停止するとともに、アプリケーションを終了するか否かの画面が表示されてもよい。この画面でユーザによってアプリケーションの終了が指示された場合は、アプリケーションが終了してもよい。また、アプリケーションが一時停止されてからユーザの指示がなくても、所定時間が経過した場合は、アプリケーションを終了してもよい。
(ガイド表示処理の詳細)
次に、携帯電子機器1において行われる具体的な処理の一例について説明する。まず、図21を参照して、上述したガイド表示を行うための処理の詳細について説明する。図21は、ガイド表示を行うための処理の一例を示すフローチャートである。制御部14(のCPU)は、所定のタイミング(例えば、ユーザの指示やアプリケーションが開始される前のタイミング)で記憶装置に記憶されたプログラムをRAMに読み込み、当該プログラムを実行することで図21に示す処理を行う。なお、図21に示す処理は、所定の時間間隔(例えば、1/60秒に1回)で繰り返し行われる。
図21に示すように、ステップS10において、制御部14は、赤外線カメラ4から赤外線画像を取得する。次に、制御部14は、ステップS10で取得された赤外線画像を解析してユーザの手を検出する手検出処理を行う(ステップS11)。手検出処理の結果、手を検出することができた場合(ステップS12:YES)、制御部14は、取得された赤外線画像に固定のガイド枠を設定する(ステップS13)。具体的には、制御部14は、取得された赤外線画像の中央領域を覆う一定の大きさのガイド枠を設定する。
続いて、制御部14は、取得された赤外線画像に含まれるユーザの手の輪郭を示す輪郭画像を生成する(ステップS14)。具体的には、制御部14は、取得された赤外線画像に複数の物体が存在する場合、輝度が最も高い物体のみを抽出し、当該抽出した物体の輪郭を検出する。そして、制御部14は、検出した輪郭を残して輪郭以外の画素情報を消去する。次に、制御部14は、生成した輪郭画像のうち、ステップS13で設定したガイド枠からはみ出た部分の画素情報を赤色に設定する(ステップS15)。続いて、制御部14は、輪郭画像にステップS13で設定したガイド枠を示すガイド枠画像を合成する(ステップS16)。そして、制御部14は、合成した合成画像を斜めから見た画像を生成し、ディスプレイ2に表示する(ステップS17)。具体的には、制御部14は、例えば図15を参照して説明したパース表示のための処理を行うことで、合成画像が図10のY軸回りに所定の角度だけ回転した画像をディスプレイ2の右端に表示する。
一方、ステップS11の手検出処理の結果、手を検出することができなかった場合(ステップS12:NO)、制御部14は、ディスプレイ2にエラー表示を行う(ステップS18)。例えば、制御部14は、手が検出されなかったことを示す文字をディスプレイ2に表示するとともに、音声や振動等によって手が検出されかなったことをユーザに知らせてもよい。
ステップS17又はステップS18の処理を行った後、制御部14は、図21に示す処理を終了するか否かを判定する(ステップS19)。例えば、図21に示す処理は、ユーザの指示に応じて終了してもよいし、所定時間が経過したことに応じて終了してもよい。制御部14、図21に示す処理を終了しないと判定した場合は(ステップS19:NO)、再びステップS10の処理を実行し、図21に示す処理を終了すると判定した場合は(ステップS19:YES)、図21に示す処理を終了する。
(メニュー表示処理の詳細)
次に、図22を参照して、上述したメニュー画面の表示を行うための処理の詳細について説明する。図22は、メニュー画面の表示を行うための処理の一例を示すフローチャートである。なお、図22に示す処理は、制御部14(のCPU)がメニュー表示を行うためのプログラムを実行することにより行われる。また、図22に示す処理は、所定の時間間隔(例えば、1/60秒に1回)で繰り返し行われる。
図22に示すように、ステップS20において、制御部14は、ディスプレイ2にメニュー画面を表示する。例えば、制御部14は、携帯電子機器1において現在実行可能なアプリケーションの一覧を取得し、各アプリケーションを示すアイコンを画面に並べて表示する。携帯電子機器1において実行可能なアプリケーションは、例えば、携帯電子機器1の内部の記憶装置に記憶されたアプリケーション、又は、携帯電子機器1からアクセス可能な外部の記憶装置に記憶されたアプリケーションであってもよい。
ステップS20に続いて、制御部14は、アプリ選択処理を行う(ステップS21)。例えば、制御部14は、タッチパネル3が検出した位置に基づいて、アプリケーションに対応するアイコンがユーザによって選択(タッチ)されたか否かを判定する。ユーザによってアイコンが選択されたと判定した場合、制御部14は、選択されたアイコンに対応するアプリケーションを選択する。
次に、制御部14は、赤外線カメラ4から赤外線画像を取得する(ステップS22)。次に、制御部14は、ステップS22で取得された赤外線画像を解析してユーザの手を検出する手検出処理を行う(ステップS23)。手検出処理の結果、手を検出することができた場合(ステップS24:YES)、制御部14は、アプリケーションが選択済みであるか否かを判定する(ステップS25)。具体的には、制御部14は、ステップS21において既にユーザによってアプリケーションが選択されているか否かを判定する。アプリケーションが選択済みである場合(ステップS25:YES)、制御部14は、選択されたアプリケーションが既に起動しているか否かを判定する(ステップS26)。具体的には、アプリケーションが既に起動している場合は、当該アプリケーションの情報(プログラム自体や他のデータ)がRAMに記憶されているため、制御部14は、RAMに記憶された情報に基づいて、アプリケーションが既に起動されているか否かを判定する。
一方、手検出処理の結果、手を検出することができなかった場合(ステップS24:NO)、又は、アプリケーションが選択済みでない場合(ステップS25:NO)、制御部14は、ステップS20の処理を再び行う。
アプリケーションが既に起動していない場合(ステップS26:NO)、制御部14は、ステップS21で選択されたアプリケーションを起動する。アプリケーションが既に起動している場合(ステップS26:YES)、制御部14は、選択されたアプリケーションの実行を再開する(ステップS28)。
ステップS27又はステップS28の処理の後、制御部14は、図22に示す処理を終了する。
(アプリケーション制御処理の詳細)
次に、図23を参照して、上述したアプリケーションを制御するための処理の詳細について説明する。図23は、アプリケーション制御処理の一例を示すフローチャートである。図23に示す処理は、例えば上述のようにユーザが携帯電子機器1の右側面に手をかざした場合に行われる。また、図23に示す処理は、所定の時間間隔(例えば、1/60秒に1回)で繰り返し行われる。
図23に示すように、ステップS30において、制御部14は、アプリケーションを開始(又は再開)する。具体的には、アプリケーションが起動していない場合(RAMにアプリケーションプログラムが読み込まれていなかったり、アプリケーションを開始するための初期設定が行われていなかったりした場合)、制御部14は、アプリケーションを起動してから所定の条件の成立(所定時間が経過したことやユーザの指示が行われたこと)に応じて当該アプリケーションを開始する。また、アプリケーションが一時停止している場合(すなわち、既にアプリケーションが開始されてから一時停止されてメニュー画面が表示されている場合)、制御部14は、アプリケーションを再開する。具体的には、制御部14は、RAMに記憶されたアプリケーションのためのデータを読み出し、後述するステップS38においてアプリケーションが一時停止された状態からアプリケーションを再開する。
ステップS30に続いて、制御部14は、赤外線カメラ4から赤外線画像を取得する(ステップS31)。次に、制御部14は、ステップS31で取得された赤外線画像を解析してユーザの手を検出する手検出処理を行う(ステップS32)。手検出処理の結果、手を検出することができた場合(ステップS33:YES)、制御部14は、ユーザによって行われたジェスチャ入力を判別するジェスチャ判別処理を行う(ステップS34)。具体的には、制御部14は、検出した手の形や動きに基づいて、予め定められた複数のジェスチャのうちの何れのジェスチャが行われたかを判別する。
続いて、制御部14は、判別したジェスチャに応じたアプリケーション処理を行う(ステップS35)。例えば、図19に示したゲームアプリケーションが行われる場合、制御部14は、ディスプレイ2にユーザに対する指示を示す文字や画像、キャラクタ等を表示し、当該指示に応じたジェスチャが行われたか否かを判定する。そして、制御部14は、判定結果をディスプレイ2に表示する。例えば、制御部14は、指示に応じたジェスチャが行われたと判定した場合、点数を加算し、加算した点数をディスプレイ2に表示する。また、制御部14は、アプリケーションの開始からの経過時間を計測し、ディスプレイ2に表示する。なお、ステップS35のアプリケーション処理は、ユーザによって行われたジェスチャ入力に加えて(又は代えて)、例えば、入力ボタンに対する操作や携帯電子機器1の姿勢に基づいて行われてもよい。
ステップS35に続いて、制御部14は、アプリケーションを終了するか否かを判定する(ステップS36)。例えば、制御部14は、アプリケーションの終了までの時間を示す残り時間が「0」となった場合、アプリケーションを終了すると判定する。また、例えば、ユーザによってアプリケーションの終了のための操作(ボタン操作やジェスチャによる操作)が行われた場合、制御部14は、アプリケーションを終了すると判定する。
アプリケーションを終了すると判定しなかった場合(ステップS36:NO)、制御部14は、ステップS31の処理を再び実行する。一方、アプリケーションを終了すると判定した場合(ステップS36:YES)、制御部14は、アプリケーション終了処理を行い(ステップS40)、図23に示す処理を終了する。例えば、制御部14は、アプリケーション終了処理として、アプリケーションプログラムの実行のために確保したRAMの領域を開放する。これにより、当該アプリケーションの進行状況に応じた値(例えば、上記残り時間や点数等)がクリアされる。
一方、ステップS32の手検出処理においてユーザの手を検出することができなかった場合(ステップS33:NO)、制御部14は、ユーザの手を検出しなくなってから所定の待機時間が経過したか否かを判定する(ステップS37)。ユーザの手を検出しなくなってから所定の待機時間が経過していない場合(ステップS37:NO)、制御部14は、ステップS31の処理を再び実行する。なお、所定の待機時間はアプリの種類に応じて異なってもよいし、一定時間でもよいし、手の検出状況によって変化されてもよい。
ユーザの手を検出しなくなってから所定の待機時間が経過した場合(ステップS37:YES)、制御部14は、実行中のアプリケーションを一時停止する(ステップS38)。具体的には、アプリケーションの実行のために確保したRAMの領域を維持したまま、アプリケーションを一時停止する。例えば、ディスプレイ2にアプリケーションの画像が表示されている場合は、制御部14は、その画像をRAMに記憶する。また、制御部14は、アプリケーションの進行状況に応じた値(例えば、残り時間や点数等)を維持する。
ステップS38においてアプリケーションを一時停止した場合、制御部14は、上述したメニュー処理を行うためのプログラムを呼び出し(ステップS39)、図23に示す処理を終了する。これにより、図22に示したメニュー処理が行われる。
なお、上記フローチャートで示した処理は単なる一例であり、処理の順番や内容に適宜変更が加えられてもよい。また、上述したアプリケーションは単なる一例であり、他の任意のアプリケーションが行われてもよい。
(変形例)
なお、上述した実施形態は単なる一例であり、例えば、以下のような変形が加えられてもよい。
例えば、赤外線カメラ4は携帯電子機器1の右側面に限らず、左側面(図1のT2面)、上側面(T4面)、下側面(T3面)の何れに設けられてもよく、任意の側面方向においてユーザによってジェスチャ入力が行われてもよい。また、複数の側面に赤外線カメラ4が設けられてもよい。例えば、携帯電子機器1の左側面に赤外線カメラ4が設けられる場合には、上述したガイド表示(輪郭画像21およびガイド枠画像22)は、ディスプレイ2の画面の左側に表示される。また、携帯電子機器1の姿勢に応じて、ガイド表示の表示位置が異なるようにしてもよい。携帯電子機器1は、姿勢検出部16によって自機の姿勢を検出することができ、例えば、画面に垂直な軸に何度回転されたかを角速度センサや加速度センサによって検出することができる。例えば、通常、図6Aに示すように赤外線カメラ4が右側に位置するように把持されるところ、ユーザが左右が反転するように携帯電子機器1を把持した場合は、赤外線カメラ4は左側に位置するようになる。この場合、右手で携帯電子機器1が把持され、左手でジェスチャ入力が行われる。このような場合は、上記ガイド表示は、ディスプレイ2の左側に表示される。具体的には、ユーザが左手を直接見たときと同じような見え方となるように、パースがかかったガイド表示がディスプレイ2の左側に表示される。すなわち、ディスプレイ2の表示画面のうち、赤外線カメラ4によって撮像される側面方向と同じ側に上記ガイド表示が表示される。
また、上記実施形態では、ディスプレイ2が設けられた携帯電子機器1が上記処理を行うことを想定した。他の実施形態では、外部のディスプレイに画像が表示されてもよい。赤外線カメラ4が設けられた手持ち型の入力装置をユーザが把持し、当該入力装置の側面方向においてユーザが手を用いたジェスチャを行うことにより、入力装置と離れた表示装置に上述したガイド表示の画像やアプリケーションの画像、メニュー画面等が表示されてもよい。赤外線カメラ4が設けられた手持ち型の入力装置と、表示装置と、情報処理装置とが別体となった情報処理システムが構築されてもよい。この場合、例えば、上述したガイド表示の画像やアプリケーションの画像は表示装置において表示され、アプリケーションの処理は情報処理装置で行われる。例えば、情報処理装置は、入力装置からの画像を取得し、当該画像に基づいてジェスチャを認識し、ジェスチャの認識結果に基づいてアプリケーションの処理を行う。また、情報処理装置は、入力装置からの画像を取得して上記ガイド表示のための処理(輪郭画像21及びガイド枠画像22の描画やこれらの画像にパースをかける処理)を行う。そして、情報処理装置は、アプリケーションの処理およびガイド表示のための処理の結果としての画像を表示装置に出力する。これら複数の装置のそれぞれが処理を分担することで上述した処理が実行されてもよい。また、携帯電子機器1を、ユーザの入力を受け付けるコントローラとして機能させてもよい。この場合、ディスプレイは設けられてもよいし、設けられなくてもよい。携帯電子機器1がコントローラとして機能する場合、携帯電子機器1は、無線や有線で別の情報処理装置と接続される。携帯電子機器1に対して操作(入力ボタンに対する操作や携帯電子機器1自体を動かす操作、上記ジェスチャ操作等)が行われると、当該操作に応じた操作データが別の情報処理装置に送信される。情報処理装置は、操作データを受信すると、操作データに応じた処理を行う。操作データに応じた処理は、実行されるアプリケーションの種類によって異なる。
また、携帯電子機器1の形状はどのようなものでもよい。例えば、携帯電子機器1(ディスプレイ2)は、横長ではなく縦長であってもよいし、正方形であってもよい。
また、上記実施形態では赤外線カメラ4が用いられたが、他の実施形態では、赤外線カメラ4に代えて、可視光の画像(RGB画像)を撮像可能なカメラが用いられてもよい。
また、上記実施形態では、一方の手で携帯電子機器を把持し、他方の手で携帯電子機器に対してジェスチャ入力を行う例について説明した。他の実施形態では、携帯電子機器は、例えば画面を備える腕時計型の装置のように、ユーザの腕(身体)に固定されるものであってもよい。
また、携帯電子機器の形状はどのようなものでもよく、例えば、板状の楕円形状であってもよい。例えば、携帯電子機器は、折り畳み可能なものであってもよい。