(57)【要約】【課題】追跡精度を向上させること。【解決手段】カメラが第１位置に位置する場合にオブジェクトを含むシーンを撮像した第１画像と、オブジェクトに対応する３Ｄモデルと、に基づきカメラに対するオブジェクトの姿勢を導出する機能と、第１画像と、カメラが第２位置に位置する場合にオブジェクトを含むシーンを撮像した第２画像とに基づき、シーンに含まれるシーン特徴点の３次元位置を導出する機能と、シーン特徴点の３次元位置を、導出した姿勢に基づき、３Ｄモデルの座標系における位置に変換する機能と、３Ｄモデルに含まれる特徴点と、第１画像に含まれるオブジェクトの特徴点との対応付けることで、第１関係を得る機能と、３Ｄモデルの座標系における位置に変換されたシーン特徴点と、第１画像に含まれるシーンの特徴点と、を対応付けることで、第２関係を得る機能と、導出した姿勢を、第１及び第２関係を用いて更新する機能とを実現させる。【選択図】図５
2018067115.tif 000002
【特許請求の範囲】
【請求項１】
カメラを利用してオブジェクトを追跡する装置に、
前記カメラが第１位置に位置する場合に前記オブジェクトを含むシーンを撮像した第１画像と、前記オブジェクトに対応する３Ｄモデルと、に基づき前記カメラに対する前記オブジェクトの姿勢を導出する機能と、
前記第１画像と、前記カメラが第２位置に位置する場合に前記オブジェクトを含むシーンを撮像した第２画像とに基づき、前記シーンに含まれるシーン特徴点の３次元位置を導出する機能と、
前記シーン特徴点の３次元位置を、前記導出した姿勢に基づき、前記３Ｄモデルの座標系における位置に変換する機能と、
前記３Ｄモデルに含まれる特徴点と、前記第１画像に含まれる前記オブジェクトの特徴点との対応付けることで、第１関係を得る機能と、
前記３Ｄモデルの座標系における位置に変換されたシーン特徴点と、前記第１画像に含まれる前記シーンの特徴点と、を対応付けることで、第２関係を得る機能と、
前記導出した姿勢を、前記第１及び第２関係を用いて更新する機能と、
を実現させるためのプログラム。
【請求項２】
前記３次元位置を導出する機能は、三角測量法またはバンドル調整法を用いて実現される
請求項１に記載のプログラム。
【請求項３】
前記オブジェクトの姿勢の導出する機能は、追跡の初期の場合に前記オブジェクトの姿勢を検出する機能と、前記オブジェクトの姿勢を追跡する機能とを含む
請求項１又は請求項２に記載のプログラム。
【請求項４】
カメラを利用してオブジェクトを追跡する装置が、
前記カメラが第１位置に位置する場合に前記オブジェクトを含むシーンを撮像した第１画像と、前記オブジェクトに対応する３Ｄモデルと、に基づき前記カメラに対する前記オブジェクトの姿勢を導出する手順と、
前記第１画像に含まれる特徴点と、前記特徴点に対応する点であって、前記３Ｄモデルの座標系によって表された点との対応関係を用いて、前記導出した姿勢を更新する手順と、
を実行する追跡方法であって、
前記姿勢を更新する手順は、前記対応関係として、第１関係と第２関係とを導出する手順を含み、
前記第１関係の導出は、前記３Ｄモデルに含まれる特徴点と、前記第１画像に含まれる前記オブジェクトの特徴点と、を対応付ける手順を含み、
前記第２関係の導出は、
前記第１画像と、前記カメラが第２位置に位置する場合に前記オブジェクトを含むシーンを撮像した第２画像とに基づき、前記シーンに含まれるシーン特徴点の３次元位置を導出する手順と、
前記シーン特徴点の３次元位置を、前記導出した姿勢に基づき、前記３Ｄモデルの座標系における位置に変換する手順と、
前記３Ｄモデルの座標系における位置に変換されたシーン特徴点と、前記第１画像に含まれる前記シーンの特徴点と、を対応付ける手順と、を含む
追跡方法。
【請求項５】
カメラを利用してオブジェクトを追跡する装置であって、
前記カメラが第１位置に位置する場合に前記オブジェクトを含むシーンを撮像した第１画像と、前記オブジェクトに対応する３Ｄモデルと、に基づき前記カメラに対する前記オブジェクトの姿勢を導出する機能と、
前記第１画像と、前記カメラが第２位置に位置する場合に前記オブジェクトを含むシーンを撮像した第２画像とに基づき、前記シーンに含まれるシーン特徴点の３次元位置を導出する機能と、
前記シーン特徴点の３次元位置を、前記導出した姿勢に基づき、前記３Ｄモデルの座標系における位置に変換する機能と、
前記３Ｄモデルに含まれる特徴点と、前記第１画像に含まれる前記オブジェクトの特徴点と、を対応付けることで、第１関係を得る機能と、
前記３Ｄモデルの座標系における位置に変換されたシーン特徴点と、前記第１画像に含まれる前記シーンの特徴点と、を対応付けることで、第２関係を得る機能と、
前記導出した姿勢を、前記第１及び第２関係を用いて更新する機能と、
を備える追跡装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、オブジェクトの追跡に関する。
【背景技術】
【０００２】
非特許文献１は、ＳＬＡＭについて開示している。ＳＬＡＭとは、Simultaneous Localisation and Mappingの頭字語であり、自己位置推定および環境地図作成を同時に実施する手法を意味する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】レナト・エフ・サラス−モレノ(Renato F. Salas-Moreno)、リチャード・エー・ニューカム(Richard. A. Newcombe)、ハウケ・シュトラスダート(Hauke Strasdat)、ポール・エイチ・ジェー・ケリー(Paul H. J. Kelly)、アンドリュー・ジェー・デイヴィソン(Andrew J. Davison)著、“ＳＬＡＭ＋＋：オブジェクトのレベルで自己位置推定および環境地図作成を同時に実施することの改善(SLAM++:Simultaneous Localisation and Mapping at the Level of Objects)”、コンピュータービジョン及びパターン認識の会議(CVPR:Conference on Computer Vision and Pattern Recognition)、(米国)、米国電気電子学会(IEEE:Institute of Electrical and Electronics Engineers)、2013年、p. 1352―1359
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＬＡＭでは、シーンまたはシーンに含まれるオブジェクトの３Ｄモデルが未知であることを前提にし得る。但し、３Ｄモデルが未知であるということは、３Ｄオブジェクトの追跡、つまり、カメラに対するオブジェクトの３Ｄ姿勢を推定することには不利である。本開示は、上記を踏まえ、オブジェクトの３Ｄ姿勢の追跡精度を向上させることを解決課題とする。
【課題を解決するための手段】
【０００５】
本開示は、上記課題を解決するためのものであり、以下の形態として実現できる。
【０００６】
本開示の一形態は、カメラを用いて、オブジェクトを追跡する装置に；前記カメラが第１位置に位置する場合に前記オブジェクトを含むシーンを撮像した第１画像と、前記オブジェクトに対応する３Ｄモデルと、に基づき前記カメラに対する前記オブジェクトの姿勢を導出する機能と；前記第１画像と、前記カメラが第２位置に位置する場合に前記オブジェクトを含むシーンを撮像した第２画像とに基づき、前記シーンに含まれるシーン特徴点の３次元位置を導出する機能と；前記シーン特徴点の３次元位置を、前記導出した姿勢に基づき、前記３Ｄモデルの座標系における位置に変換する機能と；前記３Ｄモデルに含まれる特徴点と、前記第１画像に含まれる前記オブジェクトの特徴点との対応付けることで、第１関係を得る機能と；前記３Ｄモデルの座標系における位置に変換されたシーン特徴点と、前記第１画像に含まれる前記シーンの特徴点と、を対応付けることで、第２関係を得る機能と；前記導出した姿勢を、前記第１及び第２関係を用いて更新する機能と；を実現させるためのプログラムである。この形態によれば、オブジェクトの姿勢を導出する際にシーンの情報も用いているため、オブジェクトの姿勢追跡精度が向上する。
【０００７】
上記形態において、前記３次元位置を導出する機能は、三角測量法またはバンドル調整法を用いて実現されてもよい。この形態によれば、３次元位置を適切に導出できる。
【０００８】
上記形態において、前記オブジェクトの姿勢の導出する機能は、追跡の初期の場合に前記オブジェクトの姿勢を検出する機能と、前記オブジェクトの姿勢を追跡する機能とを含んでもよい。この形態によれば、オブジェクトの姿勢の検出を、都度、実施しなくてもよい。
【０００９】
本開示は、上記以外の種々の形態で実現できる。例えば、追跡方法や、この方法を実現する装置の形態で実現できる。
【図面の簡単な説明】
【００１０】
【図１】ＨＭＤの概略構成図。
【図２】ＨＭＤの機能ブロック図。
【図３】姿勢更新処理を示すフローチャート。
【図４】オブジェクト姿勢の検出のフローチャート。
【図５】２つの異なる位置からオブジェクトとシーンとを撮像する様子を示す図。
【図６】姿勢更新処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
図１は、ＨＭＤ１００の概略構成を示す。ＨＭＤ１００は、頭部装着型表示装置（ヘッドマウントディスプレイ：Head Mounted Display）である。ＨＭＤ１００は、光学透過型である。つまり、ＨＭＤ１００は、ユーザーに対して、虚像を知覚させると同時に、オブジェクトを含む外景（シーン）から到来する光も直接視認させることができる。ＨＭＤ１００は、後述するようにオブジェクトを追跡する追跡装置として機能する。
【００１２】
ＨＭＤ１００は、ユーザーの頭部に装着可能な装着帯９０と、画像を表示する表示部２０と、表示部２０を制御する制御部１０と、を備えている。表示部２０は、ユーザーの頭部に装着された状態においてユーザーに虚像を知覚させる。表示部２０がユーザーに虚像を知覚させることを「ＡＲを表示する」ともいう。ユーザーが知覚する虚像のことを、ＡＲ画像ともいう。
【００１３】
装着帯９０は、樹脂製の装着基部９１と、装着基部９１に連結される布製のベルト９２と、カメラ６０と、慣性センサー７１と、を備える。装着基部９１は、人の前頭部の形に合った湾曲した形状を有する。ベルト９２は、ユーザーの頭部の周りに装着される。
【００１４】
カメラ６０は、ＲＧＢセンサーであり、撮像部として機能する。カメラ６０は、外景を撮像可能で、装着基部９１の中心部分に配置されている。換言すると、カメラ６０は、装着帯９０がユーザーの頭部に装着された状態で、ユーザーの額の中央に対応する位置に配置されている。そのため、カメラ６０は、ユーザーが装着帯９０を頭部に装着した状態において、ユーザーの視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。
【００１５】
カメラ６０は、装着基部９１に対して回転するカメラ基部６１と、カメラ基部６１に対して相対位置が固定されたレンズ部６２と、を有する。カメラ基部６１は、装着帯９０がユーザーの頭部に装着された際に、ユーザーの中心軸を含む面に含まれる軸の所定の範囲である矢印ＣＳ１に沿って回転可能に配置されている。そのため、カメラ６０の光軸であるレンズ部６２の光軸は矢印ＣＳ１の範囲で向きを変更可能である。レンズ部６２は、光軸を中心としたズームによって変化する範囲を撮像する。
【００１６】
慣性センサー７１は、加速度を検出するセンサーであり、以下、ＩＭＵ（Inertial Measurement Unit）７１という。ＩＭＵ７１は、加速度に加えて、角速度と、地磁気とを検出できる。ＩＭＵ７１は、装着基部９１に内蔵されている。そのため、ＩＭＵ７１は、装着帯９０及びカメラ基部６１の加速度と角速度と地磁気とを検出する。
【００１７】
ＩＭＵ７１は装着基部９１との相対位置が固定されているので、カメラ６０はＩＭＵ７１に対して可動である。さらに、表示部２０は、装着基部９１との相対位置が固定されているので、カメラ６０は表示部２０に対する相対位置が可動である。
【００１８】
表示部２０は、装着帯９０の装着基部９１に連結される。表示部２０は、眼鏡型である。表示部２０は、右保持部２１と、右表示駆動部２２と、左保持部２３と、左表示駆動部２４と、右光学像表示部２６と、左光学像表示部２８と、を含んでいる。
【００１９】
右光学像表示部２６及び左光学像表示部２８は、それぞれ、ユーザーが表示部２０を装着した際にユーザーの右および左の眼前に位置する。右光学像表示部２６の一端および左光学像表示部２８の一端は、ユーザーが表示部２０を装着した際のユーザーの眉間に対応する位置で、互いに接続されている。
【００２０】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＲと装着基部９１の右側の連結部９３との間を結ぶ。
【００２１】
同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ＥＬと装着基部９１の左側の連結部（図示せず）との間を結ぶ。
【００２２】
右保持部２１及び左保持部２３が左右の連結部９３によって装着基部９１に連結されることで、右光学像表示部２６と左光学像表示部２８をユーザーの眼前に位置させる。なお、各連結部９３は、右保持部２１及び左保持部２３を回転可能に、且つ任意の回転位置に固定可能に連結する。この結果、表示部２０は、装着基部９１に対して回転可能に設けられることになる。
【００２３】
右保持部２１は、右光学像表示部２６の他端である端部ＥＲから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。
【００２４】
同様に、左保持部２３は、左光学像表示部２８の他端である端部ＥＬから、ユーザーが表示部２０を装着した際のユーザーの側頭部に対応する位置にかけて、延伸して設けられた部材である。右表示駆動部２２及び左表示駆動部２４（以下、まとめて表示駆動部という）は、ユーザーが表示部２０を装着した際のユーザーの頭部に対向する側に配置されている。
【００２５】
表示駆動部は、後述する右液晶ディスプレイ２４１（以下、右ＬＣＤ２４１）及び左液晶ディスプレイ２４２（以下、左ＬＣＤ２４２）や、右投写光学系２５１、左投写光学系２５２などを含む。表示駆動部の構成の詳細な説明は後述する。
【００２６】
右光学像表示部２６及び左光学像表示部２８（以下、まとめて光学像表示部という）は、後述する右導光板２６１及び左導光板２６２（以下、まとめて導光板という）、さらには調光板を含んでいる。導光板は、光透過性の樹脂材料等によって形成され、表示駆動部から出力された画像光をユーザーの眼に導く。
【００２７】
調光板は、薄板状の光学素子であり、ユーザーの眼の側とは反対の側である表示部２０の表側を覆うように配置されている。調光板の光透過率を調整することによって、ユーザーの眼に入る外光量を調整して虚像の見えやすさを調整できる。
【００２８】
表示部２０は、さらに、表示部２０を制御部１０に接続するための接続部４０を有している。接続部４０は、制御部１０に接続される本体コード４８と、右コード４２と、左コード４４と、連結部材４６と、を含んでいる。
【００２９】
右コード４２及び左コード４４は、本体コード４８が２本に分岐したコードである。表示部２０及び制御部１０は、接続部４０を介して各種信号の伝送を実行する。右コード４２と、左コード４４と、本体コード４８とには、例えば、金属ケーブルや光ファイバーを採用できる。
【００３０】
制御部１０は、ＨＭＤ１００を制御するための装置である。制御部１０は、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部１３５を有する。操作部１３５は、制御部１０の表面に配置されている。
【００３１】
図２は、ＨＭＤ１００の構成を機能的に示すブロック図である。図２に示すように、制御部１０は、ＲＯＭ１２１と、ＲＡＭ１２２と、電源１３０と、操作部１３５と、ＣＰＵ１４０と、インターフェース１８０と、送信部５１（Ｔｘ５１）および送信部５２（Ｔｘ５２）と、を有している。
【００３２】
電源１３０は、ＨＭＤ１００の各部に給電する。ＲＯＭ１２１には、種々のプログラムが格納されている。ＣＰＵ１４０は、ＲＯＭ１２１に格納された各種プログラムを、ＲＡＭ１２２に展開することで、各種プログラムを実行する。各種プログラムには、後述する姿勢更新処理を実現するためのものが含まれる。
【００３３】
ＣＰＵ１４０は、ＲＯＭ１２１に格納されているプログラムを、ＲＡＭ１２２に展開することにより、オペレーティングシステム１５０（ＯＳ１５０）、表示制御部１９０、音声処理部１７０、画像処理部１６０及び処理部１６７として機能する。
【００３４】
表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４を制御する制御信号を生成する。表示制御部１９０は、右表示駆動部２２及び左表示駆動部２４のそれぞれによる画像光の生成および射出を制御する。
【００３５】
表示制御部１９０は、右ＬＣＤ制御部２１１と左ＬＣＤ制御部２１２とに対する制御信号のそれぞれを、送信部５１及び５２を介して送信する。表示制御部１９０は、右バックライト制御部２０１と左バックライト制御部２０２とに対する制御信号のそれぞれを送信する。
【００３６】
画像処理部１６０は、コンテンツに含まれる画像信号を取得し、送信部５１、送信部５２を介して、取得した画像信号を表示部２０の受信部５３，受信部５４へと送信する。音声処理部１７０は、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材４６に接続された右イヤホン３２内のスピーカー（図示しない）および左イヤホン３４内のスピーカー（図示しない）に対して供給する。
【００３７】
処理部１６７は、例えばホモグラフィー行列により、オブジェクトの姿勢を算出する。オブジェクトの姿勢とは、カメラ６０とオブジェクトとの空間的関係のことである。処理部１６７は、算出した上記空間的関係と、ＩＭＵ７１によって検出された加速度等の検出値と、を用いて、カメラに固定された座標系からＩＭＵ７１に固定された座標系へと変換するための回転行列を算出する。処理部１６７の機能は、後述する姿勢更新処理に用いられる。
【００３８】
インターフェース１８０は、制御部１０に対して、コンテンツの供給元となる種々の外部機器ＯＡを接続するための入出力インターフェースである。外部機器ＯＡとしては、例えば、ＡＲシナリオを記憶している記憶装置、パーソナルコンピューター（ＰＣ）や携帯電話端末、ゲーム端末等がある。インターフェース１８０としては、例えば、ＵＳＢインターフェース、マイクロＵＳＢインターフェース、メモリーカード用インターフェース等を用いることができる。
【００３９】
表示部２０は、右表示駆動部２２と、左表示駆動部２４と、右光学像表示部２６としての右導光板２６１と、左光学像表示部２８としての左導光板２６２と、を備えている。本実施形態では、表示部２０とカメラ６０との間の３Ｄ−３Ｄの空間関係を表すパラメーター、および表示部２０の３Ｄ−２Ｄの写像パラメーター（レンダリングパラメーター）は、既知であり、ＲＯＭまたはＲＡＭに記憶されている。ＣＰＵ１４０は、これらのパラメーターと、カメラ座標系で表わされたオブジェクトの姿勢と、を用いて、オブジェクトの位置および姿勢とＡＲの位置および姿勢とが一致した状態をユーザーに視認させるように、３ＤＣＧモデル（ＡＲ）を、レンダリング、すなわち表示部２０に表示することができる。
【００４０】
右表示駆動部２２は、受信部５３（Ｒｘ５３）と、右バックライト制御部２０１及び右バックライト２２１と、右ＬＣＤ制御部２１１及び右ＬＣＤ２４１と、右投写光学系２５１と、を含んでいる。右バックライト制御部２０１及び右バックライト２２１は、光源として機能する。
【００４１】
右ＬＣＤ制御部２１１及び右ＬＣＤ２４１は、表示素子として機能する。なお、他の実施形態では、右表示駆動部２２は、上記構成に代えて、有機ＥＬ表示素子などの自発光型表示素子を備えてもよいし、レーザーダイオードからの光ビームを網膜上でスキャンするスキャン型の表示素子を備えてもよい。左表示駆動部２４についても、同様である。
【００４２】
受信部５３は、制御部１０と表示部２０との間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部２０１は、入力された制御信号に基づき、右バックライト２２１を駆動する。右バックライト２２１は、例えば、ＬＥＤやエレクトロルミネッセンス（ＥＬ）等の発光体である。右ＬＣＤ制御部２１１は、画像処理部１６０及び表示制御部１９０から送信された制御信号に基づき、右ＬＣＤ２４１を駆動する。右ＬＣＤ２４１は、複数の画素をマトリクス状に配置した透過型液晶パネルである。
【００４３】
右投写光学系２５１は、右ＬＣＤ２４１から射出された画像光を平行状態の光束にするコリメートレンズによって構成される。右光学像表示部２６としての右導光板２６１は、右投写光学系２５１から出力された画像光を、所定の光路に沿って反射させつつユーザーの右眼ＲＥに導く。なお、左表示駆動部２４は、右表示駆動部２２と同様の構成を有し、ユーザーの左眼ＬＥに対応するため、説明を省略する。
【００４４】
ＩＭＵ７１及びカメラ６０を用いたキャリブレーションは、慣性センサーであるＩＭＵ７１の性能によって精度が異なる。精度が高くない安価なＩＭＵが用いられると、キャリブレーションには、大きな誤差やドリフトが発生することがある。
【００４５】
本実施形態では、ＩＭＵ７１を用いたマルチポジション法を用いたバッチ・ソリューション・ベース・アルゴリズムによってキャリブレーションを実行する。本実施形態では、ＩＭＵ７１とカメラ６０との間の並進関係については、製造時の設計データを用いる。
【００４６】
ＩＭＵ７１とカメラ６０とのそれぞれに対して、別々のキャリブレーション（以下、独立キャリブレーション）が実行される。独立キャリブレーションの具体的な方法については、周知技術を用いる。
【００４７】
独立キャリブレーションでは、ＩＭＵ７１が較正される。具体的には、ＩＭＵ７１に含まれる３軸の加速度センサー（Ａｘ，Ａｙ，Ａｚ）と、３軸のジャイロセンサー（Ｇｘ，Ｇｙ，Ｇｚ）と、３軸の地磁気センサー（Ｍｘ，Ｍｙ，Ｍｚ）とに対して、ゲイン／スケールと、静的なバイアス／オフセットと、３軸間のスキューと、についてキャリブレーションが実行される。
【００４８】
これらのキャリブレーションが実行されると、ＩＭＵ７１は、加速度、角速度、地磁気のそれぞれについての出力値として、加速度と角速度と地磁気とを出力する。これらの出力値は、ゲイン、静的なバイアス／オフセット、および３軸間のミスアライメントを修正した値である。これらのキャリブレーションは、本実施形態では、ＨＭＤ１００の製造時において製造工場などで実施される。
【００４９】
独立キャリブレーションで実行されるカメラ６０のキャリブレーションでは、カメラ６０における焦点距離、スキュー、主点位置、歪みを含むカメラ６０の内部パラメーターがキャリブレーションされる。カメラ６０のキャリブレーションには、周知技術を適用できる。
【００５０】
ＩＭＵ７１に含まれる各センサーのキャリブレーションが実行された後においては、ＩＭＵ７１における加速度、角速度、地磁気のそれぞれのセンサーの検出値（計測された出力）を融合して、精度の高いＩＭＵ配向を得ることができる。
【００５１】
姿勢更新処理の概要を説明する。（１）高精度な３Ｄモデルの利点を利用し、エッジを含むオブジェクト表面のより高精度な３Ｄ特徴要素を取得する。（２）周囲のシーンにおける付加的な特徴要素を利用し、不利なオブジェクトのアピアランスに対しても、究極的にはオブジェクトの完全な遮蔽または視野からの不在に対しても、追跡器をロバストにする。姿勢更新処理によって、高精度にオブジェクトの姿勢を推定することと、高精度に推定された姿勢をロバストに追跡することと、が可能になる。
【００５２】
上記の内容について、説明を補足する。
【００５３】
以下では、ユーザーが移動することによってカメラ６０の位置（回転を含む）が移動することを前提にし、シーン（背景）に対して静止したオブジェクトを追跡する問題（シナリオ）を考える。このシナリオは、拡張現実アプリケーション、またはロボティクスにおけるビジュアルサーボにおいて、よく見られる。
【００５４】
３Ｄモデルに基づく追跡器は、オブジェクトに対するカメラ６０の姿勢を推定するために使用される。なお、オブジェクトに対するカメラ６０の姿勢は、カメラ６０に対するオブジェクトの姿勢と捉えても同じことである。
【００５５】
しかしながら、オブジェクト上で不十分な量の特徴要素しか追跡されない場合には、追跡の信頼性が低下する。小さいオブジェクトサイズ、オブジェクトのオクルージョン（遮蔽）、および／またはオブジェクトの外観に起因して、特徴要素の追跡が不十分になり得る。
【００５６】
そこで、ＳＬＡＭ法によって、シーン全体を追跡することができる。シーン全体を追跡するから、そのような方法の信頼性は、シーンに含まれるオブジェクトの外観が好適でない場合でも、高くなり得る。
【００５７】
ＳＬＡＭ法によれば、復元された３Ｄ構造は、既知の３Ｄモデルほどには高精度ではないことから、高精度ではない追跡結果に帰着する。
【００５８】
さらに、シーンにおいて３Ｄモデルに対応するオブジェクト（実オブジェクト）を検出することは、拡張現実情報の重畳目的またはロボットの操作目的にとって必要になり得る。これは、ＳＬＡＭ法を用いる場合であっても同様である。そこで、本実施形態では、３Ｄモデルベーストラッキング技術とモデルフリーであるＳＬＡＭとを統合する。
【００５９】
本実施形態の方法は、標準的なモデルベースの３Ｄオブジェクトトラッキングを用いることから開始する。ここで、オブジェクトの表面上の３Ｄ特徴要素は、フレームからフレームへとトラッキングされており、カメラ６０の姿勢を更新するために用いられている。
【００６０】
加えて、本実施形態では、多重な２Ｄトラックを生成しながら、シーンの特徴要素をトラッキングし続ける。多重な生成とは、追跡されるシーン特徴要素につき１つを生成するという意味である。それぞれのトラックは、追跡される特徴要素のフレーム毎の２Ｄ位置と、３Ｄモデルベーストラッカーを用いて推定されたフレーム毎の３Ｄカメラ姿勢と、を記憶している。
【００６１】
次に、この情報は、三角測量法またはバンドル調整法を用いて、シーン特徴要素の３Ｄ位置を復元するのに用いられる。追加の３Ｄシーン特徴要素が利用可能になると、それらは、未来のフレームについてカメラ姿勢が推定される際に、３Ｄ−ｔｏ−２Ｄ対応関係リストに追加され得る。
【００６２】
最後に、シーン点の３Ｄ位置は、一旦、観測されたシーン特徴要素を有するさらなるフレームが利用可能になると、バンドル調整によってさらに改善される。
【００６３】
上記の内容を、フローチャートに沿って説明する。
【００６４】
図３は、姿勢更新処理を示すフローチャートである。姿勢更新処理に含まれる各ステップの実行主体は、ＣＰＵ１４０である。
【００６５】
まず、追跡の初期であるかを判断する（Ｓ２００）。オブジェクトの姿勢を捕捉している場合は、追跡の初期ではない。反対に、オブジェクトの姿勢を喪失している場合は、追跡の初期である。ここでいう喪失とは、一度も姿勢を捉えていない場合と、過去に捉えた姿勢を喪失した場合とを含む。
【００６６】
追跡の初期である場合（Ｓ２００，ＹＥＳ）、オブジェクトの姿勢を検出する（Ｓ３００）。オブジェクト姿勢の検出とは、カメラ６０を原点とした座標系（カメラ座標系）における回転位置（Ｒ）と並進位置（Ｔ）とを示す変換行列（Ｒ：Ｔ）を決定することである。本実施形態において、姿勢を追跡することは、この変換行列（Ｒ：Ｔ）を最適化することと同義である。
【００６７】
一度も姿勢を捉えていない場合に、Ｓ３００を実行することを初期化という。過去に捉えた姿勢を喪失した場合に、Ｓ３００を実行することを再初期化という。
【００６８】
図４は、オブジェクト姿勢の検出のフローチャートである。初めに、カメラ６０を用いてオブジェクトＯＢを含むシーンの撮像画像を取得する（Ｓ３２１）。図５は、オブジェクトＯＢとシーンＳＮとを撮像する様子を示す。
【００６９】
続いて、撮像されたオブジェクトＯＢの画像に対して、以下に述べるエッジ検出を実行する（Ｓ３２３）。
【００７０】
Ｓ３２３は、撮像されたオブジェクトＯＢと、２Ｄテンプレートとを対応付けるために実行される。２Ｄテンプレートは、撮像されたオブジェクトＯＢに対応するとともに、そのオブジェクトＯＢの位置と姿勢を反映する。制御部１０は、複数の２Ｄテンプレートを予め記憶している。
【００７１】
ここで、各２Ｄテンプレートは、当該オブジェクトＯＢに対応する３Ｄモデルを、それぞれのビューに基づいて、仮想的な画像平面（イメージプレーン）にレンダリングすることで得られるそれぞれの２Ｄモデルに基づいて作成されたデータである。
【００７２】
ビューとは、仮想カメラに対する回転と並進を表す３次元剛体変換行列、およびカメラパラメーターを含む透視写像（透視投影）変換行列を含んでいる。具体的には、各２Ｄテンプレートは、２Ｄモデルの特徴点（本実施形態ではエッジに含まれる点）を表す２Ｄモデル点と、当該２Ｄモデル点に対応する３Ｄモデル点と、当該ビューと、を含んでいる。２Ｄモデル点は、当該イメージプレーン上に原点を有する２Ｄ座標系（イメージプレーン座標系）で表されている。３Ｄモデル点は、３Ｄモデルに原点が固定された３Ｄ座標系（３Ｄモデル座標系）で表されている。
【００７３】
エッジの検出のために、撮像画像のピクセルに基づいて、エッジとなる特徴要素を計算する。本実施形態では、オブジェクトＯＢの撮像画像のピクセル毎の輝度のグラディエントを計算することで、特徴要素を決定する。本実施形態では、エッジを検出するために、カニーエッジ検出方法における手続と同様に、単に、エッジを閾値と比較し、最大でないものを抑制する（non-maxima suppression）。
【００７４】
次に、記憶されている複数の２Ｄテンプレートの中から、撮像されたオブジェクトＯＢの画像の姿勢に最も近いビューから生成された２Ｄテンプレートを選択する（Ｓ３２５）。
【００７５】
この選択のために、オブジェクトＯＢの大まかな姿勢を推定する既存の３次元姿勢推定アルゴリズムが別途利用されてもよい。
【００７６】
但し、３Ｄ姿勢の高精度化を行う際に、既に選択したビューよりも、オブジェクトＯＢの画像の姿勢に近い新たなビューを見つけることがある。新たなビューを見つけた場合には、新たなビューの３Ｄ姿勢の高精度化を行う。
【００７７】
なお、他の実施形態では、予め作成された２Ｄテンプレートを用いるのではなく、オブジェクトＯＢを撮像すると共に、その場で(on the fly)、しかも必要であれば照明などの撮像環境をレンダリングに反映しながら、３ＤＣＡＤデータから２Ｄモデルを含む２Ｄテンプレートを作成することで、なるべく多くの視認可能なエッジを抽出してもよい。
【００７８】
続いて、オブジェクトＯＢの画像のエッジに含まれる画像点と、２Ｄテンプレートに含まれる２Ｄモデル点との対応付けを実行する（Ｓ３２７）。
【００７９】
本実施形態では、それぞれの写像された２Ｄモデル点の周囲の局所的近隣に含まれる全ての画像点について、同様性スコアを計算する。同様性スコアの計算については、周知の手法を適用する。
【００８０】
次に、画像点に対応付けられた２Ｄモデル点に対応する３Ｄモデル点と、当該２Ｄモデル点を作成したときのビューの情報と、を取得する（Ｓ３２９）。
【００８１】
次に、取得されたビューを表す変換行列を読み出す（Ｓ３３１）。変換行列とは、カメラ６０を原点とした座標系で表された３次元剛体変換行列、および透視写像（透視投影）変換行列である。
【００８２】
最後に、カメラ６０によって撮像されたオブジェクトＯＢの姿勢を最適化する（Ｓ３３３）。この最適化によって姿勢の初期化が完了する。Ｓ３３３は、画像点と、画像点に対応する３Ｄモデル点と、Ｓ３３１で取得したビューとに基づき、最適な回転行列と並進行列とを導出するように繰り返し計算により実行される。
【００８３】
一方、追跡の初期ではない場合（Ｓ２００，ＮＯ）、オブジェクト検出処理をスキップする。
【００８４】
続いて、オブジェクトＯＢの姿勢を追跡する（Ｓ４１０）。オブジェクトＯＢの姿勢の追跡は、現在位置の撮像画像と、直近に取得した変換行列（Ｒ：Ｔ）とに基づき実施される。直近に取得した変換行列（Ｒ：Ｔ）とは、オブジェクト姿勢の検出を実行した直後の場合は、その検出された姿勢である。オブジェクト姿勢の検出を実行した直後でない場合は、後述するＳ４５０で更新した姿勢である。
【００８５】
現在位置の撮像画像は、第１画像とも呼ぶ。現在位置は、第１位置とも呼ぶ。図５では、現在位置の撮像画像は、画像Ｇ１として示されている。
【００８６】
次に、上記オブジェクト姿勢を用いて、第１画像に対応する３Ｄシーン（背景構造）を再構築する（Ｓ４２０）。つまり、第１画像に対応する３Ｄシーン特徴点ＳＰそれぞれの位置を、カメラ座標系Ｃｃａｍにおける３Ｄシーン点ＳＰ３ｃの位置として求める。Ｓ４２０の実施に際して、シーン特徴要素として、撮像画像から複数の２Ｄシーン点ＳＰ２を選択する。
【００８７】
Ｓ４２０には、三角測量法またはバンドル調整法を用いる。Ｓ４２０には、現在位置の撮像画像と、現在とは異なる時点（例えば次の画像フレーム）での別の位置（位置および／または角度を含む）の撮像画像とを用いる。別の位置の撮像画像とは、現在位置の撮像画像とは異なる位置から撮像された画像である。
【００８８】
別の位置の撮像画像は、第２画像とも呼ぶ。別の位置は、第２位置と呼ぶ。第２画像は、１つでもよいし、２つ以上でもよい。図５では、別の位置の撮像画像（第２画像）は、１つの画像Ｇ２として示されている。本実施形態では、初期化又は初期化の後で、３Ｄモデルのみを用いたオブジェクト姿勢の追跡は第２画像に対しても行われる。
【００８９】
次に、３Ｄシーン点ＳＰ３ｃの位置を座標変換する（Ｓ４３０）。Ｓ４２０で求めた３Ｄシーン点ＳＰ３ｃの位置は、先述したようにカメラ座標系Ｃｃａｍで現れている。Ｓ４３０では、第１画像に対応するオブジェクト姿勢（Ｒ：Ｔ）に基づき、３Ｄシーン点ＳＰ３ｃの位置を、３Ｄモデル座標系Ｃｍｄｌにおける位置に変換する。この変換によって、３Ｄシーン点ＳＰ３ｃは、３Ｄシーン点ＳＰ３ｍになる。
【００９０】
次に、３Ｄ点と第２画像における２Ｄ画像点との対応付けを実施する（Ｓ４４０）。３Ｄ点とは、３Ｄモデル点ＭＰと３Ｄシーン点ＳＰ３ｍとの総称である。２Ｄ画像点とは、撮像画像に含まれるオブジェクト点ＯＰ２と２Ｄシーン点ＳＰ２との総称であり、本実施形態では、２Ｄ画像点は第２画像に含まれる。オブジェクト点ＯＰ２は、オブジェクト特徴点ＯＰを撮像することによって得られる点である。オブジェクト点ＯＰ２は、オブジェクト姿勢の検出（Ｓ２００）において検出されたエッジと同じでもよいし、違っていてもよい。
【００９１】
３Ｄモデル点ＭＰと第２画像におけるオブジェクト点ＯＰ２との対応関係を、第１関係と呼ぶ。３Ｄシーン点ＳＰ３ｍと第２画像における２Ｄシーン点ＳＰ２との対応関係を、第２関係と呼ぶ。第１及び第２関係を求めることによって、３Ｄモデル座標系とカメラ座標系との関係が、対応付けられた点の数だけ、求まることになる。
【００９２】
次に、オブジェクト姿勢（Ｒ：Ｔ）を更新する（Ｓ４５０）。つまり、Ｓ４５０では、第２画像に対応するオブジェクト姿勢（Ｒ：Ｔ）を、第１及び第２関係を利用して修正する。具体的には、３Ｄ点を画像平面に写像することで得られる点と、当該３Ｄ点に対応する２Ｄ画像と、の間の差（再写像エラー）が最小になるように、ガウス・ニュートン法等の反復計算により、オブジェクト姿勢（Ｒ：Ｔ）を導出する。本実施形態では、上述の通り、追跡により第２画像に対応するオブジェクト姿勢は別途得られているから、便宜上、Ｓ４５０で改めてオブジェクト姿勢を導出することを「姿勢を更新する」と表記している。また、本実施形態では、３Ｄモデル座標系で表された３Ｄシーン点ＳＰ３ｍが求まった後では、オブジェクト姿勢は、初期化が再度必要になるまで、オブジェクトからの特徴点とシーンからの特徴点とを用いた再写像エラーを最小にすることで、追跡され得る。これにより、オブジェクトを追跡している最中に、カメラから見て、オブジェクトが部分的にまたは完全に遮蔽されても、当該カメラに対するオブジェクトの３Ｄ姿勢を追跡し、把握することができる。
【００９３】
次に、姿勢更新処理を終了するかを判断する（Ｓ４６０）。終了しない場合（Ｓ４６０，ＮＯ）、Ｓ２００に戻る。終了する場合（Ｓ４６０，ＹＥＳ）、姿勢更新処理を終了する。なお、ユーザーから終了の指示が入力されると、Ｓ４６０でＹＥＳと判断する。
【００９４】
ＨＭＤ１００は、姿勢更新処理によって導出された姿勢に基づき、オブジェクトＯＢに、ＡＲを重畳させて表示する。
【００９５】
以上に説明した本実施形態によれば、オブジェクトの姿勢を導出する際にシーンの情報も用いているため、オブジェクトの姿勢追跡精度が向上する。
【００９６】
本開示は、本明細書の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、先述の課題の一部又は全部を解決するために、或いは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下のものが例示される。
【００９７】
図６は、姿勢更新処理を示すフローチャートである。図６に示された内容は、実施形態として図３に示された内容と殆ど同じであり、表現の仕方を変更したものである。このため、説明は適宜、省略する。
【００９８】
図３と図６とで内容が同じ又は対応するステップは、ステップ番号の百の位と十の位とに同じ数字が用いられている。但し、図６を示すフローチャートにおけるＳ５００は、実施形態におけるＳ４２０、Ｓ４３０及びＳ４４０に対応するステップである。
【００９９】
図６に示すように、Ｓ４１１にはＲＧＢ画像が用いられる。実施形態のＳ４１０で説明した通り、カメラ６０によって取得されるＲＧＢ画像（撮像画像）を利用して、オブジェクトＯＢの特徴要素であるオブジェクト特徴点ＯＰを追跡する。そして、Ｓ４１１では、ＲＧＢ画像から、２Ｄ特徴要素を抽出する。抽出される特徴要素は、オブジェクトＯＢと、シーンＳＮとのそれぞれについての特徴要素である。
【０１００】
Ｓ４４１においては、実施形態のＳ４４０として説明した内容のうち、３Ｄモデル点ＭＰとオブジェクト点ＯＰ２との対応付けを実施する。
【０１０１】
Ｓ５００では、Ｓ３０１で導出された姿勢、または後述するＳ４５１にて導出された姿勢を利用して、三角測量法またはバンドル調整によって、３Ｄシーン点ＳＰ３ｃが求められる。さらに、Ｓ５００では、３Ｄシーン点ＳＰ３ｃが、３Ｄモデル座標系で表された３Ｄシーン点ＳＰ３ｍに変換される。そして、３Ｄシーン点ＳＰ３ｍと２Ｄシーン点ＳＰ２との対応付けのための処理が実行される。つまり、実施形態における４４０の一部、並びにＳ４２０及びＳ４３０Ｓが実施される。
【０１０２】
Ｓ４４１及びＳ５００によって、実施形態と同様、３Ｄ点と画像点との対応関係が得られる。この３Ｄ―２Ｄの対応関係は、実施形態と同様、姿勢の更新（Ｓ４５１）に用いられる。Ｓ４５１で導出された姿勢は、初期化としてのＳ３０１が再度実行されるまで、次の画像フレームに含まれるオブジェクトの３Ｄ姿勢の追跡にも用いられ続ける。
【０１０３】
上記において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。また、ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、又は、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
【０１０４】
上記の処理を実行する表示装置は、ビデオシースルー型ＨＭＤでよい。ビデオシースルー型ＨＭＤの場合には、カメラが撮像したシーン画像上のオブジェクト上またはその近傍に、対応するＶＲ画像を、当該オブジェクトの姿勢に応じて表示する場合に利用可能である。また、上記処理を実行する装置は、ＨＭＤ（頭部装着型）でなくてもよい。ＨＭＤ以外としては、ロボットに適用してもよいし、携帯型の表示装置（例えばスマートフォン）でもよいし、ヘッドアップディスプレイ（ＨＵＤ）でもよいし、据え置き型の表示装置でもよい。
【符号の説明】
【０１０５】
１０…制御部、２０…表示部、２１…右保持部、２２…右表示駆動部、２３…左保持部、２４…左表示駆動部、２６…右光学像表示部、２８…左光学像表示部、４０…接続部、４２…右コード、４４…左コード、４６…連結部材、４８…本体コード、５１…送信部、５２…送信部、５３…受信部、５４…受信部、６０…カメラ、６１…カメラ基部、６２…レンズ部、７１…慣性センサー、９０…装着帯、９１…装着基部、９２…ベルト、９３…連結部、１２１…ＲＯＭ、１２２…ＲＡＭ、１３０…電源、１３５…操作部、１４０…ＣＰＵ、１５０…オペレーティングシステム、１６０…画像処理部、１６７…処理部、１７０…音声処理部、１８０…インターフェース、１９０…表示制御部、２０１…右バックライト制御部、２０２…左バックライト制御部、２１１…右ＬＣＤ制御部、２１２…左ＬＣＤ制御部、２２１…右バックライト、２４１…右液晶ディスプレイ、２４２…左液晶ディスプレイ、２５１…右投写光学系、２５２…左投写光学系、２６１…右導光板、２６２…左導光板、ＥＬ…端部、ＥＲ…端部、Ｇ１…画像、Ｇ２…画像、ＭＰ…３Ｄモデル点、ＯＢ…オブジェクト、ＯＰ…オブジェクト特徴点、ＯＰ２…オブジェクト点、ＳＰ…３Ｄシーン特徴点、ＳＰ２…２Ｄシーン点、ＳＰ３ｃ…３Ｄシーン点、ＳＰ３ｍ…３Ｄシーン点
【図１】
2018067115.tif 000003
【図２】
2018067115.tif 000004
【図３】
2018067115.tif 000005
【図４】
2018067115.tif 000006
【図５】
2018067115.tif 000007
【図６】
2018067115.tif 000008