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