(57)【要約】【課題】撮像部と慣性センサーとの空間関係を対応付けること。【解決手段】撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に、前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第１の姿勢の場合に撮像された撮像画像である第１の撮像画像と、前記慣性センサーが第２の姿勢の場合に撮像された撮像画像である第２の撮像画像と、を取得する手順と、前記第１の姿勢と前記第２の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、前記第１の撮像画像と、前記第２の撮像画像と、前記姿勢の差と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、を実行させるためのプログラム。【選択図】図６
2017224984.tif 000002
【特許請求の範囲】
【請求項１】
撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第１の姿勢の場合に撮像された撮像画像である第１の撮像画像と、前記慣性センサーが第２の姿勢の場合に撮像された撮像画像である第２の撮像画像と、を取得する手順と、
前記第１の姿勢と前記第２の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第１の撮像画像と、前記第２の撮像画像と、前記姿勢の相違と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行させるためのプログラム。
【請求項２】
前記撮像部は、前記慣性センサーに対して可動である
請求項１に記載のプログラム。
【請求項３】
前記装置は、画像を表示可能な表示部を有し、
前記撮像部は、前記表示部に対する相対位置が可動である
請求項１又は請求項２に記載のプログラム。
【請求項４】
撮像部と、慣性センサーと、処理部と、を備え、
前記処理部は、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第１の姿勢の場合に撮像された撮像画像である第１の撮像画像と、前記慣性センサーが第２の姿勢の場合に撮像された撮像画像である第２の撮像画像と、を取得する手順と、
前記第１の姿勢と前記第２の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第１の撮像画像と、前記第２の撮像画像と、前記姿勢の変化と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行する装置。
【請求項５】
撮像部と、慣性センサーと、処理部と、を備える装置の前記処理部が、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第１の姿勢の場合に撮像された撮像画像である第１の撮像画像と、前記慣性センサーが第２の姿勢の場合に撮像された撮像画像である第２の撮像画像と、を取得する手順と、
前記第１の姿勢と前記第２の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第１の撮像画像と、前記第２の撮像画像と、前記姿勢の変化と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行するキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置のキャリブレーションに関する。
【背景技術】
【０００２】
近年、現実空間の物体に対してコンピューターによる情報を付加する拡張現実（ＡＲ、Augmented Reality）と呼ばれる技術が注目されている。拡張現実を実現する手法の一つとして、外界を透過視認可能なシースルー型の表示装置がある。特許文献１は、このような表示装置として、頭部装着型表示装置（ヘッドマウントディスプレイ：ＨＭＤ（Head Mounted Display））を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２１３４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下では、シースルー型の表示装置の一例として、ＨＭＤを例として説明する。ＨＭＤは、ＡＲ機能を提供できるように、トラッキングカメラ（撮像部）を備える。そして、トラッキングカメラを介して、ＨＭＤ（またはトラッキングカメラ）に対する実オブジェクトの位置を検出し、追跡する（この方式による実オブジェクトの追跡を「光学トラッキング」と表記する）。ＨＭＤは、当該実オブジェクトの位置に追従するように、ＣＧ等の仮想オブジェクトを表示する。このときユーザーは、実オブジェクトの位置に、仮想オブジェクトの位置が対応づけられるように、仮想オブジェクトを視認する。
【０００５】
トラッキングカメラのビュー（画角）における実オブジェクトの位置と姿勢は、実オブジェクトの動きだけでなく、ユーザーの頭部の動き（特に回転）によっても変化する。そして、頭部の回転の角速度が速く、および／または角度が大きい場合には、光学トラッキングだけでは、実オブジェクトの位置さらには姿勢の変化が、仮想オブジェクトの表示に反映されるまでの時間差（レイテンシー）が目立つようになる場合がある。
【０００６】
技術的に、トラッキングカメラの時間分解能（画像のフレームレート）より、慣性センサーの時間分解能を高くしやすい。そこで、上記レイテンシー対策として、ＨＭＤが、トラッキングカメラだけでなく、慣性センサーを搭載し、トラッキングカメラと慣性センサーとによって、ＨＭＤに対する実オブジェクトの位置・姿勢（実オブジェクトとＨＭＤとの間の空間的位置関係）を推定することが効果的であると考えられる。
【０００７】
上記場合のように、トラッキングカメラと慣性センサーとが協働して「トラッカー（追跡装置）」として機能する場合には、トラッキングカメラの座標系と慣性センサーの座標系とが、対応付けられている（較正されている）ことが望まれる。また、上記「トラッカー」として利用される場合以外でも、たとえば、ユーザーの眼（網膜）を基準にしてトラッキングカメラと画像表示部とが較正される場合に、トラッキングカメラの座標系と慣性センサーの座標系とが較正されていることは、有用である。そして、較正方法は簡易で、且つ較正結果が高精度であることが望ましい。
【０００８】
課題の説明を補足する。ＨＭＤにおいてＩＭＵと光学トラッカーを融合するには、ＩＭＵ−カメラキャリブレーションが必要である。加速度センサーによって計測される重力ベクトル、および慣性―ビジュアル系の回転アライメントを推定する垂直パターンを利用したＩＭＵ―カメラキャリブレーション方法が提案されている。このアプローチは、静的であり、動的な動きを必要としないという利点を有する。しかしながら、システムセットアップは、むしろやっかいで、エラーを生じがちである。それは、垂直チェッカー模様を有する平面ターゲットに依存する。このセットアップに必要な要件は、平均的なユーザーにとっては負荷が大きい。ユーザーは、特別な表面またはそのような垂直表面が存在する特別な位置を確保する必要がある。しかも、異なる時刻に収集されたデータには、再現可能な精度を達成する保証がない。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するためのものであり、以下の形態として実現できる。
【００１０】
本発明の一形態は、撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に；前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第１の姿勢の場合に撮像された撮像画像である第１の撮像画像と、前記慣性センサーが第２の姿勢の場合に撮像された撮像画像である第２の撮像画像と、を取得する手順と；前記第１の姿勢と前記第２の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と；前記第１の撮像画像と、前記第２の撮像画像と、前記姿勢の相違と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と；を実行させるためのプログラムである。この形態によれば、撮像部の姿勢の変更によって、撮像部と慣性センサーとの間の空間関係が導出できる。さらに、静的な位置における実物マーカーを撮像すればキャリブレーションが実行できるため、動的な実物マーカーを撮像する場合と比較して、時間の同期等の問題がなく、精度の高いキャリブレーションを実行できる。
【００１１】
上記形態において、前記撮像部は、前記慣性センサーに対して可動であってもよい。
【００１２】
上記形態において、前記装置は、画像を表示可能な表示部を有し；前記撮像部は、前記表示部に対する相対位置が可動であってもよい。
【００１３】
本発明は、上記以外の種々の形態で実現できる。例えば、プログラムを記憶した一時的でない記憶媒体形態で実現できる。或いは、上記の手順によるキャリブレーション方法や、この方法を実行する装置（例えば、ＨＭＤ、撮像装置、ロボット）等の形態で実現できる。
【図面の簡単な説明】
【００１４】
【図１】ＨＭＤの概略構成図。
【図２】実物マーカーを示す概略図。
【図３】実物マーカーの詳細図。
【図４】ＨＭＤの構成を機能的に示すブロック図。
【図５】ＩＭＵにおける融合部を示すブロック図。
【図６】カメラと実物マーカーとの位置関係を表す概略図。
【図７】キャリブレーション処理を示すフローチャート。
【図８】データ収集処理を示すフローチャート。
【図９】表示画像を示す図。
【図１０】半球を示す図。
【図１１】算出処理を示すフローチャート（実施形態２）。
【発明を実施するための形態】
【００１５】
図１は、ＨＭＤ１００の概略構成を示す。ＨＭＤ１００は、頭部装着型表示装置（ヘッドマウントディスプレイ：Head Mounted Display）である。ＨＭＤ１００は、ユーザーが虚像を視認すると同時に外景も直接視認可能な光学透過型のヘッドマウントディスプレイである。ＨＭＤ１００は、撮像部としてのカメラ６０（後述）を備えるので、撮像装置でもある。
【００１６】
ＨＭＤ１００は、ユーザーの頭部に装着可能な装着帯９０と、画像を表示する表示部２０と、表示部２０を制御する制御部（コントローラー）１０と、を備えている。表示部２０は、ユーザーの頭部に装着された状態においてユーザーに虚像を視認させる。
【００１７】
装着帯９０は、樹脂製の装着基部９１と、装着基部９１に連結される布製のベルト部９２と、カメラ６０と、ＩＭＵ７１と、を備える。装着基部９１は、人の前頭部の形に合った湾曲した形状を有する。ベルト部９２は、ユーザーの頭部の周りに装着されるためのベルトである。
【００１８】
カメラ６０は、外景を撮像可能で、装着基部９１の中心部分に配置されている。換言すると、カメラ６０は、装着帯９０がユーザーの頭部に装着された状態で、ユーザーの額の中央に対応する位置に配置されている。そのため、カメラ６０は、ユーザーが装着帯９０を頭部に装着した状態において、ユーザーの視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。
【００１９】
カメラ６０は、装着基部９１に対して回転するカメラ基部６１と、カメラ基部６１に対して相対位置が固定されたレンズ部６２と、を有する。カメラ基部６１は、装着帯９０がユーザーの頭部に装着された際に、ユーザーの中心軸を含む面に含まれる軸の所定の範囲である矢印ＣＳ１に沿って回転可能に配置されている。そのため、カメラ６０の光軸であるレンズ部６２の光軸は矢印ＣＳ１の範囲で向きを変更可能である。レンズ部６２は、光軸を中心としたズームによって変化する範囲を撮像する。
【００２０】
ＩＭＵ７１（Inertial Measurement Unit）は、加速度を検出する慣性センサーである。ＩＭＵ７１は、加速度に加えて、角速度と、地磁気とを検出できる。ＩＭＵ７１は、装着基部９１に内蔵されている。そのため、ＩＭＵ７１は、装着帯９０及びカメラ基部６１の加速度と角速度と地磁気とを検出する。
【００２１】
ＩＭＵ７１は装着基部９１との相対位置が固定されているので、カメラ６０はＩＭＵ７１に対して可動である。さらに、表示部２０は、装着基部９１との相対位置が固定されているので、カメラ６０は表示部２０に対する相対位置が可動である。
【００２２】
表示部２０は、装着帯９０の装着基部９１に連結される表示部であり、本実施形態では眼鏡形状を有している。表示部２０は、右保持部２１と、右表示駆動部２２と、左保持部２３と、左表示駆動部２４と、右光学像表示部２６と、左光学像表示部２８と、を含んでいる。右光学像表示部２６及び左光学像表示部２８は、それぞれ、ユーザーが表示部２０を装着した際にユーザーの右および左の眼前に位置する。右光学像表示部２６の一端および左光学像表示部２８の一端は、ユーザーが表示部２０を装着した際のユーザーの眉間に対応する位置で、互いに接続されている。
【００２３】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＲと装着基部９１の右側の連結部９３との間を結ぶ。同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＬと装着基部９１の左側の連結部（図示せず）との間を結ぶ。右保持部２１及び左保持部２３が左右の連結部９３によって装着基部９１に連結されることで、右光学像表示部２６と左光学像表示部２８をユーザーの眼前に位置させる。なお、各連結部９３は、右保持部２１及び左保持部２３を回転可能に、且つ任意の回転位置に固定可能に連結する。連結部９３の詳しい機構は周知の構成であることから、詳しい説明は省略する。この結果、表示部２０は、装着基部９１に対して回転可能に設けられることになる。
【００２４】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。右表示駆動部２２及び左表示駆動部２４は、ユーザーが表示部２０を装着した際のユーザーの頭部に対向する側に配置されている。
【００２５】
表示駆動部２２，２４は、図２で後述する液晶ディスプレイ２４１，２４２（Liquid Crystal Display、以下「ＬＣＤ２４１，２４２」とも呼ぶ）や投写光学系２５１，２５２等を含む。表示駆動部２２，２４の構成の詳細な説明は後述する。
【００２６】
光学像表示部２６，２８は、後述する導光板２６１，２６２（図２参照）と調光板とを含んでいる。導光板２６１，２６２は、光透過性の樹脂材料等によって形成され、表示駆動部２２，２４から出力された画像光をユーザーの眼に導く。調光板は、薄板状の光学素子であり、ユーザーの眼の側とは反対の側である表示部２０の表側を覆うように配置されている。調光板の光透過率を調整することによって、ユーザーの眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
【００２７】
表示部２０は、さらに、表示部２０を制御部１０に接続するための接続部４０を有している。接続部４０は、制御部１０に接続される本体コード４８と、右コード４２と、左コード４４と、連結部材４６と、を含んでいる。右コード４２及び左コード４４は、本体コード４８が２本に分岐したコードである。表示部２０及び制御部１０は、接続部４０を介して各種信号の伝送を実行する。右コード４２と、左コード４４と、本体コード４８とには、例えば、金属ケーブルや光ファイバーを採用できる。
【００２８】
制御部１０は、ＨＭＤ１００を制御するための装置である。制御部１０は、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部１３５と、撮像されることでキャリブレーションに用いられる実物マーカーＭＫと、を有する。操作部１３５は、制御部１０の表面に配置されている。実物マーカーＭＫは、制御部１０裏面に配置されている。そのため、図１では、実物マーカーＭＫが示されていない。実物マーカーＭＫの詳細については後述する。
【００２９】
図２は、実物マーカーＭＫを示す概略図である。図３は、実物マーカーＭＫの詳細図である。図２に示すように、制御部１０の裏面には実物マーカーＭＫが配置されている。図３に示すように、実物マーカーＭＫは、４つの頂点Ｐ０，Ｐ１，Ｐ２，Ｐ３を直線で結んだ正方形の中に、１０個の円が形成された２次元のマーカーである。後述する変換パラメーター算出処理では、白色の円の中心の座標値が用いられることで、カメラ６０によって撮像された実物マーカーＭＫと、マーカー画像ＩＭＧ（後述）との重複の度合いが判定される。
【００３０】
図４は、ＨＭＤ１００の構成を機能的に示すブロック図である。図４に示すように、制御部１０は、ＲＯＭ１２１と、ＲＡＭ１２２と、電源１３０と、操作部１３５と、識別対象記憶部１３９と、ＣＰＵ１４０と、インターフェース１８０と、送信部５１（Ｔｘ５１）および送信部５２（Ｔｘ５２）と、を有している。
【００３１】
電源１３０は、ＨＭＤ１００の各部に給電する。ＲＯＭ１２１には、種々のプログラムが格納されている。ＣＰＵ１４０は、ＲＯＭ１２１に格納された各種プログラムを、ＲＡＭ１２２に展開することで、各種プログラムを実行する。
【００３２】
ＣＰＵ１４０は、ＲＯＭ１２１に格納されているプログラムを、ＲＡＭ１２２に展開することにより、オペレーティングシステム１５０（ＯＳ１５０）、表示制御部１９０、音声処理部１７０、画像処理部１６０、マーカー識別部１６５及び処理部１６７として機能する。
【００３３】
表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４を制御する制御信号を生成する。表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４のそれぞれによる画像光の生成および射出を制御する。表示制御部１９０は、右ＬＣＤ制御部２１１と左ＬＣＤ制御部２１２とに対する制御信号のそれぞれを、送信部５１及び５２を介して送信する。表示制御部１９０は、右バックライト制御部２０１と左バックライト制御部２０２とに対する制御信号のそれぞれを送信する。
【００３４】
画像処理部１６０は、コンテンツに含まれる画像信号を取得し、送信部５１，５２を介して、取得した画像信号を表示部２０の受信部５３，５４へと送信する。音声処理部１７０は、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材４６に接続された右イヤホン３２内のスピーカー（図示しない）および左イヤホン３４内のスピーカー（図示しない）に対して供給する。
【００３５】
マーカー識別部１６５は、カメラ６０によって得られた撮像画像に対して、所定の階調値を閾値として２値化を実行する。マーカー識別部１６５は、２値化した画像の中から、ＲＯＭ１２１に記憶されたマーカー画像ＩＭＧと同じ実物マーカーＭＫを抽出する。本実施形態では、マーカー識別部１６５は、撮像画像に対して、初めに、予め設定された初期閾値で２値化を実行する。マーカー識別部１６５は、２値化した画像に対して、マーカー画像ＩＭＧの特徴点と同じと判定する画像を撮像画像の中から抽出する。
【００３６】
マーカー画像ＩＭＧの特徴点は、正方形の４個の頂点である頂点Ｐ０，Ｐ１，Ｐ２，Ｐ３及び正方形の中に含まれる白色の９個の円である。マーカー識別部１６５は、９個の円の特徴点として、対向する２つの頂点を結んだ対角線上に、マーカー画像ＩＭＧと同じ位置関係で円が並んでいるか否かの判定をすることで、撮像画像の中からマーカー画像ＩＭＧと同じと判定する実物マーカーＭＫを抽出する。例えば、マーカー識別部１６５は、図３において、頂点Ｐ０と頂点Ｐ２とを結んだ直線上、および／または頂点Ｐ１と頂点Ｐ３を結んだ直線上に、２値化された白色の円が黒色に対して５個並んでいるか否か、或いは並んでいる白色の円の大きさや複数の円に挟まれる黒色の領域の大きさなどで判定する。
【００３７】
マーカー識別部１６５は、初期閾値を用いた２値化で実物マーカーＭＫを抽出できない場合には、予め設定された階調値である加算閾値を初期閾値に加えた新たな閾値として、撮像画像に対して２値化を実行し、実物マーカーＭＫを抽出する。このように、マーカー識別部１６５は、いくつかの階調値を閾値として２値化することで、撮像画像の中から実物マーカーＭＫを抽出する。なお、マーカー識別部１６５は、複数の閾値を用いても撮像範囲から実物マーカーＭＫを抽出できない場合には、撮像範囲に実物マーカーＭＫが含まれないと判定する。
【００３８】
処理部１６７は、マーカー識別部１６５によって実物マーカーＭＫが抽出された場合に、例えばホモグラフィー行列により、マーカー姿勢を算出する。マーカー姿勢とは、カメラ６０と実物マーカーＭＫとの空間的関係（回転関係）を算出する。後述するように、処理部１６７は、算出した上記空間的関係と、ＩＭＵ７１によって検出された加速度等の検出値と、を用いて、カメラに固定された座標系からＩＭＵ７１に固定された座標系へと変換するための回転行列を算出する。
【００３９】
インターフェース１８０は、制御部１０に対して、コンテンツの供給元となる種々の外部機器ＯＡを接続するための入出力インターフェースである。外部機器ＯＡとしては、例えば、ＡＲシナリオを記憶している記憶装置、パーソナルコンピューター（ＰＣ）や携帯電話端末、ゲーム端末等がある。インターフェース１８０としては、例えば、ＵＳＢインターフェース、マイクロＵＳＢインターフェース、メモリーカード用インターフェース等を用いることができる。
【００４０】
図４に示すように、表示部２０は、右表示駆動部２２と、左表示駆動部２４と、右光学像表示部２６としての右導光板２６１と、左光学像表示部２８としての左導光板２６２と、を備えている。
【００４１】
右表示駆動部２２は、受信部５３（Ｒｘ５３）と、右バックライト制御部２０１及び右バックライト２２１と、右ＬＣＤ制御部２１１及び右ＬＣＤ２４１と、右投写光学系２５１と、を含んでいる。右バックライト制御部２０１及び右バックライト２２１は、光源として機能する。右ＬＣＤ制御部２１１及び右ＬＣＤ２４１は、表示素子として機能する。なお、他の実施形態では、右表示駆動部２２は、上記構成に代えて、有機ＥＬ表示素子などの自発光型表示素子を備えてもよいし、レーザーダイオードからの光ビームを網膜上でスキャンするスキャン型の表示素子を備えてもよい。左表示駆動部２４についても、同様である。
【００４２】
受信部５３は、制御部１０と表示部２０との間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部２０１は、入力された制御信号に基づいて、右バックライト２２１を駆動する。右バックライト２２１は、例えば、ＬＥＤやエレクトロルミネッセンス（ＥＬ）等の発光体である。右ＬＣＤ制御部２１１は、画像処理部１６０及び表示制御部１９０から送信された制御信号に基づいて、右ＬＣＤ２４１を駆動する。右ＬＣＤ２４１は、複数の画素をマトリクス状に配置した透過型液晶パネルである。
【００４３】
右投写光学系２５１は、右ＬＣＤ２４１から射出された画像光を平行状態の光束にするコリメートレンズによって構成される。右光学像表示部２６としての右導光板２６１は、右投写光学系２５１から出力された画像光を、所定の光路に沿って反射させつつユーザーの右眼ＲＥに導く。なお、左表示駆動部２４は、右表示駆動部２２と同様の構成を有し、ユーザーの左眼ＬＥに対応するため、説明を省略する。
【００４４】
ＩＭＵ７１及びカメラ６０を用いたキャリブレーションは、慣性センサーであるＩＭＵ７１の性能によって精度が異なる。精度が高くない安価なＩＭＵが用いられると、キャリブレーションには、大きな誤差やドリフトが発生することがある。
【００４５】
本実施形態では、ＩＭＵ７１を用いたマルチポジション法を用いたバッチ・ソリューション・ベース・アルゴリズムによってキャリブレーションを実行する。本実施形態では、ＩＭＵ７１とカメラ６０との間の並進関係については、製造時の設計データを用いる。マルチポジション法は、キャリブレーションを実行するにあたり、下記（A）−（D）のメリットを有する。
【００４６】
（A）ＩＭＵ７１の検出と、カメラ６０による撮像とが静的な位置で実行されるため、時間の同期（シンクロ）が問題にならない。
【００４７】
（B）複数の位置における検出値や撮像画像を用いることで、フィルタリングにより、ＩＭＵ７１（に含まれる各センサー）及びカメラ６０のノイズを少なくできる。
【００４８】
（C）ＩＭＵ７１におけるジャイロセンサー、加速度センサー、磁気センサーの出力が融合されてＩＭＵ７１の姿勢（以下、ＩＭＵ配向）が求められることから、各センサーのドリフトが修正され、ＩＭＵ配向が高精度である。
【００４９】
（D）制御部１０に配置された実物マーカーＭＫを用いることで、複雑なキャリブレーションを実行するための装置やＨＭＤ１００以外の他の装置が不要になる。
【００５０】
図７と共に後述するキャリブレーション処理に先立ち、ＩＭＵ７１とカメラ６０とのそれぞれに対して、別々のキャリブレーション（以下、独立キャリブレーション）が実行される。独立キャリブレーションの具体的な方法については、一般的に広く知られている周知技術を用いればよく、本明細書では記載を省略する。
【００５１】
独立キャリブレーションでは、ＩＭＵ７１が較正される。具体的には、ＩＭＵ７１に含まれる３軸の加速度センサー（Ａｘ，Ａｙ，Ａｚ）と、３軸のジャイロセンサー（Ｇｘ，Ｇｙ，Ｇｚ）と、３軸の地磁気センサー（Ｍｘ，Ｍｙ，Ｍｚ）とに対して、ゲイン／スケールと、静的なバイアス／オフセットと、３軸間のスキューと、についてキャリブレーションが実行される。
【００５２】
これらのキャリブレーションが実行されると、ＩＭＵ７１は、加速度、角速度、地磁気のそれぞれについての出力値として、加速度と角速度と地磁気とを出力する。これらの出力値は、ゲイン、静的なバイアス／オフセット、および３軸間のミスアライメントを修正した値である。これらのキャリブレーションは、本実施形態では、ＨＭＤ１００の製造時において製造工場などで実施される。
【００５３】
独立キャリブレーションで実行されるカメラ６０のキャリブレーションでは、カメラ６０における焦点距離、スキュー、主点位置、歪みを含むカメラ６０の内部パラメーターがキャリブレーションされる。カメラ６０のキャリブレーションには、周知技術を適用できる。
【００５４】
ＩＭＵ７１に含まれる各センサーのキャリブレーションが実行された後においては、ＩＭＵ７１における加速度、角速度、地磁気のそれぞれのセンサーの検出値（計測された出力）を融合して、精度の高いＩＭＵ配向を得ることができる。
【００５５】
図５は、ＩＭＵ７１における融合部３００を示す。融合部３００は、ＩＭＵ７１の外部にあってもよい。融合部３００は、拡張カルマンフィルター（ＥＫＦ）に基づいて、内部の各センサーの計測（値または信号）を融合する。本実施形態では、ＩＭＵ配向は、４元数により表記される。４元数による表記は、回転行列へ変換可能である。拡張カルマンフィルターは、以下のように表される状態ベクトルに適用される。
X=[qs2w, bgyro]・・・（a）
【００５６】
制御入力ベクトルは、ジャイロセンサーの入力によって決定される。
u=[ws]・・・（b）
インターバルΔｔの間のＫ−１からＫへ状態遷移モデルは、次式のように表される。
xk=f(xk-1, uk-1, wk-1)・・・（c）
ここで、wk-1は、ノイズベクトルである。
【００５７】
図５に示すように、融合部３００は、測定部３１０と、予測部３２０と、更新部３３０と、重力キャンセル部３４０と、回転変換部３５０と、遅延器３６０とを含む。
【００５８】
測定部３１０は、加速度センサーから出力された加速度と、磁気センサーから出力された地磁気の計測ask,mskとに基づき機能する。測定部３１０は、ローパスフィルター３１１，３１２を含む。ローパスフィルター３１１は、計測された加速度askにおけるノイズを低減する。ローパスフィルター３１２は、計測された地磁気mskにおけるノイズを低減する。
【００５９】
予測部３２０は、所定時間期間に亘って、検出された角速度ωsk-1を積分することによって、角度変化の量（または姿勢）を推定し、予測された角度変化（または姿勢）を、更新部３３０へ出力する。更新部３３０は、予測された角度変化（または姿勢）を用いて、計測されたものzk（加速度および地磁気）を、フィルターすなわち融合する。そうすると、融合されたＩＭＵ配向qs2wkが更新されて出力され、そして、融合されたＩＭＵ配向qs2wkが、次のサイクルのために、遅延器３６０を介して、予測部３２０へフィードバックされる。融合されたＩＭＵ配向qs2wkが計算されると、重力キャンセル部３４０による重力のキャンセルよって、ＩＭＵ７１の動的または線形な加速度awkが計算される。
【００６０】
回転変換部３５０は、ＩＭＵ配向qs2wkを受け取り、回転行列Rs2wkに変換し出力する。加速度センサーからの計測された加速度askは、重力キャンセル部３４０に入力される。重力キャンセル部３４０は、回転行列Rs2wkで表されたＩＭＵ配向を用いて地球の重力加速度を打ち消し、重力加速度の成分を含まないＩＭＵ７１の線形加速度awkを計算して出力する。
【００６１】
上述した拡張カルマンフィルターに基づく検出値の融合のための調整は、ＨＭＤ１００を製造する工場で実施され得る。カメラ６０及びＩＭＵ７１のキャリブレーションも、ＨＭＤ１００を製造する工場で実施され得る。
【００６２】
一方で、ＣＰＵ１４０は、キャリブレーション処理（図７と共に後述）を実行する。キャリブレーション処理は、ＨＭＤ１００のオフラインキャリブレーションを実行するための処理である。オフラインキャリブレーションでは、カメラ６０に固定された座標系からＩＭＵ７１に固定された座標系への回転行列Rcam2imuが導出される。回転行列Rcam2imuは、カメラ６０とＩＭＵ７１との間の空間関係を示す。添え字のcam2imuは、camera to imuを意味する。回転行列Rcam2imuの導出は、本実施形態の目的の一つである。次に、回転行列Rcam2imuについて説明する。
【００６３】
図６は、実物マーカーＭＫが撮像されている場合のカメラ６０と実物マーカーＭＫとの位置関係を表す概略図である。図６には、表示部２０と、装着帯９０の一部である装着基部９１と、カメラ６０と、装着基部９１に内蔵されて固定されているＩＭＵ７１と、制御部１０と、が示されている。
【００６４】
図６には、カメラ座標系（X3-Y3-Z3）からＩＭＵ座標系（X1-Y1-Z1）への回転行列Rcam2imuと、カメラ座標系からマーカー座標系（X2-Y2-Z2）への回転行列Rcam2markerと、が示されている。ここで、制御部１０が地球に対して移動しないという条件を満たす場合、Rcam2markerは、Rcam2worldに対して固定されていることになる。Rcam2worldは、カメラ座標系からワールド座標系（絶対座標系：X-Y-Z）への回転行列である。ワールド座標系は、地球に対して固定された座標系である。
【００６５】
カメラ６０とＩＭＵ７１とが、或る静的な位置Aから他の静的な位置Bへ回転する場合、回転角の変化は次式を満足する。静的な位置とは、ワールド座標系によって定義される位置である。次式のRcam2imuは、先述したようにカメラ６０からＩＭＵ７１への回転行列である。
RcamA2B=Rcam2imu-1RimuA2BRcam2imu・・・(d)
【００６６】
RcamA2Bは、位置Aから位置Bへカメラ６０が回転した場合に変化させられたカメラ６０の回転角である。つまり、RcamA2Bは、位置Aにおけるカメラ６０の姿勢である第１の姿勢から、位置Bにおけるカメラ６０の姿勢である第２の姿勢への回転行列である。
【００６７】
RimuA2Bは、位置Aから位置BへＩＩＭＵ７１が回転した場合に変化させられたＩＭＵ７１の回転角である。つまり、RimuA2Bは、位置AにおけるＩＭＵ７１の姿勢から、位置BにおけるＩＭＵ７１の姿勢への回転行列である。さらに言い換えると、RimuA2Bは、位置AにおけるＩＭＵ７１の姿勢である第１の姿勢と、位置BにおけるＩＭＵ７１の姿勢である第２の姿勢との相違を示す。
【００６８】
式(d)の導出過程を以下に示す。カメラ６０およびＩＭＵ７１が位置Aから位置Bへ変位する場合のカメラ回転角の変化は、次式によって計算される。
RcamA2B=Rcam2world-1(B)Rcam2world(A)・・・(e)
Rcam2world(A)は、位置Aにおける撮像画像である第１の撮像画像から得られ得る。Rcam2world(B)は、位置Bにおける撮像画像である第２の撮像画像から得られ得る。これらの算出には、先述したようにホモグラフィー行列を用いる。ホモグラフィー行列を用いれば、カメラ６０に対する平面マーカーの姿勢を導出できる。実物マーカーＭＫは、平面マーカーである。
【００６９】
同様に、ＩＭＵ回転角は、次式によって計算される。
RimuA2B=Rimu2world-1(B)Rimu2world(A)・・・(f)
Rimu2worldは、ＩＭＵ配向qs2wkであり、且つ、ＩＭＵ座標系からワールド座標系への回転行列と捉えることもできる。Rimu2world(A)は、位置AにおけるＩＭＵ配向qs2wkから計算され得る。Rimu2world(B)は、位置BにおけるＩＭＵ配向qs2wkから計算され得る。
【００７０】
ところで、次の２つの式が成り立つ。
Rcam2world(A)=Rimu2world(A)Rcam2imu・・・(g)
Rcam2world(B)=Rimu2world(B)Rcam2imu・・・(h)
【００７１】
式(h)を式(e)に導入すると、次式が得られる。
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rcam2world(A)・・・(i)
【００７２】
式(g)を式(i)に導入すると、次式が得られる。
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rimu2world(A)Rcam2imu
=Rcam2imu-1Rimu2world-1(B)Rimu2world(A)Rcam2imu・・・(j)
式(f)を式(j)に導入すると、式(d)が得られる。
【００７３】
式(d)を利用することで、Rcam2imuを求めることができる。本実施形態における具体的なキャリブレーション方法は、Rcam2imuを繰り返し高精度化する非線形最適化に基づく。繰り返し高精度化するために、まずはRcam2imuの初期推定値が必要である。初期推定値は、設計または使用からの粗い推定値でよい。例えば、Rcam2imuの初期推定値として次式を用いることができる。
【００７４】
【数１】
2017224984.tif 000003
【００７５】
Rcam2worldはマーカートラッキングアルゴリズムから求められる。そして、RcamA2Bは、式(e)で表される。そこで、マーカートラッキングアルゴリズムから求められたRcam2worldを用いて表されるRcamA2Bを、RcamA2BObsと表記する。つまり、RcamA2BObsは、観測に基づくものであり、次式によって表される。
RcamA2BObs=Rcam2world-1(B)Rcam2world(A)・・・(k)
【００７６】
他方、式(d)から計算されるRcamA2Bを、RcamA2BPredと表記する。つまり、RcamA2BPredは、予測値であり、次式によって表される。
RcamA2BPred=Rcam2imu-1RimuA2BRcam2imu・・・(l)
【００７７】
RcamA2BObsとRcamA2BPredとの誤差が小さければ、RcamA2BPredの元である式(d)の精度が高いことになる。式(d)の精度が高いことは、Rcam2imuの精度が高いことを意味する。そこで、誤差計測式として、観測された回転と予測された回転との間の角度を求める次式を定義する。
e=acos((trace(RcamA2BObs*(RcamA2BPred)′)-1)*0.5)・・・(m)
上記eの値が小さくなるような回転行列Rcam2imuを求めることができれば、その回転行列Rcam2imuは、カメラ６０とＩＭＵ７１との空間関係を適切に記述していることになる。
【００７８】
式(m)に含まれるRcamA2BObs及びRcamA2BPredを取得するためには、測定データ群を取得することが必要である。１つの測定データ群は、ほぼ同時刻に取得された撮像画像と、ＩＭＵ配向qs2wkの元になるデータ（地磁気msk，加速度ask，角速度ωsk）とによって構成される。以下、測定データ群の取得を含め、カメラ６０とＩＭＵ７１との間の空間関係を表す回転行列Rcam2imuの導出手順を具体的に説明する。
【００７９】
図７は、キャリブレーション処理を示すフローチャートである。この処理は、回転行列Rcam2imuを求めることを目的としている。処理部１６７つまりＣＰＵ１４０は、ユーザーからの指示を契機として、ＲＯＭ１２１に格納されたプログラムを実行することで、キャリブレーション処理を実現する。キャリブレーション処理は、データ収集処理（Ｓ６００）と、算出処理（Ｓ７００）とから構成される。
【００８０】
データ収集処理の概要を説明する。キャリブレーションの精度を確保するために、データは、異なるビュー角から収集され、かつ、有効作動範囲の全範囲をカバーすることが望ましい。全作動範囲は、１０（又はそれを超える）ビューに分割される。作動範囲は半球である。キャリブレーションの期間中、収集されたデータが入るビューは、ハイライトされる。ユーザーは、容易にどのビューがカバーされ、どのビューがカバーされていないかを理解することができるから、ユーザーはどこでデータを収集すべきかを把握することができる。最低限のデータが収集された場合には、ユーザーにはその旨が通知される。本実施形態では、ビューは、カメラ６０に対する実物マーカーＭＫの姿勢（カメラ６０の座標系で表わされた実物マーカーＭＫの姿勢）によって表されている。
【００８１】
図８は、データ収集処理を示すフローチャートである。まず、測定データ群を取得すべきビューに向けて、ゆっくり移動を続けることをユーザーに催促する（Ｓ６１０）。この結果、ユーザーは、マークされていないビューに向けて、ゆっくり移動を続ける。この催促について、図９を用いて説明する。
【００８２】
図９は、表示画像ＩＭ４を示す。表示画像ＩＭ４は、Ｓ６１０を実現するための画像である。測定データ群の取得のためには、カメラ６０によって実物マーカーＭＫを撮像することが必要である。ユーザーは、測定データ群の取得中に実物マーカーＭＫを動かさないように、予め指示されている。
【００８３】
表示画像ＩＭ４は、複数のドットＤＴを含む。複数のドットＤＴは、半球画像ＩＭhb1を構成する。図１０は、半球ＩＭhb2を示す。複数のドットＤＴはそれぞれ、半球ＩＭhb2上に配置されている。
【００８４】
複数のドットＤＴそれぞれは、３つの色の何れかに着色される。青色の青ドットＤＴｂは、まだ測定データ群が得られていないビューを表す。緑色の緑ドットＤＴｇは、既に測定データ群が得られたビューを表す。黄色の黄ドットＤＴｙは、さらに多くの測定データ群を取得すべきビューを表している。
【００８５】
ユーザーは、青ドットＤＴｂや黄ドットＤＴｙが１つでも表示されていると、これらのドットＤＴが示すビューに向かって移動するように、予め指示されている。つまり、青ドットＤＴｂや黄ドットＤＴｙを表示することは、測定データ群を取得すべきビューに向けて、ゆっくり移動を続けることをユーザーに催促することになる。
【００８６】
全てのドットＤＴが緑ドットＤＴｇになると、所定の空間関係の全てに亘って、測定データ群が取得し終わったことをユーザーに伝えることができる。
【００８７】
Ｓ６１０が実行されている間、測定データ群の取得が済んでいないビューにおいて、測定データ群を取得する（Ｓ６２０）。つまり、Ｓ６２０の処理は、実物マーカーＭＫの撮像と、ＩＭＵ配向qs2wkの元になるデータ（地磁気msk，加速度ask，角速度ωsk）との検出を含む。そして、取得した測定データ群に含まれる撮像画像からマーカー姿勢を検出する（Ｓ６３０）。続いて、取得した測定データ群からＩＭＵ配向qs2wkを取得する（Ｓ６３５）。
【００８８】
次に、質計測関数Q(data)の算出する（Ｓ６４０）。測定データ群の質は、質計測関数Q(data)によって評価される。Q(data)は、ＩＭＵ配向qs2wkとマーカー姿勢の双方から決定される。つまりQ(data)はＩＭＵ配向qs2wkとマーカー姿勢との関数であり、言い換えると測定データ群の関数である。具体的には、質計測関数Q(data)は、或る１つの測定データ群と、他の１つの測定データ群とが信頼できるか否かを判定するための値を出力する。以下、或る１つの測定データと、他の１つの測定データ群とをまとめて、データ対ともいう。
【００８９】
ＩＭＵ配向qs2wkにノイズが多い場合（例えば、スパイク、またはランダム値が検出される場合）には、データの質は、貧弱である。ユーザーの動きが速くなれば、ＩＭＵ配向qs2wkの質は悪化する。いくつかのビューにおいて、ジッター（ジッタリング）や、撮像画像におけるモーションブラーがある場合には、撮像画像の質が低下し、取得されるマーカー姿勢は信頼できないものとなる。
【００９０】
ＩＭＵ配向qs2wkが貧弱である場合、またはマーカー姿勢が信頼できないものである場合、Q(data)の値は小さい。データ対を構成する２つの測定データ群同士の比較において、角度差が十分には大きくない場合、または時間差がとても大きい場合には、このデータ対は信頼できない。
【００９１】
例えば、Q(data)は次式のように定義され得る。
Q(data)=a*Stdev(IMUdata)/CIMU
+b*AngleMarkerPose(data)/CAngleMarkerPose
+c*AngleIMU(data)/CAngleIMU・・・(n)
【００９２】
a,b,cは重み係数である。Stdev(IMUdata)はＩＭＵ配向qs2wkの標準偏差であり、ＩＭＵ配向qs2wkの安定性を計測するものである。AngleMarkerPose(data)は、２つのマーカー姿勢の間の角度である。この角度は、データ対に含まれる２つの撮像画像から取得される。AngleIMU(data)は、２つのＩＭＵ配向qs2wkの間の角度である。CIMU、CAngleMarkerPose及びCAngleIMUは、規格化定数である。
【００９３】
Ｓ６４０の後、Q(data)が閾値Qthよりも大きいかを判定する（Ｓ６５０）。Q(data)が閾値Qth以下の場合（Ｓ６５０，ＮＯ）、Ｓ６２０に戻る。この場合、取得されたデータ対は、捨てられることになる。
【００９４】
Q(data)が閾値Qthよりも大きい場合（Ｓ６５０，ＹＥＳ）、Q(data)は良好であるので、対応する視野にデータを挿入する（Ｓ６６０）。つまり、マーカー姿勢とＩＭＵ配向qs2wkとを対応するビューに対応付けて記憶する。そして、図１０と共に説明したようにドットの色を変更する（Ｓ６７０）。つまり、収集されたデータのビュー範囲を示す半球部分をマークする。
【００９５】
続いて、全ビューについて測定が完了したかを判定する（Ｓ６８０）。全ビューについて測定が完了していない場合（Ｓ６８０，ＮＯ）、Ｓ６１０に戻る。全ビューについて測定が完了した場合（Ｓ６８０，ＹＥＳ）、データ収集処理を終え、算出処理を実行する（Ｓ７００）。
【００９６】
本実施形態における算出処理は、複数の演算から構成されるが、フローチャートを用いずに説明する。本実施形態における算出処理は、非線形のコスト関数を定義して、定義したコスト関数を最小化することで、キャリブレーションの誤差を低減する最適化を実行する。コスト関数としては、ガウス・ニュートン法を用いたエネルギー関数が用いられる。ガウス・ニュートン法を用いたコスト関数Ｅは、式(m)のeを用いて、次式で表される。
【００９７】
【数２】
2017224984.tif 000004
【００９８】
この方法は、初期推定値から開始して、次式による繰り返し計算によって進行する。
rn=rn-1+Δr・・・（o）
ここで、増分Δrは正規方程式の解である。
式(2)のeは、eのヤコビ行列Jrを用いて、次式で表される。
e=-JrΔr・・・（p）
ヤコビ行列Jrは、rの関数であるので、J(r)として次のように記述できる。
Jr=J(r)=∂e/∂r・・・（q）
【００９９】
ガウス・ニュートン法の２乗和を最小化するには、次式を解けばよい。
min||e+JrΔr||・・・（r）
【０１００】
増分Δrは、次式で算出される。
Δr=-(JrTJr)-1JrTe・・・（s）
【０１０１】
本実施形態の目的の一つは、回転行列Rcam2imuを推定することである。回転行列は、一般的に、オイラー角を用いて表され得る。具体的には、次式で表される。
R=Rz(γ)*Ry(β)*Rx(α)・・・（t）
【０１０２】
【数３】
2017224984.tif 000005
【０１０３】
結果としてRcam2imuは次式で表される。
Rcam2imu=Rz(γ)*Ry(β)*Rx(α)・・・（u）
【０１０４】
式(u)より、本実施形態では、未知のrが次式で定義される。
r=[α,β,γ]・・・（v）
よって、式(q)は、次のように表すこともできる。
J(r)=[∂e/∂α,∂e/∂β,∂e/∂γ]・・・（w）
よって、ｒを最適化することによって、最適なRcam2imuを決定することができる。
式(q)は、次式に変形できる。
【０１０５】
【数４】
2017224984.tif 000006
【０１０６】
ところで、一般的に、アークコサインの合成関数の微分は、次式で表される。
【０１０７】
【数５】
2017224984.tif 000007
【０１０８】
ここで、xを次式で定義すると、式(5)は式(4-2)の２倍に等しくなる。２倍になるのは式(4-2)に含まれる*0.5を無視したからである。定数倍(*0.5)を無視しても、ｒの最適化には影響がないので、以下、*0.5を無視する。
【０１０９】
【数６】
2017224984.tif 000008
【０１１０】
RcamA2BObsは、rの関数ではない。よって、式(6)より、式(5)に含まれる∂x/∂rは次式になる。
【０１１１】
【数７】
2017224984.tif 000009
【０１１２】
式(7)の右辺に含まれる偏微分は、式(d)より次式になる。なお、次式及び後述する式(12),(13),(14)におけるRcam2imu-1は、Rcam2imu′と同じ行列である。Rcam2imu-1は、Rcam2imuの逆行列である。Rcam2imu′は、Rcam2imuの転置行列である。
【０１１３】
【数８】
2017224984.tif 000010
【０１１４】
式(8)に含まれる∂Rcam2imu/∂rは、式(u)より、次式で表される。
∂Rcam2imu/∂r=∂{Rz(γ)*Ry(β)*Rx(α)}/∂r・・・（x）
前式に関し、rに含まれるαについては、次式で表される。
∂Rcam2imu/∂α=Rz(γ)*Ry(β)*∂{Rx(α)}/∂α・・・（y）
前式に含まれる∂{Rx(α)}/∂αは、式(3)より、次式で表される。
【０１１５】
【数９】
2017224984.tif 000011
【０１１６】
rに含まれるβについては、次式で表される。
∂Rcam2imu/∂β=Rz(γ)*∂{Ry(β)}/∂β*Rx(α)・・・（z）
前式に含まれる∂{Ry(β)}/∂βは、式(3)より、次式で表される。
【０１１７】
【数１０】
2017224984.tif 000012
【０１１８】
rに含まれるγについては、次式で表される。
∂Rcam2imu/∂γ=∂{Rz(γ)}/∂γ*Ry(β)β*Rx(α)・・・（aa）
前式に含まれる∂{Rz(γ)}/∂γは、式(3)より、次式で表される。
【０１１９】
【数１１】
2017224984.tif 000013
【０１２０】
式(4-2),(5),(6),(7)より、次式が成立する。
【０１２１】
【数１２】
2017224984.tif 000014
【０１２２】
∂Rcom2imu/∂αは式(y)および式(9)によって算出される。さらに、β及びγの場合についても以下に示すようにαの場合と同様である。∂Rcom2imu/∂βは式(z)および式(10)によって算出される。∂Rcom2imu/∂γは式(aa)および式(11)によって算出される。
【０１２３】
【数１３】
2017224984.tif 000015
【０１２４】
【数１４】
2017224984.tif 000016
【０１２５】
以上によって、収集データとRcam2imuの初期推定値とからJrが算出でき、ひいては式(r)を解くことができる。式(r)を解けば、最適なRcam2imuを決定することができる。
【０１２６】
本実施形態によれば、ＩＭＵ−カメラキャリブレーションのために、オフラインで利用可能なユーザーフレンドリーなセットアップに関するソリューションが実現される。本ソリューションにおいて、ユーザーは、平面ターゲットを垂直にアラインする必要がなく、しかも２つめのＩＭＵが必要とされない。その代わり、実物マーカーＭＫが用いられる。本実施形態において、自動的なユーザーフレンドリーなガイド付きキャリブレーション手続は、全動作レンジにおけるデータ収集が完全となることを保証する。
【０１２７】
つまり、本実施形態によれば、垂直にアラインされたパターンも、２つ目のＩＭＵも必要としない。ユーザーにとって、本実施形態の方法をセットアップすることも、利用することも簡単である。さらに、ユーザーに親切なガイド付き手順を提供し、全作動範囲において要求されるデータが収集されることを確実にすることによって、全体的な精度が改善される。
【０１２８】
実施形態２を説明する。実施形態２の説明は、実施形態１と異なる点を主な対象とする。特に説明しない内容は、実施形態１と同じである。
【０１２９】
図１１は、実施形態２の算出処理を示すフローチャートである。まず、重み付けを考慮してコスト関数を計算する（Ｓ７１０）。具体的には、適応的重み付けスキーム（Adaptive weighting scheme又はAdaptive weighting schema）を用いる。適応的重み付けスキームは、適応型重みづけ融合方法と言い換えることができる。
【０１３０】
適応的重み付けスキームについて説明する。データ収集処理において、或るビューについて、他のビューよりも、多くのデータが収集されてもよい。但し、全てのデータ対の重みが等しい場合には、データがより多く集められたビューが、他のビューよりも、全体の結果に影響をより与えることになり、結果を予期しない方向に導き得る。
【０１３１】
本実施形態では、データ対のそれぞれの重みが、データ対が関連付けられたビューに基づき調整される。具体的には、或るビューについてより多くのデータが収集された場合には、これらのデータの重みの和は、このビューの重みに等しくする。こうすれば、そのビューのデータが全体のキャリブレーション結果に対して過度に影響を与えることはない。
【０１３２】
それぞれのデータは、複数の重み（重み係数）を有する。その最終的な重みは、自動的に融合される。本実施形態では、ＩＭＵ７１のノイズレベルと、動きの種類と、マーカー姿勢と、ジッターレベルと、モーションブラーと、ビュー角と、ビューのデータ密度とを融合することによって、重みを融合する。
【０１３３】
例えば、i番目のデータについて、ＩＭＵ７１のノイズレベルによって重みwi_noiseが決定される。ＩＭＵ７１のノイズが大きい場合には重みはより小さくなる。ジッターによって重みwi_jitterが決定される。ジッターのノイズが大きい場合には重みはより小さくなる。他の形態として、異なる融合方法が検討されてもよい。例えば、最も簡単な方法は、全て重みを掛け合わせることである。トレーニングベースの方法も適用できる。
【０１３４】
重み係数を考慮したコスト関数は、次式のように表記される。次式において、nは収集されたデータ対の合計数であり、wiは重み係数である。eiは、実施形態１で説明した通りである。
【０１３５】
【数１５】
2017224984.tif 000017
【０１３６】
最後に、ロバスト推定を実施する（Ｓ７２０）。つまり、ロバスト推定器（ロバスト推定量）を用いて、ＩＭＵ−カメラパラメーターで或る回転行列Rcam2imuを算出する。本実施形態においては、ロバスト推定としてＭ推定を採用する。ロバスト推定は、他のデータから極端に外れたデータ（アウトライアー）が推定量に与える影響を小さくする。ロバスト推定は周知なので、ロバスト推定についての詳しい説明は省略する。
【０１３７】
本実施形態によれば、適応型重みづけ融合方法とＭ推定器とを使用し、徐々にアウトライアサンプルの影響を低減することができる。
【０１３８】
実施形態３を説明する。実施形態３の説明は、実施形態２と異なる点を主な対象とする。特に説明しない内容は、実施形態２と同じである。
【０１３９】
制御部１０が水平なテーブルまたは垂直な壁に置かれている場合には、実物マーカーＭＫが水平または垂直に配置されるので、コスト関数は次式のように変形される。
【０１４０】
【数１６】
2017224984.tif 000018
【０１４１】
式(16)におけるVi1IMU,Vi2IMUは、ＩＭＵ７１による垂直の計測値（ベクトル）である。iは、i番目のデータ対を表し、２つの位置それぞれの計測（i1及びi2）を含む。Vi1marker,Vi2markerは、カメラ６０による対応する計測値（ベクトル）であり、或るシーンの消失点から導出され、マーカー姿勢から計算され得る。θi1は、２つのベクトルVi1IMUとVi1Markerとの間の角度である。α及びβは、重み係数である。α＋β＝１である。
【０１４２】
マーカーが水平面にも垂直面にもない場合には、βはゼロにセットされ、αは１にセットされる。この場合、式(16)は、式(15)と同じになる。
【０１４３】
本発明は、本明細書の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、先述の課題の一部又は全部を解決するために、あるいは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下のものが例示される。
【０１４４】
実施形態として開示した技術を適用する装置は、ＨＭＤ以外の撮像装置でもよい。例えば、画像を表示する機能を有しない撮像装置でもよい。
カメラは、ＩＭＵに対する相対位置が固定されていてもよいし、画像表示部に対する相対位置が固定されていてもよい。
実物マーカーは、制御部に設けられていなくてもよい。例えば、ＨＭＤとは別体の付属品として形成されていてもよい。
【０１４５】
上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、または、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
【符号の説明】
【０１４６】
１０…制御部、２０…画像表示部、２１…右保持部、２２…右表示駆動部、２３…左保持部、２４…左表示駆動部、２６…右光学像表示部、２８…左光学像表示部、４０…接続部、４２…右コード、４４…左コード、４６…連結部材、４８…本体コード、５１…送信部、５２…送信部、５３…受信部、６０…カメラ、６１…カメラ基部、６２…レンズ部、７１…ＩＭＵ、９０…装着帯、９１…装着基部、９２…ベルト部、９３…連結部、１００…ＨＭＤ、１２１…ＲＯＭ、１２２…ＲＡＭ、１３０…電源、１３５…操作部、１３９…識別対象記憶部、１４０…ＣＰＵ、１５０…オペレーティングシステム、１６０…画像処理部、１６５…マーカー識別部、１６７…処理部、１７０…音声処理部、１８０…インターフェース、１９０…表示制御部、２０１…右バックライト制御部、２０２…左バックライト制御部、２１１…右ＬＣＤ制御部、２１２…左ＬＣＤ制御部、２２１…右バックライト、２４１…液晶ディスプレイ、２５１…右投写光学系、２６１…右導光板、２６２…左導光板、３００…融合部、３１０…測定部、３１１…ローパスフィルター、３１２…ローパスフィルター、３２０…予測部、３３０…更新部、３４０…重力キャンセル部、３５０…回転変換部、３６０…遅延器
【図１】
2017224984.tif 000019
【図２】
2017224984.tif 000020
【図３】
2017224984.tif 000021
【図４】
2017224984.tif 000022
【図５】
2017224984.tif 000023
【図６】
2017224984.tif 000024
【図７】
2017224984.tif 000025
【図８】
2017224984.tif 000026
【図９】
2017224984.tif 000027
【図１０】
2017224984.tif 000028
【図１１】
2017224984.tif 000029