(57)【要約】【課題】撮影画像を用いて対象物の情報を安定した精度で取得する。【解決手段】情報処理装置は、発光マーカーを備えるデバイスを、１フレーム分の時間より短い露光時間６０ａ、６０ｂ、６０ｃで撮影した画像を用いて、デバイスの位置や姿勢の情報を取得する。発光マーカーは露光時間６０ａ、６０ｂ、６０ｃ以下の発光時間６２ａ、６２ｂ、６２ｃで発光させる。情報処理装置は、所定の点灯／消灯パターンで発光マーカーを発光させ、その撮影画像における像の有無に従い、デバイスの時間軸における露光時間を特定し、露光と発光を同期させる。【選択図】図３
2020088822.tif 000002
【特許請求の範囲】
【請求項１】
発光マーカーを備えたデバイスを、撮像装置が１フレームの周期より短い露光時間で撮影した動画像のデータを取得する撮影画像取得部と、
前記１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを発光させるように前記デバイスに要求し、それを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、前記デバイスの時間軸における前記露光時間を特定する同期処理部と、
前記露光時間に対応する発光時刻で前記発光マーカーを発光させるように前記デバイスに要求する制御情報送信部と、
前記露光時間以下の固定時間で前記発光時刻に発光する前記発光マーカーの、前記動画像のフレームにおける像に基づき、前記デバイスの位置姿勢情報を取得する位置姿勢取得部と、
前記位置姿勢情報に基づくデータを生成し出力する出力データ生成部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記同期処理部は、連続した所定数のフレームに対応する時間における前記点灯／消灯パターンが、前記周期を所定数に分割してなるタイムグリッドごとに異なるように前記発光マーカーを発光させることにより、前記動画像のうち前記所定数のフレームにおいて前記発光マーカーの像が表れているか否かのパターンに基づき、前記露光時間に対応する前記タイムグリッドを特定し、
前記制御情報送信部は、特定された前記タイムグリッドの識別情報を送信することにより、前記露光時間内で前記発光マーカーを発光させるように前記デバイスに要求することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記同期処理部は、隣り合う前記タイムグリッドにおいて、点灯／消灯の変化が前記所定数のフレームのうち１つのフレームに対応する時間内でのみ生じるような前記点灯／消灯パターンで、前記発光マーカーを発光させることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記同期処理部は、設定中の発光時刻を始点として、前記周期ごとに発光時刻を所定時間だけずらしながら前記固定時間で前記発光マーカーを発光させることにより、前記動画像のうち連続したフレームにおいて少なくとも前記発光マーカーの像が表れなくなるタイミングに基づき、前記露光時間に対する前記設定中の発光時刻を特定し、
前記制御情報送信部は、前記発光時刻と前記露光時間の中間時刻とのずれ量を前記デバイスに送信することにより、当該中間時刻に一致するように前記発光時刻を補正させることを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記同期処理部は、前記ずれ量を累積加算してなる、前記露光時間に対する前記発光時刻の偏差の時間変化に基づき、単位時間当たりのクロックの補正量を取得し、
前記制御情報送信部は、前記補正量を前記デバイスに送信することにより、クロックを補正させることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記デバイスが内蔵するＩＭＵ（Inertial Measurement Unit)センサの計測値およびその計測時刻と、前記発光マーカーを発光させた時刻とを、前記デバイスから取得するデバイスデータ取得部をさらに備え、
前記位置姿勢取得部は、前記発光マーカーを発光させた時刻を前記フレームの撮影時刻とし、前記計測値によって得られる前記位置姿勢情報と、前記フレームにおける像に基づく前記位置姿勢情報とを、前記計測時刻と前記撮影時刻との関係に基づき統合することを特徴とする請求項１から５のいずれかに記載の情報処理装置。
【請求項７】
前記同期処理部は、
前記周期より短い第１の時間を最小単位とした点灯／消灯パターンで前記発光マーカーを発光させることにより、前記露光時間に含まれる前記発光時刻の範囲を取得したうえ、当該範囲内で前記発光マーカーを発光させる第１の状態を実現し、
続いて前記第１の時間より短い第２の時間を最小単位とした点灯／消灯パターンで前記発光マーカーを発光させることにより、前記露光時間の中間時刻と前記第１の状態における発光時刻とのずれを検出して補正し、当該中間時刻と発光時刻が一致する第２の状態を実現することを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記同期処理部は、前記第２の時間を前記固定時間とし、
前記位置姿勢取得部は、前記同期処理部が前記第２の状態を実現する処理と並行して、前記像に基づき前記デバイスの位置姿勢情報を取得することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記同期処理部は、前記第２の状態を実現する処理と並行して、前記ずれの量を累積加算してなる、前記露光時間に対する前記発光時刻の偏差の時間変化に基づき、前記撮像装置と前記デバイスのクロック周波数の差を取得し補正することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記同期処理部は、前記第１の時間を最小単位とした点灯／消灯パターンで前記発光マーカーを発光させる前に、前記発光マーカーを全期間で発光させ、前記フレームに表れる前記発光マーカーの像に基づき前記デバイスを検出することを特徴とする請求項７から９のいずれかに記載の情報処理装置。
【請求項１１】
前記同期処理部は、前記発光マーカーの像が表れているか否かをフレームごとに１および０で表した像出現パターンの数列に基づき、前記露光時間に対応する発光時刻を特定することを特徴とする請求項１から１０のいずれかに記載の情報処理装置。
【請求項１２】
前記同期処理部は、前記動画像のうち連続した所定数のフレームに対応する時間を一単位として前記点灯／消灯パターンを繰り返すように前記発光マーカーを発光させ、当該一単位の時間のうちの一部の時間に対し、前記一単位の時間の区切りを検出するための点灯／消灯パターンを設定することを特徴とする請求項１から１１のいずれかに記載の情報処理装置。
【請求項１３】
発光マーカーを備えたデバイスと、前記デバイスを１フレームの周期より短い露光時間で撮影する撮像装置と、前記撮像装置が撮影した動画像のデータを用いて前記デバイスの位置姿勢情報を取得する情報処理装置と、を備え、
前記情報処理装置は、
前記１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを発光させるように前記デバイスに要求し、それを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、前記デバイスの時間軸における前記露光時間を特定する同期処理部と、
前記露光時間に対応する発光時刻で前記発光マーカーを発光させるように前記デバイスに要求する制御情報送信部と、
前記露光時間以下の固定時間で前記発光時刻に発光する前記発光マーカーの、前記動画像のフレームにおける像に基づき、前記デバイスの位置姿勢情報を取得する位置姿勢取得部と、
前記位置姿勢情報に基づくデータを生成し出力する出力データ生成部と、
を備えたことを特徴とする情報処理システム。
【請求項１４】
撮像装置が１フレームの周期より短い露光時間で撮影し、情報処理装置が撮影された動画像を用いて位置姿勢情報を取得する対象である、発光マーカーを備えたデバイスであって、
前記情報処理装置からの発光に係る要求を取得する制御情報取得部と、
第１の前記要求に従い、前記１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを繰り返し発光させるとともに、第２の前記要求に従い、前記デバイスの時間軸に対し示された露光時間に対応する発光時刻に、前記露光時間以下の固定時間で前記発光マーカーを発光させる制御部と、
を備えたことを特徴とする位置姿勢取得用デバイス。
【請求項１５】
前記デバイスの動きを計測するＩＭＵ（Inertial Measurement Unit)センサと、
前記ＩＭＵセンサの計測値およびその計測時刻と、前記発光マーカーを発光させた時刻とを前記情報処理装置に送信するデータ送信部と、
をさらに備えたことを特徴とする請求項１４に記載の位置姿勢取得用デバイス。
【請求項１６】
発光マーカーを備えたデバイスを、撮像装置が１フレームの周期より短い露光時間で撮影した動画像のデータを取得するステップと、
前記１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを発光させるように前記デバイスに要求するステップと、
前記デバイスを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、前記デバイスの時間軸における前記露光時間を特定するステップと、
前記露光時間に対応する発光時刻で前記発光マーカーを発光させるように前記デバイスに要求するステップと、
前記露光時間以下の固定時間で前記発光時刻に発光する前記発光マーカーの、前記動画像のフレームにおける像に基づき、前記デバイスの位置姿勢情報を取得するステップと、
前記位置姿勢情報に基づくデータを生成し出力するステップと、
を含むことを特徴とする、情報処理装置によるデバイス情報取得方法。
【請求項１７】
発光マーカーを備えたデバイスを、撮像装置が１フレームの周期より短い露光時間で撮影した動画像のデータを取得する機能と、
前記１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを発光させるように前記デバイスに要求する機能と、
前記デバイスを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、前記デバイスの時間軸における前記露光時間を特定する機能と、
前記露光時間に対応する発光時刻で前記発光マーカーを発光させるように前記デバイスに要求する機能と、
前記露光時間以下の固定時間で前記発光時刻に発光する前記発光マーカーの、前記動画像のフレームにおける像に基づき、前記デバイスの位置姿勢情報を取得する機能と、
前記位置姿勢情報に基づくデータを生成し出力する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影によりデバイスの位置や姿勢の情報を取得する情報処理装置、情報処理システム、位置姿勢取得用デバイス、およびデバイス情報取得方法に関する。
【背景技術】
【０００２】
ユーザの体やマーカーをカメラで撮影し、その像の領域を別の画像で置換してディスプレイに表示するゲームが知られている（例えば、特許文献１参照）。また、カメラで撮影された口や手の動きをアプリケーションの操作指示として受け取るユーザインタフェースシステムも知られている。このように、実世界を撮影しその動きに反応する仮想世界を表示させたり、何らかの情報処理を行ったりする技術は、携帯端末からレジャー施設までその規模によらず幅広い分野で利用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】欧州特許出願公開第０９９９５１８号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のような技術において、実世界に係る情報を撮影画像からいかに正確に取得するかは常に重要な課題である。例えば撮影視野に多くの物が存在すると、位置や姿勢を認識すべき対象物以外の物を対象物として検出してしまう可能性が高くなる。また撮影環境の明るさや照明の配置などによって撮影画像の輝度分布が大きく変化し、解析精度に影響を及ぼすこともある。このため環境や状況の変化に対し高い頑健性で、撮影画像から正確な情報を取得できる技術が求められている。
【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、撮影画像を用いて、対象物に係る情報を安定した精度で取得できる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本発明のある態様は情報処理装置に関する。この情報処理装置は、発光マーカーを備えたデバイスを、撮像装置が１フレームの周期より短い露光時間で撮影した動画像のデータを取得する撮影画像取得部と、１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで発光マーカーを発光させるようにデバイスに要求し、それを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、デバイスの時間軸における露光時間を特定する同期処理部と、露光時間に対応する発光時刻で発光マーカーを発光させるようにデバイスに要求する制御情報送信部と、露光時間以下の固定時間で発光時刻に発光する発光マーカーの、動画像のフレームにおける像に基づき、デバイスの位置姿勢情報を取得する位置姿勢取得部と、位置姿勢情報に基づくデータを生成し出力する出力データ生成部と、を備えたことを特徴とする。
【０００７】
本発明の別の態様は情報処理システムに関する。この情報処理システムは、発光マーカーを備えたデバイスと、デバイスを１フレームの周期より短い露光時間で撮影する撮像装置と、撮像装置が撮影した動画像のデータを用いてデバイスの位置姿勢情報を取得する情報処理装置と、を備え、情報処理装置は、１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで発光マーカーを発光させるようにデバイスに要求し、それを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、デバイスの時間軸における露光時間を特定する同期処理部と、露光時間に対応する発光時刻で発光マーカーを発光させるようにデバイスに要求する制御情報送信部と、露光時間以下の固定時間で発光時刻に発光する発光マーカーの、動画像のフレームにおける像に基づき、デバイスの位置姿勢情報を取得する位置姿勢取得部と、位置姿勢情報に基づくデータを生成し出力する出力データ生成部と、を備えたことを特徴とする。
【０００８】
本発明のさらに別の態様は位置姿勢取得用デバイスに関する。この位置姿勢取得用デバイスは、撮像装置が１フレームの周期より短い露光時間で撮影し、情報処理装置が撮影された動画像を用いて位置姿勢情報を取得する対象である、発光マーカーを備えたデバイスであって、情報処理装置からの発光に係る要求を取得する制御情報取得部と、第１の前記要求に従い、１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで発光マーカーを繰り返し発光させるとともに、第２の要求に従い、デバイスの時間軸に対し示された露光時間に対応する発光時刻に、露光時間以下の固定時間で発光マーカーを発光させる制御部と、を備えたことを特徴とする。
【０００９】
本発明のさらに別の態様はデバイス情報取得方法に関する。このデバイス情報取得方法は、発光マーカーを備えたデバイスを、撮像装置が１フレームの周期より短い露光時間で撮影した動画像のデータを取得するステップと、１フレームの周期を所定数に分割してなる時間を最小単位として所定の点灯／消灯パターンで前記発光マーカーを発光させるようにデバイスに要求するステップと、デバイスを撮影した動画像の所定数のフレームに当該発光マーカーの像が表れているか否かに基づき、デバイスの時間軸における露光時間を特定するステップと、露光時間に対応する発光時刻で発光マーカーを発光させるようにデバイスに要求するステップと、露光時間以下の固定時間で発光時刻に発光する発光マーカーの、動画像のフレームにおける像に基づき、デバイスの位置姿勢情報を取得するステップと、位置姿勢情報に基づくデータを生成し出力するステップと、を含むことを特徴とする。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によると、撮影画像を用いて対象物の情報を安定した精度で取得できる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態を適用できる情報処理システムの構成例を示す図である。
【図２】本実施の形態において情報処理装置が発光デバイスの位置および姿勢を取得する手法を説明するための図である。
【図３】本実施の形態における撮像装置の露光時間と発光マーカーの発光時間の関係を例示する図である。
【図４】本実施の形態の発光デバイスにおける発光とＩＭＵセンサによる計測の時間的な関係を例示する図である。
【図５】本実施の形態における情報処理装置の内部回路構成を示す図である。
【図６】本実施の形態における発光デバイスの内部回路構成を示す図である。
【図７】本実施の形態における情報処理装置および発光デバイスの機能ブロックの構成を示す図である。
【図８】本実施の形態の同期処理部が実施する処理の段階を示す図である。
【図９】本実施の形態のプレスキャンフェーズにおける発光パターンを模式的に示す図である。
【図１０】本実施の形態のブロードフェーズにおける発光パターンの例を模式的に示す図である。
【図１１】本実施の形態のブロードフェーズにおいて同期処理部が、露光時間に対応する発光デバイスのタイムグリッドを特定する処理手順を示すフローチャートである。
【図１２】本実施の形態のバックグラウンドフェーズにおける同期処理の原理を説明するための図である。
【図１３】本実施の形態のバックグラウンドフェーズにおける発光パターンの例を模式的に示す図である。
【図１４】本実施の形態のバックグラウンドフェーズにおける元の発光時刻と像出現パターンの関係を示す図である。
【図１５】本実施の形態のバックグラウンドフェーズにおいて同期処理部が、発光時刻を露光時間の中間時刻に合わせる処理手順を示すフローチャートである。
【図１６】図１５のＳ４０において、発光時刻の識別情報から補正量を取得するために参照する設定情報を例示する図である。
【図１７】本実施の形態における、露光時間の中間時刻に対する発光時刻のずれの偏差の時間変化を例示する図である。
【図１８】本実施の形態のバックグラウンドフェーズにおいて同期処理部が、発光デバイスのクロックを補正する処理手順を示すフローチャートである。
【図１９】本実施の形態において、偏差加算パラメータによって発光デバイスのクロック周波数を補正する手法を説明するための図である。
【図２０】本実施の形態における、情報処理装置と発光デバイスとの協働による露光時間と発光時刻の同期処理のシーケンスを示す図である。
【発明を実施するための形態】
【００１３】
図１は本実施の形態を適用できる情報処理システムの構成例を示す。この情報処理システム８は、発光デバイス１４、当該発光デバイス１４を含む空間を撮影する撮像装置１２、撮影された画像を解析し情報処理を行う情報処理装置１０、情報処理装置１０による処理の結果を出力する表示装置１６を含む。
【００１４】
この例で発光デバイス１４は、Bluetooth（登録商標）など既知の無線通信手段により情報処理装置１０と通信を確立する。また撮像装置１２および表示装置１６と情報処理装置１０とは有線により通信を確立する。ただし通信接続の手段をこれに限る主旨ではない。また図示する形態は一例であり、装置の形状や構成を限定するものではない。例えば情報処理装置１０と撮像装置１２、あるいは情報処理装置１０と撮像装置１２と表示装置１６は、一体的な装置として実現してもよい。
【００１５】
表示装置１６は図示するような平板型のディスプレイでなくてもよく、ユーザが装着することによりその眼前に画像を表示するヘッドマウントディスプレイなどでもよい。この場合、当該ヘッドマウントディスプレイに撮像装置１２を設け、ユーザの視線に対応する画像を撮影するようにしてもよい。あるいは当該ヘッドマウントディスプレイの外面に発光デバイス１４を装着し、撮像装置１２で撮影するようにしてもよい。
【００１６】
発光デバイス１４は、例えばユーザが把持することにより位置、姿勢、動きなどを、撮影画像を介して入力情報とするための装置である。図示する例では発光デバイス１４は、リング状の筐体表面に点状の発光マーカー（例えば発光マーカー６）を多数、配置した構成を有する。発光マーカー６はＬＥＤ（Light Emitting Diode）など点灯状態と消灯状態を切り替え可能な素子で構成され、その切り替えを情報処理装置１０からも制御できるようにする。
【００１７】
なお発光デバイス１４の形状や、発光マーカー６の形状、サイズ、数などは図示するものに限らない。例えばユーザが把持できる任意形状の物体に、内部に発光素子を備えた任意形状の発光体を１つまたは複数、接続した構成としてもよい。あるいは一般的なゲームコントローラに発光マーカーを設けた装置を発光デバイス１４としてもよい。さらには、ユーザの身体に直接、１つまたは複数の発光デバイス１４を取り付けられるようにしてもよい。さらに発光デバイス１４は好適には、発光デバイス１４自体の角速度や加速度を取得するジャイロセンサおよび加速度センサを内部に備える。以後、これらのセンサを「ＩＭＵ（Inertial measurement unit）センサ」と総称する。
【００１８】
撮像装置１２は、発光デバイス１４を含む空間を所定のフレームレートで撮影するカメラと、その出力信号にデモザイク処理など一般的な処理を施すことにより撮影画像の出力データを生成し、情報処理装置１０に送出する機構とを含む。カメラはＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサなど、一般的なデジタルビデオカメラで利用されている可視光センサを備える。ただし発光デバイス１４の発光マーカー６の像を取得できれば、センサが検出する光の波長帯は限定されない。
【００１９】
また本実施の形態の撮像装置１２は、発光マーカー６の発光による像を精度よく検出できるようにするために、露光時間を一般的な撮影条件より短くする。したがって表示画像の生成などの目的で一般的な露光時間の撮影画像が必要な場合は、フレームによって露光時間を変化させてもよいし、別途それ専用の撮像装置を導入してもよい。すなわち情報処理システム８に含まれる撮像装置１２の数は限定されない。
【００２０】
また１つの撮像装置１２が備えるカメラは１つのみでもよいし、２つのカメラを既知の間隔で左右に配置したいわゆるステレオカメラでもよい。ステレオカメラを導入した場合、左右の異なる視点から発光デバイス１４を撮影し、撮影画像上での位置のずれに基づき三角測量の原理で発光デバイス１４までの距離を求められる。
【００２１】
情報処理装置１０は、撮像装置１２から送信された撮影画像のデータを用いて必要な情報処理を行い、画像や音声などの出力データを生成する。本実施の形態において情報処理装置１０は少なくとも、撮影画像に写る発光マーカー６の像に基づき、発光デバイス１４の位置や姿勢を特定する。発光デバイス１４の形状と、その表面における発光マーカー６の位置を既知とすれば、撮影画像上の発光マーカー６の像の分布に基づき発光デバイス１４の位置および姿勢を推定できる。発光マーカーを１つの発光体とする場合も、その像のサイズや形状から発光デバイス１４の位置などを取得できる。
【００２２】
この処理を撮影画像のフレームごとに繰り返せば、発光デバイス１４の動き、ひいてはユーザの動きを特定できるため、それをコマンド入力としてゲームなどの情報処理を実施できる。あるいは撮影画像における発光デバイス１４の像を仮想的なオブジェクトに置換した画像や、それが周囲の実物体とインタラクションする様子を表した画像などを生成することもできる。発光デバイス１４の位置や姿勢の情報を利用して情報処理装置１０が行う処理の内容は特に限定されず、ユーザが求める機能やアプリケーションの内容などによって適宜決定してよい。
【００２３】
表示装置１６は、液晶ディスプレイ、有機ＥＬディスプレイなど、画像を表示する一般的なディスプレイと、音声を出力するスピーカーなどで構成され、情報処理装置１０が情報処理の結果として生成した画像や音声を出力する。上述のとおり表示装置１６はヘッドマウントディスプレイなどでもよく、画像や音声を出力できる装置であればその形態は限定されない。また情報処理装置１０が実施した処理の結果を記録媒体や記憶装置に記録したり、図示しないネットワークを介して別の装置に送信したりしてもよい。すなわち情報処理システム８に表示装置１６は必須でなく、その替わりとしてそれらの出力機構を設けてもよい。
【００２４】
図２は、本実施の形態において情報処理装置１０が発光デバイス１４の位置および姿勢を取得する手法を説明するための図である。情報処理装置１０は撮像装置１２から撮影画像５０を所定のレートで取得する。撮影画像５０には、既知の色の発光マーカーの像が比較的高い輝度で表れている。したがって情報処理装置１０はそのような発光マーカーの像を抽出し、次に示す一般的な変換式を用いて発光デバイス１４の３次元空間での位置および姿勢を特定する。
【００２５】
【数１】
2020088822.tif 000003
【００２６】
ここで（ｕ，ｖ）は撮影画像における発光マーカーの像の位置、（ｆｘ、ｆｙ）は撮像装置１２の焦点距離、（ｃｘ、ｃｙ）は画像主点、ｒ１１〜ｒ３３、ｔ１〜ｔ３を要素とする行列は回転・並進行列、（Ｘ，Ｙ，Ｚ）は、発光デバイス１４が基準の位置および姿勢にあるときの発光マーカーの３次元空間での位置である。このうち（ｕ，ｖ）、（ｆｘ、ｆｙ）、（ｃｘ、ｃｙ）、（Ｘ，Ｙ，Ｚ）を既知として、複数の発光マーカーについて方程式を解くことにより、それらに共通の回転・並進行列が求められる。この行列によって表される角度および並進量に基づいて、発光デバイス１４の位置と姿勢が得られる。この処理を画像解析処理５２とする。
【００２７】
一方、情報処理装置１０は、発光デバイス１４に内蔵されているＩＭＵセンサから、発光デバイス１４の角速度、加速度も所定のレートで取得し、それらによっても発光デバイス１４の位置や姿勢を取得する。これをセンサ値解析処理５４とする。図２には、時間経過に対する発光デバイス１４の位置あるいは姿勢の実際の変化と、画像解析処理５２およびセンサ値解析処理５４による処理の結果を１つのグラフで模式的に示している。このうち発光デバイス１４の実際の変化を実線、画像解析処理５２により得られる結果を白丸、センサ値解析処理５４により得られる結果を点線で示している。
【００２８】
ＩＭＵセンサから得られる情報は、発光デバイス１４の回転速度および並進の加速度である。したがってセンサ値解析処理５４では、前の時刻における位置や姿勢を始点として、速度・加速度の積分演算により得られるそれらの変化量を加算することで、次の時刻の位置や姿勢を算出する。このときの始点として、画像解析処理５２の結果を利用できる。ただし撮像装置１２による撮影は６０Ｈｚ（６０フレーム／ｓｅｃ）程度であるのに対し、ＩＭＵセンサは１６００Ｈｚほどの高頻度での計測が可能である。したがって白丸で示した画像解析処理５２の結果が離散的であるのに比べ、センサ値解析処理５４は点線で示すように格段に短い間隔で位置や姿勢を追跡できる。
【００２９】
ただし速度や加速度を積分演算する性質上、センサ値解析処理５４では誤差が蓄積し、実線で示した実際の位置や姿勢から時間経過とともに外れていく傾向となりやすい。そのためカルマンフィルタにより画像解析処理５２の結果を統合することで、発光デバイス１４の位置や姿勢を連続的に精度よく求める。このように撮像装置１２やＩＭＵセンサなど複数のセンサによる解析結果を統合して精度を高める手法はセンサフュージョンとして知られている。
【００３０】
センサフュージョンにおいては、各センサにより値が取得された時刻を共通の時間軸で表す必要がある。本実施の形態の場合、図の横軸である１つの時間軸に対し、画像解析処理５２に用いられた画像が撮影された時刻と、センサ値解析処理５４に用いられた角速度、加速度が計測された時刻が正確に定まることにより、それらを統合してより高い精度で発光デバイス１４の位置や姿勢が得られる。
【００３１】
一方、画像解析処理５２の精度を向上させるには、撮像装置１２の露光時間と発光マーカーの発光時間をできるだけ短くすることが有効である。すなわち一般的な撮影画像では、発光マーカーの像が他の物の反射光や照明の像と同程度の輝度で表され区別しにくいことがある。また周囲の明るさなどによって区別のしやすさも変化する。露光時間を短くするほど、強く発光している物とそれ以外の物とで像の輝度に差が生じ、結果として高い頑健性で発光マーカーの像を検出できる。
【００３２】
また発光デバイス１４は動くことを前提としているため、発光マーカーの発光時間が長いとその像がぶれ、検出しにくくなるうえ、解析に用いる像の位置座標に含まれる誤差が大きくなる。発光時間をできるだけ短くすることで、ぶれの少ない像を撮影できるようにすれば、撮影画像上での位置を高精度に取得でき、解析結果の精度も向上する。また像と時刻との対応が明確になるため上述のセンサフュージョンにおいても有効となる。さらに短時間のみ発光させることにより消費電力を軽減でき、発光デバイス１４を電池電源としても長時間の使用が可能になる。
【００３３】
図３は、本実施の形態における撮像装置１２の露光時間と発光マーカー６の発光時間の関係を例示している。同図の横軸は時間経過を示し、一点鎖線で区切られた時間がフレームの撮影周期である。例えば６０フレーム／ｓｅｃのフレームレートの場合、撮影周期は約１６．６ｍｓｅｃである。本実施の形態ではこれに対し、各フレームの露光時間６０ａ、６０ｂ、６０ｃを５００μｓｅｃ、発光マーカー６の発光時間６２ａ、６２ｂ、６２ｃを１００μｓｅｃなどとする。
【００３４】
ただし露光時間や発光時間は、発光輝度や周囲の明るさなどによって最適化すればよく、具体的な時間を限定するものではない。いずれにしろ、露光時間６０ａ、６０ｂ、６０ｃや発光マーカー６の発光時間６２ａ、６２ｂ、６２ｃは、撮影画像から像を検出するのに十分な輝度で発光マーカー６が表される限り、極力短くすることが望ましい。定性的には、ある瞬間の発光が像として表れるように発光時間を定め、露光時間をそれ以上とすることが必要条件となる。
【００３５】
さらに図示するように、発光時間６２ａ、６２ｂ、６２ｃの全体が露光時間６０ａ、６０ｂ、６０ｃに包含されるような時間設定とすることにより、撮影画像において常に同様の輝度で発光マーカー６の像が表れる。例えば露光時間を発光時間の数倍程度とすることにより、発光時刻が多少ずれても像への影響を抑えることができる。
【００３６】
また上述のセンサフュージョンを実現する場合、ＩＭＵセンサによる計測時刻と露光時刻の相関を正確に取得できることが望ましい。発光デバイス１４と撮像装置１２はそれぞれが独自のクロックで動作しているため、本実施の形態では、それらを共通の時間軸に揃えるための制御を行う。具体的にはまず、露光時間６０ａ、６０ｂ、６０ｃの基準時刻と発光時間６２ａ、６２ｂ、６２ｃの基準時刻を合わせる。
【００３７】
図示する例では、矢印で示すように露光時間６０ａ、６０ｂ、６０ｃの中間時刻（全時間の１／２が経過した時刻）を基準とし、発光時間６２ａ、６２ｂ、６２ｃの中間時刻をそれに合わせている。以後、発光時間の中間時刻を単に「発光時刻」と呼ぶことがある。このようにすると、発光デバイス１４が認識している発光時刻が、すなわち撮影時刻となる。また発光時間６２ａ、６２ｂ、６２ｃが多少、前後にずれても露光時間６０ａ、６０ｂ、６０ｃから外れにくくなる。
【００３８】
図４は、本実施の形態の発光デバイス１４における発光とＩＭＵセンサによる計測の時間的な関係を例示している。同図上段は図３で示した時間軸のうち、１フレーム分の撮影周期における露光時間６０ａおよび発光時間６２ａを示している。この撮影周期において、ＩＭＵセンサは発光デバイス１４の角速度や加速度を高頻度に計測している。同図中段は、上段と同じ時間軸において、発光マーカー６の発光時刻（白丸）と、ＩＭＵセンサによる計測時刻（黒丸）を並列に示している。
【００３９】
発光デバイス１４はこのような発光時刻と計測時刻を、内部での時間軸に対し取得している。そこで発光デバイス１４は図の下段に示すように、ＩＭＵセンサによる計測結果および計測された時刻とともに、発光マーカー６を発光させた時刻を情報処理装置１０に送信する。図３で示したように発光時刻と露光時間の中間時刻を合わせておくことにより、情報処理装置１０では、送信された発光時刻に基づき、画像の撮影時刻と、ＩＭＵセンサによる計測時刻を同じ時間軸で表せる。
【００４０】
このような仕組みにより、図２で示したようにセンサ値解析処理５４と画像解析処理５２を統合でき、発光デバイス１４の位置や姿勢を連続的かつ精度よく取得できる。情報処理装置１０は、図３で示したように撮影と発光の同期がとれた状態をゲームなどの運用前に達成するとともに、その状態を保つため、運用中においてもバックグラウンド処理としてずれを監視し、必要に応じて修正する。
【００４１】
図５は、情報処理装置１０の内部回路構成を示している。情報処理装置１０は、ＣＰＵ（Central Processing Unit）２２、ＧＰＵ（Graphics Processing Unit)２４、メインメモリ２６を含む。これらの各部は、バス３０を介して相互に接続されている。バス３０にはさらに入出力インターフェース２８が接続されている。入出力インターフェース２８には、ＵＳＢやＩＥＥＥ１３９４などの周辺機器インターフェースや、有線又は無線ＬＡＮのネットワークインターフェースからなる通信部３２、ハードディスクドライブや不揮発性メモリなどの記憶部３４、表示装置１６や発光デバイス１４へデータを出力する出力部３６、撮像装置１２や発光デバイス１４からデータを入力する入力部３８、磁気ディスク、光ディスクまたは半導体メモリなどのリムーバブル記録媒体を駆動する記録媒体駆動部４０が接続される。
【００４２】
ＣＰＵ２２は、記憶部３４に記憶されているオペレーティングシステムを実行することにより情報処理装置１０の全体を制御する。ＣＰＵ２２はまた、リムーバブル記録媒体から読み出されてメインメモリ２６にロードされた、あるいは通信部３２を介してダウンロードされた各種プログラムを実行する。ＧＰＵ２４は、ジオメトリエンジンの機能とレンダリングプロセッサの機能とを有し、ＣＰＵ２２からの描画命令に従って描画処理を行い、表示画像を図示しないフレームバッファに格納する。そしてフレームバッファに格納された表示画像をビデオ信号に変換して出力部３６に出力する。メインメモリ２６はＲＡＭ（Random Access Memory）により構成され、処理に必要なプログラムやデータを記憶する。
【００４３】
図６は発光デバイス１４の内部回路構成を示している。発光デバイス１４は、ＣＰＵ１８０、メモリ１８２、通信部１８４、ＩＭＵセンサ１８６、ＬＥＤ１８８、およびクロック発生回路１９０を含む。ＣＰＵ１８０は、発光デバイス１４を構成する各回路やその間のデータ伝送を制御する。本実施の形態では特に、情報処理装置１０からの要求を受け付け、ＬＥＤ１８８の点灯／消灯やＩＭＵセンサ１８６による計測を制御したり、内部のクロックを補正したりする。メモリ１８２は、ＣＰＵ１８０における処理に必要なデータを格納する。本実施の形態では特に、ＬＥＤ１８８における発光タイミングのパターンや、各種補正値を格納する。
【００４４】
通信部１８４は、情報処理装置１０との間でデータを送受するためのインターフェースであり、Bluetooth（登録商標）などの既知の無線通信技術を用いて実現できる。ＩＭＵセンサ１８６はジャイロセンサおよび加速度センサを含み、発光デバイス１４の角速度や加速度を取得する。センサの出力値は通信部１８４を介して情報処理装置１０に送信される。ＬＥＤ１８８は、所定の色で発光する素子またはその集合であり、図１で示した発光マーカー６を構成する。クロック発生回路１９０は発光デバイス１４のクロックを発生させる回路であり、ＣＰＵ１８０の制御によりクロック周波数を補正する機能を有する。
【００４５】
図７は、情報処理装置１０および発光デバイス１４の機能ブロックの構成を示している。同図に示す各機能ブロックは、ハードウェア的には、図５、６に示したＣＰＵ、ＧＰＵ、メモリなどの構成で実現でき、ソフトウェア的には、記録媒体などからメモリにロードした、データ入力機能、データ保持機能、画像処理機能、入出力機能などの諸機能を発揮するプログラムで実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００４６】
情報処理装置１０は、発光デバイス１４からセンサの計測値や各種時刻に係るデータを取得するデバイスデータ取得部１３０、撮像装置１２から撮影画像のデータを取得する撮影画像取得部１３２、ＩＭＵセンサの計測値と撮影画像を用いて発光デバイス１４の位置や姿勢を取得する位置姿勢取得部１３４、発光デバイス１４の位置や姿勢に基づき情報処理を実施する情報処理部１３６、情報処理の結果を表すデータを生成し出力する出力データ生成部１３８、撮像装置１２の露光と発光デバイス１４の発光を同期させる同期処理部１４０、および発光デバイス１４に対し発光や時刻補正に係る制御情報を送信する制御情報送信部１４２を含む。
【００４７】
デバイスデータ取得部１３０は図５の入力部３８、通信部３２、ＣＰＵ２２、メインメモリ２６などで実現され、発光デバイス１４からＩＭＵセンサ１８６の計測値、すなわち角速度および加速度を所定のレートで取得する。このとき同時に、各計測値が得られた時刻と、それと並行して発光マーカーを発光させた時刻についても取得する。デバイスデータ取得部１３０は、取得した情報を位置姿勢取得部１３４に供給する。撮影画像取得部１３２は図５の入力部３８、ＣＰＵ２２、メインメモリ２６などで実現され、撮像装置１２が所定のフレームレートで撮影して得た撮影画像のデータを順次取得し、位置姿勢取得部１３４に供給する。
【００４８】
位置姿勢取得部１３４は図５のＣＰＵ２２、ＧＰＵ２４、メインメモリ２６などで実現され、撮影画像から発光マーカーの像を検出し、式１により発光デバイス１４の位置および姿勢を取得する。位置姿勢取得部１３４はさらに、ＩＭＵセンサが計測した角速度、加速度に基づき積分演算により発光デバイス１４の位置および姿勢を取得する。そして図２で説明したように両者の結果を統合することで、位置および姿勢の情報を所定のレートで生成する。このとき位置姿勢取得部１３４は上述のとおり、ＩＭＵセンサ１８６による計測時刻と発光マーカーの発光時刻、ひいては画像の撮影時刻を同一の時間軸で表すことにより、位置や姿勢の取得精度を向上させる。
【００４９】
情報処理部１３６は図５のＣＰＵ２２、メインメモリ２６などで実現され、発光デバイス１４の位置や姿勢に基づき所定の情報処理を実施する。上述のとおり処理の内容は特に限定されず、ユーザの動きを入力情報としてゲームを進捗させてもよいし、発光デバイス１４を仮想のオブジェクトに置き換え物理演算を行うことで拡張現実を実現してもよい。その他、様々な情報処理を実現できることは当業者には理解されるところである。
【００５０】
出力データ生成部１３８は図５のＧＰＵ２４、メインメモリ２６、出力部３６、通信部３２などで実現され、情報処理部１３６による情報処理の結果として出力すべき画像や音声のデータを生成する。生成すべきデータの内容は情報処理の内容によって様々である。画像や音声を生成する場合、出力データ生成部１３８は生成したデータを所定のレートで表示装置１６に出力する。ただし上述のとおり出力先は表示装置に限定されず、記録媒体、記憶装置、ネットワークなどでもよい。
【００５１】
同期処理部１４０は図５のＣＰＵ２２、メインメモリ２６などで実現され、撮像装置１２による撮影と発光マーカー６の発光との同期をとる。すなわち図３で示したように、露光時間の中間時刻と発光マーカー６の発光時刻が合致するように調整処理を行う。具体的には発光マーカー６を時間方向に所定のパターンで発光させ、それが撮影画像にどのように写るかを確認することにより、発光デバイス１４内部での時間軸においてどの時刻で発光させるべきかを決定する。
【００５２】
この処理には、少なくとも露光時間内に発光するように露光時間程度の時間単位で評価を行う第１段階と、露光時間の中間時刻と発光時刻を詳細に合わせる第２段階が含まれる。第１段階はゲームなどの運用処理の前に、初期キャリブレーションとして実施する。第２段階は運用時と同じ発光時間で発光させることにより、運用時のバックグラウンド処理として実施できる。当該バックグラウンド処理では、撮像装置１２と発光デバイス１４のクロックの差によって生じるずれを監視することで、クロックの補正も行う。それぞれの処理の詳細は後に述べる。
【００５３】
制御情報送信部１４２は図５のＣＰＵ２２、出力部３６、通信部３２などで実現され、同期処理部１４０が同期を実現するのに必要な情報や要求を発光デバイス１４に送信する。具体的には発光パターンの指定、発光時刻の補正要求、クロックの補正要求などを送信する。制御情報送信部１４２はまた、ＩＭＵセンサによる計測の開始／停止、撮像装置１２による撮影の開始／停止に係る制御情報を発光デバイス１４や撮像装置１２に送信してもよい。撮像装置１２における露光時間はあらかじめ撮像装置１２自体に設定しておいてもよいし、制御情報送信部１４２が指定してもよい。
【００５４】
発光デバイス１４は、情報処理装置１０から制御情報を取得する制御情報取得部１４４、制御情報に従い発光、計測、クロックを制御する制御部１４６、ＬＥＤ１８８を発光させる発光部１４８、角速度や加速度を計測する計測部１５０、および、計測値など必要なデータを情報処理装置１０に送信するデータ送信部１５２を含む。制御情報取得部１４４は、図６の通信部１８４、ＣＰ１Ｕ８０などで実現され、情報処理装置１０から送信された制御情報を取得する。
【００５５】
制御部１４６は図６のＣＰＵ１８０、メモリ１８２、クロック発生回路１９０などで実現され、当該制御情報に従い発光部１４８や計測部１５０を作動させるとともに、クロックを発生させる。情報処理装置１０からの制御情報には、点灯／消灯の時間変化を表す発光パターンを指定する識別情報が含まれる。したがって制御部１４６は当該識別情報と発光パターンを対応付けた情報を内部で保持する。
【００５６】
制御情報にはこのほか、発光時刻の補正値、発光の開始／停止、発光輝度、発光色、ＩＭＵセンサによる計測の開始／停止など各種情報を含んでよい。制御部１４６はそれらの情報に応じて、発光部１４８、計測部１５０を適宜作動させる。また制御情報にクロックの補正要求が含まれるとき、制御部１４６は内部で発生させているクロックの周波数を補正する。
【００５７】
発光部１４８は図６のＬＥＤ１８８で実現され、制御部１４６による制御のもと、指定されたパターンあるいはタイミングで素子を発光させる。計測部１５０は図６のＩＭＵセンサ１８６で実現され、制御部１４６による制御のもと、所定の頻度で発光デバイス１４の角速度、加速度を計測する。データ送信部１５２は図６のＣＰＵ１８０、メモリ１８２、通信部１８４などで実現され、計測部１５０が計測した角速度、加速度の値を、計測された時刻とともに順次、情報処理装置１０に送信する。データ送信部１５２はさらに、発光部１４８において発光がなされた時刻も順次、情報処理装置１０に送信する。
【００５８】
以下、発光デバイス１４との協働によって情報処理装置１０の同期処理部１４０が実施する同期処理の内容について詳述する。図８は、同期処理部１４０が実施する処理の段階を示している。同期処理は図示するようにプレスキャンフェーズ（Ｓ１０）、ブロードフェーズ（Ｓ１２）、バックグラウンドフェース（Ｓ１４）なる３段階の処理で構成する。プレスキャンフェーズおよびブロードフェーズはゲーム処理などの運用の前に実施する。このうちプレスキャンフェーズは発光デバイス１４の検出を目的とする。そのため発光マーカー６は全期間で点灯させる。
【００５９】
ブロードフェーズは、プレスキャンフェーズにおいて検出された発光デバイス１４の発光時刻を、露光時間に大まかに合わせることを目的とする。そのため時間を露光時間程度のタイムグリッドに分割し、それぞれに対し設定された点灯／消灯のパターンに従うように発光マーカー６を発光させる。発光パターンは複数フレーム分の時間にわたり設定しておく。これにより、発光マーカー６の像が写っている／写っていない、という２つの状態が時間方向にどのように変化するかによって、露光時間に合った発光時刻の範囲を特定する。
【００６０】
バックグラウンドフェーズは運用前から運用時にかけて、定期的に発光時刻のずれを厳密に確認し、必要に応じて発光時刻や発光デバイス１４のクロック周波数を修正することを目的とする。そのためブロードフェーズのタイムグリッドより短い、運用時の発光時間で、発光時刻を意図的にずらしていき、撮影画像に写っている状態／写っていない状態の遷移のタイミングを取得することで、元の発光時刻の、露光時間の中間時刻に対するずれを求める。そしてずれを解消するように発光時刻を補正する。また単位時間あたりのずれの発生量に基づき、それを解消する方向にクロック周波数を補正する。
【００６１】
ブロードフェーズにおいて発光マーカー６の像が所定時間得られない状態となったらプレスキャンフェーズに戻り、発光デバイスの検出から実施する。バックグラウンドフェーズにおいて有効なずれ量が得られない状態となったら、ブロードフェーズに戻って発光時刻の大まかな合わせ込みからやり直す。このように複数のフェーズに分け、それに適したパターンで発光させることにより、効率的に同期をとることができるとともに、運用時にも常時監視を実現できる。
【００６２】
図９は、プレスキャンフェーズにおける発光パターンを模式的に示している。同図に示す矩形は横方向の長さが１フレーム分の撮影周期を示している。基本的にはこの時間を所定時間のタイムグリッドに分割し、この単位で発光デバイスを点灯させたり消灯したりする。例えばフレームレートが６０フレーム／ｓｅｃの場合、撮影周期は１６．６ｍｓｅｃである。これを３２分割すると１タイムグリッドは５２１μｓｅｃとなる。上述のとおり露光時間を５００μｓｅｃとした場合、それと同程度のタイムグリッドとすることで、露光時間と発光時間の粒度を揃えられ、発光時間が露光時間と重なっているか否かといった大まかな判定を行える。
【００６３】
ただしプレスキャンフェーズにおいては、撮像装置１２の視野に存在する発光デバイス１４を検出することを目的とするため、ＰＷＭ（Pulse Width Modulation）制御により全タイムグリッドにおいて点灯状態とする。同図ではタイムグリッドを塗りつぶしとすることで点灯状態であることを示している。プレスキャンフェーズでは、同期処理部１４０は撮影画像取得部１３２から撮影画像を取得し、発光マーカー６の像を検出することで、視野内に発光デバイスが存在することを確認する。全期間で発光マーカーを点灯させることにより、５００μｓｅｃの短時間の露光でも、発光デバイス１４が視野に存在する限りその像は検出される。
【００６４】
発光デバイス１４の存在を確認できたらブロードフェーズに移行する。図１０はブロードフェーズにおける発光パターンの例を模式的に示している。図の表し方は図９と同様である。ただしこのフェーズでは、複数フレームに渡り発光パターンを設定するため、フレームごとの変化を縦方向に示している。同図の場合、フレーム０からフレーム１０までの１１フレームで１つの発光パターンを構成している。
【００６５】
すなわち発光マーカー６は、当該発光パターンでの発光を１１フレーム単位で繰り返す。撮像装置１２は運用時と同様、各フレームの撮影周期において、所定のタイミングで短時間（例えば５００μｓｅｃ程度）の露光を繰り返す。例えば露光時間が、タイムグリッド「２」に対応する実線の矩形７０ａの時間に設定されているとする。この場合、最初の５フレーム（フレーム０〜４）までは発光マーカー６が消灯しているためその像は写らない。次のフレーム５では全期間点灯しているため、矩形７０ａの露光時間においても発光マーカー６の像が写る。
【００６６】
次の３フレーム（フレーム６〜８）ではそのタイミングで発光マーカー６が消灯しているため像は写らず、さらに次の２フレーム（フレーム９、１０）では点灯しているため発光マーカー６の像が写る。連続した１１フレーム中で発光マーカー６の像が写っているフレームを「１」、写っていないフレームを「０」と表すと、矩形７０ａに対応する露光時間ではフレーム０から順に、｛０，０，０，０，０，１，０，０，０，１，１｝なる数列となる。以後、このような数列を「像出現パターン」と呼ぶ。
【００６７】
なお像露光時間が点灯時間と消灯時間をまたいでいるときは、露光時間中の点灯時間によって像の輝度が様々となる。そこで当該輝度にしきい値を設け、それ以上であれば「写っている」、しきい値未満であれば「写っていない」と判定する。また発光マーカーを複数とする場合、そのうち１つでも写っていれば「写っている」としてもよいし、しきい値以上の数が写っているときに「写っている」としてもよい。
【００６８】
それらの基準の組み合わせにより、写っていることと写っていないことを「１」と「０」の２値で表す。類似の手法は、画像解析により物体の有無を検出するブロブ検出として知られている。ただし本実施の形態では、発光マーカーの消灯を意図的に作り出しているため、「写っていない」ことをエラーとせずに像出現パターンの取得を続行する。
【００６９】
図示するように全てのタイムグリッドで、異なる像検出パターンが得られるように発光パターンを設定すれば、発光デバイス１４のタイムグリッドと露光時間との関係が得られることになる。なお最初の５フレーム分の期間を全て消灯とし次の１フレーム分の期間を全て点灯としているのは、１単位の発光パターンを前後の発光パターンと区別するためである。この期間をシンクパターン７２と呼ぶ。したがって実際には、撮影画像を連続して取得していき、シンクパターン７２の｛０，０，０，０，０，１｝なる像出現パターンが得られたら、次の５フレーム分の像出現パターンに基づき、発光デバイス１４のタイムグリッドと露光時間との関係を特定する。
【００７０】
シンクパターン７２に続く発光パターンは上述のとおり、あるタイムグリッドにおける発光パターンが他のタイムグリッドと一致しないように設定するとともに、前後のタイムグリッドで点灯／消灯を変化させるのは１フレームのみとする。例えば矩形７０ａのタイムグリッド（タイムグリッド「２」）を基準にすると、その前のタイムグリッド「１」からフレーム９のみが、消灯から点灯になっている。またその後のタイムグリッド「３」ではフレーム１０のみが点灯から消灯になっている。
【００７１】
このように点灯状態と消灯状態を徐々に変化させていく発光パターンとすることで、露光時間が２つのタイムグリッドにまたがっていても、誤差は高々１タイムグリッドとなる。例えば露光時間が、矩形７０ａから２５０μｓｅｃ程度遅れた破線の矩形７０ｂのタイミングにあった場合、シンクパターンの後の像出現パターンは｛０，０，０，１｝まで変わらず、遅延の程度によって最後の値のみが０から１までの中間値になる。ブロブ検出によりしきい値判定すれば数値としては１または０になるが、どちらにしろそのような数列になるのは、連続した２つのタイムグリッドに限られるため、ほぼ誤差なく露光時間を特定できることになる。このようなパターンの特徴は、デジタル回路で数値を表すのに用いられるグレイコードと同様である。
【００７２】
なお図示した発光パターンは一例であり、タイムグリッドごとに異なる像出現パターンが得られ、かつ前後のタイムグリッドで１フレームのみ点灯／消灯が変化する限り、どのような発光パターンとしてもよい。またタイムグリッドの細かさも露光時間に合わせて適宜調整してよい。定性的にはタイムグリッドの数が増えるほど、１単位の発光パターンに必要なフレーム数が増加する。
【００７３】
図１１は、ブロードフェーズにおいて同期処理部１４０が、露光時間に対応する発光デバイス１４のタイムグリッドを特定する処理手順を示すフローチャートである。このフローチャートは、制御情報送信部１４２が発光デバイス１４にブロードフェーズ用の発光パターンで発光するよう要求し、それに応じて発光マーカー６が図１０で示したようなパターンで繰り返し発光している様子を撮像装置１２が短時間の露光で撮影している状態で開始される。
【００７４】
また同期処理部１４０は撮影画像のデータを取得し、発光マーカーの像を検出する処理を並行して実施している。露光時間を短くすることにより、露光時間中に発光があれば発光マーカーの像を容易に検出できる。その状態で、シンクパターンと合致する像出現パターンが得られるまで像の検出処理を繰り返す（Ｓ２０のＮ）。そのようなパターンが検出されたら（Ｓ２０のＹ）、次のフレームから、タイムグリッドを特定するための像出現パターンを取得していく（Ｓ２２）。
【００７５】
１単位の発光パターン分のフレーム撮影が終了した時点で、像出現パターンが、あらかじめ判明しているタイムグリッドごとの発光パターンのバリエーションのいずれかに合致していたら（Ｓ２４のＹ）、当該パターンに対応するタイムグリッドに露光時間が重なっていることが判明する（Ｓ２６）。したがって同期処理部１４０は、当該タイムグリッド中に発光するように制御情報を生成し、制御情報送信部１４２を介して発光デバイス１４に送信することで、およその発光時間帯を設定する（Ｓ２８）。
【００７６】
Ｓ２４において像出現パターンが、設定されたタイムグリッドごとの発光パターンのいずれにも合致しなかった場合、シンクパターンの検出からやり直す（Ｓ２４のＮ）。なおＳ２０からＳ２６の処理を複数回繰り返し、得られた結果のうち最も頻度が高い結果、あるいは最初に所定回数に到達した結果などを、露光時間に対応するタイムグリッドの最終値として決定することにより精度を高めてもよい。また所定時間、結果が得られなければ、プレスキャンフェーズに戻り発光デバイスの検出からやり直す。
【００７７】
ブロードフェーズにより露光時間と同程度の粒度で、発光すべき時間帯を決定できる。これにより少なくとも露光時間と発光の同期はとれるため、発光マーカーの像が撮影画像に写ることは保証される。センサフュージョンなどの目的で厳密に時刻を合わせる必要がない場合などは、次のバックグラウンドフェーズを省略し、定期的にブロードフェーズを実施するようにしてもよい。ただしバックグラウンドフェーズにより発光時刻を露光時間の中間時刻に合わせておくことにより、クロックの差による発光時刻のずれに対する頑健性を高めることができる。
【００７８】
図１２はバックグラウンドフェーズにおける同期処理の原理を説明するための図である。同図は横軸を時間経過とし、実線矩形が１フレームの露光時間８０、破線矩形が発光マーカー６の発光時間（例えば発光時間８２）を示す。ただし発光時間は、複数フレーム分のものを同時に表している。バックグラウンドフェーズは運用時に実施することを基本とするため、発光時間８２も運用時の短い発光時間（例えば１００μｓｅｃ）である。上述のとおりバックグラウンドフェーズは、発光時刻を露光時間の中間時刻に厳密に合わせる処理である。
【００７９】
ブロードフェーズによって、発光デバイス１４の時間軸において５００μｓｅｃ程度の分解能で、露光時間８０に対応するタイミングが判明するが、発光時間をそれより短くしたとき、露光時間の中間時刻からずれた発光となってしまう可能性がある。また装置ごとのクロック周波数のずれによって、時間経過とともに両者の時刻が相対的にずれていくことが考えられる。
【００８０】
図示する例では、発光時間８２の中間時刻ＴＬが、露光時間８０の中間時刻ＴＥより早くなっている。そこでこの時間的なずれ量ｄを求め、設定されている発光時刻に加算することで、発光時間の中間時刻ＴＬを露光時刻ＴＥに合わせる。これを目的として、同期処理部１４０は発光時刻を故意にずらしていき、撮影画像に発光マーカー６が写っている状態と写っていない状態の間の遷移が生じるタイミングを取得する。
【００８１】
図に当てはめると、発光マーカー６の発光時間８２が露光時間８０に含まれている間はその像が撮影画像に表れ、発光時間８２が露光時間８０から外れると、像が表れなくなる。発光時刻を徐々にずらしていき、露光時間８０から外れるまでの時間が短いほど、元の発光時刻が、露光時間中でずらした方向に寄っていることになる。図示する例では、発光時間８２を白抜き矢印のように早めていくと、比較的早く露光時間８０から外れ撮影画像に像が写らなくなる。元の発光時刻ＴＬのずれ量ｄは、写らなくなるまでの時間、フレームごとの発光時刻のずらし量、および露光時間８０から求められる。
【００８２】
図１３はバックグラウンドフェーズにおける発光パターンの例を模式的に示している。図の表し方は図１０と同様である。ただし横軸の時間幅は１フレーム分の時間より短く、例えば１１００μｓｅｃ程度である。バックグラウンドフェーズでは上述のとおり、露光時間に対し発光時間が外れたり入ったりするタイミングに着目しているため、白抜き矢印で示した設定中の発光時刻を中心として、露光時間の２倍程度の時間幅で発光時刻をずらしていけば十分となる。また外れている状態が長くならないようにすることで、発光デバイス１４の位置や姿勢の追跡精度を落とさないようにしている。図１２のように発光時刻が露光時間の中間時刻より前にずれているケースでは、露光時間は例えば矩形８６の範囲となる。
【００８３】
また発光時間を短時間とすると、ずれ量ｄの検出誤差もその粒度に抑えられる。例えば図示するように発光時間を１００μｓｅｃとすると、検出誤差は±１００μｓｅｃの範囲に収まる。図示する例では、フレーム０からフレーム２６までの２７フレームで１つの発光パターンを構成している。発光マーカー６は、当該発光パターンでの発光を２７フレーム単位で繰り返す。
【００８４】
ブロードフェーズと同様の目的で、最初の７フレーム（フレーム０〜６）にシンクパターン８８を設ける。この例では、発光マーカー６が点灯、消灯を繰り返すパターンとしている。ブロードフェーズでの調整によって、設定されている発光時刻は露光時間に入っているため、シンクパターン８８では設定されている時刻からずらすことなく発光させる。そしてシンクパターン８８の期間の次のフレーム（フレーム７）から、所定時間ずつ発光時刻をずらしていく。図示する例では、５０μｓｅｃずつ早めている。
【００８５】
そして発光時刻のずらし量が所定の上限時間に達したら、それまでずらしていたのと逆方向に所定の上限時間だけずれた時刻で発光させる。図示する例では、１０フレーム（フレーム７〜１６）かけて５００μｓｅｃまで発光時刻を早めたら、次のフレーム（フレーム１７）では、元の設定時刻より５００μｓｅｃ遅い時刻に発光させている。その後は同様に所定時間ずつ発光時刻をずらしていき、元の発光時刻の１つ手前で、１単位の発光パターンの終点とする（フレーム１８〜２６）。
【００８６】
このようなパターンでの発光を、矩形８６の露光時間で撮影すると、シンクパターン８８の後における像出現パターンは｛１，１，１，１，０，０，０，０，０，０，０，０，０，１，１，１，１，１，１，１｝となる。すなわち発光時間がフレーム１１で露光時間から外れ、フレーム２０で再び露光時間に入るため、フレーム１１〜１９の期間で像が写らないことになる。このような像出現パターンは、露光時間に対する元の発光時刻に依存して変化する。
【００８７】
図１４は、バックグラウンドフェーズにおける元の発光時刻と像出現パターンの関係を示している。図１３で示した発光パターンによれば、元の発光時刻と露光時間との時間的な関係によって、２１通りの像出現パターンがある。ただし露光時間と発光時間の長さや１回のずらし量によって像出現パターンのバリエーションも様々となる。元の発光時刻が露光時間の中間時刻に合っていれば、発光時間が露光時間から外れるまでのフレーム数と、再び露光時間に入って元に戻るまでのフレーム数が均等になるため、「ｐｏｓｉｔｉｏｎ１０」のパターンがそれに該当する。
【００８８】
図１３で矩形８６に露光時間がある場合は「ｐｏｓｉｔｉｏｎ１３」のパターンに該当する。したがって図示するようなデータを準備しておくことにより、実際の像出現パターンに基づき、露光時間に対する元の発光時刻を、５０μｓｅｃ程度の粒度で求めることができる。
【００８９】
図１５は、バックグラウンドフェーズにおいて同期処理部１４０が、発光時刻を露光時間の中間時刻に合わせる処理手順を示すフローチャートである。このローチャートは、制御情報送信部１４２が発光デバイス１４にバックグラウンドフェーズ用の発光パターンで発光するよう要求し、それに応じて発光マーカー６が図１３で示したようなパターンで繰り返し発光している様子を、撮像装置１２が短い露光時間で撮影している状態で開始される。
【００９０】
また同期処理部１４０は撮影画像のデータを取得し、発光マーカーの像を検出する処理を並行して実施している。さらに情報処理装置１０の位置姿勢取得部１３４は検出された像やＩＭＵセンサの計測値などに基づき発光デバイス１４の位置や姿勢を取得し、情報処理部１３６がそれに基づき適宜情報処理を行っていてよい。その状態で、シンクパターンと合致する像出現パターンが得られるまで像の検出処理を繰り返す（Ｓ３０のＮ）。シンクパターンが検出されたら（Ｓ３０のＹ）、次のフレームから、露光時間に対する発光時刻を特定するための像出現パターンを取得していく（Ｓ３２）。
【００９１】
１単位の発光パターン分のフレーム撮影が終了した時点で、像出現パターンが、図１４で示したような想定されるパターンのいずれにも合致していなければ、シンクパターンの検出からやり直す（Ｓ３４のＮ）。像出現パターンが、想定されるパターンのいずれかに合致していたら（Ｓ３４のＹ）、図１４の「ｐｏｓｉｔｉｏｎ１３」ように、当該パターンに対応づけられている、元の発光時刻を示す識別情報を取得する（Ｓ３６）。
【００９２】
所定回数連続で、同じ結果が得られるまでＳ３０からＳ３６の処理を繰り返す（Ｓ３８のＮ）。所定回数連続で同じ結果が得られたら（Ｓ３８のＹ）、その発光時刻に対応する補正量を取得する（Ｓ４０）。例えば図１４で得られた「ｐｏｓｉｔｉｏｎ１３」に基づき、図１２で示した時間のずれ量ｄを補正量として取得する。そのため発光時刻の識別情報と補正量とを対応付けたテーブルまたは変換規則をあらかじめ準備しておく。取得した補正量が、補正の必要があることを示している場合は（Ｓ４２のＹ）、当該補正量を元の発光時刻の設定に加算することで発光時刻を補正する（Ｓ４４）。
【００９３】
補正の必要がない場合は、発光時刻の設定はそのままとする（Ｓ４２のＮ）。図示する処理手順を、運用処理のバックグラウンド処理として定期的に繰り返すことにより、発光時刻を常時、露光時間の中間時刻に一致させることができる。図１６は、図１５のＳ４０において、発光時刻の識別情報から補正量を取得するために参照する設定情報を例示している。補正量テーブル９０は、発光時刻の識別情報（発光時刻ＩＤ）と補正すべき時間（補正量）との対応づけを示す。補正量は像出現パターン、露光時間、発光時間、１回あたりのずらし量から導出できるため、事前に計算しておく。
【００９４】
図１４に示した例では、発光時刻が２１通り定義される。したがって補正量テーブル９０も、２１個の識別情報に対し補正量を設定する。図示する例では、露光時間の１／５（＝発光時間）を１単位として補正量を示している。図１３で示したように、発光時間の１回あたりのずらし量が発光時間の１／２の場合、補正量は図１６に示すように０．５の粒度で設定できる。この粒度での補正によれば、上述のとおり当初の発光時刻が露光時間の中間時刻に合っている状態の「ｐｏｓｉｔｉｏｎ１０」以外に、その前後に位置する「ｐｏｓｉｔｉｏｎ９」、「ｐｏｓｉｔｉｏｎ１１」も補正量は「０」となり、補正の必要がない。
【００９５】
「ｐｏｓｉｔｉｏｎ１０」から離れるほど補正量は大きくなり、最大で±２．５となる。元の設定時刻に正の補正量を加算すると設定時刻が遅くなり、負の補正量を加算すると設定時刻が早くなる。例えば図１３の例は「ｐｏｓｉｔｉｏｎ１３」に該当するため、ずれ量ｄ＝０．５×発光時間だけ設定時刻を遅くすることにより、発光時刻が露光時間の中間時刻とほぼ合致するようになる。発光時間を１００μｓｅｃとすると、発光時刻を５０μｓｅｃ遅くする補正となる。
【００９６】
このような調整によっても、撮像装置１２と発光デバイス１４のクロック周波数に微小な差があることにより、露光時間の中間時刻と発光時刻が徐々にずれていくことが考えられる。逆に、そのようなずれの時間変化を観測すればクロック周波数の差がわかるため、周波数自体を人工的に補正することによりずれの増加速度を抑え込むことができる。
【００９７】
図１７は、露光時間の中間時刻に対する発光時刻のずれの偏差の時間変化を例示している。ここで偏差Ｄは、図１５のフローチャートでのループにおいて、ｉ回目のＳ４０で取得された補正量すなわち露光時間の中間時刻からのずれ量ｄｉを累積加算した値であり、次の式で定義される。
【００９８】
【数２】
2020088822.tif 000004
【００９９】
上述した補正によって実際のずれ量は定期的に０に戻るが、取得されたずれ量ｄｉを加算した偏差Ｄは、クロック周波数の差により単調増加あるいは単調減少していく。つまり図示するような秒オーダーの時間経過を考えると、偏差は線形に変化し、その傾きがクロック周波数の差を表す。そこで、例えば期間Ａにおいて偏差の傾きが得られたら、これを解消する方向にクロック周波数を補正する。これにより期間Ｂに示すように偏差の傾きが変化する。
【０１００】
そして期間Ｂにおいても偏差の傾きが得られたら、その傾きが解消するように再度クロック周波数を補正する。次の期間Ｃにおいても同様の処理を繰り返すことにより、偏差の時間変化が徐々に小さくなる。このようにして、点線で示した偏差９２のように、傾きが０の理想的な状態に近づけていく。発光デバイスの元々のクロックを人工的に補正することにより、露光時間の中間時刻と発光時刻がほぼ一致した状態を長期間維持できるようになる。
【０１０１】
図１８は、バックグラウンドフェーズにおいて同期処理部１４０が、発光デバイス１４のクロックを補正する処理手順を示すフローチャートである。このフローチャートは、図１５で示した発光時刻の調整処理と並行して実施する。ただし実施頻度は異なっていてよい。まず図１７で示したように時間ｔに対し偏差Ｄをプロットしていき、両者の相関係数ｒを次のように求める（Ｓ５０）。
【０１０２】
【数３】
2020088822.tif 000005
【０１０３】
バー付きのｔ、Ｄはそれぞれの平均値である。相関係数ｒの絶対値が０．９９より大きいなど、相関があることを示す所定の基準を満たしていなければ（Ｓ５２のＮ）、偏差Ｄのプロットと相関係数ｒの取得を継続する（Ｓ５０）。相関があることを示す所定の基準を満たしたら（Ｓ５２のＹ）、その傾きＡを求める（Ｓ５４）。この処理は実際には、直前の所定期間における傾きａを次のように回帰解析により求め、その前までに求められた傾きＡに加算する処理となる。
【０１０４】
【数４】
2020088822.tif 000006
【０１０５】
そのように得られた傾きＡを用いて、偏差加算パラメータｍおよびｎを次のように求め、発光デバイス１４に制御情報として送信することで設定値を更新する（Ｓ５６）。なおパラメータｍの分子は時間の単位をｓｅｃからμｓｅｃに換算するためのものである。また偏差加算パラメータｍ、ｎは、ｎ／ｍ＝Ａ・１０−６により、単位時間当たりのクロックの補正量（補正時間）を与えるパラメータである。
【０１０６】
【数５】
2020088822.tif 000007
【０１０７】
図１９は、偏差加算パラメータｍ、ｎによって発光デバイス１４のクロック周波数を補正する手法を説明するための図である。発光デバイス１４の制御部１４６は、発振器からのクロック周波数を補正する補正回路を備える。補正回路自体は一般的な構造でよい。図示するグラフにおいて横軸は実時間、縦軸は発光デバイス１４のクロックである。また一点鎖線９４はクロックの初期状態である。
【０１０８】
発光デバイス１４の制御部１４６は、情報処理装置１０から送信された偏差加算パラメータｍ、ｎに基づき、時間ｍの経過ごとにｎだけ時間を加算するようにクロックを補正する。図示する直線９６のように、ｎが正であれば図示するようにクロックが速まる。負であればクロックが遅くなる。これによりｎ／ｍ＝Ａ・１０−６だけ傾きが変化するため、原理的には図１７で示した偏差の変化が解消されることになる。ただしこのような補正によっても誤差が含まれるため、偏差加算パラメータｍ、ｎを随時求め更新することで漸次的に偏差を抑え込んでいく。
【０１０９】
実験によれば、偏差加算による補正処理を導入することにより、発光時間が露光時間を外れるまでの時間を大幅に延長させることができた。発光時刻の契機はタイマー割り込みによりμｓｅｃオーダーとなるが、図示したクロック補正によれば、発光時刻をより細かい単位で制御できる。
【０１１０】
図２０は、情報処理装置１０と発光デバイス１４との協働による、露光時間と発光時刻の同期処理のシーケンスを示している。まずプレスキャンフェーズにおいて情報処理装置１０は発光デバイス１４に対し、プレスキャンフェーズの発光パターンでの発光命令を送信する（Ｓ１００）。これに応じて発光デバイス１４は、図９で示したプレスキャンフェーズの発光パターン、すなわち全期間において発光マーカーを発光させる（Ｓ１０２）。情報処理装置１０は、その様子を撮影した画像を用いて発光デバイス１４を検出する（Ｓ１０４）。
【０１１１】
発光デバイスを検出できたらブロードフェーズに移行し、情報処理装置１０は、ブロードフェーズの発光パターンでの発光命令を送信する（Ｓ１０６）。これに応じて発光デバイス１４は、図１０で示したようなパターン、すなわち露光時間程度の比較的大きな時間を最小単位として点灯／消灯を繰り返すパターンで発光マーカーを発光させる（Ｓ１０８）。情報処理装置１０は、その様子を撮影した画像を用いて、発光デバイス１４のクロック（時間軸）での、露光時間に対応するタイムグリッドを検出する（Ｓ１１０）。
【０１１２】
当該タイムグリッドを検出できたら、バックグラウンドフェーズに移行し、情報処理装置１０は、バックグラウンドフェーズの発光パターンでの発光命令を送信する（Ｓ１１２）。これに応じて発光デバイス１４は、図１３で示したようなパターン、すなわち運用に好適な短時間での発光を、フレームごとに時刻をずらしながら繰り返すパターンで発光マーカーを発光させる（Ｓ１１４）。Ｓ１１２の命令において、ブロードフェーズで検出した、露光時間に対応するタイムグリッドの識別情報を指定することにより、発光デバイス１４では少なくとも露光時間内に発光時刻を設定できる。
【０１１３】
当該設定時刻を基点として発光時刻をずらしていく様子を撮影した画像を用いて、情報処理装置１０は、上述のとおり露光時間の中間時刻からの設定のずれを検出する（Ｓ１１６）。そして必要に応じて、設定時刻を補正するためのリフレッシュ命令を発光デバイス１４に送信する（Ｓ１１８）。また情報処理装置１０は、得られたずれ量を加算していくことで偏差の時間変化を取得する（Ｓ１２０）。そして偏差加算パラメータｍ、ｎを含む偏差補正命令を発光デバイス１４に送信する（Ｓ１２２）。
【０１１４】
発光デバイス１４側では、送信されたリフレッシュ命令や偏差補正命令に従い、発光時刻の設定を補正したり内部のクロックを補正したりする（Ｓ１２４）これにより、露光時間の中間時刻に発光時刻を同期させた状態を定常的に作り出せる。上述のとおり発光時刻が露光時間から外れるまでの時間が長期化することにより、発光デバイス１４が例えば数分間、撮像装置１２の視野外に出たとしても、再度視野に入ったときの発光を確実に撮影でき、発光デバイス１４を見失う確率を格段に減らすことができる。
【０１１５】
なおクロック周波数は装置固有のため、周波数の差、ひいては偏差加算パラメータｍ、ｎに類するデータを一旦、取得しておけば、同じ撮像装置１２と発光デバイス１４の組み合わせであれば、そのデータを用いて適切にクロックの補正を行える。この場合、バックグラウンドフェーズにおける偏差に係る補正処理を省略できる。
【０１１６】
例えば撮像装置１２と発光デバイス１４の固体識別情報の組み合わせと、偏差加算パラメータとを対応づけたテーブルを同期処理部１４０に準備しておく。そして実際に接続された撮像装置１２および発光デバイス１４の固体識別情報に基づき偏差加算パラメータを読み出すようにすれば、運用時に当該パラメータを導出する必要なく補正でき、同期状態を容易に維持できる。
【０１１７】
以上述べた本実施の形態によれば、撮影画像から発光マーカーの像を抽出することにより、発光マーカーを備えたデバイスの３次元での位置や姿勢を取得する技術において、撮像装置の露光時間と発光マーカーの発光時間を短縮する。これにより、撮影画像において発光マーカーの像の輝度を際立たせることができるため、周囲の照明や強めの反射光であっても発光マーカーと誤認する可能性が低くなる。またデバイスに動きがあっても発光マーカーの像のぶれを抑えられるため、位置と時刻の対応を明確にできる。さらにマーカーを発光させるための消費電力を抑えることができ、電池電源としても長期間の使用に対応できる。
【０１１８】
また、特有の発光パターンで点灯／消灯するマーカーを撮影した結果を解析することにより、個別の時間軸で動作している撮像装置の露光時間とデバイスの発光時間を、その中心時刻が合うように調整する。これにより、発光を短時間としてもその像を確実に撮影できる。また発光時刻を、画像が撮影された時刻として扱うことができるため、同じデバイス内部に備えられたＩＭＵセンサの計測時刻と撮影時刻を同じ時間軸で特定できる。結果として、画像解析により得られる情報とＩＭＵセンサの計測値から得られる情報を精度よく統合でき、最終的に得られる位置や姿勢の精度を向上させることができる。
【０１１９】
上述の調整にあたって、発光マーカーを全期間点灯させてデバイスを検出するフェーズ、露光時間程度の単位で点灯／消灯させ、発光時間を露光時間内に収めるフェーズ、および、最適な発光時間でその中間時刻を露光時間の中間時刻に合わせるフェーズを設ける。このようにフェーズを分けることにより、最後のフェーズはデバイスの位置や姿勢の取得処理と並行して実施できるため、本来の情報処理を妨げることなく定常的かつ長期的な監視および調整が可能となる。したがって、装置固有のクロックの偏差を長期的に評価し、適応的に時間ずれの蓄積を解消でき、補正処理の頻度を抑えても同期状態を長期間にわたり維持できる。
【０１２０】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１２１】
例えば本実施の形態では、ブロードフェーズの発光を点灯および消灯の２つの状態とし、像出現パターンを表す数値を０または１の２階調としたが、発光輝度を複数段階とすることにより、当該数値を、輝度に応じて３階調以上としてもよい。露光時間に対応するタイムグリッドを識別するには、像出現パターンを表す数列がタイムグリッドごとに完全に異なっている必要があるため、タイムグリッドの分割数が増えれば、それらを識別するために必要なフレーム数が増えることになる。数列を３階調以上で表すことにより、少ないフレーム数でタイムグリッドの識別が可能になり、ブロードフェーズを短期化できる。
【符号の説明】
【０１２２】
６  発光マーカー、  １０  情報処理装置、  １２  撮像装置、  １４  発光デバイス、  １６  表示装置、  ２２  ＣＰＵ、  ２４  ＧＰＵ、  ２６  メインメモリ、  １３０  デバイスデータ取得部、  １３２  撮影画像取得部、  １３４  位置姿勢取得部、  １３６  情報処理部、  １３８  出力データ生成部、  １４０  同期処理部、  １４２  制御情報送信部、  １４４  制御情報取得部、  １４６  制御部、  １４８  発光部、  １５０  計測部、  １５２  データ送信部、  １８６  ＩＭＵセンサ、  １８８  ＬＥＤ。
【図１】
2020088822.tif 000008
【図２】
2020088822.tif 000009
【図３】
2020088822.tif 000010
【図４】
2020088822.tif 000011
【図５】
2020088822.tif 000012
【図６】
2020088822.tif 000013
【図７】
2020088822.tif 000014
【図８】
2020088822.tif 000015
【図９】
2020088822.tif 000016
【図１０】
2020088822.tif 000017
【図１１】
2020088822.tif 000018
【図１２】
2020088822.tif 000019
【図１３】
2020088822.tif 000020
【図１４】
2020088822.tif 000021
【図１５】
2020088822.tif 000022
【図１６】
2020088822.tif 000023
【図１７】
2020088822.tif 000024
【図１８】
2020088822.tif 000025
【図１９】
2020088822.tif 000026
【図２０】
2020088822.tif 000027