(57)【要約】【課題】ＡＲの姿勢がドリフトした場合に、姿勢の再初期化を実行する一方で、ＡＲの表示を継続すること。【解決手段】撮像部と表示部とを備える表示装置に、前記撮像部を用いて、物体の撮像画像を取得する機能と、前記撮像部に対する前記物体の第１姿勢を、初期時刻での前記撮像画像、及び前記初期時刻より後の時刻での前記撮像画像との何れかに基づき検出する機能と、現在時刻での前記撮像画像に対応する前記物体の第２姿勢を、前記第１姿勢と、前記現在時刻での前記撮像画像と、に基づき、検出する機能と、前記現在時刻での前記撮像画像に対する前記第２姿勢の精度が予め定められた基準に達していない場合に、前記第２姿勢に基づく仮想姿勢でＡＲ画像を前記表示部に表示する表示機能と、前記精度が前記予め定められた基準に達していない場合に、前記現在時刻での前記撮像画像に基づき前記物体の第３姿勢を検出する機能と、を実現させるためのプログラム。【選択図】図１１
2018055589.tif 000002
【特許請求の範囲】
【請求項１】
撮像部と表示部とを備える表示装置に、
前記撮像部を用いて、物体の撮像画像を取得する機能と、
前記撮像部に対する前記物体の第１姿勢を、初期時刻での前記撮像画像、及び前記初期時刻より後の時刻での前記撮像画像との何れかに基づき検出する機能と、
現在時刻での前記撮像画像に対応する前記物体の第２姿勢を、前記第１姿勢と、前記現在時刻での前記撮像画像と、に基づき、検出する機能と、
前記現在時刻での前記撮像画像に対する前記第２姿勢の精度が予め定められた基準に達していない場合に、前記第２姿勢に基づく仮想姿勢でＡＲ画像を前記表示部に表示する表示機能と、
前記精度が前記予め定められた基準に達していない場合に、前記現在時刻での前記撮像画像に基づき前記物体の第３姿勢を検出する機能と、
を実現させるためのプログラム。
【請求項２】
前記予め定められた基準は、第２基準であり、
第１基準は、前記第２基準よりも緩やかな基準であり、
前記第２姿勢が前記第１基準に達していない場合に、前記表示機能によるＡＲ画像の表示を停止させる機能
を実現させるための請求項１に記載のプログラム。
【請求項３】
撮像部と、
表示部と、
前記撮像部を用いて、物体の撮像画像を取得する機能と、
を備える表示装置が、
前記撮像部に対する前記物体の第１姿勢を、初期時刻での前記撮像画像、及び前記初期時刻より後の時刻での前記撮像画像との何れかに基づき検出し、
現在時刻での前記撮像画像に対応する前記物体の第２姿勢を、前記第１姿勢と、前記現在時刻での前記撮像画像と、に基づき検出し、
前記現在時刻での前記撮像画像に対する前記第２姿勢の精度が予め定められた基準に達していない場合、前記第２姿勢に基づく仮想姿勢でＡＲ画像を前記表示部に表示することと、前記現在時刻での前記撮像画像に基づき前記物体の第３姿勢を検出することとを実行する
物体の追跡方法。
【請求項４】
撮像部と、
表示部と、
前記撮像部を用いて、物体の撮像画像を取得する機能と、
前記撮像部に対する前記物体の第１姿勢を、初期時刻での前記撮像画像、及び前記初期時刻より後の時刻での前記撮像画像との何れかに基づき検出する機能と、
現在時刻での前記撮像画像に対応する前記物体の第２姿勢を、前記第１姿勢と、前記現在時刻での前記撮像画像と、に基づき、検出する機能と、
前記現在時刻での前記撮像画像に対する前記第２姿勢の精度が予め定められた基準に達していない場合に、前記第２姿勢に基づく仮想姿勢でＡＲ画像を前記表示部に表示する表示機能と、
前記精度が前記予め定められた基準に達していない場合に、前記現在時刻での前記撮像画像に基づき前記物体の第３姿勢を検出する機能と、
を備える表示装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、物体の追跡に関する。
【背景技術】
【０００２】
従来、ユーザーの頭部に装着される頭部装着型表示装置（Head Mounted Display:HMD）が知られている。例えば、特許文献１には、ビデオシースルー型ＨＭＤが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３８３２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＨＭＤを用いて表示される拡張現実（ＡＲ）において、実世界と仮想世界とがシームレスに一つにされている印象を実現するには、仮想物体が実世界のそれぞれの対応物（カウンターパート）に高精度で重畳（オーバーレイ）されることが好ましい。このような重畳を、ＡＲ重畳と呼ぶ。
【０００５】
ＡＲ重畳に利用される３Ｄ物体追跡器は、それぞれの映像フレームにて、追跡される３Ｄ物体の位置を精度よく推定することが好ましい。それにも関わらず、動きの速度、視角変化による特徴点の消失、モーションブラー、見えおよび照明条件の変化、複雑な（散らかった）背景、およびオクルージョン（遮蔽）を含む多くの要因が、３Ｄ位置の推定に誤差を生じさせる。
【０００６】
追跡精度およびＡＲ重畳の連続性を維持するために、これらの誤差は、その場で（その都度）修正されることが好ましい。追跡誤差の修正に対処する異なる幾つかのアプローチは存在する。それらの適時の適用を可能とするためには、物体追跡の期間中で追跡誤差が生じた時点が精度よく検出されることが好ましい。
【０００７】
標準的な３Ｄ追跡器は、有効姿勢状態および姿勢喪失状態を定義している。これは、追跡器の性能を制限する。すなわち、有効姿勢状態は、姿勢検証のために事前に定義された状態が満たされた場合に割り当てられる。この状態の厳格性は、高くてもよいし、低くてもよい。
【０００８】
厳格性が低い場合には、ドリフト量が多少大きくても、姿勢が有効であるとマークされ得る。つまり、仮想物体の姿勢が対応物とずれていても、正しく姿勢が追跡されていると判定されやすくなる。この場合、姿勢の再初期化は実行されない一方で、ＡＲの表示は継続される。但し、ＡＲの表示は、ドリフトした姿勢に基づき表示される。
【０００９】
一方、厳格性が高い場合には、わずかな姿勢のみしか有効とされない。つまり、わずかなドリフト量である場合にのみ、有効であることになる。このため、姿勢を再初期化するブロック（つまり処理）が頻繁に実行される。再初期化プロセスは、多数の映像フレーム（場合によっては１０フレーム以上）を用い、且つ、その期間中、追跡器は姿勢喪失状態になる。この結果、この期間中は、ＡＲの表示が停止する。
【００１０】
本開示は、上記を踏まえ、姿勢がドリフトした（ずれた）場合に、物体に対してドリフトの大きいＡＲ画像をユーザーに提示している期間、および／またはＡＲ画像が消失している期間を短縮することを目的の一つとする。
【課題を解決するための手段】
【００１１】
本開示は、上記課題を解決するためのものであり、以下の形態として実現できる。
【００１２】
本開示の一形態は、撮像部と表示部とを備える表示装置に；前記撮像部を用いて、物体の撮像画像を取得する機能と；前記撮像部に対する前記物体の第１姿勢を、初期時刻での前記撮像画像、及び前記初期時刻より後の時刻での前記撮像画像との何れかに基づき検出する機能と；現在時刻での前記撮像画像に対応する前記物体の第２姿勢を、前記第１姿勢と、前記現在時刻での前記撮像画像と、に基づき、検出する機能と；前記現在時刻での前記撮像画像に対する前記第２姿勢の精度が予め定められた基準に達していない場合に、前記第２姿勢に基づく仮想姿勢でＡＲ画像を前記表示部に表示する表示機能と；前記精度が前記予め定められた基準に達していない場合に、前記現在時刻での前記撮像画像に基づき前記物体の第３姿勢を検出する機能と；を実現させるためのプログラムである。この形態によれば、第２姿勢が予め定められた基準に達していない場合に、第３姿勢を検出しながら、ＡＲ表示を継続できる。つまり、導出された物体の姿勢の精度が基準に達していない場合に、当該姿勢の再初期化を実行する一方で、ＡＲの表示を継続できる。
【００１３】
上記形態において、前記予め定められた基準は、第２基準であり；第１基準は、前記第２基準よりも緩やかな基準であり；前記第２姿勢が前記第１基準に達していない場合に、前記表示機能によるＡＲ画像の表示を停止させる機能を実現させてもよい。この形態によれば、第２姿勢が第１基準に達していない場合に、ＡＲ表示を停止できる。
【００１４】
本開示は、上記以外の種々の形態で実現できる。例えば、追跡方法や、この方法を実現する表示装置の形態で実現できる。
【図面の簡単な説明】
【００１５】
【図１】ＨＭＤの概略構成図。
【図２】ＨＭＤの機能ブロック図。
【図３】追跡処理を示すフローチャート。
【図４】初期化を示すフローチャート。
【図５】正確姿勢状態を示す図。
【図６】許容姿勢状態を示す図。
【図７】姿勢喪失状態を示す図。
【図８】残差角度決定処理を示すフローチャート。
【図９】残差角度誤差を示す図。
【図１０】再初期化処理を示すフローチャート。
【図１１】ＡＲ表示処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
図１は、ＨＭＤ１００の概略構成を示す。ＨＭＤ１００は、頭部装着型表示装置（ヘッドマウントディスプレイ：Head Mounted Display）である。ＨＭＤ１００は、光学透過型である。つまり、ＨＭＤ１００は、ユーザーに対して、虚像を知覚させると同時に、外景も直接視認させることができる。
【００１７】
ＨＭＤ１００は、ユーザーの頭部に装着可能な装着帯９０と、画像を表示する表示部２０と、表示部２０を制御する制御部１０と、を備えている。表示部２０は、ユーザーの頭部に装着された状態においてユーザーに虚像を知覚させる。表示部２０がユーザーに虚像を知覚させることを「ＡＲを表示する」ともいう。ユーザーが知覚する虚像のことを、ＡＲ画像ともいう。
【００１８】
装着帯９０は、樹脂製の装着基部９１と、装着基部９１に連結される布製のベルト９２と、カメラ６０と、ＩＭＵ７１と、を備える。装着基部９１は、人の前頭部の形に合った湾曲した形状を有する。ベルト９２は、ユーザーの頭部の周りに装着される。
【００１９】
カメラ６０は、撮像部として機能する。カメラ６０は、外景を撮像可能で、装着基部９１の中心部分に配置されている。換言すると、カメラ６０は、装着帯９０がユーザーの頭部に装着された状態で、ユーザーの額の中央に対応する位置に配置されている。そのため、カメラ６０は、ユーザーが装着帯９０を頭部に装着した状態において、ユーザーの視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。
【００２０】
カメラ６０は、装着基部９１に対して回転するカメラ基部６１と、カメラ基部６１に対して相対位置が固定されたレンズ部６２と、を有する。カメラ基部６１は、装着帯９０がユーザーの頭部に装着された際に、ユーザーの中心軸を含む面に含まれる軸の所定の範囲である矢印ＣＳ１に沿って回転可能に配置されている。そのため、カメラ６０の光軸であるレンズ部６２の光軸は矢印ＣＳ１の範囲で向きを変更可能である。レンズ部６２は、光軸を中心としたズームによって変化する範囲を撮像する。
【００２１】
ＩＭＵ７１（Inertial Measurement Unit）は、加速度を検出する慣性センサーである。ＩＭＵ７１は、加速度に加えて、角速度と、地磁気とを検出できる。ＩＭＵ７１は、装着基部９１に内蔵されている。そのため、ＩＭＵ７１は、装着帯９０及びカメラ基部６１の加速度と角速度と地磁気とを検出する。
【００２２】
ＩＭＵ７１は装着基部９１との相対位置が固定されているので、カメラ６０はＩＭＵ７１に対して可動である。さらに、表示部２０は、装着基部９１との相対位置が固定されているので、カメラ６０は表示部２０に対する相対位置が可動である。
【００２３】
表示部２０は、装着帯９０の装着基部９１に連結される。表示部２０は、眼鏡型である。表示部２０は、右保持部２１と、右表示駆動部２２と、左保持部２３と、左表示駆動部２４と、右光学像表示部２６と、左光学像表示部２８と、を含んでいる。
【００２４】
右光学像表示部２６及び左光学像表示部２８は、それぞれ、ユーザーが表示部２０を装着した際にユーザーの右および左の眼前に位置する。右光学像表示部２６の一端および左光学像表示部２８の一端は、ユーザーが表示部２０を装着した際のユーザーの眉間に対応する位置で、互いに接続されている。
【００２５】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＲと装着基部９１の右側の連結部９３との間を結ぶ。
【００２６】
同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＬと装着基部９１の左側の連結部（図示せず）との間を結ぶ。
【００２７】
右保持部２１及び左保持部２３が左右の連結部９３によって装着基部９１に連結されることで、右光学像表示部２６と左光学像表示部２８をユーザーの眼前に位置させる。なお、各連結部９３は、右保持部２１及び左保持部２３を回転可能に、且つ任意の回転位置に固定可能に連結する。この結果、表示部２０は、装着基部９１に対して回転可能に設けられることになる。
【００２８】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。
【００２９】
同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。右表示駆動部２２及び左表示駆動部２４は、ユーザーが表示部２０を装着した際のユーザーの頭部に対向する側に配置されている。
【００３０】
表示駆動部２２，２４は、後述する液晶ディスプレイ２４１，２４２（Liquid Crystal Display、以下「ＬＣＤ２４１，２４２」とも呼ぶ）や投写光学系２５１，２５２等を含む。表示駆動部２２，２４の構成の詳細な説明は後述する。
【００３１】
光学像表示部２６，２８は、後述する導光板２６１，２６２（後述）と調光板とを含んでいる。導光板２６１，２６２は、光透過性の樹脂材料等によって形成され、表示駆動部２２，２４から出力された画像光をユーザーの眼に導く。
【００３２】
調光板は、薄板状の光学素子であり、ユーザーの眼の側とは反対の側である表示部２０の表側を覆うように配置されている。調光板の光透過率を調整することによって、ユーザーの眼に入る外光量を調整して虚像の見えやすさを調整できる。
【００３３】
表示部２０は、さらに、表示部２０を制御部１０に接続するための接続部４０を有している。接続部４０は、制御部１０に接続される本体コード４８と、右コード４２と、左コード４４と、連結部材４６と、を含んでいる。
【００３４】
右コード４２及び左コード４４は、本体コード４８が２本に分岐したコードである。表示部２０及び制御部１０は、接続部４０を介して各種信号の伝送を実行する。右コード４２と、左コード４４と、本体コード４８とには、例えば、金属ケーブルや光ファイバーを採用できる。
【００３５】
制御部１０は、ＨＭＤ１００を制御するための装置である。制御部１０は、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部１３５を有する。操作部１３５は、制御部１０の表面に配置されている。
【００３６】
図２は、ＨＭＤ１００の構成を機能的に示すブロック図である。図２に示すように、制御部１０は、ＲＯＭ１２１と、ＲＡＭ１２２と、電源１３０と、操作部１３５と、ＣＰＵ１４０と、インターフェース１８０と、送信部５１（Ｔｘ５１）および送信部５２（Ｔｘ５２）と、を有している。
【００３７】
電源１３０は、ＨＭＤ１００の各部に給電する。ＲＯＭ１２１には、種々のプログラムが格納されている。ＣＰＵ１４０は、ＲＯＭ１２１に格納された各種プログラムを、ＲＡＭ１２２に展開することで、各種プログラムを実行する。各種プログラムには、後述する追跡処理とＡＲ表示処理とを実現するためのものが含まれる。
【００３８】
ＣＰＵ１４０は、ＲＯＭ１２１に格納されているプログラムを、ＲＡＭ１２２に展開することにより、オペレーティングシステム１５０（ＯＳ１５０）、表示制御部１９０、音声処理部１７０、画像処理部１６０及び処理部１６７として機能する。
【００３９】
表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４を制御する制御信号を生成する。表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４のそれぞれによる画像光の生成および射出を制御する。
【００４０】
表示制御部１９０は、右ＬＣＤ制御部２１１と左ＬＣＤ制御部２１２とに対する制御信号のそれぞれを、送信部５１及び５２を介して送信する。表示制御部１９０は、右バックライト制御部２０１と左バックライト制御部２０２とに対する制御信号のそれぞれを送信する。
【００４１】
画像処理部１６０は、コンテンツに含まれる画像信号を取得し、送信部５１，５２を介して、取得した画像信号を表示部２０の受信部５３，５４へと送信する。音声処理部１７０は、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材４６に接続された右イヤホン３２内のスピーカー（図示しない）および左イヤホン３４内のスピーカー（図示しない）に対して供給する。
【００４２】
処理部１６７は、カメラ６０から撮像画像を、時刻に関連付けて取得する。本実施形態における時刻とは、標準時に基づくものでもよいし、そうでなくてもよい。処理部１６７は、例えばホモグラフィー行列により、物体（実物体）の姿勢を算出する。物体の姿勢とは、カメラ６０と物体との空間的関係（回転関係）のことである。処理部１６７は、算出した上記空間的関係と、ＩＭＵ７１によって検出された加速度等の検出値と、を用いて、カメラに固定された座標系からＩＭＵ７１に固定された座標系へと変換するための回転行列を算出する。処理部１６７の機能は、後述する追跡処理およびＡＲ表示処理に用いられる。
【００４３】
インターフェース１８０は、制御部１０に対して、コンテンツの供給元となる種々の外部機器ＯＡを接続するための入出力インターフェースである。外部機器ＯＡとしては、例えば、ＡＲシナリオを記憶している記憶装置、パーソナルコンピューター（ＰＣ）や携帯電話端末、ゲーム端末等がある。インターフェース１８０としては、例えば、ＵＳＢインターフェース、マイクロＵＳＢインターフェース、メモリーカード用インターフェース等を用いることができる。
【００４４】
表示部２０は、右表示駆動部２２と、左表示駆動部２４と、右光学像表示部２６としての右導光板２６１と、左光学像表示部２８としての左導光板２６２と、を備えている。
【００４５】
右表示駆動部２２は、受信部５３（Ｒｘ５３）と、右バックライト制御部２０１及び右バックライト２２１と、右ＬＣＤ制御部２１１及び右ＬＣＤ２４１と、右投写光学系２５１と、を含んでいる。右バックライト制御部２０１及び右バックライト２２１は、光源として機能する。
【００４６】
右ＬＣＤ制御部２１１及び右ＬＣＤ２４１は、表示素子として機能する。なお、他の実施形態では、右表示駆動部２２は、上記構成に代えて、有機ＥＬ表示素子などの自発光型表示素子を備えてもよいし、レーザーダイオードからの光ビームを網膜上でスキャンするスキャン型の表示素子を備えてもよい。左表示駆動部２４についても、同様である。
【００４７】
受信部５３は、制御部１０と表示部２０との間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部２０１は、入力された制御信号に基づいて、右バックライト２２１を駆動する。右バックライト２２１は、例えば、ＬＥＤやエレクトロルミネッセンス（ＥＬ）等の発光体である。右ＬＣＤ制御部２１１は、画像処理部１６０及び表示制御部１９０から送信された制御信号に基づいて、右ＬＣＤ２４１を駆動する。右ＬＣＤ２４１は、複数の画素をマトリクス状に配置した透過型液晶パネルである。
【００４８】
右投写光学系２５１は、右ＬＣＤ２４１から射出された画像光を平行状態の光束にするコリメートレンズによって構成される。右光学像表示部２６としての右導光板２６１は、右投写光学系２５１から出力された画像光を、所定の光路に沿って反射させつつユーザーの右眼ＲＥに導く。なお、左表示駆動部２４は、右表示駆動部２２と同様の構成を有し、ユーザーの左眼ＬＥに対応するため、説明を省略する。
【００４９】
ＩＭＵ７１及びカメラ６０を用いたキャリブレーションは、慣性センサーであるＩＭＵ７１の性能によって精度が異なる。精度が高くない安価なＩＭＵが用いられると、キャリブレーションには、大きな誤差やドリフトが発生することがある。
【００５０】
本実施形態では、ＩＭＵ７１を用いたマルチポジション法を用いたバッチ・ソリューション・ベース・アルゴリズムによってキャリブレーションを実行する。本実施形態では、ＩＭＵ７１とカメラ６０との間の並進関係については、製造時の設計データを用いる。
【００５１】
ＩＭＵ７１とカメラ６０とのそれぞれに対して、別々のキャリブレーション（以下、独立キャリブレーション）が実行される。独立キャリブレーションの具体的な方法については、周知技術を用いる。
【００５２】
独立キャリブレーションでは、ＩＭＵ７１が較正される。具体的には、ＩＭＵ７１に含まれる３軸の加速度センサー（Ａｘ，Ａｙ，Ａｚ）と、３軸のジャイロセンサー（Ｇｘ，Ｇｙ，Ｇｚ）と、３軸の地磁気センサー（Ｍｘ，Ｍｙ，Ｍｚ）とに対して、ゲイン／スケールと、静的なバイアス／オフセットと、３軸間のスキューと、についてキャリブレーションが実行される。
【００５３】
これらのキャリブレーションが実行されると、ＩＭＵ７１は、加速度、角速度、地磁気のそれぞれについての出力値として、加速度と角速度と地磁気とを出力する。これらの出力値は、ゲイン、静的なバイアス／オフセット、および３軸間のミスアライメントを修正した値である。これらのキャリブレーションは、本実施形態では、ＨＭＤ１００の製造時において製造工場などで実施される。
【００５４】
独立キャリブレーションで実行されるカメラ６０のキャリブレーションでは、カメラ６０における焦点距離、スキュー、主点位置、歪みを含むカメラ６０の内部パラメーターがキャリブレーションされる。カメラ６０のキャリブレーションには、周知技術を適用できる。
【００５５】
ＩＭＵ７１に含まれる各センサーのキャリブレーションが実行された後においては、ＩＭＵ７１における加速度、角速度、地磁気のそれぞれのセンサーの検出値（計測された出力）を融合して、精度の高いＩＭＵ配向を得ることができる。
【００５６】
ここで、本実施形態に特徴的な処理の概要を説明する。詳細は後述する。
【００５７】
ＡＲ重畳に利用される３Ｄ姿勢追跡のプロセスは、検出プロセスと、それに続く追跡プロセスと、を含む。追跡されている姿勢に大きなドリフト（誤差）が生じた結果、姿勢を喪失した場合には、再度、検出プロセスを実施する（再初期化）。従来、再初期化によって、再び姿勢が得られるまで、ＡＲ重畳を停止していた。そこで、本実施形態においては、許容できる程度のドリフトの段階で、ＡＲ重畳を継続しながら姿勢検出プロセス（再初期化）を開始する。
【００５８】
単眼の映像において、３Ｄ物体のカメラ６０に対する相対的な動きを追跡することは、カメラ座標系に対する３Ｄ物体の位置（６自由度で表されている位置）の連続的な（フレーム毎の）回復を包含する。
【００５９】
本実施形態において、３Ｄ物体に対応する３Ｄモデルは、既知である。このため、３Ｄ物体の追跡は、次の２つの問題に帰着する。１つ目は、３Ｄモデルの３Ｄ点と、映像シーケンスにおける２Ｄ点と、の間の正確な対応付けを確立することである。２つ目は、透視ｎ点問題（ＰｎＰ問題）を解いて、３Ｄ物体の位置を推定することである。
【００６０】
以下、処理の詳細を説明する。
【００６１】
図３は、追跡処理を示すフローチャートである。追跡処理に含まれる各ステップの実行主体は、ＣＰＵ１４０である。
【００６２】
まず、初期化を実行する（Ｓ３００）。この初期化によって、追跡状態が、正確姿勢状態になる。Ｓ３００によって検出された正確な姿勢を、第１姿勢ともいう。Ｓ３００によって検出される第１姿勢は、初期時刻における撮像画像に基づき検出される。第１姿勢は、カメラ６０に対する姿勢である。
【００６３】
図４は、初期化のフローチャートである。初めに、カメラ６０を用いて物体を撮像する（Ｓ３２１）。撮像画像には背景が含まれてもよい。続いて、撮像された物体の画像に対して、以下に述べるエッジ検出を実行する（Ｓ３２３）。
【００６４】
Ｓ３２３は、撮像された物体と、２Ｄテンプレートとを対応付けるために実行される。２Ｄテンプレートは、撮像された物体に対応するとともに、その物体の位置と姿勢を反映する。制御部１０は、複数の２Ｄテンプレートを予め記憶している。
【００６５】
ここで、各２Ｄテンプレートは、当該物体に対応する３Ｄモデルを、それぞれのビューに基づいて、仮想的な画像平面（イメージプレーン）にレンダリングすることで得られるそれぞれの２Ｄモデルに基づいて作成されたデータである。
【００６６】
ビューとは、仮想カメラに対する回転と並進を表す３次元剛体変換行列、およびカメラパラメーターを含む透視写像（透視投影）変換行列を含んでいる。具体的には、各２Ｄテンプレートは、２Ｄモデルの特徴点（本実施形態ではエッジに含まれる点）を表す２Ｄモデル点と、当該２Ｄモデル点に対応する３Ｄモデル点と、当該ビューと、を含んでいる。２Ｄモデル点は、当該イメージプレーン上に原点を有する２Ｄ座標系（イメージプレーン座標系）で表されている。３Ｄモデル点は、３Ｄモデルに原点が固定された３Ｄ座標系（３Ｄモデル座標系）で表されている。
【００６７】
エッジの検出のために、撮像画像のピクセルに基づいて、エッジとなる特徴要素を計算する。本実施形態では、物体の撮像画像のピクセル毎の輝度のグラディエントを計算することで、特徴要素を決定する。本実施形態では、エッジを検出するために、カニーエッジ検出方法における手続と同様に、単に、エッジを閾値と比較し、最大でないものを抑制する（non-maxima suppression）。
【００６８】
次に、記憶されている複数の２Ｄテンプレートの中から、撮像された物体の画像の姿勢に最も近いビューから生成された２Ｄテンプレートを選択する（Ｓ３２５）。
【００６９】
この選択のために、物体の大まかな姿勢を推定する既存の３次元姿勢推定アルゴリズムが別途利用されてもよい。
【００７０】
但し、３Ｄ姿勢の高精度化を行なう際に、既に選択したビューよりも、物体の画像の姿勢に近い新たなビューを見つけることがある。新たなビューを見つけた場合には、新たなビューの３Ｄ姿勢の高精度化を行なう。
【００７１】
なお、他の実施形態では、予め作成された２Ｄテンプレートを用いるのではなく、物体を撮像すると共に、その場で(on the fly)、しかも必要であれば照明などの撮像環境をレンダリングに反映しながら、３ＤＣＡＤデータから２Ｄモデルを含む２Ｄテンプレートを作成することで、なるべく多くの視認可能なエッジを抽出してもよい。
【００７２】
続いて、物体の画像のエッジに含まれる画像点と、２Ｄテンプレートに含まれる２Ｄモデル点との対応付けを実行する（Ｓ３２７）。
【００７３】
本実施形態では、それぞれの写像された２Ｄモデル点の周囲の局所的近隣に含まれる全ての画像点について、同様性スコアを計算する。同様性スコアの計算については、周知の手法を適用する。
【００７４】
次に、画像点に対応付けられた２Ｄモデル点に対応する３Ｄモデル点と、当該２Ｄモデル点を作成したときのビューの情報と、を取得する（Ｓ３２９）。
【００７５】
次に、取得されたビューを表す変換行列を読み出す（Ｓ３３１）。変換行列とは、カメラ６０を原点とした座標系で表された３次元剛体変換行列、および透視写像（透視投影）変換行列である。
【００７６】
最後に、カメラ６０によって撮像された物体の姿勢を最適化する（Ｓ３３３）。この最適化によって姿勢の初期化が完了する。Ｓ３３３は、画像点と、画像点に対応する３Ｄモデル点と、Ｓ３３１で取得したビューとに基づき、最適な回転行列と並進行列とを導出するように繰り返し計算により実行される。
【００７７】
上記のようにして初期化が完了した後、第１姿勢に対応する仮想姿勢で、ＡＲ画像を表示部に表示する。そうすると、本実施形態では、ユーザーに、物体ＯＢの３Ｄ姿勢に、ＡＲ画像の３Ｄ姿勢が一致するように視認させることができる。そして、新しい画像フレームを取得する（Ｓ４２０）。新しい画像フレームは、カメラ６０による連続的な撮像から取得される。続いて、新しい画像フレームで追跡を実施する（Ｓ４３０）。追跡は、新しい画像フレームにおいて、物体ＯＢの姿勢を最適化することを含み得る。
【００７８】
Ｓ４３０は、第１姿勢と、Ｓ４２０による撮像画像と、に基づき実行される。Ｓ４２０による撮像画像は、現在時刻での撮像画像である。Ｓ４３０によって検出された姿勢を、第２姿勢ともいう。具体的には、初期化により導出された姿勢（第１姿勢）と、第１姿勢に対応する２Ｄモデル点と、３Ｄモデル点と、を含むデータを一つの２Ｄテンプレートのように扱うことで、第２姿勢を導出することができる。
【００７９】
次に、残差角度決定処理（後述）を実行し（Ｓ５００）、追跡状態が第１基準（第１レベル）に達しているかを判定する（Ｓ６１０）。つまり、現在時刻における姿勢の精度が、第１基準に達しているかを判定する。さらに言い換えると、現在時刻での撮像画像に対応する第２姿勢の精度が第１基準に達しているかを判定する。
【００８０】
追跡状態には、先述した正確姿勢状態に加え、許容姿勢状態および姿勢喪失状態の３通りがある。図５，図６及び図７は、物体ＯＢと、輪郭ＯＬとの位置関係を示す。輪郭ＯＬは、ＡＲとして表示される。輪郭ＯＬは、追跡した姿勢に基づき、３Ｄモデルをレンダリングすることによって決定される。
【００８１】
図５は、正確姿勢状態を例示する。図６は、許容姿勢状態を例示する。図７は、姿勢喪失状態を例示する。本実施形態では、有効姿勢状態として、次の２つの状態（レベル）を許容する。１つ目は、正確姿勢状態である。２つ目は、許容姿勢状態である。これは、図５，図６，図７に示すような３状態追跡器をもたらす。２つの基準による姿勢検証が、３つの状態間を区別するために用いられる。
【００８２】
Ｓ６１０は、姿勢検証の第１基準（第１レベル：ＦＬＰＶ:First Level Pose Value）を用いて、姿勢が許容できるか否かを試すものである。後述するＳ６３０は、姿勢検証の第２基準（第２レベル：ＳＬＰＶ:Second Level Pose Value）を用いて、姿勢の精度を判定するためのものである。このため、第２基準は、第１基準よりも厳格（精密）な基準である。つまり、第１基準は、第２基準よりも緩やかな基準である。
【００８３】
３状態追跡器の利点は、少なくとも次の２つである。１つ目の利点は、追跡における連続性があることである。追跡器は、第１基準（ＦＬＰＶ）が認定される場合、再初期化において、姿勢喪失状態の代わりに許容姿勢状態に維持される。この結果、ＡＲ表示処理（図１１）と共に後述するように、第１基準が認定される場合、ＡＲの表示を継続する。
【００８４】
２つ目の利点は、姿勢の有効性のレベル（許容可能な精度）に依存して、２つの異なる修正方法を採用する可能性があることである。つまり、誤差のタイプ（程度）に合わせて、修正方法を採用する可能性があることである。
【００８５】
先述したＦＬＰＶ３Ｄ位置検証プロセス及びＳＬＰＶ３Ｄ位置検証プロセスは、多様なアプローチを採用できる。多様なアプローチとは、例えば、本実施形態のように単眼カメラによる３Ｄ物体追跡の場合については、再写像エラー、透視ｎ点（ＰｎＰ）内のインライアー総数（ｃｏｕｎｔ）／比率（ｆｒａｃｔｉｏｎ）などである。
【００８６】
本実施形態では、Ｓ６１０，Ｓ６３０において、ドリフト検出のためのＰｎＰ推定のグローバル残差角度誤差（以下、残差角度誤差）を用いる。他の形態では、残差角度誤差と、ＰｎＰインライアー・フラクションと、の組み合わせを用いることもできる。残差角度誤差は、計測される基準である。
【００８７】
図８は、残差角度決定処理を示すフローチャートである。残差角度決定処理は、残差角度誤差を用いた検証プロセスに利用される。図９は、残差角度誤差θを示す。残差角度誤差θは、後述するように、この検証プロセスにおいて求められる。
【００８８】
まず、ＰｎＰ問題を解く手順の出口において、１つ目の３Ｄ点Ｐ１を求める（Ｓ５１０）。１つ目の３Ｄ点Ｐ１は、３ＤモデルＭＤＬに含まれる３Ｄモデル点Ｐ3Dを変換した点である。この変換は、３Ｄモデル座標系で表された３Ｄモデル点Ｐ３Ｄを、現行の映像（画像）フレームに対応する姿勢を表す３Ｄ変換行列［Ｒ｜Ｔ］を用いてカメラ座標系に変換することによって実現される。３Ｄ変換行列［Ｒ｜Ｔ］は、物体ＯＢの３Ｄ位置の推定を生じるＰｎＰに関連した現在時刻（現行の画像フレーム）の行列である。Ｒは、行列の回転成分である。Ｔは、行列の並進成分である。
【００８９】
次に、２つ目の３Ｄ点Ｐ２を求める（Ｓ５２０）。２つ目の３Ｄ点Ｐ２は、映像フレームの解析に関連した２Ｄ対応点（画像点）Ｐ2Dの逆投影（３Ｄバック写像）によって求まる点である。このとき、奥行情報は、画像点に対応する３Ｄモデル点のＺ座標に基づけばよい。
【００９０】
なお、３Ｄ点Ｐ２は、後述するように、Ｓ５３０において残差角度誤差を計算するために求める。他の実施形態では、残差角度誤差を計算するためには、Ｓ５２０において、２Ｄ対応点Ｐ2Dとカメラパラメーターの焦点ＦＰ（本実施形態では、カメラ座標系の原点）とを通る直線を求めることでも十分である。３Ｄ点Ｐ２は、この直線上に位置する。
【００９１】
続いて、対応する３Ｄ点Ｐ１，Ｐ２の対それぞれについて残差角度誤差を計算する（Ｓ５３０）。つまり、３Ｄ点Ｐ１と、３Ｄ点Ｐ２とがなす角度を、３Ｄ点の対それぞれについて計算する。この個々の角度誤差は、各対応点の対について、焦点ＦＰから３Ｄフレーム点Ｐ１，Ｐ２それぞれに連結されたカメラ光線（直線）に沿った単位ベクトルのドット積（内積）から推論される。
【００９２】
次に、上記のように算出された残差角度誤差を対象に、簡単な統計学的データが計算され、グローバル角度誤差閾値（以下、残差角度）として保存される（Ｓ５４０）。統計学的データとは、合計値、平均値、中央値、最大値などである。
【００９３】
次に、これら残差角度を、各フレームで計測された１秒当たりのフレーム数（ｆｐｓ）に応じて、残差角度を増減し（Ｓ５５０）、残差角度決定処理を終える。この増減は、カメラのフレームレートに対して不変にするために実行される。つまり、この増減は、角度閾値を、フレームレートに応じて調整するために実行される。残差角度は、ドリフト量を示すパラメーターの１つである。
【００９４】
先述したＳ６１０では、上記のように決定された残差角度が、第１基準として予め定められた角度値よりも小さいか否かによって判定される。後述するＳ６３０でも同様である。他の実施形態では、残差角度と、ＰｎＰインライアー・フラクションとが、第１基準として予め定められたそれぞれの値を達成するか否かによって判定されてもよい。
【００９５】
第１基準（ＦＬＰＶ）のパラメーターの調整、及び第２基準（ＳＬＰＶ）のパラメーターの調整は、経験的であり、３Ｄ姿勢の精度を支持するコスト関数を最適化することから生じる。そして、同時に、追跡器を正確姿勢状態へ再初期化するために用いられる誤り訂正（誤差修正ブロック）の具体化（instantiation：インスタンス化）にペナルティを課す。
【００９６】
Ｓ６１０は、第２姿勢に基づき実行される。Ｓ６１０において、第２姿勢の精度が第１基準にすら達していないと判定した場合（Ｓ６１０，ＮＯ）、フラグを姿勢喪失状態にセットし（Ｓ６２０）、再初期化処理（後述）に進む（Ｓ７００）。
【００９７】
Ｓ６１０において、第１基準に達していると判定した場合（Ｓ６１０，ＹＥＳ）、追跡状態が第２基準に達しているかを判定する（Ｓ６３０）。つまり、現在時刻における姿勢（第２姿勢）の精度が、第２基準に達しているかを判定する。さらに言い換えると、現在時刻での撮像画像（現行画像フレーム）における第２姿勢の精度が第２基準に達しているかを判定する。Ｓ６３０は、第２姿勢に基づき実行される。Ｓ６３０では、残差角度誤差の検証において、上記のように決定された角度閾値が第２基準未満であるか否かに基づく。
【００９８】
第２基準に達していないと判定した場合（Ｓ６３０，ＮＯ）、フラグを許容姿勢状態にセットし（Ｓ６４０）、再初期化処理に進む（Ｓ７００）。
【００９９】
Ｓ６３０において、第２基準に達していると判定した場合（Ｓ６３０，ＹＥＳ）、追跡処理を終了するかを判定する（Ｓ６５０）。終了しない場合（Ｓ６５０，ＮＯ）、Ｓ４２０に戻る。終了する場合（Ｓ６５０，ＹＥＳ）、追跡処理を終了する。追跡処理の終了は、ユーザーからの指示などに基づく。
【０１００】
なお、第２基準に達していることは、正確姿勢状態であることを意味する。Ｓ４３０によって第２姿勢として検出された姿勢は、正確姿勢状態であることが確認されたことで、新たな第１姿勢になる。このように検出された第１姿勢は、初期時刻よりも後の時刻での撮像画像に基づき検出されたものである。
【０１０１】
図１０は、再初期化処理を示すフローチャートである。まず、誤り訂正を実行する（Ｓ７１０）。つまり、姿勢の再初期化を試みる。再初期化は、先述した初期化と同様に実行される。再初期化によって検出される姿勢は、第３姿勢ともいう。初期化（再初期化）では、複数の２Ｄテンプレート、つまり複数のビュー、を広範囲にわたって検索することを含むことから、物体ＯＢの姿勢が短時間で急激に変わったこと、および／または物体ＯＢがカメラ６０の視野から一旦外れたことに起因して追跡がずれ、または消失した場合であっても、精度よく物体ＯＢの姿勢を導出する。
【０１０２】
再初期化に成功した場合（Ｓ７２０，ＹＥＳ）、第２姿勢の精度は正確姿勢状態になるから、正確姿勢状態を表すフラグをセットし（Ｓ７３０）、再初期化処理を終える。Ｓ７１０によって第３姿勢として検出された姿勢は、正確姿勢状態であることが確認されたことで、新たな第１姿勢になる。このように検出された第１姿勢は、初期時刻よりも後の時刻での撮像画像に基づき検出されたものである。再初期化処理を終えると、図３に示すように、Ｓ４２０に戻る。再初期化（再初期化）直後に引き続いて導出される第２姿勢では高精度が維持されやすいことから、ユーザーに、物体ＯＢの３Ｄ姿勢に、ＡＲ画像の３Ｄ姿勢が一致するように視認させることができる。なお、Ｓ４２０に戻る前に、再初期化により第１姿勢（第３姿勢）が導出された時点に対応する画像フレーム上に、第１姿勢に対応する仮想姿勢で、ＡＲ画像を表示部に表示してもよい。
【０１０３】
再初期化に失敗した場合（Ｓ７２０，ＮＯ）、姿勢喪失状態であるかを判定する（Ｓ７４０）。つまり、第１基準未満であるかを判定する。姿勢喪失状態ではない場合（Ｓ７４０，ＮＯ）、第３姿勢の精度は許容姿勢状態になるから、許容姿勢状態を表すフラグをセットし（Ｓ７５０）、再初期化処理を終える。
【０１０４】
姿勢喪失状態である場合（Ｓ７４０，ＹＥＳ）、フラグを姿勢喪失状態にセットし（Ｓ７６０）、新しい画像フレームを撮像し（Ｓ７７０）、Ｓ７１０に戻る。つまり、再初期化を再度、試みる。
【０１０５】
図１１は、ＡＲ表示処理を示すフローチャートである。ＡＲ表示処理に含まれる各ステップの実行主体は、ＣＰＵ１４０である。ＡＲ表示処理は、ＡＲの表示を実行したり、停止したりするための処理である。ＡＲ表示処理の一部のステップは、追跡処理に含まれるステップと同じ内容である。つまり、追跡処理およびＡＲ表示処理は、各々が独立して実行される訳ではなく、一部の処理を共有している。
【０１０６】
上記一部のステップは、山括弧＜＞内に、追跡処理と共有されるステップ番号を示す。なお、追跡処理における初期化（Ｓ４１０）は、ＡＲ表示処理の開始前に、実施済みとする。
【０１０７】
まず、新しい画像フレームを撮像する（Ｓ８１０＜Ｓ４２０＞）。次に、正確姿勢状態であるかを判定する（Ｓ８２０＜Ｓ６３０＞）。正確姿勢状態でない場合（Ｓ８２０，ＮＯ）、許容姿勢状態であるかを判定する（Ｓ８３０＜Ｓ６１０＞）。許容姿勢状態である場合（Ｓ８３０，ＹＥＳ）、又は、正確姿勢状態である場合（Ｓ８２０，ＹＥＳ）、ＡＲを表示する（Ｓ８４０）。
【０１０８】
正確姿勢状態である場合に表示されるＡＲも、許容姿勢状態である場合に表示されるＡＲも、第２姿勢に基づく仮想姿勢で表示される画像である。
【０１０９】
許容姿勢状態である場合は、先述したように再初期化処理が実行される。このため、許容姿勢状態である場合、第２姿勢に基づく仮想姿勢でＡＲ画像を表示しながら、再初期化処理を実行する。これにより、ＡＲ画像の３Ｄ姿勢の精度がユーザーにとって許容できない程度になる前に、再初期化により精度を向上させることができる。また、ユーザーにとって当該精度が許容できない程度になる前に開始される再初期化の期間中では、ＡＲ画像の表示が維持されることから、ＡＲ重畳が消失する時間を短くすることができる。
【０１１０】
一方、許容姿勢状態でない場合（Ｓ８３０，ＮＯ）、ＡＲの表示を停止する（Ｓ８５０）。Ｓ８４０又はＳ８５０の後、ＡＲ表示処理を終了するかを判定する（Ｓ８６０＜Ｓ６５０＞）。終了しない場合（Ｓ８６０，ＮＯ）、Ｓ８１０に戻る。終了する場合（Ｓ８６０，ＹＥＳ）、ＡＲ表示処理を終了する。ＡＲ表示処理の終了は、ユーザーからの指示などに基づく。
【０１１１】
本開示は、本明細書の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、先述の課題の一部又は全部を解決するために、或いは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下のものが例示される。
【０１１２】
上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。また、ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、又は、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
【０１１３】
上記の追跡処理およびＡＲ表示処理を実行する表示装置は、ビデオシースルー型ＨＭＤでよいし、ＨＭＤ（頭部装着型）でなくてもよい。ＨＭＤ以外としては、ロボットに適用してもよいし、携帯型の表示装置（例えばスマートフォン）でもよいし、ヘッドアップディスプレイ（ＨＵＤ）でもよいし、据え置き型の表示装置でもよい。
【符号の説明】
【０１１４】
１０…制御部、２０…表示部、２１…右保持部、２２…右表示駆動部、２３…左保持部、２４…左表示駆動部、２６…右光学像表示部、２８…左光学像表示部、４０…接続部、４２…右コード、４４…左コード、４６…連結部材、４８…本体コード、５１…送信部、５２…送信部、５３…受信部、５４…受信部、６０…カメラ、６１…カメラ基部、６２…レンズ部、７１…ＩＭＵ、９０…装着帯、９１…装着基部、９２…ベルト、９３…連結部、１２１…ＲＯＭ、１２２…ＲＡＭ、１３０…電源、１３５…操作部、１４０…ＣＰＵ、１５０…オペレーティングシステム、１６０…画像処理部、１６７…処理部、１７０…音声処理部、１８０…インターフェース、１９０…表示制御部、２０１…右バックライト制御部、２０２…左バックライト制御部、２１１…右ＬＣＤ制御部、２１２…左ＬＣＤ制御部、２２１…右バックライト、２２２…左バックライト、２４１…液晶ディスプレイ、２４２…液晶ディスプレイ、２５１…右投写光学系、２５２…左投写光学系、２６１…右導光板、２６２…左導光板
【図１】
2018055589.tif 000003
【図２】
2018055589.tif 000004
【図３】
2018055589.tif 000005
【図４】
2018055589.tif 000006
【図５】
2018055589.tif 000007
【図６】
2018055589.tif 000008
【図７】
2018055589.tif 000009
【図８】
2018055589.tif 000010
【図９】
2018055589.tif 000011
【図１０】
2018055589.tif 000012
【図１１】
2018055589.tif 000013