(57)【要約】【課題】複数デバイスの位置および姿勢の推定演算に必要な計算量を削減するための技術を提供する。【解決手段】撮影画像取得部２１２は、複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得する。推定処理部２２０は、撮影画像におけるマーカ像座標にもとづいて、第１デバイスの位置情報および姿勢情報を導出した後、第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、第２デバイスの位置情報および姿勢情報を導出する。【選択図】図７
2020181321.tif 000002
【特許請求の範囲】
【請求項１】
複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得する撮影画像取得部と、
撮影画像におけるマーカ像座標にもとづいて、前記第１デバイスの位置情報および姿勢情報と、前記第２デバイスの位置情報および姿勢情報を推定する推定処理部と、を備え、
前記推定処理部は、
前記第１デバイスの位置情報および姿勢情報を導出した後、前記第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、前記第２デバイスの位置情報および姿勢情報を導出する、
ことを特徴とする情報処理装置。
【請求項２】
前記推定処理部は、撮像装置から相対的に近い位置にある前記第１デバイスの位置情報および姿勢情報を、撮像装置から相対的に遠い位置にある前記第２デバイスの位置情報および姿勢情報よりも先に導出する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記推定処理部は、前回の撮影画像を用いた推定処理結果により撮像装置に相対的に近い位置にあると判断された前記第１デバイスの位置情報および姿勢情報を先に導出する、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記推定処理部は、
撮影画像におけるＮ（Ｎは３以上の整数）個のマーカ像座標を抽出する抽出部と、
抽出されたＮ個のマーカ像座標を用いて、前記第１デバイスの位置情報および姿勢情報を導出する位置姿勢導出部と、を有し、
前記位置姿勢導出部が前記第１デバイスの位置情報および姿勢情報を導出した後、前記抽出部は、前記第１デバイスのマーカ像座標を除いた残りのマーカ像座標からＮ個のマーカ像座標を抽出し、
前記位置姿勢導出部は、残りのマーカ像座標から抽出されたＮ個のマーカ像座標を用いて、前記第２デバイスの位置情報および姿勢情報を導出する、
ことを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得するステップと、
撮影画像におけるマーカ像座標にもとづいて、前記第１デバイスの位置情報および姿勢情報を導出するステップと、
前記第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、前記第２デバイスの位置情報および姿勢情報を導出するステップと、
を有するデバイス情報導出方法。
【請求項６】
コンピュータに、
複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得する機能と、
撮影画像におけるマーカ像座標にもとづいて、前記第１デバイスの位置情報および姿勢情報を導出する機能と、
前記第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、前記第２デバイスの位置情報および姿勢情報を導出する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイスの位置情報および姿勢情報を導出する技術に関する。
【背景技術】
【０００２】
特許文献１は、ゲーム装置の前方を撮影したフレーム画像を取得して、フレーム画像におけるゲームコントローラのＬＥＤ像の位置から実空間におけるゲームコントローラの位置情報および姿勢情報を推定し、推定した位置情報および／または姿勢情報をゲームアプリケーションの処理に反映するゲーム装置を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２９６２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、デバイスの位置や姿勢をトラッキングし、ＶＲ空間の３Ｄモデルに反映させる情報処理技術が普及している。情報処理装置が、ゲーム空間のプレイヤキャラクタやゲームオブジェクトの動きを、トラッキング対象となるデバイスの位置や姿勢の変化に連動させることで、ユーザによる直観的な操作が実現される。
【０００５】
デバイスの位置および姿勢を推定するために、デバイスには点灯する複数のマーカが取り付けられる。情報処理装置は、デバイスを撮影した画像に含まれる複数のマーカ像の座標を特定し、当該デバイスの３次元モデルにおける複数のマーカの３次元座標と照らし合わせることで、実空間におけるデバイスの位置および姿勢を推定する。撮影画像に複数のデバイスのマーカ像が含まれる場合、デバイスの数に応じて撮影画像内のマーカ像の数が増えることで、推定処理の計算量が増加する。
【０００６】
そこで本発明は、複数デバイスの位置および姿勢の推定演算に必要な計算量を削減するための技術を提供することを目的とする。なおデバイスは操作ボタンを有する入力デバイスであってよいが、操作部材を有しない単にトラッキングの対象となるデバイスであってよい。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある態様の情報処理装置は、複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得する撮影画像取得部と、撮影画像におけるマーカ像座標にもとづいて、第１デバイスの位置情報および姿勢情報と第２デバイスの位置情報および姿勢情報を推定する推定処理部とを備える。推定処理部は、第１デバイスの位置情報および姿勢情報を導出した後、第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、第２デバイスの位置情報および姿勢情報を導出する。
【０００８】
本発明の別の態様のデバイス情報導出方法は、複数のマーカを備えた第１デバイスおよび複数のマーカを備えた第２デバイスを撮影した画像を取得するステップと、撮影画像におけるマーカ像座標にもとづいて、第１デバイスの位置情報および姿勢情報を導出するステップと、第１デバイスのマーカ像座標を除いた残りのマーカ像座標にもとづいて、第２デバイスの位置情報および姿勢情報を導出するステップとを有する。
【図面の簡単な説明】
【０００９】
【図１】実施例における情報処理システムの構成例を示す図である。
【図２】ＨＭＤの外観形状の例を示す図である。
【図３】ＨＭＤの機能ブロックを示す図である。
【図４】入力デバイスの外観形状を示す図である。
【図５】入力デバイスを撮影した画像の一部の例を示す図である。
【図６】入力デバイスの機能ブロックを示す図である。
【図７】情報処理装置の機能ブロックを示す図である。
【図８】２つの入力デバイスを撮影した画像の例を示す図である。
【図９】推定処理部による推定処理のフローチャートである。
【図１０】複数のマーカ像の座標を特定した状態を示す図である。
【発明を実施するための形態】
【００１０】
図１は、実施例における情報処理システム１の構成例を示す。情報処理システム１は情報処理装置１０と、記録装置１１と、ヘッドマウントディスプレイ（ＨＭＤ）１００と、ユーザが手指で操作する入力デバイス１６と、画像および音声を出力する出力装置１５とを備える。出力装置１５はテレビであってよい。情報処理装置１０は、アクセスポイント（ＡＰ）１７を介して、インターネットなどの外部のネットワーク２に接続される。ＡＰ１７は無線アクセスポイントおよびルータの機能を有し、情報処理装置１０はＡＰ１７とケーブルで接続してもよく、既知の無線通信プロトコルで接続してもよい。
【００１１】
記録装置１１は、システムソフトウェアや、ゲームソフトウェアなどのアプリケーションを記録する。情報処理装置１０は、コンテンツサーバからネットワーク２経由で、ゲームソフトウェアを記録装置１１にダウンロードしてよい。情報処理装置１０はゲームソフトウェアを実行して、ゲームの画像データおよび音声データをＨＭＤ１００に供給する。情報処理装置１０とＨＭＤ１００とは既知の無線通信プロトコルで接続されてもよく、またケーブルで接続されてもよい。
【００１２】
ＨＭＤ１００は、ユーザが頭部に装着することによりその眼前に位置する表示パネルに画像を表示する表示装置である。ＨＭＤ１００は、左目用表示パネルに左目用の画像を、右目用表示パネルに右目用の画像を、それぞれ別個に表示する。これらの画像は左右の視点から見た視差画像を構成し、立体視を実現する。ユーザは光学レンズを通して表示パネルを見るため、情報処理装置１０は、レンズによる光学歪みを補正した視差画像データをＨＭＤ１００に供給する。
【００１３】
ＨＭＤ１００を装着したユーザにとって出力装置１５は必要ないが、出力装置１５を用意することで、別のユーザが出力装置１５の表示画像を見ることができる。情報処理装置１０は、ＨＭＤ１００を装着したユーザが見ている画像と同じ画像を出力装置１５に表示させてもよいが、別の画像を表示させてもよい。たとえばＨＭＤを装着したユーザと、別のユーザとが一緒にゲームをプレイするような場合、出力装置１５からは、当該別のユーザのキャラクタ視点からのゲーム画像が表示されてもよい。
【００１４】
情報処理装置１０と入力デバイス１６とは既知の無線通信プロトコルで接続されてよく、またケーブルで接続されてもよい。入力デバイス１６は操作ボタンなどの複数の操作部材を備え、ユーザは入力デバイス１６を把持しながら、手指で操作部材を操作する。情報処理装置１０がゲームを実行する際、入力デバイス１６はゲームコントローラとして利用される。入力デバイス１６は、３軸の加速度センサおよび３軸のジャイロセンサを含む姿勢センサを備え、所定の周期（たとえば１６００Ｈｚ）でセンサデータを情報処理装置１０に送信する。
【００１５】
実施例のゲームは、入力デバイス１６の操作部材の操作情報だけでなく、入力デバイス１６の位置、姿勢、動きなどを操作情報として取り扱って、仮想３次元空間内におけるプレイヤキャラクタの動きに反映する。たとえば操作部材の操作情報は、プレイヤキャラクタを移動させるための情報として利用され、入力デバイス１６の位置、姿勢、動きなどの操作情報は、プレイヤキャラクタの腕を動かすための情報として利用されてよい。ゲーム内の戦闘シーンにおいて、入力デバイス１６の動きが、武器をもつプレイヤキャラクタの動きに反映されることで、ユーザの直観的な操作が実現され、ゲームへの没入感が高められる。
【００１６】
入力デバイス１６の位置および姿勢をトラッキングするために、入力デバイス１６には、ＨＭＤ１００に搭載された撮像装置１４によって撮影可能な複数のマーカ（光出射部）が設けられる。情報処理装置１０は、入力デバイス１６を撮影した画像を解析して、実空間における入力デバイス１６の位置情報および姿勢情報を推定し、推定した位置情報および姿勢情報をゲームに提供する。
【００１７】
ＨＭＤ１００には、複数の撮像装置１４が搭載される。複数の撮像装置１４は、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含むように、ＨＭＤ１００の前面の異なる位置に異なる姿勢で取り付けられる。撮像装置１４は、入力デバイス１６の複数のマーカの像を取得できる画像センサであればよい。たとえばマーカが可視光を出射する場合、撮像装置１４はＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的なデジタルビデオカメラで利用されている可視光センサを有する。マーカが非可視光を出射する場合、撮像装置１４は非可視光センサを有する。複数の撮像装置１４は同期したタイミングで、ユーザの前方を所定の周期（たとえば６０フレーム／秒）で撮影し、入力デバイス１６を撮影した画像データを情報処理装置１０に送信する。
【００１８】
情報処理装置１０は、撮影画像に含まれる入力デバイス１６の複数のマーカ像の位置を特定する。なお１つの入力デバイス１６が同じタイミングで複数の撮像装置１４に撮影されることもあるが、撮像装置１４の取付位置および取付姿勢は既知であるため、情報処理装置１０は複数の撮影画像を合成して、マーカ像の位置を特定する。
【００１９】
入力デバイス１６の３次元形状と、その表面に配置された複数のマーカの位置座標は既知であり、情報処理装置１０は、撮影画像内のマーカ像の分布にもとづいて、入力デバイス１６の位置座標および姿勢を推定する。入力デバイス１６の位置座標は、基準位置を原点とした３次元空間における位置座標であってよく、基準位置はゲーム開始前に設定した位置座標（緯度、経度）であってよい。
【００２０】
なお情報処理装置１０は、入力デバイス１６の姿勢センサが検出したセンサデータを用いることでも、入力デバイス１６の位置座標および姿勢を推定できる。そこで実施例の情報処理装置１０は、撮像装置１４で撮影した撮影画像にもとづく推定結果と、センサデータにもとづく推定結果を用いて、高精度に入力デバイス１６のトラッキング処理を実施してよい。
【００２１】
図２は、ＨＭＤ１００の外観形状の例を示す。ＨＭＤ１００は、出力機構部１０２および装着機構部１０４から構成される。装着機構部１０４は、ユーザが被ることにより頭部を一周してＨＭＤ１００を頭部に固定する装着バンド１０６を含む。装着バンド１０６はユーザの頭囲に合わせて長さの調節が可能な素材または構造をもつ。
【００２２】
出力機構部１０２は、ＨＭＤ１００をユーザが装着した状態において左右の目を覆う形状の筐体１０８を含み、内部には装着時に目に正対する表示パネルを備える。表示パネルは液晶パネルや有機ＥＬパネルなどであってよい。筐体１０８内部にはさらに、表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する左右一対の光学レンズが備えられる。ＨＭＤ１００はさらに、ユーザの耳に対応する位置にスピーカーやイヤホンを備えてよく、外付けのヘッドホンが接続されるように構成されてもよい。
【００２３】
筐体１０８の前方側外面には、複数の撮像装置１４ａ、１４ｂ、１４ｃ、１４ｄが備えられる。ユーザの視線方向を基準として、撮像装置１４ａは、カメラ光軸が右斜め上を向くように前方側外面の右上隅に取り付けられ、撮像装置１４ｂは、カメラ光軸が左斜め上を向くように前方側外面の左上隅に取り付けられ、撮像装置１４ｃは、カメラ光軸が右斜め下を向くように前方側外面の右下隅に取り付けられ、撮像装置１４ｄは、カメラ光軸が左斜め下を向くように前方側外面の左下隅に取り付けられる。このように複数の撮像装置１４が設置されることで、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含む。このユーザの視野は、３次元仮想空間におけるユーザの視野であってよい。
【００２４】
ＨＭＤ１００は、姿勢センサが検出したセンサデータおよび撮像装置１４が撮影した画像データを情報処理装置１０に送信し、また情報処理装置１０で生成されたゲーム画像データおよびゲーム音声データを受信する。
【００２５】
図３は、ＨＭＤ１００の機能ブロックを示す。制御部１２０は、画像データ、音声データ、センサデータなどの各種データや、命令を処理して出力するメインプロセッサである。記憶部１２２は、制御部１２０が処理するデータや命令などを一時的に記憶する。姿勢センサ１２４は、ＨＭＤ１００の動きに関するセンサデータを取得する。姿勢センサ１２４は、少なくとも３軸の加速度センサおよび３軸のジャイロセンサを含む。姿勢センサ１２４は、所定の周期（たとえば１６００Ｈｚ）で各軸成分の値（センサデータ）を検出する。
【００２６】
通信制御部１２８は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部１２０から出力されるデータを外部の情報処理装置１０に送信する。また通信制御部１２８は、情報処理装置１０からデータを受信し、制御部１２０に出力する。
【００２７】
制御部１２０は、ゲーム画像データやゲーム音声データを情報処理装置１０から受け取ると、表示パネル１３０に供給して表示させ、また音声出力部１３２に供給して音声出力させる。表示パネル１３０は、左目用表示パネル１３０ａと右目用表示パネル１３０ｂから構成され、各表示パネルに一対の視差画像が表示される。また制御部１２０は、姿勢センサ１２４からのセンサデータ、マイク１２６からの音声データ、撮像装置１４からの撮影画像データを、通信制御部１２８から情報処理装置１０に送信させる。
【００２８】
図４は、入力デバイス１６の外観形状を示す。図４（ａ）は、入力デバイス１６の正面形状を示し、図４（ｂ）は、入力デバイス１６の背面形状を示す。入力デバイス１６は、ケース体２０と、ユーザが操作する複数の操作部材２２ａ、２２ｂ、２２ｃ、２２ｄ（以下、特に区別しない場合は「操作部材２２」と呼ぶ）と、ケース体２０の外部に光を出射する複数のマーカ３０ａ〜３０ｔ（以下、特に区別しない場合には「マーカ３０」と呼ぶ）とを備える。操作部材２２は、ケース体２０の頭部に配置され、傾動操作するアナログスティック、押下式ボタン、引き量を入力するトリガーボタンなどを含む。
【００２９】
ケース体２０は、把持部２１と、ケース体頭部とケース体底部とを連結する湾曲部２３を有し、ユーザは人差し指から小指までの指を把持部２１と湾曲部２３の間に通し、把持部２１を把持する。ユーザは把持部２１を把持した状態で、操作部材２２ａ、２２ｂ、２２ｃを親指で操作し、操作部材２２ｄを人差し指で操作する。マーカ３０ｈ、３０ｉ、３０ｊは把持部２１に設けられるが、ユーザが把持部２１を把持した状態であっても、手によって隠れない位置に配置される。１以上のマーカ３０を把持部２１に設けることで、位置および姿勢の推定精度を高められる。
【００３０】
マーカ３０は、ケース体２０の外部に光を出射する光出射部であり、ケース体２０の表面において、ＬＥＤ（Light Emitting Diode）素子などの光源からの光を外部に拡散出射する樹脂部を含む。マーカ３０は撮像装置１４により撮影されて、入力デバイス１６の位置および姿勢の推定処理に利用される。撮像装置１４は所定の周期（たとえば６０フレーム／秒）で入力デバイス１６を撮影するため、マーカ３０は、撮像装置１４の周期的な撮影タイミングに同期して光を出射し、撮像装置１４による非露光期間には消灯して無用な電力消費を抑えることが好ましい。
【００３１】
図５は、入力デバイス１６を撮影した画像の一部の例を示す。この画像は、右手で把持された入力デバイス１６の撮影画像であり、光を出射する複数のマーカ３０の像が含まれる。ＨＭＤ１００において、通信制御部１２８は、撮像装置１４が撮影した画像データを所定の周期で情報処理装置１０に送信する。
【００３２】
図６は、入力デバイス１６の機能ブロックを示す。制御部５０は、操作部材２２に入力された操作情報を受け付け、また姿勢センサ５２により取得されたセンサデータを受け付ける。姿勢センサ５２は、入力デバイス１６の動きに関するセンサデータを取得し、少なくとも３軸の加速度センサおよび３軸のジャイロセンサを含む。姿勢センサ５２は、所定の周期（たとえば１６００Ｈｚ）で各軸成分の値（センサデータ）を検出する。制御部５０は、受け付けた操作情報およびセンサデータを通信制御部５４に供給する。通信制御部５４は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部５０から出力される操作情報およびセンサデータを情報処理装置１０に送信する。また通信制御部５４は、情報処理装置１０から発光指示を取得する。
【００３３】
入力デバイス１６は、複数のマーカ３０を点灯するための複数の光源５８を備える。光源５８は、所定の色で発光するＬＥＤ素子であってよい。制御部５０は、情報処理装置１０から取得した発光指示にもとづいて光源５８を発光させ、マーカ３０を点灯させる。
【００３４】
図７は、情報処理装置１０の機能ブロックを示す。情報処理装置１０は、処理部２００および通信部２０２を備え、処理部２００は、取得部２１０、推定処理部２２０、ゲーム実行部２３０およびマーカ情報保持部２４０を有する。通信部２０２は、入力デバイス１６から送信される操作情報およびセンサデータを受信し、取得部２１０に供給する。また通信部２０２は、ＨＭＤ１００から送信される撮影画像データおよびセンサデータを受信し、取得部２１０に供給する。
【００３５】
取得部２１０は、撮影画像取得部２１２、センサデータ取得部２１４および操作情報取得部２１６を有する。推定処理部２２０は、マーカ像座標特定部２２２、マーカ像座標抽出部２２４、位置姿勢導出部２２６および位置判定部２２８を有して、撮影画像におけるマーカ像の座標にもとづいて入力デバイス１６の位置情報および姿勢情報を推定する。推定処理部２２０は、入力デバイス１６の位置情報および姿勢情報をゲーム実行部２３０に供給する。
【００３６】
これらの構成はハードウエア的には、任意のプロセッサ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである
【００３７】
撮影画像取得部２１２は、複数のマーカ３０を備えた入力デバイス１６を撮影した画像を取得し、推定処理部２２０に供給する。センサデータ取得部２１４は、入力デバイス１６およびＨＭＤ１００から送信されるセンサデータを取得し、推定処理部２２０に供給する。操作情報取得部２１６は、入力デバイス１６から送信される操作情報を取得し、ゲーム実行部２３０に供給する。ゲーム実行部２３０は、操作情報および入力デバイス１６の位置姿勢情報にもとづいて、ゲームを進行する。
【００３８】
マーカ像座標特定部２２２は、撮影画像に含まれるマーカ３０の像を代表する２次元座標（以下、「マーカ像座標」とも呼ぶ）を特定する。マーカ像座標特定部２２２は、所定値以上の輝度値をもつ画素の領域を特定し、その画素領域の重心座標を算出して、マーカ像座標としてよい。このときマーカ像座標特定部２２２は、マーカ像としてはあり得ない形状および大きさの画素領域を無視し、マーカ像であることが推定される形状および大きさの画素領域の重心座標を算出することが好ましい。
【００３９】
３次元の形状および大きさが既知である物体の撮影画像から、それを撮影した撮像装置の位置および姿勢を推定する手法として、ＰＮＰ（Perspective n-Point）問題を解く方法が知られている。実施例でマーカ像座標抽出部２２４は、撮影画像におけるＮ（Ｎは３以上の整数）個の２次元マーカ像座標を抽出し、位置姿勢導出部２２６は、マーカ像座標抽出部２２４により抽出されたＮ個のマーカ像座標と、入力デバイス１６の３次元モデルにおけるＮ個のマーカの３次元座標から、入力デバイス１６の位置情報および姿勢情報を導出する。位置姿勢導出部２２６は、以下の（式１）を用いて撮像装置１４の位置および姿勢を推定し、その推定結果をもとに入力デバイス１６の３次元空間の位置情報および姿勢情報を導出する。
【数１】
2020181321.tif 000003
【００４０】
ここで（ｕ，ｖ）は撮影画像におけるマーカ像座標であり、（Ｘ，Ｙ，Ｚ）は、入力デバイス１６の３次元モデルが基準位置および基準姿勢にあるときのマーカ３０の３次元空間での位置座標である。なお３次元モデルは、入力デバイス１６と完全に同一の形状および大きさをもち、マーカを同一位置に配置したモデルである。マーカ情報保持部２４０は、基準位置および基準姿勢にある３次元モデルにおける各マーカの３次元座標を保持しており、位置姿勢導出部２２６は、マーカ情報保持部２４０から各マーカの３次元座標を読み出して、（Ｘ，Ｙ，Ｚ）を取得する。
【００４１】
（ｆｘ、ｆｙ）は撮像装置１４の焦点距離、（ｃｘ、ｃｙ）は画像主点であり、いずれも撮像装置１４の内部パラメータである。ｒ１１〜ｒ３３、ｔ１〜ｔ３を要素とする行列は、回転・並進行列である。（式１）において（ｕ，ｖ）、（ｆｘ、ｆｙ）、（ｃｘ、ｃｙ）、（Ｘ，Ｙ，Ｚ）は既知であり、位置姿勢導出部２２６は、Ｎ個のマーカ３０について方程式を解くことにより、それらに共通の回転・並進行列を求める。位置姿勢導出部２２６は、この行列によって表される角度および並進量に基づいて、入力デバイス１６の位置情報および姿勢情報を導出する。実施例では、入力デバイス１６の位置姿勢を推定する処理をＰ３Ｐ問題を解くことで実施し、したがって位置姿勢導出部２２６は、３個のマーカ像座標と、入力デバイス１６の３次元モデルにおける３個の３次元マーカ座標を用いて、入力デバイス１６の位置および姿勢を導出する。
【００４２】
実施例の情報処理システム１において、ユーザは両手に入力デバイス１６を把持して、ゲームをプレイする。そのため撮影画像には、ユーザが右手で把持した入力デバイス１６のマーカ３０の像と、ユーザが左手で把持した入力デバイス１６のマーカ３０の像とが含まれる。
【００４３】
図８は、２つの入力デバイス１６を撮影した画像の例を示す。この撮影画像には、右手で把持された入力デバイス１６のマーカ３０の像と、左手で把持された入力デバイス１６のマーカ３０の像とが含まれる。なお便宜上、図８には白黒反転した撮影画像を示し、マーカ像を黒領域で表現している。以下、右手で把持された入力デバイス１６を「入力デバイス１６ａ」、左手で把持された入力デバイス１６を「入力デバイス１６ｂ」と呼ぶ。
【００４４】
図９は、推定処理部２２０による推定処理のフローチャートである。撮影画像取得部２１２が、２つの入力デバイス１６ａ、１６ｂを撮影した画像を取得すると（Ｓ１０）、マーカ像座標特定部２２２が、撮影画像に含まれる複数のマーカ像の座標を特定する（Ｓ１２）。特定された複数のマーカ像座標には、入力デバイス１６ａのマーカ位置を表現するものと、入力デバイス１６ｂのマーカ位置を表現するものの双方が含まれる。
【００４５】
図１０は、マーカ像座標特定部２２２が撮影画像に含まれる複数のマーカ像の座標を特定した状態を示す。この例でマーカ像座標特定部２２２は、マーカ像座標Ｐ１〜Ｐ１５を特定している。
【００４６】
推定処理部２２０は、先に入力デバイス１６ａまたは入力デバイス１６ｂのいずれか一方の位置情報および姿勢情報を推定し、その後、他方の位置情報および姿勢情報を推定する。初期トラッキング時、推定処理部２２０は、先に右手用の入力デバイス１６ａの位置姿勢推定処理を実施してよい（Ｓ１４）。マーカ像座標抽出部２２４は、マーカ像座標Ｐ１〜Ｐ１５から任意の３個のマーカ像座標を抽出する。
【００４７】
マーカ情報保持部２４０は、基準位置および基準姿勢にある右手用入力デバイス１６ａおよび左手用入力デバイス１６ｂの３次元モデルにおける各マーカの３次元座標を保持している。位置姿勢導出部２２６は、マーカ情報保持部２４０から右手用の入力デバイス１６ａの３次元モデルにおけるマーカの３次元座標を読み出し、式１を用いてＰ３Ｐ問題を解く。位置姿勢導出部２２６は、抽出された３個のマーカ像座標に共通する回転・並進行列を特定すると、抽出した３個のマーカ像座標以外の入力デバイス１６ａのマーカ像座標を特定できる。位置姿勢導出部２２６は、抽出された３個以外のマーカ像座標を用いて再投影誤差を算出する。
【００４８】
Ｓ１４では、マーカ像座標抽出部２２４が、マーカ像座標Ｐ１〜Ｐ１５から３個のマーカ像座標の組合せを所定数抽出し、位置姿勢導出部２２６が、抽出された３個のマーカ像座標のそれぞれの組合せに対して回転・並進行列を特定し、それぞれの再投影誤差を算出する。その後、位置姿勢導出部２２６は、所定数の再投影誤差の中から最小の再投影誤差となる回転・並進行列を特定して、入力デバイス１６ａの位置情報および姿勢情報を導出する。
【００４９】
位置姿勢導出部２２６が回転・並進行列を特定することで、入力デバイス１６ａのマーカ像座標群が確定される（Ｓ１６）。図１０に示す例で、入力デバイス１６ａのマーカ像座標群は、マーカ像座標Ｐ１〜Ｐ７である。位置姿勢導出部２２６は、入力デバイス１６ａの位置情報および姿勢情報を導出した後、入力デバイス１６ａのマーカ像座標Ｐ１〜Ｐ７を除いた残りのマーカ像座標Ｐ８〜Ｐ１５にもとづいて、入力デバイス１６ｂの位置情報および姿勢情報を導出する。
【００５０】
推定処理部２２０は、右手用の入力デバイス１６ａの位置姿勢推定処理を終了した後、左手用の入力デバイス１６ｂの位置姿勢推定処理を実施する（Ｓ１８）。マーカ像座標抽出部２２４は、入力デバイス１６ａのマーカ像座標Ｐ１〜Ｐ７を除外した残りのマーカ像座標Ｐ８〜Ｐ１５から任意の３個のマーカ像座標を抽出する。位置姿勢導出部２２６は、マーカ情報保持部２４０から左手用の入力デバイス１６ｂの３次元モデルにおけるマーカの３次元座標を読み出し、式１を用いてＰ３Ｐ問題を解く。位置姿勢導出部２２６は、抽出された３個のマーカ像座標に共通する回転・並進行列を特定すると、抽出した３個のマーカ像座標以外の入力デバイス１６ｂのマーカ像座標を特定できる。位置姿勢導出部２２６は、抽出された３個以外のマーカ像座標を用いて再投影誤差を算出する。なお再投影誤差の算出時に、位置姿勢導出部２２６が、マーカ像座標Ｐ１〜Ｐ７を用いることはない。
【００５１】
Ｓ１８では、マーカ像座標抽出部２２４が、マーカ像座標Ｐ８〜Ｐ１５から３個のマーカ像座標の組合せを所定数抽出し、位置姿勢導出部２２６が、抽出された３個のマーカ像座標のそれぞれの組合せに対して回転・並進行列を特定し、それぞれの再投影誤差を算出する。その後、位置姿勢導出部２２６は、所定数の再投影誤差の中から最小の再投影誤差となる回転・並進行列を特定して、入力デバイス１６ｂの位置情報および姿勢情報を導出する。推定処理部２２０は、入力デバイス１６ａおよび入力デバイス１６ｂの位置情報および姿勢情報をゲーム実行部２３０に供給する。
【００５２】
以上のように、Ｓ１８では位置姿勢導出部２２６が、マーカ像座標Ｐ１〜Ｐ７を候補から除外して、入力デバイス１６ｂの位置情報および姿勢情報を導出することで、計算量を削減できる。
【００５３】
位置姿勢導出部２２６が、入力デバイス１６ａおよび入力デバイス１６ｂの位置情報および姿勢情報を推定すると、位置判定部２２８は、入力デバイス１６ａおよび入力デバイス１６ｂのいずれが撮像装置１４に近いか判定する（Ｓ２０）。この例で位置判定部２２８は、左手用の入力デバイス１６ｂが右手用の入力デバイス１６ａよりも撮像装置１４に近いことを判定する。
【００５４】
位置姿勢推定処理は、撮影画像の撮像周期で実施される（Ｓ２２のＮ）。入力デバイス１６ａおよび入力デバイス１６ｂの位置情報および姿勢情報が導出された後、撮影画像取得部２１２が、新たな撮影画像を取得すると（Ｓ１０）、推定処理部２２０は、撮像装置１４から相対的に近い位置にある入力デバイス１６ｂの位置情報および姿勢情報を、撮像装置１４から相対的に遠い位置にある入力デバイス１６ａの位置情報および姿勢情報よりも先に導出する。つまりＳ１４において、推定処理部２２０は、前回の撮影画像を用いた推定処理結果により撮像装置１４に相対的に近い位置にあると判断された入力デバイス１６ｂの位置情報および姿勢情報を、入力デバイス１６ａよりも先に導出する。
【００５５】
撮像装置１４から相対的に遠い位置にある入力デバイス１６ａは、相対的に近い位置にある入力デバイス１６ｂによって撮像装置１４から隠されることはあっても、その逆はない。そのため入力デバイス１６ｂは、高精度に位置情報および姿勢情報を推定されることが見込まれ、推定処理部２２０は、撮像装置１４に近い位置にある入力デバイス１６ｂの位置情報および姿勢情報の推定処理を、入力デバイス１６ａの推定処理よりも先に実施する。
【００５６】
推定処理部２２０は、左手用の入力デバイス１６ｂの位置姿勢推定処理が終了した後、右手用の入力デバイス１６ａの位置姿勢推定処理を実施する（Ｓ１８）。マーカ像座標抽出部２２４は、入力デバイス１６ｂのマーカ像座標Ｐ８〜Ｐ１５を除外した残りのマーカ像座標Ｐ１〜Ｐ７から任意の３個のマーカ像座標を抽出する。位置姿勢導出部２２６は、マーカ情報保持部２４０から右手用の入力デバイス１６ａの３次元モデルにおけるマーカの３次元座標を読み出し、式１を用いてＰ３Ｐ問題を解き、入力デバイス１６ａの位置情報および姿勢情報を導出する。ゲーム実行部２３０がゲームを終了すると、推定処理部２２０による位置姿勢推定処理も終了する（Ｓ２２のＹ）。
【００５７】
以上、本発明を実施例をもとに説明した。上記実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では推定処理を情報処理装置１０が実施したが、情報処理装置１０の機能がＨＭＤ１００に設けられて、ＨＭＤ１００が推定処理を実施してもよい。
【００５８】
実施例では、操作部材２２を備えた入力デバイス１６における複数マーカ３０の配置について説明したが、トラッキングの対象となるデバイスは、必ずしも操作部材２２を備えていなくてよい。実施例では、２つの入力デバイス１６が撮影された場合の位置姿勢推定処理について説明したが、３つ以上のトラッキング対象となるデバイスが撮影された場合の位置姿勢推定処理も同様に実現される。また実施例では撮像装置１４がＨＭＤ１００に取り付けられているが、撮像装置１４は、マーカ像を撮影できればよく、ＨＭＤ１００以外の別の位置に取り付けられてもよい。
【符号の説明】
【００５９】
１・・・情報処理システム、１０・・・情報処理装置、１４・・・撮像装置、１６・・・入力デバイス、３０・・・マーカ、２００・・・処理部、２０２・・・通信部、２１０・・・取得部、２１２・・・撮影画像取得部、２１４・・・センサデータ取得部、２１６・・・操作情報取得部、２２０・・・推定処理部、２２２・・・マーカ像座標特定部、２２４・・・マーカ像座標抽出部、２２６・・・位置姿勢導出部、２２８・・・位置判定部、２３０・・・ゲーム実行部、２４０・・・マーカ情報保持部。
【図１】
2020181321.tif 000004
【図２】
2020181321.tif 000005
【図３】
2020181321.tif 000006
【図４】
2020181321.tif 000007
【図５】
2020181321.tif 000008
【図６】
2020181321.tif 000009
【図７】
2020181321.tif 000010
【図８】
2020181321.tif 000011
【図９】
2020181321.tif 000012
【図１０】
2020181321.tif 000013