JP2017010533A - マーカー、マーカーの位置および姿勢を検出する方法、および、コンピュータープログラム - Google Patents
マーカー、マーカーの位置および姿勢を検出する方法、および、コンピュータープログラム Download PDFInfo
- Publication number
- JP2017010533A JP2017010533A JP2016095734A JP2016095734A JP2017010533A JP 2017010533 A JP2017010533 A JP 2017010533A JP 2016095734 A JP2016095734 A JP 2016095734A JP 2016095734 A JP2016095734 A JP 2016095734A JP 2017010533 A JP2017010533 A JP 2017010533A
- Authority
- JP
- Japan
- Prior art keywords
- marker
- circle
- specifying
- rectangle
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
【課題】撮像画像の中から検出するマーカーの位置および姿勢の精度を向上させた技術を提供する。
【解決手段】撮像部に対する位置および姿勢が推定されるマーカーは;矩形を特定する矩形特定点と;2つの対角線の内の1つである第1対角線の線上に中心があり、矩形内に含まれる複数の円の集合である第1円群と;2つの対角線の内の第1対角線とは異なる第2対角線の線上に中心があり、矩形内に含まれる複数の円の集合である第2円群と;矩形の方向を特定する方向特定点と、を備える、マーカー。
【選択図】図1
【解決手段】撮像部に対する位置および姿勢が推定されるマーカーは;矩形を特定する矩形特定点と;2つの対角線の内の1つである第1対角線の線上に中心があり、矩形内に含まれる複数の円の集合である第1円群と;2つの対角線の内の第1対角線とは異なる第2対角線の線上に中心があり、矩形内に含まれる複数の円の集合である第2円群と;矩形の方向を特定する方向特定点と、を備える、マーカー。
【選択図】図1
Description
本発明は、マーカーの検出、より好適にはマーカーの位置および姿勢の検出の技術に関する。
従来のマーカーの検出方法では、例えば、特許文献1に記載されているように、予め既知の矩形状に形成されたマーカーを撮像して、撮像したマーカーの四辺などのエッジとしての要素を特定することで、マーカーを撮像した撮像部に対するマーカーの位置や姿勢を特定している。
従来のマーカーの検出方法では、同じ外形を有するマーカー以外の対象を撮像すると、誤検出をしてしまうおそれがあった。また、特定されたマーカーの位置や姿勢の精度をより向上させたいという課題があった。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
(1)本発明の一形態によれば、マーカーは、矩形を特定する矩形特定点と;特定された前記矩形の2つの対角線の内の1つである第1対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合である第1円群と;前記2つの対角線の内の前記第1対角線とは異なる第2対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合である第2円群と;方向特定点と、を備える。この形態のマーカーによれば、マーカーが撮像された場合に、矩形特定点に加えて、第1円群および第2円分に含まれる複数の円と方向特定点とが用いられて、マーカーが認識されるため、マーカーが検出されやすい。これにより、例えば、マーカーが撮像されることで、撮像部が撮像する外景に表示画像を重畳させるためのキャリブレーションがより正確に行なわれる。
(2)上記形態のマーカーにおいて、さらに;2つの対角線の交点を中心とする中心円を備えてもよい。この形態のマーカーによれば、中心円を有することで、マーカーが撮像された場合に、中心円の中心を基準点として特定されることで、正確に基準点が特定されることで、より正確にマーカーが特定される。
(3)上記形態のマーカーにおいて、前記中心円は、前記第1円群に含まれる円であり、前記第2円群に含まれる円であってもよい。この形態のマーカーによれば、中心円が第1円群と第2円群との両方に含まれるため、一方に含まれる場合と比較して、マーカーが撮像された場合に、マーカーがより正確に特定される。
(4)上記形態のマーカーにおいて、前記方向特定点は、2つの対角線の交点と異なり、前記矩形内に含まれる方向特定円の中心点であってもよい。この形態のマーカーによれば、中心円の中心と異なる方向特定点がマーカーの方向を特定する点として用いられるため、撮像されたマーカーの方向が簡便に特定される。
(5)上記形態のマーカーにおいて、前記方向特定円は、2つの対角線の交点を中心とする中心円と、前記第1円群に含まれる円と、前記第2円群に含まれる円とは、異なる円であってもよい。この形態のマーカーによれば、中心円と異なる円の中心が方向特定円として用いられるため、撮像されたマーカーの方向がより正確に特定される。
(6)上記形態のマーカーにおいて、前記方向特定円は、1つの円であってもよい。この形態のマーカーによれば、1つの円によってマーカーの方向が特定されるため、簡便にマーカーの方向が特定される。
(7)上記形態のマーカーにおいて、前記第1円群と前記第2円群とは、前記矩形の前記中心を通ると共に前記矩形の一辺と平行な直線に対して線対称、および2つの対角線の交点に対して点対称の少なくとも一方の対称性で形成されていてもよい。この形態のマーカーによれば、マーカーに含まれる複数の円が対称的に形成されているため、撮像画像の中から簡便にマーカーが抽出される。
(8)上記形態のマーカーにおいて、前記矩形に含まれる円の大きさは、全て同じであってもよい。この形態のマーカーによれば、複数の円の大きさが同じであるため、撮像画像の中における円とそれ以外の形状とが明確に区別され、撮像画像の中から簡便にマーカーが抽出されやすい。
(9)上記形態のマーカーにおいて、前記矩形に含まれる円は、白色または黒色であり;前記矩形特定点は、前記矩形の外枠が交差する4つの頂点であり、前記矩形に含まれる円以外の部分は、前記円と異なる白色または黒色であってもよい。この形態のマーカーによれば、マーカー内における複数の円とそれ以外の部分とが明確に区別されるため、マーカーが特定されやすい。
(10)上記形態のマーカーにおいて、前記第1円群は、2つの対角線の交点を中心とする複数の円の中心間の距離が同じで、同じ大きさの円によって形成され;前記第2円群は、2つの対角線の交点を中心とする複数の円の中心間の距離が前記第1円群に含まれる円の中心間の距離と同じで、前記第1円群に含まれる円と同じ大きさの円によって形成されてもよい。この形態のマーカーによれば、マーカー内における複数の円とそれ以外の部分とが1つのパターンによって区別されるため、撮像画像の中から簡便にマーカーが抽出されやすい。
(11)本発明の他の形態によれば、撮像部に対するマーカーの位置および姿勢を検出する方法が提供される。この方法は、外景を撮像する工程と;撮像された外景の画像から前記マーカーを抽出するマーカー抽出工程と;抽出された前記マーカーの方向を特定する方向特定点を特定する方向特定工程と;抽出された前記マーカーの中から前記方向特定点以外で、前記マーカーを特定するための複数の特定点を特定する特定工程と;特定された前記マーカーの方向特定点と、特定された前記複数の特定点と、に基づいて、前記撮像部に対する位置および姿勢を算出する算出工程と、を備える。この形態の方法によれば、表示画像の基の画像データを表示させる画像表示部の画素のそれぞれを、算出された補正値に基づいて設定することで、撮像された外景に表示画像を重畳させて使用者に視認させることができる。
(12)上記形態の方法において、前記マーカー抽出工程と前記方向特定工程と前記特定工程とでは;撮像された外景の画像に対して、予め設定された階調値としての第1閾値を基準として2値化が行なわれ、前記第1閾値による2値化によって前記複数の座標を抽出できない場合には、前記第1閾値に予め設定された階調補正値を加えた第2閾値を前記第1閾値として置換して2値化が行なわれ;前記第1閾値による2値化は、前記マーカー抽出工程における前記マーカーの抽出と前記方向特定工程における前記方向特定点の特定と前記特定工程における前記複数の特定点の特定を実行する、または、前記第1閾値に前記階調補正値を加えた値が所定の値を超えるまで行なわれてもよい。この形態の方法によれば、1つの撮像された外景の画像に対して、異なる階調値の閾値によって複数の2値化を行なうため、外景の画像の中にマーカーが含まれる場合に、より正確にマーカーを抽出しやすい。
(13)上記形態の方法において、前記方向特定点および前記複数の特定点は、円の中心点を用いて特定されてもよい。この形態の方法によれば、撮像された外景の画像に含まれる特定点としての一点を特定するために、特定点を中心とする円の輪郭の複数の測定点を用いて特定するため、より正確に特定点を特定できる。
(14)本発明の他の形態によれば、撮像部を備えた装置を制御するためのコンピューターに、マーカーを検出させるためのコンピュータープログラムが提供される。このコンピュータープログラムは、前記撮像部を介して外景を撮像する第1の撮像機能と、撮像された外景の画像から前記マーカーを抽出するマーカー抽出機能と、抽出された前記マーカーの方向を特定する方向特定点を特定する方向特定機能と、特定された前記マーカーの中から前記方向特定点以外で、前記マーカーを特定するための複数の特定点を特定する特定機能と、特定された前記マーカーの方向特定点と、特定された前記複数の特定点と、に基づいて、前記撮像部に対する前記マーカーの位置および姿勢を算出する算出機能と、をコンピューターに実現させてもよい。
(15)前記装置は、慣性センサーを含み;前記形態のコンピュータープログラムは、前記撮像部を介して前記マーカーを撮像する第2の撮像機能と;前記第2の撮像機能によって得た前記撮像部の出力と、前記慣性センサーの出力と、に基づき、センサー融合アルゴリズムによって前記慣性センサーの位置と姿勢を推定する融合機能と;前記算出機能によって算出された前記マーカーの前記位置および姿勢と、前記融合機能によって導出された前記慣性センサーの前記位置および姿勢と、に少なくとも基づいて、前記マーカーの位置および姿勢を算出する第2の算出機能と、をコンピューターに実現させてもよい。この形態のコンピュータープログラムによれば、慣性センサーがある場合には、たとえマーカーの大きさが小さい場合、または撮像部からマーカーまでの距離が長くなる場合でも、マーカーの追跡が非常に安定し(ジッターが少ない)、さらに、レイテンシーも減少する。
(16)本発明の他の形態によれば、マーカーは、矩形を特定する矩形特定要素と;特定された前記矩形の2つの対角線の内の1つである第1対角線の線上にあり、前記矩形内に含まれる複数の特定要素の集合である第1特定要素群と;前記2つの対角線の内の前記第1対角線とは異なる第2対角線の線上にあり、前記矩形内に含まれる複数の特定要素の集合である第2特定要素群と;方向特定要素と、を備える。この形態のマーカーによれば、マーカーが撮像された場合に、矩形特定要素に加えて、第1特定要素群および第2特定要素群に含まれる複数の特定要素と方向特定要素とが用いられて、マーカーが認識されるため、マーカーが検出されやすい。これにより、例えば、マーカーが撮像されることで、撮像部が撮像する外景に表示画像を重畳させるためのキャリブレーションがより正確に行なわれる。
上述した本発明の各形態の有する複数の構成要素はすべてが必須のものではなく、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、適宜、前記複数の構成要素の一部の構成要素について、その変更、削除、新たな他の構成要素との差し替え、限定内容の一部削除を行なうことが可能である。また、上述の課題の一部または全部を解決するため、あるいは、本明細書に記載された効果の一部または全部を達成するために、上述した本発明の一形態に含まれる技術的特徴の一部または全部を上述した本発明の他の形態に含まれる技術的特徴の一部または全部と組み合わせて、本発明の独立した一形態とすることも可能である。
例えば、本発明の一形態は、矩形特定点と、第1円群と、第2円群と、方向特定点と、の4つの要素の内の一部または全部を備えたマーカーとして実現可能である。すなわち、このマーカーは、矩形特定点を有していてもよく、有していなくてもよい。また、マーカーは、第1円群を有していてもよく、有していなくてもよい。また、マーカーは、第2円群を有していてもよく、有していなくてもよい。また、マーカーは、方向特定点を有していてもよく、有していなくてもよい。矩形特定点は、例えば、矩形を特定してもよい。例えば、第1円群は、特定された前記矩形の2つの対角線の内の1つである第1対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合であってもよい。例えば、第2円群は、前記2つの対角線の内の前記第1対角線とは異なる第2対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合であってもよい。例えば、方向特定点は、前記矩形の方向を特定してもよい。こうしたマーカーは、例えば、マーカー以外の物としても実現可能である。このような形態によれば、マーカーの簡易化、マーカーの一体化や、マーカーを使用する際の利便性の向上、等の種々の課題の少なくとも1つを解決することができる。前述したマーカーの各形態の技術的特徴の一部または全部は、いずれもこの装置に適用することが可能である。
本発明は、マーカー以外の種々の形態で実現することも可能である。例えば、マーカーを有する装置、マーカーの位置および姿勢を検出する方法、マーカーの位置および姿勢を検出できる検出装置、マーカーの位置および姿勢の検出をコンピューターに実現させるためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体、および、そのコンピュータープログラムを含み搬送波内に具現化されたデータ信号等の形態で実現できる。
A.第1実施形態:
A−1.マーカーの構成:
図1は、第1実施形態におけるキャリブレーションを行なうために用いられるマーカーMK1の説明図である。従来、使用者に画像を視認させるための装置として、使用者の頭部に画像表示部が装着されることで、画像表示部が表示する画像を使用者に視認させ、かつ、画像表示部が透過する外景も使用者に視認させる頭部装着型表示装置((Head Mounted Display)、HMD)が知られている。本実施形態のHMDは、外景に存在する所定の実オブジェクトに対応する仮想オブジェクト(表示画像)を、位置と姿勢も含め重畳(アライン)させて使用者に視認させる機能を有することができる。この機能を達成するために、平均的な頭部サイズ(眼間距離を含む)に合わせて、HMDが備える撮像部および画像表示部がキャリブレーションされている(これをファクトリー・キャリブレーションとも呼ぶ)。実際の使用者が使用する際には、頭部サイズの個人差およびHMDのかけ方の差異があることから、それらに合わせてファクトリー・キャリブレーションをカスタマイゼーションすることが好ましい(これをキャリブレーション・カスタマイゼーション、または単にキャリブレーションと呼ぶ)。理想的には、キャリブレーション・カスタマイゼーションは、実オブジェクトと撮像部との間の相対位置関係、撮像部のカメラパラメーター、撮像部と表示装置との間の相対位置関係、画像表示装置のプロジェクターパラメーター(レンダリングカメラパラメーター)がHMD内の画像処理装置において適切に設定されていれば、あとは、HMDを装着した実際の使用者が、表示装部に表示される仮想オブジェクト(または画像表示部の表示領域)を画像表示部上で垂直・水平方向に調整することで達成し得る。ただし、キャリブレーション・カスタマイゼーションの際に、実オブジェクトと撮像部との間の相対位置関係が不明である場合には、実オブジェクトと撮像部との間の相対位置関係を併せて求め、追跡することが好ましい。本実施形態では、「相対位置関係」は、3次元空間内での2つの物体(平面を含む)間の回転(3自由度)および並進(3自由度)の少なくとも一方によって表される。
A−1.マーカーの構成:
図1は、第1実施形態におけるキャリブレーションを行なうために用いられるマーカーMK1の説明図である。従来、使用者に画像を視認させるための装置として、使用者の頭部に画像表示部が装着されることで、画像表示部が表示する画像を使用者に視認させ、かつ、画像表示部が透過する外景も使用者に視認させる頭部装着型表示装置((Head Mounted Display)、HMD)が知られている。本実施形態のHMDは、外景に存在する所定の実オブジェクトに対応する仮想オブジェクト(表示画像)を、位置と姿勢も含め重畳(アライン)させて使用者に視認させる機能を有することができる。この機能を達成するために、平均的な頭部サイズ(眼間距離を含む)に合わせて、HMDが備える撮像部および画像表示部がキャリブレーションされている(これをファクトリー・キャリブレーションとも呼ぶ)。実際の使用者が使用する際には、頭部サイズの個人差およびHMDのかけ方の差異があることから、それらに合わせてファクトリー・キャリブレーションをカスタマイゼーションすることが好ましい(これをキャリブレーション・カスタマイゼーション、または単にキャリブレーションと呼ぶ)。理想的には、キャリブレーション・カスタマイゼーションは、実オブジェクトと撮像部との間の相対位置関係、撮像部のカメラパラメーター、撮像部と表示装置との間の相対位置関係、画像表示装置のプロジェクターパラメーター(レンダリングカメラパラメーター)がHMD内の画像処理装置において適切に設定されていれば、あとは、HMDを装着した実際の使用者が、表示装部に表示される仮想オブジェクト(または画像表示部の表示領域)を画像表示部上で垂直・水平方向に調整することで達成し得る。ただし、キャリブレーション・カスタマイゼーションの際に、実オブジェクトと撮像部との間の相対位置関係が不明である場合には、実オブジェクトと撮像部との間の相対位置関係を併せて求め、追跡することが好ましい。本実施形態では、「相対位置関係」は、3次元空間内での2つの物体(平面を含む)間の回転(3自由度)および並進(3自由度)の少なくとも一方によって表される。
図1に示すマーカーMK1は、HMDのキャリブレーションを行なう際に、実オブジェクトとしてのマーカーMK1と撮像部との間の相対位置関係を求めるために、用いられるマーカーである。なお、HMDの詳細な説明については、後述する。
図1には、4つの頂点である頂点P0,P1,P2,P3を直線で結んで、平面状に形成された矩形状のマーカーMK1が示されている。本実施形態のマーカーMK1は、正方形であるが、他の実施形態では、異なる矩形形状(例えば、長方形)であってもよい。マーカーMK1は、黒色で塗りつぶされた正方形の中に、白色で形成された複数の正円を有するマーカーである。好適には、当該正方形は、非黒色の、例えば白の周辺領域で囲まれている。他の実施形態では、当該周辺領域およびマーカーMK1に関して黒と白とは逆であってもよい。なお、図1では、黒色で塗りつぶされた部分を、斜線のハッチングで示している。本実施形態のマーカーMK1では、正方形の中に含まれる複数の正円は、同じ大きさである。なお、本実施形態における4つの頂点は、請求項における矩形特定点に相当する。
マーカーMK1に含まれる複数の円は、第1円群CG1と、第2円群CG2と、方向特定円C10と、に分類される。第1円群CG1は、頂点P0と、頂点P0に隣接しない頂点P2とを結ぶ対角線CL1上に円の中心がある5つの円C1,C2,C3,C4,C5で構成される。第2円群CG2は、頂点P1と、頂点P1に隣接しない頂点P3とを結ぶ対角線CL2上に円の中心がある5つの円C6,C7,C3,C8,C9で構成される。なお、対角線CL1と対角線CL2との交点を円の中心C3Pとする円C3は、第1円群CG1と第2円群CG2との両方に含まれる。換言すると、円C3は、2つの対角線CL1,CL2の交点を中心とする円である。円C3は、請求項における中心円に相当する。方向特定円C10は、対角線CL1と対角線CL2とのどちらにも中心C10Pが重ならない円である。なお、以降では、円の名称を表す記号の後に「P」を付した記号を、当該円の中心として呼ぶ(例えば、円C0の中心C0P)。
第1円群CG1を構成する円では、隣接する円の中心間の距離が同じになるように形成されている。そのため、第1円群CG1における隣接する円の間に存在する黒色の部分の面積は、同じ大きさになる。また、同じように、第2円群CG2を構成する円では、隣接する円の中心間の距離が同じになるように形成されている。そのため、第1円群CG1と同じように、第2円群CG2における隣接する円の間に存在する黒色の部分の面積は、同じ大きさになる。また、本実施形態では、第1円群CG1における隣接する円の中心の距離と、第2円群CG2における隣接する円の中心の距離と、は同じ距離である。以上の関係により、第1円群CG1と第2円群CG2とは、円C3の中心C3Pを中心として、点対称に形成されている。また、第1円群CG1と第2円群CG2とは、円C3の中心C3Pを通ると共に、四辺のいずれかと平行な直線に対して、線対称に形成されている。
方向特定円C10は、対角線CL1と対角線CL2とのそれぞれによって、マーカーMK1としての正方形が4つの直角二等辺三角形に区分された内の1つの直角二等辺三角形の中に形成されている。さらに詳細に言うと、方向特定円C10は、頂点P2と、頂点P3と、対角線CL1と対角線CL2との交点である中心C3Pと、によって形成される直角二等辺三角形の中に含まれる。方向特定円C10の中心C10Pは、第1円群CG1の含まれると共に頂点P2に最も近い円C5の中心C5Pと、第2円群CG2に含まれると共に頂点P3に最も近い円C9の中心C9Pと、を結んだ直線の中点である。そのため、第1円群CG1と第2円群CG2とは、円C3の中心C3Pと、方向特定円C10の中心C10Pと、を通る直線に対して線対称に形成されている。また、第1円群CG1と第2円群CG2とに方向特定円C10が加わると、全体とし中心C3Pに関する点対称が破れるように、方向特定円C10が位置している。なお、本実施形態における方向特定円C10の中心C10Pは、請求項における方向特定点に相当する。円の中心などで定まる特定点は、請求項における特定要素に相当する。
A−2.頭部装着型表示装置(HMD)の構成:
図2は、キャリブレーションを行なう頭部装着型表示装置100(HMD100)の外観構成を示す説明図である。HMD100は、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20を透過する外景も使用者に視認させることができる。HMD100は、画像を表示する画像表示部20と、画像表示部20を制御する制御部10(コントローラー10)と、を備えている。
図2は、キャリブレーションを行なう頭部装着型表示装置100(HMD100)の外観構成を示す説明図である。HMD100は、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20を透過する外景も使用者に視認させることができる。HMD100は、画像を表示する画像表示部20と、画像表示部20を制御する制御部10(コントローラー10)と、を備えている。
画像表示部20は、使用者の頭部に装着される装着体であり、眼鏡形状を有している。画像表示部20は、右保持部21と、右表示駆動部22と、左保持部23と、左表示駆動部24と、右光学像表示部26と、左光学像表示部28と、カメラ61と、を含んでいる。右光学像表示部26および左光学像表示部28は、それぞれ、使用者が画像表示部20を装着した際に使用者の右および左の眼前に位置するように配置されている。右光学像表示部26の一端と左光学像表示部28の一端とは、使用者が画像表示部20を装着した際の使用者の眉間に対応する位置で、互いに接続されている。
右保持部21は、右光学像表示部26の他端である端部ERから、使用者が画像表示部20を装着した際の使用者の側頭部に対応する位置にかけて、延伸して設けられた部材である。同様に、左保持部23は、左光学像表示部28の他端である端部ELから、使用者が画像表示部20を装着した際の使用者の側頭部に対応する位置にかけて、延伸して設けられた部材である。右表示駆動部22と左表示駆動部24とは、使用者が画像表示部20を装着した際の使用者の頭部に対向する側に配置されている。
表示駆動部22,24は、図3で後述する液晶ディスプレイ241,242(Liquid Crystal Display、以下「LCD241,242」とも呼ぶ)や投写光学系251,252等を含む。表示駆動部22,24の構成の詳細な説明は後述する。光学像表示部26,28は、後述する導光板261,262(図3参照)と調光板とを含んでいる。導光板261,262は、光透過性の樹脂材料等によって形成され、表示駆動部22,24から出力された画像光を使用者の眼に導く。調光板は、薄板状の光学素子であり、使用者の眼の側とは反対の側である画像表示部20の表側を覆うように配置されている。調光板の光透過率を調整することによって、使用者の眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
カメラ61は、使用者が画像表示部20を装着した際の使用者の眉間に対応する位置に配置されている。そのため、カメラ61は、使用者が画像表示部20を頭部に装着した状態において、使用者の視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。
画像表示部20は、さらに、画像表示部20を制御部10に接続するための接続部40を有している。接続部40は、制御部10に接続される本体コード48と、右コード42と、左コード44と、連結部材46と、を含んでいる。右コード42と左コード44とは、本体コード48が2本に分岐したコードである。右コード42は、右保持部21の延伸方向の先端部APから右保持部21の筐体内に挿入され、右表示駆動部22に接続されている。同様に、左コード44は、左保持部23の延伸方向の先端部APから左保持部23の筐体内に挿入され、左表示駆動部24に接続されている。連結部材46は、本体コード48と、右コード42および左コード44と、の分岐点に設けられ、イヤホンプラグ30を接続するためのジャックを有している。イヤホンプラグ30からは、右イヤホン32および左イヤホン34が延伸している。画像表示部20と制御部10とは、接続部40を介して各種信号の伝送を行なう。右コード42と、左コード44と、本体コード48とには、例えば、金属ケーブルや光ファイバーを採用できる。
制御部10は、HMD100を制御するための装置である。制御部10は、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部135を有する。
図3は、HMD100の構成を機能的に示すブロック図である。図3に示すように、制御部10は、ROM121と、RAM122と、電源130と、操作部135と、マーカー記憶部139と、CPU140と、インターフェイス180と、送信部51(Tx51)および送信部52(Tx52)と、を有している。
電源130は、HMD100の各部に電力を供給する。ROM121には、種々のコンピュータープログラムが格納されている。後述するCPU140は、ROM121に格納された各種コンピュータープログラムを、RAM122に展開することで、各種コンピュータープログラムを実行する。
マーカー記憶部139は、HMD100がマーカーとして認識する図1に示すマーカーMK1などのマーカーの情報を記憶している。マーカー記憶部139は、マーカーの情報として、マーカーを特定するための特定点を、モデル座標系の座標値として記憶している。以下では、モデル座標系におけるマーカーMK1を、マーカーMK3と呼ぶ。例えば、対角線CL1と対角線CL2の交点である中心C3Pをモデル座標系の原点とすることができる。このとき、マーカーMK1は平面なので、特定点のZ座標はいずれもゼロとしてよい。そして、例えば、マーカー記憶部139は、マーカーMK1の矩形を特定するための4つの頂点の座標P0,P1,P2,P3の座標値をモデル座標系の座標として記憶している。さらに、マーカー記憶部139は、マーカーMK1が有する複数の円の中心の座標値を、原点としての中心C3Pを基準として記憶している。また、マーカー記憶部139は、特定された4つの頂点から抽出された2つの対角線CL1および対角線CL2における黒色と白色の領域の並び方を記憶している。黒色と白色の領域の並び方の詳細については、後述する。
CPU140は、ROM121に格納されているコンピュータープログラムを、RAM122に展開することにより、オペレーティングシステム150(OS150)、表示制御部190、音声処理部170、画像処理部160、マーカー識別部165、座標特定部166および演算部167として機能する。
表示制御部190は、右表示駆動部22および左表示駆動部24を制御する制御信号を生成する。表示制御部190は、右表示駆動部22および左表示駆動部24のそれぞれによる画像光の生成および射出を制御する。表示制御部190は、右LCD制御部211と左LCD制御部212とに対する制御信号のそれぞれを、送信部51および52を介して送信する。また、表示制御部190は、右バックライト制御部201と左バックライト制御部202とに対する制御信号のそれぞれを送信する。
画像処理部160は、コンテンツに含まれる画像信号を取得し、送信部51,52を介して、取得した画像信号を画像表示部20の受信部53,54へと送信する。音声処理部170は、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材46に接続された右イヤホン32内のスピーカー(図示しない)および左イヤホン34内のスピーカー(図示しない)に対して供給する。
マーカー識別部165は、カメラ61によって得られた撮像画像に対して、所定の階調値を閾値として2値化を行なう。マーカー識別部165は、2値化した画像の中から、マーカー記憶部139に記憶されたマーカーMK1の抽出を判定する。2値化の判定の詳細については後述するが、本実施形態では、マーカー識別部165は、撮像画像に対して、初めに、予め設定された初期閾値で2値化を行なう。マーカー識別部165は、初期閾値を用いた2値化でマーカーMK1を抽出できない場合には、予め設定された階調値である加算閾値を初期閾値に加えた新たな閾値として、撮像画像に対して、2値化を行ない、マーカーMK1の抽出を判定する。このように、マーカー識別部165は、いくつかの階調値を閾値として2値化することで、撮像画像の中からマーカーMK1の抽出を判定する。
座標特定部166は、マーカー識別部165によって撮像画像の中から抽出されたマーカーMK1の特定点を特定する。例えば、正方形のマーカーMK1の外形は、撮像される角度によって異なり、台形の形状として抽出される場合もある。座標特定部166は、抽出されたマーカーMK1の画像における頂点P0,P1,P2,P3や複数の円の中心(例えば、図1の中心C3Pなど)の座標値を特定する。
演算部167は、座標特定部166によって特定されたマーカーMK1の画像における特定点と、記憶されているモデル座標系におけるモデルマーカーMK3の特定点と、の対応関係に基づいて、マーカーMK1とカメラ61との間の相対位置関係を求める。さらに、上記相対位置関係を用いて、使用者がマーカーMK1を利用してキャリブレーションを実行することができる。本実施形態では、キャリブレーションで得られた補正値は、画像表示部における表示領域または仮想オブジェクトの表示画像の水平・垂直方向の調整を表す値であり得る。他の実施形態においては、補正値は、カメラ61と画像表示部との間の相対位置関係を補正する値であり得る。
インターフェイス180は、制御部10に対して、コンテンツの供給元となる種々の外部機器OAを接続するためのインターフェイスである。外部機器OAとしては、例えば、ARシナリオを記憶している記憶装置、パーソナルコンピューター(PC)や携帯電話端末、ゲーム端末等、がある。インターフェイス180としては、例えば、USBインターフェイス、マイクロUSBインターフェイス、メモリーカード用インターフェイス等、を用いることができる。
図3に示すように、画像表示部20は、右表示駆動部22と、左表示駆動部24と、右光学像表示部26としての右導光板261と、左光学像表示部28としての左導光板262と、カメラ61と、を備えている。
右表示駆動部22は、受信部53(Rx53)と、光源として機能する右バックライト制御部201(右BL制御部201)および右バックライト221(右BL221)と、表示素子として機能する右LCD制御部211および右LCD241と、右投写光学系251と、を含んでいる。右バックライト制御部201と右バックライト221とは、光源として機能する。右LCD制御部211と右LCD241とは、表示素子として機能する。
受信部53は、制御部10と画像表示部20との間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部201は、入力された制御信号に基づいて、右バックライト221を駆動する。右バックライト221は、例えば、LEDやエレクトロルミネセンス(EL)等の発光体である。右LCD制御部211は、画像処理部160および表示制御部190から送信された制御信号に基づいて、右LCD241を駆動する。右LCD241は、複数の画素をマトリクス状に配置した透過型液晶パネルである。
右投写光学系251は、右LCD241から射出された画像光を平行状態の光束にするコリメートレンズによって構成される。右光学像表示部26としての右導光板261は、右投写光学系251から出力された画像光を、所定の光路に沿って反射させつつ使用者の右眼REに導く。なお、左表示駆動部24は、右表示駆動部22と同様の構成を有し、使用者の左眼LEに対応するため、説明を省略する。
A−3.姿勢算出処理:
図4は、本実施形態における姿勢算出処理のフローチャートである。補正行列算出処理は、CPU140がカメラ61によって得られた撮像画像に含まれるマーカーMK1を用いて、マーカーMK1とカメラ61との間の相対的位置関係を算出する処理である。姿勢算出処理では、初めに、マーカー識別部165がカメラ61によって得られた撮像画像の中からマーカーMK1の外形を検出するマーカー領域検出処理を実行する(ステップS10)。
図4は、本実施形態における姿勢算出処理のフローチャートである。補正行列算出処理は、CPU140がカメラ61によって得られた撮像画像に含まれるマーカーMK1を用いて、マーカーMK1とカメラ61との間の相対的位置関係を算出する処理である。姿勢算出処理では、初めに、マーカー識別部165がカメラ61によって得られた撮像画像の中からマーカーMK1の外形を検出するマーカー領域検出処理を実行する(ステップS10)。
図5は、本実施形態におけるマーカー領域検出処理のフローチャートである。図5に示すように、マーカー領域検出処理では、初めに、マーカー識別部165は、カメラ61を用いて、外景を撮像する(ステップS101)。本実施形態では、撮像画像は、RGB(Red,Green,Blue)の0から255までの256段階の階調値のデータとして取得される。本実施形態では、階調値が小さいほど、濃い色に設定されている。
図6は、カメラ61によって撮像された撮像画像IMG1の一例を示す説明図である。図6に示す撮像画像IMG1には、デスクトップ型のパーソナルコンピューター(PC)のディスプレイDPと、マーカーMK1と、マーカーMK1とは異なるマーカーMK2と、が含まれている。なお、図6では、RGBのすべての階調値が100未満の画素を斜線部分のハッチングで表し、RGBのすべての階調値が100以上156以下の画素を横線部分のハッチングで表し、それ以外の画素をハッチングしないで表している。
外景が撮像されると(図5のステップS101)、マーカー識別部165は、カメラ61によって得られた撮像画像IMG1に対して、初期閾値で2値化を行なう(ステップS103)。また、本実施形態では、予め、100の階調値が初期閾値として設定され、後述する加算閾値としては、28の階調値が設定されている。そのため、マーカー識別部165は、RGBのいずれかの画素の階調値が初期閾値以上の場合、2値化後の画素の階調値を1と設定し、RGBのすべての画素の階調値が初期閾値未満の場合、2値化後の画素の階調値を0と設定する。
マーカー識別部165は、撮像画像IMG1に対して、100の階調値である初期閾値で2値化を行なうと、ディスプレイDPの外枠である領域AR1と、マーカーMK1を含む領域AR2と、マーカーMK2を含む領域AR3と、を黒色領域として検出する(ステップS105)。マーカー識別部165は、検出した黒色領域に対して、マーカー記憶部139に記憶された所定の範囲のアスペクト比であり、かつ、所定の大きさの範囲である矩形形状の黒色領域を、マーカー領域の候補として抽出する(ステップS107)。撮像画像IMG1に含まれるマーカーMK1は、必ずしも正方形の矩形形状として検出されるわけではなく、カメラ61の向きやカメラ61までの距離に応じて、小さく撮像されたり、台形や長方形の形状として撮像される。そのため、マーカー記憶部139には、ある一定の大きさで、かつ、一定の位置関係にあるマーカーMK1のみを検出するために、撮像画像の中から検出したいマーカーMK1のアスペクト比や大きさが予め記憶されている。マーカー識別部165は、抽出された黒色の領域の内、所定の大きさであり、かつ、所定のアスペクト比である領域AR2および領域AR3を、それぞれ4つの頂点を結んだ四辺によってマーカー領域の候補として抽出する。
次に、マーカー識別部165は、マーカー領域の候補として、1つ以上の領域を抽出したか否かを判定する(ステップS109)。マーカー識別部165は、領域AR2をマーカー領域の候補として検出しているため(ステップS109:YES)、マーカー領域の候補の矩形形状から2つの対角線を抽出する(ステップS111)。マーカー識別部165は、領域AR2における隣接しない2頂点を直線で結ぶことで、2つの対角線を抽出する。
マーカー識別部165は、抽出した対角線に沿った走査(スキャン)を実施し、2値化した白と黒との階調値のプロファイル判定を実行する(ステップS113)。マーカー識別部165は、マーカー記憶部139に記憶されたマーカーMK1の対角線上に沿った黒色と白色との並びと比較することで、マーカー領域の候補がマーカーMK1であるか否かを判定する(ステップS115)。
図7は、マーカーMK1の対角線CL1に沿った2値化後の階調値のプロファイルを示す説明図である。図1に示すマーカーMK1を2値化した場合、対角線CL1の右下から左上へと沿った階調値のプロファイルは、図7に示すような折れ線を示す。0の階調値が黒色を表し、1の階調値が白色を表すため、白色の円C1,C2,C3,C4,C5の領域における対角線CL1に沿った階調値は、1になる。マーカー記憶部139には、図7に示す2つの対角線CL1,CL2に沿った階調値を特定するためのデータが格納されている。
図5のステップS113の処理において、マーカー識別部165は、図6の領域AR2の2つの対角線に沿った階調値のプロファイルがマーカー記憶部139に格納された対角線CL1,CL2に沿った階調値のプロファイルと同じであるか否かを判定する。マーカー識別部165は、領域AR2の対角線に沿った階調値がマーカー記憶部139に格納された対角線CL1,CL2に沿った階調値と明らかに異なるため(ステップS115:NO)、初期閾値である100の階調値に加算閾値である28の階調値を加えた128を新たな閾値として設定する(ステップS117)。なお、本実施形態では、マーカー識別部165は、マーカー領域候補の対角線に沿った階調値のプロファイルと、マーカー記憶部139に格納されている対角線CL1,CL2に沿った階調値のプロファイルとの異同を、所定の誤差を加味して判定する。
マーカー識別部165は、新たに設定した閾値が初期閾値を超えたか否かを判定する(ステップS119)。いくつかの場合、例えば、照明が変化する場合に、取得された画像から初期の閾値を用いてマーカーMK1を抽出できないことがある。そこで、本実施形態では、マーカー識別部165は、撮像画像IMG1の中からマーカーMK1を抽出できない場合に、閾値に順々に加算閾値を加えていく。そのため、新たな閾値は、階調値の100を始めとして、128,156,184,212,240の順に増加する。階調値の上限が255であるため、マーカー識別部165は、階調値が240を超えると、255から0へと戻って、24を次の階調値として、12,40,78の順に新たな階調値を閾値として設定する。そして、78の階調値に28の階調値である加算閾値を加えると、初期閾値を超えるため、本実施形態では、マーカー識別部165は、78の階調値の閾値を最後に判定するための閾値として設定し、これ以降、ステップS117の処理を実行しない。そのため、ステップS119の処理において、マーカー識別部165は、新たな閾値が初期閾値を超えたと判定した場合には(ステップS119:YES)、マーカーMK1が撮像画像IMG1から抽出できなかったとして、マーカー領域検出処理を終了する。なお、本実施形態における初期閾値は、請求項における第1閾値および所定の値に相当する。本実施形態における初期閾値として設定される階調値は、請求項における所定の階調値に相当する。また、本実施形態における加算閾値として設定される階調値は、請求項における階調補正値に相当する。
ステップS119の処理において、マーカー識別部165は、新たな閾値が初期階調値をまだ超えていないと判定した場合には(ステップS119:NO)、新たな閾値として設定された128の階調値を用いて撮像画像IMG1の2値化を実行する(ステップS121)。その後、マーカー識別部165は、ステップS105からステップS115までを繰り返す。つまり、マーカー識別部165は、2値化した撮像画像に対して、黒色の領域を抽出する(ステップS105)。マーカー識別部165は、マーカーMK1の外形と同じと判定するマーカー領域の候補の有無を判定する(ステップS107)。本実施形態では、この場合に、マーカー識別部165は、領域AR1と領域AR2とではなく、マーカーMK1とマーカーMK2とを黒色領域として抽出するとする(ステップS105)。
具体的には、マーカー識別部165は、抽出したマーカーMK1の矩形形状とマーカーMK2の矩形形状とに対して、マーカー記憶部139に記憶されたアスペクト比および大きさを比較することで、マーカーMK1およびマーカーMK2をマーカー領域の候補として抽出する(ステップS107)。マーカーMK1およびマーカーMK2は、マーカー領域の候補であるため(ステップS109:YES)、マーカー識別部165は、マーカーMK1とマーカーMK2とのそれぞれの対角線を抽出する(ステップS111)。マーカー識別部165は、抽出したマーカーMK1の対角線に沿った階調値のプロファイルとマーカー記憶部139に記憶された階調値のプロファイルとを同じと判定する(ステップS113)。すなわち、マーカー識別部165は、撮像画像IMG1の中からマーカー領域の候補として抽出したマーカーMK1の画像を、マーカーMK1であると判定する。
なお、ステップS109の処理において、マーカー識別部165は、マーカー領域の候補を撮像画像IMG1の中から抽出できない場合には(ステップS109:NO)、ステップS117以降の処理を実行する。
図8は、抽出されたマーカーMK2の対角線と対角線に沿った階調値との関係を示す説明図である。図8(A)には、撮像されたマーカーMK2の拡大図が示されている。図8(A)に示すように、マーカーMK2は、4つの頂点P4,P5,P6,P7を直線で結んだ矩形形状を有している。また、マーカーMK2の内部には、複数の矩形形状の組み合わせによって黒色と白色とに分けられた領域が存在する。
図8(B)には、図8(A)に示すマーカーMK2の頂点P5と頂点P7とを結んだ対角線CL3に沿った階調値の並びを表す折れ線が示されている。図8(A)と図8(B)とには、互いに対応する2値化後の階調値がゼロの白色部分WH1および白色部分WH2が示されている。図8(B)に示すように、マーカーMK2の対角線に沿った階調値の並びは、マーカー記憶部139に格納された2つの階調値の並び(プロファイル)のいずれとも異なる。そのため、マーカー識別部165は、マーカーMK2の対角線を抽出した後(ステップS111)、マーカー領域の候補として抽出したマーカーMK2がマーカーMK1とは異なると判定する(ステップS113)。
ステップS115の処理において、マーカー識別部165は、マーカー記憶部139に記憶されたマーカーMK1(以下、モデルマーカーMK3)と同じマーカーMK1を撮像画像IMG1の中から抽出し(ステップS115:YES)、マーカー領域検出処理を終了する。
図4のステップS10のマーカー領域検出処理が終了すると、マーカー識別部165は、マーカー領域検出処理において、撮像画像IMG1の中から、マーカー領域の検出の有無を判定する(ステップS11)。マーカー識別部165は、マーカー領域が検出できなかった場合には(ステップS11:NO)、姿勢算出処理を終了する。
マーカー領域が検出された場合には(ステップS11:YES)、座標特定部166は、2値化された撮像画像IMG1の画素の階調値を用いて、マーカーMK1に含まれる複数の円の中心の座標値を特定する(ステップS13)。座標特定部166は、マーカーMK1の外形を特定するための4つの頂点の座標に加えて、2値化した撮像画像IMG1の画素の階調値を用いて、正方形のマーカーMK1の中に含まれる複数の円の中心座標を特定する(ステップS13)。次に、演算部167は、撮像画像IMG1から抽出されたマーカーMK1の4つの頂点と、モデルマーカーMK3(図1)の4つの頂点P0,P1,P2,P3とのそれぞれを用いて、外景におけるXY平面上のオブジェクト座標(x、y)と、撮像画像IMG1における画像座標(p、q)との関係を算出する(ステップS15)。
図9は、オブジェクト座標を画像座標に変換する写像変換行列H1を説明するための説明図である。図9に示すように、撮像画像IMG1に含まれるオブジェクト座標(p、q)と、カメラ61の焦点距離fと、画像座標(x、y)とは、回転移動と並行移動とを含む行列を用いて、下記の式(1)の関係として表される。なお、式(1)に含まれるr11ないしr33は、回転移動を表す行列であり、tx、ty、tzは、並行移動を表す行列である。
式(1)の右辺の4行1列の行列の内の3列目の値がゼロであるため、式(1)を下記の式(2)のように導出できる。
式(2)の右辺の3行4列の行列の内の4列目の値のすべてがゼロであるため、式(2)を下記の式(3)のように導出でき、式(3)を解くと式(4)になる。
ここで、算出したい写像変換行列H1の各要素をh11〜h33と仮定すると、式(5)が得られる。
撮像画像IMG1から抽出された4つの頂点の座標値、および4つの座標値P0m(p0、q0)、P1m(p1、q1)、P2m(p2、q2)、P3m(p3、q3)を用いて、下記の式(6)が導出される。なお、h33は1としてよい。
式(6)を、行列を表すアルファベットに置換して、式(7)を導出し、式(7)を解くことで式(8)が得られる。
以上のように、図4のステップS15において、演算部167は、式(1)から式(8)を解くことで、4つの頂点に基づく写像変換行列H1(平面写像変換行列H1)を算出する。
写像変換行列H1(平面写像変換行列H1)を用いて、モデルマーカーMK3の10の円と、画像から抽出された10の円との対応関係を、見つける。
本実施形態では、まず、写像変換行列H1により、モデル座標系上のモデルマーカーMK3の円の座標(modelPt_x[i], modelPt_y[i])を、画像座標系の座標(xpi, ypi)に変換する。
そして、撮像画像から抽出(検出)された10個の円の座標との距離を比べる。つまり、抽出されたi番目の円の場合に、Mink[Pdi, Ppk]を求める。ここで、Pdiは抽出(検出)されたi番目の円の座標であり、PpkはモデルマーカーMK3の座標である。iとkはそれぞれ1〜10の整数である。[ ]はノルムを意味し、Minは1〜10までのkについて最小値を求めることを意味する。最も短い距離の円が対応関係にある。これにより、抽出(検出)された10個の円が、モデルマーカーMK3の10個の円のいずれに対応するかが分かる。さらに、対応付けの誤りを防止するために、演算部167は、モデルマーカーMK3の方向特定円C10の中心C10Pの座標値を用いて、撮像画像IMG1から抽出されたマーカーMK1の方向を特定する。
図10は、抽出されたマーカーMK1の方向の特定を説明するための説明図である。図10には、モデルマーカーMK3と、画像から抽出されたマーカーMK1における方向特定円の中心PPと、が示されている。演算部167は、モデル座標系上でモデルマーカーMK3を0°、90°、180°、270°だけ回転した場合のC10Pの4つの座標を導出する。そして、演算部167は、写像変換行列H1を作用させて、C10Pの当該4つの座標を画像座標系の座標に変換し、変換後の4つの座標と、方向特定円C10に対応すると判定された円の座標との距離をそれぞれ導出する。最も短い距離をもたらした円のペアが、方向特定円C10Pの正しい対応関係であり、方向特定円C10Pの正しい対向関係に基づいて、撮像画像上のマーカーMK1の方向を特定することができる。そして、必要があれば方向特定円C10の位置に基づいて方向特定円C10以外の円の対応関係を修正することができるから、モデルマーカーMK3に属する円と撮像画像上のマーカーMK1に属する円の対応関係がより確かになる。これによりまた、マーカーMK1上に固定された仮想的な座標軸の向きも正確に判別できる。
演算部167は、マーカーの方向を特定すると、マーカーMK1の中心C3Pの座標値を原点とする9つの円(方向特定円C10を含まない)の中心座標を用いて、写像変換行列H1よりも精度の高い写像変換行列H2を算出する(ステップS19)。演算部167は、4つよりも多い9つの座標値を用いて式(6)から式(8)までを解くことで、誤差がより少ない写像変換行列H2を算出する。また、先の4つの点はいずれも角の点であったが、円の中心を検出する場合の再現性は、隅または角の点の場合よりも2倍よい。このことからも、検出された円の中心の精度が高く、誤差がより少ない写像変換行列が算出される。もちろん、方向特定点を含む10個の特定点の座標値を用いて写像変換行列H2を算出してもよい。
演算部167は、写像変換行列H2を算出すると、撮像されたマーカーMK1の位置および向きの概念を含むマーカー姿勢を特定するための回転行列を算出する(ステップS21)。演算部167は、算出した写像変換行列H2から3つの新しい列ベクトルh1,h2,h3を定義して、回転行列Rを下記の式(9)のように定義する。
上記の式(5)において、列ベクトルh1(h11、h21、h31),h2(h12、h22、h32)が平面回転ベクトルであり、列ベクトルh3(h31、h32、h33)が平面並進ベクトルであるから、回転行列Rは写像変換行列H2を用いて算出される。列ベクトルr1は、列ベクトルh1を用いて算出され、下記の式(10)の関係が成り立つ。
ここで、カメラ61の平面上における主点位置座標を(Cx、Cy)とすると、式(10)の行列Kは、下記の式(11)のように表すことができる。
ここで、列ベクトルr1を規格化して、ノルムλを算出すると、列ベクトルr2は、下記の式(12)として算出できる。
列ベクトルr3は、列ベクトルr1と列ベクトルr2との外積として算出できる。演算部167は、得られた回転行列Rに対して、特異値分解(singular value decomposition)を行ない、回転行列Rが直交行列であることを確実にする。
演算部167は、回転行列Rを算出すると、回転行列Rを算出する際に用いた列ベクトルh3を用いて、以下の式により並進行列Tを算出する(ステップS23)。
演算部167は、算出した回転行列Rと並進行列Tとを用いて、オブジェクト座標を、画像を表示する光学像表示部26,28の画素のそれぞれに対応させる補正行列を算出する(ステップS25)。その後、CPU140は、姿勢算出処理を終了する。
本明細書では、姿勢算出処理によって得られた回転行列Rと並進行列とは、撮像部に対するマーカーMK1の「第1の姿勢」とも表記される。
上記方法により求められた第1の姿勢の精度は、さらに「モデルアライメント」処理により向上し得る。本実施形態では、具体的には、撮像部のカメラパラメーターと、第1の姿勢を表す回転行列Rおよび並進行列Tとにより、モデルマーカーMK3に属する複数(例えば9個)の座標を画像座標系の座標に変換する。そして、当該変換された当該複数の座標と、撮像画像上のマーカーMK1の対応座標のそれぞれと、の間の差の二乗和を含むコスト関数を導出する。そして、当該コスト関数がグローバルミニマムになるように、ガウス・ニュートン法などで、回転行列Rおよび並進行列Tに含まれるパラメーターを、変化させて最適化する。このとき、計算のし易さから、回転行列Rに含まれるパラメーターは4元数で表現されてもよい。当該コスト関数がグローバルミニマムに達した場合の回転行列Rおよび並進行列Tが、より精度の高いマーカーMK1の姿勢であり得る。この場合の回転行列Rおよび並進行列Tは、撮像部に対するマーカーMK1の「第2の姿勢」とも表記される。
(変形例A)
マーカーMK1のトラッキング結果、つまり上記実施形態1における第2の姿勢のトラッキング結果は、光学シースルーキャリブレーションまたはARアプリケーションにおいて用いられる。ユーザビリティを向上させるため、逐次得られる第2の姿勢は、非常に安定していることが好ましい。本変形例では、指数関数またはガウス関数による平滑化をマーカーMK1の第2の姿勢に適用し、姿勢を安定化し、「姿勢ジッター」を低減する。
1 ジッターの主な原因
特定点(円の中心)の抽出エラーは、一つのジッター源である。マーカーがそれほど小さくないとき、マーカーMK1の円の中心の精度はサブ画素のレベルにあり、特定点の抽出エラーは無視できる。マーカーが小さいとき、円の中心の検出精度は保証されないことがあり、特定点の抽出エラーが、一つの主要なジッター源になり得る。したがって、特定点の検出により生じたジッターを低減するには、マーカーサイズはある程度大きいことが好ましい。例えば、ある仕様のHMDの場合、腕の長さ相当の距離で、マーカーサイズが4cmのとき、ジッターは観測され得るだろう。一方、マーカーサイズが6cmのとき、ほとんどジッターはない。
実験による結果は、使用者(人)の頭部の動きによるジッターがHMDに関して姿勢のジッターの主要な原因であることを示した。頭部の動きのさまざまなレベルについていくつかの実験によると、頭部に動きがないときのジッターレベルをテストするために、被験者に、リーディングインストラクションの間、その頭部を動かさないことを求めた。このテストの間、50ms内でジッターが非常に小さい角度範囲で観測された(0.05−0.15度)。これは、秒速1〜3度に等価である。頭部の遅い動きに対するジッターレベルをテストするために、被験者に、オブジェクトを組み立てる間、ゆっくりと頭部を動かすことを要求した。このテストの間、ジッターは、50ms内での狭い角度範囲の回転(0.1−0.75度)を伴って観測された。これは、秒速2〜15度と等価である。一般的な頭部の動きに対しては、ジッターは、50ms内でのより広い角度範囲での回転(0.8〜5度)を伴って観測された。これは毎秒15〜100度と等価である。
本変形例では、第2の姿勢に現れるジッターが抑制されることで第2の姿勢が平滑化されて、頭部に動きのないとき、または低速の動きのときに対して、安定化が図られる。一方、通常の動きのときに対しては、第2の姿勢は、ほとんど平滑化されない。以下に詳細を示す。
2.指数関数による平滑化
指数関数による平滑化の最も簡単な形態は、回転行列については、次の式で与えられる。
ここで添え字は、例えばカメラフレームに対応する。また、αは、平滑化因子であり、0<α<1であり、qは、四元数の形態で表された回転角ベクトルを表す。すなわち、
回転行列Rと四元数との間の変換式については、詳述を省略する。
同様にして、姿勢の並進行列を平滑化する式は、
回転におけるジッターはより目につきやすい。他方、並進におけるジッターは目につきにくい。このため、α1を1にセットしてよい。これは、回転角だけをジッターに対して平滑化することを意味する。
3.平滑化因子αの推定
頭部のジッターが主にX、Y方向であるとし、Z軸(ほぼ視線方向)回りの回転は無視できるとすると、頭部の動きの推定は、撮像画像におけるX、Y座標におけるベクトル(Δu, Δv)の推定に簡単化できる。(Δu, Δv)を推定する一つの方法は、現在フレームと過去フレームと間で円の中心のx、y座標の差の最大値(または平均値)を計算することである。αは、以下のようにして推定される。
HMDのカメラ61のフレームレートは、例えば、30fpsであるとする。焦点距離fはカメラ61の仕様から求められる。σは実験により最適値が求められる。よって、fσは既知となるから、αは、式16により更新され、回転は式13により更新され、したがって、第2の姿勢がそれにより更新され得る。本変形例では、第2の姿勢が平滑化されたが、他の変形例では第1の姿勢が平滑化されてもよい。
マーカーMK1のトラッキング結果、つまり上記実施形態1における第2の姿勢のトラッキング結果は、光学シースルーキャリブレーションまたはARアプリケーションにおいて用いられる。ユーザビリティを向上させるため、逐次得られる第2の姿勢は、非常に安定していることが好ましい。本変形例では、指数関数またはガウス関数による平滑化をマーカーMK1の第2の姿勢に適用し、姿勢を安定化し、「姿勢ジッター」を低減する。
1 ジッターの主な原因
特定点(円の中心)の抽出エラーは、一つのジッター源である。マーカーがそれほど小さくないとき、マーカーMK1の円の中心の精度はサブ画素のレベルにあり、特定点の抽出エラーは無視できる。マーカーが小さいとき、円の中心の検出精度は保証されないことがあり、特定点の抽出エラーが、一つの主要なジッター源になり得る。したがって、特定点の検出により生じたジッターを低減するには、マーカーサイズはある程度大きいことが好ましい。例えば、ある仕様のHMDの場合、腕の長さ相当の距離で、マーカーサイズが4cmのとき、ジッターは観測され得るだろう。一方、マーカーサイズが6cmのとき、ほとんどジッターはない。
実験による結果は、使用者(人)の頭部の動きによるジッターがHMDに関して姿勢のジッターの主要な原因であることを示した。頭部の動きのさまざまなレベルについていくつかの実験によると、頭部に動きがないときのジッターレベルをテストするために、被験者に、リーディングインストラクションの間、その頭部を動かさないことを求めた。このテストの間、50ms内でジッターが非常に小さい角度範囲で観測された(0.05−0.15度)。これは、秒速1〜3度に等価である。頭部の遅い動きに対するジッターレベルをテストするために、被験者に、オブジェクトを組み立てる間、ゆっくりと頭部を動かすことを要求した。このテストの間、ジッターは、50ms内での狭い角度範囲の回転(0.1−0.75度)を伴って観測された。これは、秒速2〜15度と等価である。一般的な頭部の動きに対しては、ジッターは、50ms内でのより広い角度範囲での回転(0.8〜5度)を伴って観測された。これは毎秒15〜100度と等価である。
本変形例では、第2の姿勢に現れるジッターが抑制されることで第2の姿勢が平滑化されて、頭部に動きのないとき、または低速の動きのときに対して、安定化が図られる。一方、通常の動きのときに対しては、第2の姿勢は、ほとんど平滑化されない。以下に詳細を示す。
2.指数関数による平滑化
指数関数による平滑化の最も簡単な形態は、回転行列については、次の式で与えられる。
同様にして、姿勢の並進行列を平滑化する式は、
3.平滑化因子αの推定
頭部のジッターが主にX、Y方向であるとし、Z軸(ほぼ視線方向)回りの回転は無視できるとすると、頭部の動きの推定は、撮像画像におけるX、Y座標におけるベクトル(Δu, Δv)の推定に簡単化できる。(Δu, Δv)を推定する一つの方法は、現在フレームと過去フレームと間で円の中心のx、y座標の差の最大値(または平均値)を計算することである。αは、以下のようにして推定される。
(変形例B)
ARアプリケーションにとってはマーカートラッキングが遅いとレイテンシーがより目につきやすい。したがって、マーカーMK1の検出速度は高速であることが好ましい。このため、全体のプロセッシング速度を改善することと、マーカーMK1の検出精度を維持することとを両立するために、処理のパイプラインに疎精度から高精度へのアプローチが適用されてもよい。
例えば、上記実施形態におけるマーカー領域検出処理(図4のステップS10)までは、縮小された撮像画像に基づいて実行し、主要な時間消費部分を高速にし得る。上記実施形態における座標の特定(図4のステップS14)以降は、オリジナルの撮像画像の解像度に基づいて実行し、特定点の位置精度および姿勢推定の精度を確保し得る。
ARアプリケーションにとってはマーカートラッキングが遅いとレイテンシーがより目につきやすい。したがって、マーカーMK1の検出速度は高速であることが好ましい。このため、全体のプロセッシング速度を改善することと、マーカーMK1の検出精度を維持することとを両立するために、処理のパイプラインに疎精度から高精度へのアプローチが適用されてもよい。
例えば、上記実施形態におけるマーカー領域検出処理(図4のステップS10)までは、縮小された撮像画像に基づいて実行し、主要な時間消費部分を高速にし得る。上記実施形態における座標の特定(図4のステップS14)以降は、オリジナルの撮像画像の解像度に基づいて実行し、特定点の位置精度および姿勢推定の精度を確保し得る。
以上説明したように、本実施形態のマーカーMK1は、4つの頂点P0,P1,P2,P3で形成される矩形形状を有する。矩形状のマーカーMK1の中には、複数の円で構成される第1円群CG1および第2円群CG2と、中心がC10Pである方向特定円C10と、が含まれている。そのため、カメラ61によって得られた撮像画像にマーカーMK1が含まれる場合に、マーカー識別部165は、4つの頂点を用いて、マーカーMK1の外形を特定する。さらに、マーカー識別部165は、マーカーMK1の方向を特定するための方向特定円C10の中心C10Pと、第1円群CG1および第2円群CG2に含まれる円によって、マーカーMK1の位置や姿勢を特定する。これにより、カメラ61を有するHMD100などの装置は、カメラ61に対するマーカーMK1の位置や姿勢をより正確に特定でき、特定した位置関係を用いて、カメラ61が撮像する外景に、画像表示部20が表示する画像をより正確に重畳できる。よって、本実施形態のマーカーMK1が撮像されることで、画像を重畳するためのキャリブレーションが正確に行なわれ、画像表示部に表示される画像を視認する使用者の利便性が向上する。
また、本実施形態のマーカーMK1は、マーカーMK1の2つの対角線CL1,CL2の交点を中心C3Pとする円C3を含んでいる。そのため、本実施形態のマーカーMK1では、撮像されたマーカーMK1の座標を特定するために、円C3の中心C3Pを原点として用いることで、より正確にマーカーMK1の形状をHMD100などの装置に認識させることができる。
また、本実施形態のマーカーMK1では、円C3は、第1円群CG1に含まれ、かつ、第2円群CG2に含まれる円である。そのため、円C3が第1円群CG1と第2円群CG2との一方のみに含まれる場合と比較して、マーカーMK1が撮像された場合に、マーカーMK1の中心が特定されやすい。
また、本実施形態のマーカーMK1では、マーカーMK1の方向を特定する中心C10Pは、マーカーMK1の中心円である円C3以外の円C10の中心点である。そのため、本実施形態のマーカーMK1が撮像された場合に、マーカーMK1を認識するための原点の座標となるC3P以外の点がマーカーMK1の方向を特定するための点と用いられるため、撮像されたマーカーMK1の方向をより正確に特定できる。
また、本実施形態のマーカーMK1では、マーカーMK1の方向を特定する方向特定円C10は、第1円群CG1と第2円群CG2とのどちらにも含まれない円である。そのため、本実施形態のマーカーMK1が撮像された場合に、マーカーMK1を特定するための第1円群CG1および第2円群CG2と別の円である方向特定円C10によってマーカーMK1の方向が特定されるため、より正確にマーカーMK1の方向が特定される。
また、本実施形態のマーカーMK1では、1つの円である方向特定円C10によってマーカーMK1の方向が特定されるため、複数の要素によってマーカーMK1の方向が特定される場合と比較して、簡便にマーカーMK1の方向が特定される。
また、本実施形態のマーカーMK1では、第1円群CG1と第2円群CG2とは、円C3の中心C3Pに対して、点対称かつ線対称に形成されている。 また、マーカーMK1に含まれる複数の円の大きさは、すべて同じ大きさである。そのため、本実施形態のマーカーMK1が撮像された場合に、マーカーMK1の存在のみをカメラ61によって得られた撮像画像の中から抽出する場合に、より簡便に抽出できる。
また、本実施形態のマーカーMK1では、マーカーMK1に含まれる円とそれ以外の部分との色が異なり、マーカーMK1を構成する色は、対象の黒色と白色とである。そのため、本実施形態のマーカーMK1が撮像された場合に、マーカーMK1に含まれる円とそれ以外との部分を明確に区別して、マーカーMK1が特定されやすい。
また、本実施形態のマーカーMK1では、第1円群CG1および第2円群CG2のそれぞれは、同じ大きさの奇数個の円で構成され、第1円群CG1における隣接する円の中心の距離と、第2円群CG2における隣接する円の中心の距離とは、同じ距離である。そのため、本実施形態のマーカーMK1が撮像された場合に、マーカーMK1の存在のみをカメラ61によって得られた撮像画像の中から抽出する場合に、より簡便にマーカーMK1を抽出できる。
また、本実施形態のマーカーMK1の検出方法では、マーカー識別部165がカメラ61によって得られた撮像画像の中からマーカーMK1を抽出する。また、座標特定部166は、抽出されたマーカーMK1の方向を特定する方向特定円C10の中心C10Pと、その他のマーカーMK1に含まれる複数の円の中心を特定する。演算部167は、特定された方向特定円C10の中心C10Pおよびその他の複数の円の中心に基づいて、回転行列Rと並進行列Tとを用いた補正行列を算出する。そのため、本実施形態のマーカーMK1の検出方法が用いられることで、HMD100などの装置は、表示画像の基の画像データを表示させる画像表示部の画素のそれぞれを、補正行列に基づいて設定することで、撮像された外景に表示画像を重畳させて使用者に視認させることができる。これにより、使用者がHMD100などを使う際の利便性や使い勝手が向上する。
また、本実施形態のマーカーMK1の検出方法では、マーカー識別部165は、撮像された外景の画像に対して、初期閾値で2値化した後の撮像画像からマーカー領域の候補の抽出の判定を行なう。マーカー識別部165は、マーカー領域の候補を抽出しない場合には、初期閾値に加算閾値を加えた新たな階調値を閾値として、マーカー領域の候補の抽出を判定する。マーカー識別部165は、マーカー領域の候補を抽出するまで、閾値に加算閾値を加えた階調値を新たな閾値として、マーカー領域の候補の抽出を行なう、または、新たな閾値が所定の閾値としての初期閾値に設定された階調値を超えた場合には、マーカー識別部165は、マーカー領域の候補の抽出の処理を終了する。そのため、本実施形態のマーカーMK1の検出方法では、HMD100などのマーカーMK1を検出する装置は、1つの撮像画像に対して、異なる階調値の閾値によって複数の2値化を行なうため、撮像画像の中にマーカーMK1が含まれる場合に、より正確にマーカーMK1を抽出しやすい。
また、本実施形態のマーカーMK1の検出方法では、マーカー識別部165は、マーカーMK1を特定するための複数の特定点を、マーカーMK1に含まれる複数の円のそれぞれの中心点として特定した。そのため、本実施形態のマーカーMK1の検出方法では、HMD100などのマーカーMK1を検出する装置は、撮像画像に含まれる特定点としての一点を特定するために、特定点を中心とする円の輪郭の複数の測定点を用いて特定するため、より正確に特定点を特定できる。
B.第2実施形態:
図11は、第2実施形態のHMD100aの構成を機能的に示すブロック図である。第2実施形態のHMD100aでは、第1実施形態のHMD100と比較して、次の(1)、(2)、(3)および(4)において異なる。それらは、(1)HMD100aがIMU71(Inertial Measurement Unit)を備えること;(2)初期化フェーズにおいて、HMD100aが、第1実施形態において導出されたマーカーMK1の「第1の姿勢」または「第2の姿勢」を利用することで、ワールド座標系(以下では、「グローバル座標系」とも呼ぶ)に対するマーカーMK1の位置と姿勢を導出すること;(3)HMD100aが、マーカーMK1を撮像しているカメラ61の出力と、慣性センサー71の出力と、に基づき、センサー融合アルゴリズムによって慣性センサー71の位置と姿勢を推定すること;および(4)推定されたIMU71の位置および姿勢と、グローバル座標系に対するマーカーMK1の位置と姿勢と、を用いて、カメラ61に対するマーカーMK1の位置と姿勢を検出すること、である。そのため、第2実施形態では、IMU71および演算部167aについて詳細に説明し、第1実施形態と同じ構成や処理については簡略化して説明する。
図11は、第2実施形態のHMD100aの構成を機能的に示すブロック図である。第2実施形態のHMD100aでは、第1実施形態のHMD100と比較して、次の(1)、(2)、(3)および(4)において異なる。それらは、(1)HMD100aがIMU71(Inertial Measurement Unit)を備えること;(2)初期化フェーズにおいて、HMD100aが、第1実施形態において導出されたマーカーMK1の「第1の姿勢」または「第2の姿勢」を利用することで、ワールド座標系(以下では、「グローバル座標系」とも呼ぶ)に対するマーカーMK1の位置と姿勢を導出すること;(3)HMD100aが、マーカーMK1を撮像しているカメラ61の出力と、慣性センサー71の出力と、に基づき、センサー融合アルゴリズムによって慣性センサー71の位置と姿勢を推定すること;および(4)推定されたIMU71の位置および姿勢と、グローバル座標系に対するマーカーMK1の位置と姿勢と、を用いて、カメラ61に対するマーカーMK1の位置と姿勢を検出すること、である。そのため、第2実施形態では、IMU71および演算部167aについて詳細に説明し、第1実施形態と同じ構成や処理については簡略化して説明する。
図11に示すように、第2実施形態のHMD100aが備える画像表示部20aは、IMU71を有する。IMU71は、加速度および角速度を検出する慣性センサーである。さらに、IMU71は、IMU71の位置と姿勢とを出力するように構成されている。IMU71は、画像表示部20aにおけるカメラ61aの近くに内蔵されている。IMU71は、加速度および角速度に加えて、地磁気に基づく方位を検出する。第2実施形態のIMU71は、125ヘルツ(Hz)の周期で加速度および角速度を検出する。なお、以降では、IMU71によって検出された加速度および角速度を、IMU71の検出値とも言う。IMU71は、請求項における慣性センサーに相当する。
カメラ61aは、30Hzの周期で外景を撮像する。換言すると、カメラ61aは、1秒間に30フレームの静止画像を、動画として取得する。なお、他の実施形態では、カメラ61aは、画像表示部20aに対して可動であるように構成されていてもよい。
CPU140aが有する演算部167aは、IMU71の検出値を用いて、絶対座標系であるグローバル座標系に対するIMU71のセンサー座標系の位置関係を算出する。
図12は、マーカー追跡処理のフローチャートである。マーカー追跡処理では、初めに、CPU140aは、第1実施形態の図4に示すマーカーMK1の姿勢算出処理を実行する(ステップS30)。次に、CPU140aは、グローバル座標系に対するマーカーMK1の位置および姿勢(変換行列TO2G)を導出する(ステップS31)。変換行列TO2Gの導出の詳細は後述する。本実施形態において、ステップS30およびステップS31は、初期化フェーズまたは初期化プロセスと表記されてもよい。
次に、演算部167aは、マーカーMK1の画像フレームを取得しているカメラ61aの出力とIMU71の出力とに基づき、センサー融合アルゴリズムを用いて、グローバル座標系に対するIMU71の位置と姿勢を導出する(ステップS33)。後述されるように、センサー融合アルゴリズムの一例として、拡張カルマンフィルターに基づくアルゴリズムが用いられる。
カメラ61aの出力とIMU71の出力との融合のためには、グローバル座標系に対してカメラ61aの位置と姿勢を精度よく推定することが求められる。図13は、上述の融合パイプラインまたは融合処理において用いられる座標系間の関係を表す概略図である。図13には、以下に示す三次元座標系が示されている。図13において、オブジェクト座標系CSOは、マーカーMK1に固定された座標系である。図13において、カメラ座標系CSCは、カメラ61aに固定された座標系である。図13において、グローバル座標系CSGは、地球に対して固定され、そのX軸はローカル磁場による北を指し、そのZ軸は重力加速度と反対方向を指す座標系である。図13において、センサー座標系CSSは、IMU71に固定されている座標系である。
IMU71の検出値または出力によって、グローバル座標系CSGに対するIMU71の姿勢が算出される。IMU71の出力にIMU71の姿勢が含まれるようにIMU71が構成されていてもよい。演算部167aは、カメラ61aのビジョン出力を用いて、カメラ座標系CSCに対するマーカーMK1の姿勢を出力する。ビジョンとIMU71とを融合するためには、これら2つを共通の座標系で表わすことが必要であり、本実施形態では、グローバル座標系CSGがそのような共通の座標系として用いられる。さらに、融合の結果はグローバル座標系CSGにおけるIMU71の姿勢であるから、レンダリングのために、それがカメラ座標系CSCに変換される必要がある。IMU71の姿勢をカメラ座標系におけるオブジェクトの姿勢に変換するために、次の式(23)が利用される。
ここで、行列TS2Cは、センサー座標系CSSとカメラ座標系CSCとの間の変換行列であり、従来のIMU−カメラ間のキャリブレーションによって事前に求めておくことができる。行列TO2Gは、オブジェクト座標系CSOとグローバル座標系CSGとの間の変換行列である。ここでは、マーカーがほぼ静止していることを前提としているので、行列TO2Gは、固定であり、かつ初期化フェーズの間に1回だけ計算されれば済む(ステップS30およびS31)。行列TS2Gは、グローバル座標系CSGで表わされた(グローバル座標系における)IMU71の位置と姿勢である。行列TO2Cは、カメラ座標系CSCにおけるオブジェクト、例えばマーカーMK1、の位置と姿勢である。
第2実施形態では、行列TO2Gを計算する自動的な方法として、以下に説明する方法を用いる。上述の式(23)によれば、以下の式(24)が導出される。なお、式(25)の関係が成立している。
初期化フェーズ(ステップS30およびS31)において、HMD100aを装着している使用者は、HMD100aにおける所定のインターフェース部を介して、マーカーMK1をカメラ61aの視野に入れたままで1秒ほど使用者自身の頭部を実質的に静止させることを求められる。IMU71が実質的に静的な状態にあるとき、行列TS2Gは、以下の式(26)ないし式(33)のように計算され得る。ここで、ax, ay, azは、IMU71に含まれる加速度センサーの読出出力または計測出力である。
上記式(26)から式(31)において、roll、pitchおよびyawはグローバル座標系CSGにおけるXG軸、YG軸およびZG軸の回りの回転角を表す。本実施形態では、重力方向に平行なZG軸の回りの回転角を表すyawは式(28)においてゼロに設定されている。式(33)に示されるように、このようにして得られる行列TS2Gは、4×4の行列である。そして、行列TS2Gは初期化フェーズで用いられる。
行列TO2Cは、カメラ座標系において表されたマーカーの姿勢であり、図12におけるステップS30において、第1実施形態において説明された方法によって導出される。演算部167aが、行列TS2Gと行列TO2Cを導出した場合には、演算部167aは、ステップS31において、式(24)にしたがって、行列TS2Gと行列TO2Cとに基づいて行列TO2Gを導出する。
演算部167aが初期化フェーズまたは初期化プロセス(ステップS30およびS31)を終了した場合には、画像フレームにおいて、マーカーMK1上の特徴要素の位置が検出される。具体的には、本実施形態において、座標特定部166は、画像フレーム上の座標(画像座標)において、マーカーMK1上の9つの円の中心の座標を特定し、出力する。マーカーの姿勢(位置と姿勢を含む)の計算は、本実施形態では、必ずしも必要ではない。
演算部167aは、拡張カルマンフィルター(EKF)を実行して、カメラ61aの出力とIMU71の出力とに基づいてIMU71の位置と姿勢を推定または導出する(ステップS33)。なお、カメラ61aの出力は、上述の9つの円の中心の画像座標を含んでいる。ここで、2つのEKF、すなくち、DLTに基づくEKFと、エラードリブンEKF(Error-driven EKF)と、が適用可能である。第2実施形態では、演算部167aは、図12におけるステップS33においてパイプラインまたは処理の一部としてエラードリブンEKFを実行するように構成されており、以下ではそれについて説明する。なお、拡張カルマンフィルター(EKF)は、請求項におけるセンサー融合アルゴリズムに相当する。
状態xkおよび観測zkは、それぞれ下記の式(34)、(35)で表わされる。
ここで、式(34)および式(25)において、wkと、vkは、プロセスノイズと観測(observation)ノイズであり、それらは、それぞれQkおよびRkの共分散を有する平均ゼロの多変量ガウスノイズであると想定される。
状態予報と状態予測とは、それぞれ下記の式(36)、(37)で表わされる。
カメラ61aからの画像フレームにおいてマーカーMK1が検出される場合には、以下の式(38)から(41)により、状態更新は式(42)で表わされる。カメラ61aが撮像した画像情報が利用可能である場合の状態更新を行なうと、下記の式(38)ないし(42)を導ける。
上記式におけるFk,Lk,Mk,およびRkの計算には、従来の方法が利用できる。
ステップS33において、状態ベクトルxk={bk,bk’,qk}は、いずれもグローバル座標系CSGにおいて表されている。ここで、xkは、IMU71の位置bk、IMU71の速度bk’、IMU71の配向qk(姿勢)を含んでいる。ukは、IMU71に含まれる加速度センサーの入力およびジャイロの入力を含んだコントロール入力である。他の実施形態では、磁気センサーからの入力をコントロール入力に含めてもよい。観測(observation)zkは、マーカーMK1上の特徴点(本実施形態では9つの円中心)の画像座標を含んでいる。
カメラ61aからの画像フレームにおいてマーカーMK1が検出された場合に、状態ベクトルxkが式(42)により更新される。マーカーが検出されない場合には、状態ベクトルxkは、式(36)により更新(予測)される。
xkは、最新のIMU71の位置と姿勢を含む一方、CPU110aがレンダリングするには、HMD100aは、例えば、カメラ座標系CSCで表わされたマーカーMK1の位置と姿勢を必要とする。マーカーMK1の位置と姿勢は、演算部167aによって、ステップS35において式(23)にしたがって、IMU71の位置と姿勢(「IMU姿勢」とも呼ぶ)から計算される。本実施形態によれば、マーカーMK1が検出されるか検出されないかに関わらず、マーカーMK1の位置と姿勢は、IMU71の125Hzの周波数でIMU71の位置と姿勢に従って更新される。
図14は、IMU71の有無によって、追跡されるマーカーの位置と姿勢(「マーカー姿勢」とも呼ぶ)がどのように更新されるかを示している。図14において、水平軸は時間を表す。また、図14において、上部の並びは、カメラ61aによる画像フレームの取得が生じる時点を表している。中間の並びは、カメラ61aを用いるがIMU71なしで追跡されるマーカー姿勢を表している。そして、下部の並びは、本実施形態に係るものであり、カメラ61aとIMU71とを用いて追跡されるマーカー姿勢を表している。矢印csは、追跡されたマーカーMK1の画像フレームにおけるX座標であり、双方向矢印dvは、使用者が画像表示部20越しに視認する実物のマーカーMK1の中心と、画像表示部20上に表示される追跡されたマーカーMK1の中心と、の間の距離を表している。カメラ61aによる画像フレームの取得は、30Hzの周波数で生じ、Tnで表わされている。IMU71による検出は、125Hzの周波数で生じ、Tn_mで表わされている。図14から理解されるように、カメラ61aとIMU71とを用いてマーカーMK1を追跡することは、IMU71なしでマーカーMK1を追跡することに比較して、追跡におけるレイテンシーを低減する。
マーカーMK1が、カメラ61aを用いるがIMU71無しで追跡される場合でも、合理的な大きさのマーカーMK1が用いられれば、当該追跡は安定する。しかしながら、マーカーMK1の大きさが小さくなるか、またはカメラ61aとマーカーMK1との間の距離が増加する場合には、追跡においてより多くのジッターが観測されることがある。これに対して、マーカーMK1が、カメラ61aとIMU71とを用いて追跡される場合には、たとえマーカーMK1がより小さくなり、またはカメラ61aとIMU71との間の距離が増加する場合であっても、観測されるジッターに大きな増加は見られず、そしてこのため、その追跡は安定を保つ。
演算部167aが図12のステップS35の処理を実行すると、CPU140aは、マーカーMK1の姿勢追跡を終了するか否かを判定する(ステップS37)。使用者によって操作部135が、姿勢追跡を終了するための所定の操作を受け付けると(ステップS37:YES)、CPU140aは、マーカー追跡処理を終了する。ステップS37の処理において、操作部135が姿勢追跡を終了する所定の操作を受け付けない場合には(ステップS37:NO)、ステップS30以降の処理を繰り返す。
以上説明したように、第2実施形態のHMD100aでは、演算部167aは、初期化フェーズまたは初期化プロセスの後で、マーカーMK1とカメラ61aとの間の相対位置関係を、カメラ61aの出力と、IMU71の出力とを用いて導出する。ここで、初期化フェーズまたはプロセスにおいて、第1実施形態において導出されたカメラ61aとマーカーMK1との間の相対位置関係が用いられる。この結果、IMU71なしでマーカーMK1を追跡することに比較して、追跡において観測されるレイテンシーが低減する。さらに、大きなジッターの増加は観測されず、そしてこのため、たとえより小さいマーカーMK1が用いられるか、またはカメラ61aとマーカーMK1との間の距離が増加する場合でも、その追跡は安定を維持する。第2実施形態に係る初期化フェーズ(図12におけるステップS30およびS31)は、HMD100aを装着している使用者に、カメラ61aとIMU71とを用いてマーカーMK1の位置と姿勢を追跡することを開始する際に、単に、カメラ61aの視野の中にマーカーMK1を位置させ、好適には1秒ほどその頭部を実質的に静的に保つことを要求するだけであることから、カメラ61aとIMU71との融合の利用をより簡単にする。
C.変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
C−1.変形例1:
上記実施形態のマーカーMK1では、正方形の中に含まれる複数の正円は、同じ大きさであるが、マーカーの中に含まれる正円は異なる大きさであってもよいし、正円以外の形状である半円や三角形などの形状であってもよい。例えば、第1円群CG1に含まれる円と第2円群CG2に含まれる円とは、異なる大きさであってもよい。また、円の代わりに正三角形が用いられる場合には、正三角形の重心が、マーカーMK1を特定するための特定点として用いられてもよい。
上記実施形態のマーカーMK1では、正方形の中に含まれる複数の正円は、同じ大きさであるが、マーカーの中に含まれる正円は異なる大きさであってもよいし、正円以外の形状である半円や三角形などの形状であってもよい。例えば、第1円群CG1に含まれる円と第2円群CG2に含まれる円とは、異なる大きさであってもよい。また、円の代わりに正三角形が用いられる場合には、正三角形の重心が、マーカーMK1を特定するための特定点として用いられてもよい。
上記実施形態のマーカーMK1では、2つの対角線CL1,CL2の交点を中心とする円C3が形成されていたが、必ずしも対角線の交点を中心とする円が形成されていなくてもよい。また、第1円群CG1に含まれる円と第2円群CG2に含まれる円とは、奇数個であったが偶数個であってもよいし、一方が奇数個でもう一方が偶数個であってもよい。また、第1円群CG1と第2円群CG2とは、円C3の中心C3Pを中心として点対称であり、かつ、中心C3Pを通る四辺の一辺を中心として線対称であったが、点対称でなくてもよく、線対称でなくてもよい。また、第1円群CG1および第2円群CG2を構成する隣接する円の中心間の距離は同じであったが、異なっていてもよいし、例えば、第1円群CG1に含まれる特定の円においてのみ、なんらかの距離の関係が形成されていてもよい。
上記実施形態のマーカーMK1では、方向特定円C10は、1つの円によって構成されたが、複数の円によって構成されてもよいし、円以外の形状によって構成されてもよい。
C−2.変形例2:
上記実施形態のマーカーMK1の検出方法では、マーカー識別部165は、カメラ61によって得られた撮像画像の画素の階調値を2値化して、マーカーMK1を撮像画像から抽出したが、2つよりももっと多い数で多値化してマーカーMK1を撮像画像から抽出してもよい。また、マーカー識別部165は、1つの撮像画像に対して、初期閾値で2値化した後にマーカーMK1を抽出できない場合に、初期閾値に加算閾値としての階調値を加えた新たな階調値を新たな階調値として撮像画像を2値化したが、必ずしも複数の階調値を閾値として設定して2値化する必要はない。マーカー識別部165は、予め設定された1つの階調値である閾値のみで、撮像画像を2値化して、マーカーMK1の抽出を判定してもよい。また、マーカー識別部165は、閾値に加算閾値を加えることを続行するかやめるかの判定をするための階調値として、初期閾値の階調値を用いたが、これ以外の階調値が用いられてもよい。例えば、マーカー識別部165は、階調値の上限値を超えた場合に、新たな閾値の階調値に加算閾値の階調値を加える処理をやめてもよい。
上記実施形態のマーカーMK1の検出方法では、マーカー識別部165は、カメラ61によって得られた撮像画像の画素の階調値を2値化して、マーカーMK1を撮像画像から抽出したが、2つよりももっと多い数で多値化してマーカーMK1を撮像画像から抽出してもよい。また、マーカー識別部165は、1つの撮像画像に対して、初期閾値で2値化した後にマーカーMK1を抽出できない場合に、初期閾値に加算閾値としての階調値を加えた新たな階調値を新たな階調値として撮像画像を2値化したが、必ずしも複数の階調値を閾値として設定して2値化する必要はない。マーカー識別部165は、予め設定された1つの階調値である閾値のみで、撮像画像を2値化して、マーカーMK1の抽出を判定してもよい。また、マーカー識別部165は、閾値に加算閾値を加えることを続行するかやめるかの判定をするための階調値として、初期閾値の階調値を用いたが、これ以外の階調値が用いられてもよい。例えば、マーカー識別部165は、階調値の上限値を超えた場合に、新たな閾値の階調値に加算閾値の階調値を加える処理をやめてもよい。
C−3.変形例3:
マーカーMK1のカメラ61に対する姿勢(回転)のうち座標軸の向きを求めなくてもよい場合には、画像表示部に、本実施形態のマーカーMK1から配向特定円C10を省略してもよい。この場合、第1円群CG1と第2円群CG2により、マーカーの誤検出の可能性を抑制しつつ、精度の高い並進関係を求めることができる。
マーカーMK1のカメラ61に対する姿勢(回転)のうち座標軸の向きを求めなくてもよい場合には、画像表示部に、本実施形態のマーカーMK1から配向特定円C10を省略してもよい。この場合、第1円群CG1と第2円群CG2により、マーカーの誤検出の可能性を抑制しつつ、精度の高い並進関係を求めることができる。
C−4.変形例4:
マーカーMK1は、コントローラー10の表面に取り付けられてもよい。また、マーカーMK1は、スマートフォンなどの表示部を有する携帯端末の当該表示部に表示されるように、コンピュータープログラムまたはデータの形態で当該携帯端末に供給されてもよい。
マーカーMK1は、コントローラー10の表面に取り付けられてもよい。また、マーカーMK1は、スマートフォンなどの表示部を有する携帯端末の当該表示部に表示されるように、コンピュータープログラムまたはデータの形態で当該携帯端末に供給されてもよい。
本発明は、上記実施形態や変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行なうことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
C−5.変形例5:
上記実施形態では、撮像した外景に表示画像を重畳させるための装置として、HMD100を一例に挙げて説明したが、撮像部としてのカメラ61や画像表示部20を有する装置として、異なる装置が用いられてもよい。例えば、撮像部と画像表示部と演算部167を有する装置のそれぞれは、異なる装置であってもよい。この場合に、LANなどの無線通信を介したデータの送受信が行なわれることで、演算部167は、他の装置が取得した撮像画像を用いて、上記実施形態で説明した相対位置関係を算出し、演算部167を有する装置とは異なる装置が、算出された相対位置関係を用いた画像の表示を行なってもよい。
上記実施形態では、撮像した外景に表示画像を重畳させるための装置として、HMD100を一例に挙げて説明したが、撮像部としてのカメラ61や画像表示部20を有する装置として、異なる装置が用いられてもよい。例えば、撮像部と画像表示部と演算部167を有する装置のそれぞれは、異なる装置であってもよい。この場合に、LANなどの無線通信を介したデータの送受信が行なわれることで、演算部167は、他の装置が取得した撮像画像を用いて、上記実施形態で説明した相対位置関係を算出し、演算部167を有する装置とは異なる装置が、算出された相対位置関係を用いた画像の表示を行なってもよい。
10…コントローラー,20,20a…画像表示部,21…右保持部,22…右表示駆動部,23…左保持部,24…左表示駆動部,26…右光学像表示部,28…左光学像表示部,30…イヤホンプラグ,32…右イヤホン,34…左イヤホン,40…接続部,42…右コード,44…左コード,46…連結部材,48…本体コード,51,52…送信部,53,54…受信部,61,61a…カメラ,71…IMU,100,100a…頭部装着型表示装置(HMD),121…ROM,122…RAM,130…電源,135…操作部,139…マーカー記憶部,140,140a…CPU,150…オペレーティングシステム,160…画像処理部,165…マーカー識別部,166…座標特定部,167,167a…演算部,170…音声処理部,180…インターフェイス,190…表示制御部,201…右バックライト制御部,202…左バックライト制御部,211…右LCD制御部,212…左LCD制御部,221…右バックライト,241…右LCD,242…左LCD,251…右投写光学系,252…左投写光学系,261…右導光板,262…左導光板,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,…円,C10…方向特定円,C0P,C1P,C2P,C3P,C4P,C5P,C6P,C7P,C8P,C9P,PP…中心,C10P…円C10の中心(方向特定点),CG1…第1円群,CG2…第2円群,CL1,CL2,CL3…対角線,cs…マーカー位置,CS0…オブジェクト座標系,CSC…カメラ座標系,CSG…グローバル座標系,CSS…センサー座標系,dv…IMUの位置,H1,H2…写像変換行列,IMG1…撮像画像,LE…左眼,RE…右眼,MK1,MK2,MK3…マーカー,OA…外部機器,P0,P1,P2,P3…頂点(矩形特定点),P4,P5,P6,P7…頂点,P0m…座標値,d0…距離,h1,h2,h3,r1,r2,r3…列ベクトル,AR1,AR2,AR3…領域,R…回転行列,T…並進行列,T0,T1_1…時刻,WH1,WH2…白色部分,f…焦点距離
Claims (16)
- マーカーであって、
矩形を特定する矩形特定点と、
特定された前記矩形の2つの対角線の内の1つである第1対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合である第1円群と、
前記2つの対角線の内の前記第1対角線とは異なる第2対角線の線上に中心があり、前記矩形内に含まれる複数の円の集合である第2円群と、
方向特定点と、を備える、マーカー。 - 請求項1に記載のマーカーであって、さらに、
2つの対角線の交点を中心とする中心円を備える、マーカー。 - 請求項2に記載のマーカーであって、
前記中心円は、前記第1円群に含まれる円であり、前記第2円群に含まれる円である、マーカー。 - 請求項1から請求項3までのいずれか一項に記載のマーカーであって、
前記方向特定点は、2つの対角線の交点と異なり、前記矩形内に含まれる方向特定円の中心点である、マーカー。 - 請求項4に記載のマーカーであって、
前記方向特定円は、2つの対角線の交点を中心とする中心円と、前記第1円群に含まれる円と、前記第2円群に含まれる円とは、異なる円である、マーカー。 - 請求項4または請求項5に記載のマーカーであって、
前記方向特定円は、1つの円である、マーカー。 - 請求項1から請求項6までのいずれか一項に記載のマーカーであって、
前記第1円群と前記第2円群とは、前記矩形の前記中心を通ると共に前記矩形の一辺と平行な直線に対して線対称、および2つの対角線の交点に対して点対称の少なくとも一方の対称性で形成されている、マーカー。 - 請求項1から請求項7までのいずれか一項に記載のマーカーであって、
前記矩形に含まれる円の大きさは、全て同じである、マーカー。 - 請求項1から請求項8までのいずれか一項に記載のマーカーであって、
前記矩形に含まれる円は、白色または黒色であり、
前記矩形特定点は、前記矩形の外枠が交差する4つの頂点であり、前記矩形に含まれる円以外の部分は、前記円と異なる白色または黒色である、マーカー。 - 請求項1から請求項9までのいずれか一項に記載のマーカーであって、
前記第1円群は、2つの対角線の交点を中心とする複数の円の中心間の距離が同じで、同じ大きさの円によって形成され、
前記第2円群は、2つの対角線の交点を中心とする複数の円の中心間の距離が前記第1円群に含まれる円の中心間の距離と同じで、前記第1円群に含まれる円と同じ大きさの円によって形成される、マーカー。 - マーカーを検出する方法であって、
外景を撮像する工程と、
撮像された外景の画像から前記マーカーを抽出するマーカー抽出工程と、
抽出された前記マーカーの方向を特定する方向特定点を特定する方向特定工程と、
抽出された前記マーカーの中から前記方向特定点以外で、前記マーカーを特定するための複数の特定点を特定する特定工程と、
特定された前記マーカーの方向特定点と、特定された前記複数の特定点と、に基づいて、前記撮像部に対する前記マーカーの位置および姿勢を算出する算出工程と、を備える、方法。 - 請求項11に記載の方法であって、
前記マーカー抽出工程と前記方向特定工程と前記特定工程とでは、
撮像された外景の画像に対して、予め設定された階調値としての第1閾値を基準として2値化が行なわれ、前記第1閾値による2値化によって前記複数の座標を抽出できない場合には、前記第1閾値に予め設定された階調補正値を加えた第2閾値を前記第1閾値として置換して2値化が行なわれ、
前記第1閾値による2値化は、前記マーカー抽出工程における前記マーカーの抽出と前記方向特定工程における前記方向特定点の特定と前記特定工程における前記複数の特定点の特定を実行する、または、前記第1閾値に前記階調補正値を加えた値が所定の値を超えるまで行なわれる、方法。 - 請求項11または請求項12に記載の方法であって、
前記方向特定点および前記複数の特定点は、円の中心点を用いて特定される、方法。 - 撮像部を備えた装置を制御するためのコンピューターに、マーカーを検出させるためのコンピュータープログラムであって、
前記撮像部を介して外景を撮像する第1の撮像機能と、
撮像された外景の画像から前記マーカーを抽出するマーカー抽出機能と、
抽出された前記マーカーの方向を特定する方向特定点を特定する方向特定機能と、
特定された前記マーカーの中から前記方向特定点以外で、前記マーカーを特定するための複数の特定点を特定する特定機能と、
特定された前記マーカーの方向特定点と、特定された前記複数の特定点と、に基づいて、前記撮像部に対する前記マーカーの位置および姿勢を算出する算出機能と、をコンピューターに実現させるためのコンピュータープログラム。 - 請求項14に記載のコンピュータープログラムであって、
前記装置は、慣性センサーを含み、
前記撮像部を介して前記マーカーを撮像する第2の撮像機能と、
前記第2の撮像機能によって得た前記撮像部の出力と、前記慣性センサーの出力と、に基づき、センサー融合アルゴリズムによって前記慣性センサーの位置と姿勢を推定する融合機能と、
前記算出機能によって算出された前記マーカーの前記位置および姿勢と、前記融合機能によって導出された前記慣性センサーの前記位置および姿勢と、に少なくとも基づいて、前記マーカーの位置および姿勢を算出する第2の算出機能と、
をコンピューターに実現させるためのプログラム。 - マーカーであって、
矩形を特定する矩形特定要素と、
特定された前記矩形の2つの対角線の内の1つである第1対角線の線上にあり、前記矩形内に含まれる複数の特定要素の集合である第1特定要素群と、
前記2つの対角線の内の前記第1対角線とは異なる第2対角線の線上にあり、前記矩形内に含まれる複数の特定要素の集合である第2特定要素群と、
方向特定要素と、を備える、マーカー。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/159,327 US10192133B2 (en) | 2015-06-22 | 2016-05-19 | Marker, method of detecting position and pose of marker, and computer program |
EP16175559.0A EP3109825B1 (en) | 2015-06-22 | 2016-06-21 | Marker, method of detecting position and pose of marker, and computer program |
US16/208,015 US10296805B2 (en) | 2015-06-22 | 2018-12-03 | Marker, method of detecting position and pose of marker, and computer program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015124618 | 2015-06-22 | ||
JP2015124618 | 2015-06-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017010533A true JP2017010533A (ja) | 2017-01-12 |
Family
ID=57761616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016095734A Pending JP2017010533A (ja) | 2015-06-22 | 2016-05-12 | マーカー、マーカーの位置および姿勢を検出する方法、および、コンピュータープログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017010533A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019074362A (ja) * | 2017-10-13 | 2019-05-16 | 任天堂株式会社 | 姿勢位置推測システム、姿勢位置推測方法、および姿勢位置推測装置 |
-
2016
- 2016-05-12 JP JP2016095734A patent/JP2017010533A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019074362A (ja) * | 2017-10-13 | 2019-05-16 | 任天堂株式会社 | 姿勢位置推測システム、姿勢位置推測方法、および姿勢位置推測装置 |
JP7027109B2 (ja) | 2017-10-13 | 2022-03-01 | 任天堂株式会社 | 姿勢位置推測システム、姿勢位置推測方法、および姿勢位置推測装置 |
US11272152B2 (en) | 2017-10-13 | 2022-03-08 | Nintendo Co., Ltd. | Orientation and/or position estimation system, orientation and/or position estimation method, and orientation and/or position estimation apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296805B2 (en) | Marker, method of detecting position and pose of marker, and computer program | |
US10242504B2 (en) | Head-mounted display device and computer program | |
US11030975B2 (en) | Information processing apparatus and information processing method | |
US10970425B2 (en) | Object detection and tracking | |
US10621751B2 (en) | Information processing device and computer program | |
US11200646B2 (en) | Compensation for deformation in head mounted display systems | |
KR101661991B1 (ko) | 모바일 확장 공간에서의 3d 드로잉을 지원하기 위한 hmd 장치 및 방법 | |
US20200211512A1 (en) | Headset adjustment for optimal viewing | |
US10634918B2 (en) | Internal edge verification | |
JP2018078448A (ja) | プログラム、頭部装着型表示装置 | |
US12010286B2 (en) | Separable distortion disparity determination | |
US20200090368A1 (en) | Methods and devices for extended reality device training data creation | |
US20220103802A1 (en) | Eyewear with strain gauge estimation | |
US11461883B1 (en) | Dirty lens image correction | |
JP2018084954A (ja) | プログラム、姿勢導出方法、姿勢導出装置 | |
US11726327B2 (en) | Eyewear having unsynchronized rolling shutter cameras | |
US10965931B1 (en) | Sensor misalignment compensation | |
US20230412778A1 (en) | Projector with field lens | |
JP2017010533A (ja) | マーカー、マーカーの位置および姿勢を検出する方法、および、コンピュータープログラム | |
US20220365354A1 (en) | Segmented illumination display | |
JP2017044756A (ja) | 画像表示装置、画像表示方法及びプログラム | |
WO2022240933A1 (en) | Depth-from- stereo bending correction | |
US20240029302A1 (en) | Depth-from-stereo bending correction using visual inertial odometry features |