(57)【要約】  複数の撮像装置１２ａ、１２ｂを配置し、ＨＭＤ１８が存在する空間を撮影する。各撮像装置による撮影画像を個別に解析することにより、各カメラ座標系でのＨＭＤ１８の位置姿勢情報を取得する。当該位置姿勢情報は、１つの情報処理装置に集約し、撮像装置によらないワールド座標系での情報に変換する。撮像装置の視野が重なる領域１８６にＨＭＤ１８が存在する期間を利用し、撮像装置同士の位置と姿勢の相対関係を取得し、それに基づき座標変換のためのパラメータを取得する。
2019064399.tif 000002
【特許請求の範囲】
【請求項１】
対象物を異なる視点から所定のレートで撮影する複数の撮像装置と、
前記複数の撮像装置が撮影した画像のうち、前記対象物が写る画像をそれぞれ解析することにより個別に取得された、対象物の位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し出力する情報処理装置と、
を備えたことを特徴とする情報処理システム。
【請求項２】
前記撮像装置に接続され、対応する撮像装置が撮影した画像を解析することにより、当該撮像装置のカメラ座標系における対象物の位置姿勢情報を取得するローカル情報生成装置をさらに備え、
前記情報処理装置は、
自装置に接続された撮像装置が撮影した画像を解析することにより、当該撮像装置のカメラ座標系における対象物の位置姿勢情報を取得するローカル情報生成部と、
前記ローカル情報生成部が取得した位置姿勢情報と、前記ローカル情報生成装置から取得した位置姿勢情報のいずれかを座標変換することにより、撮像装置に共通のワールド座標系での位置姿勢情報を生成する位置姿勢情報生成部と、
を備えることを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記情報処理装置は、複数の撮像装置の視野が重複する領域に対象物があるとき、当該対象物が所定の条件を満たしたら、座標変換の対象とする位置姿勢情報の取得元である撮像装置を切り替える撮像装置切替部を備えることを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記情報処理装置は、複数の撮像装置の視野が重複する領域に対象物があるとき、各撮像装置が撮影した画像を解析することにより得られた、それぞれのカメラ座標系における対象物の位置姿勢情報に基づき、撮像装置の位置および姿勢の相対関係を取得し、その結果に基づき、前記座標変換するのに用いる変換パラメータを、撮像装置ごとに取得する変換パラメータ取得部を備えることを特徴とする請求項２または３に記載の情報処理システム。
【請求項５】
前記変換パラメータ取得部は、前記それぞれのカメラ座標系における対象物の位置姿勢情報をワールド座標系における情報に座標変換した際、同じ位置姿勢情報が得られるように前記変換パラメータを導出することを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記変換パラメータ取得部は、位置姿勢情報の取得元である撮像装置を切り替えるタイミング以外の期間において、前記変換パラメータを、別途取得した前記撮像装置の位置および姿勢に係る情報を利用して段階的に補正することを特徴とする請求項４または５に記載の情報処理システム。
【請求項７】
前記複数の撮像装置は、実空間に備えられた面上に所定の配列で設置されることを特徴とする請求項１から６のいずれかに記載の情報処理システム。
【請求項８】
前記複数の撮像装置は、実空間に平行に備えられた複数の面上に、撮像面を対向させるように設置されることを特徴とする請求項７に記載の情報処理システム。
【請求項９】
前記複数の撮像装置は、対象物の可動範囲を囲む複数の面上に設置されることを特徴とする請求項７に記載の情報処理システム。
【請求項１０】
前記ローカル情報生成装置は、自装置のプロセス時間と前記情報処理装置のプロセス時間との関係を、信号が往復する時間に基づき測定することにより、タイムスタンプの変換パラメータを取得し、前記カメラ座標系における対象物の位置姿勢情報を前記情報処理装置に送信する際、当該変換パラメータを用いて生成した、前記情報処理装置のプロセス時間におけるタイムスタンプを付加することを特徴とする請求項２から６のいずれかに記載の情報処理システム。
【請求項１１】
前記情報処理装置は、
前記対象物が備えるＩＭＵセンサの出力値を取得するセンサ値取得部と、
当該出力値を前記ローカル情報生成装置に送信するセンサ値送信部と、をさらに備え、
前記ローカル情報生成部および前記ローカル情報生成装置は、前記画像を解析することにより得られた位置姿勢情報と、前記ＩＭＵセンサの出力値とを統合することにより、前記カメラ座標系における対象物の位置姿勢情報を取得することを特徴とする請求項２から６のいずれかに記載の情報処理システム。
【請求項１２】
ヘッドマウントディスプレイと、
前記ヘッドマウントディスプレイを異なる視点から所定のレートで撮影する複数の撮像装置と、
前記複数の撮像装置が撮影した画像のうち、前記ヘッドマウントディスプレイが写る画像をそれぞれ解析することにより個別に取得された、前記ヘッドマウントディスプレイの位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し、それを用いて表示画像を生成し前記ヘッドマウントディスプレイに出力する情報処理装置と、
を備えたことを特徴とする情報処理システム。
【請求項１３】
複数の撮像装置が、異なる視点から所定のレートで対象物を撮影するステップと、
情報処理装置が、前記複数の撮像装置が撮影した画像のうち、前記対象物が写る画像をそれぞれ解析することにより個別に取得された、対象物の位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し出力するステップと、
を含むことを特徴とする対象物情報取得方法。
【請求項１４】
複数の撮像装置が所定のレートで異なる視点から対象物を撮影した画像のうち、前記対象物が写る画像をそれぞれ解析することにより個別に取得された、対象物の位置姿勢情報を取得する機能と、
当該位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影画像に基づき対象物の状態情報を取得する情報処理装置および対象物情報取得方法に関する。
【背景技術】
【０００２】
ゲーム機に接続されたヘッドマウントディスプレイ（以下、「ＨＭＤ」と呼ぶ）を頭部に装着して、表示された画面を見ながらゲームプレイすることが行われている（例えば特許文献１参照）。例えばユーザの頭部の位置や姿勢を取得し、顔の向きに応じて視野を変化させるように仮想世界の画像を表示すれば、あたかも仮想世界に入り込んだような状況を演出できる。ユーザの位置や姿勢は一般的に、ユーザを撮影した可視光や赤外線の画像の解析結果や、ＨＭＤに内蔵したモーションセンサの計測値などに基づいて取得される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５５８０８５５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
撮影画像に基づき何らかの情報処理を行う技術は、ユーザなどの対象物がカメラの画角内にいることを前提としている。しかしながらＨＭＤを装着した状態では、ユーザは外界を見ることができないため、方向感覚を失ったり、ゲームに没頭するあまり実空間で思わぬ位置に移動していたりすることがあり得る。これによりカメラの画角から外れると、情報処理が破綻したり精度が悪化したりするうえ、ユーザ自身がその原因に気づかないことも考えられる。ＨＭＤを利用するか否かに関わらず、より多様かつユーザへのストレスの少ない情報処理を実現するためには、より広い可動範囲で安定的に状態情報を取得できるようにすることが望ましい。【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影により対象物の状態情報を取得する技術において、対象物の可動範囲を容易かつ安定的に拡張できる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理システムに関する。この情報処理システムは、対象物を異なる視点から所定のレートで撮影する複数の撮像装置と、複数の撮像装置が撮影した画像のうち、対象物が写る画像をそれぞれ解析することにより個別に取得された、対象物の位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し出力する情報処理装置と、を備えたことを特徴とする。【０００７】
本発明の別の態様は対象物情報取得方法に関する。この対象物情報取得方法は、複数の撮像装置が、異なる視点から所定のレートで対象物を撮影するステップと、情報処理装置が、複数の撮像装置が撮影した画像のうち、対象物が写る画像をそれぞれ解析することにより個別に取得された、対象物の位置姿勢情報のいずれかを用いて、最終的な位置姿勢情報を所定のレートで生成し出力するステップと、を含むことを特徴とする。【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によると、撮影により対象物の状態情報を取得する技術において、対象物の可動範囲を容易かつ安定的に拡張できる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態におけるＨＭＤの外観形状の例を示す図である。
【図３】本実施の形態における、メイン機能を有する情報処理装置の内部回路構成を示す図である。
【図４】本実施の形態におけるＨＭＤの内部回路構成を示す図である。
【図５】本実施の形態における情報処理装置の機能ブロックの構成を示す図である。
【図６】本実施の形態における撮像装置の配置とＨＭＤの可動範囲の関係を例示する図である。
【図７】本実施の形態における変換パラメータ取得部が、ローカル情報をグローバル情報に変換するためのパラメータを求める手法を説明するための図である。
【図８】本実施の形態において情報処理装置が対象物の位置姿勢情報を取得し、それに応じたデータを生成、出力する処理手順を示すフローチャートである。
【図９】本実施の形態における情報処理装置間でタイムスタンプを相互変換する手法を説明するための図である。
【図１０】本実施の形態において撮像装置と情報処理装置の対を３つ以上設けた場合の配置例を示す図である。
【発明を実施するための形態】
【００１１】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。情報処理システムは、対象物を撮影する複数の撮像装置１２ａ、１２ｂと、各撮像装置により撮影された画像を用いて対象物の位置や姿勢の情報を取得する情報処理装置１０ａ、１０ｂとの対８ａ、８ｂを複数設けた構成とする。対象物は特に限定されないが、例えばＨＭＤ１８の位置や姿勢を取得することにより、それを装着するユーザ１の頭部の位置や動きを特定でき、視線に応じた視野で画像を表示できる。
【００１２】
撮像装置１２ａ、１２ｂは、ユーザなどの対象物を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、通信を確立した情報処理装置１０ａ、１０ｂに送出する機構とを有する。カメラはＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的なデジタルカメラ、デジタルビデオカメラで利用されている可視光センサを備える。撮像装置１２が備えるカメラは１つのみでもよいし、図示するように２つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラでもよい。
【００１３】
あるいは単眼のカメラと、赤外線などの参照光を対象物に照射しその反射光を測定する装置との組み合わせで撮像装置１２ａ、１２ｂを構成してもよい。ステレオカメラや反射光の測定機構を導入した場合、３次元空間における対象物の位置を精度よく求めることができる。ステレオカメラが左右の視点から撮影したステレオ画像を用いて、三角測量の原理により被写体のカメラからの距離を特定する手法、反射光の測定によりＴＯＦ（Time of Flight）やパターン照射の方式で被写体のカメラからの距離を特定する手法はいずれも広く知られている。
【００１４】
ただし撮像装置１２ａ、１２ｂを単眼のカメラとしても、対象物に所定のサイズおよび形状のマーカーを装着させたり、対象物のサイズおよび形状自体を既知としたりすることにより、その像の位置およびサイズから実空間での位置を特定することが可能である。
【００１５】
情報処理装置１０ａ、１０ｂはそれぞれ、対応する撮像装置１２ａ、１２ｂと通信を確立し、送信された撮影画像のデータを用いて対象物の位置や姿勢に係る情報を取得する。一般に、撮影画像を用いて上述したような手法により得られる対象物の位置や姿勢は、撮像装置の光学中心を原点とし、撮像面の縦方向、横方向、および撮像面に垂直な方向に軸を有するカメラ座標系における情報となる。本実施の形態ではまず、各情報処理装置１０ａ、１０ｂにおいて、対象物の位置姿勢情報を各カメラ座標系で取得する。
【００１６】
そしてそれらを統一したワールド座標系での情報に変換することで、対象物の最終的な位置姿勢情報を生成する。これにより、対象物がどの撮像装置の視野にあるかに関わりなく、位置姿勢情報を利用した情報処理を行える。すなわち後段の処理に影響を与えることなく、対象物の可動範囲を撮像装置の数だけ拡張することができる。また各情報処理装置１０ａ、１０ｂがそれぞれ独立に取得した、対応する撮像装置１２ａ、１２ｂのカメラ座標系での位置姿勢情報を利用するため、撮像装置と情報処理装置の対８ａ、８ｂとしては従来のものをそのまま利用でき、実現が容易である。
【００１７】
図１では撮像装置１２ａと情報処理装置１０ａの対８ａ、撮像装置１２ｂと情報処理装置１０ｂの対８ｂ、という２つの対を例示しているが、その数は限定されない。各カメラ座標系で取得した位置姿勢情報は、あらかじめ決定した１つの情報処理装置１０ａに集約させる。当該情報処理装置１０ａは、自装置およびその他の情報処理装置１０ｂが取得した位置姿勢情報を収集し、ワールド座標系における位置姿勢情報を生成する。そしてその結果に基づき所定の情報処理を行い、画像や音声などの出力データを生成する。
【００１８】
以後、カメラ座標系での位置姿勢情報を収集して座標変換を行い、最終的な位置姿勢情報を生成したり、それを用いて所定の情報処理を行ったりする情報処理装置１０ａを、「メイン機能を有する情報処理装置１０ａ」、それ以外の情報処理装置を「サブ機能を有する情報処理装置」と表現することがある。
【００１９】
メイン機能を有する情報処理装置１０ａが位置姿勢情報を用いて行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜決定してよい。情報処理装置１０ａは例えば、上述のとおりＨＭＤ１８の位置姿勢情報を取得し、ユーザの視線に応じた視野で仮想世界を描画することで仮想現実を実現してもよい。またユーザの頭部や手などの動きを特定し、それを反映させたキャラクタやアイテムが登場するゲームを進捗させたり、ユーザの動きをコマンド入力に変換して情報処理を行ったりしてもよい。メイン機能を有する情報処理装置１０ａは、生成した出力データをＨＭＤ１８などの表示装置に出力する。
【００２０】
ＨＭＤ１８は、ユーザが頭部に装着することによりその眼前に位置する有機ＥＬパネルなどの表示パネルに画像を表示する表示装置である。例えば左右の視点から見た視差画像を生成し、表示画面を２分割してなる左右の領域にそれぞれ表示させることにより、画像を立体視させてもよい。ただし本実施の形態をこれに限る主旨ではなく、表示画面全体に１つの画像を表示させてもよい。ＨＭＤ１８はさらに、ユーザの耳に対応する位置に音声を出力するスピーカーやイヤホンを内蔵していてもよい。なおメイン機能を有する情報処理装置１０ａによるデータの出力先はＨＭＤ１８に限らず、図示しない平板型のディスプレイなどでもよい。
【００２１】
情報処理装置１０ａ、１０ｂと対応する撮像装置１２ａ、１２ｂの間の通信、メイン機能を有する情報処理装置１０ａとサブ機能を有する情報処理装置１０ｂの間の通信、メイン機能を有する情報処理装置１０ａとＨＭＤ１８の間の通信は、イーサネット（登録商標）などの有線ケーブルにより実現しても、Bluetooth（登録商標）などの無線通信により実現してもよい。またこれらの装置の外観形状は図示するものに限らない。例えば撮像装置１２ａと情報処理装置１０ａ、撮像装置１２ｂと情報処理装置１０ｂをそれぞれ一体的に備えた情報端末などとしてもよい。
【００２２】
さらに各装置に画像表示機能を設け、対象物の位置や姿勢に応じて生成した画像を各装置に表示させてもよい。上述のとおり本実施の形態ではまず、情報処理装置と撮像装置の対８ａ、８ｂのそれぞれにおいて、カメラ座標系での対象物の位置姿勢情報を取得する。この処理には既存技術を適用できるため対象物も特に限定されないが、以後、ＨＭＤ１８を対象物とする場合を説明する。
【００２３】
図２はＨＭＤ１８の外観形状の例を示している。この例においてＨＭＤ１８は、出力機構部１０２および装着機構部１０４で構成される。装着機構部１０４は、ユーザが被ることにより頭部を一周し装置の固定を実現する装着バンド１０６を含む。装着バンド１０６は各ユーザの頭囲に合わせて長さの調節が可能な素材または構造とする。例えばゴムなどの弾性体としてもよいし、バックルや歯車などを利用してもよい。
【００２４】
出力機構部１０２は、ＨＭＤ１８をユーザが装着した状態において左右の目を覆うような形状の筐体１０８を含み、内部には装着時に目に正対するように表示パネルを備える。そして筐体１０８の外面には、所定の色で発光するマーカー１１０ａ、１１０ｂ、１１０ｃ、１１０ｄ、１１０ｅを設ける。マーカーの数、配置、形状は特に限定されないが、図示する例では、およそ矩形のマーカーを、出力機構部１０２の筐体前面の４隅および中央に設けている。
【００２５】
さらに装着バンド１０６後方の両側面にも、楕円形のマーカー１１０ｆ、１１０ｇを設けている。このようにマーカーを配置することにより、撮像装置１２ａ、１２ｂに対しユーザが横を向いたり後ろを向いたりしても、撮影画像におけるマーカーの像の数や位置に基づきそれらの状況を特定できる。なおマーカー１１０ｄ、１１０ｅは出力機構部１０２の下側、マーカー１１０ｆ、１１０ｇは装着バンド１０６の外側にあり、図２の視点からは本来は見えないため、外周を点線で表している。マーカーは所定の色や形状を有し、撮影空間にある他の物からの識別が可能な形態であればよく、場合によっては発光していなくてもよい。
【００２６】
図３は、メイン機能を有する情報処理装置１０ａの内部回路構成を示している。情報処理装置１０ａは、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、サブ機能を有する情報処理装置１０ｂやＨＭＤ１８へデータを出力する出力部３６、サブ機能を有する情報処理装置１０ｂ、撮像装置１２、およびＨＭＤ１８からのデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００２７】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０ａの全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。
【００２８】
そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６に出力する。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。なおサブ機能を有する情報処理装置１０ｂも、基本的には同様の内部回路構成としてよい。ただし情報処理装置１０ｂにおいて入力部３８は、情報処理装置１０ａからのデータを入力し、出力部３６はカメラ座標系での位置姿勢情報を出力する。
【００２９】
図４はＨＭＤ１８の内部回路構成を示している。ＨＭＤ１８は、ＣＰＵ５０、メインメモリ５２、表示部５４、音声出力部５６を含む。これらの各部はバス５８を介して相互に接続されている。バス５８にはさらに入出力インターフェース６０が接続されている。入出力インターフェース６０には、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部６２、ＩＭＵセンサ６４、および発光部６６が接続される。
【００３０】
ＣＰＵ５０は、バス５８を介してＨＭＤ１８の各部から取得した情報を処理し、メイン機能を有する情報処理装置１０ａから取得した出力データを表示部５４や音声出力部５６に供給する。メインメモリ５２はＣＰＵ５０における処理に必要なプログラムやデータを格納する。ただし実行するアプリケーションや装置の設計によっては、情報処理装置１０ａがほぼ全ての処理を行い、ＨＭＤ１８では情報処理装置１０ａから送信されたデータを出力するのみで十分な場合がある。この場合、ＣＰＵ５０やメインメモリ５２は、より簡易なデバイスで置き換えることができる。
【００３１】
表示部５４は、液晶パネルや有機ＥＬパネルなどの表示パネルで構成され、ＨＭＤ１８を装着したユーザの眼前に画像を表示する。上述のとおり、左右の目に対応する領域に一対の視差画像を表示することにより立体視を実現してもよい。表示部５４はさらに、ＨＭＤ１８装着時に表示パネルとユーザの目との間に位置し、ユーザの視野角を拡大する一対のレンズを含んでもよい。
【００３２】
音声出力部５６は、ＨＭＤ１８の装着時にユーザの耳に対応する位置に設けたスピーカーやイヤホンで構成され、ユーザに音声を聞かせる。出力される音声のチャンネル数は特に限定されず、モノラル、ステレオ、サラウンドのいずれでもよい。通信部６２は、情報処理装置１０ａとの間でデータを送受するためのインターフェースであり、Bluetooth（登録商標）などの既知の無線通信技術を用いて実現できる。ＩＭＵセンサ６４はジャイロセンサおよび加速度センサを含み、ＨＭＤ１８の角速度や加速度を取得する。センサの出力値は通信部６２を介して情報処理装置１０ａに送信される。発光部６６は、所定の色で発光する素子またはその集合であり、図２で示したＨＭＤ１８の外面の複数箇所に設けたマーカーを構成する。
【００３３】
図５は、メイン機能を有する情報処理装置１０ａおよびサブ機能を有する情報処理装置１０ｂの機能ブロックの構成を示している。図５に示す各機能ブロックは、ハードウェア的には、図３に示したＣＰＵ、ＧＰＵ、メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、入出力機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００３４】
メイン機能を有する情報処理装置１０ａは、撮像装置１２ａから撮影画像のデータを取得する撮影画像取得部１３０、撮影画像に基づく位置姿勢情報を取得する画像解析部１３２、ＨＭＤ１８からＩＭＵセンサ６４の出力値を取得するセンサ値取得部１３４、ＩＭＵセンサ６４の出力値をサブ機能を有する情報処理装置１０ｂに送信するセンサ値送信部１３６、撮影画像に基づく位置姿勢情報にＩＭＵセンサ６４の出力値を統合しカメラ座標系での位置姿勢情報を生成するローカル情報生成部１３８を含む。情報処理装置１０ａはさらに、サブ機能を有する情報処理装置１０ｂから送信された位置姿勢情報を受信するローカル情報受信部１４０、ワールド座標系での位置姿勢情報を生成するグローバル情報生成部１４２、当該位置姿勢情報を用いて情報処理を行い出力データを生成する出力データ生成部１５０、出力データをＨＭＤ１８に送信する出力部１５２を含む。
【００３５】
撮影画像取得部１３０は図３の入力部３８、ＣＰＵ２２、メインメモリ２６などで実現され、撮像装置１２ａが所定のフレームレートで送出した撮影画像のデータを順次取得し、画像解析部１３２に供給する。撮像装置１２ａをステレオカメラで構成する場合、左右のカメラがそれぞれ撮影した画像のデータを順次取得する。なお撮影画像取得部１３０は、図示しない入力装置などを介して取得したユーザからの処理開始／終了要求に従い、撮像装置１２ａにおける撮影の開始／終了を制御してもよい。
【００３６】
画像解析部１３２は図３のＣＰＵ２２、ＧＰＵ２４、メインメモリ２６などで実現され、撮影画像からＨＭＤ１８に設けたマーカーの像を検出することにより、ＨＭＤ１８の位置姿勢情報を所定のレートで取得する。撮像装置１２ａをステレオカメラで構成する場合、左右の画像から取得した対応点の視差に基づき、撮像面から各マーカーまでの距離を三角測量の原理で導出する。そして複数のマーカーの像の画像上での位置および当該距離の情報を統合することにより、ＨＭＤ１８全体の位置および姿勢を推定する。
【００３７】
なお上述のように対象物はＨＭＤ１８に限らず、図示しない入力装置に設けた発光マーカーの像に基づきユーザの手の位置や姿勢の情報を取得してもよい。またユーザの体の一部を、輪郭線を利用して追跡したり、顔や特定の模様を有する対象物をパターンマッチングにより認識したりする画像解析技術を組み合わせてもよい。また撮像装置１２ａの構成によっては上述のとおり、赤外線の反射を計測することにより対象物の距離を特定してもよい。つまり画像解析により被写体の位置や姿勢を取得する技術であれば、その手法は特に限定されない。
【００３８】
センサ値取得部１３４は図３の入力部３８、通信部３２、メインメモリ２６などで実現され、ＨＭＤ１８からＩＭＵセンサ６４の出力値、すなわち角速度および加速度のデータを所定のレートで取得する。センサ値送信部１３６は図３の出力部３６、通信部３２などで実現され、センサ値取得部１３４が取得したＩＭＵセンサ６４の出力値を、所定のレートで情報処理装置１０ｂに送信する。
【００３９】
ローカル情報生成部１３８は図３のＣＰＵ２２、メインメモリ２６などで実現され、画像解析部１３２が取得した位置姿勢情報と、ＩＭＵセンサ６４の出力値とを用いて、撮像装置１２ａのカメラ座標系におけるＨＭＤ１８の位置姿勢情報を生成する。以後、このように撮像装置ごとのカメラ座標系に対し得られる位置姿勢情報を「ローカル情報」と呼ぶ。ＩＭＵセンサ６４の出力値が示す３軸の加速度、角速度は積分することにより、ＨＭＤ１８の位置や姿勢の変化量を導出するのに用いられる。
【００４０】
ローカル情報生成部１３８は、前のフレームの時刻において特定されたＨＭＤ１８の位置姿勢情報と、ＩＭＵセンサ６４の出力値に基づくＨＭＤ１８の位置や姿勢の変化を用いて、その後のＨＭＤ１８の位置や姿勢を推定する。この情報と、撮影画像を解析することにより得た位置や姿勢の情報を統合することで、次のフレームの時刻における位置姿勢情報を高精度に特定できる。この処理には、コンピュータビジョンなどの分野において知られる、カルマンフィルタを用いた状態推定技術を適用できる。
【００４１】
ローカル情報受信部１４０は図３の通信部３２、入力部３８などで実現され、サブ機能を有する情報処理装置１０ｂが生成したローカル情報を受信する。グローバル情報生成部１４２は、図３のＣＰＵ２２、メインメモリ２６などで実現され、自装置内のローカル情報生成部１３８が生成したローカル情報、サブ機能を有する情報処理装置１０ｂから送信されたローカル情報の少なくともいずれかを用いて、撮像装置１２ａ、１２ｂによらないワールド座標系でのＨＭＤ１８の位置姿勢情報を生成する。以後、この位置姿勢情報を「グローバル情報」と呼ぶ。
【００４２】
詳細にはグローバル情報生成部１４２は、変換パラメータ取得部１４４、撮像装置切替部１４６、および座標変換部１４８を含む。変換パラメータ取得部１４４は、ワールド座標系における撮像装置１２ａ、１２ｂの位置姿勢情報を特定することで、各カメラ座標系における位置姿勢情報をワールド座標系に変換する変換パラメータを取得する。この際、撮像装置１２ａ、１２ｂの視野が重なる領域（以後、「視野重複領域」と呼ぶ）にＨＭＤ１８が存在するとき、両者のカメラ座標系で得られたローカル情報は、グローバル情報へ変換すれば同一の情報となることを利用する。
【００４３】
このように運用時に実際に得られるローカル情報を用いて変換パラメータを導出することにより、各情報処理装置１０ａ、１０ｂでローカル情報を生成する際に生じる誤差特性を加味したうえで座標変換を行える。また、撮像装置１２ａ、１２ｂを厳密に位置合わせして配置する必要がなくなる。変換パラメータ取得部１４４はまた、そのようにして得られた、ワールド座標系における撮像装置１２ａ、１２ｂの位置姿勢情報が時間方向に平滑化されるように、あるいは姿勢が本来の値に近づくように、変換パラメータを徐々に補正していく。
【００４４】
撮像装置切替部１４６は、ＨＭＤ１８が視野内にある撮像装置のうち、グローバル情報を取得するのに用いる撮像装置を切り替える。ＨＭＤ１８が１つの撮像装置の撮影画像のみに写っている場合は当然、当該撮像装置に対応する情報処理装置が生成したローカル情報を用いてグローバル情報を生成する。ＨＭＤ１８が複数の撮像装置の視野内にある場合は、所定の規則で一つの撮像装置を選択する。例えばＨＭＤ１８に最も近い撮像装置を選択し、それに対応する情報処理装置が生成したローカル情報を用いてグローバル情報を生成する。
【００４５】
座標変換部１４８は、選択した撮像装置に対応する情報処理装置が生成したローカル情報を座標変換してグローバル情報を生成する。この際、変換パラメータ取得部１４４が生成した、当該撮像装置に対応する変換パラメータを用いることにより、情報元の撮像装置に依存しない位置姿勢情報が精度よく得られる。
【００４６】
出力データ生成部１５０は図３のＣＰＵ２２、ＧＰＵ２４、メインメモリ２６などで実現され、グローバル情報生成部１４２が出力する、ＨＭＤ１８の位置姿勢のグローバル情報を用いて所定の情報処理を実施する。そして、その結果として出力すべき画像や音声のデータを所定のレートで生成する。例えば上述のように、ユーザの頭部の位置や姿勢に対応する視点から見た仮想世界を左右の視差画像として描画する。
【００４７】
出力部１５２は図３の出力部３６、通信部３２などで実現され、生成された画像や音声のデータを所定のレートでＨＭＤ１８に出力する。例えば上述の視差画像を、ＨＭＤ１８において左右の目の前に表示させたり、仮想世界での音声を出力したりすれば、ユーザはあたかも仮想世界に入り込んだような感覚を得られる。なお出力データ生成部１５０が生成するデータは表示画像や音声のデータでなくてもよい。例えばグローバル情報から得られるユーザの動きやジェスチャの情報を出力データとして生成し、別途設けた情報処理の機能に出力するようにしてもよい。この場合、図示する情報処理装置１０ａは、ＨＭＤ１８などの対象物の状態検出装置として機能する。
【００４８】
サブ機能を有する情報処理装置１０ｂは、撮像装置１２ｂから撮影画像のデータを取得する撮影画像取得部１６０、撮影画像に基づく位置姿勢情報を取得する画像解析部１６２、ＩＭＵセンサ６４の出力値を情報処理装置１０ａから受信するセンサ値受信部１６４、撮影画像に基づく位置姿勢情報にＩＭＵセンサ６４の出力値を統合しローカル情報を生成するローカル情報生成部１６６、および当該ローカル情報を情報処理装置１０ａに送信するローカル情報送信部１６８を含む。
【００４９】
撮影画像取得部１６０、画像解析部１６２、ローカル情報生成部１６６はそれぞれ、メイン機能を有する情報処理装置１０ａにおける撮影画像取得部１３０、画像解析部１３２、ローカル情報生成部１３８と同じ機能を有する。センサ値受信部１６４は図３の通信部３２、入力部３８などで実現され、情報処理装置１０ａから送信されたＩＭＵセンサ６４の出力値を所定のレートで受信する。ローカル情報送信部１６８は図３の出力部３６、通信部３２などで実現され、ローカル情報生成部１６６が生成したローカル情報を情報処理装置１０ａに送信する。
【００５０】
図６は、撮像装置１２ａ、１２ｂの配置とＨＭＤ１８の可動範囲の関係を例示している。同図は撮像装置１２ａ、１２ｂの視野１８２ａ、１８２ｂを俯瞰した状態を示している。撮影画像を用いて位置や姿勢の情報を精度よく取得するには、好適な位置およびサイズでその像が表れている必要がある。そのため望ましいＨＭＤ１８の存在範囲は、視野１８２ａ、１８２ｂより小さくなる。図ではそのような領域をプレイエリア１８４ａ、１８４ｂとして表している。
【００５１】
プレイエリア１８４ａ、１８４ｂは例えば前後方向が、撮像装置１２ａからの距離Ａ＝約０．６ｍから距離Ｂ＝約３ｍまでの範囲、撮像装置１２ａに最も近いときの横方向の幅Ｃ＝約０．７ｍ、最も遠いときの横方向の幅Ｄ＝約１．９ｍの範囲である。また撮像装置１２ａ、１２ｂのカメラ座標系は、光学中心を原点とし、撮像面の横方向右向きをＸ軸、縦方向上向きをＹ軸、撮像面の垂直方向をＺ軸とする。従来の技術では、一つの撮像装置（例えば撮像装置１２ａ）に対するプレイエリア（例えばプレイエリア１８４ａ）内にあるＨＭＤ１８の位置や姿勢を、当該撮像装置のカメラ座標系で求めることがなされる。
【００５２】
本実施の形態ではこのような系を複数、設けることによりプレイエリアを拡張する。図示するように、プレイエリアが接するように撮像装置１２ａ、１２ｂを配置することで、プレイエリアは２倍に拡張される。ただし複数のプレイエリアが連続していればよく、図示するように両者が厳密に接するように撮像装置１２ａ、１２ｂを配置することに限定する趣旨ではない。上述したように、撮像装置１２ａに対応する情報処理装置１０ａは、撮像装置１２ａのカメラ座標系においてＨＭＤ１８の位置および姿勢からなるローカル情報を生成する。
【００５３】
撮像装置１２ｂに対応する情報処理装置１０ｂは、撮像装置１２ｂのカメラ座標系においてＨＭＤ１８の位置および姿勢からなるローカル情報を生成する。図示するようにＨＭＤが、ＨＭＤ１８ａ、ＨＭＤ１８ｂ、ＨＭＤ１８ｃのように移動した場合を例にとると、ＨＭＤ１８ａのように撮像装置１２ａのプレイエリア１８４ａ内にＨＭＤがあるときは、撮像装置１２ａのカメラ座標系に対し得られたローカル情報をグローバル情報に変換する。ＨＭＤ１８ｃのように撮像装置１２ｂのプレイエリア１８４ｂ内にＨＭＤがあるときは、撮像装置１２ｂのカメラ座標系に対し得られたローカル情報をグローバル情報に変換する。
【００５４】
ＨＭＤ１８ｂのように、プレイエリア１８４ａからプレイエリア１８４ｂへ移行する途中、すなわち撮像装置１２ａ、１２ｂの視野重複領域１８６にＨＭＤがあるとき、所定の規則に従うタイミングで、グローバル情報の生成に用いるローカル情報の元となる撮像装置を撮像装置１２ａから撮像装置１２ｂへ切り替える。例えば撮像装置切替部１４６は、ＨＭＤ１８ｂの重心と各撮像装置１２ａ、１２ｂの光学中心との距離を監視する。そして当該距離の大小関係が反転した時点で、より近い方の撮像装置（例えば撮像装置１２ｂ）のカメラ座標系に対し得られたローカル情報を用いてグローバル情報を生成するように切り替える。
【００５５】
また、ＨＭＤ１８ｂのように視野重複領域１８６内にＨＭＤがあるとき、２つのカメラ座標系に対し得られたローカル情報は、グローバル情報に変換したときに同じ位置姿勢情報を示すべきである。変換パラメータ取得部１４４はこれを利用し、ローカル情報をグローバル情報に変換するパラメータを求める。
【００５６】
図７は、変換パラメータ取得部１４４が、ローカル情報をグローバル情報に変換するためのパラメータを求める手法を説明するための図である。同図は、図６で示した撮像装置１２ａ、１２ｂの視野１８２ａ、１８２ｂを左右に分離して示しており、ＨＭＤ１８ｂが視野重複領域１８６に存在しているとする。上述したように撮像装置１２ａのカメラ座標系におけるＨＭＤ１８ｂの位置と姿勢、撮像装置１２ｂのカメラ座標系におけるＨＭＤ１８ｂの位置と姿勢は、対応する情報処理装置１０ａ、１０ｂで独立に求められる。
【００５７】
定性的には、ワールド座標系における各カメラ座標系の原点および軸の回転角を求めれば、カメラ座標系におけるＨＭＤ１８の位置や姿勢を、ワールド座標系での情報に変換できる。そのためまず、撮像装置１２ａからみた撮像装置１２ｂの位置と姿勢を求める。ここで３次元での位置座標を「ｐｏｓ」、姿勢を表す四元数（クォータニオン）を「ｑｕａｔ」と表記する。撮像装置１２ａのカメラ座標系（以後、「第０カメラ座標系」と呼ぶ）と、撮像装置１２ｂのカメラ座標系（以後、「第１カメラ座標系」と呼ぶ）におけるＨＭＤ１８ｂの姿勢差ｄｑは次のように算出される。
dq = hmd. quat@cam0 * conj (hmd.quat@cma1)
【００５８】
ここでｈｍｄ．ｑｕａｔ＠ｃａｍ０、ｈｍｄ．ｑｕａｔ＠ｃａｍ１はそれぞれ、ＨＭＤ１８ｂの、第０カメラ座標系における姿勢、第１カメラ座標系における姿勢である。「ｃｏｎｊ」は共益複素数を返す関数である。当該姿勢差分だけ第１カメラ座標系を回転させることによりＨＭＤ１８ｂの姿勢をそろえたうえで、第０カメラ座標系の原点からＨＭＤ１８ｂへのベクトルと、ＨＭＤ１８ｂから撮像装置１２ｂへのベクトルを加算すると、図示するように、第０カメラ座標系での撮像装置１２ｂの位置ｃａｍ１．ｐｏｓ＠ｃａｍ０が求められる。
cam1.pos@cam0 = rotate(dq, -hmd.pos@cam1) + hmd.pos@cam0
ここで「ｒｏｔａｔｅ」は座標を原点周りに回転させる関数である。
【００５９】
ワールド座標系における撮像装置１２ａの位置姿勢情報ｃａｍ０＠ｗｏｒｌｄが既知であるとすると、ワールド座標系における撮像装置１２ｂの位置姿勢情報ｃａｍ１＠ｗｏｒｌｄは、第０カメラ座標系における撮像装置１２ｂの位置ｃａｍ１．ｐｏｓ＠ｃａｍ０および姿勢ｄｑを、さらにワールド座標系でのデータに変換することによって得られる。この計算は、一般的な４×４のアフィン変換行列演算でよい。なお第０カメラ座標系をそのままワールド座標系とする場合、撮像装置１２ａの位置ｃａｍ０．ｐｏｓ＠ｗｏｒｌｄ＝（０，０，０）、姿勢ｃａｍ０．ｑｕａｔ＠ｗｏｒｌｄ＝（０，０，０，１）である。
【００６０】
このようにしてワールド座標系における撮像装置１２ｂの位置ｃａｍ１．ｐｏｓ＠ｗｏｒｌｄおよび姿勢ｃａｍ１．ｑｕａｔ＠ｗｏｒｌｄを求めることにより、当該撮像装置１２ｂの第１カメラ座標系における任意のＨＭＤの位置ｈｍｄ．ｐｏｓ＠ｃａｍ１および姿勢ｈｍｄ．ｑｕａｔ＠ｃａｍ１を、ワールド座標系での位置ｈｍｄ．ｐｏｓ＠ｗｏｒｌｄ、および姿勢ｈｍｄ．ｑｕａｄ＠ｗｏｒｌｄに変換できる。
hmd.quat@world = cam1.quat@world * hmd.quat@cam1
hmd.pos@world = rotate(cam1.quat@world, hmd.pos@cam1)+ cam1.pos@world
【００６１】
なおワールド座標系における撮像装置１２ｂの位置姿勢情報は、アフィン変換によりまとめて求めることもできる。すなわちＨＭＤ１８ｂの、第０カメラ座標系での位置姿勢情報ｈｍｄ＠ｃａｍ０、第１カメラ座標系での位置姿勢情報ｈｍｄ＠ｃａｍ１、ワールド座標系における撮像装置１２ａの位置姿勢情報ｃａｍ０＠ｗｏｒｌｄを、４×４の行列で表現した行列ｈｍｄ０ｍａｔ、ｈｍｄ１ｍａｔ、ｃａｍ０ｍａｔを用い、ワールド座標系における撮像装置１２ｂの位置姿勢情報ｃａｍ１＠ｗｏｒｌｄの行列ｃａｍ１ｍａｔを次のように求める。
cam0to1mat = hmd0mat * inverse(hmd1mat)
cam1mat = cam0mat *  cam0to1mat
ここで「ｉｎｖｅｒｓｅ」は逆行列を求める関数である。
【００６２】
次に、以上述べた構成によって実現される情報処理装置の動作を説明する。図８は、本実施の形態において情報処理装置１０ａ、１０ｂが対象物の位置姿勢情報を取得し、それに応じたデータを生成、出力する処理手順を示すフローチャートである。このフローチャートは、対応する撮像装置１２ａ、１２ｂが撮影を開始し、対象物たるＨＭＤ１８を装着したユーザがいずれかの視野内にいる状態で開始される。まず情報処理装置１０ａ、１０ｂは、図示しない入力装置を介したユーザ操作などに従い、対応する撮像装置１２ａ、１２ｂとの通信、情報処理装置１０ａ、１０ｂ間の通信を確立する（Ｓ１０、Ｓ１２）。この際、メインの機能を有する情報処理装置１０ａはＨＭＤ１８とも通信を確立する。
【００６３】
これにより各撮像装置１２ａ、１２ｂから撮影画像のデータが送信され、ＨＭＤ１８からＩＭＵセンサ６４の出力値が送信されると、情報処理装置１０ａ、１０ｂのローカル情報生成部１３８、１６６は、それぞれのカメラ座標系におけるＨＭＤ１８の位置姿勢情報を生成する（Ｓ１４、Ｓ１６）。このとき、ＨＭＤ１８が撮像装置の視野になければ、それに対応する情報処理装置は無効のデータを生成する。またサブ機能を有する情報処理装置１０ｂは、生成したローカル情報を、メイン機能を有する情報処理装置１０ａに送信する。
【００６４】
複数のローカル情報に、ＨＭＤ１８の位置姿勢情報として有効なデータが含まれている場合、ＨＭＤ１８は視野重複領域に存在していることになる。この期間において、メイン機能を有する情報処理装置１０ａにおける撮像装置切替部１４６は、ＨＭＤ１８が所定の切り替え条件を満たすか否かを監視する（Ｓ１８）。例えば図６で示したように、撮像装置１２ａの視野にいたＨＭＤ１８が撮像装置１２ｂの視野に入る場合、ＨＭＤ１８の重心が撮像装置１２ａの光学中心より撮像装置１２ｂの光学中心に近くなった時点で、情報元の撮像装置１２ｂへの切り替えを判定する。
【００６５】
情報元を切り替える条件としてはこのほか、ＨＭＤ１８の重心が隣の撮像装置のプレイエリアに入った時などでもよい。定性的には、ＨＭＤ１８の位置姿勢情報をより高い精度で取得できる撮像装置１２を情報元として選択する。このような切替条件が満たされたとき（Ｓ１８のＹ）、まず情報処理装置１０ａにおける変換パラメータ取得部１４４は、ＨＭＤ１８が新たに視野に入った撮像装置のカメラ座標系のための変換パラメータを取得する（Ｓ２０）。
【００６６】
具体的には上述したように、各情報処理装置で取得されるローカル情報をグローバル情報に変換した際、それらが表す位置姿勢が一致するように、移動先の撮像装置のカメラ座標系の変換パラメータを取得する。変換パラメータ取得部１４４は取得した変換パラメータを、撮像装置の識別情報と対応づけて内部のメモリに格納しておく。続いて撮像装置切替部１４６は、グローバル情報へ変換するローカル情報の元となる撮像装置を上述のように切り替える（Ｓ２４）。
【００６７】
ＨＭＤ１８が切替条件を満たさない場合（Ｓ１８のＮ）、あるいは切替条件を満たし情報元を切り替えた場合（Ｓ２４）のどちらにおいても、座標変換部１４８は、その時点で決定している情報元におけるローカル情報を座標変換しグローバル情報を生成する（Ｓ２６）。この際、変換パラメータ取得部１４４が内部のメモリに保持する、情報元の撮像装置に対応づけられた変換パラメータを用いる。出力データ生成部１５０は、グローバル情報を用いて表示画像などのデータを生成し、出力部１５２が当該データをＨＭＤ１８に出力する（Ｓ２８）。グローバル情報は情報元の撮像装置によらないため、出力データ生成部１５０は同様の処理で出力データを生成できる。
【００６８】
ユーザ操作などにより処理を終了させる必要がなければ（Ｓ３０のＮ、Ｓ３４のＮ）、変換パラメータ取得部１４４はＳ２０で取得した変換パラメータを必要に応じて補正する（Ｓ３２）。そのうえで、メイン機能を有する情報処理装置１０ａではＳ１４からＳ２８、およびＳ３２の処理を、サブ機能を有する情報処理装置１０ｂではＳ１６の処理を、所定のレートで繰り返す。
【００６９】
各情報処理装置でローカル情報を生成する際、上述のようにＨＭＤ１８のＩＭＵセンサ６４の出力値から推定されるＨＭＤ１８の位置姿勢情報を加味することにより、誤差が少ない位置姿勢情報を決定できる。これは、撮影画像から得られる位置姿勢情報、ＩＭＵセンサ６４から得られる位置姿勢情報のいずれも誤差を内包することに基づく対策であるが、それらを統合したローカル情報もまた微少な誤差を含んでいる。Ｓ２０で取得する変換パラメータはローカル情報に基づくため、これも微少の誤差を含む可能性がある。
【００７０】
そのため随時、変換パラメータを取得、補正することにより、その直後に得られたローカル情報を、可能な限り少ない誤差でグローバル情報に変換することができる。一方で、Ｓ２４において情報元の撮像装置を切り替える際は、切り替え前後でワールド座標系の軸が僅かでもずれると、これを用いて生成する表示画像の視野に不連続な変化が生じ、ユーザに違和感を与えることが考えられる。そのため情報元の撮像装置を切り替える直前のＳ２０では、上述のとおり、各カメラ座標系でのその時点のローカル情報を比較することにより、変換後のワールド座標系が完全に一致するように変換パラメータを取得する。
【００７１】
このように連続性を優先する結果、Ｓ２０で取得した変換パラメータが表す撮像装置の位置や姿勢には、比較的大きな誤差が含まれていることが考えられる。当該変換パラメータをそのまま用いると、ＨＭＤ１８の位置姿勢情報にも誤差が蓄積していき、ワールド座標系の原点がずれたり傾いたりすることが考えられる。そこで変換パラメータ取得部１４４は、撮像装置の切り替え時にＳ２０で取得した変換パラメータを、撮像装置の切り替えタイミング以外の期間であるＳ３２で徐々に補正していく。
【００７２】
すなわち変換パラメータが、実際の撮像装置の位置や姿勢を反映したものとなるように補正する。補正手法は撮像装置の特性によって様々であってよい。例えば撮像装置１２ａ、１２ｂを固定する場合は、変換パラメータが示す位置や姿勢が、それまでの時間で得られた位置や姿勢の平均値となるように補正する。撮像面の縦方向を実空間の鉛直方向と一致させて固定する場合は、撮像装置１２ａ、１２ｂのＹ軸が重力と逆方向となるように変換パラメータが示す姿勢を補正する。重力の方向は、ＨＭＤ１８のＩＭＵセンサ６４の出力値に基づき求められる。
【００７３】
撮像装置１２ａ、１２ｂを固定としない場合も、それまでの時間で得られた位置や姿勢を時間方向に平滑化することで、変換パラメータが示す位置や姿勢の目標値を決定する。メイン機能を有する情報処理装置１０ａに対応する撮像装置１２ａのカメラ座標系をワールド座標系とするときは、それらの原点や軸が一致するように補正する。これらの補正は、生成された表示画像を見たユーザに気づかれないよう、複数回に分けて徐々に行う。例えば単位時間あたりの補正量の上限を実験などにより求めておき、実際に必要な補正量に応じて分割回数を決定する。補正が完了すればＳ３２の処理は省略してよい。
【００７４】
Ｓ１４〜Ｓ３２の処理を繰り返すことにより、ＨＭＤ１８を装着したユーザがどの撮像装置１２の視野にいても、同様の処理で映像を出力させ続けることができる。ユーザ操作などにより処理を終了させる必要が生じたら、すべての処理を終了する（Ｓ３０のＹ、Ｓ３４のＹ）。なお撮像装置が３つ以上の場合も基本的には同様の処理手順でよいが、この場合、情報元の切り替えは、メイン機能を有する情報処理装置１０ａに対応する撮像装置１２ａ以外の撮像装置間でなされる可能性がある。
【００７５】
このとき上述の手法により、直接的には切り替え前の撮像装置のカメラ座標系における切り替え後の撮像装置の位置姿勢情報が取得される。一方、切り替え前の撮像装置のワールド座標系における位置姿勢情報は、それまでのＨＭＤ１８の変位に対する撮像装置の切り替えの連鎖により得られている。結果として、切り替え後の撮像装置のワールド座標系における位置姿勢情報、ひいては変換パラメータも、それらの連鎖の続きとして間接的に得ることができる。
【００７６】
これまで述べた処理手順によれば、メイン機能を有する情報処理装置１０ａがＩＭＵセンサ６４の出力値を、サブ機能を有する情報処理装置１０ｂに送信する処理と、サブ機能を有する情報処理装置１０ｂがローカル情報を、メイン機能を有する情報処理装置１０ａに送信する処理が含まれる。本実施の形態のように対象物の追跡結果を出力データにリアルタイムに反映させるような系では、各種データの時間軸を揃えることが、処理精度の観点で特に重要となる。
【００７７】
ところが情報処理装置１０ａ、１０ｂはそれぞれのプロセス時間で動作しているため、送信元の情報処理装置で付加されたタイムスタンプを自装置の時間軸にそのまま当てはめることができない。そこで情報処理装置１０ａ、１０ｂ間でのプロセス時間の差を計測し、タイムスタンプを相互に変換できるようにする。図９は、情報処理装置１０ａ、１０ｂ間でタイムスタンプを相互変換する手法を説明するための図である。同図において情報処理装置１０ａのプロセス時間の軸を左に、情報処理装置１０ｂのプロセス時間の軸を右に、上から下への矢印で示している。また情報処理装置１０ａの時間軸でのタイムスタンプを「Ｔ」、情報処理装置１０ｂの時間軸でのタイムスタンプを「ｔ」と表記している。
【００７８】
この手法では基本的に、テスト信号を一往復させその送受信の時間差からタイムスタンプの変換パラメータを求める。同図において、まず情報処理装置１０ｂから時刻ｔｓに送信された信号が時刻Ｔｒで情報処理装置１０ａにて受信される。続いて情報処理装置１０ａから時刻Ｔｓに送信された信号が、時刻ｔｒで情報処理装置１０ｂに受信される。このとき往路、復路で通信時間が等しければ、両者における信号の送受信のタイミングの平均値（Ｔｓ＋Ｔｒ）／２と（ｔｓ＋ｔｒ）／２は一致する。
【００７９】
この関係を利用して、少なくとも２回の測定を行うことにより、一方の情報処理装置のタイムスタンプを他方の情報処理装置の時間軸に揃える変換式が求められる。例えば情報処理装置１０ｂにおけるタイムスタンプｔを情報処理装置１０ａにおけるタイムスタンプＴへ変換するには次の１次式を用いる。
T = t * scale + offset
ここでｓｃａｌｅおよびｏｆｆｓｅｔは、２回の測定による連立方程式によって求められる。
【００８０】
例えばサブ機能を有する情報処理装置１０ｂのセンサ値受信部１６４は、情報処理装置１０ａから送信された、ＩＭＵセンサ６４の出力値に付加されたタイムスタンプＴを、自装置のタイムスタンプｔに変換することで、自装置内での撮影画像解析処理の時間軸にセンサの出力値の時間軸を合わせる。またそのようにして得たローカル情報を情報処理装置１０ａに送信するときは、ローカル情報送信部１６８が当該位置情報のタイムスタンプｔを、情報処理装置１０ａのタイムスタンプＴに変換して付加する。
【００８１】
このようにすることで、メイン機能を有する情報処理装置１０ａによる処理の負荷を増大させることなく、位置情報や出力データの精度を向上させることができる。撮像装置を３つ以上とする場合、メイン機能を有する情報処理装置１０ａとそれ以外の情報処理装置とでプロセス時間差を計測すれば、同様の変換処理を実現できる。なお変換処理は位置姿勢情報の安定性に影響するため、誤差をできるだけ小さくすることが望ましい。例えば上述の「ｓｃａｌｅ」パラメータが異なると、時間を経るほど誤差が大きくなってしまう。
【００８２】
したがって、ＨＭＤ１８が視野にない期間などを利用して、定期的にプロセス時間差を測定し、変換に用いるパラメータを更新していくことが望ましい。プロセス時間差の計測は、メイン機能を有する情報処理装置１０ａのセンサ値送信部１３６あるいはローカル情報受信部１４０と、サブ機能を有する情報処理装置１０ｂのセンサ値受信部１６４あるいはローカル情報送信部１６８との間で実施し、得られたパラメータはサブ機能を有する情報処理装置１０ｂ側で保持しておく。
【００８３】
図１０は、撮像装置１２と情報処理装置１０の対を３つ以上設けた場合の配置例を示している。この例では１０個の撮像装置１２ａ〜１２ｊと、それぞれに対応する１０個の情報処理装置１０ａ〜１０ｊとを導入している。そのうち５つの対を一列に等間隔で配置させ、撮像面が対向するように残りの５つの対を配置している。例えば同図を俯瞰図とし、床に垂直に設置した平行な板１９０ａ、１９０ｂや壁などに撮像装置と情報処理装置の対を組み付けることにより、ＨＭＤ１８を装着したユーザを両側面から撮影するシステムを実現できる。同図を側面図とし、水平方向に設置した板１９０ａ、１９０ｂや、天井および床などに撮像装置と情報処理装置の対を組み付けると、ＨＭＤ１８を装着したユーザを上下方向から撮影するシステムを実現できる。
【００８４】
このようにしても、図示しない通信機構により１つの情報処理装置１０ａにローカル情報を集約させることにより、上述したのと同様の処理によって、ユーザが広範囲に移動してもそれに対応する画像をＨＭＤ１８に表示させ続けることができる。また撮像装置１２を数メートルの距離で対向させて設置することにより、ユーザが一方の撮像装置群から離れても他方の撮像装置群に近づくことになり、位置姿勢情報を安定して取得できる。なお図示した配列や撮像装置の数は一例であり、これに限定されるものではない。例えば各板上に撮像装置をマトリクス状に配置したり、ユーザの可動範囲の上下および前後左右を取り囲むように配置したりしてもよい。撮像装置を円などの曲線上や球などの曲面上に配置してもよい。
【００８５】
本実施の形態では各情報処理装置１０ａ〜１０ｊがそれぞれ独立にローカル情報を生成し、それを１つの情報処理装置１０ａに集約させる。したがって例えば撮像装置のみを複数配置し、それぞれが撮影した画像のデータを１つの情報処理装置が処理するのと比較し、送信されるデータ量が格段に小さい。したがって図示するように多数の装置を広範囲にわたり配置しても、処理速度や通信帯域に問題が生じにくい。データ量が小さいことを利用し、無線通信によりデータの送受を実現すれば、入力端子の数の制限やケーブルの引き回しの問題も回避できる。
【００８６】
以上述べた本実施の形態によれば、撮像装置と情報処理装置の対を複数配置し、それぞれにおいて画像解析を実施することにより、対象物の位置姿勢情報を取得する。そしてそのようにして得られたローカルな情報を、１つの情報処理装置に集約させて最終的な位置姿勢情報を生成する。各情報処理装置がローカルな位置姿勢情報を取得する際は、従来の技術を利用できるため、容易かつ高い拡張性で、対象物の可動範囲を広げることができる。また最終的には、撮像装置に依存しない形式で位置姿勢情報を生成するため、それを用いて行う情報処理も制限を受けることがない。
【００８７】
また、隣り合う撮像装置の視野が重なる領域に対象物が存在する期間を利用して、それらの撮像装置の相対的な位置姿勢情報を取得し、それに基づき各カメラ座標系からワールド座標系への変換パラメータを取得する。ローカル情報は、個々の情報処理装置でその時々の誤差特性を考慮して補正されたうえで取得される。そのため、実際のローカル情報を利用して変換パラメータを取得することにより、キャリブレーションなどにより事前に取得しておいた変換パラメータを利用するのと比較して、より高い精度を維持した状態で位置姿勢情報が得られる。
【００８８】
また位置姿勢情報を生成する情報元の撮像装置を切り替える際は、ワールド座標系における位置姿勢情報が切り替え前後で一致するように変換パラメータを決定することにより、情報の連続性を保障する。一方、そのようにして得られた変換パラメータが表す撮像装置の位置や姿勢を、切り替え後の期間で本来あるべき値に補正していくことにより、対象物の位置姿勢情報の精度を維持できるようにする。これにより、複数の撮像装置を導入することによる連続性や精度の課題を解消できる。
【００８９】
さらに、ローカル情報を集約させる情報処理装置と、その他の情報処理装置とのプロセス時間差を定期的に測定し、タイムスタンプを双方向に変換できるようにする。これにより、送信されたＩＭＵセンサの出力値と撮影画像の解析結果との統合や、送信されたローカル情報を用いたグローバル情報や出力データの生成といった、情報処理装置間の通信を含む処理において、共通の時間軸を与えることができる。結果として、処理精度や出力結果に悪影響や制限が生じることなく、ユーザや対象物の可動範囲を容易に拡張させることができる。また撮像装置の配置や個数に対する自由度が高いため、目的とする情報処理の内容に応じた最適な環境を、容易かつ低コストに実現できる。
【００９０】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００９１】
例えば本実施の形態では、メイン機能を有する情報処理装置を１つとしたが、２つ以上としてもよい。例えばＨＭＤなどの対象物を２つ以上とし、各対象物に対しメイン機能を有する情報処理装置を１つずつ割り当ててもよい。この場合も本実施の形態と同様の処理により、広い可動範囲での位置姿勢情報を追跡し続けることができる。一方、対象物が複数であっても、メイン機能を有する情報処理装置を１つのみとし、位置姿勢情報を区別したうえで処理、出力するようにしてもよい。
【符号の説明】
【００９２】
１０ａ  情報処理装置、  １０ｂ  情報処理装置、  １２ａ  撮像装置、  １２ｂ  撮像装置、  １８  ＨＭＤ、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  １３０  撮影画像取得部、  １３２  画像解析部、  １３４  センサ値取得部、  １３６  センサ値送信部、  １３８  ローカル情報生成部、    １４０  ローカル情報受信部、  １４２  グローバル情報生成部、  １４４  変換パラメータ取得部、  １４６  撮像装置切替部、  １４８  座標変換部、  １５０  出力データ生成部、  １５２  出力部、１６０  撮影画像取得部、  １６２  画像解析部、  １６４  センサ値受信部、  １６６  ローカル情報生成部、  １６８  ローカル情報送信部。
【産業上の利用可能性】
【００９３】
以上のように本発明は、ゲーム装置、撮像装置、画像表示装置など各種情報処理装置や、それらのいずれかを含む情報処理システムなどに利用可能である。
【図１】
2019064399.tif 000003
【図２】
2019064399.tif 000004
【図３】
2019064399.tif 000005
【図４】
2019064399.tif 000006
【図５】
2019064399.tif 000007
【図６】
2019064399.tif 000008
【図７】
2019064399.tif 000009
【図８】
2019064399.tif 000010
【図９】
2019064399.tif 000011
【図１０】
2019064399.tif 000012
【国際調査報告】
2019064399.tif 000013
2019064399.tif 000014
2019064399.tif 000015
2019064399.tif 000016