(57)【要約】【課題】簡易な構成にて入力を行うことが可能な入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法を提供する。【解決手段】可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含む。撮像手段が撮像した撮像画像を解析し、撮像画像の解析結果に基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する。そして、可搬型装置の姿勢および／または位置に応じた画像を生成する。【選択図】図３
2017041135.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが入力を行う可搬型装置を含む入力処理システムであって、
前記可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含み、
前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する算出手段と、
前記可搬型装置の姿勢および／または位置に応じた画像を生成する画像生成手段とを備える、入力処理システム。
【請求項２】
前記画像解析手段は、前記撮像画像において撮像されているユーザに対して１または複数の特徴点を抽出し、
前記算出手段は、前記撮像画像における前記特徴点の位置に基づいて、ユーザに対する前記可搬型装置の姿勢および／または位置を算出する、請求項１に記載の入力処理システム。
【請求項３】
前記特徴点は、前記撮像画像において撮像されているユーザの胴体に対して設定される複数のポイントを含み、
前記画像解析手段は、前記撮像画像において撮像されているユーザの胴体に対して、少なくとも複数の前記特徴点を抽出する、請求項２に記載の入力処理システム。
【請求項４】
前記画像解析手段は、前記撮像画像において撮像されているユーザの顔を抽出し、当該抽出された顔の位置を基準として当該撮像画像から前記胴体を抽出する、請求項３に記載の入力処理システム。
【請求項５】
前記特徴点は、前記撮像画像において撮像されているユーザの体幹に対して設定される１または複数のポイントを含み、
前記画像解析手段は、前記撮像画像において撮像されているユーザの体幹に対して、少なくとも１または複数の前記特徴点を抽出する、請求項２に記載の入力処理システム。
【請求項６】
前記画像解析手段は、前記撮像画像において撮像されているユーザが装着している所定の装着物上から、少なくとも前記特徴点を抽出する、請求項２に記載の入力処理システム。
【請求項７】
前記画像解析手段は、前記撮像画像において撮像されているユーザのシルエットを抽出し、
前記算出手段は、前記撮像画像におけるシルエットの位置および方向に基づいて、ユーザに対する前記可搬型装置の姿勢および／または位置を算出する、請求項１に記載の入力処理システム。
【請求項８】
前記画像解析手段は、前記撮像画像において撮像されているユーザを抽出し、
前記算出手段は、前記撮像画像において抽出されたユーザのサイズに応じて、ユーザと前記可搬型装置との間の距離を算出する、請求項１に記載の入力処理システム。
【請求項９】
前記算出手段は、前記可搬型装置を操作するユーザに対する当該可搬型装置の実空間における３次元位置と、当該３次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出する、請求項１乃至８の何れか１つに記載の入力処理システム。
【請求項１０】
前記算出手段は、前記可搬型装置を操作するユーザを基準として、当該可搬型装置の実空間における姿勢および／または位置を算出する、請求項１乃至９の何れか１つに記載の入力処理システム。
【請求項１１】
前記可搬型装置は、前記撮像手段とは別に、当該可搬型装置の動きや姿勢に応じて変化するデータを出力するデータ出力手段を、さらに含み、
前記算出手段は、前記撮像画像の解析結果および前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する、請求項１乃至１０の何れか１つに記載の入力処理システム。
【請求項１２】
前記算出手段は、前記撮像画像に前記可搬型装置を操作するユーザが撮像されていない場合、前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を補完する、請求項１１に記載の入力処理システム。
【請求項１３】
前記算出手段は、前記撮像画像の解析結果および前記データ出力手段が出力するデータに基づいて、実空間における重力方向を基準とした前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する、請求項１１に記載の入力処理システム。
【請求項１４】
前記算出手段は、前記撮像画像の解析結果および／または前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザの実空間における動きを算出し、当該ユーザの実空間における姿勢および／または位置を基準として当該ユーザに対する当該可搬型装置の姿勢および／または位置を算出する、請求項１１に記載の入力処理システム。
【請求項１５】
前記可搬型装置は、前記撮像手段、前記画像解析手段、および前記算出手段を含み、
前記可搬型装置は、前記画像生成手段を含む別の装置へ、前記算出手段が算出した前記可搬型装置の姿勢および／または位置を示すデータを無線送信する送信手段を、さらに含む、請求項１乃至１４の何れか１つに記載の入力処理システム。
【請求項１６】
ユーザが所定の姿勢で前記可搬型装置を操作する際の、当該ユーザに対する当該可搬型装置の姿勢および／または位置を設定する初期設定手段を、さらに備え、
前記算出手段は、前記設定された前記可搬型装置の姿勢および／または位置を基準として、当該ユーザに対する当該可搬型装置の姿勢および／または位置を算出する、請求項１乃至１５の何れか１つに記載の入力処理システム。
【請求項１７】
前記撮像手段は、ユーザが前記可搬型装置を把持して操作する際、当該ユーザの上半身が少なくとも撮像可能な位置に設けられる、請求項１乃至１６の何れか１つに記載の入力処理システム。
【請求項１８】
前記撮像手段は、前記可搬型装置の後端部に設けられる、請求項１７に記載の入力処理システム。
【請求項１９】
前記撮像手段は、前記可搬型装置の前端部に設けられる、請求項１７に記載の入力処理システム。
【請求項２０】
前記可搬型装置は、ユーザ入力可能な入力手段を、さらに含む、請求項１乃至１９の何れか１つに記載の入力処理システム。
【請求項２１】
前記入力手段は、ユーザが方向入力可能な方向指示手段である、請求項２０に記載の入力処理システム。
【請求項２２】
前記画像生成手段は、前記算出手段によって算出された前記可搬型装置の姿勢および／または位置に基づいてユーザが当該可搬型装置を用いてポインティングした位置を示す画像であって、所定の表示画面上に表示するための画像を生成する、請求項１乃至２１の何れか１つに記載の入力処理システム。
【請求項２３】
前記画像生成手段は、ユーザが前記可搬型装置を用いて指し示した位置を移動させた方向と同じ方向に、前記画像を移動させて前記表示画面に表示する、請求項２２に記載の入力処理システム。
【請求項２４】
複数のユーザがそれぞれ入力する複数の前記可搬型装置を含み、
前記撮像手段は、前記可搬型装置を操作するユーザ毎にそれぞれ撮像し、
前記画像解析手段は、前記撮像手段がそれぞれ撮像した撮像画像をそれぞれ解析し、
前記算出手段は、前記撮像画像の解析結果それぞれに基づいて、前記複数のユーザ毎に当該ユーザが操作する前記可搬型装置の姿勢および／または位置をそれぞれ算出する、請求項１乃至２３の何れか１つに記載の入力処理システム。
【請求項２５】
前記撮像手段は、ユーザが可搬型装置を操作する場合に当該ユーザが撮像範囲内となる当該可搬型装置内の位置に設置される、請求項１乃至２４の何れか１つに記載の入力処理システム。
【請求項２６】
前記可搬型装置は、前記画像解析手段、前記算出手段、および前記画像生成手段の少なくとも１つを、さらに含む、請求項１乃至２５の何れか１つに記載の入力処理システム。
【請求項２７】
ユーザが入力を行う可搬型の入力処理装置であって、
前記入力処理装置を操作するユーザの外観を撮像可能な撮像手段と、
前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
前記撮像画像の解析結果に基づいて、前記入力処理装置を操作するユーザに対する当該入力処理装置の姿勢および／または位置を算出する算出手段とを備える、入力処理装置。
【請求項２８】
ユーザが入力を行う可搬型装置に含まれるコンピュータで実行される入力処理プログラムであって、
前記可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を備え、
前記コンピュータを、
前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する算出手段として機能させる、入力処理プログラム。
【請求項２９】
ユーザが入力を行う入力処理方法であって、
可搬型装置を操作するユーザの外観を当該可搬型装置に設けられた撮像手段から撮像する撮像ステップと、
前記撮像ステップにおいて撮像された撮像画像を解析する画像解析ステップと、
前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する算出ステップとを含む、入力処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法に関し、特に例えば、可搬型装置を用いて入力を行うための入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法に関する。
【背景技術】
【０００２】
従来、光学式ポインティングデバイスを用いて仮想オブジェクトの操作を行うゲーム装置がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−７５３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に開示されたゲーム装置は、ユーザが操作するコントローラが撮像するためのマーカを設置する必要があった。
【０００５】
それ故に、本発明の目的は、より簡易な構成にて入力を行うことが可能な入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の入力処理システムの一構成例は、ユーザが入力を行う可搬型装置を含む。可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含む。入力処理システムは、画像解析手段、算出手段、および画像生成手段を備える。画像解析手段は、撮像手段が撮像した撮像画像を解析する。算出手段は、撮像画像の解析結果に基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出する。画像生成手段は、可搬型装置の姿勢および／または位置に応じた画像を生成する。
【０００８】
上記によれば、ユーザに対する可搬型装置の姿勢および／または位置は、可搬型装置から撮像されたユーザの外観の撮像画像に基づいて算出されるため、簡易な構成にて入力を行うことが可能となる。
【０００９】
また、上記画像解析手段は、撮像画像において撮像されているユーザに対して１または複数の特徴点を抽出してもよい。上記算出手段は、撮像画像における特徴点の位置に基づいて、ユーザに対する可搬型装置の姿勢および／または位置を算出してもよい。
【００１０】
上記によれば、ユーザが撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および／または位置を算出することができる。
【００１１】
また、上記特徴点は、撮像画像において撮像されているユーザの胴体に対して設定される複数のポイントを含んでもよい。上記画像解析手段は、撮像画像において撮像されているユーザの胴体に対して、少なくとも複数の特徴点を抽出してもよい。
【００１２】
上記によれば、相対的に動作が少ないユーザの胴体が撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および／または位置を算出することができる。
【００１３】
また、上記画像解析手段は、撮像画像において撮像されているユーザの顔を抽出し、当該抽出された顔の位置を基準として当該撮像画像から胴体を抽出してもよい。
【００１４】
上記によれば、撮像画像内における顔画像の位置に基づいて、胴体の画像を容易に抽出することができる。
【００１５】
また、上記特徴点は、撮像画像において撮像されているユーザの体幹に対して設定される１または複数のポイントを含んでもよい。上記画像解析手段は、撮像画像において撮像されているユーザの体幹に対して、少なくとも１または複数の特徴点を抽出してもよい。
【００１６】
上記によれば、相対的に動作が少ないユーザの体幹が撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および／または位置を算出することができる。
【００１７】
また、上記画像解析手段は、撮像画像において撮像されているユーザが装着している所定の装着物上から、少なくとも特徴点を抽出してもよい。
【００１８】
上記によれば、撮像画像から特徴点の抽出が容易となる。
【００１９】
また、上記画像解析手段は、撮像画像において撮像されているユーザのシルエットを抽出してもよい。上記算出手段は、撮像画像におけるシルエットの位置および方向に基づいて、ユーザに対する可搬型装置の姿勢および／または位置を算出してもよい。
【００２０】
上記によれば、撮像画像におけるユーザシルエットを用いて、当該ユーザに対する可搬型装置の姿勢および／または位置を算出することができる。
【００２１】
また、上記画像解析手段は、撮像画像において撮像されているユーザを抽出してもよい。上記算出手段は、撮像画像において抽出されたユーザのサイズに応じて、ユーザと可搬型装置との間の距離を算出してもよい。
【００２２】
上記によれば、撮像画像において撮像されているユーザのサイズに応じて、ユーザと可搬型装置との間の距離を容易に算出することができる。
【００２３】
また、上記算出手段は、可搬型装置を操作するユーザに対する当該可搬型装置の実空間における３次元位置と、当該３次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出してもよい。
【００２４】
上記によれば、可搬型装置の実空間における３次元位置と、当該３次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出することによって、可搬型装置の姿勢および位置を正確に管理することができる。
【００２５】
また、上記算出手段は、可搬型装置を操作するユーザを基準として、当該可搬型装置の実空間における姿勢および／または位置を算出してもよい。
【００２６】
上記によれば、ユーザを基準として可搬型装置の実空間における姿勢および／または位置を算出することによって、ユーザを基準とした可搬型装置の姿勢および／または位置に基づいた処理を容易に行うことができる。
【００２７】
また、上記可搬型装置は、データ出力手段を、さらに含んでもよい。データ出力手段は、撮像手段とは別に、当該可搬型装置の動きや姿勢に応じて変化するデータを出力する。この場合、上記算出手段は、撮像画像の解析結果およびデータ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出してもよい。
【００２８】
上記によれば、可搬型装置の姿勢および／または位置をより正確に算出することができる。
【００２９】
また、上記算出手段は、撮像画像に可搬型装置を操作するユーザが撮像されていない場合、データ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を補完してもよい。
【００３０】
上記によれば、ユーザが撮像されていない場合であっても、可搬型装置の姿勢および／または位置を算出することができる。
【００３１】
また、上記算出手段は、撮像画像の解析結果およびデータ出力手段が出力するデータに基づいて、実空間における重力方向を基準とした可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および／または位置を算出してもよい。
【００３２】
上記によれば、実空間の重力方向を基準とした可搬型装置の姿勢および／または位置を算出することができる。
【００３３】
また、上記算出手段は、撮像画像の解析結果および／またはデータ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザの実空間における動きを算出し、当該ユーザの実空間における姿勢および／または位置を基準として当該ユーザに対する当該可搬型装置の姿勢および／または位置を算出してもよい。
【００３４】
上記によれば、実空間内でユーザが移動したり姿勢を変えたりした場合であっても、可搬型装置の姿勢および／または位置を算出することができる。
【００３５】
また、上記可搬型装置は、撮像手段、画像解析手段、および算出手段を含んでもよい。上記可搬型装置は、送信手段を、さらに含んでもよい。送信手段は、画像生成手段を含む別の装置へ、算出手段が算出した可搬型装置の姿勢および／または位置を示すデータを無線送信する。
【００３６】
上記によれば、可搬型装置と別の装置とが無線接続されるため、可搬型装置を用いた操作が容易となる。
【００３７】
また、上記入力処理システムは、初期設定手段を、さらに備えてもよい。初期設定手段は、ユーザが所定の姿勢で可搬型装置を操作する際の、当該ユーザに対する当該可搬型装置の姿勢および／または位置を設定する。上記算出手段は、設定された可搬型装置の姿勢および／または位置を基準として、当該ユーザに対する当該可搬型装置の姿勢および／または位置を算出してもよい。
【００３８】
上記によれば、ユーザが所定の姿勢で可搬型装置を操作した場合に可搬型装置の姿勢および／または位置が初期設定されることによって、可搬型装置の姿勢および／または位置を正確に算出できるとともに、当該初期設定を容易に行うことができる。
【００３９】
また、上記撮像手段は、ユーザが可搬型装置を把持して操作する際、当該ユーザの上半身が少なくとも撮像可能な位置に設けられてもよい。
【００４０】
上記によれば、ユーザの上半身が撮像された撮像画像を用いることによって、可搬型装置の姿勢および／または位置をより正確に算出することができる。
【００４１】
また、上記撮像手段は、可搬型装置の後端部に設けられてもよい。
【００４２】
上記によれば、可搬型装置を操作するユーザの外観を当該可搬型装置から撮像可能となる。
【００４３】
また、上記撮像手段は、可搬型装置の前端部に設けられてもよい。
【００４４】
上記によれば、可搬型装置を操作するユーザの外観を当該可搬型装置から撮像可能となる。
【００４５】
また、上記可搬型装置は、ユーザ入力可能な入力手段を、さらに含んでもよい。
【００４６】
上記によれば、可搬型装置本体の姿勢を変化させたりや可搬型装置本体を移動させたりする操作だけでなく、当該可搬型装置に設けられた入力手段を用いた操作も可能となる。
【００４７】
また、上記入力手段は、ユーザが方向入力可能な方向指示手段であってもよい。
【００４８】
上記によれば、可搬型装置本体の姿勢を変化させたりや可搬型装置本体を移動させたりする操作だけでなく、当該可搬型装置に設けられた方向指示手段を用いた操作も可能となる。
【００４９】
また、上記画像生成手段は、算出手段によって算出された可搬型装置の姿勢および／または位置に基づいてユーザが当該可搬型装置を用いてポインティングした位置を示す画像であって、所定の表示画面上に表示するための画像を生成してもよい。
【００５０】
上記によれば、可搬型装置を用いたポインティング操作が可能となる。
【００５１】
また、上記画像生成手段は、ユーザが可搬型装置を用いて指し示した位置を移動させた方向と同じ方向に、画像を移動させて表示画面に表示してもよい。
【００５２】
上記によれば、可搬型装置を用いて直感的なポインティング操作が可能となる。
【００５３】
また、上記入力処理システムは、複数のユーザがそれぞれ入力する複数の可搬型装置を含んでもよい。この場合、上記撮像手段は、可搬型装置を操作するユーザ毎にそれぞれ撮像してもよい。上記画像解析手段は、撮像手段がそれぞれ撮像した撮像画像をそれぞれ解析してもよい。上記算出手段は、撮像画像の解析結果それぞれに基づいて、複数のユーザ毎に当該ユーザが操作する可搬型装置の姿勢および／または位置をそれぞれ算出してもよい。
【００５４】
上記によれば、複数の可搬型装置を同時に用いた入力処理が可能となる。
【００５５】
また、上記撮像手段は、ユーザが可搬型装置を操作する場合に当該ユーザが撮像範囲内となる当該可搬型装置内の位置に設置されてもよい。
【００５６】
上記によれば、可搬型装置から見た当該可搬型装置を操作するユーザを容易に撮像することができる。
【００５７】
また、上記可搬型装置は、画像解析手段、算出手段、および画像生成手段の少なくとも１つを、さらに含んでもよい。
【００５８】
上記によれば、可搬型装置内における処理負担を増やすことができ、他の装置における処理を軽減することができる。
【００５９】
また、本発明は、入力処理装置、入力処理プログラム、および入力処理方法の形態で実施されてもよい。
【発明の効果】
【００６０】
本発明によれば、ユーザに対する可搬型装置の姿勢および／または位置は、可搬型装置から撮像されたユーザの外観の撮像画像に基づいて算出されるため、簡易な構成にて入力を行うことが可能となる。
【図面の簡単な説明】
【００６１】
【図１】据置型の情報処理装置２および可搬型の端末装置３を含む入力処理システム１を用いてユーザが入力している様子の一例を示す図
【図２】端末装置３の上面後方から見た一例を示す斜視図
【図３】端末装置３を把持して操作している様子の一例を端末装置３の左側面方向から見た図
【図４】情報処理装置２および端末装置３を含む入力処理システム１の一例を示すブロック図
【図５】端末装置３によって指し示す位置にポインタ画像ＰＩが表示される様子の一例を示す図
【図６】図５の状態の端末装置３の撮像部３２によって撮像される撮像画像の一例を示す図
【図７】図５の位置から動かされた端末装置３によって指し示す位置にポインタ画像ＰＩが表示される様子の一例を示す図
【図８】図７の状態の端末装置３の撮像部３２によって撮像される撮像画像の一例を示す図
【図９】端末装置３で撮像された撮像画像を用いた入力処理の一例を説明するための図
【図１０】実空間におけるユーザを基準として算出される丹間当装置３の位置および姿勢の一例を示す図
【図１１】端末装置３およびモニタ４に表示される画像の他の例を示す図
【図１２】端末装置３のメモリ３７に記憶される主なデータおよびプログラムの一例を示す図
【図１３】端末装置３（ＣＰＵ３６）において実行される入力処理の一例を示すフローチャート
【図１４】情報処理装置２のメモリ２２に記憶される主なデータおよびプログラムの一例を示す図
【図１５】情報処理装置２（ＣＰＵ２１）において実行される入力処理の一例を示すフローチャート
【発明を実施するための形態】
【００６２】
図１を参照して、本実施形態の一例に係る入力処理プログラムを実行する端末装置および当該端末装置を含む入力処理システムについて説明する。なお、図１は、据置型の情報処理装置２および可搬型の端末装置３を含む入力処理システム１を用いてユーザが入力している様子の一例を示す図である。
【００６３】
情報処理装置２は、例えば据置型のゲーム装置で構成される。そして、情報処理装置２は、端末装置３およびモニタ４を含む入力処理システム１を構成している。本実施形態における情報処理装置２は、画像を生成して表示装置（例えば、モニタ４）に表示するものである。情報処理装置２は、パーソナルコンピュータ、ゲーム装置、携帯端末、スマートフォン等、どのような形態の情報処理装置であってもよい。情報処理装置２は、端末装置３と通信可能である。情報処理装置２と端末装置３との通信は、有線であってもよいし無線であってもよい。また、情報処理装置２とモニタ４との接続についても、有線であってもよいし無線であってもよい。
【００６４】
情報処理装置２においては、端末装置３に対する入力に応じて情報処理装置２が情報処理を実行し、実行の結果得られた画像がモニタ４に表示される。このように、本実施形態においては、入力機能、情報処理機能、および表示機能が複数の装置によって実現される構成を用いているが、他の実施形態においては、これらの機能を有する単一の情報処理装置（例えば携帯型あるいは可搬型の情報処理装置）で構成されてもよい。また、他の実施形態においては、情報処理装置２や端末装置３の機能が複数の装置によって実現されてもよい。例えば、他の実施形態においては、情報処理装置２や端末装置３において実行される処理の少なくとも一部が、ネットワーク（広域ネットワークおよび／またはローカルネットワーク）によって通信可能な複数の装置によって分散して実行されてもよい。
【００６５】
図１に示すように、入力処理システム１で端末装置３を用いて操作するためには、ユーザは、一方の手（例えば、右手）で端末装置３を把持する。そして、ユーザは、一例として端末装置３の前端面をモニタ４の表示画面に向けて当該端末装置３で指し示すように操作することによって、当該表示画面上の位置をポインティングする。このようにモニタ４の表示画面を端末装置３によって指し示す操作が行われることによって、当該指し示された位置にポインタ画像ＰＩが表示される。なお、後述により明らかとなるが、端末装置３の後端部（例えば、後端面）に撮像部が設けられており、当該撮像部によって端末装置３を操作するユーザが撮像される。そして、端末装置３は、上記撮像部によって撮像されたユーザの撮像画像に基づいて、端末装置３を操作するユーザに対する端末装置３の位置および姿勢を算出し、当該位置および姿勢を示すデータを情報処理装置２へ無線送信する。一方、情報処理装置２は、端末装置３の位置および姿勢を示す受信データに基づいて、端末装置３が指し示しているモニタ４の表示画面上の位置を算出し、当該位置にポインタ画像ＰＩが表示されるように表示制御する。
【００６６】
次に、図２および図３を用いて、端末装置３について説明する。なお、図２は、端末装置３の上面後方から見た一例を示す斜視図である。図３は、端末装置３を把持して操作している様子の一例を端末装置３の左側面方向から見た図である。
【００６７】
端末装置３は、無線コントローラモジュールを内蔵する情報処理装置２へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて端末装置位置データ、端末装置姿勢データ、および操作データ等を含む端末データを無線送信する。端末装置３は、主にモニタ４の表示画面をポインティングする操作をしたり、当該表示画面に表示されるプレイヤオブジェクト等を操作したりするための操作手段として機能する。端末装置３は、片手で把持可能な程度の大きさのハウジング３１と、ハウジング３１の表面に露出して設けられた複数個の操作ボタン（方向指示部３３等を含む）とが設けられている。また、端末装置３は、端末装置３から当該端末装置３を操作するユーザを撮像するための撮像部３２を備えている。なお、端末装置３は、情報処理装置２の無線コントローラモジュールから無線送信された送信データを通信部３９（後述）で受信して、当該送信データに応じた音や振動を発生させてもよい。
【００６８】
ここで、説明を具体的にするために、端末装置３に対して設定する座標系について定義する。図２および図３に示すように、互いに直交するｘｙｚ軸を端末装置３に対して定義する。具体的には、端末装置３の前後方向となる端末装置３の長手方向をｚ軸とし、端末装置３の前面方向をｚ軸正方向とする。また、端末装置３の上下方向をｙ軸とし、ハウジング３１の上面方向をｙ軸正方向とする。さらに、端末装置３の左右方向をｘ軸とし、ハウジング３１の右側面（図２では表されて図３で表されていない側面）方向をｘ軸正方向とする。
【００６９】
ハウジング３１は、その前後方向（ｚ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ハウジング３１上面（ｙ軸正方向側の主面）の中央前面側（ｚ軸正方向側）に、方向指示部３３が設けられる。一例として、方向指示部３３は、十字型の４方向プッシュスイッチ（十字キー）であり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。ユーザが方向指示部３３の何れかの操作部分を押下することによって上下左右（前後左右）何れかの方向を選択される。例えば、ユーザが方向指示部３３を操作することによって、仮想世界に登場するオブジェクト等の移動方向を指示したり、複数の選択肢から選択する指示をしたりすることができる。
【００７０】
なお、図２を用いて例示した方向指示部３３は、ユーザの方向入力操作に応じて操作信号を出力する十字キーであるが、他の態様の操作部でもよいし、他の態様の操作部をさらに備えていてもよい。例えば、方向指示部３３は、十字方向に４つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部でもよい。また、方向指示部３３は、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部でもよい。また、方向指示部３３は、ハウジング３１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部でもよい。さらに、方向指示部３３は、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部でもよい。また、方向指示部３３は、タッチパッドでもよい。
【００７１】
ハウジング３１後端部（例えば、後面（ｚ軸負方向側の面））には、撮像部３２の一部を構成する撮像素子が設けられる。図３に示すように、撮像部３２が撮像可能な撮像範囲は、一例としてｚ軸負方向を中心とする相対的に広角であり、端末装置３を操作するユーザの全身を撮像することが可能な範囲であってもよい。なお、撮像部３２の撮像方向は、ｚ軸負方向と一致していてもよいし、ｚ軸負方向とｙ軸正方向との間となる方向でもよいし、ｚ軸負方向から所定角度ずれた方向でもよい。端末装置３は、撮像部３２が撮像した画像データを解析して得られる撮像画像内のユーザ位置に基づいて、当該ユーザに対する実空間における端末装置３の位置および姿勢等を検出するためのシステムを有しており、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速な端末装置３の動きでも追跡して解析することができる。撮像部３２は、後述するＣＰＵ３６と接続されており、所定のサンプリング周期またはＣＰＵ３６の指示にしたがって画像を撮像し、撮像した画像データをＣＰＵ３６に出力する。撮像部３２は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）とレンズとを含み、ＲＧＢカメラや距離カメラ、ＩＲカメラ（赤外線カメラ）等で構成されてもよい。
【００７２】
次に、図４を参照して、情報処理装置２および端末装置３を含む入力処理システム１について説明する。なお、図４は、情報処理装置２および端末装置３を含む入力処理システム１の一例を示すブロック図である。
【００７３】
図４に示すように、情報処理装置２は、ＣＰＵ２１、メモリ２２、プログラム記憶部２３、および通信部２４を備える。ＣＰＵ２１は、メモリ２２を用いて所定の情報処理プログラムを実行することによって、例えば端末装置３によって指し示された位置を示すポインタ画像ＰＩをモニタ４に表示させたり、プレイヤオブジェクトが登場する仮想世界の画像をモニタ４に表示させたりする表示制御処理を実行する。なお、情報処理装置２は、情報処理を実行することができればどのような構成であってもよく、例えば情報処理の一部または全部が専用回路によって実行されてもよい。
【００７４】
プログラム記憶部２３は、上記情報処理プログラムを記憶する。プログラム記憶部２３は、ＣＰＵ２１がアクセス可能な任意の記憶装置である。プログラム記憶部２３は、例えばハードディスク等の、情報処理装置２に内蔵される記憶部であってもよいし、例えば光ディスク等の、情報処理装置２に着脱可能な記憶部であってもよい。また、プログラム記憶部２３は、ＣＰＵ２１とネットワークを介して接続される記憶装置（サーバ等）であってもよい。ＣＰＵ２１は、プログラムの一部または全部を適宜のタイミングでメモリ２２に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００７５】
通信部２４は、端末装置３との間で無線通信する無線コントローラモジュールとして機能し、端末装置位置データ、端末装置姿勢データ、および操作データ等を含む端末データを端末装置３から繰り返し受信する。
【００７６】
端末装置３は、ユーザの操作を受け付け、ユーザの操作を表す操作データを生成する入力部として、操作部（方向指示部）３３の他に、加速度センサ３４およびジャイロセンサ３５を備えている。加速度センサ３４およびジャイロセンサ３５は、端末装置３の動きや姿勢を算出するためのセンサの一例である。例えば、端末装置３は、３軸の加速度センサ３４を備えていてもよい。３軸の加速度センサ３４は、３方向、すなわち、上下方向（図２に示すｙ軸）、左右方向（図２に示すｘ軸）、および前後方向（図２に示すｚ軸）それぞれに生じる直線加速度を検知する。また、端末装置３は、３軸のジャイロセンサ３５を備えていてもよい。３軸の加速度センサ３５は、３方向周り、すなわち、上下方向周り（図２に示すｙ軸周り）、左右方向周り（図２に示すｘ軸周り）、および前後方向周り（図２に示すｚ軸周り）それぞれに生じる角速度を検知する。なお、端末装置３の動きや姿勢を算出するためのセンサとして、磁気センサを備えていてもよい。
【００７７】
端末装置３は、ＣＰＵ３６、メモリ３７、プログラム記憶部３８、および通信部３９を備える。ＣＰＵ３６は、メモリ３７を用いて入力処理プログラムを実行することによって、撮像部３２によって撮像されたユーザの撮像画像を用いて、端末装置３を操作するユーザに対する端末装置３の位置および姿勢を算出する入力処理を実行する。また、ＣＰＵ３６は、加速度センサ３４が検出した加速度およびジャイロセンサ３５が検出した角速度を用いて、上記端末装置３の位置および姿勢を補完する処理を行うこともある。なお、端末装置３は、上記入力処理を実行することができればどのような構成であってもよく、例えば入力処理の一部または全部が専用回路によって実行されてもよい。
【００７８】
プログラム記憶部３８は、上記入力処理プログラムを記憶する。プログラム記憶部３８は、ＣＰＵ３６がアクセス可能な任意の記憶装置である。プログラム記憶部３８は、端末装置３に着脱可能な記憶部であってもよい。また、プログラム記憶部３８は、ＣＰＵ３６とネットワークを介して接続される記憶装置（サーバ等）であってもよい。ＣＰＵ３６は、プログラムの一部または全部を適宜のタイミングでメモリ３７に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００７９】
通信部３９は、情報処理装置２との間で無線通信する無線コントローラモジュールとして機能し、操作部３３、加速度センサ３４、およびジャイロセンサ３５の少なくとも１つによって生成された操作データ、上記ユーザに対する端末装置３の位置を示す端末装置位置データ、および上記ユーザに対する端末装置３の姿勢を示す端末装置姿勢データ等（以下、端末データと記載する）を、情報処理装置２へ送信する。上記端末データは、例えば一定時間に１回の割合で繰り返し、端末装置３から情報処理装置２へ送信される。情報処理装置２は、端末データを入力として用いて上記情報処理を実行する。
【００８０】
モニタ４は、生成された画像を表示し生成された音声を出力する表示装置の一例である。モニタ４は、情報処理装置２から送信されるデータを取得可能である。情報処理装置２において生成された画像がモニタ４へ出力されてくると、モニタ４は当該画像を表示する。
【００８１】
なお、本実施形態においては、表示装置と入力装置とが一体となった端末装置３を用いているが、他の実施形態においては、表示装置と入力装置とが別体として設けられてもよい。この場合、端末装置３が入力装置のみとして機能し、情報処理装置２は、モニタ４のみに画像を表示させてもよい。
【００８２】
次に、図５〜図１１を参照して、本実施形態における入力処理の概要について説明する。なお、図５は、端末装置３によって指し示す位置にポインタ画像ＰＩが表示される様子の一例を示す図である。図６は、図５の状態の端末装置３の撮像部３２によって撮像される撮像画像の一例を示す図である。図７は、図５の位置から動かされた端末装置３によって指し示す位置にポインタ画像ＰＩが表示される様子の一例を示す図である。図８は、図７の状態の端末装置３の撮像部３２によって撮像される撮像画像の一例を示す図である。図９は、端末装置３で撮像された撮像画像を用いた入力処理の一例を説明するための図である。図１０は、実空間におけるユーザを基準として算出される丹間当装置３の位置および姿勢の一例を示す図である。図１１は、端末装置３およびモニタ４に表示される画像の他の例を示す図である。
【００８３】
図５および図６において、端末装置３を操作するユーザは、当該端末装置３を用いてモニタ４の表示画面の中央のポインティング位置を指し示すように操作している。このとき、端末装置３の後端部に設けられた撮像部３２は、表示画面をポインティングしている逆方向を撮像することになるため、当該ポインティング操作しているユーザの前方から当該ユーザを撮像することになる。図６の例では、撮像部３２は、撮像画像のほぼ中央にユーザの上半身を撮像している。この場合、端末装置３のＣＰＵ３６は、上記撮像画像に撮像されているユーザの撮像位置、撮像方向、撮像サイズ等に基づいて、実空間におけるユーザを基準とした端末装置３の位置および当該位置における端末装置３の姿勢を算出して、当該端末装置３の位置および姿勢を示すデータを情報処理装置２へ送信する。そして、情報処理装置２は、取得した端末装置３の位置および姿勢を示すデータを用いて、端末装置３が指し示している表示画面上の位置を算出し、当該位置にポインタ画像ＰＩが表示されるように表示制御する。
【００８４】
図５における端末装置３の状態からユーザが右（図５に示す矢印方向）へ平行移動させるポインティング操作を想定する。この場合、図７に示すように、端末装置３がモニタ４の表示画面に向かって右へ平行移動し、ユーザに対しても端末装置３が右へ平行移動することになる。したがって、端末装置３の後端部に設けられた撮像部３２がユーザを撮像する視点が、図５の位置に対してユーザから右方向へ移動した位置となるため、結果的に図８に示すように撮像画像のほぼ中央から右側へ移動したユーザの上半身を撮像することになる。つまり、ユーザが端末装置３を右側に平行移動させた場合、撮像部３２で撮像される撮像画像におけるユーザ画像の位置も右側に移動する。このような撮像画像内におけるユーザ画像の位置変化を検出することによって、端末装置３が指し示している位置の変化を算出することができる。図７に示すように、当該例では、端末装置３がモニタ４の表示画面に向かって右へ平行移動したため、端末装置３を用いて指し示すポインティング位置も向かって右へ移動して、ポインタ画像ＰＩも向かって右へ移動して表示されることになる。
【００８５】
上述した例は、端末装置３が実空間内でユーザに対して左右に平行移動する例であったために、撮像画像内でユーザ画像が移動する位置変化となるが、端末装置３が他の移動態様で移動した場合であっても端末装置３の実空間における位置や姿勢を上記撮像画像から算出することができる。例えば、端末装置３がユーザに対して回転移動した場合、端末装置３の後端部に設けられた撮像部３２がユーザを見る方向が変化するため、上記撮像画像においてユーザが撮像されている方向が変化する。したがって、撮像画像内においてユーザが撮像されている方向の変化を検出することによって、端末装置３が指し示している方向の変化を算出することができる。
【００８６】
また、端末装置３とユーザとの距離が変化するように端末装置３が移動した場合、端末装置３の後端部に設けられた撮像部３２とユーザとの距離が変化するため、上記撮像画像におけるユーザ画像のサイズが変化する。したがって、撮像画像内におけるユーザ画像のサイズの変化を検出することによって、端末装置３とユーザとの距離の変化を算出することができる。
【００８７】
実際にユーザが端末装置３を操作する場合、上述した移動態様が組み合わせられた状態となることが考えられる。このような移動態様の場合であっても、上記撮像画像におけるユーザの位置、ユーザが撮像されている方向、およびユーザが撮像されているサイズを同時に検出することによって、複雑な移動態様で移動する端末装置３の動きでも追跡して解析することができる。
【００８８】
なお、撮像部３２は、端末装置３からユーザへの方向を撮像するため、ポインティング操作中は当該ポインティングしている表示画面を撮像することができないため、当該表示画面と端末装置３との位置関係が不明となることが考えられる。本実施例では、上記表示画面、ユーザ、および端末装置３との間の位置関係が予め定められた位置関係になった状態で初期設定し、当該初期設定状態からの撮像画像の変化に基づいて、端末装置３の位置変化および姿勢変化を算出して、上記位置関係を逐次算出する。例えば、上記初期設定においては、表示および／または音声によって所定の姿勢で端末装置３を操作するようにユーザに促す報知を行い、当該報知後に撮像画像におけるユーザ画像の変化や端末装置３に生じる加速度や角速度が安定したことに応じて、上記予め定められた位置関係になったと仮定して以降の入力処理を行ってもよい。
【００８９】
また、上述した例では、端末装置３のハウジング３１後端部に撮像部３２が設けられる例を用いたが、撮像部３２は他の位置に設けられてもよい。例えば、撮像部３２は、端末装置３のハウジング３１前端部から突出した部材内に設けられ、当該部材内から端末装置３を操作するユーザを撮像するように構成されてもよい。また、撮像部３２は、端末装置３のハウジング３１の左端部、右端部、上面、下面等、端末装置３を操作するユーザを撮像可能な位置であれば、他の位置に設けられてもよい。
【００９０】
また、撮像部３２によって撮像された撮像画像だけでなく、他のデータを組み合わせてユーザに対する端末装置３の位置および姿勢を算出することも考えられる。例えば、上述したように、端末装置３には端末装置３の動きや姿勢を算出するためのセンサ（加速度センサ３４およびジャイロセンサ３５）が内蔵されている。例えば、加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて算出された端末装置３の位置および姿勢を用いて、上記撮像画像によって算出された端末装置３の位置および姿勢を補完することが考えられる。第１の例として、ユーザに対する端末装置３の位置を上記撮像画像に基づいて算出し、ユーザに対する端末装置３の姿勢を加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて算出することが考えられる。第２の例として、上記撮像画像内にユーザが撮像されていない場合、ユーザに対する端末装置３の位置および姿勢を加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて算出して補完することが考えられる。第３の例として、上記撮像画像に基づいて算出されたユーザに対する端末装置３の位置および姿勢と、加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて算出されたユーザに対する端末装置３の位置および姿勢との両方を用いて、正確であると推定される方を用いたり、両方の平均を用いたりすることが考えられる。第４の例として、加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて実空間におけるユーザの動作を算出し、当該動作後のユーザの位置および姿勢を基準として、当該動作後のユーザに対する端末装置３の位置を上記撮像画像に基づいて算出することが考えられる。なお、上述した補完の例の少なくとも２つを組み合わせてユーザに対する端末装置３の位置および姿勢を算出してもよいことは言うまでもない。また、加速度センサ３４および／またはジャイロセンサ３５によって検出された加速度および／または角速度に基づいて算出された端末装置３の位置および姿勢を用いて、上記撮像画像によって算出された端末装置３の位置および姿勢を補完する例を用いたが、端末装置３に設けられた磁気センサによって検出されたデータに基づいて算出された端末装置３の位置および姿勢を用いて、上記撮像画像によって算出された端末装置３の位置および姿勢を補完してもよい。
【００９１】
次に、図９を参照して、端末装置３で撮像された撮像画像においてユーザ画像の変化を検出する一例について説明する。本実施例では、撮像画像内に撮像されているユーザ画像に対して複数の特徴点を抽出し、当該特徴点を追跡することによって当該撮像画像内におけるユーザ画像の変化を検出する。
【００９２】
図９において、端末装置３の撮像部３２で撮像された撮像画像に当該端末装置３を操作するユーザが撮像されている場合、当該ユーザの画像（ユーザ画像）に対して画像解析が行われる。当該画像解析の第１段階として、上記撮像画像内のユーザ画像から端末装置３を操作するユーザの顔を示す顔画像を抽出する（図９（Ａ））。ここで、上記撮像画像から顔画像を抽出する技術は、既存の顔検出技術を用いればよい。
【００９３】
上記画像解析の第２段階として、上記抽出された顔画像の位置に基づいて、上記ユーザ画像における他の体部分を推定する処理を行う（図９（Ｂ））。例えば、上記ユーザ画像において、端末装置３を操作するユーザの胴体を示す胴体画像は、上記抽出された顔画像の下方向に撮像されているはずであり、当該位置関係に基づいてユーザの体部分画像（ここでは、胴体画像）を推定する。なお、上述した処理手順では、抽出されたユーザの顔画像との撮像位置関係に基づいて胴体画像を推定しているが、他の方法を用いて、ユーザの胴体画像を推定してもかまわない。例えば、後述するユーザのシルエットを検出する方法を用いて、当該ユーザの胴体を示す画像を上記撮像画像内から推定してもかまわない。
【００９４】
上記画像解析の第３段階として、端末装置３を操作するユーザの胴体が撮像された画像として推定された上記胴体画像から、複数の特徴点を抽出する（図９（Ｃ））。ここで、上記特徴点は、端末装置３とユーザとの相対位置を算出するために用いる上記撮像画像におけるポイントであり、一例として上記胴体画像内から複数設定される。例えば、上記特徴点は、撮像画像内のエッジや特定色等、当該撮像画像内をトラッキングするために他の画像と区別可能な情報量を有するポイントから設定される。また、上記特徴点は、上記撮像画像内における背景を除いたユーザ画像内から設定されるが、特にユーザの身体部位の中でも相対的に動きが少ない体幹（例えば、胴体部分）を示す画像内から設定される。また、上記特徴点は、端末装置３の撮像部３２に対してオクルージョン（隠れ）が発生した場合であっても、複数の特徴点のうち少なくとも一部の特徴点が撮像されるように、相対的に広い範囲の画像内から設定される。本実施例では、上記第１段階で抽出されたユーザの顔画像の位置および大きさを基準として、当該ユーザの胴体に対応する領域を抽出し、当該領域を中心としてトラッキングに適した複数の特徴点候補を抽出する。そして、特徴点候補からユーザの体の中心線に沿ったものを優先的に選択して、トラッキングに用いる上記複数の特徴点を決定している。
【００９５】
なお、上記特徴点は、１つ抽出してもよい。また、上記特徴点は、胴体画像から抽出するだけでなく、ユーザ画像内においてほぼ剛体のように見なせる部分（例えば、変形しない部分）から抽出してもよい。一例として、ユーザの頭部が撮像された画像として推定された頭部画像から上記特徴点を抽出してもよい。この場合、上記抽出された顔部分の画像を直接用いた特徴点の抽出が可能となるため、上述した胴体部分を推定する処理が不要となる。
【００９６】
また、ユーザが身につける服装や装着物が予め設定されている場合、当該服装のテクスチャーデータや当該装着物における少なくとも一部の外観を示す外観データ等を予め用意して、これらのテクスチャーデータや外観データと類似する画像を上記特徴点として抽出してもよい。また、ユーザが予め定められたマーカを身体に貼り付けたり身につけたりする場合、当該マーカが撮像されている撮像領域を特徴点として設定してもかまわない。上記マーカを用いる場合、上記第１段階〜上記第３段階における画像解析処理の一部又は全部が不要となることもある。
【００９７】
上記画像解析の第４段階として、上記撮像画像のフレーム毎に上記特徴点を追跡する（図９（Ｄ））。なお、上記特徴点を追跡する際には、人間の動きの速さの限界および撮像部３２のフレームレートを考慮して、上記撮像画像内から上記特徴点を探索する探索範囲を絞り込むことによって、特徴点追跡のための処理負荷を軽減させてもよい。また、上記第１段階〜第３段階における画像解析を適宜行って上記特徴点の追跡をサポートすることによって、上記特徴点の追跡を正確に行ってもよい。
【００９８】
上述した画像解析を行うことによって上記撮像画像のフレーム毎に上記特徴点の位置を抽出し、当該撮像画像のフレーム毎に当該特徴点の移動量を算出して、実空間における端末装置３の位置および姿勢を算出する。例えば、図１０に示すような、実空間における端末装置３を操作するユーザを基準とする３次元座標空間を用いて、端末装置３の位置および姿勢を算出してもよい。一例として、端末装置３を操作するユーザの左右水平方向をＸ軸方向（右方向をＸ軸正方向）とし、当該ユーザの鉛直方向をＹ軸方向（上方向をＹ軸正方向）とし、当該ユーザの前後方向をＺ軸方向（前方向をＺ軸正方向）とする座標系を実空間に設定し、当該座標系に基づいて端末装置３の位置を算出する。また、端末装置３に対して設定されているｘｙｚ軸方向（図２参照）の向きを上記座標系において算出し、ｘｙｚ軸方向それぞれの向き（例えば、実空間における端末装置３のロール、ピッチ、およびヨー方向の姿勢）を端末装置３の姿勢として算出する。
【００９９】
なお、上述したように、撮像部３２によって撮像された撮像画像だけでなく、端末装置３の動きや姿勢を算出するためのセンサ（加速度センサ３４および／またはジャイロセンサ３５）から得られるデータを用いて、上記座標系における位置および姿勢を補完してもよい。
【０１００】
また、上述したように、上記座標系における端末装置３の初期位置および初期姿勢は、所定の姿勢で端末装置３を操作するようにユーザに促す報知を行うことに応じて設定してもよい。例えば、ユーザの正面に端末装置３を把持する腕を差し出して当該端末装置３の前面を前方に指し示すように操作することを促す報知を行い、当該報知後に撮像画像におけるユーザ画像の変化や端末装置３に生じる加速度や角速度が安定したことに応じて、端末装置３が予め定められた初期位置および初期姿勢で安定していると推定する。この場合、上記座標系において、ＸＹＺ軸原点からＺ軸正方向へ所定距離離れたＺ軸上の位置を端末装置３の初期位置としてもよい。また、上記撮像画像におけるユーザ画像の傾きや端末装置３の動きや姿勢を算出するためのセンサ（加速度センサ３４および／またはジャイロセンサ３５）から得られるデータから算出される端末装置３の姿勢や、端末装置３のｘｙｚ軸正方向がそれぞれＸＹＺ軸正方向に向いた基準姿勢を端末装置３の初期姿勢としてもよい。
【０１０１】
また、上述した例では、前後方向（ｚ軸方向）を長手方向とした略直方体形状の端末装置３を用いて指し示すポインティング操作を用いたが、端末装置３は他の形状や機能を有している可搬型装置でもよく、ポインティング操作とは異なる操作が行われてもよい。例えば、図１１に示すように、端末装置３は、スマートフォン等の携帯電話であってもよい。例えば、スマートフォン等の携帯電話で端末装置３が構成される場合、端末装置３の表示画面側を撮像方向とする撮像部（いわゆる、内カメラ）で当該端末装置３を操作するユーザを撮像し、当該撮像されたユーザ画像を用いて当該ユーザに対する端末装置３の位置および姿勢を算出してもよい。この場合、算出された端末装置３の位置および姿勢に基づいて、仮想世界に配置されたプレイヤオブジェクトＰＯを動作させてもよい。例えば、ユーザが端末装置３を把持する右手を上げる操作をした場合、モニタ４および／または端末装置３の表示画面に表示されたプレイヤオブジェクトＰＯも同じように右手を上げる動作をするようなゲームを実現してもよい。また、実空間における端末装置３の動きや姿勢と同じ動きや姿勢で動作する仮想オブジェクトを仮想世界に配置し、当該仮想オブジェクトを含む仮想世界をモニタ４および／または端末装置３の表示画面に表示して当該仮想オブジェクトの動作を制御してもよい。
【０１０２】
また、上述した例では、ユーザの胴体が撮像された胴体画像において抽出された特徴点を追跡することによって、実空間における端末装置３の位置および姿勢を算出したが、他の方法によって端末装置３の位置および姿勢を算出してもよい。例えば、撮像部３２によって撮像されている撮像画像におけるユーザのシルエットを抽出し、当該シルエットの位置、サイズ、方向、形状等に基づいて、実空間における端末装置３の位置および姿勢を算出してもよい。例えば、端末装置３を操作するユーザが撮像部３２によって撮像された撮像画像が得られた場合、当該撮像画像には当該ユーザを示すユーザ画像とその背景画像とが撮像されていることが考えられる。この場合、撮像部３２からユーザまでの距離に対して、撮像部３２から背景までの距離が相対的に長いため、撮像部３２がユーザに対して移動した場合に当該ユーザ画像と当該背景画像との動きが異なる。例えば、ユーザに対して端末装置３が上下または左右に平行移動した場合、撮像画像内におけるユーザ画像の動きは背景画像の動きより大きくなる。このような画像の動きの違いに基づいて、撮像画像内におけるユーザ画像と背景画像とを区別することによって、当該撮像画像におけるユーザのシルエット（輪郭）を抽出することができる。このように抽出されたユーザのシルエットの位置、サイズ、方向、形状等を用いれば、当該ユーザに対する端末装置３の位置および姿勢を算出することができる。なお、上述した撮像画像におけるユーザのシルエットの抽出処理においては、端末装置３の動きや姿勢を算出するためのセンサ（加速度センサ３４および／またはジャイロセンサ３５）から得られるデータを用いて端末装置３の動作を推定し、当該推定された端末装置３の動作に基づいて上記撮像画像内におけるユーザ画像および背景画像の動きを予測してもよい。
【０１０３】
また、上記撮像画像におけるユーザのシルエットの抽出方法については、他の方法で行ってもよい。第１の例として、事前に人間のシルエットとして取り得る形状を準備し、撮像部３２によって撮像された撮像画像に対してエッジ検出を行ったエッジの形状との間でパターンマッチングすることによって、ユーザのシルエットを抽出してもよい。また、第２の例として、端末装置３の撮像部３２を距離カメラで構成したり、端末装置３に距離センサを内蔵したりすることによって、端末装置３とユーザとの間の距離と端末装置３と背景との距離との違いに基づいて、ユーザのシルエットを抽出してもよい。また、第３の例として、端末装置３の撮像部３２を熱画像が撮像可能なカメラ（サーモグラフィ）で構成したり、端末装置３に温度センサを内蔵したりすることによって、撮像画像における人間の体温に近い領域をユーザのシルエットとして抽出してもよい。
【０１０４】
また、上述した例では、１台の端末装置３を１人のユーザが操作する例を用いたが、複数のユーザがそれぞれ異なる端末装置３を操作してもよい。この場合、各端末装置３の撮像部３２がそれぞれ別のユーザを撮像し、各端末装置３それぞれにおいて当該端末装置３を操作するユーザに対する当該端末装置３の位置および姿勢を算出すればよい。したがって、複数のユーザがそれぞれ異なる端末装置３を操作する場合、各端末装置３においてそれぞれのユーザを基準とする当該端末装置３の位置および姿勢が算出されることになる。
【０１０５】
また、上述した例では、１台の端末装置３を１人のユーザが操作する例を用いたが、１人のユーザが２つの端末装置３を操作してもよい。この場合、各端末装置３の撮像部３２がそれぞれ同じユーザを撮像し、各端末装置３それぞれにおいて同じユーザに対する当該端末装置３の位置および姿勢をそれぞれ算出する。したがって、各端末装置３から当該端末装置３の位置および姿勢を示すデータをそれぞれ取得することによって、情報処理装置２が１人のユーザに対する複数の端末装置３の位置および姿勢を把握することができ、複数の端末装置３の位置関係を同じ座標系を用いて算出することができる。
【０１０６】
次に、端末装置３において行われる入力処理の詳細を説明する。まず、図１２を参照して、端末装置３において行われる入力処理において用いられる主なデータについて説明する。なお、図１２は、端末装置３のメモリ３７に記憶される主なデータおよびプログラムの一例を示す図である。
【０１０７】
図１２に示すように、メモリ３７のデータ記憶領域には、撮像画像データＤａ、加速度データＤｂ、角速度データＤｃ、操作データＤｄ、顔画像データＤｅ、体部分データＤｆ、特徴点データＤｇ、端末装置位置データＤｈ、端末装置姿勢データＤｉ、基準姿勢位置設定フラグデータＤｊ、基準姿勢位置設定データＤｋ、および受信データＤｌ等が記憶される。なお、メモリ３７には、図１２に示すデータの他、他のアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ３７のプログラム記憶領域には、入力処理プログラムを構成する各種プログラム群Ｐａが記憶される。
【０１０８】
撮像画像データＤａは、撮像部３２によって撮像された撮像画像を示すデータであり、撮像部３２のフレームレートに応じて最新の撮像画像を示すデータに更新される。
【０１０９】
加速度データＤｂは、端末装置３に生じる加速度を示すデータであり、加速度センサ３４から出力される加速度を示すデータである。角速度データＤｃは、端末装置３に生じる角速度を示すデータであり、ジャイロセンサ３５から出力される角速度を示すデータである。操作データＤｄは、操作部３３に対する操作内容を示すデータであり、例えば操作部３３を用いて方向指示操作された内容を示すデータである。
【０１１０】
顔画像データＤｅは、撮像画像から検出されたユーザの顔を示す顔画像を示すデータ（例えば、撮像画像においてユーザの顔を示す領域や位置を示すデータ）である。体部分データＤｆは、撮像画像から推定されたユーザの体部分を示すデータであり、例えばユーザの胴体を示す胴体画像の領域を示すデータである。
【０１１１】
特徴点データＤｇは、撮像画像から抽出された複数の特徴点を示すデータであり、特徴点それぞれに対する撮像画像上の位置や移動量等を示すデータである。
【０１１２】
端末装置位置データＤｈは、ユーザに対する端末装置３の位置を示すデータであり、例えばユーザを基準とする実空間の３次元位置を示すデータである。端末装置姿勢データＤｉは、ユーザに対する端末装置３の姿勢を示すデータであり、例えばユーザを基準とする実空間におけるｘｙｚ軸それぞれの向きを示すデータである。
【０１１３】
基準姿勢位置設定フラグデータＤｊは、端末装置３の基準姿勢位置を設定する際にオンに設定され当該設定後にオフに設定される基準姿勢位置設定フラグを示すデータである。基準姿勢位置設定データＤｋは、端末装置３の基準姿勢位置を示すデータであり、例えばユーザを基準とする実空間における３次元位置およびｘｙｚ軸それぞれの向きを示すデータである。受信データＤｌは、他の装置（例えば、情報処理装置２）から適宜受信したデータであり、例えば端末装置３の基準姿勢位置を設定中であることを情報処理装置２から指示された基準設定コマンドを示すデータが含まれる。
【０１１４】
次に、図１３を参照して、端末装置３において行われる入力処理の詳細を説明する。なお、図１３は、端末装置３（ＣＰＵ３６）において実行される入力処理の一例を示すフローチャートである。ここで、図１３に示すフローチャートにおいては、端末装置３における処理のうち、端末装置３の位置および姿勢を算出する入力処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図１３に示す一連の処理は、ＣＰＵ３６が、プログラム記憶部３８に記憶される入力処理プログラムを実行することによって行われる。
【０１１５】
なお、図１３に示す入力処理が開始されるタイミングは任意である。例えば、情報処理装置２において端末装置３の位置および姿勢を必要とするアプリケーションの実行が開始されたことや入力処理を行う操作をユーザが行ったこと等に応じて入力処理プログラムの実行が開始されてもよい。このとき、入力処理プログラムは、適宜のタイミングでその一部または全部がメモリ３７に読み出され、ＣＰＵ３６によって実行される。これによって、図１３に示す一連の処理が開始される。なお、入力処理プログラムは、端末装置３内のプログラム記憶部３８に予め記憶されているものとする。ただし、他の実施形態においては、端末装置３に着脱可能な記憶媒体から取得されてメモリ３７に記憶されてもよいし、インターネット等のネットワークを介して情報処理装置２や他の装置から取得されてメモリ３７に記憶されてもよい。
【０１１６】
また、図１３に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ３６が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１１７】
図１３において、ＣＰＵ３６は、初期設定を行い（ステップ６１）、次のステップに処理を進める。例えば、ＣＰＵ３６は、初期設定として、入力処理を行う際に用いる各パラメータを初期化する。
【０１１８】
次に、ＣＰＵ３６は、撮像画像を取得し（ステップ６２）、次のステップに処理を進める。例えば、ＣＰＵ３６は、撮像部３２が撮像した撮像画像を取得し、当該撮像画像を示すデータを用いて撮像画像データＤａを更新する。
【０１１９】
次に、ＣＰＵ３６は、端末装置３に生じる加速度を示すデータを取得し（ステップ６３）、次のステップに処理を進める。例えば、ＣＰＵ３６は、加速度センサ３４が検出した加速度（すなわち、ｘ軸方向への加速度、ｙ軸方向への加速度、およびｚ軸方向への加速度）を示すデータを取得し、当該データを用いて加速度データＤｂを更新する。
【０１２０】
次に、ＣＰＵ３６は、端末装置３に生じる角速度を示すデータを取得し（ステップ６４）、次のステップに処理を進める。例えば、ＣＰＵ３６は、ジャイロセンサ３５が検出した角速度（すなわち、ｘ軸方向周りの角速度、ｙ軸方向周りの角速度、およびｚ軸方向周りの角速度）を示すデータを取得し、当該データを用いて角速度データＤｃを更新する。
【０１２１】
次に、ＣＰＵ３６は、端末装置３に設けられている操作部３３に対する操作を示すデータを取得し（ステップ６５）、次のステップに処理を進める。例えば、ＣＰＵ３６は、操作部３３（例えば、方向指示部）に対して行われた操作内容を示すデータを取得し、当該データを用いて操作データＤｄを更新する。
【０１２２】
次に、ＣＰＵ３６は、撮像画像から特徴点を抽出するか否かを判定する（ステップ６６）。例えば、ＣＰＵ３６は、現時点が図９を用いて説明した上記第１段階〜上記第３段階における撮像画像に対する画像解析によってユーザ画像から特徴点を抽出する処理を行うタイミングである場合、上記ステップ６６において肯定判定する。一例として、特徴点を抽出する処理が行われていない初期段階である場合や現時点が上記第１段階〜第３段階における画像解析を行って特徴点の追跡をサポートするタイミングである場合、上記ステップ６６において肯定判定する。そして、ＣＰＵ３６は、特徴点を抽出する処理を行う場合、ステップ６７に処理を進める。一方、ＣＰＵ３６は、特徴点を抽出する処理を行わない場合、ステップ７０に処理を進める。
【０１２３】
ステップ６７において、ＣＰＵ３６は、撮像部３２が撮像した撮像画像内のユーザ画像から端末装置３を操作するユーザの顔を示す顔画像を検出（図９（Ａ）参照）し、次のステップに処理を進める。例えば、ＣＰＵ３６は、撮像画像データＤａが示す最新の撮像画像に対して所定の顔検出技術を用いて顔画像を検出し、当該撮像画像に対する顔画像の領域や位置を示すデータを用いて顔画像データＤｅを更新する。
【０１２４】
次に、ＣＰＵ３６は、上記ステップ６７で検出された顔画像の位置に基づいて、撮像部３２が撮像した撮像画像内のユーザ画像における体部分の画像（例えば、ユーザの胴体を示す胴体画像）を推定（図９（Ｂ）参照）し（ステップ６８）、次のステップに処理を進める。例えば、上記胴体画像は、上記検出された顔画像の下方向に撮像されているはずであり、ＣＰＵ３６は、当該位置関係に基づいてユーザの胴体画像を推定し、当該撮像画像に対する胴体画像の領域を示すデータを用いて体部分データＤｆを更新する。
【０１２５】
次に、ＣＰＵ３６は、上記ステップ６８において推定されたユーザ画像における体部分の画像（例えば、胴体画像）から、複数の特徴点を抽出して設定（図９（Ｃ）参照）する処理を行い（ステップ６９）、ステップ７０に処理を進める。上述したように、上記ステップ６９において抽出する特徴点は、端末装置３とユーザとの相対位置を算出するために用いる撮像画像におけるポイントであり、予め定められた特徴に基づいて上記胴体画像から抽出される。そして、ＣＰＵ３６は、抽出された特徴点毎に上記撮像画像上の位置を算出して、当該特徴点毎の位置を示すデータを用いて特徴点データＤｇを更新する。
【０１２６】
ステップ７０において、ＣＰＵ３６は、端末装置３の基準姿勢位置が設定済であるか否かを判定する。そして、ＣＰＵ３６は、基準姿勢位置データＤｋに端末装置３の基準姿勢位置を示すデータが設定されていない場合、ステップ７１に処理を進める。一方、ＣＰＵ３６は、既に基準姿勢位置データＤｋに端末装置３の基準姿勢位置を示すデータが設定されている場合、ステップ７４に処理を進める。
【０１２７】
ステップ７１において、ＣＰＵ３６は、現時点が端末装置３の基準姿勢位置を設定する期間であるか否かを判定する。例えば、情報処理装置２から基準姿勢位置を設定する期間が開始されたことを示す基準設定コマンドを受信した場合や基準姿勢位置設定フラグデータＤｊが示す基準姿勢位置設定フラグがオンに設定されて場合、ＣＰＵ３６は、現時点が基準姿勢位置を設定する期間であると判定する。他の例として、ＣＰＵ３６は、撮像画像データＤａが示す最新の撮像画像において、端末装置３を操作するユーザの顔正面が撮像されている場合、現時点が基準姿勢位置を設定する期間であると判定してもよい。そして、ＣＰＵ３６は、現時点が基準姿勢位置を設定する期間である場合、基準姿勢位置設定フラグデータＤｊが示す基準姿勢位置設定フラグをオンに設定してステップ７２に処理を進める。一方、ＣＰＵ３６は、現時点が基準姿勢位置を設定する期間でない場合、ステップ７６に処理を進める。
【０１２８】
ステップ７２において、ＣＰＵ３６は、端末装置３の姿勢や動作が安定しているか否かを判定する。例えば、ＣＰＵ３６は、加速度データＤｂが示す加速度の値、角速度データＤｃが示す角速度の値、および／または特徴点データＤｇが示す各特徴点の移動量が所定の閾値以下である場合、端末装置３の姿勢や動作が安定していると判定する。そして、ＣＰＵ３６は、端末装置３の姿勢や動作が安定している場合、ステップ７３に処理を進める。一方、ＣＰＵ３６は、端末装置３の姿勢や動作が安定していない場合、ステップ７６に処理を進める。
【０１２９】
ステップ７３において、ＣＰＵ３６は、端末装置３の姿勢および位置を予め定められた基準姿勢および基準位置（基準姿勢位置）に設定し、ステップ７３に処理を進める。例えば、ＣＰＵ３６は、端末装置３を操作するユーザの左右水平方向をＸ軸方向（右方向をＸ軸正方向）とし、当該ユーザの鉛直方向をＹ軸方向（上方向をＹ軸正方向）とし、当該ユーザの前後方向をＺ軸方向（前方向をＺ軸正方向）とする座標系を実空間に設定する。そして、ＣＰＵ３６は、上記座標系において、ＸＹＺ軸原点からＺ軸正方向へ所定距離離れたＺ軸上の位置を端末装置３の基準位置として設定し、当該基準位置を示すデータを用いて端末装置位置データＤｈを更新するとともに、基準姿勢位置設定データＤｈの基準位置を示すデータとして格納する。また、ＣＰＵ３６は、上記座標系において予め定められた姿勢（例えば、端末装置３のｘｙｚ軸正方向がそれぞれＸＹＺ軸正方向に向いた姿勢）または撮像画像データＤａが示す撮像画像におけるユーザ画像の傾きや加速度データＤｂが示す加速度の値および角速度データＤｃが示す角速度の値から算出される端末装置３の姿勢を端末装置３の基準姿勢として設定し、当該基準姿勢を示すデータを用いて端末装置姿勢データＤｉを更新するとともに、基準姿勢位置設定データＤｈの基準姿勢を示すデータとして格納する。また、ＣＰＵ３６は、基準姿勢位置設定フラグデータＤｊが示す基準姿勢位置設定フラグをオフに設定する。
【０１３０】
一方、ステップ７４において、ＣＰＵ３６は、撮像画像データＤａが示す最新の撮像画像において上記ステップ６９において抽出されて設定された特徴点を追跡する処理を行い、次のステップに処理を進める。例えば、ＣＰＵ３６は、特徴点データＤｇを参照して前回の処理において設定されている各特徴点の撮像画像に対する位置を取得し、当該位置に基づいて上記最新の撮像画像に対する各特徴点の位置を追跡する。一例として、ＣＰＵ３６は、人間が動く速度の限界や撮像部３２のフレームレートを考慮して、前回の処理において設定されている特徴点の位置から移動し得る範囲を設定し、当該設定された範囲を探索範囲として各特徴点の位置を探索してもよい。そして、ＣＰＵ３６は、上記最新の撮像画像上の各特徴点の位置を算出して、当該特徴点毎の位置を示すデータを用いて特徴点データＤｇを更新する。また、ＣＰＵ３６は、前回の処理において設定されていた各特徴点の位置と今回の処理において設定された各特徴点の位置との差分を用いて、上記撮像画像における各特徴点の移動量および移動方向を算出し、当該移動量および移動方向を示すデータを用いて特徴点データＤｇを更新する。
【０１３１】
次に、ＣＰＵ３６は、実空間における端末装置３の位置および姿勢を算出し（ステップ７５）、ステップ７６に処理を進める。例えば、ＣＰＵ３６は、上述した実空間のユーザを基準とした座標系における端末装置３の位置を、各特徴点の位置、移動量、および移動方向と前回の処理において算出された端末装置３の位置および姿勢（すなわち、端末装置位置データＤｈおよび端末装置姿勢データＤｉが示すデータ）とに基づいて算出する。また、ＣＰＵ３６は、上記座標系における端末装置３に対して設定されているｘｙｚ軸方向（図２参照）の向きを、各特徴点の位置、移動量、および移動方向と前回の処理において算出された端末装置３の位置および姿勢とに基づいて算出する。そして、ＣＰＵ３６は、算出された端末装置３の位置を示すデータを用いて端末装置位置データＤｈを更新し、算出された端末装置３の向きを示すデータを用いて端末装置姿勢データＤｉを更新する。
【０１３２】
ステップ７６において、ＣＰＵ３６は、情報処理装置２へデータを送信する処理を行い、次のステップに処理を進める。例えば、ＣＰＵ３６は、端末装置位置データＤｈが示す端末装置３の位置を示すデータおよび端末装置姿勢データＤｉが示す端末装置３の姿勢を示すデータに、必要に応じて加速度データＤｂが示す端末装置３に生じる加速度を示すデータ、角速度データＤｃが示す端末装置３に生じる角速度を示すデータ、および／または操作データＤｄが示す操作部３３に対する操作内容を示すデータを必要に応じて加えた送信データを生成し、通信部３９を介して当該送信データを情報処理装置２へ送信する処理を行う。また、ＣＰＵ３６は、上記ステップ７３における基準姿勢位置が設定された際、当該設定が行われたことを示すデータまたは設定された基準姿勢位置を示すデータを上記送信データに加えて送信してもよい。
【０１３３】
次に、ＣＰＵ３６は、入力処理を終了するか否かを判定する（ステップ７７）。入力処理を終了する条件としては、例えば、ユーザが入力処理を終了する操作を行ったことや、情報処理装置２や端末装置３の電源がオフされたこと等がある。ＣＰＵ３６は、入力処理を終了しない場合に上記ステップ６２に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ６２〜ステップ７７の一連の処理は、ステップ７７で処理を終了すると判定されるまで繰り返し実行される。
【０１３４】
次に、情報処理装置２において行われる入力処理の詳細を説明する。まず、図１４を参照して、情報処理装置２において行われる入力処理において用いられる主なデータについて説明する。なお、図１４は、情報処理装置２のメモリ２２に記憶される主なデータおよびプログラムの一例を示す図である。
【０１３５】
図１４に示すように、メモリ２２のデータ記憶領域には、端末データＤｍ、基準姿勢位置データＤｎ、ポインティング位置データＤｏ、画像データＤｐ、および送信データＤｑ等が記憶される。なお、メモリ２２には、図１４に示すデータの他、他のアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ２２のプログラム記憶領域には、入力処理プログラムを構成する各種プログラム群Ｐｂが記憶される。
【０１３６】
端末データＤｍは、端末装置３から受信したデータであり、端末装置位置データＤｍ１、端末装置姿勢データＤｍ２、加速度データＤｍ３、角速度データＤｍ４、および操作データＤｍ５等を含んでいる。端末装置位置データＤｍ１は、端末装置３の位置を示すデータである。端末装置姿勢データＤｍ２は、端末装置３の姿勢を示すデータである。加速度データＤｍ３は、端末装置３に生じている加速度を示すデータであり、加速度センサ３４から出力される加速度を示すデータである。角速度データＤｍ４は、端末装置３に生じている角速度を示すデータであり、ジャイロセンサ３５から出力される角速度を示すデータである。操作データＤｍ５は、端末装置３に設けられた操作部３３を用いて操作された内容を示すデータである。
【０１３７】
基準姿勢位置データＤｎは、端末装置３の基準姿勢位置を示すデータであり、例えばユーザを基準とする実空間における３次元位置およびｘｙｚ軸それぞれの向きを示すデータである。
【０１３８】
ポインティング位置データＤｏは、端末装置３を用いてモニタ４の表示画面を指示しているポインティング位置を示すデータである。画像データＤｐは、背景画像、オブジェクト画像、およびポインタ画像等をモニタ４に表示するためのデータである。送信データＤｑは、端末装置３へ送信するデータである。
【０１３９】
次に、図１５を参照して、情報処理装置２において行われる入力処理の詳細を説明する。なお、図１５は、情報処理装置２（ＣＰＵ２１）において実行される入力処理の一例を示すフローチャートである。ここで、図１５に示すフローチャートにおいては、情報処理装置２における処理のうち、端末装置３から受信した端末データに基づいた画像をモニタ４に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図１５に示す一連の処理は、ＣＰＵ２１が、プログラム記憶部２３に記憶される入力処理プログラムを実行することによって行われる。
【０１４０】
なお、図１５に示す入力処理が開始されるタイミングは任意である。例えば、入力処理を実行する指示をユーザが行ったことに応じて入力処理プログラムの実行が開始されてもよい。このとき、入力処理プログラムは、適宜のタイミングでその一部または全部がメモリ２２に読み出され、ＣＰＵ２１によって実行される。これによって、図１５に示す一連の処理が開始される。なお、入力処理プログラムは、情報処理装置２内のプログラム記憶部２３に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置２に着脱可能な記憶媒体から取得されてメモリ２２に記憶されてもよいし、インターネット等のネットワークを介して取得されてメモリ２２に記憶されてもよい。
【０１４１】
また、図１５に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ２１が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１４２】
図１５において、ＣＰＵ２１は、初期設定を行い（ステップ８１）、次のステップに処理を進める。例えば、ＣＰＵ２１は、初期設定として、入力処理を行う際に用いる各パラメータを初期化する。
【０１４３】
次に、ＣＰＵ２１は、端末装置３から端末データを取得し（ステップ８２）、次のステップに処理を進める。例えば、ＣＰＵ２１は、通信部２４を介して端末装置３から送信された送信データを取得し、当該送信データを用いて端末データＤｍを更新する。
【０１４４】
次に、ＣＰＵ２１は、端末装置３の基準姿勢位置を設定するか否かを判定する（ステップ８３）。例えば、現時点が入力処理を開始した直後である場合や定期的に基準姿勢位置を設定するタイミングである場合、ＣＰＵ２１は、端末装置３の基準姿勢位置を設定すると判定する。そして、ＣＰＵ２１は、端末装置３の基準姿勢位置を設定する場合、ステップ８４に処理を進める。一方、ＣＰＵ２１は、端末装置３の基準姿勢位置を設定しない場合、ステップ８８に処理を進める。
【０１４５】
ステップ８４において、ＣＰＵ２１は、所定の姿勢で端末装置３を操作するようにユーザに促す基準設定操作報知処理を行い、次のステップに処理を進める。例えば、ＣＰＵ２１は、所定の姿勢で端末装置３を操作するようにユーザに促す画像をモニタ４に表示する制御および／または音声をモニタ４のスピーカから出力する制御を行うことによって、所定の操作をユーザに促す。一例として、ＣＰＵ２１は、ユーザの正面に端末装置３を把持する腕を差し出して当該端末装置３の前面を前方のモニタ４の表示画面中央を指し示すような操作をユーザに促してもよい。
【０１４６】
次に、ＣＰＵ２１は、基準設定コマンドを端末装置３へ送信して（ステップ８５）、次のステップに処理を進める。例えば、ＣＰＵ２１は、基準姿勢位置を設定する期間中であることを示す基準設定コマンドを送信データＤｑにセットすることによって、通信部２４を介して送信データＤｑにセットされた基準設定コマンドが端末装置３へ送信される。
【０１４７】
次に、ＣＰＵ２１は、端末装置３の姿勢や動作が安定しているか否かを判定する（ステップ８６）。例えば、ＣＰＵ２１は、加速度データＤｂが示す加速度の値および／または角速度データＤｃが示す角速度の値が所定の閾値以下である場合や、端末装置３から基準姿勢位置が設定されたことを示すデータを受信した場合、端末装置３の姿勢や動作が安定していると判定する。そして、ＣＰＵ２１は、端末装置３の姿勢や動作が安定している場合、ステップ８７に処理を進める。一方、ＣＰＵ２１は、端末装置３の姿勢や動作が安定していない場合、上記ステップ８２に戻って処理を繰り返す。
【０１４８】
ステップ８７において、ＣＰＵ２１は、端末装置３の姿勢および位置をモニタ４の表示画面に対して予め定められた基準姿勢および基準位置に設定し、ステップ８８に処理を進める。例えば、ＣＰＵ２１は、端末装置３を操作するユーザの前後方向であってモニタ４の表示画面の中央と垂直に交差する方向をＺ軸方向（ユーザから表示画面に向かう方向をＺ軸正方向）とし、当該ユーザの左右水平方向をＸ軸方向（右方向をＸ軸正方向）とし、当該ユーザの鉛直方向をＹ軸方向（上方向をＹ軸正方向）とする座標系を実空間に設定する。そして、ＣＰＵ２１は、上記座標系において、端末装置３が基準位置として設定している位置（例えば、端末装置位置データＤｍ１が示す位置や端末装置３から送信された基準姿勢位置を示すデータが示す位置）を端末装置３の基準位置として設定し、当該基準位置を示すデータを基準姿勢位置データＤｎの基準位置を示すデータとして格納する。また、ＣＰＵ２１は、上記座標系において、端末装置３が基準姿勢として設定している位置（例えば、端末装置姿勢データＤｍ２が示す姿勢や端末装置３から送信された基準姿勢位置を示すデータが示す姿勢）を端末装置３の基準姿勢として設定し、当該基準姿勢を示すデータを基準姿勢位置データＤｎの基準姿勢を示すデータとして格納する。また、ＣＰＵ２１は、上記ステップ８４において行っている基準設定操作の報知を取り消す。
【０１４９】
ステップ８８において、ＣＰＵ２１は、端末装置３の位置および姿勢に基づいて、ポインティング位置を算出し、次のステップに処理を進める。例えば、ＣＰＵ２１は、端末装置位置データＤｍ１および端末装置姿勢データＤｍ２が示す現時点の位置および姿勢を用いて上記座標系に端末装置３を配置し、当該配置された端末装置３が指し示しているモニタ４の表示画面上の位置を算出して、当該位置を示すデータを用いてポインティング位置データＤｏを更新する。例えば、端末装置位置データＤｍ１および端末装置姿勢データＤｍ２が示す現時点の位置および姿勢が上記ステップ８７で設定された基準姿勢位置である場合、ＣＰＵ２１は、モニタ４の表示画面の中央をポインティング位置として算出する。また、端末装置位置データＤｍ１および端末装置姿勢データＤｍ２が示す現時点の位置および姿勢が上記基準姿勢位置と異なる場合、現時点の端末装置３の当該基準姿勢位置からの差分（基準位置からの距離や基準姿勢との角度差）に基づいて、上記座標系に配置された端末装置３が指し示しているモニタ４の表示画面上の位置を算出する。
【０１５０】
次に、ＣＰＵ２１は、上記ステップ８８において算出されたポインティング位置にポインタ画像を表示する制御を行い（ステップ８９）、次のステップに処理を進める。例えば、ＣＰＵ２１は、ポインティング位置データＤｏが示す表示画面上の位置にポインタ画像（例えば、図５および図７に示すポインタ画像ＰＩ参照）を配置してモニタ４の表示画面に表示する制御を行う。
【０１５１】
次に、ＣＰＵ２１は、入力処理を終了するか否かを判定する（ステップ９０）。入力処理を終了する条件としては、例えば、ユーザが入力処理を終了する操作を行ったことや、情報処理装置２や端末装置３の電源がオフされたこと等がある。ＣＰＵ２１は、入力処理を終了しない場合に上記ステップ８２に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ８２〜ステップ９０の一連の処理は、ステップ９０で処理を終了すると判定されるまで繰り返し実行される。
【０１５２】
なお、上述した処理手順においては、端末装置３の基準姿勢位置を設定する際に、当該基準姿勢位置を設定する期間であることを示すデータを情報処理装置２から端末装置３へ送信するとともに、基準姿勢位置が設定されたことを示すデータが端末装置３から情報処理装置２へ送信されることによって、情報処理装置２と端末装置３とが連係して基準姿勢位置を設定しているが、他の方法によって端末装置３の基準姿勢位置を設定してもよい。第１の例として、基準設定操作報知において、所定の姿勢で端末装置３を操作しながら所定の操作ボタンを押す操作をユーザに促すことによって、端末装置３は情報処理装置２から基準姿勢位置を設定する期間である通知がなくても、上記操作ボタンが押下されることによって当該期間であることを知ることができる。したがって、第１の例では、情報処理装置２から端末装置３へ基準姿勢位置を設定する期間であることを示すデータを送信しなくても、情報処理装置２と端末装置３とが連係して基準姿勢位置を設定することができる。第２の例として、上記第１の例と同様に基準設定操作報知において、所定の姿勢で端末装置３を操作しながら所定の操作ボタンを押す操作をユーザに促すことによって、端末装置３は情報処理装置２から基準姿勢位置を設定する期間である通知がなくても、上記操作ボタンが押下されることによって当該期間であることを知ることができる。さらに、端末装置３から設定された基準姿勢位置との差分（基準位置からの距離や基準姿勢との角度差）を常に情報処理装置２へ出力し、情報処理装置２では予め定められた基準姿勢位置から当該差分に応じて端末装置３の位置および姿勢を動かして処理を行う。したがって、第２の例では、情報処理装置２から端末装置３へ基準姿勢位置を設定する期間であることを示すデータおよび端末装置３から情報処理装置２へ基準姿勢位置が設定されたことを示すデータを送信しなくても、情報処理装置２と端末装置３とが連係して基準姿勢位置を設定することができる。
【０１５３】
また、上述した入力処理においては、端末装置３側で設定した実空間のユーザを基準とした座標系に置ける端末装置３の位置および姿勢を、情報処理装置２側では実空間におけるユーザとモニタ４の表示画面とに基づいた座標系にそのまま置き換えることによって、情報処理装置２において端末装置３の位置および姿勢に基づいた処理が行われている。しかしながら、情報処理装置２および端末装置３において端末装置３の位置および姿勢を設定するための座標系は、全く同じ座標系であってもよいし、異なる座標系であってもよい。例えば、前者の場合、図１１を用いて説明したゲーム例のように、ユーザが端末装置３本体を動かす操作と同じようにモニタ４および／または端末装置３の表示画面に表示されたプレイヤオブジェクトＰＯが動作をするゲームを実現することができる。また、後者の場合、情報処理装置２において実行する情報処理（ゲーム処理を含む）の内容に応じて適切な座標系を情報処理装置２側で設定し、端末装置３から送信された端末装置３の位置および姿勢を適宜座標変換してもよいことは言うまでもない。
【０１５４】
また、上述した入力処理においては、端末装置３から情報処理装置２へ実空間における端末装置３の位置および姿勢を示すデータが送信される例を用いたが、端末装置３から情報処理装置２へ送信されるデータは他の情報を示すものでもよい。例えば、端末装置３の撮像部３２が撮像した撮像画像そのものを示すデータ、撮像画像内の特徴点の位置を示すデータ、撮像画像内のユーザシルエットの位置や領域を示すデータ等を端末装置３から情報処理装置２へ送信してもよい。これらの場合、情報処理装置２において、端末装置３から送信されたデータに基づいて実空間における端末装置３の位置および姿勢を算出することになる。
【０１５５】
また、上述した入力処理においては、情報処理装置側の処理（例えば、端末装置３の姿勢および／または位置に応じた画像を生成する処理）も端末装置３内で行ってもよい。この場合、端末装置３のみで上述した処理全てが行われることも可能であり、スマートフォン等の各種機能を有する携帯型装置のみで本実施例を実現することができる。
【０１５６】
また、上述した入力処理においては、端末装置３の撮像部３２が撮像した撮像画像に基づいて、端末装置３の位置および姿勢を算出する例を用いたが、当該撮像画像に基づいて端末装置３の位置および姿勢の一方のみを算出してもよい。端末装置３の位置だけを算出する場合や端末装置３の姿勢のみを算出する場合であっても、様々なゲーム処理や情報処理に利用可能であることは言うまでもない。
【０１５７】
また、上述した説明では、携帯型の装置（例えば、コントローラや携帯電話装置）を端末装置３の一例として用いたが、端末装置３は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
【０１５８】
また、上述した端末装置３は、情報処理装置２と協働して一連の処理を実行するシステムとして機能するものであった。しかしながら、端末装置３は、例えば携帯ゲーム機のように、所定のプログラム（ゲームプログラム）によって所定の情報処理（ゲーム処理）を実行する機能を有する装置であってもよい。この場合、図１５を用いて説明した情報処理装置２の処理も端末装置３で行うとともに、当該処理結果を示す画像を端末装置３に備えられた表示画面に表示してもよい。また、上記実施例において情報処理装置２および端末装置３によって実行される一連の処理のうち、少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置２がさらに端末装置３以外の他の装置（例えば、別のサーバ、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理装置２のＣＰＵ２１および端末装置３のＣＰＵ３６が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置２および／または端末装置３が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１５９】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【０１６０】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【０１６１】
また、上述した各プログラムは、光学式ディスク状記憶媒体や外部メモリ等の外部記憶媒体を通じて情報処理装置２や端末装置３に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置２や端末装置３に供給されてもよい。また、上記プログラムは、情報処理装置２内部や端末装置３の不揮発性記憶装置に予め記憶されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体や不揮発性メモリの他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体に記憶された情報処理プログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１６２】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１６３】
以上のように、本発明は、容易に入力を行うこと等を目的として、例えば入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法等として有用である。
【符号の説明】
【０１６４】
１…入力処理システム
２…情報処理装置
３…端末装置
４…モニタ
２１、３６…ＣＰＵ
２２、３７…メモリ
２３、３８…プログラム記憶部
２４、３９…通信部
３２…撮像部
３３…操作部
３４…加速度センサ
３５…ジャイロセンサ
５１…撮像部
【図１】
2017041135.tif 000003
【図２】
2017041135.tif 000004
【図３】
2017041135.tif 000005
【図４】
2017041135.tif 000006
【図５】
2017041135.tif 000007
【図６】
2017041135.tif 000008
【図７】
2017041135.tif 000009
【図８】
2017041135.tif 000010
【図９】
2017041135.tif 000011
【図１０】
2017041135.tif 000012
【図１１】
2017041135.tif 000013
【図１２】
2017041135.tif 000014
【図１３】
2017041135.tif 000015
【図１４】
2017041135.tif 000016
【図１５】
2017041135.tif 000017