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