JP2017041135A - 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法 - Google Patents

入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法 Download PDF

Info

Publication number
JP2017041135A
JP2017041135A JP2015162927A JP2015162927A JP2017041135A JP 2017041135 A JP2017041135 A JP 2017041135A JP 2015162927 A JP2015162927 A JP 2015162927A JP 2015162927 A JP2015162927 A JP 2015162927A JP 2017041135 A JP2017041135 A JP 2017041135A
Authority
JP
Japan
Prior art keywords
user
portable device
terminal device
input processing
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015162927A
Other languages
English (en)
Inventor
大助 熊崎
Daisuke Kumazaki
大助 熊崎
康幸 下畠
Yasuyuki Shimohata
康幸 下畠
幸弘 鵜飼
Yukihiro Ukai
幸弘 鵜飼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2015162927A priority Critical patent/JP2017041135A/ja
Publication of JP2017041135A publication Critical patent/JP2017041135A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

【課題】簡易な構成にて入力を行うことが可能な入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法を提供する。【解決手段】可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含む。撮像手段が撮像した撮像画像を解析し、撮像画像の解析結果に基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する。そして、可搬型装置の姿勢および/または位置に応じた画像を生成する。【選択図】図3

Description

本発明は、入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法に関し、特に例えば、可搬型装置を用いて入力を行うための入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法に関する。
従来、光学式ポインティングデバイスを用いて仮想オブジェクトの操作を行うゲーム装置がある(例えば、特許文献1参照)。
特開2007−75353号公報
しかしながら、上記特許文献1に開示されたゲーム装置は、ユーザが操作するコントローラが撮像するためのマーカを設置する必要があった。
それ故に、本発明の目的は、より簡易な構成にて入力を行うことが可能な入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法を提供することである。
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
本発明の入力処理システムの一構成例は、ユーザが入力を行う可搬型装置を含む。可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含む。入力処理システムは、画像解析手段、算出手段、および画像生成手段を備える。画像解析手段は、撮像手段が撮像した撮像画像を解析する。算出手段は、撮像画像の解析結果に基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する。画像生成手段は、可搬型装置の姿勢および/または位置に応じた画像を生成する。
上記によれば、ユーザに対する可搬型装置の姿勢および/または位置は、可搬型装置から撮像されたユーザの外観の撮像画像に基づいて算出されるため、簡易な構成にて入力を行うことが可能となる。
また、上記画像解析手段は、撮像画像において撮像されているユーザに対して1または複数の特徴点を抽出してもよい。上記算出手段は、撮像画像における特徴点の位置に基づいて、ユーザに対する可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、ユーザが撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および/または位置を算出することができる。
また、上記特徴点は、撮像画像において撮像されているユーザの胴体に対して設定される複数のポイントを含んでもよい。上記画像解析手段は、撮像画像において撮像されているユーザの胴体に対して、少なくとも複数の特徴点を抽出してもよい。
上記によれば、相対的に動作が少ないユーザの胴体が撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および/または位置を算出することができる。
また、上記画像解析手段は、撮像画像において撮像されているユーザの顔を抽出し、当該抽出された顔の位置を基準として当該撮像画像から胴体を抽出してもよい。
上記によれば、撮像画像内における顔画像の位置に基づいて、胴体の画像を容易に抽出することができる。
また、上記特徴点は、撮像画像において撮像されているユーザの体幹に対して設定される1または複数のポイントを含んでもよい。上記画像解析手段は、撮像画像において撮像されているユーザの体幹に対して、少なくとも1または複数の特徴点を抽出してもよい。
上記によれば、相対的に動作が少ないユーザの体幹が撮像された画像に対して複数の特徴点を抽出することによって、正確に可搬型装置の姿勢および/または位置を算出することができる。
また、上記画像解析手段は、撮像画像において撮像されているユーザが装着している所定の装着物上から、少なくとも特徴点を抽出してもよい。
上記によれば、撮像画像から特徴点の抽出が容易となる。
また、上記画像解析手段は、撮像画像において撮像されているユーザのシルエットを抽出してもよい。上記算出手段は、撮像画像におけるシルエットの位置および方向に基づいて、ユーザに対する可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、撮像画像におけるユーザシルエットを用いて、当該ユーザに対する可搬型装置の姿勢および/または位置を算出することができる。
また、上記画像解析手段は、撮像画像において撮像されているユーザを抽出してもよい。上記算出手段は、撮像画像において抽出されたユーザのサイズに応じて、ユーザと可搬型装置との間の距離を算出してもよい。
上記によれば、撮像画像において撮像されているユーザのサイズに応じて、ユーザと可搬型装置との間の距離を容易に算出することができる。
また、上記算出手段は、可搬型装置を操作するユーザに対する当該可搬型装置の実空間における3次元位置と、当該3次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出してもよい。
上記によれば、可搬型装置の実空間における3次元位置と、当該3次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出することによって、可搬型装置の姿勢および位置を正確に管理することができる。
また、上記算出手段は、可搬型装置を操作するユーザを基準として、当該可搬型装置の実空間における姿勢および/または位置を算出してもよい。
上記によれば、ユーザを基準として可搬型装置の実空間における姿勢および/または位置を算出することによって、ユーザを基準とした可搬型装置の姿勢および/または位置に基づいた処理を容易に行うことができる。
また、上記可搬型装置は、データ出力手段を、さらに含んでもよい。データ出力手段は、撮像手段とは別に、当該可搬型装置の動きや姿勢に応じて変化するデータを出力する。この場合、上記算出手段は、撮像画像の解析結果およびデータ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、可搬型装置の姿勢および/または位置をより正確に算出することができる。
また、上記算出手段は、撮像画像に可搬型装置を操作するユーザが撮像されていない場合、データ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を補完してもよい。
上記によれば、ユーザが撮像されていない場合であっても、可搬型装置の姿勢および/または位置を算出することができる。
また、上記算出手段は、撮像画像の解析結果およびデータ出力手段が出力するデータに基づいて、実空間における重力方向を基準とした可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、実空間の重力方向を基準とした可搬型装置の姿勢および/または位置を算出することができる。
また、上記算出手段は、撮像画像の解析結果および/またはデータ出力手段が出力するデータに基づいて、可搬型装置を操作するユーザの実空間における動きを算出し、当該ユーザの実空間における姿勢および/または位置を基準として当該ユーザに対する当該可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、実空間内でユーザが移動したり姿勢を変えたりした場合であっても、可搬型装置の姿勢および/または位置を算出することができる。
また、上記可搬型装置は、撮像手段、画像解析手段、および算出手段を含んでもよい。上記可搬型装置は、送信手段を、さらに含んでもよい。送信手段は、画像生成手段を含む別の装置へ、算出手段が算出した可搬型装置の姿勢および/または位置を示すデータを無線送信する。
上記によれば、可搬型装置と別の装置とが無線接続されるため、可搬型装置を用いた操作が容易となる。
また、上記入力処理システムは、初期設定手段を、さらに備えてもよい。初期設定手段は、ユーザが所定の姿勢で可搬型装置を操作する際の、当該ユーザに対する当該可搬型装置の姿勢および/または位置を設定する。上記算出手段は、設定された可搬型装置の姿勢および/または位置を基準として、当該ユーザに対する当該可搬型装置の姿勢および/または位置を算出してもよい。
上記によれば、ユーザが所定の姿勢で可搬型装置を操作した場合に可搬型装置の姿勢および/または位置が初期設定されることによって、可搬型装置の姿勢および/または位置を正確に算出できるとともに、当該初期設定を容易に行うことができる。
また、上記撮像手段は、ユーザが可搬型装置を把持して操作する際、当該ユーザの上半身が少なくとも撮像可能な位置に設けられてもよい。
上記によれば、ユーザの上半身が撮像された撮像画像を用いることによって、可搬型装置の姿勢および/または位置をより正確に算出することができる。
また、上記撮像手段は、可搬型装置の後端部に設けられてもよい。
上記によれば、可搬型装置を操作するユーザの外観を当該可搬型装置から撮像可能となる。
また、上記撮像手段は、可搬型装置の前端部に設けられてもよい。
上記によれば、可搬型装置を操作するユーザの外観を当該可搬型装置から撮像可能となる。
また、上記可搬型装置は、ユーザ入力可能な入力手段を、さらに含んでもよい。
上記によれば、可搬型装置本体の姿勢を変化させたりや可搬型装置本体を移動させたりする操作だけでなく、当該可搬型装置に設けられた入力手段を用いた操作も可能となる。
また、上記入力手段は、ユーザが方向入力可能な方向指示手段であってもよい。
上記によれば、可搬型装置本体の姿勢を変化させたりや可搬型装置本体を移動させたりする操作だけでなく、当該可搬型装置に設けられた方向指示手段を用いた操作も可能となる。
また、上記画像生成手段は、算出手段によって算出された可搬型装置の姿勢および/または位置に基づいてユーザが当該可搬型装置を用いてポインティングした位置を示す画像であって、所定の表示画面上に表示するための画像を生成してもよい。
上記によれば、可搬型装置を用いたポインティング操作が可能となる。
また、上記画像生成手段は、ユーザが可搬型装置を用いて指し示した位置を移動させた方向と同じ方向に、画像を移動させて表示画面に表示してもよい。
上記によれば、可搬型装置を用いて直感的なポインティング操作が可能となる。
また、上記入力処理システムは、複数のユーザがそれぞれ入力する複数の可搬型装置を含んでもよい。この場合、上記撮像手段は、可搬型装置を操作するユーザ毎にそれぞれ撮像してもよい。上記画像解析手段は、撮像手段がそれぞれ撮像した撮像画像をそれぞれ解析してもよい。上記算出手段は、撮像画像の解析結果それぞれに基づいて、複数のユーザ毎に当該ユーザが操作する可搬型装置の姿勢および/または位置をそれぞれ算出してもよい。
上記によれば、複数の可搬型装置を同時に用いた入力処理が可能となる。
また、上記撮像手段は、ユーザが可搬型装置を操作する場合に当該ユーザが撮像範囲内となる当該可搬型装置内の位置に設置されてもよい。
上記によれば、可搬型装置から見た当該可搬型装置を操作するユーザを容易に撮像することができる。
また、上記可搬型装置は、画像解析手段、算出手段、および画像生成手段の少なくとも1つを、さらに含んでもよい。
上記によれば、可搬型装置内における処理負担を増やすことができ、他の装置における処理を軽減することができる。
また、本発明は、入力処理装置、入力処理プログラム、および入力処理方法の形態で実施されてもよい。
本発明によれば、ユーザに対する可搬型装置の姿勢および/または位置は、可搬型装置から撮像されたユーザの外観の撮像画像に基づいて算出されるため、簡易な構成にて入力を行うことが可能となる。
据置型の情報処理装置2および可搬型の端末装置3を含む入力処理システム1を用いてユーザが入力している様子の一例を示す図 端末装置3の上面後方から見た一例を示す斜視図 端末装置3を把持して操作している様子の一例を端末装置3の左側面方向から見た図 情報処理装置2および端末装置3を含む入力処理システム1の一例を示すブロック図 端末装置3によって指し示す位置にポインタ画像PIが表示される様子の一例を示す図 図5の状態の端末装置3の撮像部32によって撮像される撮像画像の一例を示す図 図5の位置から動かされた端末装置3によって指し示す位置にポインタ画像PIが表示される様子の一例を示す図 図7の状態の端末装置3の撮像部32によって撮像される撮像画像の一例を示す図 端末装置3で撮像された撮像画像を用いた入力処理の一例を説明するための図 実空間におけるユーザを基準として算出される丹間当装置3の位置および姿勢の一例を示す図 端末装置3およびモニタ4に表示される画像の他の例を示す図 端末装置3のメモリ37に記憶される主なデータおよびプログラムの一例を示す図 端末装置3(CPU36)において実行される入力処理の一例を示すフローチャート 情報処理装置2のメモリ22に記憶される主なデータおよびプログラムの一例を示す図 情報処理装置2(CPU21)において実行される入力処理の一例を示すフローチャート
図1を参照して、本実施形態の一例に係る入力処理プログラムを実行する端末装置および当該端末装置を含む入力処理システムについて説明する。なお、図1は、据置型の情報処理装置2および可搬型の端末装置3を含む入力処理システム1を用いてユーザが入力している様子の一例を示す図である。
情報処理装置2は、例えば据置型のゲーム装置で構成される。そして、情報処理装置2は、端末装置3およびモニタ4を含む入力処理システム1を構成している。本実施形態における情報処理装置2は、画像を生成して表示装置(例えば、モニタ4)に表示するものである。情報処理装置2は、パーソナルコンピュータ、ゲーム装置、携帯端末、スマートフォン等、どのような形態の情報処理装置であってもよい。情報処理装置2は、端末装置3と通信可能である。情報処理装置2と端末装置3との通信は、有線であってもよいし無線であってもよい。また、情報処理装置2とモニタ4との接続についても、有線であってもよいし無線であってもよい。
情報処理装置2においては、端末装置3に対する入力に応じて情報処理装置2が情報処理を実行し、実行の結果得られた画像がモニタ4に表示される。このように、本実施形態においては、入力機能、情報処理機能、および表示機能が複数の装置によって実現される構成を用いているが、他の実施形態においては、これらの機能を有する単一の情報処理装置(例えば携帯型あるいは可搬型の情報処理装置)で構成されてもよい。また、他の実施形態においては、情報処理装置2や端末装置3の機能が複数の装置によって実現されてもよい。例えば、他の実施形態においては、情報処理装置2や端末装置3において実行される処理の少なくとも一部が、ネットワーク(広域ネットワークおよび/またはローカルネットワーク)によって通信可能な複数の装置によって分散して実行されてもよい。
図1に示すように、入力処理システム1で端末装置3を用いて操作するためには、ユーザは、一方の手(例えば、右手)で端末装置3を把持する。そして、ユーザは、一例として端末装置3の前端面をモニタ4の表示画面に向けて当該端末装置3で指し示すように操作することによって、当該表示画面上の位置をポインティングする。このようにモニタ4の表示画面を端末装置3によって指し示す操作が行われることによって、当該指し示された位置にポインタ画像PIが表示される。なお、後述により明らかとなるが、端末装置3の後端部(例えば、後端面)に撮像部が設けられており、当該撮像部によって端末装置3を操作するユーザが撮像される。そして、端末装置3は、上記撮像部によって撮像されたユーザの撮像画像に基づいて、端末装置3を操作するユーザに対する端末装置3の位置および姿勢を算出し、当該位置および姿勢を示すデータを情報処理装置2へ無線送信する。一方、情報処理装置2は、端末装置3の位置および姿勢を示す受信データに基づいて、端末装置3が指し示しているモニタ4の表示画面上の位置を算出し、当該位置にポインタ画像PIが表示されるように表示制御する。
次に、図2および図3を用いて、端末装置3について説明する。なお、図2は、端末装置3の上面後方から見た一例を示す斜視図である。図3は、端末装置3を把持して操作している様子の一例を端末装置3の左側面方向から見た図である。
端末装置3は、無線コントローラモジュールを内蔵する情報処理装置2へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて端末装置位置データ、端末装置姿勢データ、および操作データ等を含む端末データを無線送信する。端末装置3は、主にモニタ4の表示画面をポインティングする操作をしたり、当該表示画面に表示されるプレイヤオブジェクト等を操作したりするための操作手段として機能する。端末装置3は、片手で把持可能な程度の大きさのハウジング31と、ハウジング31の表面に露出して設けられた複数個の操作ボタン(方向指示部33等を含む)とが設けられている。また、端末装置3は、端末装置3から当該端末装置3を操作するユーザを撮像するための撮像部32を備えている。なお、端末装置3は、情報処理装置2の無線コントローラモジュールから無線送信された送信データを通信部39(後述)で受信して、当該送信データに応じた音や振動を発生させてもよい。
ここで、説明を具体的にするために、端末装置3に対して設定する座標系について定義する。図2および図3に示すように、互いに直交するxyz軸を端末装置3に対して定義する。具体的には、端末装置3の前後方向となる端末装置3の長手方向をz軸とし、端末装置3の前面方向をz軸正方向とする。また、端末装置3の上下方向をy軸とし、ハウジング31の上面方向をy軸正方向とする。さらに、端末装置3の左右方向をx軸とし、ハウジング31の右側面(図2では表されて図3で表されていない側面)方向をx軸正方向とする。
ハウジング31は、その前後方向(z軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ハウジング31上面(y軸正方向側の主面)の中央前面側(z軸正方向側)に、方向指示部33が設けられる。一例として、方向指示部33は、十字型の4方向プッシュスイッチ(十字キー)であり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。ユーザが方向指示部33の何れかの操作部分を押下することによって上下左右(前後左右)何れかの方向を選択される。例えば、ユーザが方向指示部33を操作することによって、仮想世界に登場するオブジェクト等の移動方向を指示したり、複数の選択肢から選択する指示をしたりすることができる。
なお、図2を用いて例示した方向指示部33は、ユーザの方向入力操作に応じて操作信号を出力する十字キーであるが、他の態様の操作部でもよいし、他の態様の操作部をさらに備えていてもよい。例えば、方向指示部33は、十字方向に4つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部でもよい。また、方向指示部33は、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部でもよい。また、方向指示部33は、ハウジング31上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部でもよい。さらに、方向指示部33は、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部でもよい。また、方向指示部33は、タッチパッドでもよい。
ハウジング31後端部(例えば、後面(z軸負方向側の面))には、撮像部32の一部を構成する撮像素子が設けられる。図3に示すように、撮像部32が撮像可能な撮像範囲は、一例としてz軸負方向を中心とする相対的に広角であり、端末装置3を操作するユーザの全身を撮像することが可能な範囲であってもよい。なお、撮像部32の撮像方向は、z軸負方向と一致していてもよいし、z軸負方向とy軸正方向との間となる方向でもよいし、z軸負方向から所定角度ずれた方向でもよい。端末装置3は、撮像部32が撮像した画像データを解析して得られる撮像画像内のユーザ位置に基づいて、当該ユーザに対する実空間における端末装置3の位置および姿勢等を検出するためのシステムを有しており、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速な端末装置3の動きでも追跡して解析することができる。撮像部32は、後述するCPU36と接続されており、所定のサンプリング周期またはCPU36の指示にしたがって画像を撮像し、撮像した画像データをCPU36に出力する。撮像部32は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)とレンズとを含み、RGBカメラや距離カメラ、IRカメラ(赤外線カメラ)等で構成されてもよい。
次に、図4を参照して、情報処理装置2および端末装置3を含む入力処理システム1について説明する。なお、図4は、情報処理装置2および端末装置3を含む入力処理システム1の一例を示すブロック図である。
図4に示すように、情報処理装置2は、CPU21、メモリ22、プログラム記憶部23、および通信部24を備える。CPU21は、メモリ22を用いて所定の情報処理プログラムを実行することによって、例えば端末装置3によって指し示された位置を示すポインタ画像PIをモニタ4に表示させたり、プレイヤオブジェクトが登場する仮想世界の画像をモニタ4に表示させたりする表示制御処理を実行する。なお、情報処理装置2は、情報処理を実行することができればどのような構成であってもよく、例えば情報処理の一部または全部が専用回路によって実行されてもよい。
プログラム記憶部23は、上記情報処理プログラムを記憶する。プログラム記憶部23は、CPU21がアクセス可能な任意の記憶装置である。プログラム記憶部23は、例えばハードディスク等の、情報処理装置2に内蔵される記憶部であってもよいし、例えば光ディスク等の、情報処理装置2に着脱可能な記憶部であってもよい。また、プログラム記憶部23は、CPU21とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU21は、プログラムの一部または全部を適宜のタイミングでメモリ22に読み出し、読み出されたプログラムを実行するようにしてもよい。
通信部24は、端末装置3との間で無線通信する無線コントローラモジュールとして機能し、端末装置位置データ、端末装置姿勢データ、および操作データ等を含む端末データを端末装置3から繰り返し受信する。
端末装置3は、ユーザの操作を受け付け、ユーザの操作を表す操作データを生成する入力部として、操作部(方向指示部)33の他に、加速度センサ34およびジャイロセンサ35を備えている。加速度センサ34およびジャイロセンサ35は、端末装置3の動きや姿勢を算出するためのセンサの一例である。例えば、端末装置3は、3軸の加速度センサ34を備えていてもよい。3軸の加速度センサ34は、3方向、すなわち、上下方向(図2に示すy軸)、左右方向(図2に示すx軸)、および前後方向(図2に示すz軸)それぞれに生じる直線加速度を検知する。また、端末装置3は、3軸のジャイロセンサ35を備えていてもよい。3軸の加速度センサ35は、3方向周り、すなわち、上下方向周り(図2に示すy軸周り)、左右方向周り(図2に示すx軸周り)、および前後方向周り(図2に示すz軸周り)それぞれに生じる角速度を検知する。なお、端末装置3の動きや姿勢を算出するためのセンサとして、磁気センサを備えていてもよい。
端末装置3は、CPU36、メモリ37、プログラム記憶部38、および通信部39を備える。CPU36は、メモリ37を用いて入力処理プログラムを実行することによって、撮像部32によって撮像されたユーザの撮像画像を用いて、端末装置3を操作するユーザに対する端末装置3の位置および姿勢を算出する入力処理を実行する。また、CPU36は、加速度センサ34が検出した加速度およびジャイロセンサ35が検出した角速度を用いて、上記端末装置3の位置および姿勢を補完する処理を行うこともある。なお、端末装置3は、上記入力処理を実行することができればどのような構成であってもよく、例えば入力処理の一部または全部が専用回路によって実行されてもよい。
プログラム記憶部38は、上記入力処理プログラムを記憶する。プログラム記憶部38は、CPU36がアクセス可能な任意の記憶装置である。プログラム記憶部38は、端末装置3に着脱可能な記憶部であってもよい。また、プログラム記憶部38は、CPU36とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU36は、プログラムの一部または全部を適宜のタイミングでメモリ37に読み出し、読み出されたプログラムを実行するようにしてもよい。
通信部39は、情報処理装置2との間で無線通信する無線コントローラモジュールとして機能し、操作部33、加速度センサ34、およびジャイロセンサ35の少なくとも1つによって生成された操作データ、上記ユーザに対する端末装置3の位置を示す端末装置位置データ、および上記ユーザに対する端末装置3の姿勢を示す端末装置姿勢データ等(以下、端末データと記載する)を、情報処理装置2へ送信する。上記端末データは、例えば一定時間に1回の割合で繰り返し、端末装置3から情報処理装置2へ送信される。情報処理装置2は、端末データを入力として用いて上記情報処理を実行する。
モニタ4は、生成された画像を表示し生成された音声を出力する表示装置の一例である。モニタ4は、情報処理装置2から送信されるデータを取得可能である。情報処理装置2において生成された画像がモニタ4へ出力されてくると、モニタ4は当該画像を表示する。
なお、本実施形態においては、表示装置と入力装置とが一体となった端末装置3を用いているが、他の実施形態においては、表示装置と入力装置とが別体として設けられてもよい。この場合、端末装置3が入力装置のみとして機能し、情報処理装置2は、モニタ4のみに画像を表示させてもよい。
次に、図5〜図11を参照して、本実施形態における入力処理の概要について説明する。なお、図5は、端末装置3によって指し示す位置にポインタ画像PIが表示される様子の一例を示す図である。図6は、図5の状態の端末装置3の撮像部32によって撮像される撮像画像の一例を示す図である。図7は、図5の位置から動かされた端末装置3によって指し示す位置にポインタ画像PIが表示される様子の一例を示す図である。図8は、図7の状態の端末装置3の撮像部32によって撮像される撮像画像の一例を示す図である。図9は、端末装置3で撮像された撮像画像を用いた入力処理の一例を説明するための図である。図10は、実空間におけるユーザを基準として算出される丹間当装置3の位置および姿勢の一例を示す図である。図11は、端末装置3およびモニタ4に表示される画像の他の例を示す図である。
図5および図6において、端末装置3を操作するユーザは、当該端末装置3を用いてモニタ4の表示画面の中央のポインティング位置を指し示すように操作している。このとき、端末装置3の後端部に設けられた撮像部32は、表示画面をポインティングしている逆方向を撮像することになるため、当該ポインティング操作しているユーザの前方から当該ユーザを撮像することになる。図6の例では、撮像部32は、撮像画像のほぼ中央にユーザの上半身を撮像している。この場合、端末装置3のCPU36は、上記撮像画像に撮像されているユーザの撮像位置、撮像方向、撮像サイズ等に基づいて、実空間におけるユーザを基準とした端末装置3の位置および当該位置における端末装置3の姿勢を算出して、当該端末装置3の位置および姿勢を示すデータを情報処理装置2へ送信する。そして、情報処理装置2は、取得した端末装置3の位置および姿勢を示すデータを用いて、端末装置3が指し示している表示画面上の位置を算出し、当該位置にポインタ画像PIが表示されるように表示制御する。
図5における端末装置3の状態からユーザが右(図5に示す矢印方向)へ平行移動させるポインティング操作を想定する。この場合、図7に示すように、端末装置3がモニタ4の表示画面に向かって右へ平行移動し、ユーザに対しても端末装置3が右へ平行移動することになる。したがって、端末装置3の後端部に設けられた撮像部32がユーザを撮像する視点が、図5の位置に対してユーザから右方向へ移動した位置となるため、結果的に図8に示すように撮像画像のほぼ中央から右側へ移動したユーザの上半身を撮像することになる。つまり、ユーザが端末装置3を右側に平行移動させた場合、撮像部32で撮像される撮像画像におけるユーザ画像の位置も右側に移動する。このような撮像画像内におけるユーザ画像の位置変化を検出することによって、端末装置3が指し示している位置の変化を算出することができる。図7に示すように、当該例では、端末装置3がモニタ4の表示画面に向かって右へ平行移動したため、端末装置3を用いて指し示すポインティング位置も向かって右へ移動して、ポインタ画像PIも向かって右へ移動して表示されることになる。
上述した例は、端末装置3が実空間内でユーザに対して左右に平行移動する例であったために、撮像画像内でユーザ画像が移動する位置変化となるが、端末装置3が他の移動態様で移動した場合であっても端末装置3の実空間における位置や姿勢を上記撮像画像から算出することができる。例えば、端末装置3がユーザに対して回転移動した場合、端末装置3の後端部に設けられた撮像部32がユーザを見る方向が変化するため、上記撮像画像においてユーザが撮像されている方向が変化する。したがって、撮像画像内においてユーザが撮像されている方向の変化を検出することによって、端末装置3が指し示している方向の変化を算出することができる。
また、端末装置3とユーザとの距離が変化するように端末装置3が移動した場合、端末装置3の後端部に設けられた撮像部32とユーザとの距離が変化するため、上記撮像画像におけるユーザ画像のサイズが変化する。したがって、撮像画像内におけるユーザ画像のサイズの変化を検出することによって、端末装置3とユーザとの距離の変化を算出することができる。
実際にユーザが端末装置3を操作する場合、上述した移動態様が組み合わせられた状態となることが考えられる。このような移動態様の場合であっても、上記撮像画像におけるユーザの位置、ユーザが撮像されている方向、およびユーザが撮像されているサイズを同時に検出することによって、複雑な移動態様で移動する端末装置3の動きでも追跡して解析することができる。
なお、撮像部32は、端末装置3からユーザへの方向を撮像するため、ポインティング操作中は当該ポインティングしている表示画面を撮像することができないため、当該表示画面と端末装置3との位置関係が不明となることが考えられる。本実施例では、上記表示画面、ユーザ、および端末装置3との間の位置関係が予め定められた位置関係になった状態で初期設定し、当該初期設定状態からの撮像画像の変化に基づいて、端末装置3の位置変化および姿勢変化を算出して、上記位置関係を逐次算出する。例えば、上記初期設定においては、表示および/または音声によって所定の姿勢で端末装置3を操作するようにユーザに促す報知を行い、当該報知後に撮像画像におけるユーザ画像の変化や端末装置3に生じる加速度や角速度が安定したことに応じて、上記予め定められた位置関係になったと仮定して以降の入力処理を行ってもよい。
また、上述した例では、端末装置3のハウジング31後端部に撮像部32が設けられる例を用いたが、撮像部32は他の位置に設けられてもよい。例えば、撮像部32は、端末装置3のハウジング31前端部から突出した部材内に設けられ、当該部材内から端末装置3を操作するユーザを撮像するように構成されてもよい。また、撮像部32は、端末装置3のハウジング31の左端部、右端部、上面、下面等、端末装置3を操作するユーザを撮像可能な位置であれば、他の位置に設けられてもよい。
また、撮像部32によって撮像された撮像画像だけでなく、他のデータを組み合わせてユーザに対する端末装置3の位置および姿勢を算出することも考えられる。例えば、上述したように、端末装置3には端末装置3の動きや姿勢を算出するためのセンサ(加速度センサ34およびジャイロセンサ35)が内蔵されている。例えば、加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて算出された端末装置3の位置および姿勢を用いて、上記撮像画像によって算出された端末装置3の位置および姿勢を補完することが考えられる。第1の例として、ユーザに対する端末装置3の位置を上記撮像画像に基づいて算出し、ユーザに対する端末装置3の姿勢を加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて算出することが考えられる。第2の例として、上記撮像画像内にユーザが撮像されていない場合、ユーザに対する端末装置3の位置および姿勢を加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて算出して補完することが考えられる。第3の例として、上記撮像画像に基づいて算出されたユーザに対する端末装置3の位置および姿勢と、加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて算出されたユーザに対する端末装置3の位置および姿勢との両方を用いて、正確であると推定される方を用いたり、両方の平均を用いたりすることが考えられる。第4の例として、加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて実空間におけるユーザの動作を算出し、当該動作後のユーザの位置および姿勢を基準として、当該動作後のユーザに対する端末装置3の位置を上記撮像画像に基づいて算出することが考えられる。なお、上述した補完の例の少なくとも2つを組み合わせてユーザに対する端末装置3の位置および姿勢を算出してもよいことは言うまでもない。また、加速度センサ34および/またはジャイロセンサ35によって検出された加速度および/または角速度に基づいて算出された端末装置3の位置および姿勢を用いて、上記撮像画像によって算出された端末装置3の位置および姿勢を補完する例を用いたが、端末装置3に設けられた磁気センサによって検出されたデータに基づいて算出された端末装置3の位置および姿勢を用いて、上記撮像画像によって算出された端末装置3の位置および姿勢を補完してもよい。
次に、図9を参照して、端末装置3で撮像された撮像画像においてユーザ画像の変化を検出する一例について説明する。本実施例では、撮像画像内に撮像されているユーザ画像に対して複数の特徴点を抽出し、当該特徴点を追跡することによって当該撮像画像内におけるユーザ画像の変化を検出する。
図9において、端末装置3の撮像部32で撮像された撮像画像に当該端末装置3を操作するユーザが撮像されている場合、当該ユーザの画像(ユーザ画像)に対して画像解析が行われる。当該画像解析の第1段階として、上記撮像画像内のユーザ画像から端末装置3を操作するユーザの顔を示す顔画像を抽出する(図9(A))。ここで、上記撮像画像から顔画像を抽出する技術は、既存の顔検出技術を用いればよい。
上記画像解析の第2段階として、上記抽出された顔画像の位置に基づいて、上記ユーザ画像における他の体部分を推定する処理を行う(図9(B))。例えば、上記ユーザ画像において、端末装置3を操作するユーザの胴体を示す胴体画像は、上記抽出された顔画像の下方向に撮像されているはずであり、当該位置関係に基づいてユーザの体部分画像(ここでは、胴体画像)を推定する。なお、上述した処理手順では、抽出されたユーザの顔画像との撮像位置関係に基づいて胴体画像を推定しているが、他の方法を用いて、ユーザの胴体画像を推定してもかまわない。例えば、後述するユーザのシルエットを検出する方法を用いて、当該ユーザの胴体を示す画像を上記撮像画像内から推定してもかまわない。
上記画像解析の第3段階として、端末装置3を操作するユーザの胴体が撮像された画像として推定された上記胴体画像から、複数の特徴点を抽出する(図9(C))。ここで、上記特徴点は、端末装置3とユーザとの相対位置を算出するために用いる上記撮像画像におけるポイントであり、一例として上記胴体画像内から複数設定される。例えば、上記特徴点は、撮像画像内のエッジや特定色等、当該撮像画像内をトラッキングするために他の画像と区別可能な情報量を有するポイントから設定される。また、上記特徴点は、上記撮像画像内における背景を除いたユーザ画像内から設定されるが、特にユーザの身体部位の中でも相対的に動きが少ない体幹(例えば、胴体部分)を示す画像内から設定される。また、上記特徴点は、端末装置3の撮像部32に対してオクルージョン(隠れ)が発生した場合であっても、複数の特徴点のうち少なくとも一部の特徴点が撮像されるように、相対的に広い範囲の画像内から設定される。本実施例では、上記第1段階で抽出されたユーザの顔画像の位置および大きさを基準として、当該ユーザの胴体に対応する領域を抽出し、当該領域を中心としてトラッキングに適した複数の特徴点候補を抽出する。そして、特徴点候補からユーザの体の中心線に沿ったものを優先的に選択して、トラッキングに用いる上記複数の特徴点を決定している。
なお、上記特徴点は、1つ抽出してもよい。また、上記特徴点は、胴体画像から抽出するだけでなく、ユーザ画像内においてほぼ剛体のように見なせる部分(例えば、変形しない部分)から抽出してもよい。一例として、ユーザの頭部が撮像された画像として推定された頭部画像から上記特徴点を抽出してもよい。この場合、上記抽出された顔部分の画像を直接用いた特徴点の抽出が可能となるため、上述した胴体部分を推定する処理が不要となる。
また、ユーザが身につける服装や装着物が予め設定されている場合、当該服装のテクスチャーデータや当該装着物における少なくとも一部の外観を示す外観データ等を予め用意して、これらのテクスチャーデータや外観データと類似する画像を上記特徴点として抽出してもよい。また、ユーザが予め定められたマーカを身体に貼り付けたり身につけたりする場合、当該マーカが撮像されている撮像領域を特徴点として設定してもかまわない。上記マーカを用いる場合、上記第1段階〜上記第3段階における画像解析処理の一部又は全部が不要となることもある。
上記画像解析の第4段階として、上記撮像画像のフレーム毎に上記特徴点を追跡する(図9(D))。なお、上記特徴点を追跡する際には、人間の動きの速さの限界および撮像部32のフレームレートを考慮して、上記撮像画像内から上記特徴点を探索する探索範囲を絞り込むことによって、特徴点追跡のための処理負荷を軽減させてもよい。また、上記第1段階〜第3段階における画像解析を適宜行って上記特徴点の追跡をサポートすることによって、上記特徴点の追跡を正確に行ってもよい。
上述した画像解析を行うことによって上記撮像画像のフレーム毎に上記特徴点の位置を抽出し、当該撮像画像のフレーム毎に当該特徴点の移動量を算出して、実空間における端末装置3の位置および姿勢を算出する。例えば、図10に示すような、実空間における端末装置3を操作するユーザを基準とする3次元座標空間を用いて、端末装置3の位置および姿勢を算出してもよい。一例として、端末装置3を操作するユーザの左右水平方向をX軸方向(右方向をX軸正方向)とし、当該ユーザの鉛直方向をY軸方向(上方向をY軸正方向)とし、当該ユーザの前後方向をZ軸方向(前方向をZ軸正方向)とする座標系を実空間に設定し、当該座標系に基づいて端末装置3の位置を算出する。また、端末装置3に対して設定されているxyz軸方向(図2参照)の向きを上記座標系において算出し、xyz軸方向それぞれの向き(例えば、実空間における端末装置3のロール、ピッチ、およびヨー方向の姿勢)を端末装置3の姿勢として算出する。
なお、上述したように、撮像部32によって撮像された撮像画像だけでなく、端末装置3の動きや姿勢を算出するためのセンサ(加速度センサ34および/またはジャイロセンサ35)から得られるデータを用いて、上記座標系における位置および姿勢を補完してもよい。
また、上述したように、上記座標系における端末装置3の初期位置および初期姿勢は、所定の姿勢で端末装置3を操作するようにユーザに促す報知を行うことに応じて設定してもよい。例えば、ユーザの正面に端末装置3を把持する腕を差し出して当該端末装置3の前面を前方に指し示すように操作することを促す報知を行い、当該報知後に撮像画像におけるユーザ画像の変化や端末装置3に生じる加速度や角速度が安定したことに応じて、端末装置3が予め定められた初期位置および初期姿勢で安定していると推定する。この場合、上記座標系において、XYZ軸原点からZ軸正方向へ所定距離離れたZ軸上の位置を端末装置3の初期位置としてもよい。また、上記撮像画像におけるユーザ画像の傾きや端末装置3の動きや姿勢を算出するためのセンサ(加速度センサ34および/またはジャイロセンサ35)から得られるデータから算出される端末装置3の姿勢や、端末装置3のxyz軸正方向がそれぞれXYZ軸正方向に向いた基準姿勢を端末装置3の初期姿勢としてもよい。
また、上述した例では、前後方向(z軸方向)を長手方向とした略直方体形状の端末装置3を用いて指し示すポインティング操作を用いたが、端末装置3は他の形状や機能を有している可搬型装置でもよく、ポインティング操作とは異なる操作が行われてもよい。例えば、図11に示すように、端末装置3は、スマートフォン等の携帯電話であってもよい。例えば、スマートフォン等の携帯電話で端末装置3が構成される場合、端末装置3の表示画面側を撮像方向とする撮像部(いわゆる、内カメラ)で当該端末装置3を操作するユーザを撮像し、当該撮像されたユーザ画像を用いて当該ユーザに対する端末装置3の位置および姿勢を算出してもよい。この場合、算出された端末装置3の位置および姿勢に基づいて、仮想世界に配置されたプレイヤオブジェクトPOを動作させてもよい。例えば、ユーザが端末装置3を把持する右手を上げる操作をした場合、モニタ4および/または端末装置3の表示画面に表示されたプレイヤオブジェクトPOも同じように右手を上げる動作をするようなゲームを実現してもよい。また、実空間における端末装置3の動きや姿勢と同じ動きや姿勢で動作する仮想オブジェクトを仮想世界に配置し、当該仮想オブジェクトを含む仮想世界をモニタ4および/または端末装置3の表示画面に表示して当該仮想オブジェクトの動作を制御してもよい。
また、上述した例では、ユーザの胴体が撮像された胴体画像において抽出された特徴点を追跡することによって、実空間における端末装置3の位置および姿勢を算出したが、他の方法によって端末装置3の位置および姿勢を算出してもよい。例えば、撮像部32によって撮像されている撮像画像におけるユーザのシルエットを抽出し、当該シルエットの位置、サイズ、方向、形状等に基づいて、実空間における端末装置3の位置および姿勢を算出してもよい。例えば、端末装置3を操作するユーザが撮像部32によって撮像された撮像画像が得られた場合、当該撮像画像には当該ユーザを示すユーザ画像とその背景画像とが撮像されていることが考えられる。この場合、撮像部32からユーザまでの距離に対して、撮像部32から背景までの距離が相対的に長いため、撮像部32がユーザに対して移動した場合に当該ユーザ画像と当該背景画像との動きが異なる。例えば、ユーザに対して端末装置3が上下または左右に平行移動した場合、撮像画像内におけるユーザ画像の動きは背景画像の動きより大きくなる。このような画像の動きの違いに基づいて、撮像画像内におけるユーザ画像と背景画像とを区別することによって、当該撮像画像におけるユーザのシルエット(輪郭)を抽出することができる。このように抽出されたユーザのシルエットの位置、サイズ、方向、形状等を用いれば、当該ユーザに対する端末装置3の位置および姿勢を算出することができる。なお、上述した撮像画像におけるユーザのシルエットの抽出処理においては、端末装置3の動きや姿勢を算出するためのセンサ(加速度センサ34および/またはジャイロセンサ35)から得られるデータを用いて端末装置3の動作を推定し、当該推定された端末装置3の動作に基づいて上記撮像画像内におけるユーザ画像および背景画像の動きを予測してもよい。
また、上記撮像画像におけるユーザのシルエットの抽出方法については、他の方法で行ってもよい。第1の例として、事前に人間のシルエットとして取り得る形状を準備し、撮像部32によって撮像された撮像画像に対してエッジ検出を行ったエッジの形状との間でパターンマッチングすることによって、ユーザのシルエットを抽出してもよい。また、第2の例として、端末装置3の撮像部32を距離カメラで構成したり、端末装置3に距離センサを内蔵したりすることによって、端末装置3とユーザとの間の距離と端末装置3と背景との距離との違いに基づいて、ユーザのシルエットを抽出してもよい。また、第3の例として、端末装置3の撮像部32を熱画像が撮像可能なカメラ(サーモグラフィ)で構成したり、端末装置3に温度センサを内蔵したりすることによって、撮像画像における人間の体温に近い領域をユーザのシルエットとして抽出してもよい。
また、上述した例では、1台の端末装置3を1人のユーザが操作する例を用いたが、複数のユーザがそれぞれ異なる端末装置3を操作してもよい。この場合、各端末装置3の撮像部32がそれぞれ別のユーザを撮像し、各端末装置3それぞれにおいて当該端末装置3を操作するユーザに対する当該端末装置3の位置および姿勢を算出すればよい。したがって、複数のユーザがそれぞれ異なる端末装置3を操作する場合、各端末装置3においてそれぞれのユーザを基準とする当該端末装置3の位置および姿勢が算出されることになる。
また、上述した例では、1台の端末装置3を1人のユーザが操作する例を用いたが、1人のユーザが2つの端末装置3を操作してもよい。この場合、各端末装置3の撮像部32がそれぞれ同じユーザを撮像し、各端末装置3それぞれにおいて同じユーザに対する当該端末装置3の位置および姿勢をそれぞれ算出する。したがって、各端末装置3から当該端末装置3の位置および姿勢を示すデータをそれぞれ取得することによって、情報処理装置2が1人のユーザに対する複数の端末装置3の位置および姿勢を把握することができ、複数の端末装置3の位置関係を同じ座標系を用いて算出することができる。
次に、端末装置3において行われる入力処理の詳細を説明する。まず、図12を参照して、端末装置3において行われる入力処理において用いられる主なデータについて説明する。なお、図12は、端末装置3のメモリ37に記憶される主なデータおよびプログラムの一例を示す図である。
図12に示すように、メモリ37のデータ記憶領域には、撮像画像データDa、加速度データDb、角速度データDc、操作データDd、顔画像データDe、体部分データDf、特徴点データDg、端末装置位置データDh、端末装置姿勢データDi、基準姿勢位置設定フラグデータDj、基準姿勢位置設定データDk、および受信データDl等が記憶される。なお、メモリ37には、図12に示すデータの他、他のアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ37のプログラム記憶領域には、入力処理プログラムを構成する各種プログラム群Paが記憶される。
撮像画像データDaは、撮像部32によって撮像された撮像画像を示すデータであり、撮像部32のフレームレートに応じて最新の撮像画像を示すデータに更新される。
加速度データDbは、端末装置3に生じる加速度を示すデータであり、加速度センサ34から出力される加速度を示すデータである。角速度データDcは、端末装置3に生じる角速度を示すデータであり、ジャイロセンサ35から出力される角速度を示すデータである。操作データDdは、操作部33に対する操作内容を示すデータであり、例えば操作部33を用いて方向指示操作された内容を示すデータである。
顔画像データDeは、撮像画像から検出されたユーザの顔を示す顔画像を示すデータ(例えば、撮像画像においてユーザの顔を示す領域や位置を示すデータ)である。体部分データDfは、撮像画像から推定されたユーザの体部分を示すデータであり、例えばユーザの胴体を示す胴体画像の領域を示すデータである。
特徴点データDgは、撮像画像から抽出された複数の特徴点を示すデータであり、特徴点それぞれに対する撮像画像上の位置や移動量等を示すデータである。
端末装置位置データDhは、ユーザに対する端末装置3の位置を示すデータであり、例えばユーザを基準とする実空間の3次元位置を示すデータである。端末装置姿勢データDiは、ユーザに対する端末装置3の姿勢を示すデータであり、例えばユーザを基準とする実空間におけるxyz軸それぞれの向きを示すデータである。
基準姿勢位置設定フラグデータDjは、端末装置3の基準姿勢位置を設定する際にオンに設定され当該設定後にオフに設定される基準姿勢位置設定フラグを示すデータである。基準姿勢位置設定データDkは、端末装置3の基準姿勢位置を示すデータであり、例えばユーザを基準とする実空間における3次元位置およびxyz軸それぞれの向きを示すデータである。受信データDlは、他の装置(例えば、情報処理装置2)から適宜受信したデータであり、例えば端末装置3の基準姿勢位置を設定中であることを情報処理装置2から指示された基準設定コマンドを示すデータが含まれる。
次に、図13を参照して、端末装置3において行われる入力処理の詳細を説明する。なお、図13は、端末装置3(CPU36)において実行される入力処理の一例を示すフローチャートである。ここで、図13に示すフローチャートにおいては、端末装置3における処理のうち、端末装置3の位置および姿勢を算出する入力処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図13に示す一連の処理は、CPU36が、プログラム記憶部38に記憶される入力処理プログラムを実行することによって行われる。
なお、図13に示す入力処理が開始されるタイミングは任意である。例えば、情報処理装置2において端末装置3の位置および姿勢を必要とするアプリケーションの実行が開始されたことや入力処理を行う操作をユーザが行ったこと等に応じて入力処理プログラムの実行が開始されてもよい。このとき、入力処理プログラムは、適宜のタイミングでその一部または全部がメモリ37に読み出され、CPU36によって実行される。これによって、図13に示す一連の処理が開始される。なお、入力処理プログラムは、端末装置3内のプログラム記憶部38に予め記憶されているものとする。ただし、他の実施形態においては、端末装置3に着脱可能な記憶媒体から取得されてメモリ37に記憶されてもよいし、インターネット等のネットワークを介して情報処理装置2や他の装置から取得されてメモリ37に記憶されてもよい。
また、図13に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU36が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
図13において、CPU36は、初期設定を行い(ステップ61)、次のステップに処理を進める。例えば、CPU36は、初期設定として、入力処理を行う際に用いる各パラメータを初期化する。
次に、CPU36は、撮像画像を取得し(ステップ62)、次のステップに処理を進める。例えば、CPU36は、撮像部32が撮像した撮像画像を取得し、当該撮像画像を示すデータを用いて撮像画像データDaを更新する。
次に、CPU36は、端末装置3に生じる加速度を示すデータを取得し(ステップ63)、次のステップに処理を進める。例えば、CPU36は、加速度センサ34が検出した加速度(すなわち、x軸方向への加速度、y軸方向への加速度、およびz軸方向への加速度)を示すデータを取得し、当該データを用いて加速度データDbを更新する。
次に、CPU36は、端末装置3に生じる角速度を示すデータを取得し(ステップ64)、次のステップに処理を進める。例えば、CPU36は、ジャイロセンサ35が検出した角速度(すなわち、x軸方向周りの角速度、y軸方向周りの角速度、およびz軸方向周りの角速度)を示すデータを取得し、当該データを用いて角速度データDcを更新する。
次に、CPU36は、端末装置3に設けられている操作部33に対する操作を示すデータを取得し(ステップ65)、次のステップに処理を進める。例えば、CPU36は、操作部33(例えば、方向指示部)に対して行われた操作内容を示すデータを取得し、当該データを用いて操作データDdを更新する。
次に、CPU36は、撮像画像から特徴点を抽出するか否かを判定する(ステップ66)。例えば、CPU36は、現時点が図9を用いて説明した上記第1段階〜上記第3段階における撮像画像に対する画像解析によってユーザ画像から特徴点を抽出する処理を行うタイミングである場合、上記ステップ66において肯定判定する。一例として、特徴点を抽出する処理が行われていない初期段階である場合や現時点が上記第1段階〜第3段階における画像解析を行って特徴点の追跡をサポートするタイミングである場合、上記ステップ66において肯定判定する。そして、CPU36は、特徴点を抽出する処理を行う場合、ステップ67に処理を進める。一方、CPU36は、特徴点を抽出する処理を行わない場合、ステップ70に処理を進める。
ステップ67において、CPU36は、撮像部32が撮像した撮像画像内のユーザ画像から端末装置3を操作するユーザの顔を示す顔画像を検出(図9(A)参照)し、次のステップに処理を進める。例えば、CPU36は、撮像画像データDaが示す最新の撮像画像に対して所定の顔検出技術を用いて顔画像を検出し、当該撮像画像に対する顔画像の領域や位置を示すデータを用いて顔画像データDeを更新する。
次に、CPU36は、上記ステップ67で検出された顔画像の位置に基づいて、撮像部32が撮像した撮像画像内のユーザ画像における体部分の画像(例えば、ユーザの胴体を示す胴体画像)を推定(図9(B)参照)し(ステップ68)、次のステップに処理を進める。例えば、上記胴体画像は、上記検出された顔画像の下方向に撮像されているはずであり、CPU36は、当該位置関係に基づいてユーザの胴体画像を推定し、当該撮像画像に対する胴体画像の領域を示すデータを用いて体部分データDfを更新する。
次に、CPU36は、上記ステップ68において推定されたユーザ画像における体部分の画像(例えば、胴体画像)から、複数の特徴点を抽出して設定(図9(C)参照)する処理を行い(ステップ69)、ステップ70に処理を進める。上述したように、上記ステップ69において抽出する特徴点は、端末装置3とユーザとの相対位置を算出するために用いる撮像画像におけるポイントであり、予め定められた特徴に基づいて上記胴体画像から抽出される。そして、CPU36は、抽出された特徴点毎に上記撮像画像上の位置を算出して、当該特徴点毎の位置を示すデータを用いて特徴点データDgを更新する。
ステップ70において、CPU36は、端末装置3の基準姿勢位置が設定済であるか否かを判定する。そして、CPU36は、基準姿勢位置データDkに端末装置3の基準姿勢位置を示すデータが設定されていない場合、ステップ71に処理を進める。一方、CPU36は、既に基準姿勢位置データDkに端末装置3の基準姿勢位置を示すデータが設定されている場合、ステップ74に処理を進める。
ステップ71において、CPU36は、現時点が端末装置3の基準姿勢位置を設定する期間であるか否かを判定する。例えば、情報処理装置2から基準姿勢位置を設定する期間が開始されたことを示す基準設定コマンドを受信した場合や基準姿勢位置設定フラグデータDjが示す基準姿勢位置設定フラグがオンに設定されて場合、CPU36は、現時点が基準姿勢位置を設定する期間であると判定する。他の例として、CPU36は、撮像画像データDaが示す最新の撮像画像において、端末装置3を操作するユーザの顔正面が撮像されている場合、現時点が基準姿勢位置を設定する期間であると判定してもよい。そして、CPU36は、現時点が基準姿勢位置を設定する期間である場合、基準姿勢位置設定フラグデータDjが示す基準姿勢位置設定フラグをオンに設定してステップ72に処理を進める。一方、CPU36は、現時点が基準姿勢位置を設定する期間でない場合、ステップ76に処理を進める。
ステップ72において、CPU36は、端末装置3の姿勢や動作が安定しているか否かを判定する。例えば、CPU36は、加速度データDbが示す加速度の値、角速度データDcが示す角速度の値、および/または特徴点データDgが示す各特徴点の移動量が所定の閾値以下である場合、端末装置3の姿勢や動作が安定していると判定する。そして、CPU36は、端末装置3の姿勢や動作が安定している場合、ステップ73に処理を進める。一方、CPU36は、端末装置3の姿勢や動作が安定していない場合、ステップ76に処理を進める。
ステップ73において、CPU36は、端末装置3の姿勢および位置を予め定められた基準姿勢および基準位置(基準姿勢位置)に設定し、ステップ73に処理を進める。例えば、CPU36は、端末装置3を操作するユーザの左右水平方向をX軸方向(右方向をX軸正方向)とし、当該ユーザの鉛直方向をY軸方向(上方向をY軸正方向)とし、当該ユーザの前後方向をZ軸方向(前方向をZ軸正方向)とする座標系を実空間に設定する。そして、CPU36は、上記座標系において、XYZ軸原点からZ軸正方向へ所定距離離れたZ軸上の位置を端末装置3の基準位置として設定し、当該基準位置を示すデータを用いて端末装置位置データDhを更新するとともに、基準姿勢位置設定データDhの基準位置を示すデータとして格納する。また、CPU36は、上記座標系において予め定められた姿勢(例えば、端末装置3のxyz軸正方向がそれぞれXYZ軸正方向に向いた姿勢)または撮像画像データDaが示す撮像画像におけるユーザ画像の傾きや加速度データDbが示す加速度の値および角速度データDcが示す角速度の値から算出される端末装置3の姿勢を端末装置3の基準姿勢として設定し、当該基準姿勢を示すデータを用いて端末装置姿勢データDiを更新するとともに、基準姿勢位置設定データDhの基準姿勢を示すデータとして格納する。また、CPU36は、基準姿勢位置設定フラグデータDjが示す基準姿勢位置設定フラグをオフに設定する。
一方、ステップ74において、CPU36は、撮像画像データDaが示す最新の撮像画像において上記ステップ69において抽出されて設定された特徴点を追跡する処理を行い、次のステップに処理を進める。例えば、CPU36は、特徴点データDgを参照して前回の処理において設定されている各特徴点の撮像画像に対する位置を取得し、当該位置に基づいて上記最新の撮像画像に対する各特徴点の位置を追跡する。一例として、CPU36は、人間が動く速度の限界や撮像部32のフレームレートを考慮して、前回の処理において設定されている特徴点の位置から移動し得る範囲を設定し、当該設定された範囲を探索範囲として各特徴点の位置を探索してもよい。そして、CPU36は、上記最新の撮像画像上の各特徴点の位置を算出して、当該特徴点毎の位置を示すデータを用いて特徴点データDgを更新する。また、CPU36は、前回の処理において設定されていた各特徴点の位置と今回の処理において設定された各特徴点の位置との差分を用いて、上記撮像画像における各特徴点の移動量および移動方向を算出し、当該移動量および移動方向を示すデータを用いて特徴点データDgを更新する。
次に、CPU36は、実空間における端末装置3の位置および姿勢を算出し(ステップ75)、ステップ76に処理を進める。例えば、CPU36は、上述した実空間のユーザを基準とした座標系における端末装置3の位置を、各特徴点の位置、移動量、および移動方向と前回の処理において算出された端末装置3の位置および姿勢(すなわち、端末装置位置データDhおよび端末装置姿勢データDiが示すデータ)とに基づいて算出する。また、CPU36は、上記座標系における端末装置3に対して設定されているxyz軸方向(図2参照)の向きを、各特徴点の位置、移動量、および移動方向と前回の処理において算出された端末装置3の位置および姿勢とに基づいて算出する。そして、CPU36は、算出された端末装置3の位置を示すデータを用いて端末装置位置データDhを更新し、算出された端末装置3の向きを示すデータを用いて端末装置姿勢データDiを更新する。
ステップ76において、CPU36は、情報処理装置2へデータを送信する処理を行い、次のステップに処理を進める。例えば、CPU36は、端末装置位置データDhが示す端末装置3の位置を示すデータおよび端末装置姿勢データDiが示す端末装置3の姿勢を示すデータに、必要に応じて加速度データDbが示す端末装置3に生じる加速度を示すデータ、角速度データDcが示す端末装置3に生じる角速度を示すデータ、および/または操作データDdが示す操作部33に対する操作内容を示すデータを必要に応じて加えた送信データを生成し、通信部39を介して当該送信データを情報処理装置2へ送信する処理を行う。また、CPU36は、上記ステップ73における基準姿勢位置が設定された際、当該設定が行われたことを示すデータまたは設定された基準姿勢位置を示すデータを上記送信データに加えて送信してもよい。
次に、CPU36は、入力処理を終了するか否かを判定する(ステップ77)。入力処理を終了する条件としては、例えば、ユーザが入力処理を終了する操作を行ったことや、情報処理装置2や端末装置3の電源がオフされたこと等がある。CPU36は、入力処理を終了しない場合に上記ステップ62に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ62〜ステップ77の一連の処理は、ステップ77で処理を終了すると判定されるまで繰り返し実行される。
次に、情報処理装置2において行われる入力処理の詳細を説明する。まず、図14を参照して、情報処理装置2において行われる入力処理において用いられる主なデータについて説明する。なお、図14は、情報処理装置2のメモリ22に記憶される主なデータおよびプログラムの一例を示す図である。
図14に示すように、メモリ22のデータ記憶領域には、端末データDm、基準姿勢位置データDn、ポインティング位置データDo、画像データDp、および送信データDq等が記憶される。なお、メモリ22には、図14に示すデータの他、他のアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ22のプログラム記憶領域には、入力処理プログラムを構成する各種プログラム群Pbが記憶される。
端末データDmは、端末装置3から受信したデータであり、端末装置位置データDm1、端末装置姿勢データDm2、加速度データDm3、角速度データDm4、および操作データDm5等を含んでいる。端末装置位置データDm1は、端末装置3の位置を示すデータである。端末装置姿勢データDm2は、端末装置3の姿勢を示すデータである。加速度データDm3は、端末装置3に生じている加速度を示すデータであり、加速度センサ34から出力される加速度を示すデータである。角速度データDm4は、端末装置3に生じている角速度を示すデータであり、ジャイロセンサ35から出力される角速度を示すデータである。操作データDm5は、端末装置3に設けられた操作部33を用いて操作された内容を示すデータである。
基準姿勢位置データDnは、端末装置3の基準姿勢位置を示すデータであり、例えばユーザを基準とする実空間における3次元位置およびxyz軸それぞれの向きを示すデータである。
ポインティング位置データDoは、端末装置3を用いてモニタ4の表示画面を指示しているポインティング位置を示すデータである。画像データDpは、背景画像、オブジェクト画像、およびポインタ画像等をモニタ4に表示するためのデータである。送信データDqは、端末装置3へ送信するデータである。
次に、図15を参照して、情報処理装置2において行われる入力処理の詳細を説明する。なお、図15は、情報処理装置2(CPU21)において実行される入力処理の一例を示すフローチャートである。ここで、図15に示すフローチャートにおいては、情報処理装置2における処理のうち、端末装置3から受信した端末データに基づいた画像をモニタ4に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図15に示す一連の処理は、CPU21が、プログラム記憶部23に記憶される入力処理プログラムを実行することによって行われる。
なお、図15に示す入力処理が開始されるタイミングは任意である。例えば、入力処理を実行する指示をユーザが行ったことに応じて入力処理プログラムの実行が開始されてもよい。このとき、入力処理プログラムは、適宜のタイミングでその一部または全部がメモリ22に読み出され、CPU21によって実行される。これによって、図15に示す一連の処理が開始される。なお、入力処理プログラムは、情報処理装置2内のプログラム記憶部23に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置2に着脱可能な記憶媒体から取得されてメモリ22に記憶されてもよいし、インターネット等のネットワークを介して取得されてメモリ22に記憶されてもよい。
また、図15に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU21が実行するものとして説明するが、上記フローチャートにおける一部または全部のステップの処理を、上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
図15において、CPU21は、初期設定を行い(ステップ81)、次のステップに処理を進める。例えば、CPU21は、初期設定として、入力処理を行う際に用いる各パラメータを初期化する。
次に、CPU21は、端末装置3から端末データを取得し(ステップ82)、次のステップに処理を進める。例えば、CPU21は、通信部24を介して端末装置3から送信された送信データを取得し、当該送信データを用いて端末データDmを更新する。
次に、CPU21は、端末装置3の基準姿勢位置を設定するか否かを判定する(ステップ83)。例えば、現時点が入力処理を開始した直後である場合や定期的に基準姿勢位置を設定するタイミングである場合、CPU21は、端末装置3の基準姿勢位置を設定すると判定する。そして、CPU21は、端末装置3の基準姿勢位置を設定する場合、ステップ84に処理を進める。一方、CPU21は、端末装置3の基準姿勢位置を設定しない場合、ステップ88に処理を進める。
ステップ84において、CPU21は、所定の姿勢で端末装置3を操作するようにユーザに促す基準設定操作報知処理を行い、次のステップに処理を進める。例えば、CPU21は、所定の姿勢で端末装置3を操作するようにユーザに促す画像をモニタ4に表示する制御および/または音声をモニタ4のスピーカから出力する制御を行うことによって、所定の操作をユーザに促す。一例として、CPU21は、ユーザの正面に端末装置3を把持する腕を差し出して当該端末装置3の前面を前方のモニタ4の表示画面中央を指し示すような操作をユーザに促してもよい。
次に、CPU21は、基準設定コマンドを端末装置3へ送信して(ステップ85)、次のステップに処理を進める。例えば、CPU21は、基準姿勢位置を設定する期間中であることを示す基準設定コマンドを送信データDqにセットすることによって、通信部24を介して送信データDqにセットされた基準設定コマンドが端末装置3へ送信される。
次に、CPU21は、端末装置3の姿勢や動作が安定しているか否かを判定する(ステップ86)。例えば、CPU21は、加速度データDbが示す加速度の値および/または角速度データDcが示す角速度の値が所定の閾値以下である場合や、端末装置3から基準姿勢位置が設定されたことを示すデータを受信した場合、端末装置3の姿勢や動作が安定していると判定する。そして、CPU21は、端末装置3の姿勢や動作が安定している場合、ステップ87に処理を進める。一方、CPU21は、端末装置3の姿勢や動作が安定していない場合、上記ステップ82に戻って処理を繰り返す。
ステップ87において、CPU21は、端末装置3の姿勢および位置をモニタ4の表示画面に対して予め定められた基準姿勢および基準位置に設定し、ステップ88に処理を進める。例えば、CPU21は、端末装置3を操作するユーザの前後方向であってモニタ4の表示画面の中央と垂直に交差する方向をZ軸方向(ユーザから表示画面に向かう方向をZ軸正方向)とし、当該ユーザの左右水平方向をX軸方向(右方向をX軸正方向)とし、当該ユーザの鉛直方向をY軸方向(上方向をY軸正方向)とする座標系を実空間に設定する。そして、CPU21は、上記座標系において、端末装置3が基準位置として設定している位置(例えば、端末装置位置データDm1が示す位置や端末装置3から送信された基準姿勢位置を示すデータが示す位置)を端末装置3の基準位置として設定し、当該基準位置を示すデータを基準姿勢位置データDnの基準位置を示すデータとして格納する。また、CPU21は、上記座標系において、端末装置3が基準姿勢として設定している位置(例えば、端末装置姿勢データDm2が示す姿勢や端末装置3から送信された基準姿勢位置を示すデータが示す姿勢)を端末装置3の基準姿勢として設定し、当該基準姿勢を示すデータを基準姿勢位置データDnの基準姿勢を示すデータとして格納する。また、CPU21は、上記ステップ84において行っている基準設定操作の報知を取り消す。
ステップ88において、CPU21は、端末装置3の位置および姿勢に基づいて、ポインティング位置を算出し、次のステップに処理を進める。例えば、CPU21は、端末装置位置データDm1および端末装置姿勢データDm2が示す現時点の位置および姿勢を用いて上記座標系に端末装置3を配置し、当該配置された端末装置3が指し示しているモニタ4の表示画面上の位置を算出して、当該位置を示すデータを用いてポインティング位置データDoを更新する。例えば、端末装置位置データDm1および端末装置姿勢データDm2が示す現時点の位置および姿勢が上記ステップ87で設定された基準姿勢位置である場合、CPU21は、モニタ4の表示画面の中央をポインティング位置として算出する。また、端末装置位置データDm1および端末装置姿勢データDm2が示す現時点の位置および姿勢が上記基準姿勢位置と異なる場合、現時点の端末装置3の当該基準姿勢位置からの差分(基準位置からの距離や基準姿勢との角度差)に基づいて、上記座標系に配置された端末装置3が指し示しているモニタ4の表示画面上の位置を算出する。
次に、CPU21は、上記ステップ88において算出されたポインティング位置にポインタ画像を表示する制御を行い(ステップ89)、次のステップに処理を進める。例えば、CPU21は、ポインティング位置データDoが示す表示画面上の位置にポインタ画像(例えば、図5および図7に示すポインタ画像PI参照)を配置してモニタ4の表示画面に表示する制御を行う。
次に、CPU21は、入力処理を終了するか否かを判定する(ステップ90)。入力処理を終了する条件としては、例えば、ユーザが入力処理を終了する操作を行ったことや、情報処理装置2や端末装置3の電源がオフされたこと等がある。CPU21は、入力処理を終了しない場合に上記ステップ82に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ82〜ステップ90の一連の処理は、ステップ90で処理を終了すると判定されるまで繰り返し実行される。
なお、上述した処理手順においては、端末装置3の基準姿勢位置を設定する際に、当該基準姿勢位置を設定する期間であることを示すデータを情報処理装置2から端末装置3へ送信するとともに、基準姿勢位置が設定されたことを示すデータが端末装置3から情報処理装置2へ送信されることによって、情報処理装置2と端末装置3とが連係して基準姿勢位置を設定しているが、他の方法によって端末装置3の基準姿勢位置を設定してもよい。第1の例として、基準設定操作報知において、所定の姿勢で端末装置3を操作しながら所定の操作ボタンを押す操作をユーザに促すことによって、端末装置3は情報処理装置2から基準姿勢位置を設定する期間である通知がなくても、上記操作ボタンが押下されることによって当該期間であることを知ることができる。したがって、第1の例では、情報処理装置2から端末装置3へ基準姿勢位置を設定する期間であることを示すデータを送信しなくても、情報処理装置2と端末装置3とが連係して基準姿勢位置を設定することができる。第2の例として、上記第1の例と同様に基準設定操作報知において、所定の姿勢で端末装置3を操作しながら所定の操作ボタンを押す操作をユーザに促すことによって、端末装置3は情報処理装置2から基準姿勢位置を設定する期間である通知がなくても、上記操作ボタンが押下されることによって当該期間であることを知ることができる。さらに、端末装置3から設定された基準姿勢位置との差分(基準位置からの距離や基準姿勢との角度差)を常に情報処理装置2へ出力し、情報処理装置2では予め定められた基準姿勢位置から当該差分に応じて端末装置3の位置および姿勢を動かして処理を行う。したがって、第2の例では、情報処理装置2から端末装置3へ基準姿勢位置を設定する期間であることを示すデータおよび端末装置3から情報処理装置2へ基準姿勢位置が設定されたことを示すデータを送信しなくても、情報処理装置2と端末装置3とが連係して基準姿勢位置を設定することができる。
また、上述した入力処理においては、端末装置3側で設定した実空間のユーザを基準とした座標系に置ける端末装置3の位置および姿勢を、情報処理装置2側では実空間におけるユーザとモニタ4の表示画面とに基づいた座標系にそのまま置き換えることによって、情報処理装置2において端末装置3の位置および姿勢に基づいた処理が行われている。しかしながら、情報処理装置2および端末装置3において端末装置3の位置および姿勢を設定するための座標系は、全く同じ座標系であってもよいし、異なる座標系であってもよい。例えば、前者の場合、図11を用いて説明したゲーム例のように、ユーザが端末装置3本体を動かす操作と同じようにモニタ4および/または端末装置3の表示画面に表示されたプレイヤオブジェクトPOが動作をするゲームを実現することができる。また、後者の場合、情報処理装置2において実行する情報処理(ゲーム処理を含む)の内容に応じて適切な座標系を情報処理装置2側で設定し、端末装置3から送信された端末装置3の位置および姿勢を適宜座標変換してもよいことは言うまでもない。
また、上述した入力処理においては、端末装置3から情報処理装置2へ実空間における端末装置3の位置および姿勢を示すデータが送信される例を用いたが、端末装置3から情報処理装置2へ送信されるデータは他の情報を示すものでもよい。例えば、端末装置3の撮像部32が撮像した撮像画像そのものを示すデータ、撮像画像内の特徴点の位置を示すデータ、撮像画像内のユーザシルエットの位置や領域を示すデータ等を端末装置3から情報処理装置2へ送信してもよい。これらの場合、情報処理装置2において、端末装置3から送信されたデータに基づいて実空間における端末装置3の位置および姿勢を算出することになる。
また、上述した入力処理においては、情報処理装置側の処理(例えば、端末装置3の姿勢および/または位置に応じた画像を生成する処理)も端末装置3内で行ってもよい。この場合、端末装置3のみで上述した処理全てが行われることも可能であり、スマートフォン等の各種機能を有する携帯型装置のみで本実施例を実現することができる。
また、上述した入力処理においては、端末装置3の撮像部32が撮像した撮像画像に基づいて、端末装置3の位置および姿勢を算出する例を用いたが、当該撮像画像に基づいて端末装置3の位置および姿勢の一方のみを算出してもよい。端末装置3の位置だけを算出する場合や端末装置3の姿勢のみを算出する場合であっても、様々なゲーム処理や情報処理に利用可能であることは言うまでもない。
また、上述した説明では、携帯型の装置(例えば、コントローラや携帯電話装置)を端末装置3の一例として用いたが、端末装置3は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
また、上述した端末装置3は、情報処理装置2と協働して一連の処理を実行するシステムとして機能するものであった。しかしながら、端末装置3は、例えば携帯ゲーム機のように、所定のプログラム(ゲームプログラム)によって所定の情報処理(ゲーム処理)を実行する機能を有する装置であってもよい。この場合、図15を用いて説明した情報処理装置2の処理も端末装置3で行うとともに、当該処理結果を示す画像を端末装置3に備えられた表示画面に表示してもよい。また、上記実施例において情報処理装置2および端末装置3によって実行される一連の処理のうち、少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置2がさらに端末装置3以外の他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理装置2のCPU21および端末装置3のCPU36が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置2および/または端末装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
また、上述した各プログラムは、光学式ディスク状記憶媒体や外部メモリ等の外部記憶媒体を通じて情報処理装置2や端末装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置2や端末装置3に供給されてもよい。また、上記プログラムは、情報処理装置2内部や端末装置3の不揮発性記憶装置に予め記憶されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体や不揮発性メモリの他に、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記憶媒体ということができる。例えば、コンピュータ等に、これらの記憶媒体に記憶された情報処理プログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
以上のように、本発明は、容易に入力を行うこと等を目的として、例えば入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法等として有用である。
1…入力処理システム
2…情報処理装置
3…端末装置
4…モニタ
21、36…CPU
22、37…メモリ
23、38…プログラム記憶部
24、39…通信部
32…撮像部
33…操作部
34…加速度センサ
35…ジャイロセンサ
51…撮像部

