(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-20
(45)【発行日】2022-12-28
(54)【発明の名称】情報処理装置およびデバイス情報導出方法
(51)【国際特許分類】
G06F 3/01 20060101AFI20221221BHJP
A63F 13/213 20140101ALI20221221BHJP
A63F 13/428 20140101ALI20221221BHJP
A63F 13/211 20140101ALI20221221BHJP
【FI】
G06F3/01 514
A63F13/213
A63F13/428
A63F13/211
(21)【出願番号】P 2019083058
(22)【出願日】2019-04-24
【審査請求日】2022-02-21
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【氏名又は名称】森下 賢樹
(74)【代理人】
【識別番号】100109047
【氏名又は名称】村田 雄祐
(74)【代理人】
【識別番号】100109081
【氏名又は名称】三木 友由
(74)【代理人】
【識別番号】100134256
【氏名又は名称】青木 武司
(72)【発明者】
【氏名】西川 憲三
(72)【発明者】
【氏名】南野 孝範
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2000-172431(JP,A)
【文献】国際公開第2014/069247(WO,A1)
【文献】特開2008-116373(JP,A)
【文献】特開2017-187859(JP,A)
【文献】特開2005-140547(JP,A)
【文献】特開2012-033119(JP,A)
【文献】特開2003-030628(JP,A)
【文献】特開2008-299714(JP,A)
【文献】米国特許出願公開第2013/0106833(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
A63F 13/213
A63F 13/428
A63F 13/211
(57)【特許請求の範囲】
【請求項1】
複数のマーカを備えたデバイスを撮影した画像を取得する撮影画像取得部と、
撮影画像におけるマーカ像座標にもとづいて、前記デバイスの位置情報および姿勢情報を推定する推定処理部と、を備え、
前記推定処理部は、
撮影画像におけるN(Nは3以上の整数)個のマーカ像座標を抽出する抽出部と、
抽出されたN個のマーカ像座標と、前記デバイスの3次元モデルにおけるN個のマーカの3次元座標から、前記デバイスの位置情報および姿勢情報を導出する位置姿勢導出部と、を有し、
前記抽出部は、選んだ(N+a(aは1以上の整数))個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を抽出する、
ことを特徴とする情報処理装置。
【請求項2】
所定の位置関係は、(N+a)個のマーカ像座標を連続する複数の線分で繋げたときに、隣り合う線分のなす角度が全て鈍角となる関係である、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
所定の位置関係は、第1マーカ像座標と第2マーカ像座標を結ぶ第1線分と第2マーカ像座標と第3マーカ像座標を結ぶ第2線分とが第1鈍角をなし、第2線分と第3マーカ像座標と第4マーカ像座標を結ぶ第3線分とが第2鈍角をなし、且つ、第1鈍角および第2鈍角が、第1線分、第2線分、第3線分と、第4マーカ像座標と第1マーカ像座標を結ぶ線分により形成される四辺形における内角となる、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
所定の位置関係を満たす(N+a)個のマーカの3次元座標のうち少なくともN個の3次元座標の組合せを、候補マーカ情報として保持する候補マーカ情報保持部をさらに備え、
前記位置姿勢導出部は、前記抽出部により抽出されたN個のマーカ像座標と、候補マーカ情報に含まれるN個のマーカの3次元座標を用いて、前記デバイスの位置情報および姿勢情報を導出する、
ことを特徴とする請求項1から3のいずれかに記載の情報処理装置。
【請求項5】
前記デバイスの姿勢センサのセンサデータを取得するセンサデータ取得部をさらに備え、
前記位置姿勢導出部は、前記デバイスの姿勢センサのセンサデータを用いて前記デバイスの暫定的な姿勢を推定し、推定した前記デバイスの暫定的な姿勢となるように3次元モデルを配置したときに、N個のマーカ像座標に対して所定の基準を満たす候補マーカ情報を用いて、前記デバイスの位置情報および姿勢情報を導出する、
ことを特徴とする請求項4に記載の情報処理装置。
【請求項6】
複数のマーカを備えたデバイスを撮影した画像を取得するステップと、
撮影画像におけるN(Nは3以上の整数)個のマーカ像座標を抽出するステップと、
抽出されたN個のマーカ像座標と、前記デバイスの3次元モデルにおけるN個のマーカの3次元座標から、前記デバイスの位置情報および姿勢情報を導出するステップと、を有し、
マーカ像座標を抽出するステップは、選んだ(N+a(aは1以上の整数))個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を抽出するステップを含む、
ことを特徴とするデバイス情報導出方法。
【請求項7】
コンピュータに、
複数のマーカを備えたデバイスを撮影した画像を取得する機能と、
撮影画像におけるN(Nは3以上の整数)個のマーカ像座標を抽出する機能と、
抽出されたN個のマーカ像座標と、前記デバイスの3次元モデルにおけるN個のマーカの3次元座標から、前記デバイスの位置情報および姿勢情報を導出する機能と、を実現させるためのプログラムであって、
マーカ像座標を抽出する機能は、選んだ(N+a(aは1以上の整数))個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を抽出する機能を含む、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デバイスの位置情報および姿勢情報を導出する技術に関する。
【背景技術】
【0002】
特許文献1は、ゲーム装置の前方を撮影したフレーム画像を取得して、フレーム画像におけるゲームコントローラのLED像の位置から実空間におけるゲームコントローラの位置情報および姿勢情報を推定し、推定した位置情報および/または姿勢情報をゲームアプリケーションの処理に反映するゲーム装置を開示する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年、デバイスの位置や姿勢をトラッキングし、VR空間の3Dモデルに反映させる情報処理技術が普及している。情報処理装置が、ゲーム空間のプレイヤキャラクタやゲームオブジェクトの動きを、トラッキング対象となるデバイスの位置や姿勢の変化に連動させることで、ユーザによる直観的な操作が実現される。
【0005】
デバイスの位置および姿勢を推定するために、デバイスには点灯する複数のマーカが取り付けられる。情報処理装置は、デバイスを撮影した画像に含まれる複数のマーカ像の座標を特定し、当該デバイスの3次元モデルにおける複数のマーカの3次元座標と照らし合わせることで、実空間におけるデバイスの位置および姿勢が推定される。撮影されるマーカ像の数が多いほどデバイスの位置および姿勢の推定精度は向上するが、一方でマーカ像の数が多くなると計算量が増加する問題がある。
【0006】
そこで本発明は、デバイスの位置および姿勢の高精度な推定演算に必要な計算量を削減するための技術を提供することを目的とする。なおデバイスは操作ボタンを有する入力デバイスであってよいが、操作部材を有しない単にトラッキングの対象となるデバイスであってよい。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様の情報処理装置は、複数のマーカを備えたデバイスを撮影した画像を取得する撮影画像取得部と、撮影画像におけるマーカ像座標にもとづいて、デバイスの位置情報および姿勢情報を推定する推定処理部とを備える。推定処理部は、撮影画像におけるN(Nは3以上の整数)個のマーカ像座標を抽出する抽出部と、抽出されたN個のマーカ像座標と、デバイスの3次元モデルにおけるN個のマーカの3次元座標から、デバイスの位置情報および姿勢情報を導出する位置姿勢導出部とを有する。抽出部は、選んだ(N+a(aは1以上の整数))個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を抽出する。
【0008】
本発明の別の態様は、デバイス情報導出方法である。この方法は、複数のマーカを備えたデバイスを撮影した画像を取得するステップと、撮影画像におけるN(Nは3以上の整数)個のマーカ像座標を抽出するステップと、抽出されたN個のマーカ像座標と、デバイスの3次元モデルにおけるN個のマーカの3次元座標から、デバイスの位置情報および姿勢情報を導出するステップとを有する。マーカ像座標を抽出するステップは、選んだ(N+a(aは1以上の整数))個のマーカ像座標が所定の位置関係にある場合に、(N+a)個のうちのN個のマーカ像座標を抽出するステップを含む。
【図面の簡単な説明】
【0009】
【
図5】入力デバイスを撮影した画像の一部の例を示す図である。
【
図6】入力デバイスの機能ブロックを示す図である。
【
図7】情報処理装置の機能ブロックを示す図である。
【
図8】入力デバイスを撮影した画像の例を示す図である。
【
図9】推定処理部による推定処理のフローチャートである。
【
図10】マーカ像座標の位置関係の例を示す図である。
【
図11】(a)はマーカ像座標の位置関係の例を示し、(b)はN個のマーカ座標の位置関係の例を示す図である。
【発明を実施するための形態】
【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から1つの候補マーカ情報を読み出し(S14)、式1を用いてPNP問題を解き(S16)、再投影誤差を算出する(S18)。位置姿勢導出部226は、候補マーカ情報保持部240に保持されているM個全ての候補マーカ情報に関する計算が終了するまで(S20のN)、S14~S18のステップを繰り返す。位置姿勢導出部226は、M個全ての候補マーカ情報について再投影誤差を算出すると(S20のY)、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の1つの組合せについての推定演算を終了する。位置姿勢導出部226は、第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3の複数の組合せについて推定演算を実施し(S22のN)、組合せ数が所定数に到達すると(S22のY)、最小の再投影誤差となる回転・並進行列を特定して(S24)、入力デバイス16の位置情報および姿勢情報を導出する。位置姿勢導出部226は、導出した位置情報および姿勢情報を、ゲーム実行部230に供給する。
【0058】
なお推定処理部220は、センサデータ取得部214からHMD100の姿勢センサ124のセンサデータおよび入力デバイス16の姿勢センサ52のセンサデータを供給される。位置姿勢導出部226は、各姿勢センサのセンサデータを用いて入力デバイス16の暫定的な姿勢を推定し、暫定的な姿勢となるように3次元モデルを配置したときに、N個のマーカ像座標に対して所定の基準を満たす候補マーカ情報を用いて、入力デバイス16の位置情報および姿勢情報を導出してよい。
【0059】
位置姿勢導出部226は、暫定的な姿勢で3次元モデルを配置したときに、M個の候補マーカ情報のうち、マーカ像座標に絶対に対応しないことが判定される候補マーカ情報を、S14のステップにおいて読み出さないようにする。これにより当該候補マーカ情報に関して、S16およびS18のステップの実施を省略できる。
【0060】
図11(a)は、N個のマーカ像座標の位置関係の例を示す。
図11(b)は、センサデータをもとに入力デバイス16の暫定的な姿勢を推定し、仮想的な3次元空間で3次元モデルに同じ姿勢をとらせたときの、候補マーカ情報に含まれるN個のマーカ座標の位置関係の例を示す。
【0061】
図11(a)に示すように第1マーカ像座標P1、第2マーカ像座標P2、第3マーカ像座標P3は、鈍角が紙面の下を向くような位置関係にある。一方、N個のマーカ座標は、鈍角が紙面の上を向くような位置関係にある。
【0062】
鈍角の頂点を始点として鈍角を2等分するベクトルを作成したときに、両者のベクトルの角度差が所定角度以上であると、位置姿勢導出部226は、候補マーカ情報がマーカ像座標に対応しないと判断してよい。たとえば所定角度は90度であってよく、位置姿勢導出部226は、両者のベクトルが90度以上ずれている場合に、候補マーカ情報を計算対象から外して、S14のステップにおいて読み出さないようにする。このような場合は、明らかにマーカ像座標に対応しないため、位置姿勢導出部226は、当該候補マーカ情報の計算を省略し、計算量を削減できる。
【0063】
以上、本発明を実施例をもとに説明した。上記実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では推定処理を情報処理装置10が実施したが、情報処理装置10の機能がHMD100に設けられて、HMD100が推定処理を実施してもよい。
【0064】
実施例では、操作部材22を備えた入力デバイス16における複数マーカ30の配置について説明したが、トラッキングの対象となるデバイスは、必ずしも操作部材22を備えていなくてよい。また実施例では撮像装置14がHMD100に取り付けられているが、撮像装置14は、マーカ像を撮影できればよく、HMD100以外の別の位置に取り付けられてもよい。
【符号の説明】
【0065】
1・・・情報処理システム、10・・・情報処理装置、14・・・撮像装置、16・・・入力デバイス、30・・・マーカ、200・・・処理部、202・・・通信部、210・・・取得部、212・・・撮影画像取得部、214・・・センサデータ取得部、216・・・操作情報取得部、220・・・推定処理部、222・・・マーカ像座標特定部、224・・・マーカ像座標抽出部、226・・・位置姿勢導出部、230・・・ゲーム実行部、240・・・候補マーカ情報保持部。