(57)【特許請求の範囲】
【請求項１】
ユーザが手で把持して使用する操作入力装置であって、
当該操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、
前記取得される撮像画像内に含まれる被写体を特定し、当該特定される被写体の位置に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きを検出する姿勢検出手段と、
を含み、
前記姿勢検出手段は、前記撮像画像内における前記被写体の位置が変化する場合に、前記撮像部から前記被写体に向かう方向に対する前記被写体の向きの変化を検出し、当該検出された被写体の向きの変化に応じて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化量を算出する
ことを特徴とする操作入力装置。
【請求項２】
請求項１記載の操作入力装置において、
前記被写体は前記操作入力装置を把持するユーザの顔の全部又は一部であって、
前記姿勢検出手段は、前記ユーザの顔の全部又は一部の位置及び向きの少なくとも一方に基づいて、前記操作入力装置の姿勢を検出する
ことを特徴とする操作入力装置。
【請求項３】
請求項１又は２記載の操作入力装置において、
前記姿勢検出手段は、前記撮像画像内における前記被写体の向きに基づいて、前記撮像方向に垂直な面内における前記操作入力装置の傾きを検出する
ことを特徴とする操作入力装置。
【請求項４】
ユーザが手で把持して使用する操作入力装置と接続され、
前記操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、
前記取得される撮像画像内に含まれる被写体を特定し、当該特定される被写体の位置に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きを検出する姿勢検出手段と、
を含み、
前記姿勢検出手段は、前記撮像画像内における前記被写体の位置が変化する場合に、前記撮像部から前記被写体に向かう方向に対する前記被写体の向きの変化を検出し、当該検出された被写体の向きの変化に応じて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化量を算出する
ことを特徴とする情報処理装置。
【請求項５】
操作入力装置に設けられた撮像部によって撮像される撮像画像を取得するステップと、
前記取得される撮像画像内に含まれる被写体を特定し、当該特定される被写体の位置に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きを検出するステップと、
を含み、
前記傾きを検出するステップでは、前記撮像画像内における前記被写体の位置が変化する場合に、前記撮像部から前記被写体に向かう方向に対する前記被写体の向きの変化を検出し、当該検出された被写体の向きの変化に応じて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化量を算出する
ことを特徴とする操作入力装置の姿勢検出方法。
【請求項６】
操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段、及び
前記取得される撮像画像内に含まれる被写体を特定し、当該特定される被写体の位置に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きを検出する姿勢検出手段、
としてコンピュータを機能させるためのプログラムであって、
前記姿勢検出手段は、前記撮像画像内における前記被写体の位置が変化する場合に、前記撮像部から前記被写体に向かう方向に対する前記被写体の向きの変化を検出し、当該検出された被写体の向きの変化に応じて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化量を算出する
ことを特徴とするプログラム。
【請求項７】
請求項６記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項８】
ユーザが手で把持して使用する操作入力装置であって、
当該操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、
前記取得される撮像画像内に含まれる被写体及び背景画像を特定し、当該特定される被写体の位置の変化に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化を検出する姿勢検出手段と、
を含み、
前記姿勢検出手段は、前記背景画像の変化に基づいて、前記被写体の位置の変化が、前記操作入力装置の平行移動によるものか否かを特定する
ことを特徴とする操作入力装置。
【請求項９】
ユーザが手で把持して使用する操作入力装置と接続され、
前記操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、
前記取得される撮像画像内に含まれる被写体及び背景画像を特定し、当該特定される被写体の位置の変化に基づいて、前記撮像部から前記被写体に向かう方向に対する前記操作入力装置の傾きの変化を検出する姿勢検出手段と、
を含み、
前記姿勢検出手段は、前記背景画像の変化に基づいて、前記被写体の位置の変化が、前記操作入力装置の平行移動によるものか否かを特定する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが手で把持して使用する操作入力装置、当該操作入力装置と接続される情報処理装置、操作入力装置の姿勢検出方法、プログラム、及び情報記憶媒体に関する。
【背景技術】
【０００２】
例えば家庭用ゲーム機のコントローラなど、ユーザが操作入力を行うための操作入力装置の中には、当該操作入力装置の姿勢を検知するために加速度センサやジャイロセンサ等の姿勢検出用センサを備えるものがある（例えば特許文献１参照）。このような操作入力装置を用いれば、ユーザは、操作ボタンを押したりするだけでなく、操作入力装置自体を傾けたり動かしたりすることで、各種の操作入力を行うことができる。例えばゲーム等のアプリケーションプログラムにおいて、このような操作入力装置を傾ける操作入力に応じた処理を実行するものが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２００７／０２６０７２７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、操作入力装置の中には、上述した姿勢検出用センサを備えていないものも存在する。このような操作入力装置では、姿勢検出による操作入力を前提とするアプリケーションプログラムを利用できない。
【０００５】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、姿勢検出用センサがなくとも、操作入力装置の姿勢を変化させることによる操作入力を実現できる操作入力装置、情報処理装置、操作入力装置の姿勢検出方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
本発明に係る操作入力装置は、ユーザが手で把持して使用する操作入力装置であって、当該操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、前記取得される撮像画像の解析結果に基づいて、当該操作入力装置の姿勢を検出する姿勢検出手段と、を含むことを特徴とする。
【０００７】
また、本発明に係る情報処理装置は、ユーザが手で把持して使用する操作入力装置と接続され、前記操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段と、前記取得される撮像画像の解析結果に基づいて、前記操作入力装置の姿勢を検出する姿勢検出手段と、を含むことを特徴とする。
【０００８】
また、本発明に係る操作入力装置の姿勢検出方法は、操作入力装置に設けられた撮像部によって撮像される撮像画像を取得するステップと、前記取得される撮像画像の解析結果に基づいて、前記操作入力装置の姿勢を検出するステップと、を含むことを特徴とする。
【０００９】
また、本発明に係るプログラムは、操作入力装置に設けられた撮像部によって撮像される撮像画像を取得する撮像画像取得手段、及び前記取得される撮像画像の解析結果に基づいて、前記操作入力装置の姿勢を検出する姿勢検出手段、としてコンピュータを機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１実施形態に係る操作入力装置の外観を示す斜視図である。
【図２】本実施形態に係る操作入力装置の内部構成を示すブロック図である。
【図３】本実施形態に係る操作入力装置の機能例を示す機能ブロック図である。
【図４】ユーザの顔を含む撮像画像の一例を示す図である。
【図５Ａ】操作入力装置が基準姿勢に対してＺ軸を中心に回転した状態を示す図である。
【図５Ｂ】図５Ａの状態における撮像画像を示す図である。
【図６Ａ】操作入力装置が基準姿勢に対してＸ軸を中心に回転した状態を示す図である。
【図６Ｂ】図６Ａの状態における撮像画像を示す図である。
【図７Ａ】操作入力装置が基準姿勢に対してＹ軸を中心に回転した状態を示す図である。
【図７Ｂ】図７Ａの状態における撮像画像を示す図である。
【図８Ａ】操作入力装置が平行移動した状態を示す図である。
【図８Ｂ】図８Ａの状態における撮像画像を示す図である。
【図９】本発明の第２実施形態に係る情報処理装置を含む情報処理システムの構成ブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面に基づき詳細に説明する。
【００１２】
［第１実施形態］
図１は、本発明の第１実施形態に係る操作入力装置１の外観を示す斜視図である。本実施形態に係る操作入力装置１は、ユーザＵが手で把持して使用する携帯型ゲーム機であるものとする。
【００１３】
この図に示されるように、操作入力装置１の筐体１０は、全体として略矩形の平板状の形状をしており、その表面には表示部１１が配置されている。また、筐体１０の上端には、撮像部１２が取り付けられている。なお、以下では操作入力装置１の横方向（長手方向）をＸ軸方向、縦方向をＺ軸方向とする。また、操作入力装置１の厚さ方向をＹ軸方向とする。
【００１４】
表示部１１は、液晶表示パネルや有機ＥＬ表示パネル等、各種の画像表示デバイスであってよい。撮像部１２は、ＣＣＤカメラ等であって、周辺の画像を撮像する。具体的に、図１においては、撮像部１２のレンズは、操作入力装置１の正面方向（Ｙ軸正方向）に向けられており、当該方向を撮像方向Ｄｃとして画像を撮像する。なお、撮像部１２のレンズは、Ｘ軸方向を回転中心として１８０°回転可能になっている。これにより、撮像部１２の撮像方向ＤｃはＹ軸正方向からＺ軸負方向を経由してＹ軸負方向（操作入力装置１の背面方向）まで変化する。
【００１５】
また、操作入力装置１の筐体１０表面には、操作ボタンやアナログスティック等の各種の操作部材１３が配置されている。ユーザＵは、これらの操作部材１３を操作することで、操作入力装置１に対する操作入力を行うことができる。
【００１６】
操作入力装置１の内部には、図２に示されるように、制御部１４と、記憶部１５と、が含まれる。
【００１７】
制御部１４は、ＣＰＵ等であって、記憶部１５に記憶されたプログラムに従って各種の情報処理を実行する。本実施形態では、制御部１４は、撮像部１２によって撮像された撮像画像を用いて操作入力装置１の姿勢を検出し、当該検出結果をユーザＵによる操作入力として用いて、表示部１１の表示画像を更新する処理を実行する。制御部１４が実行する処理の内容については、後述する。
【００１８】
記憶部１５は、ＲＡＭやＲＯＭ等のメモリ素子やハードディスクドライブ等を含んで構成され、制御部１４が実行するプログラムや各種のデータを記憶する。また、記憶部１５は、制御部１４のワークメモリとしても動作する。
【００１９】
操作入力装置１は、図３に示すように、機能的に、撮像画像取得部２１と、姿勢検出部２２と、表示画像更新部２３と、を含んで構成される。また、本実施形態では、姿勢検出部２２は、画像解析部２２ａと、姿勢パラメタ算出部２２ｂと、を含んで構成される。これらの機能は、制御部１４が記憶部１５に格納されたプログラムを実行することで実現される。このプログラムは、インターネット等の通信ネットワークを介して操作入力装置１に提供されてもよいし、光ディスクやメモリカード等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよい。
【００２０】
撮像画像取得部２１は、撮像部１２によって撮像された撮像画像Ｉを取得する。具体的に、撮像画像取得部２１は、操作入力装置１が姿勢検出処理を行っている間、所定時間おきに当該時点における撮像画像Ｉを取得することとする。
【００２１】
なお、撮像画像Ｉは静止画像であってもよいし、動画像中の一時点におけるフレーム画像であってもよい。すなわち、撮像部１２は、撮像画像取得部２１が指示するタイミングで静止画像を撮像してもよい。あるいは、撮像部１２は継続して動画像の撮像を実施し、撮像画像取得部２１がその動画像の中からフレーム画像を撮像画像Ｉとして抽出してもよい。
【００２２】
姿勢検出部２２は、撮像画像取得部２１が取得した撮像画像Ｉの画像解析結果に基づいて、操作入力装置１の姿勢を検出する。
【００２３】
具体的に、画像解析部２２ａは、撮像画像取得部２１が所定時間おきに取得した各撮像画像Ｉの解析を行って、当該撮像画像Ｉ内に含まれる物体（被写体）を特定する。この被写体は、操作入力装置１の姿勢を検出するための目印として用いられる物体であって、撮像画像Ｉ内における当該被写体の位置や向きが特定できるものであればどのようなものであってもよい。ここでは、画像解析部２２ａによる特定の対象となる被写体は、操作入力装置１を把持しているユーザＵの顔であることとする。操作入力装置１のユーザＵは、表示部１１に表示される画像を閲覧するために、自分自身の顔の正面に操作入力装置１が位置するように、操作入力装置１を両手で把持して使用する。このとき、撮像部１２の撮像方向ＤｃにユーザＵの顔が位置することになり、撮像画像Ｉ内にはユーザＵの顔が映っていると想定される。
【００２４】
画像解析部２２ａは、撮像画像Ｉ内におけるユーザＵの顔の中心位置（以下、顔位置Ｐｆという）を特定する。また、撮像画像内におけるユーザＵの顔の傾き（以下、顔方向Ｄｆという）を特定する。ここでは顔方向Ｄｆは、撮像画像Ｉ内においてユーザＵの頭頂部が向いている方向として定義することとする。これらの顔位置Ｐｆ及び顔方向Ｄｆは、公知の顔認識技術を用いて特定することができる。具体的に、例えば画像解析部２２ａは、顔に含まれる目や鼻などの部位を検出したり、撮像画像Ｉ内の輝度分布、色分布、熱分布、距離分布などを解析したりすることによって、顔位置Ｐｆ及び顔方向Ｄｆを特定してもよい。なお、撮像画像Ｉ内から複数の顔が検出される場合、画像解析部２２ａは、例えば撮像画像Ｉ内で一番サイズの大きな顔をユーザＵの顔として特定してもよい。図４は、このような画像解析によって特定される顔位置Ｐｆの位置座標（ｘｆ，ｙｆ）及び顔方向Ｄｆの角度値θｆを示している。ここで、顔位置Ｐｆの位置座標（ｘｆ，ｙｆ）は、撮像画像Ｉの中心位置を原点とした座標系によって表されている。また、顔方向Ｄｆの角度値θｆは、撮像画像Ｉの上方向（垂直方向）に対する顔の頭頂部方向の角度として表されている。
【００２５】
姿勢パラメタ算出部２２ｂは、画像解析部２２ａによって得られた解析結果を用いて、操作入力装置１の姿勢を表す姿勢パラメタの値を算出する。具体的に、姿勢パラメタ算出部２２ｂは、画像解析部２２ａによって特定された顔位置Ｐｆ及び顔方向Ｄｆの少なくとも一方に基づいて、操作入力装置１の姿勢を検出する。ここでは姿勢パラメタ算出部２２ｂは、顔位置Ｐｆ及び顔方向Ｄｆを用いて、姿勢パラメタとして、ロール角θｒ、ピッチ角θｐ、及びヨー角θｙのそれぞれを算出することとする。これらの姿勢パラメタは、後に詳しく説明するように、操作入力装置１に設定された各基準軸を中心とした、操作入力装置１の基準姿勢に対する回転角を表している。
【００２６】
なお、ここでは、撮像方向Ｄｃを延長した直線上にユーザＵの顔の中心が存在し、操作入力装置１の上方（Ｚ軸負方向）とユーザＵの顔から頭頂部に向かう方向が一致する状態を、操作入力装置１の基準姿勢とする。すなわち、操作入力装置１が基準姿勢にある状態では、撮像画像Ｉの中心に顔位置Ｐｆが存在し、かつ、顔方向Ｄｆが撮像画像Ｉの上方向に向いていることになる。以下では、操作入力装置１が基準姿勢にある状態における顔位置Ｐｆ及び顔方向Ｄｆを、それぞれ基準顔位置Ｐｏ及び基準顔方向Ｄｏと表記する。
【００２７】
ロール角θｒは、Ｚ軸を回転中心とした基準姿勢に対する回転角を示している。図５Ａは、操作入力装置１がＺ軸を回転中心として基準姿勢から回転した状態を示しており、ユーザＵ及び操作入力装置１を上方（Ｚ軸負方向側）から見た様子を示している。また、図５Ｂは、この状態における撮像画像Ｉを示している。これらの図に示されるように、操作入力装置１がＺ軸を回転中心として回転すると、撮像部１２から見てユーザＵは左右方向に移動することになり、撮像画像Ｉ内において顔位置Ｐｆが基準顔位置Ｐｏに対して左右方向に移動する。そこで姿勢パラメタ算出部２２ｂは、所定の関数を用いて、顔位置Ｐｆのｘ座標値ｘｆに基づいてロール角θｒを算出する。例えば姿勢パラメタ算出部２２ｂは、
θｒ＝ａ１・ｆ（ｘｆ／ｘｍａｘ）
という計算式を用いてθｒを算出する。ここで、ａ１は所定の係数、ｘｍａｘはｘ座標値の最大値であって、ｆ（ｘ）は所定の関数である。一例として、姿勢パラメタ算出部２２ｂは、ロール角θｒがｘ座標値ｘｆに比例するとして、
θｒ＝ａ１・ｘｆ／ｘｍａｘ
という計算式を用いてθｒを算出してもよい。また、ｆ（ｘ）は、撮像部１２の構造やレンズ特性等に応じた補正関数であってもよい。
【００２８】
また、ピッチ角θｐは、Ｘ軸を回転中心とした基準姿勢に対する回転角を示している。図６Ａは、操作入力装置１がＸ軸を回転中心として基準姿勢から回転した状態を示しており、ユーザＵ及び操作入力装置１を側方（Ｘ軸正方向側）から見た様子を示している。また、図６Ｂは、この状態における撮像画像Ｉを示している。これらの図に示されるように、操作入力装置１がＸ軸を回転中心として回転すると、撮像部１２から見てユーザＵは上下方向に移動することになり、撮像画像Ｉ内において顔位置Ｐｆが基準顔位置Ｐｏに対して上下方向に移動する。そこで、姿勢パラメタ算出部２２ｂは、所定の関数を用いて、顔位置Ｐｆのｙ座標値ｙｆに基づいてピッチ角θｐを算出する。例えば姿勢パラメタ算出部２２ｂは、
θｐ＝ａ２・ｇ（ｙｆ／ｙｍａｘ）
という計算式を用いてθｐを算出してもよい。ここで、θｒの場合と同様に、ａ２は所定の係数であり、ｙｍａｘはｙ座標値の最大値であり、ｇ（ｙ）は所定の関数である。なお、ｇ（ｙ）はｆ（ｘ）と同じ関数であってもよい。一例として、姿勢パラメタ算出部２２ｂは、ピッチ角θｐがｙ座標値ｙｆに比例するとして、
θｐ＝ａ２・ｙｆ／ｙｍａｘ
という計算式を用いてθｐを算出してもよい。
【００２９】
以上説明したように、姿勢パラメタ算出部２２ｂは、撮像画像Ｉ内における顔位置Ｐｆに基づいて、ロール角θｒ及びピッチ角θｐを算出する。これらの姿勢パラメタは、撮像部１２からユーザＵに向かう方向に対する操作入力装置１の傾きを表している。なお、ここではｘｆ及びｙｆを、それぞれｘｍａｘ及びｙｍａｘで除した値を用いて、θｒ及びθｐを算出している。これにより、撮像画像Ｉ内における位置座標を正規化した値に基づいて、ロール角θｒ及びピッチ角θｐを算出できる。このとき、ａ１とａ２は互いに等しい値であってもよい。また、ｘｍａｘ及びｙｍａｘを用いずに、θｒ＝ａ１・ｆ（ｘｆ）、θｐ＝ａ２・ｇ（ｙｆ）という計算式でθｒ及びθｐを算出してもよい。
【００３０】
なお、ここでは位置座標の原点と基準顔位置Ｐｏが一致することとしたが、位置座標の原点は基準顔位置Ｐｏと異なる位置にあってもよい。例えば撮像画像Ｉの四隅のいずれかを原点として、顔位置Ｐｆの座標値を表してもよい。この場合、基準顔位置Ｐｏの位置座標を（ｘo，ｙｏ）と表記すると、上述した各計算式におけるｘｆ及びｙｆの代わりに、（ｘｆ−ｘｏ）及び（ｙｆ−ｙｏ）を用いてθｒ及びθｐを算出すれば、基準姿勢に対する回転角を求めることができる。
【００３１】
一方、ヨー角θｙは、Ｙ軸を回転中心とした基準姿勢に対する回転角（すなわち、撮像方向Ｄｃに垂直な面内における操作入力装置１の傾き）を示している。図７Ａは、操作入力装置１がＹ軸を回転中心として基準姿勢から回転した状態を示しており、ユーザＵ及び操作入力装置１を背面側（Ｙ軸負方向側）から見た様子を示している。また、図７Ｂは、この状態における撮像画像Ｉを示している。これらの図に示されるように、操作入力装置１がＹ軸を回転中心として回転すると、これに応じて撮像画像Ｉ内の顔方向Ｄｆは逆回りで回転する。そこで、姿勢パラメタ算出部２２ｂは、所定の関数を用いて、顔方向Ｄｆの角度値θｆに基づいてヨー角θｙを算出する。例えば姿勢パラメタ算出部２２ｂは、
θｙ＝ａ３・ｈ（θｆ）
という計算式を用いてθｙを算出する。ここで、ａ３は所定の係数であって、ｈ（θ）は所定の関数である。一例として、姿勢パラメタ算出部２２ｂは、ヨー角θｙが角度値θｆに比例するとして、
θｙ＝ａ３・θｆ
という計算式を用いてθｙを算出してもよい。
【００３２】
なお、以上の説明において、係数ａ１，ａ２及びａ３は、アプリケーションプログラム等によって予め定められた固定値であってもよいし、ユーザＵの指定に応じて変更可能な値であってもよい。
【００３３】
また、特に係数ａ１及びａ２は、画像解析部２２ａによる画像解析によって得られる被写体の大きさ（ここではユーザＵの顔の大きさ）に基づいて変化する値であってもよい。例えば、実際のユーザＵの顔の位置と基準姿勢において想定される位置との間にわずかなずれがある場合（すなわち、ユーザＵの顔の中心位置が撮像方向Ｄｃを延長した直線上からずれている場合）、このずれによる影響は、ユーザＵと撮像部１２との間の距離によって変化する。すなわち、ユーザＵと撮像部１２との間の距離が比較的近いと、わずかに操作入力装置１の傾きが変化するだけでも、顔位置Ｐｆは撮像画像Ｉ内において大きく移動する。一方で、ユーザＵと撮像部１２との間の距離が比較的遠い場合、操作入力装置１を同じ角度だけ傾けても、顔位置Ｐｆの撮像画像Ｉ内における移動量は、ユーザＵと撮像部１２との間の距離が近い場合より少なくなる。ここで、画像解析部２２ａが顔位置Ｐｆ及び顔方向Ｄｆを特定する際に、ユーザＵの顔が撮像画像Ｉ内に占める顔領域の大きさも合わせて特定されるので、この顔領域の大きさを用いて、撮像部１２からユーザＵまでの距離を推定することができる。そのため、この顔領域の大きさに応じて係数ａ１及びａ２を決定することで、姿勢パラメタ算出部２２ｂは、上述したずれの影響を軽減して、操作入力装置１の姿勢変化を反映したロール角θｒ及びピッチ角θｐを算出することができる。具体的に、姿勢パラメタ算出部２２ｂは、画像解析部２２ａによって特定された顔領域の大きさが大きければ大きいほど、係数ａ１及びａ２の値を小さくすればよい。なお、姿勢パラメタ算出部２２ｂは、ユーザＵの顔までの距離を推定するために、顔領域の大きさだけでなく、視差情報などの他の入力情報を用いてもよい。
【００３４】
また、以上の説明においては、ユーザＵは操作入力装置１の向きは変化させるが、自分自身に対する操作入力装置１の位置自体は動かさない（すなわち、撮像部１２の撮像方向Ｄｃは変化しても、撮像位置自体は変化しない）ことを前提として姿勢パラメタを算出することとしている。もしユーザＵが操作入力装置１の位置を平行移動させたとすると、その場合にも顔位置Ｐｆは撮像画像Ｉ内を移動することになる。そのため、撮像画像Ｉ内の顔位置Ｐｆの情報だけでは、ユーザＵが操作入力装置１を回転させたのか、平行移動させたのか、判別できないことも考えられる。
【００３５】
そこで、姿勢検出部２２は、撮像部１２から被写体（ここではユーザＵの顔）に向かう方向に対する、被写体の向きの変化を検出し、当該検出された被写体の向きの変化に応じて、操作入力装置１の傾きの変化の有無を判別することとしてもよい。具体的に、画像解析部２２ａは、撮像画像Ｉ内に含まれるユーザＵの顔を特定する際に、ユーザＵの顔の正面方向がどちらを向いているかを判定する。このような判定は、顔領域内における目や鼻などの特徴点の位置を特定し、当該特定された特徴点の顔領域内における分布（偏り度合い）を基準値と比較することで可能となる。
【００３６】
図８Ａは、図５Ａと同様にユーザＵ及び操作入力装置１を上方から見た様子を示す図であって、操作入力装置１の向きは変えずに位置だけを変化させた状態を示している。図５Ａや図６Ａに示されるように、ユーザＵが操作入力装置１の向きだけを変化させた場合、撮像画像Ｉ内における顔位置Ｐｆは撮像画像Ｉの中心から外周に向かって移動するが、実空間内において撮像部１２のレンズに対するユーザＵの顔の位置自体は変化しない。そのため、ユーザＵの顔の正面は撮像部１２のレンズに向けられたままであり、図５Ｂや図６Ｂに示されるように、撮像画像Ｉ内においてユーザＵの顔の正面方向はほとんど変化しない。一方、ユーザＵが操作入力装置１の位置を平行移動させた場合、図８Ａに示されるように、ユーザＵの顔の正面方向は撮像部１２のレンズから離れていく。そのため、図８Ｂに示されるように、操作入力装置１が移動するにつれて、ユーザＵの顔の正面は撮像画像Ｉの外側に向けられていく。
【００３７】
そこで姿勢パラメタ算出部２２ｂは、撮像画像Ｉ内に含まれる顔画像を解析して、ユーザＵから撮像部１２に向かう方向に対するユーザＵの顔の正面方向の角度を算出する。具体的に、例えば姿勢パラメタ算出部２２ｂは、顔に含まれる目や鼻などの部位の位置分布や、顔領域内の輝度分布、色分布、熱分布、距離分布などを用いて、顔の正面方向の角度を算出してもよい。そして、当該角度に応じた量だけ操作入力装置１が平行移動したと判断し、顔位置Ｐｆの位置座標値ｘｆ及びｙｆに対して、当該平行移動に起因する量を差し引く補正を行う。その後、姿勢パラメタ算出部２２ｂは、補正されたｘｆ及びｙｆの値を用いて、上述したθｒ及びθｐの算出を行う。このようにすれば、撮像画像Ｉ内において顔位置Ｐｆが変化した場合に、この変化のうち、操作入力装置１の平行移動に起因する部分と傾きの変化に起因する部分を分離し、傾きの変化だけを算出することができる。なお、姿勢パラメタ算出部２２ｂは、顔全体の正面方向ではなく、顔に含まれる目や鼻などの正面方向の角度を特定し、当該特定された角度を用いて操作入力装置１の平行移動量を算出してもよい。
【００３８】
また、姿勢パラメタ算出部２２ｂは、撮像画像Ｉ内に含まれる背景画像の動きを用いて、操作入力装置１の平行移動を検知してもよい。すなわち、ユーザＵが操作入力装置１を平行移動させた場合は、撮像画像Ｉ内においてユーザＵの位置が移動するだけでなく、ユーザＵの背後の背景画像全体が平行移動する。一方、ユーザＵが操作入力装置１を傾けただけの場合は、背景画像に歪みが生じることはあっても、背景の全体が平行移動することはない。そのため、撮像画像Ｉ内の背景画像を、過去に撮像された撮像画像Ｉ内における背景画像と比較し、背景画像の変化を解析することで、操作入力装置１の平行移動量を特定することができる。このような解析は、例えばＫＬＴ法（Kanade-Lucas-Tomasi Feature Tracker）などを用いて実現できる。
【００３９】
さらに、既に述べたように、姿勢検出部２２は、顔領域の大きさによって撮像部１２からユーザＵの顔までの距離を算出できる。この距離の時間変化を用いれば、姿勢検出部２２は、例えばユーザＵが操作入力装置１を前後方向に振る操作などを検出できる。このように、姿勢検出部２２は、Ｘ軸、Ｙ軸、及びＺ軸それぞれを回転中心とした回転（傾きの変化）だけでなく、Ｘ軸、Ｙ軸、及びＺ軸それぞれの方向に沿って操作入力装置１を移動させる操作についても検出し、当該移動の速度や加速度を算出して、表示画像更新部２３に対して出力してもよい。
【００４０】
表示画像更新部２３は、姿勢検出部２２による姿勢検出結果に応じて表示部１１に表示される表示画像を更新する処理を行う。具体的に、表示画像更新部２３は、姿勢パラメタ算出部２２ｂによって算出された姿勢パラメタの値を操作入力として用いて、表示画像を更新する。例えば表示画像更新部２３は、θｒ及びθｐの値に応じて特定される操作入力装置１の傾き方向及び傾き量に応じて、仮想３次元空間に配置されたユーザオブジェクトを移動させたり、仮想３次元空間に設定された視点位置を移動させたりする処理を実行する。そして、当該処理の結果を反映した画像を生成し、表示部１１に表示させる。これにより、操作入力装置１は、ユーザＵが操作入力装置１の姿勢を変化させる操作入力に応じて、例えばゲーム等のアプリケーションプログラムを実行し、その結果をユーザＵに提示できる。
【００４１】
なお、表示画像更新部２３は、姿勢パラメタの値に応じて実行した処理の結果とともに、撮像部１２によって撮像された撮像画像Ｉそのものを表示部１１内の一部領域に表示させることとしてもよい。あるいは、表示画像更新部２３は、画像解析部２２ａによる解析の結果（すなわち、撮像画像Ｉ内から特定されたユーザＵの顔位置Ｐｆや顔方向Ｄｆ等）を示す画像を表示部１１に表示させてもよい。こうすれば、ユーザＵは、自分が行った操作入力装置１の姿勢を変化させる操作入力の結果、撮像画像Ｉにどのような変化が生じたかを確認しながら、操作入力装置１の姿勢を変化させることができ、操作入力をしやすくなる。このとき、表示する撮像画像Ｉを左右反転したものにすれば、ユーザＵにとって操作入力装置１の姿勢変化に応じた顔位置Ｐｆの変化を直感的に把握しやすくなる。
【００４２】
以上の説明においては、操作入力装置１の基準姿勢は、基準顔位置Ｐｏが撮像画像Ｉの中心に一致するような予め定められた姿勢であることとしている。しかしながら、基準姿勢は、アプリケーションプログラムの実行開始時などに決定されてもよい。例えばユーザＵは、画面に表示される指示に従って、操作入力装置１を自分の好みの姿勢で把持した状態で操作部材１３を操作することとし、操作入力装置１は、この操作部材１３に対する操作があった時点における顔位置Ｐｆ及び顔方向Ｄｆを、基準顔位置Ｐｏ及び基準顔方向Ｄｏとして決定する。以降は、この基準顔位置Ｐｏに対する顔位置Ｐｆの変化や、基準顔方向Ｄｏに対する顔方向Ｄｆの変化によって、姿勢検出部２２は操作入力装置１の基準姿勢に対する変化を検出できる。
【００４３】
また、以上説明した姿勢検出処理を実行する際に、操作入力装置１を大きく傾けすぎると、ユーザＵの顔が撮像部１２の視野角から外に出てしまうこともあり得る。このような状態になると、姿勢検出部２２は撮像画像Ｉ内におけるユーザＵの顔の特定に失敗し、姿勢パラメタを算出できなくなる。このような場合、姿勢検出部２２は、ユーザＵの顔を特定できなくなる直前の撮像画像Ｉに基づいて検出された姿勢を、操作入力装置１が維持するものと仮定してもよい。すなわち、姿勢検出部２２は、次に撮像画像Ｉ内からユーザＵの顔の特定に成功するまで、最後に算出された姿勢パラメタの値を、そのまま表示画像更新部２３に対して出力し続けることとする。あるいは姿勢検出部２２は、ユーザＵの顔の特定に失敗した場合には、姿勢の変化を一旦リセットし、操作入力装置１の姿勢が基準姿勢に戻った場合と同様の姿勢パラメタを出力することとしてもよい。
【００４４】
以上説明した本実施の形態に係る操作入力装置１によれば、加速度センサ等の姿勢検出用センサを備えておらずとも、このようなセンサを用いた場合と同様の姿勢検出を、撮像部１２によって撮像された撮像画像Ｉを用いて実現できる。
【００４５】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば撮像部１２は、ＣＣＤカメラに限らず、例えば赤外線など可視光以外の光を検知するカメラや、複眼カメラなどであってもよい。このようなカメラを用いることで、操作入力装置１は、視差情報や、撮像画像Ｉ内の熱分布や距離分布などに関する情報を取得することができる。
【００４６】
また、以上の説明では、画像解析部２２ａは撮像画像Ｉに含まれるユーザＵの顔を顔認識処理によって特定することとしたが、必ずしも顔認識を行う必要はない。例えば画像解析部２２ａは、人物の輪郭線を特定することによって、撮像画像Ｉ内における人の頭部の位置や傾きを特定してもよい。この場合には、肩のラインの向きなどを用いることによって、撮像画像Ｉ内における頭部の傾きを精度よく判別することができる。また、画像解析部２２ａは、ユーザＵの顔の全体ではなく、その一部（例えば目や鼻など）の位置や向きを特定し、姿勢パラメタ算出部２２ｂは、当該特定された顔の一部の位置や向きに基づいて、姿勢パラメタの値を算出してもよい。
【００４７】
さらに、画像解析部２２ａが特定するのは、操作入力装置１を把持するユーザＵ以外の人物であってもよい。既に述べたように、撮像部１２のレンズは操作入力装置１の背面側に回転可能になっている。このように撮像部１２の撮像方向Ｄｃを操作入力装置１の背面側に向けた状態で、姿勢検出部２２は、ユーザＵ以外の人物を含む撮像画像Ｉを撮像し、その中に含まれる人物の位置や向きによって、操作入力装置１の姿勢を検出できる。なお、この場合には、操作入力装置１に対する撮像部１２の撮像方向Ｄｃがこれまで説明した例とは逆向きになるので、撮像画像Ｉ内における顔位置Ｐｆの左右方向の位置とロール角θｒとの関係が逆転する。また、顔方向Ｄｆの回転方向とヨー角θｙとの関係も逆転する。そのため、例えば姿勢検出部２２は、撮像部１２のレンズが背面側に向けられている場合、撮像画像Ｉを左右反転させてから画像の解析を行うなどの方法で、撮像方向Ｄｃの反転による影響を補正する。
【００４８】
また、姿勢検出部２２は、人物以外の被写体を特定し、その位置や向きに基づいて操作入力装置１の姿勢検出を行ってもよい。あるいは、撮像画像Ｉ内から特定された特徴点の移動や回転に基づいて、操作入力装置１の姿勢の変化を検出してもよい。
【００４９】
また、以上の説明においては、姿勢検出部２２は、回転角θｒ，θｐ及びθｙの値を算出し、姿勢パラメタとして表示画像更新部２３に出力することとしたが、これに限らず、他の姿勢を表すパラメタを算出してもよい。特に、加速度センサ等の姿勢検出用センサを備えた操作入力装置の代替として本実施形態に係る操作入力装置１を用いる場合、算出されたθｒ，θｐ及びθｙの値を、加速度センサ等の出力値として想定される値に変換してから、表示画像更新部２３に対して出力することとしてもよい。こうすれば、表示画像更新部２３がゲーム等のアプリケーションプログラムによって実現される場合に、この表示画像更新部２３の処理内容を従来のものから変更することなく、ユーザＵは、姿勢検出用センサを備えた操作入力装置を利用する場合も、本実施形態に係る操作入力装置１を利用する場合も、同様の操作で同様の処理を実行させることが可能となる。
【００５０】
ここで、例えば加速度センサの出力は、重力加速度が生じる鉛直方向と、操作入力装置１の向きと、の関係によって変化する。そのため、本実施形態に係る操作入力装置１を用いて加速度センサによる出力のエミュレーションを行う場合、鉛直方向が特定できなければ、完全に加速度センサの出力を再現することはできない。しかしながら、加速度センサの出力を用いた処理を実行するプログラムの中には、重力加速度との関係で特定された操作入力装置１の姿勢情報を、単に基準姿勢に対する相対的な傾きの情報や、傾きの時間変化の情報としてしか利用しないものもある。このようなプログラムでは、真の鉛直方向が操作入力装置１に対してどちらの方向かは問題とされない。そこで、姿勢検出部２２は、仮想的な重力方向を予め定められた方向に設定し、当該方向に重力が生じる場合の各基準軸に対する加速度を、θｒ，θｐ及びθｙの値を用いて算出し、算出された加速度の値を表示画像更新部２３に対して出力する。こうすれば、表示画像更新部２３を実現するプログラムの内容を変更せずに、加速度センサを内蔵した操作入力装置を用いた場合と同様の操作で、表示画像を更新させる処理が実現できる。
【００５１】
なお、このような姿勢検出用センサを備えた操作入力装置のエミュレーションを行う場合、本実施形態に係る操作入力装置１のどの方向に対する姿勢の変化を、姿勢検出用センサを備えた操作入力装置のどの方向に対する姿勢の変化に割り当てるかは、ユーザＵが自由に選択できることとしてもよい。例えば操作入力装置１は、当該操作入力装置１に設定されたＸ軸、Ｙ軸及びＺ軸それぞれを回転中心とした回転角θｒ，θｐ及びθｙのそれぞれを、ユーザＵの指定に応じて、姿勢検出用センサを備えた操作入力装置に設定されたＸ軸、Ｙ軸及びＺ軸のいずれかを回転中心とした回転角に割り当てることとする。こうすれば、ユーザＵは、操作入力装置１の形状に関係なく、自分が操作しやすい向きに操作入力装置１を傾けて、操作入力を行うことが可能となる。また、操作入力装置１は、画像解析部２２ａによって検出されたユーザＵの顔の向きや、アプリケーションプログラム等によって予め設定された条件に応じて、回転角θｒ，θｐ及びθｙのそれぞれを、エミュレーション対象となる操作入力装置の各基準軸を回転中心とした回転角に割り当ててもよい。例えばユーザが操作入力装置１を縦方向及び横方向のそれぞれで把持して使用することが想定される場合、操作入力装置１は、検出された顔の向きや、アプリケーションプログラムの指定に応じて、ユーザが当該操作入力装置１を縦向きに把持しているか横向きに把持しているかを判定する。そして、その判定結果に応じて、回転角の割り当てを変更する。こうすれば、ユーザは、縦向き及び横向きのいずれで操作入力装置１を把持した場合も、操作入力装置１の向きを意識せずに操作入力装置１を傾ける操作入力を行うことができる。
【００５２】
［第２実施形態］
以下、本発明の第２実施形態に係る情報処理装置３１を含んだ情報処理システムについて、図９を用いて説明する。第１実施形態では、操作入力装置１自体が撮像画像Ｉに基づいて操作入力装置１の姿勢検出を行うこととしたが、本実施形態では、操作入力装置３２と接続された別の情報処理装置３１が、操作入力装置３２の姿勢検出を行って、当該姿勢検出結果に応じた情報処理を実行する。
【００５３】
ここで、操作入力装置３２は例えば家庭用ゲーム機のコントローラであって、情報処理装置３１に対するユーザＵの操作入力に用いられる。情報処理装置３１は、例えば家庭用ゲーム機本体であって、操作入力装置３２を介したユーザＵの操作入力に応じて各種の処理を行い、処理結果をテレビ受像機等の表示装置３３の画面に表示させる。
【００５４】
図９の例では、操作入力装置３２の外面には撮像部３４が設けられている。また、操作入力装置３２は通信部３５を備えており、この通信部３５を介して撮像部３４によって撮像された撮像画像Ｉを情報処理装置３１に送信する。情報処理装置３１は、制御部３６と、記憶部３７と、通信部３８と、を含んで構成されており、制御部３６が記憶部３７に格納されたプログラムに従って情報処理を行う。また、通信部３８は操作入力装置３２の通信部３５との間でデータ通信を行う。
【００５５】
この例でも、情報処理装置３１の制御部３６は、前述した操作入力装置１の場合と同様の処理を実行することで、操作入力装置３２の姿勢を検出することができる。すなわち、制御部３６は、通信部３５及び通信部３８を介して、撮像部３４によって撮像された撮像画像Ｉを取得する。そして、取得した撮像画像Ｉの解析結果に基づいて、操作入力装置３２の姿勢を検出し、当該検出した姿勢に応じた処理を行う。
【符号の説明】
【００５６】
１  操作入力装置、１０  筐体、１１  表示部、１２  撮像部、１３  操作部材、１４  制御部、１５  記憶部、２１  撮像画像取得部、２２  姿勢検出部、２２ａ  画像解析部、２２ｂ  姿勢パラメタ算出部、２３  表示画像更新部、３１  情報処理装置、３２  操作入力装置、３３  表示装置、３４  撮像部、３５  通信部、３６  制御部、３７  記憶部、３８  通信部。
【図１】
0005437023.tif 000002
【図２】
0005437023.tif 000003
【図３】
0005437023.tif 000004
【図４】
0005437023.tif 000005
【図５Ａ】
0005437023.tif 000006
【図５Ｂ】
0005437023.tif 000007
【図６Ａ】
0005437023.tif 000008
【図６Ｂ】
0005437023.tif 000009
【図７Ａ】
0005437023.tif 000010
【図７Ｂ】
0005437023.tif 000011
【図８Ａ】
0005437023.tif 000012
【図８Ｂ】
0005437023.tif 000013
【図９】
0005437023.tif 000014