(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024108472
(43)【公開日】2024-08-13
(54)【発明の名称】情報処理装置およびデバイス情報導出方法
(51)【国際特許分類】
G06F 3/01 20060101AFI20240805BHJP
G06F 3/0346 20130101ALI20240805BHJP
【FI】
G06F3/01 510
G06F3/0346
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023012859
(22)【出願日】2023-01-31
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【弁理士】
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【弁理士】
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【弁理士】
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】大森 耕介
(72)【発明者】
【氏名】南野 孝範
(72)【発明者】
【氏名】矢田 亮太郎
【テーマコード(参考)】
5B087
5E555
【Fターム(参考)】
5B087AA01
5B087BC04
5B087BC05
5B087BC06
5E555AA06
5E555BE16
5E555BE17
5E555CA29
5E555CA42
5E555CA44
5E555CA45
5E555CB66
5E555FA00
(57)【要約】
【課題】デバイスの位置および姿勢の高精度な推定演算に必要な計算量を削減する。
【解決手段】情報処理装置は、入力デバイス16の撮影画像からマーカの像306を抽出し、入力デバイス16の3次元モデルにおける候補マーカ312の3次元座標との演算により入力デバイス16の位置や姿勢を導出する。情報処理装置は、撮影画像のスクリーン面304と、センサデータに基づく姿勢の3次元モデルの表面のうち候補マーカ312が設けられた面314との向きの差に基づき、候補マーカが撮影画像に映り得るか否かを判定し、演算に用いる候補マーカを取捨選択する。
【選択図】
図14
【特許請求の範囲】
【請求項1】
複数のマーカを備えたデバイスを撮影した画像を取得する撮影画像取得部と、
撮影画像におけるマーカ像座標を抽出する抽出部と、
抽出されたマーカ像座標と、前記デバイスの3次元モデルにおける候補マーカの3次元座標から、前記デバイスの位置情報および姿勢情報を所定の演算により導出する位置姿勢導出部と、
前記デバイスの姿勢センサのデータを取得するセンサデータ取得部と、
を備え、
前記位置姿勢導出部は、前記姿勢センサのデータを用いて推定した、前記デバイスの暫定的な姿勢で前記3次元モデルを仮想的な3次元空間に配置し、当該3次元モデルの表面のうち前記候補マーカが設けられた面と、撮影画像のスクリーン面との向きの差に基づき、前記演算に用いる前記候補マーカを取捨選択することを特徴とする情報処理装置。
【請求項2】
前記位置姿勢導出部は、前記候補マーカの法線ベクトルの平均ベクトルと、前記マーカ像座標を3次元空間に逆射影してなるベクトルの平均ベクトルを用いて前記向きの差を評価し、当該平均ベクトルの角度差が所定値以内のとき、当該候補マーカを前記演算に用いないことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記位置姿勢導出部は、前記撮影画像を撮影する装置に対する前記デバイスの方向を、前記マーカ像座標および前記スクリーン面の向きに基づき特定し、当該デバイスの方向によって、前記候補マーカを取捨選択する規則を切り替えることを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記位置姿勢導出部は、重力方向の軸に対する前記デバイスの角度が所定値を越えないとき、前記面の向きの差に基づく規則で前記候補マーカを取捨選択することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記位置姿勢導出部は、重力方向の軸に対する前記デバイスの角度が所定値を越えるとき、複数の前記マーカ像座標の位置関係と、前記撮影画像を撮影する装置から見た複数の前記候補マーカ座標の位置関係の類似性に基づき、前記演算に用いる前記候補マーカを取捨選択することを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記位置姿勢導出部は、隣り合う前記マーカ像座標を結んでなる線分のなす鈍角を2等分するベクトルと、隣り合う候補マーカ座標を結んでなる線分がなす鈍角を2等分するベクトルの角度差に基づき前記類似性を評価し、当該角度差が所定値以上のとき、前記候補マーカを前記演算に用いないことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
複数のマーカを備えたデバイスを撮影した画像を取得するステップと、
撮影画像におけるマーカ像座標を抽出するステップと、
抽出されたマーカ像座標と、前記デバイスの3次元モデルにおける候補マーカの3次元座標から、前記デバイスの位置情報および姿勢情報を所定の演算により導出するステップと、
前記デバイスの姿勢センサのデータを取得するステップと、
を含み、
前記位置情報および姿勢情報を導出するステップは、前記姿勢センサのデータを用いて推定した、前記デバイスの暫定的な姿勢で前記3次元モデルを仮想的な3次元空間に配置し、当該3次元モデルの表面のうち前記候補マーカが設けられた面と、撮影画像のスクリーン面との向きの差に基づき、前記演算に用いる前記候補マーカを取捨選択することを特徴とするデバイス情報導出方法。
【請求項8】
複数のマーカを備えたデバイスを撮影した画像を取得する機能と、
撮影画像におけるマーカ像座標を抽出する機能と、
抽出されたマーカ像座標と、前記デバイスの3次元モデルにおける候補マーカの3次元座標から、前記デバイスの位置情報および姿勢情報を所定の演算により導出する機能と、
前記デバイスの姿勢センサのデータを取得する機能と、
をコンピュータに実現させ、
前記位置情報および姿勢情報を導出する機能は、前記姿勢センサのデータを用いて推定した、前記デバイスの暫定的な姿勢で前記3次元モデルを仮想的な3次元空間に配置し、当該3次元モデルの表面のうち前記候補マーカが設けられた面と、撮影画像のスクリーン面との向きの差に基づき、前記演算に用いる前記候補マーカを取捨選択することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ等のデバイスの位置や姿勢の情報を導出する情報処理装置、およびデバイス情報導出方法に関する。
【背景技術】
【0002】
特許文献1は、ゲーム装置の前方を撮影したフレーム画像を取得して、フレーム画像におけるゲームコントローラのLED像の位置から実空間におけるゲームコントローラの位置情報および姿勢情報を推定し、推定した位置情報および/または姿勢情報をゲームアプリケーションの処理に反映するゲーム装置を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、デバイスの位置や姿勢をトラッキングし、VR空間の3Dモデルに反映させる情報処理技術が普及している。情報処理装置が、ゲーム空間のプレイヤキャラクタやゲームオブジェクトの動きを、トラッキング対象となるデバイスの位置や姿勢の変化に連動させることで、ユーザによる直観的な操作が実現される。
【0005】
デバイスの位置および姿勢を推定するために、デバイスには点灯する複数のマーカが取り付けられる。情報処理装置は、デバイスを撮影した画像に含まれる複数のマーカ像の座標を特定し、当該デバイスの3次元モデルにおける複数のマーカの3次元座標と照らし合わせることで、実空間におけるデバイスの位置および姿勢を推定する。撮影されるマーカ像の数が多いほどデバイスの位置および姿勢の推定精度は向上するが、一方でマーカ像の数が多くなると計算量が増加する問題がある。
【0006】
そこで本発明は、デバイスの位置および姿勢の高精度な推定演算に必要な計算量を削減するための技術を提供することを目的とする。なおデバイスは操作ボタンを有する入力デバイスであってよいが、操作部材を有しない単にトラッキングの対象となるデバイスであってよい。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様は情報処理装置に関する。この情報処理装置は、複数のマーカを備えたデバイスを撮影した画像を取得する撮影画像取得部と、撮影画像におけるマーカ像座標を抽出する抽出部と、抽出されたマーカ像座標と、デバイスの3次元モデルにおける候補マーカの3次元座標から、デバイスの位置情報および姿勢情報を所定の演算により導出する位置姿勢導出部と、デバイスの姿勢センサのデータを取得するセンサデータ取得部と、を備え、位置姿勢導出部は、姿勢センサのデータを用いて推定した、デバイスの暫定的な姿勢で3次元モデルを仮想的な3次元空間に配置し、当該3次元モデルの表面のうち候補マーカが設けられた面と、撮影画像のスクリーン面との向きの差に基づき、演算に用いる候補マーカを取捨選択することを特徴とする。
【0008】
本発明の別の態様は、デバイス情報導出方法に関する。このデバイス情報導出方法は、複数のマーカを備えたデバイスを撮影した画像を取得するステップと、撮影画像におけるマーカ像座標を抽出するステップと、抽出されたマーカ像座標と、デバイスの3次元モデルにおける候補マーカの3次元座標から、デバイスの位置情報および姿勢情報を所定の演算により導出するステップと、デバイスの姿勢センサのデータを取得するステップと、を含み、位置情報および姿勢情報を導出するステップは、姿勢センサのデータを用いて推定した、デバイスの暫定的な姿勢で3次元モデルを仮想的な3次元空間に配置し、当該3次元モデルの表面のうち候補マーカが設けられた面と、撮影画像のスクリーン面との向きの差に基づき、演算に用いる候補マーカを取捨選択することを特徴とする。
【図面の簡単な説明】
【0009】
【
図1】本実施の形態における情報処理システムの構成例を示す図である。
【
図2】本実施の形態におけるHMDの外観形状の例を示す図である。
【
図3】本実施の形態におけるHMDの機能ブロックを示す図である。
【
図4】本実施の形態における入力デバイスの外観形状を示す図である。
【
図5】本実施の形態において入力デバイスを撮影した画像の一部の例を示す図である。
【
図6】本実施の形態における入力デバイスの機能ブロックを示す図である。
【
図7】本実施の形態における情報処理装置の機能ブロックを示す図である。
【
図8】本実施の形態における撮像装置が入力デバイスを撮影した画像の例を示す図である。
【
図9】本実施の形態における推定処理部による推定処理のフローチャートである。
【
図10】本実施の形態におけるマーカ像座標の位置関係の例を示す図である。
【
図11】本実施の形態における位置姿勢導出部が、マーカ像座標の位置関係と候補マーカの座標の位置関係の類似性に基づき、候補マーカ情報を取捨選択する手法を説明するための図である。
【
図12】本実施の形態においてHMDと入力デバイスの位置関係が、候補マーカ座標の見かけの位置関係に与える影響を説明するための図である。
【
図13】本実施の形態における位置姿勢導出部が、入力デバイスの方向に基づき、候補マーカ情報の選択規則を切り替える処理を説明するための図である。
【
図14】本実施の形態において、入力デバイスの3次元モデルの表面のうち候補マーカが設けられた面と、スクリーン面の向きに基づき、候補マーカ情報を選択する手法を説明するための図である。
【
図15】
図9のS14のステップにおいて、位置姿勢導出部が候補マーカ情報を選択する処理手順を示すフローチャートである。
【発明を実施するための形態】
【0010】
図1は、本実施形態における情報処理システム1の構成例を示す。情報処理システム1は情報処理装置10と、記録装置11と、ヘッドマウントディスプレイ(HMD)100と、ユーザが手指で操作する入力デバイス16と、画像および音声を出力する出力装置15とを備える。出力装置15はテレビであってよい。情報処理装置10は、アクセスポイント(AP)17を介して、インターネットなどの外部のネットワーク2に接続される。AP17は無線アクセスポイントおよびルータの機能を有し、情報処理装置10はAP17とケーブルで接続してもよく、既知の無線通信プロトコルで接続してもよい。
【0011】
記録装置11は、システムソフトウェアや、ゲームソフトウェアなどのアプリケーションを記録する。情報処理装置10は、コンテンツサーバからネットワーク2経由で、ゲームソフトウェアを記録装置11にダウンロードしてよい。情報処理装置10はゲームソフトウェアを実行して、ゲームの画像データおよび音声データをHMD100に供給する。情報処理装置10とHMD100とは既知の無線通信プロトコルで接続されてもよく、またケーブルで接続されてもよい。
【0012】
HMD100は、ユーザが頭部に装着することによりその眼前に位置する表示パネルに画像を表示する表示装置である。HMD100は、左目用表示パネルに左目用の画像を、右目用表示パネルに右目用の画像を、それぞれ別個に表示する。これらの画像は左右の視点から見た視差画像を構成し、立体視を実現する。ユーザは光学レンズを通して表示パネルを見るため、情報処理装置10は、レンズによる光学歪みを補正した視差画像データをHMD100に供給する。
【0013】
HMD100を装着したユーザにとって出力装置15は必要ないが、出力装置15を用意することで、別のユーザが出力装置15の表示画像を見ることができる。情報処理装置10は、HMD100を装着したユーザが見ている画像と同じ画像を出力装置15に表示させてもよいが、別の画像を表示させてもよい。たとえばHMDを装着したユーザと、別のユーザとが一緒にゲームをプレイするような場合、出力装置15からは、当該別のユーザのキャラクタ視点からのゲーム画像が表示されてもよい。
【0014】
情報処理装置10と入力デバイス16とは既知の無線通信プロトコルで接続されてよく、またケーブルで接続されてもよい。入力デバイス16は操作ボタンなどの複数の操作部材を備え、ユーザは入力デバイス16を把持しながら、手指で操作部材を操作する。情報処理装置10がゲームを実行する際、入力デバイス16はゲームコントローラとして利用される。入力デバイス16は、3軸の加速度センサおよび3軸のジャイロセンサを含む姿勢センサを備え、所定の周期(たとえば1600Hz)でセンサデータを情報処理装置10に送信する。
【0015】
本実施形態のゲームは、入力デバイス16の操作部材の操作情報だけでなく、入力デバイス16の位置、姿勢、動きなどを操作情報として取り扱って、仮想3次元空間内におけるプレイヤキャラクタの動きに反映する。たとえば操作部材の操作情報は、プレイヤキャラクタを移動させるための情報として利用され、入力デバイス16の位置、姿勢、動きなどの操作情報は、プレイヤキャラクタの腕を動かすための情報として利用されてよい。ゲーム内の戦闘シーンにおいて、入力デバイス16の動きが、武器をもつプレイヤキャラクタの動きに反映されることで、ユーザの直観的な操作が実現され、ゲームへの没入感が高められる。
【0016】
入力デバイス16の位置および姿勢をトラッキングするために、入力デバイス16には、HMD100に搭載された撮像装置14によって撮影可能な複数のマーカ(光出射部)が設けられる。情報処理装置10は、入力デバイス16を撮影した画像を解析して、実空間における入力デバイス16の位置情報および姿勢情報を推定し、推定した位置情報および姿勢情報をゲームに提供する。
【0017】
HMD100には、複数の撮像装置14が搭載される。複数の撮像装置14は、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含むように、HMD100の前面の異なる位置に異なる姿勢で取り付けられる。撮像装置14は、入力デバイス16の複数のマーカの像を取得できる画像センサであればよい。たとえばマーカが可視光を出射する場合、撮像装置14はCCD(Charge Coupled Device)センサやCMOS(Complementary Metal Oxide Semiconductor)センサなど、一般的なデジタルビデオカメラで利用されている可視光センサを有する。マーカが非可視光を出射する場合、撮像装置14は非可視光センサを有する。複数の撮像装置14は同期したタイミングで、ユーザの前方を所定の周期(たとえば60フレーム/秒)で撮影し、入力デバイス16を撮影した画像データを情報処理装置10に送信する。
【0018】
情報処理装置10は、撮影画像に含まれる入力デバイス16の複数のマーカ像の位置を特定する。なお1つの入力デバイス16が同じタイミングで複数の撮像装置14に撮影されることもあるが、撮像装置14の取付位置および取付姿勢は既知であるため、情報処理装置10は複数の撮影画像を合成して、マーカ像の位置を特定する。
【0019】
入力デバイス16の3次元形状と、その表面に配置された複数のマーカの位置座標は既知であり、情報処理装置10は、撮影画像内のマーカ像の分布にもとづいて、入力デバイス16の位置座標および姿勢を推定する。入力デバイス16の位置座標は、基準位置を原点とした3次元空間における位置座標であってよく、基準位置はゲーム開始前に設定した位置座標(緯度、経度)であってよい。
【0020】
なお情報処理装置10は、入力デバイス16の姿勢センサが検出したセンサデータを用いることでも、入力デバイス16の位置座標および姿勢を推定できる。そこで本実施形態の情報処理装置10は、撮像装置14で撮影した撮影画像にもとづく推定結果と、センサデータにもとづく推定結果を用いて、高精度に入力デバイス16のトラッキング処理を実施してよい。
【0021】
図2は、HMD100の外観形状の例を示す。HMD100は、出力機構部102および装着機構部104から構成される。装着機構部104は、ユーザが被ることにより頭部を一周してHMD100を頭部に固定する装着バンド106を含む。装着バンド106はユーザの頭囲に合わせて長さの調節が可能な素材または構造をもつ。
【0022】
出力機構部102は、HMD100をユーザが装着した状態において左右の目を覆う形状の筐体108を含み、内部には装着時に目に正対する表示パネルを備える。表示パネルは液晶パネルや有機ELパネルなどであってよい。筐体108内部にはさらに、表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する左右一対の光学レンズが備えられる。HMD100はさらに、ユーザの耳に対応する位置にスピーカーやイヤホンを備えてよく、外付けのヘッドホンが接続されるように構成されてもよい。
【0023】
筐体108の前方側外面には、複数の撮像装置14a、14b、14c、14dが備えられる。ユーザの視線方向を基準として、撮像装置14aは、カメラ光軸が右斜め上を向くように前方側外面の右上隅に取り付けられ、撮像装置14bは、カメラ光軸が左斜め上を向くように前方側外面の左上隅に取り付けられ、撮像装置14cは、カメラ光軸が右斜め下を向くように前方側外面の右下隅に取り付けられ、撮像装置14dは、カメラ光軸が左斜め下を向くように前方側外面の左下隅に取り付けられる。このように複数の撮像装置14が設置されることで、それぞれの撮影範囲を足し合わせた全体の撮影範囲がユーザの視野の全てを含む。このユーザの視野は、3次元仮想空間におけるユーザの視野であってよい。
【0024】
HMD100は、姿勢センサが検出したセンサデータおよび撮像装置14が撮影した画像データを情報処理装置10に送信し、また情報処理装置10で生成されたゲーム画像データおよびゲーム音声データを受信する。
【0025】
図3は、HMD100の機能ブロックを示す。制御部120は、画像データ、音声データ、センサデータなどの各種データや、命令を処理して出力するメインプロセッサである。記憶部122は、制御部120が処理するデータや命令などを一時的に記憶する。姿勢センサ124は、HMD100の動きに関するセンサデータを取得する。姿勢センサ124は、少なくとも3軸の加速度センサおよび3軸のジャイロセンサを含む。姿勢センサ124は、所定の周期(たとえば1600Hz)で各軸成分の値(センサデータ)を検出する。
【0026】
通信制御部128は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部120から出力されるデータを外部の情報処理装置10に送信する。また通信制御部128は、情報処理装置10からデータを受信し、制御部120に出力する。
【0027】
制御部120は、ゲーム画像データやゲーム音声データを情報処理装置10から受け取ると、表示パネル130に供給して表示させ、また音声出力部132に供給して音声出力させる。表示パネル130は、左目用表示パネル130aと右目用表示パネル130bから構成され、各表示パネルに一対の視差画像が表示される。また制御部120は、姿勢センサ124からのセンサデータ、マイク126からの音声データ、撮像装置14からの撮影画像データを、通信制御部128から情報処理装置10に送信させる。
【0028】
図4は、入力デバイス16の外観形状を示す。
図4(a)は、入力デバイス16の正面形状を示し、
図4(b)は、入力デバイス16の背面形状を示す。入力デバイス16は、ケース体20と、ユーザが操作する複数の操作部材22a、22b、22c、22d(以下、特に区別しない場合は「操作部材22」と呼ぶ)と、ケース体20の外部に光を出射する複数のマーカ30a~30t(以下、特に区別しない場合には「マーカ30」と呼ぶ)とを備える。操作部材22は、ケース体20の頭部に配置され、傾動操作するアナログスティック、押下式ボタン、引き量を入力するトリガーボタンなどを含む。
【0029】
ケース体20は、把持部21と、ケース体頭部とケース体底部とを連結する湾曲部23を有し、ユーザは人差し指から小指までの指を把持部21と湾曲部23の間に通し、把持部21を把持する。ユーザは把持部21を把持した状態で、操作部材22a、22b、22cを親指で操作し、操作部材22dを人差し指で操作する。マーカ30h、30i、30jは把持部21に設けられるが、ユーザが把持部21を把持した状態であっても、手によって隠れない位置に配置される。1以上のマーカ30を把持部21に設けることで、位置および姿勢の推定精度を高められる。
【0030】
マーカ30は、ケース体20の外部に光を出射する光出射部であり、ケース体20の表面において、LED(Light Emitting Diode)素子などの光源からの光を外部に拡散出射する樹脂部を含む。マーカ30は撮像装置14により撮影されて、入力デバイス16の位置および姿勢の推定処理に利用される。撮像装置14は所定の周期(たとえば60フレーム/秒)で入力デバイス16を撮影するため、マーカ30は、撮像装置14の周期的な撮影タイミングに同期して光を出射し、撮像装置14による非露光期間には消灯して無用な電力消費を抑えることが好ましい。
【0031】
図5は、入力デバイス16を撮影した画像の一部の例を示す。この画像は、右手で把持された入力デバイス16の撮影画像であり、光を出射する複数のマーカ30の像が含まれる。HMD100において、通信制御部128は、撮像装置14が撮影した画像データを所定の周期で情報処理装置10に送信する。
【0032】
図6は、入力デバイス16の機能ブロックを示す。制御部50は、操作部材22に入力された操作情報を受け付け、また姿勢センサ52により取得されたセンサデータを受け付ける。姿勢センサ52は、入力デバイス16の動きに関するセンサデータを取得し、少なくとも3軸の加速度センサおよび3軸のジャイロセンサを含む。姿勢センサ52は、所定の周期(たとえば1600Hz)で各軸成分の値(センサデータ)を検出する。制御部50は、受け付けた操作情報およびセンサデータを通信制御部54に供給する。通信制御部54は、ネットワークアダプタまたはアンテナを介して、有線または無線通信により、制御部50から出力される操作情報およびセンサデータを情報処理装置10に送信する。また通信制御部54は、情報処理装置10から発光指示を取得する。
【0033】
入力デバイス16は、複数のマーカ30を点灯するための複数の光源58を備える。光源58は、所定の色で発光するLED素子であってよい。制御部50は、情報処理装置10から取得した発光指示にもとづいて光源58を発光させ、マーカ30を点灯させる。
【0034】
図7は、情報処理装置10の機能ブロックを示す。情報処理装置10は、処理部200および通信部202を備え、処理部200は、取得部210、推定処理部220、ゲーム実行部230および候補マーカ情報保持部240を有する。通信部202は、入力デバイス16から送信される操作情報およびセンサデータを受信し、取得部210に供給する。また通信部202は、HMD100から送信される撮影画像データおよびセンサデータを受信し、取得部210に供給する。
【0035】
取得部210は、撮影画像取得部212、センサデータ取得部214および操作情報取得部216を有する。推定処理部220は、マーカ像座標特定部222、マーカ像座標抽出部224および位置姿勢導出部226を有して、撮影画像におけるマーカ像の座標にもとづいて入力デバイス16の位置情報および姿勢情報を推定する。推定処理部220は、入力デバイス16の位置情報および姿勢情報をゲーム実行部230に供給する。
【0036】
これらの構成はハードウエア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0037】
撮影画像取得部212は、複数のマーカ30を備えた入力デバイス16を撮影した画像を取得し、推定処理部220に供給する。センサデータ取得部214は、入力デバイス16およびHMD100から送信されるセンサデータを取得し、推定処理部220に供給する。操作情報取得部216は、入力デバイス16から送信される操作情報を取得し、ゲーム実行部230に供給する。ゲーム実行部230は、操作情報および入力デバイス16の位置姿勢情報にもとづいて、ゲームを進行する。
【0038】
マーカ像座標特定部222は、撮影画像に含まれるマーカ30の像を代表する2次元座標(以下、「マーカ像座標」とも呼ぶ)を特定する。マーカ像座標特定部222は、所定値以上の輝度値をもつ画素の領域を特定し、その画素領域の重心座標を算出して、マーカ像座標としてよい。このときマーカ像座標特定部222は、マーカ像としてはあり得ない形状および大きさの画素領域を無視し、マーカ像であることが推定される形状および大きさの画素領域の重心座標を算出することが好ましい。
【0039】
3次元の形状および大きさが既知である物体の撮影画像から、それを撮影した撮像装置の位置および姿勢を推定する手法として、PNP(Perspective n-Point)問題を解く方法が知られている。本実施形態でマーカ像座標抽出部224は、撮影画像におけるN(Nは3以上の整数)個の2次元マーカ像座標を抽出し、位置姿勢導出部226は、マーカ像座標抽出部224により抽出されたN個のマーカ像座標と、入力デバイス16の3次元モデルにおけるN個のマーカの3次元座標から、入力デバイス16の位置情報および姿勢情報を導出する。位置姿勢導出部226は、以下の(式1)を用いて撮像装置14の位置および姿勢を推定し、その推定結果をもとに入力デバイス16の3次元空間の位置情報および姿勢情報を導出する。
【数1】
【0040】
ここで(u,v)は撮影画像におけるマーカ像座標であり、(X,Y,Z)は、入力デバイス16の3次元モデルが基準位置および基準姿勢にあるときのマーカ30の3次元空間での位置座標である。なお3次元モデルは、入力デバイス16と完全に同一の形状および大きさをもち、マーカを同一位置に配置したモデルである。候補マーカ情報保持部240は、基準位置および基準姿勢にある3次元モデルにおける各マーカの3次元座標を保持しており、位置姿勢導出部226は、候補マーカ情報保持部240から各マーカの3次元座標を読み出して、(X,Y,Z)を取得する。
【0041】
(fx、fy)は撮像装置14の焦点距離、(cx、cy)は画像主点であり、いずれも撮像装置14の内部パラメータである。r11~r33、t1~t3を要素とする行列は、回転・並進行列である。(式1)において(u,v)、(fx、fy)、(cx、cy)、(X,Y,Z)は既知であり、位置姿勢導出部226は、N個のマーカ30について方程式を解くことにより、それらに共通の回転・並進行列を求める。位置姿勢導出部226は、この行列によって表される角度および並進量に基づいて、入力デバイス16の位置情報および姿勢情報を導出する。本実施形態では、入力デバイス16の位置姿勢を推定する処理を、P3P問題を解くことで実施し、したがって位置姿勢導出部226は、3個のマーカ像座標と、入力デバイス16の3次元モデルにおける3個の3次元マーカ座標を用いて、入力デバイス16の位置および姿勢を導出する。
【0042】
本実施形態の入力デバイス16は、20個以上のマーカ30を備えており、N個のマーカ像座標の組合せ数は膨大となる。そこで本実施形態では、N個のマーカ像座標の抽出処理を所定の抽出基準を用いて実行し、抽出されたN個のマーカ像座標を、所定数のN個の3次元マーカ座標の組合せと照合することで、位置姿勢導出部226がPNP問題を解くようにする。これにより位置姿勢導出部226における不要な計算を削減し、高効率で高精度な推定処理を実現する。
【0043】
図8(a)~(d)は、撮像装置14が様々な角度から入力デバイス16を撮影した画像の例を示す。
図8(a)~(d)には、近くに位置するマーカ像を線分で繋ぎ、4個のマーカ像を線分で連続的に繋いだときに、隣り合う線分同士のなす角度が同じ向きに鈍角となる配置パターンを示している。
【0044】
本発明者は、実際に23個のマーカ30を配置した入力デバイス16を試作し、隣り合う線分のなす角度が同じ向きに全て鈍角となるように撮影される可能性のある4個のマーカ30の組合せ数を調べたところ、29通りであった。当然のことながら入力デバイス16の形状やマーカ30の位置により、隣り合う線分のなす角度が全て鈍角となる4個のマーカ30の組合せ数は異なってくるが、いずれにしても、入力デバイス16の形状およびマーカ30の位置により、隣り合う線分のなす角度が全て鈍角となる4個のマーカ30は特定される。
【0045】
そこで本実施形態では、候補マーカ情報保持部240が、隣り合う線分のなす角度が全て鈍角となる4個のマーカ30のうちの3個の3次元座標の組合せを、候補マーカ情報として保持しておき、位置姿勢導出部226が候補マーカ情報を用いて、(式1)の計算を実施する。本実施形態で、隣り合う線分のなす角度が全て鈍角となる4個のマーカ30の組合せ数はMであり、したがって候補マーカ情報保持部240は、M個の候補マーカ情報を保持する。なお入力デバイス16には、右手用と左手用が存在するため、候補マーカ情報保持部240は、右手用のM個の候補マーカ情報と、左手用のM個の候補マーカ情報とを保持してよい。
【0046】
図9は、推定処理部220による推定処理のフローチャートである。マーカ像座標特定部222が、撮影画像に含まれるマーカ像の座標(マーカ像座標)を特定した後、マーカ像座標抽出部224が、互いに近い距離にあるN(Nは3以上の整数)個のマーカ像座標をランダムに選択する(S10)。このときマーカ像座標抽出部224は、1つのマーカ像座標をランダムに選択し、選択したマーカ像座標に近い(N-1)個のマーカ像座標を特定することで、互いに近い距離にあるN個のマーカ像座標を選択してよい。
【0047】
図10(a)は、選択されたN個のマーカ像座標の位置関係の例を示す。本実施形態でマーカ像座標抽出部224は、選択したN個のマーカ像座標を時計回り方向に順序付けする。本実施形態でN=3であり、マーカ像座標抽出部224は、抽出した3個のマーカ像座標を、「第1マーカ像座標P1」、「第2マーカ像座標P2」、「第3マーカ像座標P3」と定義する。なお順序付けの手法は、時計回り方向に限るものではない。いずれにしても選択された3個のマーカ像座標は、S12における抽出基準を満たすことを条件として、PNP問題の方程式を解くときに入力される実座標(u,v)となる。
【0048】
マーカ像座標抽出部224は、さらにa(aは1以上の整数)個のマーカ像座標を選択する。マーカ像座標抽出部224は、最後の順番を付けられた第3マーカ像座標P3の近傍にあるa個のマーカ像座標を選択する。したがってマーカ像座標抽出部224は、(N+a)個のマーカ像座標を選択することになる。
【0049】
マーカ像座標抽出部224は、(N+a)個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を、位置姿勢導出部226が(式1)に代入するマーカ像座標(u,v)として抽出する。(N+a)個のマーカ像座標が所定の位置関係にあることは、マーカ像座標抽出部224によるN個のマーカ像座標の抽出基準として定義される。
【0050】
本実施形態でa=1である。マーカ像座標抽出部224は、選択した4個のマーカ像座標が抽出基準を満たしているか、換言すると所定の位置関係にあるか調べる。ここで所定の位置関係は、(N+a)個のマーカ像座標を連続する複数の線分で繋げたときに、隣り合う線分のなす角度が全て鈍角となる関係である。以下、
図10(b)に抽出基準を満たす配置パターンの例を、
図10(c)、(d)に、抽出基準を満たさない配置パターンの例を示す。
【0051】
図10(b)は、選択された(N+a)個のマーカ像座標の配置パターンの例を示す。以下において、4つ目のマーカ像座標を「第4マーカ像座標P4」と呼ぶ。第1マーカ像座標P1と第2マーカ像座標P2を結ぶ線分を「第1線分L1」、第2マーカ像座標P2と第3マーカ像座標P3を結ぶ線分を「第2線分L2」、第3マーカ像座標P3と第4マーカ像座標P4を結ぶ線分を「第3線分L3」と呼び、また第1線分L1と第2線分L2のなす角度を「第1角度A1」、第2線分L2と第3線分L3のなす角度を「第2角度A2」と呼ぶ。
【0052】
第1角度A1と第2角度A2が鈍角である場合に、マーカ像座標抽出部224は、4個のマーカ像座標が抽出基準を満たすこと、つまり所定の位置関係にあることを判定する(S12のY)。より厳密に言えば、第1線分L1、第2線分L2、第3線分L3と、第4マーカ像座標P4と第1マーカ像座標P1を結ぶ線分により形成される四辺形において、第1角度A1と第2角度A2が内角であり且つ鈍角である場合に、マーカ像座標抽出部224は、4個のマーカ像座標が所定の位置関係にあることを判定する。このときマーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の組合せを、位置姿勢導出部226に供給する。
【0053】
図10(c)は、選択された(N+a)個のマーカ像座標の配置パターンの別の例を示す。この配置パターンでは、第2角度A2が鋭角であり、マーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3が抽出基準を満たしていないことを判定する(S12のN)。そのためマーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の組合せを位置姿勢導出部226に供給することなく破棄して、S10のステップに戻り、別の3個のマーク像座標を選択する。
【0054】
図10(d)は、選択された(N+a)個のマーカ像座標の配置パターンのさらに別の例を示す。この配置パターンでは、第2角度A2が鈍角であるが、第1線分L1、第2線分L2、第3線分L3と、第4マーカ像座標P4と第1マーカ像座標P1を結ぶ線分により四辺形は形成されず、または形成された場合であっても第1角度A1または第2角度A2の少なくとも一方は内角とならない。そこでマーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3が抽出基準を満たしていないことを判定する(S12のN)。そのためマーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の組合せを位置姿勢導出部226に供給することなく破棄して、S10のステップに戻り、別の3個のマーカ像座標を選択する。
【0055】
なお
図10(b)~(d)に示した配置パターンでは、第1角度A1が鈍角であることが前提となっている。マーカ像座標抽出部224は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の2点を結ぶ隣り合う線分が鈍角を構成し得ない場合、その組合せは破棄して、新たな3個のマーク像座標を選択する。
【0056】
抽出条件を満たした第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の組合せは、候補マーカ情報保持部240に保持されているM個の候補マーカ情報で特定される3個の3次元座標の組合せのいずれかに対応している可能性が高い。このようにマーカ像座標抽出部224が、抽出条件を用いて、事前に特定されている候補マーカ情報にマッチする可能性の高い3個のマーカ像情報を抽出することで、位置姿勢導出部226による高効率で高精度な推定処理が実現される。
【0057】
候補マーカ情報保持部240は、所定の位置関係を満たす(N+a)個のマーカの3次元座標のうち少なくともN個の3次元座標の組合せを、候補マーカ情報として保持している。上記したとおり本実施形態で候補マーカ情報保持部240は、M個の候補マーカ情報を保持している。位置姿勢導出部226は候補マーカ情報保持部240が保持するM個の候補マーカ情報のうち、S10、S12のステップを経て抽出したN個のマーカ像に対応する可能性のある候補マーカ情報のうちの1つ選択し(S14)、式1を用いてPNP問題を解き(S16)、再投影誤差を算出する(S18)。
【0058】
位置姿勢導出部226は、候補マーカ情報保持部240に保持されているM個の候補マーカ情報のうち、撮影画像から抽出したマーカ像に対応する可能性のある全ての候補マーカ情報に関する計算が終了するまで(S20のN)、S14~S18のステップを繰り返す。位置姿勢導出部226は、それらの候補マーカ情報について再投影誤差を算出すると(S20のY)、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の1つの組合せについての推定演算を終了する。
【0059】
位置姿勢導出部226は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の複数の組合せについて推定演算を実施し(S22のN)、組合せ数が所定数に到達すると(S22のY)、最小の再投影誤差となる回転・並進行列を特定して(S24)、入力デバイス16の位置情報および姿勢情報を導出する(S26)。位置姿勢導出部226は、導出した位置情報および姿勢情報を、ゲーム実行部230に供給する。
【0060】
次に、位置姿勢導出部226がS14のステップにおいて、候補マーカ情報保持部240に保持されているM個の候補マーカ情報のうち、S10、S12のステップを経て抽出したN個のマーカ像に対応する可能性のある候補マーカ情報を選択する手法について説明する。位置姿勢導出部226が、マーカ像に対応する可能性の高い候補マーカ情報を適切に選択したうえでS16およびS18のステップに用いることにより、それらのステップの実施回数を減らすことができ、処理効率を格段に高めることができる。
【0061】
具体的には位置姿勢導出部226は、HMD100の姿勢センサ124および入力デバイス16の姿勢センサ52のセンサデータを利用して、HMD100から見える候補マーカの状態を評価することにより、マーカ像と対応しないことが明らかな候補マーカ情報を、S16の演算に用いないようにする。以下、センサデータを用いた候補マーカ情報の選択規則について例示する。
【0062】
図11は、位置姿勢導出部226が、N個のマーカ像座標の位置関係とN個の候補マーカの座標の位置関係の類似性に基づき、候補マーカ情報を取捨選択する手法を説明するための図である。
図11の(a)は、3個のマーカ像座標の位置関係の例を示す。当該マーカ像座標は、
図9のS10、S12のステップを経て抽出されたものであり、ここではN=3としている。
【0063】
図11の(b)は、センサデータをもとにHMD100および入力デバイス16の暫定的な姿勢を推定し、仮想的な3次元空間で同じ姿勢をとらせたときの、候補マーカ情報に含まれるN(=3)個のマーカ座標(以後、候補マーカ座標と呼ぶ)の、見かけの位置関係の例を示す。つまり(b)は、仮想的な3次元空間において入力デバイス16の3次元モデルをHMD100から見たときの、候補マーカ座標の配置を例示する。
【0064】
位置姿勢導出部226は、(a)に示すような、実際に観測されたマーカ像座標の位置関係(パターン)と、(b)に示すような、入力デバイス16の3次元モデルの姿勢を仮定してHMD100から見たときの候補マーカ座標の位置関係(パターン)の類似性を評価する。例えば位置姿勢導出部226は、それぞれのパターンにおいて、隣り合う座標を結んでなる線分がなす鈍角が形成される方向に基づき類似性を評価する。
【0065】
(a)に示す例では、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3が、それらを結ぶ線分のなす鈍角が紙面の下側を向くような位置関係にある。一方、(b)に示す例では、3つの候補マーカ座標が、それらを結ぶ線分のなす鈍角が紙面の上側を向くような位置関係にある。この場合、この候補マーカ座標の組はマーカ像座標の組と類似性が低く、対応することはないと判定できる。
【0066】
位置姿勢導出部226は例えば、各座標の組が形成する鈍角の頂点を始点として鈍角を2等分するベクトルva、vbを、鈍角が向く方向として取得する。そしてマーカ像座標の組から得られるベクトルvaと、候補マーカ座標の組から得られるベクトルvbの角度差が所定値以上のとき、対応する候補マーカ情報がマーカ像座標に対応しないと判定し、後段の演算処理の対象から除外する。ここで所定角度とは、例えば90°などとする。
【0067】
このような座標の位置関係の類似性に基づく候補マーカ情報の選択は、入力デバイス16の3次元モデルに与える暫定的な姿勢にある程度の誤差が含まれていても、候補マーカ座標の見かけの位置関係、ひいてはベクトルvbが大きく変化しないことを前提としている。一方、3次元空間におけるHMD100と入力デバイス16の位置関係によっては、3次元モデルの姿勢の誤差が候補マーカ座標の見かけの位置関係に大きく影響し、候補マーカ情報の正確な取捨選択が困難になる場合がある。
【0068】
図12は、HMD100と入力デバイス16の位置関係が、候補マーカ座標の見かけの位置関係に与える影響を説明するための図である。(a)、(b)はどちらも、仮想的な3次元空間において、入力デバイス16の3次元モデルをHMD100側から見たときの様子を示している。上述したように、入力デバイス16の3次元モデルには、姿勢センサのセンサデータに基づき、重力方向gに対する傾きを含む暫定的な姿勢が設定されている。当該暫定的な姿勢には当然、誤差が含まれ得る。
【0069】
(a)は紙面の下向きを重力方向gとしている。このような状態は、例えばHMD100に対し水平に近い方向に入力デバイス16がある場合に実現される。この場合、例えば矢印Aのように、重力方向g周りの回転角度に多くの誤差が含まれていても、HMD100から見た候補マーカ座標300aの位置関係には、上述した類似性を用いた判定基準が無効になるほどの変化は生じない。より詳細には、隣り合う候補マーカ座標を結んでなる線分のなす鈍角の方向が90°を越えて変化することはない。換言すればこの状況においては、座標の位置関係の類似性を根拠とする候補マーカの取捨選択の精度が、暫定的な姿勢に含まれる誤差に対し高い頑健性を有しているといえる。
【0070】
一方、(b)は、紙面に垂直かつ手前に向く軸を重力方向gとしている。このような状態は、HMD100に対しおよそ鉛直上向きの方向に入力デバイス16がある場合に実現される。この場合、例えば矢印Bのような重力方向g周りの回転によって、HMD100から見た候補マーカ座標300bの位置関係が直接影響を受けて変化する。より詳細には、隣り合う候補マーカ座標を結んでなる線分のなす鈍角の方向が、入力デバイス16の回転とともに変化する。このため、暫定的な姿勢に含まれる誤差により、候補マーカ情報の取捨選択が適切になされない可能性が高くなる。
【0071】
そこで位置姿勢導出部226は、HMD100に対する入力デバイス16の方向に応じて、候補マーカ情報の選択規則を切り替える。
図13は、位置姿勢導出部226が入力デバイス16の方向に基づき、候補マーカ情報の選択規則を切り替える処理を説明するための図である。同図は、紙面の下方向を重力方向gとする3次元空間において、入力デバイス16がヘッドマウントディスプレイ100の上方領域(I)、水平方向領域(II)、下方領域(III)に存在している状態を同時に表している。
【0072】
例えばユーザの顔、ひいてはHMD100の正面が上方を向いているとき、撮像装置14のスクリーン面304aの中央付近には、上方領域(I)にある入力デバイス16aのマーカの像306aが映る。HMD100の正面が水平方向を向いているとき、撮像装置14の撮像面に対応するスクリーン面304bの中央付近には、水平方向領域(II)にある入力デバイス16bのマーカの像306bが映る。HMD100の正面が下方を向いているとき、撮像装置14の撮像面に対応するスクリーン面304cの中央付近には、下方領域(III)にある入力デバイス16cのマーカの像306cが映る。
【0073】
ただし実際には、撮像装置14の画角は図示するより広く、HMD100の正面が水平方向を向いていても、上方や下方にある入力デバイス16のマーカの像が映っていてよい。またスクリーン面は、撮像装置14において像が射影される仮想的な面であり、射影方式によって形状が変化してよい。いずれにしろセンサデータが示すHMD100の姿勢に基づき、スクリーン面304a、304b、304cの姿勢が定まり、当該スクリーン面上でのマーカの像の位置座標に基づき、HMD100に対するマーカの方向、ひいては入力デバイス16の方向が、カメラパラメータを用いた周知の座標変換により求められる。
【0074】
入力デバイス16bが水平方向領域(II)にある状態は、
図12の(a)に対応する。すなわち入力デバイス16bに対応する3次元モデルの暫定的な姿勢の誤差に対し、候補マーカ座標の位置関係が大きく変化しないため、マーカ像座標のパターンとの類似性に基づく候補マーカ情報の選択精度が高い頑健性を有する。入力デバイス16aが上方領域(I)にある状態は、
図12の(b)に対応する。すなわち重力方向g周りの回転角によって、HMD100から見える候補マーカ座標の位置関係が大きく変化するため、マーカ像座標のパターンとの類似性を根拠とすると、候補マーカ情報の選択精度が悪化しやすい。
【0075】
入力デバイス16cが下方領域(III)にある状態も同様に、重力方向g周りの回転角によってHMD100から見える候補マーカ座標の位置関係が大きく変化するため、マーカ像座標のパターンとの類似性を根拠とすると、候補マーカ情報の選択精度が悪化しやすい。そこで位置姿勢導出部226は、HMD100に対する入力デバイス16の方向を、重力方向gの軸からの角度により定量化し、当該角度が属する領域によって候補マーカの選択規則を切り替える。
【0076】
具体的には、重力方向gの軸に対する入力デバイス16の角度が所定の境界308を越えた場合、位置姿勢導出部226は、
図11に示したように、候補マーカ座標とマーカ像座標の位置関係の類似性に基づき候補マーカ情報を取捨選択する。重力方向gの軸に対する入力デバイス16の角度が所定の境界308を越えない場合、位置姿勢導出部226は、入力デバイスが上方領域(I)または下方領域(III)にあると判定する。この場合、位置姿勢導出部226は、候補マーカ座標とマーカ像座標の位置関係の類似性以外の根拠で候補マーカ情報を取捨選択する。
【0077】
重力方向gの軸に対する角度の境界308は、例えば30°などとする。水平面を基準とすると、この設定は俯仰角60°に対応する。位置姿勢導出部226は、マーカ像座標(マーカの像306a、306b、306c)を3次元空間に逆射影した際の方向を表す3次元ベクトルを平均したベクトルの向く方向に基づき、重力方向gの軸に対する入力デバイス16の角度を取得する。
【0078】
入力デバイス16が上方領域(I)または下方領域(II)に属する際の、候補マーカ情報の取捨選択の根拠として、位置姿勢導出部226は、入力デバイス16の3次元モデルの表面のうち候補マーカが設けられた面が、HMD100、ひいては撮像面に対応するスクリーン面から見えるか否かを、両者の面の向く方向に基づき確認する。候補マーカが設けられた面が、スクリーン面から見えない傾きを有する場合、位置姿勢導出部226は、当該候補マーカは撮影画像には映り得ないと判定し、対応する候補マーカ情報を選択対象から除外する。
【0079】
図14は、入力デバイス16の3次元モデルの表面のうち候補マーカが設けられた面と、スクリーン面の向きに基づき、候補マーカ情報を選択する手法を説明するための図である。同図は入力デバイス16がHMD100の上方領域にある場合を想定している。すなわち撮影画像のスクリーン面304において抽出されたマーカの像306を3次元空間に逆射影したとき、それぞれの方向を表す3次元ベクトルの平均ベクトル310(以後、マーカ像平均ベクトル310と呼ぶ)の方向が、上方と定義される範囲にある。
【0080】
一方、位置姿勢導出部226は
図11のケースと同様、センサデータに基づく暫定的な姿勢で、仮想的な3次元空間に入力デバイス16の3次元モデルを配置する。なお図ではわかりやすさのため、スクリーン面304に対し入力デバイス16の3次元モデルを示しているが、実際には位置は未定でよい。位置姿勢導出部226は、撮影画像のスクリーン面304と、3次元モデルの表面のうち候補マーカ312が設けられた面314との向きの差に基づき、候補マーカ312が撮影画像に映り得るか否かを判定する。
【0081】
候補マーカ312が設けられた面がスクリーン面304の正面にあれば、両者の面の向きは逆方向であり、すなわち面の向きの差は180°である。両者の面の差が90°に近づくと、スクリーン面304に対し候補マーカ312が設けられた面の傾斜が急になり、候補マーカ座標のパターンが映りづらくなっていく。両者の面の差が90°以内になると、候補マーカ312が設けられた面はスクリーン面304から見て裏側(背面)にある状態となり、候補マーカ312は撮影画像には映り得ない。
【0082】
この特性は、入力デバイス16の3次元モデルが重力方向g周りに回転しても維持されるため、候補マーカ312が設けられた面とスクリーン面の向きの差によって候補マーカを取捨選択する手法は、暫定的な姿勢を規定する当該方向のパラメータの誤差に対し頑健性を有するといえる。図の例では、候補マーカ312が設けられた面314とスクリーン面304の向きの差が90°より小さく、撮影画像に候補マーカ312が映り得ないと判定される。
【0083】
位置姿勢導出部226は実際には、候補マーカ312の法線ベクトルの平均ベクトル316(以後、候補マーカ平均ベクトル316と呼ぶ)と、マーカ像平均ベクトル310との角度差により、面314とスクリーン面304の向きの差を評価する。候補マーカ平均ベクトル316を用いることにより、面314が曲面であっても、候補マーカ312が分布している領域に限定して、撮影画像に映る向きか否かを判定できる。またマーカ像平均ベクトル310を用いることにより、魚眼レンズなどによりスクリーン面304が曲面であっても、マーカが映り込んでいる領域に限定してスクリーン面の向きを特定できる。
【0084】
候補マーカ314が撮影画像に映り得ないとする面の向きの差、すなわち候補マーカ平均ベクトル316とマーカ像平均ベクトル310との角度差は、典型的には90°以内であるが、入力デバイス16の面の形状、スクリーン面の形状、重力方向gに対する3次元モデルの姿勢の誤差などに鑑み、適宜しきい値となる角度を決定してよい。
【0085】
図15は、
図9のS14のステップにおいて、位置姿勢導出部226が候補マーカ情報を選択する処理手順を示すフローチャートである。まず位置姿勢導出部226は、候補マーカ情報保持部240に保持されているM個の候補マーカ情報のうち1つを読み出す(S30)。次に位置姿勢導出部226は、
図9のS10、S12のステップを経て抽出されたN個のマーカ像座標に基づきマーカ像平均ベクトルを取得する(S32)。
【0086】
次に位置姿勢導出部226は、マーカ像平均ベクトルが示す入力デバイス16の方向が、HMD100の上方領域、あるいは下方領域と定義される範囲にあるか否かを確認する(S34)。入力デバイス16がHMD100の上方領域、あるいは下方領域になければ(S34のN)、位置姿勢導出部226は、S30のステップで読み出した候補マーカ情報が表す候補マーカ座標の組と、
図9のS10、S12のステップを経て抽出されたマーカ像座標の組の位置関係を比較して類似性を評価する(S36)。
【0087】
すなわち位置姿勢導出部226は、センサデータに基づき推定される姿勢で、入力デバイスの3次元モデルを配置し、候補マーカ座標の組の見かけ上の位置関係と、マーカ像座標の位置関係とを、隣り合う座標を結んでなる線分がなす鈍角の向きなどにより評価する。両者の差が基準以上であれば、位置姿勢導出部226は、候補マーカとマーカ像座標の類似性が低く、候補マーカ情報がマーカ像座標に対応しないと判定する(S36のY)。
【0088】
この場合、位置姿勢導出部226は、S30のステップで読み出した候補マーカ情報を破棄し(S38)、新たな候補マーカ情報を候補マーカ情報保持部240から読み出す(S30)。差が基準より小さい場合、位置姿勢導出部226は、当該候補マーカ情報を破棄せず、選択処理を一旦終了することにより、
図9のS16、S18の処理に利用する(S36のN)。
【0089】
S34のステップにおいて、入力デバイス16がHMD100の上方領域、あるいは下方領域にある場合(S34のY)、位置姿勢導出部226は、入力デバイスの3次元モデルの表面のうち候補マーカが設けられた面と、撮影画像のスクリーン面の向きの差を評価することで、候補マーカが撮影画像に映り得るか否かを確認する(S40)。すなわち位置姿勢導出部226は、マーカ像平均ベクトルと候補マーカ平均ベクトルとの角度差を取得し、当該角度差が所定値以内であれば、候補マーカが撮影画像に映り得ないと判定する(S40のY)。
【0090】
この場合、位置姿勢導出部226は、S30のステップで読み出した候補マーカ情報を破棄し(S42)、新たな候補マーカ情報を候補マーカ情報保持部240から読み出す(S30)。候補マーカが撮影画像に映り得ると判定した場合、位置姿勢導出部226は、当該候補マーカ情報を破棄せず選択処理を一旦終了することにより、
図9のS16、S18の処理に利用する(S40のN)。
【0091】
以上述べた本実施の形態によれば、撮影画像に映る入力デバイスの像と、当該入力デバイスの3次元モデルを用いてPNP問題を解くことにより、入力デバイスの位置情報、姿勢情報を取得する。ここで情報処理装置は、撮影画像上のマーカ像座標と3次元モデル上の候補マーカとを対応づけて再投影誤差を算出する前段階として、センサデータが示す入力デバイスの姿勢情報を利用して候補マーカの見かけを評価し、対応しない可能性の高い候補マーカ情報を演算対象から除外する。
【0092】
対応しない候補マーカを特定するため、情報処理装置は、センサデータに基づく暫定的な姿勢をとる入力デバイスの3次元モデル表面のうち、候補マーカが設けられた面と撮影画像のスクリーン面の向きの差に基づき、当該候補マーカが撮影画像に映り得るか否かを確認する。候補マーカが撮影画像に映り得ない場合、当該候補マーカを演算対象から除外することにより、演算負荷を抑えられ、位置情報や姿勢情報を効率的に取得できる。また、マーカ像に対応する可能性の低い候補マーカを初期に除外しておくことで、計算上、誤った対応づけがなされる可能性を低くでき、位置情報や姿勢情報の精度を高めることができる。
【0093】
また情報処理装置は、入力デバイスの実際の状態によって、候補マーカ情報の選択規則を切り替える。具体的には、入力デバイスがHMDの上方領域または下方領域と定義される領域にある場合、上述のとおり撮影画像に映り得るか否かを根拠に候補マーカ情報を取捨選択する。入力デバイスがそれ以外の方向にある場合、情報処理装置は、マーカ像座標が形成するパターンと候補マーカが形成するパターンを比較し、その類似性に基づき候補マーカ情報を取捨選択する。これにより、3次元モデルの暫定的な姿勢に含まれる誤差が候補マーカ情報の選択精度に与える影響を、入力デバイスの方向によらず最小限に抑えることができる。
【0094】
以上、本発明を、実施形態をもとに説明した。上記実施形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。本実施形態では推定処理を情報処理装置10が実施したが、情報処理装置10の機能がHMD100に設けられて、HMD100が推定処理を実施してもよい。
【0095】
本実施形態では、操作部材22を備えた入力デバイス16における複数のマーカ30の配置について説明したが、トラッキングの対象となるデバイスは、必ずしも操作部材22を備えていなくてよい。また本実施形態では撮像装置14がHMD100に取り付けられているが、撮像装置14は、マーカ像を撮影できればよく、HMD100以外の別の位置に取り付けられてもよい。
【符号の説明】
【0096】
1 情報処理システム、 10 情報処理装置、 14 撮像装置、 16 入力デバイス、 30 マーカ、 200 処理部、 202 通信部、 210 取得部、 212 撮影画像取得部、 214 センサデータ取得部、 216 操作情報取得部、 220 推定処理部、 222 マーカ像座標特定部、 224 マーカ像座標抽出部、 226 位置姿勢導出部、 240 候補マーカ情報保持部。