Claims (29)

  1. ユーザが入力を行う可搬型装置を含む入力処理システムであって、
    前記可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を含み、
    前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
    前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する算出手段と、
    前記可搬型装置の姿勢および/または位置に応じた画像を生成する画像生成手段とを備える、入力処理システム。
  2. 前記画像解析手段は、前記撮像画像において撮像されているユーザに対して1または複数の特徴点を抽出し、
    前記算出手段は、前記撮像画像における前記特徴点の位置に基づいて、ユーザに対する前記可搬型装置の姿勢および/または位置を算出する、請求項1に記載の入力処理システム。
  3. 前記特徴点は、前記撮像画像において撮像されているユーザの胴体に対して設定される複数のポイントを含み、
    前記画像解析手段は、前記撮像画像において撮像されているユーザの胴体に対して、少なくとも複数の前記特徴点を抽出する、請求項2に記載の入力処理システム。
  4. 前記画像解析手段は、前記撮像画像において撮像されているユーザの顔を抽出し、当該抽出された顔の位置を基準として当該撮像画像から前記胴体を抽出する、請求項3に記載の入力処理システム。
  5. 前記特徴点は、前記撮像画像において撮像されているユーザの体幹に対して設定される1または複数のポイントを含み、
    前記画像解析手段は、前記撮像画像において撮像されているユーザの体幹に対して、少なくとも1または複数の前記特徴点を抽出する、請求項2に記載の入力処理システム。
  6. 前記画像解析手段は、前記撮像画像において撮像されているユーザが装着している所定の装着物上から、少なくとも前記特徴点を抽出する、請求項2に記載の入力処理システム。
  7. 前記画像解析手段は、前記撮像画像において撮像されているユーザのシルエットを抽出し、
    前記算出手段は、前記撮像画像におけるシルエットの位置および方向に基づいて、ユーザに対する前記可搬型装置の姿勢および/または位置を算出する、請求項1に記載の入力処理システム。
  8. 前記画像解析手段は、前記撮像画像において撮像されているユーザを抽出し、
    前記算出手段は、前記撮像画像において抽出されたユーザのサイズに応じて、ユーザと前記可搬型装置との間の距離を算出する、請求項1に記載の入力処理システム。
  9. 前記算出手段は、前記可搬型装置を操作するユーザに対する当該可搬型装置の実空間における3次元位置と、当該3次元位置における当該可搬型装置の実空間におけるロール、ピッチ、およびヨー方向の姿勢とを算出する、請求項1乃至8の何れか1つに記載の入力処理システム。
  10. 前記算出手段は、前記可搬型装置を操作するユーザを基準として、当該可搬型装置の実空間における姿勢および/または位置を算出する、請求項1乃至9の何れか1つに記載の入力処理システム。
  11. 前記可搬型装置は、前記撮像手段とは別に、当該可搬型装置の動きや姿勢に応じて変化するデータを出力するデータ出力手段を、さらに含み、
    前記算出手段は、前記撮像画像の解析結果および前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する、請求項1乃至10の何れか1つに記載の入力処理システム。
  12. 前記算出手段は、前記撮像画像に前記可搬型装置を操作するユーザが撮像されていない場合、前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を補完する、請求項11に記載の入力処理システム。
  13. 前記算出手段は、前記撮像画像の解析結果および前記データ出力手段が出力するデータに基づいて、実空間における重力方向を基準とした前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する、請求項11に記載の入力処理システム。
  14. 前記算出手段は、前記撮像画像の解析結果および/または前記データ出力手段が出力するデータに基づいて、前記可搬型装置を操作するユーザの実空間における動きを算出し、当該ユーザの実空間における姿勢および/または位置を基準として当該ユーザに対する当該可搬型装置の姿勢および/または位置を算出する、請求項11に記載の入力処理システム。
  15. 前記可搬型装置は、前記撮像手段、前記画像解析手段、および前記算出手段を含み、
    前記可搬型装置は、前記画像生成手段を含む別の装置へ、前記算出手段が算出した前記可搬型装置の姿勢および/または位置を示すデータを無線送信する送信手段を、さらに含む、請求項1乃至14の何れか1つに記載の入力処理システム。
  16. ユーザが所定の姿勢で前記可搬型装置を操作する際の、当該ユーザに対する当該可搬型装置の姿勢および/または位置を設定する初期設定手段を、さらに備え、
    前記算出手段は、前記設定された前記可搬型装置の姿勢および/または位置を基準として、当該ユーザに対する当該可搬型装置の姿勢および/または位置を算出する、請求項1乃至15の何れか1つに記載の入力処理システム。
  17. 前記撮像手段は、ユーザが前記可搬型装置を把持して操作する際、当該ユーザの上半身が少なくとも撮像可能な位置に設けられる、請求項1乃至16の何れか1つに記載の入力処理システム。
  18. 前記撮像手段は、前記可搬型装置の後端部に設けられる、請求項17に記載の入力処理システム。
  19. 前記撮像手段は、前記可搬型装置の前端部に設けられる、請求項17に記載の入力処理システム。
  20. 前記可搬型装置は、ユーザ入力可能な入力手段を、さらに含む、請求項1乃至19の何れか1つに記載の入力処理システム。
  21. 前記入力手段は、ユーザが方向入力可能な方向指示手段である、請求項20に記載の入力処理システム。
  22. 前記画像生成手段は、前記算出手段によって算出された前記可搬型装置の姿勢および/または位置に基づいてユーザが当該可搬型装置を用いてポインティングした位置を示す画像であって、所定の表示画面上に表示するための画像を生成する、請求項1乃至21の何れか1つに記載の入力処理システム。
  23. 前記画像生成手段は、ユーザが前記可搬型装置を用いて指し示した位置を移動させた方向と同じ方向に、前記画像を移動させて前記表示画面に表示する、請求項22に記載の入力処理システム。
  24. 複数のユーザがそれぞれ入力する複数の前記可搬型装置を含み、
    前記撮像手段は、前記可搬型装置を操作するユーザ毎にそれぞれ撮像し、
    前記画像解析手段は、前記撮像手段がそれぞれ撮像した撮像画像をそれぞれ解析し、
    前記算出手段は、前記撮像画像の解析結果それぞれに基づいて、前記複数のユーザ毎に当該ユーザが操作する前記可搬型装置の姿勢および/または位置をそれぞれ算出する、請求項1乃至23の何れか1つに記載の入力処理システム。
  25. 前記撮像手段は、ユーザが可搬型装置を操作する場合に当該ユーザが撮像範囲内となる当該可搬型装置内の位置に設置される、請求項1乃至24の何れか1つに記載の入力処理システム。
  26. 前記可搬型装置は、前記画像解析手段、前記算出手段、および前記画像生成手段の少なくとも1つを、さらに含む、請求項1乃至25の何れか1つに記載の入力処理システム。
  27. ユーザが入力を行う可搬型の入力処理装置であって、
    前記入力処理装置を操作するユーザの外観を撮像可能な撮像手段と、
    前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
    前記撮像画像の解析結果に基づいて、前記入力処理装置を操作するユーザに対する当該入力処理装置の姿勢および/または位置を算出する算出手段とを備える、入力処理装置。
  28. ユーザが入力を行う可搬型装置に含まれるコンピュータで実行される入力処理プログラムであって、
    前記可搬型装置は、当該可搬型装置を操作するユーザの外観を撮像可能な撮像手段を備え、
    前記コンピュータを、
    前記撮像手段が撮像した撮像画像を解析する画像解析手段と、
    前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する算出手段として機能させる、入力処理プログラム。
  29. ユーザが入力を行う入力処理方法であって、
    可搬型装置を操作するユーザの外観を当該可搬型装置に設けられた撮像手段から撮像する撮像ステップと、
    前記撮像ステップにおいて撮像された撮像画像を解析する画像解析ステップと、
    前記撮像画像の解析結果に基づいて、前記可搬型装置を操作するユーザに対する当該可搬型装置の姿勢および/または位置を算出する算出ステップとを含む、入力処理方法。
JP2015162927A 2015-08-20 2015-08-20 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法 Pending JP2017041135A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015162927A JP2017041135A (ja) 2015-08-20 2015-08-20 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015162927A JP2017041135A (ja) 2015-08-20 2015-08-20 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法

Publications (1)

Publication Number Publication Date
JP2017041135A true JP2017041135A (ja) 2017-02-23

Family

ID=58202971

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015162927A Pending JP2017041135A (ja) 2015-08-20 2015-08-20 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法

Country Status (1)

Country Link
JP (1) JP2017041135A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021220867A1 (ja) * 2020-04-28 2021-11-04 株式会社Nttドコモ 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021220867A1 (ja) * 2020-04-28 2021-11-04 株式会社Nttドコモ 情報処理装置
JPWO2021220867A1 (ja) * 2020-04-28 2021-11-04
JP7365501B2 (ja) 2020-04-28 2023-10-19 株式会社Nttドコモ 情報処理装置

Similar Documents

Publication Publication Date Title
US10545579B2 (en) Remote control with 3D pointing and gesture recognition capabilities
US11083950B2 (en) Information processing apparatus and information processing method
US9134800B2 (en) Gesture input device and gesture input method
US9098130B2 (en) Computer-readable storage medium having stored thereon input processing program, input processing apparatus, input processing method, and input processing system
US8502773B2 (en) Information processing apparatus and computer-readable recording medium recording information processing program
JP4964729B2 (ja) 画像処理プログラムおよび画像処理装置
JP4919887B2 (ja) 画像処理プログラムおよび画像処理装置
JP2009011362A (ja) 情報処理システム、ロボット装置及びその制御方法
JP2017059062A (ja) 情報処理装置、情報処理方法およびプログラム
WO2016031105A1 (ja) 情報処理装置、情報処理方法、及びプログラム
JP2013258614A (ja) 画像生成装置および画像生成方法
US8952956B2 (en) Computer-readable storage medium having stored therein display control program, display control apparatus, display control system, and display control method
US11557103B2 (en) Storage medium storing information processing program, information processing apparatus, information processing system, and information processing method
JP7316282B2 (ja) 拡張現実のためのシステムおよび方法
KR20120068253A (ko) 사용자 인터페이스의 반응 제공 방법 및 장치
JP6499384B2 (ja) 画像表示装置、画像表示方法、及び画像表示プログラム
US10332519B2 (en) Information processing apparatus, information processing method, and program
JP2015230682A (ja) 情報処理プログラム、情報処理装置、情報処理装置の制御方法および情報処理システム
JP5764390B2 (ja) 画像生成プログラム、画像生成方法、画像生成装置及び画像生成システム
JP6685742B2 (ja) 操作装置、移動装置、およびその制御システム
JP2013029921A (ja) ポインティングシステム、情報処理システム、座標系等の設定方法、情報処理装置、および情報処理プログラム
CN105867371A (zh) 控制平衡车移动的方法及装置
JP2017041135A (ja) 入力処理システム、入力処理装置、入力処理プログラム、および入力処理方法
KR101447958B1 (ko) 신체 부분 검출 방법 및 장치
JP2014195715A (ja) ゲームプログラムおよびゲーム装置