JP2017108370A - 頭部装着型表示装置およびコンピュータープログラム - Google Patents
頭部装着型表示装置およびコンピュータープログラム Download PDFInfo
- Publication number
- JP2017108370A JP2017108370A JP2016097716A JP2016097716A JP2017108370A JP 2017108370 A JP2017108370 A JP 2017108370A JP 2016097716 A JP2016097716 A JP 2016097716A JP 2016097716 A JP2016097716 A JP 2016097716A JP 2017108370 A JP2017108370 A JP 2017108370A
- Authority
- JP
- Japan
- Prior art keywords
- marker
- image
- unit
- image display
- camera
- 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
- 238000004590 computer program Methods 0.000 title claims description 18
- 239000003550 marker Substances 0.000 claims abstract description 686
- 238000003384 imaging method Methods 0.000 claims abstract description 83
- 238000003860 storage Methods 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 abstract description 84
- 230000003287 optical effect Effects 0.000 description 424
- 239000013256 coordination polymer Substances 0.000 description 77
- 239000011159 matrix material Substances 0.000 description 74
- 230000008569 process Effects 0.000 description 69
- 230000014509 gene expression Effects 0.000 description 63
- 238000006243 chemical reaction Methods 0.000 description 53
- 238000013519 translation Methods 0.000 description 53
- 230000014616 translation Effects 0.000 description 53
- 230000036544 posture Effects 0.000 description 46
- 238000012545 processing Methods 0.000 description 46
- 238000004364 calculation method Methods 0.000 description 44
- 230000006870 function Effects 0.000 description 40
- 238000005457 optimization Methods 0.000 description 37
- 238000013507 mapping Methods 0.000 description 29
- 238000012986 modification Methods 0.000 description 27
- 230000004048 modification Effects 0.000 description 27
- 210000003128 head Anatomy 0.000 description 26
- 230000000007 visual effect Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 20
- 230000009466 transformation Effects 0.000 description 19
- 230000008859 change Effects 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 15
- 238000013461 design Methods 0.000 description 15
- 238000012790 confirmation Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 10
- 239000003086 colorant Substances 0.000 description 9
- 238000009795 derivation Methods 0.000 description 8
- 230000005484 gravity Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 8
- 238000005401 electroluminescence Methods 0.000 description 7
- 238000003825 pressing Methods 0.000 description 7
- 239000004973 liquid crystal related substance Substances 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 239000011347 resin Substances 0.000 description 5
- 229920005989 resin Polymers 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 210000004709 eyebrow Anatomy 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 230000012447 hatching Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000002834 transmittance Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 210000001061 forehead Anatomy 0.000 description 2
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 2
- 230000035807 sensation Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
- Studio Devices (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】キャリブレーションを容易に実行できる技術を提供する。【解決手段】頭部装着型表示装置は、表示可能な画像表示部と;撮像部と;マーカー画像のデータを記憶するマーカー画像記憶部と;前記マーカー画像を前記画像表示部に表示させる画像設定部と;パラメーター設定部と、を備え;前記パラメーター設定部は、前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記撮像画像に少なくとも基づいて、前記撮像部のカメラパラメーター、および前記撮像部と前記画像表示部との間の空間関係の少なくとも一つを導出する。【選択図】図1
Description
本発明は、頭部装着型表示装置の技術に関する。
従来から、使用者の頭部に装着される頭部装着型表示装置(Head Mounted Display:HMD)が知られている。例えば、特許文献1には、支持手段を介して外景を撮像可能な撮像手段がHMDに対して上下にスライドするビデオシースルー型HMDが記載されている。
Vuforia Calibration App、[online]、[平成27年6月3日検索]、インターネット〈URL:https://developer.vuforia.com/library/articles/Training/Vuforia-Calibration-App〉
しかし、非特許文献1に記載された技術では、キャリブレーションを行なうために、右画像表示部と左画像表示部とのそれぞれについて、複数の撮像を行なう必要があった。この場合に、撮像によって得られた複数の撮像画像に基づいて、キャリブレーションが行なわれるため、撮像された複数の画像間における誤差が大きい場合があり、キャリブレーションの精度に向上の余地があった。また、画像を視認する使用者によって、右眼の位置と左眼の位置とには個人差があるため、使用者が画像表示部を透過して視認する外景と撮像部の位置から撮像される外景との関係にばらつきがある。さらに、製造上の精度によっては、撮像部のカメラパラメーターにばらつきがある場合があり、また、画像表示部と画像を撮像する撮像部との相対位置関係とが一定ではなく、ばらつきが発生するおそれがある。そのため、これらのばらつきを考慮した上で、使用者にさらに精度の高い画像を視認させたいという課題があった。また、できるだけ少ない回数の撮像によってキャリブレーションを完了したり、より迅速にキャリブレーションを完了したいという課題があった。
光学シースルー型の頭部装着型表示装置を含む画像表示装置が、カメラによって撮像された特定の対象物の位置に画像を精度良く重畳させて表示させる技術を備えれば、AR(拡張現実)機能に関して、向上した利便性を提供することができる。ただし、カメラで撮像した特定の対象物に表示画像を正しく重畳させる際には、カメラと画像表示部との間の空間関係を正しく求めることが望まれる。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
(1)本発明の一形態によれば、頭部装着型表示装置が提供される。この頭部装着型表示装置は;外光を透過可能であって、画像を表示可能な画像表示部と;撮像部と;マーカー画像のデータを記憶するマーカー画像記憶部と;前記データに基づいて前記マーカー画像を前記画像表示部に表示させる画像設定部と;パラメーター設定部と、を備え;前記パラメーター設定部は、前記画像表示部に表示された前記マーカー画像と前記マーカー画像に対応した実物マーカーとが少なくとも部分的にほぼ一致するように使用者に視認させた状態で前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記撮像画像に少なくとも基づいて、前記撮像部のカメラパラメーター、および前記撮像部と前記画像表示部との間の空間関係の少なくとも一つを導出する。この形態の頭部装着型表示装置によれば、特定のオブジェクトの位置などに対応付けられて表示されるAR画像の位置および向きの設定を、簡便に行なうことができ、より精度の高いキャリブレーションが実行される。
(2)上記形態の頭部装着型表示装置において、前記画像設定部は、前記パラメーター設定部が前記カメラパラメーターと前記空間関係との少なくとも一方を設定した後に、設定された前記カメラパラメーターと前記空間関係とを用いて、AR画像の位置と向きと、前記実物マーカーの位置と向きと、が対応した状態の前記AR画像が前記使用者に視認されるように、前記画像表示部に前記AR画像を表示してもよい。
(3)上記形態の頭部装着型表示装置において、前記マーカー画像記憶部は、前記マーカー画像の元となる3次元モデルを前記データとして記憶しており;前記画像設定部は、前記3次元モデルを前記マーカー画像として前記画像表示部に表示させ;前記画像表示部に表示された前記マーカー画像と、前記3次元モデルに対応した3次元形状を有する実物マーカーと、が少なくとも部分的にほぼ一致するように使用者に視認させた状態で前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記パラメーター設定部は、前記撮像画像に少なくとも基づいて、前記カメラパラメーター、および前記空間関係の少なくとも一つを導出してもよい。
(4)上記形態の頭部装着型表示装置において、前記撮像部は前記画像表示部に対して可動であってもよい。
本発明は、頭部装着型表示装置以外の種々の形態で実現することも可能である。例えば、画像表示装置、これらの装置を有するシステム、これらの装置の制御方法およびシステムを実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した記録媒体、および、そのコンピュータープログラムを含み搬送波内に具現化されたデータ信号等の形態で実現できる。
A.第1実施形態:
A−1.画像表示装置の構成:
図1は、キャリブレーションを行なう頭部装着型表示装置100(HMD100)の外観構成を示す説明図である。HMD100は、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20を透過する外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100は、画像表示部20を装着した使用者の右眼と左眼とのそれぞれに対応する画像表示部を有しており、使用者の右眼と左眼とに別々の画像を視認させることができる。
A−1.画像表示装置の構成:
図1は、キャリブレーションを行なう頭部装着型表示装置100(HMD100)の外観構成を示す説明図である。HMD100は、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20を透過する外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100は、画像表示部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は、図2で後述する液晶ディスプレイ241,242(Liquid Crystal Display、以下「LCD241,242」とも呼ぶ)や投写光学系251,252等を含む。表示駆動部22,24の構成の詳細な説明は後述する。光学像表示部26,28は、後述する導光板261,262(図2参照)と調光板とを含んでいる。導光板261,262は、光透過性の樹脂材料等によって形成され、表示駆動部22,24から出力された画像光を使用者の眼に導く。調光板は、薄板状の光学素子であり、使用者の眼の側とは反対の側である画像表示部20の表側を覆うように配置されている。調光板の光透過率を調整することによって、使用者の眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
カメラ61は、右光学像表示部26の端部ERにおける上方に配置されている。カメラ61は、使用者が画像表示部20を頭部に装着した状態において、使用者の視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。カメラ61は、画像表示部20に対して向きを変更でき、撮像範囲を変更できる。また、カメラ61は、光軸を中心としたズームによって変化する範囲を撮像する。詳細については後述するが、光学像表示部26または左光学像表示部28に表示されたキャリブレーション用画像と、外景に含まれるマーカーとが重複するようにカメラ61によって撮像されることで、キャリブレーションが行なわれる。
画像表示部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を有する。
図2は、HMD100の構成を機能的に示すブロック図である。図2に示すように、制御部10は、ROM121と、RAM122と、電源130と、操作部135と、マーカー画像記憶部138と、CPU140と、インターフェイス180と、送信部51(Tx51)および送信部52(Tx52)と、を有している。
電源130は、HMD100の各部に電力を供給する。ROM121には、種々のコンピュータープログラムが格納されている。後述するCPU140は、ROM121に格納された各種コンピュータープログラムを、RAM122に展開することで、各種コンピュータープログラムを実行する。
マーカー画像記憶部138は、モデルマーカーのデータおよび/または右光学像表示部26または左光学像表示部28に表示されるキャリブレーション用画像としてのマーカーMK1のマーカー画像IMGを記憶している。マーカー画像記憶部138は、右光学像表示部26に表示されるマーカー画像と左光学像表示部28に表示されるマーカー画像とを同じマーカーの画像IMGとして記憶している。マーカー画像IMGは、3次元モデル空間(3Dコンピューターグラフィックス空間)で表現された上記モデルマーカー(2D)を、右光学像表示部26または左光学像表示部28のそれぞれの写像パラメーターに基づいて写像したものである。
図3は、画像表示部20に表示されるマーカー画像IMGの一例を示す説明図である。図3に示すように、マーカー画像IMGは、4つの頂点P0,P1,P2,P3を直線で結んだ正方形の中に、9個の正円を含んでいる。9個の円の内の5個の円は、頂点P0と頂点P2とを結んだ対角線CL1上に円の中心が存在する。当該5個の円は、対角線CL1に沿って、頂点P0に近い円から、円C1,C2,C3,C4,C5である。同じように、9個の円の内の5個の円は、頂点P1と頂点P3とを結んだ対角線CL2上に円の中心が存在する。当該5個の円は、対角線CL2に沿って、頂点P1に近い円から、円C6,C7,C3,C8,C9である。円C3は、対角線CL1と対角線CL2との交点であると共に、正方形の重心である点を中心とする円である。本実施形態では、対角線CL1上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。同じように、対角線CL2上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。また、対角線CL1に中心を有する隣接する円の中心間の距離と、対角線CL2に中心を有する隣接する円の中心間の距離とは、同じ距離である。9個の円の大きさは、同じ大きさである。なお、対角線CL1および対角線CL2は、便宜上、図3に示しているのであり、マーカー画像IMGには含まれない直線である。
図3では、色の違いを、ハッチングを変えることで表している。そのため、図3に示すように、マーカー画像IMGには、円C3の内部の黄色と、円C5の内部の緑色と、円C3,C5と異なる7個の円C1,C2,C4,C6,C7,C8,C9の内部の白色と、正方形の中に含まれ、9個の円を含まない部分の黒色と、の4色が存在する。また、図3では、円C3の中心C3Pを原点とするX軸とY軸とが示されている。後述するキャリブレーション実行処理では、中心C3Pを原点として、各種の座標値が特定される。マーカー画像IMGに含まれる9個の円の内、円C3と円C5との色がその他の7個の円と異なるのは、中心円としての円C3と、撮像された実物のマーカーMK1の方向を特定するための円C5と、を区別するためである。
図2に示す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は、マーカー画像記憶部138に記憶されたマーカーMK1の画像を右光学像表示部26または左光学像表示部28に表示させる。表示設定部165は、キャリブレーション実行時に、操作部135が受け付けた操作に基づいて、マーカー画像IMGを右光学像表示部26に表示する場合と、マーカー画像IMGを左光学像表示部28に表示する場合とを制御する。
マーカー特定部166は、カメラ61によって撮像された撮像画像の中から、例えば、制御部10の裏面(操作部135の反対側の面)や所定の壁などに配置されたマーカーMK1の実物マーカーRLを特定する。実物マーカーRLを特定するための具体的な処理については、後述するが、マーカー特定部166は、実物マーカーRLの4つの頂点、9個の円の中心の座標値、9個の円の色などを抽出することで、撮像画像の中から実物マーカーRLを特定する。マーカー特定部166は、例えば、撮像画像の色の階調値を2値化することで、マーカーMK1における色の異なる9個の円などを抽出する。なお、マーカー画像IMGは、請求項における第1のマーカーの画像に相当し、実物マーカーRLは、第2のマーカーに相当する。
演算部167は、マーカー特定部166によって特定された実物マーカーRLの座標値と、右光学像表示部26または左光学像表示部28に表示されたマーカー画像IMGに対応する画素の座標値と、に基づいて、カメラ61に関するパラメーターを最適化する。カメラ61に関するパラメーターの最適化は、予め既知ではない(未知である)カメラ61の焦点距離に関連するパラメーターおよび主点位置(例えば撮像画像の中心座標)などを含むパラメーターを、得られた座標値を用いて、最適化できるように計算する。最適化により導出されたカメラパラメーターを用いて対象物が撮像されて撮像画像が取得されると、撮像画像における対象物の位置と、ユーザーから見たときの対象物に重なる画像表示部上の表示位置とが対応付けられることとなる。この結果、使用者は、画像表示部20を介してAR(Augmented Reality)画像が、当該対象物に対して位置、大きさ、姿勢の少なくとも一つが一致するように視認することができる。なお、カメラ61のパラメーターの最適化の詳細については、後述する。
インターフェイス180は、制御部10に対して、コンテンツの供給元となる種々の外部機器OAを接続するためのインターフェイスである。外部機器OAとしては、例えば、ARシナリオを記憶している記憶装置、パーソナルコンピューター(PC)や携帯電話端末、ゲーム端末等、がある。インターフェイス180としては、例えば、USBインターフェイス、マイクロUSBインターフェイス、メモリーカード用インターフェイス等、を用いることができる。
図2に示すように、画像表示部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−2.キャリブレーション実行処理:
図4は、本実施形態におけるキャリブレーション実行処理のフローチャートである。キャリブレーション実行処理は、CPU140が右光学像表示部26または左光学像表示部28に表示されたマーカー画像IMGと外景から特定された実物マーカーRLとが重複する状態で撮像し、マーカー画像IMGの座標値と実物マーカーRLの座標値とを用いて、キャリブレーションを行なうためのカメラ61のパラメーターを最適化する処理である。
図4は、本実施形態におけるキャリブレーション実行処理のフローチャートである。キャリブレーション実行処理は、CPU140が右光学像表示部26または左光学像表示部28に表示されたマーカー画像IMGと外景から特定された実物マーカーRLとが重複する状態で撮像し、マーカー画像IMGの座標値と実物マーカーRLの座標値とを用いて、キャリブレーションを行なうためのカメラ61のパラメーターを最適化する処理である。
キャリブレーション実行処理では、初めに、表示設定部165は、マーカー画像IMGを、使用者の右眼に対応する右画像表示部としての右光学像表示部26のみに表示させる(ステップS11)。
図5は、右光学像表示部26のみにマーカー画像IMGが表示された状態の概略図である。図5には、使用者が、予め画像表示部20を装着した使用者の仮想の右眼の位置として設定された右眼位置RPから、右光学像表示部26に表示されたマーカー画像IMGを視認した場合の概略が示されている。また、図5には、撮像される三次元空間の座標軸を表す座標軸CD2と、撮像された二次元画像の座標軸を表す座標軸CD1と、が示されている。使用者は、右光学像表示部26に表示されたマーカー画像IMGを、画像表示部20から距離L1離れた位置に存在するマーカーMK1として視認する。
図4のステップS11の処理が行なわれると、マーカー特定部166は、使用者に対して、右光学像表示部26に表示されたマーカー画像IMGと、外景に存在する実物マーカーRLとが重なるように位置合わせを促す(ステップS13)。
図6には、外景SCに含まれる実物マーカーRLと、右光学像表示部26に表示されたマーカー画像IMGおよび文字画像TX1と、が示されている。文字画像TX1は、使用者にマーカー画像IMGと実物マーカーRLとの位置合わせを行なった後に、撮像を促すことを文字で表す画像である。具体的には、文字画像TX1は、「重複させてから撮像ボタンを押してください」を表す文字の画像である。図6に示すように、マーカー画像IMGの中心と実物マーカーRLの中心とは、一致していない。また、図6に示す例では、実物マーカーRLは、マーカー画像IMGに対して、角度θ1傾いている。この場合に、画像表示部20を装着した使用者は、自身の位置や向きを変えることで、実物マーカーRLにマーカー画像IMGを重ねることができる。
マーカー特定部166は、図4のステップS13の処理を行なうと、マーカー画像IMGと実物マーカーRLと位置合わせが完了しているか否かを判定する(ステップS15)。マーカー特定部166は、図6の文字画像TX1に示すように、使用者によって撮像ボタンが押下される操作の有無によって、位置合わせの完了の判定を行なう。撮像ボタンとしては、予め設定された操作部135のいずれかのボタンでよく、種々変形可能である。
撮像ボタンの押下の操作がなく、マーカー特定部166は、位置合わせが完了していないと判定した場合には(ステップS15:NO)、引き続き、位置合わせが完了したことを表す撮像ボタンの押下の操作を待機する。撮像ボタンの押下の操作があると、マーカー特定部166は、位置合わせが完了していると判定し(ステップS15:YES)、カメラ61によって外景SCを撮像する(ステップS17)。
次に、表示設定部165は、右光学像表示部26のみに表示させたマーカー画像IMGを非表示にして、左光学像表示部28のみにマーカー画像IMGを表示させる(ステップS19)。その後、ステップS13からステップS17までの使用者の右眼REに対応する処理と同じように、マーカー特定部166は、使用者の左眼LEに対して、マーカー画像IMGと実物マーカーRLとが重なるように位置合わせを促す(ステップS21)。
マーカー特定部166は、仮想の左眼位置LPを基準として、使用者に位置合わせを促すと、マーカー画像IMGと実物マーカーRLとの位置合わせが完了しているか否かを判定する(ステップS23)。マーカー特定部166は、使用者による撮像ボタンの押下の操作がなく、位置合わせが完了していないと判定する場合には(ステップS23:NO)、引き続き、位置合わせが完了したことを示す撮像ボタンの押下の操作を待機する。撮像ボタンの押下の操作があると、マーカー特定部166は、位置合わせが完了していると判定し(ステップS23:YES)、カメラ61によって、外景SCを撮像する(ステップS25)。次に、演算部167は、右眼位置RPと左眼位置LPとのそれぞれを基準とした撮像画像を基に、カメラ61のパラメーターを未知として最適化する(ステップS30)。
カメラ61に関するパラメーターとして、4個のパラメーターCP(fx、fy、Cx、Cy)が存在する。(fx、fy)は撮像部の焦点距離であり、画素密度に基づいて画素数に換算されている。
カメラパラメーターは、撮像部の主要部分を構成するカメラ61の製品仕様から知ることができる(以下ではこれをデフォルトカメラパラメーターとも表記する)。ただし、実際のカメラのカメラパラメーターがデフォルトカメラパラメーターから大きくずれていることが多い。しかも、同じ仕様のカメラであっても、カメラ間で、カメラパラメーターがばらついている(揃っていない)ことがある。
ARオブジェクトにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、カメラ61は、当該実物体の位置および姿勢を検出する検出機として機能する。このとき、演算部167は、カメラパラメーターを用いて、カメラ61に撮像された実物体のカメラ61に対する位置および姿勢を推定する。さらに、演算部167は、当該位置および姿勢を、カメラ61と左光学像表示部28(右光学像表示部26)との間の相対位置関係を用いて、左光学像表示部28に対する実物体の位置および姿勢に変換する。さらに、演算部167は、当該変換された位置および姿勢に基づいて、ARオブジェクトの位置および姿勢を決定する。そして、画像処理部160は、当該位置および姿勢を有するARオブジェクトを、写像パラメーターを用いて表示座標系に写像(変換)し、表示バッファ(例えばRAM122)に書き込む。そして、画像制御部は、表示バッファに書き込まれたARオブジェクトを左画像表示部28に表示する。このため、カメラパラメーターがデフォルトカメラパラメーターである場合には、推定される実物体の位置および姿勢に誤差が含まれることとなる。そうすると、推定された位置および姿勢の誤差に由来して、表示されたARオブジェクトと実物体との重畳に誤差があるように使用者に視認される。
そこで、本実施形態では、ARオブジェクトが対象物に重畳して使用者に視認されるようにするためのキャリブレーションの際に、カメラパラメーターが、最適化により導出される。そして、導出されたカメラパラメーターが用いられて、対象物の位置および姿勢が検出(推定)されるようにする。そうすれば、ARオブジェクトの表示において、表示されるARオブジェクトと実物体との間に発生するずれが使用者に視認される度合いが低くなる。後述するように、同じHMD100の使用者が同一人であっても、カメラパラメーターの導出は、キャリブレーションが行なわれるごとに行なわれ、当該キャリブレーションに引き続いて行なわれる対象物とARオブジェクトとの間での位置、大きさ、向きの少なくとも一つが一致した表示のために使用されることが好ましい。これは、キャリブレーションの際に、必ずしも使用者は、実物マーカーRLと、実物マーカーRLに対応したマーカー画像IMGとを、同じ精度で位置合わせするとは限らないことによる。たとえ使用者が違う精度で位置合わせしても、それに応じたカメラパラメーターが導出されることから、ARオブジェクトの重畳表示がされる場合に重畳表示のずれの増大が抑制される。
カメラ61に固定された座標系と左光学像表示部28に固定された座標系との間の相対位置関係(回転および並進の少なくとも一つ)は、HMD100の設計仕様から知ることができる(以下ではこれをデフォルト相対位置関係とも表記する)。デフォルト相対位置関係によれば、両座標系の間に回転のずれはない。ただし、実際には、カメラ61を画像表示部20への取付時の作業上の理由から、両座標系の間に回転のずれが生じていることがある。また、同じ仕様のHMD100でもHMD100の間で、両座標系の間の回転のずれにばらつきがある。上記回転のずれは、カメラ61と左光学像表示部28との間でも同様に発生するおそれがある。
デフォルトカメラパラメーターについての説明から理解されるように、ARオブジェクトにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、デフォルト相対位置関係に基づいてARオブジェクトを表示すると、表示されたARオブジェクトと実物体との重畳に誤差が視認される。
そこで、本実施形態では、ARオブジェクトが対象物に重畳して使用者に視認されるようにするためのキャリブレーションの際に、カメラ61の座標系と、右光学像表示部26の座標系および左光学像表示部28の座標系と、の間の回転を表すパラメーターを、最適化により導出する。そして、導出された当該パラメーターを用いてARオブジェクトの表示をすると、ユーザーにずれが視認される度合いが低くなる。
図5に示すように、使用者が、左光学像表示部28に表示されたマーカー画像IMGと、外景に含まれ前方に位置する実物マーカーRLと、が位置、大きさ、向きが一致するように使用者が視認するとき(以下、使用者が左眼でアライメントを成立させるときともいう)、座標系の間には、次の式(1)の関係が成り立つ。なお、以降では、左光学像表示部28にマーカー画像IMGが表示された場合について説明する。
ここで、左辺および右辺のCPは、カメラ61のカメラパラメーターである。[Ro2dl, to2dl]は、実オブジェクト(この場合、実物マーカーRL)に固定された座標系から左光学像表示部28に固定された座標系への変換行列であり、このうち、[Ro2dl]が回転を表す3×3の行列であり、[to2dl]が並進を表す3×1の行列である。ModelMatrixは、モデルマーカー上の任意の1点を表す3×1の行列である。モデルマーカーは、マーカー画像が光学像表示部28に表示される場合の基礎となる3次元データ(3次元モデル:ただし本実施形態では平面)である。[Ro2dl, to2dl]×ModelMatrixの表記は、下記の式(2)の規則に従っている。
上記式(2)の表記規則は、式(1)の他の部分にも適用される。
式(1)の右辺における[Rcam2left, tcam2left]は、カメラ61の座標系から左光学像表示部28の座標系への変換行列である。式(1)の右辺における[Robj2cam, tobj2cam]は、実オブジェクト(実物マーカーRL)の座標系からカメラ61の座標系への変換行列である。
左眼LEのアライメントが成立すると仮定したとき、実物マーカーRLのカメラ61に対する姿勢をモデルマーカーに適用すると、カメラ61の座標系に変換されたモデルマーカー上の任意の点は次の式(5)のPcl(Xcl, Ycl, Zcl)のようになる。
式(6)の右辺において、Ro2dlおよびto2dlは、実物マーカーRLの座標系から左光学像表示部28の座標系への回転および並進であり、本実施形態では、ユーザーが左光学像表示部28に表示されたマーカー画像IMGを実物マーカーRLに位置合わせしたときに、所定の回転および並進となるように、左光学像表示部28上の所定位置(例えば中央)に所定の配向かつ所定の大きさで、固定されて表示される。Tcam2leftは、カメラの座標系から左光学像表示部28の座標系への並進であり、HMD100の仕様から既知の値が使用できる。本実施形態では、
上記式(7)、(8)および(9)におけるa(=L1), D1, D2, D3は定数である。
式(5)で表されるモデルマーカーをカメラ61の撮像画像上に写像するとき、撮像画像上のモデルマーカーの座標は、次のようになる。
ここで、(Fx, Fy)はカメラ61の焦点距離であり、(Cx, Cy)はカメラ61の主点位置座標である。
カメラ61が実際に実物マーカーRLを撮像した場合の撮像画像におけるマーカーの特徴要素の座標を(ul, vl)と表記すると、(ul, vl)と(ximl, yiml)との差は以下のようになる。
式(12)における添え字iは、マーカーにおける特徴要素を示す整数であり、1から9までの値を取る。左眼LEのアライメントについて、二乗和を導出する。
本実施形態では、カメラ61の座標系から左光学像表示部28の座標系への回転(Rcam2left)と、カメラ61の座標系から右光学像表示部26の座標系への回転(Rcam2right)と、カメラ61のカメラパラメーターと、を最適化のための変数とする。最適化にあたり、初期値として、設計値を使用してよい。なお、後述するように、Rcam2leftとRcam2rightとを設計値などに固定し、カメラパラメーターだけを最適化してもよい。
本実施形態では、Rcam2leftおよびRcam2rightを構成する6つの回転を四元数qで表し、最適化されるパラメーター(変数)pを以下のように表記する。
つまり、本実施形態では、式(16)の12個のパラメーターpを最適化により導出する。
ここで、
ここで、
以下、式(15)を最小化する処理に用いられるヤコビ行列の導出を説明する。以下では、左眼LEのアライメントが成立する場合についてのみ説明するが、右眼REのアライメントが成立する場合についても、左眼LEの場合と同様に導くことができる。
左眼LEのアライメントが成立するときについて、ヤコビ行列JLは、以下の通りになる。
式(21)のヤコビ行列は、式(6)、(10)および(11)と、以下の式(22)から式(35)までの式によって、求めることができる。
上記式(24)〜(27)において、添え字iは、i=1〜4の整数である。
以上説明したように、本実施形態にHMD100では、マーカー特定部166は、右光学像表示部26または左光学像表示部28に表示されたマーカー画像IMGに実物マーカーRLが重なるように位置合わせされた後、カメラ61が外景SCを撮像する。そして、演算部167は、撮像画像上の実物マーカーRLと、撮像画像上に写像されたモデルマーカーとの間におけるマーカーMK1の9組の円の中心の座標値を用いて、少なくともカメラ61に関連するカメラパラメーターCPを含むパラメーターpを、コスト関数Eが最小となるように最適化により導出する。本実施形態のHMD100では、CPU140が、導出されたパラメーターpを用いて、カメラ61を介して対象物の位置および姿勢を検出し(検出工程)、検出された位置および姿勢に基づいて、ARオブジェクトの位置、大きさ、および向きの少なくとも一つが対象物に一致して使用者が視認するように、右光学像表示部26および左光学像表示部28のARオブジェクトの画像表示を行なう(重畳表示工程)。この結果、製造過程で発生するおそれがある撮像部の焦点距離や撮像センサーの位置のずれを低減して、外景SCに表示画像を重畳させることができる。または、使用者が視認するARオブジェクトと対象物との重畳表示の精度が高くなる。上記実施形態によれば、左右の画像表示部のそれぞれについて、ユーザーは1回の位置合わせを行えば、重畳表示の十分な精度が得られる。そして、実物マーカーRLとマーカー画像IMGとの位置合わせがより少ない回数(例えば1回)で済むので、ユーザーが複数回位置合わせをすることに伴う位置合わせの誤差の累積が、キャリブレーションに影響を与えることを防止することができる。
また、本実施形態のHMD100では、演算部167は、マーカーMK1における9個の円の中心点の座標値を用いて、パラメーターPを最適化するため、コスト関数Eをより小さくする最適化を実行でき、より精度の高いキャリブレーションを実行できる。
A−3.第1実施形態の変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
A−3−1.変形例1:
上記実施形態では、演算部167は、12個のパラメーターpを未知のパラメーターとして最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、これらの内のいくつかのパラメーターについては設計値を設定し、残りパラメーターを未知のパラメーターとして導出してもよい。例えば、導出するパラメーターpをカメラ61のカメラパラメーターCPだけにしてもよい。
この変形例のHMD100では、最適化するパラメーターpの数が少なくなる。また、製造上、ばらつきの少ないパラメーターに対して、設計値を代入することで、コスト関数Eをより小さくするパラメーターの最適化を行ないつつ、パラメーターを最適化するための時間を短くできる。また、左右の眼のそれぞれについて、より少ない回数(例えば1回ずつ)の実物マーカーRLの撮像によって、キャリブレーションを実行できる。
上記実施形態では、演算部167は、12個のパラメーターpを未知のパラメーターとして最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、これらの内のいくつかのパラメーターについては設計値を設定し、残りパラメーターを未知のパラメーターとして導出してもよい。例えば、導出するパラメーターpをカメラ61のカメラパラメーターCPだけにしてもよい。
A−3−2.変形例2:
上記実施形態では、右光学像表示部26にマーカー画像IMGが表示された場合と左光学像表示部28にマーカー画像IMGが表示された場合との計2回の外景SCの撮像が行なわれたが、キャリブレーションを実行するために行なわれる撮像の回数については、種々変形可能である。例えば、右光学像表示部26のみにマーカー画像IMGが表示された状態の1回の外景SCの撮像のみで、演算部167は、パラメーターの最適化を実行してもよい。一方、2回よりも多い回数の実物マーカーRLを含む外景SCの撮像が行なわれて、演算部167は、コスト関数Eをより小さくするパラメーターの最適化を実行してもよい。また、上記実施形態とは異なり、単眼のHMDの場合には、一方の眼に対応する画像表示部または両方の眼に対応する1つの画像表示部(つまり単眼のHMD)にマーカー画像IMGが表示されて、キャリブレーションが実行されてもよい。
上記実施形態では、右光学像表示部26にマーカー画像IMGが表示された場合と左光学像表示部28にマーカー画像IMGが表示された場合との計2回の外景SCの撮像が行なわれたが、キャリブレーションを実行するために行なわれる撮像の回数については、種々変形可能である。例えば、右光学像表示部26のみにマーカー画像IMGが表示された状態の1回の外景SCの撮像のみで、演算部167は、パラメーターの最適化を実行してもよい。一方、2回よりも多い回数の実物マーカーRLを含む外景SCの撮像が行なわれて、演算部167は、コスト関数Eをより小さくするパラメーターの最適化を実行してもよい。また、上記実施形態とは異なり、単眼のHMDの場合には、一方の眼に対応する画像表示部または両方の眼に対応する1つの画像表示部(つまり単眼のHMD)にマーカー画像IMGが表示されて、キャリブレーションが実行されてもよい。
上記実施形態では、右光学像表示部26に表示されるマーカーと左光学像表示部28に表示されるマーカーとは、同じマーカー画像IMGであったが、マーカー画像IMGおよび実物マーカーRLについては、種々変形可能である。例えば、右光学像表示部26と左光学像表示部28とのそれぞれに表示されるマーカーの画像は、異なるマーカーの画像であってもよい。また、マーカー画像IMGおよび実物マーカーRLは、マーカーMK1の画像に限られず、導出されるパラメーターの精度に応じて、種々変形可能である。例えば、マーカーMK1に含まれる円の数は、9個に限られず、9個よりも多くてよいし、9個よりも少なくてもよい。また、マーカーMK1に含まれる複数の特徴点は、円の中心でなくてもよく、単に三角形の重心であってもよい。また、マーカーMK1の内部に並行でない複数の直線が形成されて、直線の交点が複数の特徴点として特定されてもよい。また、マーカー画像IMGと実物マーカーRLとは、異なるマーカーであってもよい。マーカー画像と実物マーカーとを重ねる場合に、どの部分を重ね合わせるのかが使用者に認識される範囲で、マーカー画像と実物マーカーとについては、種々変形可能である。例えば、矩形状のマーカー画像に対して、正円の実物マーカーの中心をマーカー画像の中心に合わせるような位置合わせであってもよい。
B.第2実施形態:
B−1.画像表示装置の構成:
図7ないし図9は、キャリブレーションを行なう頭部装着型表示装置100B(HMD100B)の外観構成を示す説明図である。HMD100Bは、画像表示部20Bが表示する表示画像を使用者に視認させ、画像表示部20B(図7)を透過する外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100Bは、画像表示部20Bを装着した使用者の右眼と左眼とのそれぞれに対応する画像表示部を有しており、使用者の右眼と左眼とに別々の画像を視認させることができる。
B−1.画像表示装置の構成:
図7ないし図9は、キャリブレーションを行なう頭部装着型表示装置100B(HMD100B)の外観構成を示す説明図である。HMD100Bは、画像表示部20Bが表示する表示画像を使用者に視認させ、画像表示部20B(図7)を透過する外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100Bは、画像表示部20Bを装着した使用者の右眼と左眼とのそれぞれに対応する画像表示部を有しており、使用者の右眼と左眼とに別々の画像を視認させることができる。
図8に示すように、HMD100Bは、使用者USの頭部装着型表示装置に装着される装着帯90Bと、装着帯90Bに接続されている画像表示部20Bと、画像表示部20を制御する制御部10B(コントローラー10B)と、制御部10Bと装着帯90Bとを接続する接続部40Bと、を備えている。図7に示すように、装着帯90Bは、樹脂製の装着基部91Bと、装着基部91Bに連結される布製のベルト部92Bと、カメラ60Bと、を備える。装着基部91Bは、人の前頭部の形に合った湾曲した形状を有する。ベルト部92Bは、使用者の頭部の周りに装着されるためのベルトである。なお、図8では、接続部40Bは、装着帯90Bと制御部10B側とを有線で接続しているが、接続している部分については、図示を省略している。
カメラ60Bは、外景を撮像可能で、装着基部91Bの中心部分に配置されている。換言すると、カメラ60Bは、装着帯90Bが使用者の頭部に装着された状態で、使用者の額の中央に対応する位置に配置されている。そのため、カメラ60Bは、使用者が装着帯90Bを頭部に装着した状態において、使用者の視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。図8に示すように、カメラ60Bは、装着基部91Bに対して、円弧RCに沿って所定の範囲で可動する。換言すると、カメラ60Bは、撮像範囲を所定の範囲で変更できる。
図8に示すように、画像表示部20Bは、連結部93Bを介して装着基部91Bに接続され、眼鏡形状を有している。連結部93Bは、装着基部91Bおよび画像表示部20Bの両側に対象的に配置され、連結部93Bを中心として、装着基部91Bに対する画像表示部20Bの位置を円弧RAに沿って回動可能に支持する。図8において二点鎖線で示す位置P11Bは、画像表示部20Bが円弧RAに沿った最も下端である。また、図8において実線で示す位置P12Bは、画像表示部20Bが円弧RAに沿った最も上端である。
また、図9に示すように、マーカー画像IMGを表示する表示パネルを有する光学像表示部26B,28Bは、保持部21B,23Bに対して、直線TAに沿って所定の範囲で平行移動して位置を変更する。図9において二点鎖線で示す位置P13Bは、光学像表示部26B,28Bが直線TAに沿った最も下端である。図9において実線で示す位置P11Bは、光学像表示部26B,28Bが直線TAに沿った最も上端である。なお、図8における位置P11Bと、図9における位置P11Bとは、同じ位置を示している。
図7に示すように、画像表示部20Bは、右保持部21Bと、右表示駆動部22Bと、左保持部23Bと、左表示駆動部24Bと、右光学像表示部26Bと、左光学像表示部28Bと、を含んでいる。右光学像表示部26Bおよび左光学像表示部28Bは、それぞれ、使用者が画像表示部20Bを装着した際に使用者の右および左の眼前に位置するように配置されている。右光学像表示部26Bの一端と左光学像表示部28Bの一端とは、使用者が画像表示部20Bを装着した際の使用者の眉間に対応する位置で、互いに接続されている。
右保持部21Bは、右光学像表示部26Bの他端から装着基部91Bと接続されている連結部93Bに延伸して設けられた部材である。同様に、左保持部23Bは、左光学像表示部28の他端から連結部93Bに延伸して設けられた部材である。右表示駆動部22と左表示駆動部24Bとは、使用者が画像表示部20Bを装着した際の使用者の頭部に対向する側に配置されている。
表示駆動部22B,24Bは、図8で後述する液晶ディスプレイ241B,242B(Liquid Crystal Display、以下「LCD241B,242B」とも呼ぶ)や投写光学系251B,252B等を含む。表示駆動部22B,24Bの構成の詳細な説明は後述する。光学像表示部26B,28Bは、後述する導光板261B,262B(図10参照)と調光板とを含んでいる。導光板261B,262Bは、光透過性の樹脂材料等によって形成され、表示駆動部22B,24Bから出力された画像光を使用者の眼に導く。調光板は、薄板状の光学素子であり、使用者の眼の側とは反対の側である画像表示部20Bの表側を覆うように配置されている。調光板の光透過率を調整することによって、使用者の眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
制御部10Bは、HMD100Bを制御するための装置である。制御部10Bは、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部135Bを有する。
図10は、HMD100Bの構成を機能的に示すブロック図である。図10に示すように、制御部10Bは、ROM121Bと、RAM122Bと、電源130Bと、操作部135Bと、マーカー画像記憶部138Bと、CPU140Bと、インターフェイス180Bと、送信部51B(Tx51B)および送信部52B(Tx52B)と、を有している。
電源130Bは、HMD100Bの各部に電力を供給する。ROM121Bには、種々のコンピュータープログラムが格納されている。後述するCPU140Bは、ROM121Bに格納された各種コンピュータープログラムを、RAM122Bに展開することで、各種コンピュータープログラムを実行する。
マーカー画像記憶部138Bは、モデルマーカーのデータおよび/または右光学像表示部26Bまたは左光学像表示部28Bに表示されるキャリブレーション用画像としてのマーカーMK1のマーカー画像IMGを記憶している。マーカー画像記憶部138Bは、右光学像表示部26に表示されるマーカー画像と左光学像表示部28Bに表示されるマーカー画像とを同じマーカーの画像IMGとして記憶している。マーカー画像IMGは、3次元モデル空間(3Dコンピューターグラフィックス空間)で表現された上記モデルマーカー(2D)を、右光学像表示部26Bまたは左光学像表示部28Bのそれぞれの写像パラメーターに基づいて写像したものである。
図11は、画像表示部20Bに表示されるマーカー画像IMGの一例を示す説明図である。図11に示すように、マーカー画像IMGは、4つの頂点P0,P1,P2,P3を直線で結んだ正方形の中に、9個の正円を含んでいる。9個の円の内の5個の円は、頂点P0と頂点P2とを結んだ対角線CL1上に円の中心が存在する。当該5個の円は、対角線CL1に沿って、頂点P0に近い円から、円C1,C2,C3,C4,C5である。同じように、9個の円の内の5個の円は、頂点P1と頂点P3とを結んだ対角線CL2上に円の中心が存在する。当該5個の円は、対角線CL2に沿って、頂点P1に近い円から、円C6,C7,C3,C8,C9である。円C3は、対角線CL1と対角線CL2との交点であると共に、正方形の重心である点を中心とする円である。本実施形態では、対角線CL1上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。同じように、対角線CL2上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。また、対角線CL1に中心を有する隣接する円の中心間の距離と、対角線CL2に中心を有する隣接する円の中心間の距離とは、同じ距離である。9個の円の大きさは、同じ大きさである。なお、対角線CL1および対角線CL2は、便宜上、図11に示しているのであり、マーカー画像IMGには含まれない直線である。
図11では、色の違いを、ハッチングを変えることで表している。そのため、図11に示すように、マーカー画像IMGには、円C3の内部の黄色と、円C5の内部の緑色と、円C3,C5と異なる7個の円C1,C2,C4,C6,C7,C8,C9の内部の白色と、正方形の中に含まれ、9個の円を含まない部分の黒色と、の4色が存在する。また、図11では、円C3の中心C3Pを原点とするX軸とY軸とが示されている。後述するキャリブレーション実行処理では、中心C3Pを原点として、各種の座標値が特定される。マーカー画像IMGに含まれる9個の円の内、円C3と円C5との色がその他の7個の円と異なるのは、中心円としての円C3と、撮像された実物のマーカーMK1の方向を特定するための円C5と、を区別するためである。
図10に示すCPU140Bは、ROM121Bに格納されているコンピュータープログラムを、RAM122Bに展開することにより、オペレーティングシステム150B(OS150B)、表示制御部190B、音声処理部170B、画像処理部160B、表示設定部165B、マーカー特定部166Bおよび演算部167Bとして機能する。
表示制御部190Bは、右表示駆動部22Bおよび左表示駆動部24Bを制御する制御信号を生成する。表示制御部190Bは、右表示駆動部22Bおよび左表示駆動部24Bのそれぞれによる画像光の生成および射出を制御する。表示制御部190Bは、右LCD制御部211Bと左LCD制御部212Bとに対する制御信号のそれぞれを、送信部51Bおよび52Bを介して送信する。また、表示制御部190Bは、右バックライト制御部201Bと左バックライト制御部202Bとに対する制御信号のそれぞれを送信する。
画像処理部160Bは、コンテンツに含まれる画像信号を取得し、送信部51B,52Bを介して、取得した画像信号を画像表示部20の受信部53B,54Bへと送信する。音声処理部170Bは、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材46Bに接続された右イヤホン32B内のスピーカー(図示しない)および左イヤホン34B内のスピーカー(図示しない)に対して供給する。
表示設定部165Bは、マーカー画像記憶部138に記憶されたマーカーMK1の画像を右光学像表示部26Bまたは左光学像表示部28Bに表示させる。表示設定部165Bは、キャリブレーション実行時に、操作部135Bが受け付けた操作に基づいて、マーカー画像IMGを右光学像表示部26Bに表示する場合と、マーカー画像IMGを左光学像表示部28Bに表示する場合とを制御する。
マーカー特定部166Bは、カメラ60Bによって撮像された撮像画像の中から、例えば、制御部10Bの裏面(操作部135Bの反対側の面)や所定の壁などに配置されたマーカーMK1の実物マーカーRLを特定する。実物マーカーRLを特定するための具体的な処理については、後述するが、マーカー特定部166Bは、実物マーカーRLの4つの頂点、9個の円の中心の座標値、9個の円の色などを抽出することで、撮像画像の中から実物マーカーRLを特定する。マーカー特定部166Bは、例えば、撮像画像の色の階調値を2値化することで、マーカーMK1における色の異なる9個の円などを抽出する。
演算部167Bは、本実施形態ではホモグラフィーを用いて、カメラ60Bと実物マーカーRLとの間の空間的関係(回転および並進の少なくとも一つ)を表す第1パラメーターPM1を算出する。また、演算部167Bは、カメラ60Bと光学像表示部26B,28Bとの間の空間的関係を表す空間パラメーターPMを算出する。なお、カメラ60Bを基準とするカメラ座標系とは、カメラ60Bに原点が固定された3次元座標系である。そのため、カメラ座標系は、カメラ60Bの向きの変化に応じて変化する。実物マーカー座標系、オブジェクト座標系、および表示座標系についても、カメラ座標系と同じ概念によって定義されている。
また、演算部167Bは、カメラ60Bに関するパラメーター(カメラパラメーターとも呼ぶ)を最適化する。カメラ60Bに関するパラメーターの最適化は、予め既知ではない(未知である)カメラ60Bの焦点距離に関連するパラメーターおよび主点位置(例えば撮像画像の中心座標)などを含むパラメーターを、得られた座標値を用いて、最適化できるように計算する。最適化により導出されたカメラパラメーターを用いて対象物が撮像されて撮像画像が取得されると、撮像画像における対象物の位置と、ユーザーから見たときの対象物に重なる画像表示部上の表示位置とが対応付けられることとなる。この結果、使用者は、画像表示部20Bを介してAR(Augmented Reality)画像が、当該対象物に対して位置、大きさ、姿勢の少なくとも一つが一致するように視認することができる。なお、カメラ60Bのパラメーターの最適化の詳細については、後述する。また、本実施形態では、空間パラメーターPMも、カメラ60BのカメラパラメーターCPと同様の最適化が行なわれることで、算出される。
インターフェイス180Bは、制御部10Bに対して、コンテンツの供給元となる種々の外部機器OAを接続するためのインターフェイスである。外部機器OAとしては、例えば、ARシナリオを記憶している記憶装置、パーソナルコンピューター(PC)や携帯電話端末、ゲーム端末等、がある。インターフェイス180Bとしては、例えば、USBインターフェイス、マイクロUSBインターフェイス、メモリーカード用インターフェイス等、を用いることができる。
図10に示すように、画像表示部20Bは、右表示駆動部22Bと、左表示駆動部24Bと、右光学像表示部26Bとしての右導光板261Bと、左光学像表示部28Bとしての左導光板262Bと、を備えている。
右表示駆動部22Bは、受信部53B(Rx53B)と、光源として機能する右バックライト制御部201B(右BL制御部201B)および右バックライト221B(右BL221B)と、表示素子として機能する右LCD制御部211Bおよび右LCD241Bと、右投写光学系251Bと、を含んでいる。右バックライト制御部201Bと右バックライト221Bとは、光源として機能する。右LCD制御部211Bと右LCD241Bとは、表示素子として機能する。
受信部53Bは、制御部10Bと画像表示部20Bとの間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部201Bは、入力された制御信号に基づいて、右バックライト221Bを駆動する。右バックライト221Bは、例えば、LEDやエレクトロルミネセンス(EL)等の発光体である。右LCD制御部211Bは、画像処理部160Bおよび表示制御部190Bから送信された制御信号に基づいて、右LCD241Bを駆動する。右LCD241Bは、複数の画素をマトリクス状に配置した透過型液晶パネルである。
右投写光学系251Bは、右LCD241Bから射出された画像光を並行状態の光束にするコリメートレンズによって構成される。右光学像表示部26Bとしての右導光板261Bは、右投写光学系251Bから出力された画像光を、所定の光路に沿って反射させつつ使用者の右眼REに導く。なお、左表示駆動部24Bは、右表示駆動部22Bと同様の構成を有し、使用者の左眼LEに対応するため、説明を省略する。
B−2.キャリブレーション実行処理:
図12は、第2実施形態におけるキャリブレーション実行処理のフローチャートである。キャリブレーション実行処理は、以下のような処理である:まず、使用者が、右光学像表示部26Bまたは左光学像表示部28Bに表示されたマーカー画像IMGと、外景から特定された実物マーカーRLと、が重複するように視認する状態で、CPU140Bが、カメラ60Bを用いて実物マーカーRLを撮像する。そして、CPU140Bは、実物マーカーRLを撮像して得られた撮像画像に少なくとも基づいて、空間パラメーターPMの算出、およびカメラ60のBパラメーターを導出する。このように、この処理は、カメラ60Bと光学像表示部との間の相対位置関係を検出する処理としての側面も有する。
図12は、第2実施形態におけるキャリブレーション実行処理のフローチャートである。キャリブレーション実行処理は、以下のような処理である:まず、使用者が、右光学像表示部26Bまたは左光学像表示部28Bに表示されたマーカー画像IMGと、外景から特定された実物マーカーRLと、が重複するように視認する状態で、CPU140Bが、カメラ60Bを用いて実物マーカーRLを撮像する。そして、CPU140Bは、実物マーカーRLを撮像して得られた撮像画像に少なくとも基づいて、空間パラメーターPMの算出、およびカメラ60のBパラメーターを導出する。このように、この処理は、カメラ60Bと光学像表示部との間の相対位置関係を検出する処理としての側面も有する。
キャリブレーション実行処理では、初めに、表示設定部165Bは、マーカー画像IMGを、使用者の右眼に対応する右画像表示部としての右光学像表示部26Bのみに表示させる(ステップSB11)。この場合、使用者が、実物マーカーRLとマーカー画像IMGとが互いに一致して視認するように、使用者が実物マーカーRLに対してその頭部の距離と姿勢を調整する場合に、実物マーカーRLと光学像表示部26Bとの間の空間的関係が既知の所定の空間的関係(回転および並進)となるように、右光学像表示部26Bは、画像表示領域における所定位置に所定の大きさでマーカー画像IMGを表示する。
図13は、右光学像表示部26Bのみにマーカー画像IMGが表示された状態の概略図である。図13には、使用者が、予め画像表示部20Bを装着した使用者の仮想の右眼の位置として設定された右眼位置RPから、右光学像表示部26Bに表示されたマーカー画像IMGを視認した場合の概略が示されている。なお、図13には、HMD100Bの内の画像表示部20Bのみを図示し、装着帯90Bや制御部10Bなどについては図示を省略している。そのため、図13に示す画像表示部20Bは、図7ないし図10に示す画像表示部20Bと同じ画像表示部である。また、図13には、撮像される三次元空間の座標軸を表す座標軸CD2と、撮像された二次元画像の座標軸を表す座標軸CD1と、が示されている。使用者は、右光学像表示部26Bに表示されたマーカー画像IMGを、画像表示部20Bから距離L1離れた位置に存在するマーカーMK1として視認する。
図12のステップSB11の処理が行なわれると、マーカー特定部166Bは、使用者に対して、右光学像表示部26Bに表示されたマーカー画像IMGと、外景に存在する実物マーカーRLとが重なるように位置合わせを促す(ステップSB13)。
図14は、実物マーカーRLとマーカー画像IMGとの位置関係を表す概略図である。図14には、外景SCに含まれる実物マーカーRLと、右光学像表示部26Bに表示されたマーカー画像IMGおよび文字画像TX1と、が示されている。文字画像TX1は、使用者にマーカー画像IMGと実物マーカーRLとの位置合わせを行なった後に、撮像を促すことを文字で表す画像である。具体的には、文字画像TX1は、「重複させてから撮像ボタンを押してください」を表す文字の画像である。図14に示すように、マーカー画像IMGの中心と実物マーカーRLの中心とは、一致していない。また、図14に示す例では、実物マーカーRLは、マーカー画像IMGに対して、角度θ1傾いている。この場合に、画像表示部20Bを装着した使用者は、自身の位置や向きを変えることで、実物マーカーRLにマーカー画像IMGを重ねることができる。
マーカー特定部166Bは、図12のステップSB13の処理を行なうと、マーカー画像IMGと実物マーカーRLと位置合わせが完了しているか否かを判定する(ステップSB15)。マーカー特定部166Bは、図14の文字画像TX1に示すように、使用者によって撮像ボタンが押下される操作の有無によって、位置合わせの完了の判定を行なう。撮像ボタンとしては、予め設定された操作部135Bのいずれかのボタンでよく、種々変形可能である。
撮像ボタンの押下の操作がなく、マーカー特定部166Bは、位置合わせが完了していないと判定した場合には(ステップSB15:NO)、引き続き、位置合わせが完了したことを表す撮像ボタンの押下の操作を待機する。撮像ボタンの押下の操作があると、マーカー特定部166Bは、位置合わせが完了していると判定し(ステップSB15:YES)、カメラ60Bによって外景SCを撮像する(ステップSB17)。
次に、表示設定部165Bは、右光学像表示部26Bのみに表示させたマーカー画像IMGを非表示にして、左光学像表示部28Bのみにマーカー画像IMGを表示させる(ステップSB21)。左光学像表示部28Bがマーカー画像IMGを表示する方法は、ステップSB11において右光学像表示部26Bがマーカー画像IMGを表示する方法と同じである。その後、ステップSB13からステップSB17までの使用者の右眼REに対応する処理と同じように、マーカー特定部166Bは、使用者の左眼LEに対して、マーカー画像IMGと実物マーカーRLとが重なるように位置合わせを促す(ステップSB23)。
マーカー特定部166Bは、左眼について、使用者に位置合わせを促すと、マーカー画像IMGと実物マーカーRLとの位置合わせが完了しているか否かを判定する(ステップSB25)。マーカー特定部166Bは、使用者による撮像ボタンの押下の操作がなく、位置合わせが完了していないと判定する場合には(ステップSB25:NO)、引き続き、位置合わせが完了したことを示す撮像ボタンの押下の操作を待機する。撮像ボタンの押下の操作があると、マーカー特定部166Bは、位置合わせが完了していると判定し(ステップSB25:YES)、カメラ60Bによって、外景SCを撮像する(ステップSB27)。
次に、演算部167Bは、右眼位置RPと左眼位置LPとのそれぞれを基準とした撮像画像を基に、空間パラメーターPMの算出と、カメラ60BのカメラパラメーターCPの最適化を実行して(ステップSB31)、CPU140Bは、キャリブレーション実行処理を終了する。
B−3.空間パラメーター、およびカメラパラメーター:
B−3−1.カメラパラメーター:
カメラ60Bに関するパラメーター(以降、カメラパラメーターとも呼ぶ)として、4個のパラメーターCP(fx、fy、Cx、Cy)が存在する。(fx、fy)は撮像部の焦点距離であり、画素密度に基づいて画素数に換算されている。
B−3−1.カメラパラメーター:
カメラ60Bに関するパラメーター(以降、カメラパラメーターとも呼ぶ)として、4個のパラメーターCP(fx、fy、Cx、Cy)が存在する。(fx、fy)は撮像部の焦点距離であり、画素密度に基づいて画素数に換算されている。
カメラパラメーターは、撮像部の主要部分を構成するカメラ60Bの製品仕様から知ることができる(以下ではこれをデフォルトカメラパラメーターとも表記する)。ただし、実際のカメラのカメラパラメーターがデフォルトカメラパラメーターから大きくずれていることが多い。しかも、同じ仕様のカメラであっても、カメラ間で、カメラパラメーターがばらついている(揃っていない)ことがある。
ARオブジェクトにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、カメラ60Bは、当該実物体の位置および姿勢を検出する検出機として機能する。このとき、演算部167Bは、カメラパラメーターを用いて、カメラ60Bに撮像された実物体のカメラ60Bに対する位置および姿勢を推定する。さらに、演算部167Bは、当該位置および姿勢を、カメラ60Bと左光学像表示部28B(右光学像表示部26B)との間の相対位置関係を用いて、左光学像表示部28Bに対する実物体の位置および姿勢に変換する。さらに、演算部167Bは、当該変換された位置および姿勢に基づいて、ARオブジェクトの位置および姿勢を決定する。そして、画像処理部160Bは、当該位置および姿勢を有するARオブジェクトを、写像パラメーターを用いて表示座標系に写像(変換)し、表示バッファ(例えばRAM122B)に書き込む。そして、画像制御部は、表示バッファに書き込まれたARオブジェクトを左光学像表示部28Bに表示する。このため、カメラパラメーターがデフォルトカメラパラメーターである場合には、推定される実物体の位置および姿勢に誤差が含まれることとなる。そうすると、推定された位置および姿勢の誤差に由来して、表示されたARオブジェクトと実物体との重畳に誤差があるように使用者に視認される。
そこで、本実施形態では、ARオブジェクトが対象物に重畳して使用者に視認されるようにするためのキャリブレーションの際に、カメラパラメーターが、最適化により導出される。そして、導出されたカメラパラメーターが用いられて、対象物の位置および姿勢が検出(推定)されるようにする。そうすれば、ARオブジェクトの表示において、表示されるARオブジェクトと実物体との間に発生するずれが使用者に視認される度合いが低くなる。後述するように、同じHMD100Bの使用者が同一人であっても、カメラパラメーターの導出は、キャリブレーションが行なわれるごとに行なわれ、当該キャリブレーションに引き続いて行なわれる対象物とARオブジェクトとの間での位置、大きさ、向きの少なくとも一つが一致した表示のために使用されることが好ましい。これは、キャリブレーションの際に、必ずしも使用者は、実物マーカーRLと、実物マーカーRLに対応したマーカー画像IMGとを、同じ精度で位置合わせするとは限らないことによる。たとえ使用者が違う精度で位置合わせしても、それに応じたカメラパラメーターが導出されることから、ARオブジェクトの重畳表示がされる場合に重畳表示のずれの増大が抑制される。
また、本実施形態のHMD100Bは、カメラ60Bと光学像表示部26B,28Bとの間の相対位置関係が変化する構造を有する。デフォルトカメラパラメーターについての説明からも理解されるように、ARオブジェクトにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、実際のカメラ60Bと光学像表示部26B,28Bとの間の相対位置関係とは異なる相対位置関係に基づいてARオブジェクトを表示すると、表示されたARオブジェクトと実物体との重畳に誤差が視認される。
そこで、本実施形態では、ARオブジェクトが対象物に重畳して使用者に視認されるようにするためのキャリブレーションの際に、カメラ60Bの座標系と、右光学像表示部26Bの座標系および左光学像表示部28Bの座標系と、の間の相対位置関係(回転および並進の少なくとも一つ)を表す空間パラメーターPMを、導出する。そして、導出された当該空間パラメーターPMが表す空間的関係(相対位置関係)を用いてARオブジェクトの表示をすると、ユーザーにずれが視認される度合いが低くなる。
図13に示すように、使用者が、左光学像表示部28Bに表示されたマーカー画像IMGと、外景に含まれ前方に位置する実物マーカーRLと、が位置、大きさ、向きが一致するように使用者が視認するとき(以下、使用者が左眼でアライメントを成立させるときともいう)、座標系の間には、次の式(37)の関係が成り立つ。なお、以降では、左光学像表示部28Bにマーカー画像IMGが表示された場合について説明する。
ここで、左辺および右辺のCPは、カメラ60Bのカメラパラメーターである。[Ro2dl, to2dl]は、実オブジェクト(この場合、実物マーカーRL)に固定された座標系から左光学像表示部28Bに固定された座標系への変換行列であり、このうち、[Ro2dl]が回転を表す3×3の行列であり、[to2dl]が並進を表す3×1の行列である。ModelMatrixは、モデルマーカー上の任意の1点を表す3×1の行列である。モデルマーカーは、マーカー画像が光学像表示部28に表示される場合の基礎となる3次元データ(3次元モデル:ただし本実施形態では平面)である。[Ro2dl, to2dl]×ModelMatrixの表記は、下記の式(38)の規則に従っている。
上記式(38)の表記規則は、式(37)の他の部分にも適用される。
式(37)の右辺における[Rcam2left, tcam2left]は、カメラ60Bの座標系から左光学像表示部28Bの座標系への変換行列(以下、空間パラメーターとも呼ぶ)である。式(37)の右辺における[Robj2cam, tobj2cam]は、実オブジェクト(実物マーカーRL)の座標系からカメラ60Bの座標系への変換行列である。
左眼LEのアライメントが成立すると仮定したとき、実物マーカーRLのカメラ60Bに対する姿勢をモデルマーカーに適用すると、カメラ60の座標系に変換されたモデルマーカー上の任意の点は次の式(41)のPcl(Xcl, Ycl, Zcl)のようになる。
Ro2dlおよびto2dlは、実物マーカーRLの座標系から左光学像表示部28Bの座標系への回転および並進であり、本実施形態では、ユーザーが左光学像表示部28Bに表示されたマーカー画像IMGを実物マーカーRLに位置合わせしたときに、所定の回転および並進となるように、左光学像表示部28B上の所定位置(例えば中央)に所定の配向かつ所定の大きさで、固定されて表示される。Tcam2leftは、カメラの座標系から左光学像表示部28Bの座標系への並進である。
上記式(43)および(44)における要素は定数(aは図13のL1)であり、式(45)における要素D1, D2, D3は初期値である。なお、図13からわかるように、本実施形態では、画像表示部20Bに固定された座標系では、光学像表示部26B,28B(画像表示部20B)から使用者USの眼へと射出される光の方向がZ軸方向である。
式(41)で表されるモデルマーカーをカメラ60Bの撮像画像上に写像するとき、撮像画像上のモデルマーカーの座標は、次のようになる。
ここで、(Fx, Fy)はカメラ60Bの焦点距離であり、(Cx, Cy)はカメラ60Bの主点位置座標である。
カメラ60Bが実際に実物マーカーRLを撮像した場合の撮像画像におけるマーカーの特徴要素の座標を(ul, vl)と表記すると、(ul, vl)と(ximl, yiml)との差は以下のようになる。
式(48)における添え字iは、マーカーにおける特徴要素を示す整数であり、1から9までの値を取る。左眼LEのアライメントについて、二乗和を導出する。
本実施形態では、カメラ60BのカメラパラメーターCPと、カメラ60Bの座標系から左光学像表示部28Bの座標系への回転(Rcam2left)および並進(Tcam2left)、ならびにカメラ60Bの座標系から右光学像表示部26Bの座標系への回転(Rcam2right)および並進(Tcam2right)が最適化により導出される。
式(51)で表わされるコスト関数Eを最小化する繰り返し計算に用いられるヤコビ行列は、式(52)のようになる。
ここで、式(52)の右辺における変数Xmliおよびymliはそれぞれ式(46)および(47)によって表され、さらに式(46)および(47)におけるxclおよびyclは式(42)によって表される。また、式(52)の右辺における変数pは、カメラ60BのカメラパラメーターCPに含まれるFx,Fy,Cx,Cyと、カメラ60Bと光学像表示部26B,28Bとの間の空間的関係を表す回転Rcam2left、Rcam2rightを構成する6つのオイラー角と、並進Tcam2left、 Tcam2rightを構成する6つの並進成分と、である。演算部167Bは、式(52)のヤコビ行列と、変数pの微小変化量と、に基づいて、式(51)のグローバルミニマムを探索することができる。
B−3−2.空間パラメーター:
上述の通り、本実施形態では、演算部167Bは、右光学像表示部26Bと左光学像表示部28Bとのそれぞれに対応する空間パラメーターPM2[Rcam2left, tcam2left][Rcam2lright, tcam2right]を算出する。回転行列Rcam2rightは、直交する3軸の回転によって決定される3つのパラメーターであり、並進行列Tcam2rightは、3軸に沿った並進のそれぞれに対応する3つのパラメーターである。すなわち、右光学像表示部26Bに対応する空間パラメーターPMは、計6つのパラメーターを含んでいる。同じように、左光学像表示部28Bに対応する空間パラメーターPMは、回転行列Rcam2leftと並進行列Tcam2leftとであり、計6つのパラメーターを含んでいる。すなわち、本実施形態では、カメラパラメーターに含まる4個のパラメーターと、空間的関係を表す12個のパラメーターとの16個のパラメーターが算出される。
上述の通り、本実施形態では、演算部167Bは、右光学像表示部26Bと左光学像表示部28Bとのそれぞれに対応する空間パラメーターPM2[Rcam2left, tcam2left][Rcam2lright, tcam2right]を算出する。回転行列Rcam2rightは、直交する3軸の回転によって決定される3つのパラメーターであり、並進行列Tcam2rightは、3軸に沿った並進のそれぞれに対応する3つのパラメーターである。すなわち、右光学像表示部26Bに対応する空間パラメーターPMは、計6つのパラメーターを含んでいる。同じように、左光学像表示部28Bに対応する空間パラメーターPMは、回転行列Rcam2leftと並進行列Tcam2leftとであり、計6つのパラメーターを含んでいる。すなわち、本実施形態では、カメラパラメーターに含まる4個のパラメーターと、空間的関係を表す12個のパラメーターとの16個のパラメーターが算出される。
演算部167Bは、使用者が実物マーカーRLとマーカー画像IMGとが互いに一致するように視認する状態で実物マーカーRLを撮像し、撮像画像を取得する。演算部167Bは、当該撮像画像に基づいて、上記の式(51)を用いて、空間パラメーターPMを算出する。本実施形態では、空間パラメーターPMを算出する場合の初期値(i=0)として、カメラ60Bまたは光学像表示部26B,28Bの最大可動した場合の一方の姿勢における値、または、可動域の中間の姿勢における値を用いる。これらの初期値として、HMD100Bが製造される工場から出荷される前の計測値や検査値が用いられてもよい。
空間パラメーターPMが算出されると、使用者に確認させる目的で、演算部167Bは、算出した空間パラメーターPMを用いて、実物マーカーRLがカメラ60Bの撮像範囲に含まれる場合に、実物マーカーRLの位置に合わせて重畳するように確認用画像を表示する。実物マーカーの内部座標をXと定義すると、空間パラメーターPMが用いられ、左光学像表示部28Bにおける表示画像の位置(u,v)は、式(53)のように表される。
ここで、[Robj2cam, Tobj2am]は実物マーカーRLとカメラ60Bとの間の空間的関係を表すパラメーター(回転行列および並進行列)であり、これらは、カメラ60Bが撮像した実物マーカーRLの撮像画像に、例えばホモグラフィーを適用することによって演算部167Bによって算出される。実物マーカー以外の実オブジェクトを検出する場合には、他の方法で実オブジェクトとカメラ60Bとの間の空間的関係が導出される。なお、右光学像表示部26Bについても、式(53)と同様な関係式により、表示画像の位置(u,v)が導出される。式(53)に示す通り、実オブジェクト(この場合、実物マーカーRL)とカメラ60Bとの間の空間的関係、およびカメラ60Bと光学像表示部26B、28Bとの間の空間的関係に少なくとも基づいて定まる位置にu,vにARオブジェクトを表示することで、当該ARオブジェクト(この場合確認用画像)の位置、大きさおよび配向の少なくとも一つが、実オブジェクトの位置、大きさ、配向の少なくとも一つに一致するように、HMD100Bの使用者に視認させることができる。なお、式(53)における右辺のRPは、ピンホールカメラモデルと同様な写像モデルを用いた場合に決定される写像パラメーター(またはレンダリングパラメーターとも呼ぶ)であり、本実施形態では下記の式(54)のように表される。
ここで、式(54)におけるFx, FyはHMD100Bにおけるプロジェクターの画素数に換算された焦点距離であり、Wは水平方向の左光学像表示部28Bの画素数(解像度)であり、Hは垂直方向の左光学像表示部28Bの画素数(解像度)であり、CxおよびCyは、表示画像の中心位置である。写像パラメーターの上2行がu, vの導出に寄与する。fおよびnは、0と1の間で規格化された奥行を有する規格化デバイス座標との対応関係を決める係数である。すなわち、これらは、レンダリングバッファに(デプスバッファ)おいて奥行を調整するための係数であるが、表示画像の位置(u,v)の導出に直接関与しないことから、詳細は省略する。
本実施形態では、キャリブレーションがうまく実施されていれば、HMD100Bを装着している使用者は、光学像表示部26B、28Bに表示された確認用画像の位置、大きさ、向きが、実物マーカーRLの位置、大きさ、向きに一致するように、視認する。図15は、実物マーカーRLと確認用画像3DCGとが使用者に視認されている状態が示されている。図15には、実物マーカーRLの位置、大きさ、および向きに、確認用画像3DCGの位置、大きさおよび向きが一致するように、使用者が実物マーカーRLと確認用画像3DCGとを視認している状態が示されている。確認用画像3DCGは、実物マーカーRLに対応するように、立体的な直方体で表される画像である。確認用画像3DCGでは、直方体を表す各辺に相当する直線のみが表示され、直方体の内部には画像として表示されるものはない。換言すると、直方体の内部については、使用者は、実物マーカーRLなどを含む透過した外景を視認できる。使用者が実物マーカーRLと確認用画像3DCGとが互いに一致するように視認しないときに、再度、キャリブレーションをやり直すことができる。図15には、光学像表示部26B、28Bまたは音声処理部170Bは、キャリブレーションが成功しAR表示機能を続行すること(重畳して見えるか)、およびキャリブレーションをやり直すことのいずれかを促す文字画像または音声を使用者に提示してもよい。
演算部167Bは、算出した空間パラメーターPMとしての行列を用いて、実オブジェクトの位置に対応するようにAR画像を、光学像表示部26B,28Bに表示させる。なお、実オブジェクトは、請求項におけるオブジェクトに相当し、AR画像は、請求項における対応画像(counterpart image)に相当する。
以上説明したように、使用者が実物マーカーRLに右光学像表示部26Bまたは左光学像表示部28Bに表示されたマーカー画像IMGが重なるように視認している状態で、実物マーカーRLの撮像画像が撮像されると、演算部167Bは、当該撮像画像に少なくとも基づいて、カメラ60BのカメラパラメーターCPと、カメラ60Bと光学像表示部26B,28Bとの間の空間的関係と、を導出する。そのため、本実施形態のHMD100Bでは、外景SCを撮像するカメラ60Bが画像表示部20Bに対して動く場合であっても、カメラ60Bと画像表示部20Bとの空間的関係を導出できる。そして、このため、HMD100Bは、使用者USにAR画像が対応する実オブジェクトに重畳するように視認させることができる。また、本実施形態のHMD100Bでは、キャリブレーションを実行するために、HMD100B以外の装置が不要で、かつ、使用者は、制御部10Bに配置された実物マーカーRLが視認できる範囲で頭部を動かすだけでよい。よって、本実施形態のHMD100Bでは、簡便にキャリブレーションを実行できる。
また、本実施形態のHMD100Bでは、演算部167Bは、カメラパラメーターCPおよび空間パラメーターPMを用いて、撮像された実オブジェクトの位置と姿勢に対応するようにAR画像を光学像表示部26B,28Bに表示させる。そのため、本実施形態のHMD100Bでは、ARオブジェクトの位置に精度良く対応するように、光学像表示部26B、28BにAR画像を表示させることができる。
B−4.第2実施形態の変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
B−4−1.変形例1:
上記実施形態では、演算部167Bは、カメラパラメーターCPも最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、カメラパラメーターCPについては設計値を設定し、カメラ60Bと光学像表示部26B,28Bとの間の空間的関係だけを導出してもよい。この変形例のHMD100Bでは、最適化するパラメーターpの数が少なくなる。また、製造上、ばらつきの少ないパラメーターに対して、設計値を代入することで、コスト関数Eをより小さくするパラメーターの最適化を行ないつつ、パラメーターを最適化するための時間を短くできる。
上記実施形態では、演算部167Bは、カメラパラメーターCPも最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、カメラパラメーターCPについては設計値を設定し、カメラ60Bと光学像表示部26B,28Bとの間の空間的関係だけを導出してもよい。この変形例のHMD100Bでは、最適化するパラメーターpの数が少なくなる。また、製造上、ばらつきの少ないパラメーターに対して、設計値を代入することで、コスト関数Eをより小さくするパラメーターの最適化を行ないつつ、パラメーターを最適化するための時間を短くできる。
B−4−2.変形例2:
図16および図17は、実オブジェクトの位置に対応するようにAR画像が表示される前後の使用者の視野VRを示す図である。上記実施形態によるキャリブレーションは完了している。図16には、AR画像が表示される前の視野VRが示されており、図17には、AR画像が表示された後の視野VRが示されている。本実施形態のHMD100Bのマーカー特定部166Bは、パターンマッチングなどにより、カメラ60Bの撮像範囲からARオブジェクトとしてのペットボトル本体PTとペットボトル本体PTの蓋CAとを検出する。ペットボトル本体PTと蓋CAとが予め設定された位置状態と異なる状態で検出された場合に、演算部167Bは、AR画像を光学像表示部26B,28Bに表示させる。予め設定された位置状態とは、図16の場合とは異なり、ペットボトル本体PTの開口部PTaの位置に蓋CAが存在するような、いわゆるペットボトル本体PTが蓋CAによって閉められている状態である。
図16および図17は、実オブジェクトの位置に対応するようにAR画像が表示される前後の使用者の視野VRを示す図である。上記実施形態によるキャリブレーションは完了している。図16には、AR画像が表示される前の視野VRが示されており、図17には、AR画像が表示された後の視野VRが示されている。本実施形態のHMD100Bのマーカー特定部166Bは、パターンマッチングなどにより、カメラ60Bの撮像範囲からARオブジェクトとしてのペットボトル本体PTとペットボトル本体PTの蓋CAとを検出する。ペットボトル本体PTと蓋CAとが予め設定された位置状態と異なる状態で検出された場合に、演算部167Bは、AR画像を光学像表示部26B,28Bに表示させる。予め設定された位置状態とは、図16の場合とは異なり、ペットボトル本体PTの開口部PTaの位置に蓋CAが存在するような、いわゆるペットボトル本体PTが蓋CAによって閉められている状態である。
演算部167Bは、ペットボトル本体PTと蓋CAとが予め設定された位置状態にない場合(図16の場合)に、AR画像を表示するか否かを使用者に問う文字画像TX2を光学像表示部26B,28Bに表示させる。文字画像TX2は、「AR画像を表示?YES/NO」の文字である。演算部167Bは、操作部135Bが受け付けた操作によって、AR画像を表示するか否かを決定する。
図17には、演算部167Bが、AR画像を表示すると決定した場合に、光学像表示部26B,28Bに表示されたAR画像としてのカーソル画像CS1および蓋画像IM1が示されている。演算部167Bは、AR画像として、実オブジェクトである蓋CAを移動させる先の位置を蓋画像IM1およびカーソル画像CS1で表している。また、演算部167Bは、AR画像を表示していることを使用者に視認させるための文字画像TX3を光学像表示部26B,28Bに表示させる。文字画像TX3は、AR画像が表示されていることを表す「AR画像、表示中」の文字である。
以上説明したように、この変形例のHMD100では、演算部167Bは、AR画像を表示するか否かを使用者に決定させるための文字画像TX2を光学像表示部26B,28Bに表示させる。そのため、この変形例のHMD100Bでは、使用者の意図を反映したAR画像の表示を実行できる。
B−4−3.変形例3:
上記実施形態では、第1パラメーターPM1は、実物マーカー座標系からへカメラ座標系と変換する行列であったが、逆に、カメラ座標系から実物マーカー座標系へと変換する行列であってもよい。空間パラメーターPMは、カメラ座標系から画像表示部の座標系へと変換する行列式であったが、逆に、画像表示部の座標系からカメラ座標系へと変換する行列であってもよい。
上記実施形態では、第1パラメーターPM1は、実物マーカー座標系からへカメラ座標系と変換する行列であったが、逆に、カメラ座標系から実物マーカー座標系へと変換する行列であってもよい。空間パラメーターPMは、カメラ座標系から画像表示部の座標系へと変換する行列式であったが、逆に、画像表示部の座標系からカメラ座標系へと変換する行列であってもよい。
上記実施形態では、空間パラメーターPMを算出する場合いの初期値(i=0)として、出荷時の計測値や検査値が用いられたが、その他の方法によって取得された値が用いられてもよい。例えば、HMD100Bにおける各可動部の加速度や角速度を検出するIMU、または位置変化を検出するエンコーダーによって取得された値に基づいて、初期値が設定されてもよい。
B−4−4.変形例4:
上記実施形態では、右光学像表示部26Bにマーカー画像IMGが表示された場合と左光学像表示部28Bにマーカー画像IMGが表示された場合との計2回の外景SCの撮像が行なわれたが、キャリブレーションを実行するために行なわれる撮像の回数については、種々変形可能である。例えば、右光学像表示部26Bのみにマーカー画像IMGが表示された状態の1回の外景SCの撮像のみで、演算部167Bは、パラメーターの最適化を実行してもよい。一方、2回よりも多い回数の実物マーカーRLを含む外景SCの撮像が行なわれて、演算部167Bは、コスト関数Eをより小さくするパラメーターの最適化を実行してもよい。また、上記実施形態とは異なり、単眼のHMDの場合には、一方の眼に対応する画像表示部または両方の眼に対応する1つの画像表示部(つまり単眼のHMD)にマーカー画像IMGが表示されて、キャリブレーションが実行されてもよい。
上記実施形態では、右光学像表示部26Bにマーカー画像IMGが表示された場合と左光学像表示部28Bにマーカー画像IMGが表示された場合との計2回の外景SCの撮像が行なわれたが、キャリブレーションを実行するために行なわれる撮像の回数については、種々変形可能である。例えば、右光学像表示部26Bのみにマーカー画像IMGが表示された状態の1回の外景SCの撮像のみで、演算部167Bは、パラメーターの最適化を実行してもよい。一方、2回よりも多い回数の実物マーカーRLを含む外景SCの撮像が行なわれて、演算部167Bは、コスト関数Eをより小さくするパラメーターの最適化を実行してもよい。また、上記実施形態とは異なり、単眼のHMDの場合には、一方の眼に対応する画像表示部または両方の眼に対応する1つの画像表示部(つまり単眼のHMD)にマーカー画像IMGが表示されて、キャリブレーションが実行されてもよい。
上記実施形態では、右光学像表示部26Bに表示されるマーカーと左光学像表示部28Bに表示されるマーカーとは、同じマーカー画像IMGであったが、マーカー画像IMGおよび実物マーカーRLについては、種々変形可能である。例えば、右光学像表示部26Bと左光学像表示部28Bとのそれぞれに表示されるマーカーの画像は、異なるマーカーの画像であってもよい。また、マーカー画像IMGおよび実物マーカーRLは、マーカーMK1の画像に限られず、導出されるパラメーターの精度に応じて、種々変形可能である。例えば、マーカーMK1に含まれる円の数は、9個に限られず、9個よりも多くてよいし、9個よりも少なくてもよい。また、マーカーMK1に含まれる複数の特徴点は、円の中心でなくてもよく、単に三角形の重心であってもよい。また、マーカーMK1の内部に並行でない複数の直線が形成されて、直線の交点が複数の特徴点として特定されてもよい。また、マーカー画像IMGと実物マーカーRLとは、異なるマーカーであってもよい。マーカー画像と実物マーカーとを重ねる場合に、どの部分を重ね合わせるのかが使用者に認識される範囲で、マーカー画像と実物マーカーとについては、種々変形可能である。例えば、矩形状のマーカー画像に対して、正円の実物マーカーの中心をマーカー画像の中心に合わせるような位置合わせであってもよい。
上記実施形態では、カメラ60BのカメラパラメーターCPが最適化される場合に、焦点距離(Fx,Fy)と、カメラ主点位置(Cx,Cy)と、が最適化されたが、これらに代えて、またはこれらとともに、カメラ60BのカメラパラメーターCPとして歪係数を最適化してもよい。
C.第3実施形態:
C−1.頭部装着型表示装置の構成:
図18ないし図20は、キャリブレーションを行なう頭部装着型表示装置100Ca(HMD100Ca)の外観構成を示す説明図である。HMD100Caは、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20Ca(図18)を透過する外景からの光によって当該外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100Caは、画像表示部20Caを装着した使用者の右眼と左眼とのそれぞれに対応する画像表示部を有しており、使用者の右眼と左眼とに別々の画像を視認させることができる。
C−1.頭部装着型表示装置の構成:
図18ないし図20は、キャリブレーションを行なう頭部装着型表示装置100Ca(HMD100Ca)の外観構成を示す説明図である。HMD100Caは、画像表示部20が表示する表示画像を使用者に視認させ、画像表示部20Ca(図18)を透過する外景からの光によって当該外景も使用者に視認させることができる。詳細な構成については後述するが、本実施形態のHMD100Caは、画像表示部20Caを装着した使用者の右眼と左眼とのそれぞれに対応する画像表示部を有しており、使用者の右眼と左眼とに別々の画像を視認させることができる。
図19に示すように、HMD100Caは、使用者USの頭部装着型表示装置に装着される装着帯90Caと、装着帯90Caに接続されている画像表示部20Caと、画像表示部20Caを制御する制御部10Ca(コントローラー10Ca)と、制御部10Caと装着帯90Caとを接続する接続部40Caと、を備えている。図18に示すように、装着帯90Caは、樹脂製の装着基部91Caと、装着基部91Caに連結される布製のベルト部92Caと、カメラ60Caと、を備える。装着基部91Caは、人の前頭部の形に合った湾曲した形状を有する。ベルト部92Caは、使用者の頭部の周りに装着されるためのベルトである。なお、接続部40Caは、装着帯90Caと制御部10Ca側とを有線で接続しているが、図19では、接続している部分については、図示を省略している。
カメラ60Caは、外景を撮像可能で、装着基部91Caの中心部分に配置されている。換言すると、カメラ60Caは、装着帯90Caが使用者の頭部に装着された状態で、使用者の額の中央に対応する位置に配置されている。そのため、カメラ60Caは、使用者が装着帯90Caを頭部に装着した状態において、使用者の視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。図2に示すように、カメラ60Caは、装着基部91Caに対して、円弧RCに沿って所定の範囲で可動する。換言すると、カメラ60Caは、撮像範囲を所定の範囲で変更できる。
図19に示すように、画像表示部20Caは、連結部93Caを介して装着基部91Caに接続され、眼鏡形状を有している。連結部93Caは、装着基部91Caおよび画像表示部20Caの両側に対象的に配置され、連結部93Caを中心として、装着基部91Caに対する画像表示部20Caの位置を円弧RAに沿って回動可能に支持する。図19において二点鎖線で示す位置P11Caは、画像表示部20Caが円弧RAに沿った最も下端である。また、図19において実線で示す位置P12Caは、画像表示部20Caが円弧RAに沿った最も上端である。
また、図18および図20に示すように、画像を表示可能な表示パネルを有する光学像表示部26Ca,28Caは、保持部21Ca,23Caに対して、直線TAに沿って所定の範囲で平行移動して位置を変更する。図20において二点鎖線で示す位置P13Caは、光学像表示部26Ca,28Caが直線TAに沿った最も下端である。図20において実線で示す位置P11Caは、光学像表示部26Ca,28Caが直線TAに沿った最も上端である。なお、図19における位置P11Caと、図20における位置P11Caとは、同じ位置を示している。
図18に示すように、画像表示部20Caは、右保持部21Caと、右表示駆動部22Caと、左保持部23Caと、左表示駆動部24Caと、右光学像表示部26Caと、左光学像表示部28Caと、を含んでいる。右光学像表示部26Caおよび左光学像表示部28Caは、それぞれ、使用者が画像表示部20Caを装着した際に使用者の右および左の眼前に位置するように配置されている。右光学像表示部26Caの一端と左光学像表示部28Caの一端とは、使用者が画像表示部20Caを装着した際の使用者の眉間に対応する位置で、互いに接続されている。
右保持部21Caは、右光学像表示部26Caの他端から装着基部91Caと接続されている連結部93Caに延伸して設けられた部材である。同様に、左保持部23Caは、左光学像表示部28Caの他端から連結部93Caに延伸して設けられた部材である。右表示駆動部22Caと左表示駆動部24Caとは、使用者が画像表示部20Caを装着した際の使用者の頭部に対向する側に配置されている。
表示駆動部22Ca,24Caは、図19で後述する液晶ディスプレイ241Ca,242Ca(Liquid Crystal Display、以下「LCD241Ca,242Ca」とも呼ぶ)や投写光学系251Ca,252Ca等を含む。表示駆動部22Ca,24Caの構成の詳細な説明は後述する。光学像表示部26Ca,28Caは、後述する導光板261Ca,262Ca(図21参照)と調光板とを含んでいる。導光板261Ca,262Caは、光透過性の樹脂材料等によって形成され、表示駆動部22Ca,24Caから出力された画像光を使用者の眼に導く。調光板は、薄板状の光学素子であり、使用者の眼の側とは反対の側である画像表示部20Caの表側を覆うように配置されている。調光板の光透過率を調整することによって、使用者の眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
制御部10Caは、HMD100Caを制御するための装置である。制御部10Caは、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部135Caを有する。
図21は、HMD100Caの構成を機能的に示すブロック図である。図21に示すように、制御部10Caは、ROM121Caと、RAM122Caと、電源130Caと、操作部135Caと、マーカー画像記憶部138Caと、CPU140Caと、インターフェイス180Caと、送信部51Ca(Tx51Ca)および送信部52Ca(Tx52Ca)と、を有している。
電源130Caは、HMD100Caの各部に電力を供給する。ROM121Caには、種々のコンピュータープログラムが格納されている。後述するCPU140Caは、ROM121Caに格納された各種コンピュータープログラムを、RAM122Caに展開することで、各種コンピュータープログラムを実行する。
マーカー画像記憶部138Caは、キャリブレーションに用いられるモデルマーカー(マーカーモデルとも呼ぶ)のデータおよび/または右光学像表示部26Caまたは左光学像表示部28Caに表示されるキャリブレーション用画像としてのマーカー画像IMGを記憶している。マーカー画像記憶部138Caは、右光学像表示部26Caに表示されるマーカー画像と左光学像表示部28Caに表示されるマーカー画像とを同じマーカー画像IMGとして記憶している。マーカー画像IMGとしては、2次元のモデルマーカーの画像であったり、3次元モデル空間(3Dコンピューターグラフィックス空間)で表現された上記モデルマーカー(2D)のデータ、またはそのモデルマーカーを、右光学像表示部26Caまたは左光学像表示部28Caのそれぞれの写像パラメーターに基づいて写像したものなどが用いられる。換言すると、マーカー画像IMGは、実物として存在する2次元または3次元の実物マーカーMK1の形状を、2次元として表した画像である。なお、実物マーカーMK1は、請求項における識別マーカーに相当する。
図22ないし図25は、紙面PPに印刷された2次元の実物マーカーを示す説明図である。図22には、本実施形態のキャリブレーションに用いられる2つのマーカーとしての実物マーカーMK1,MK2が示されている。図22に示すように、実物マーカーMK1は、4つの頂点P0,P1,P2,P3を直線で結んだ正方形の中に、10個の正円を含むマーカーである。10個の円の内の5個の円は、頂点P0と頂点P2とを結んだ対角線CL1上に円の中心が存在する。当該5個の円は、対角線CL1に沿って、頂点P0に近い円から、円C1,C2,C3,C4,C5である。同じように、10個の円の内の5個の円は、頂点P1と頂点P3とを結んだ対角線CL2上に円の中心が存在する。当該5個の円は、対角線CL2に沿って、頂点P1に近い円から、円C6,C7,C3,C8,C9である。円C3は、対角線CL1と対角線CL2との交点であると共に、正方形の重心である点を中心とする円である。10個の円の内の1個の円である円C10は、正方形の重心を通り、かつ、P1とP2とを結ぶ直線に平行なY軸上に中心を有する。円C10は、正方形の重心を通り、Y軸に直交するX軸に沿って、円C5および円C9と同じ位置に中心を有する。換言すると、円C10は、円C5の中心と円C9の中心との中間に中心を有する円である。
本実施形態では、対角線CL1上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。同じように、対角線CL2上に中心を有する5個の円における隣接する円の中心間の距離は、同じ距離になるように設定されている。また、対角線CL1に中心を有する隣接する円の中心間の距離と、対角線CL2に中心を有する隣接する円の中心間の距離とは、同じ距離である。なお、10個の内の円C10のみ、他の円との中心間との距離が異なる。10個の円の大きさは、同じ大きさである。なお、対角線CL1、対角線CL2、X軸、およびY軸は、実物マーカーMK1を説明するために、便宜上、図22に示しているのであり、実際の実物マーカーMK1には含まれない直線である。
図22では、色の違いを、ハッチングを変えることで表している。具体的には、図22におけるハッチングが施された部分は、黒色であり、その他の部分は、白色である。そのため、図22に示すように、実物マーカーMK1は、白色の紙面PPに、白色によって周囲が囲まれた黒色の正方形によって形成され、その正方形の中に10個の円が白色で形成されている。
図22に示す実物マーカーMK2は、実物マーカーMK1を元に作成されたマーカーである。実物マーカーMK2は、実物マーカーMK1の大きさを縮小させ、かつ、黒色と白色との反転させたマーカーである。そのため、図22に示すように、実物マーカーMK2は、黒色によって周囲が囲まれた白色の正方形によって形成され、その正方形の中に10個の円が黒色で形成されている。本実施形態では、マーカー画像記憶部138Bは、実物マーカーMK1の2次元の画像であるマーカー画像IMGを記憶している。なお、実物マーカーMK2は、図23に示すように、実物マーカーMK1から分離されていてもよい。また、図24に示すように、実物マーカーMK2(MK1)に代えて、対角線上にない円を省略された実物マーカーMK1Aが採用されてもよい。なお、図25に示すように、実物マーカーMK1,MK2,MK1Aの裏面には、形状、模様、または色彩の特徴は必要ない。
図21に示すCPU140Caは、ROM121Caに格納されているコンピュータープログラムを、RAM122Caに展開することにより、オペレーティングシステム150Ca(OS150Ca)、表示制御部190Ca、音声処理部170Ca、画像処理部160Ca、表示設定部165Ca、マーカー特定部166Ca、およびパラメーター設定部167Caとして機能する。
表示制御部190Caは、右表示駆動部22Caおよび左表示駆動部24Caを制御する制御信号を生成する。表示制御部190Caは、右表示駆動部22Caおよび左表示駆動部24Caのそれぞれによる画像光の生成および射出を制御する。表示制御部190Caは、右LCD制御部211Caと左LCD制御部212Caとに対する制御信号のそれぞれを、送信部51Caおよび52Caを介して送信する。また、表示制御部190Caは、右バックライト制御部201Caと左バックライト制御部202Caとに対する制御信号のそれぞれを送信する。
画像処理部160Caは、コンテンツに含まれる画像信号を取得し、送信部51Ca,52Caを介して、取得した画像信号を画像表示部20Caの受信部53Ca,54Caへと送信する。音声処理部170Caは、コンテンツに含まれる音声信号を取得し、取得した音声信号を増幅して、連結部材46Caに接続された右イヤホン32Ca内のスピーカー(図示しない)および左イヤホン34Ca内のスピーカー(図示しない)に対して供給する。
表示設定部165Caは、マーカー画像記憶部138Caに記憶されたマーカー画像IMGを右光学像表示部26Caまたは左光学像表示部28Caに表示させる。表示設定部165Caは、キャリブレーションが実行されているとき(キャリブレーション実行時)に、操作部135Caが受け付けた操作に基づいて、マーカー画像IMGを右光学像表示部26に表示する場合と、マーカー画像IMGを左光学像表示部28Caに表示する場合とを制御する。表示設定部165Caは、カメラ60Caが実物マーカーMK1を撮像してキャリブレーションを実行するときと、カメラ60Caが実物マーカーMK2を撮像してキャリブレーションを実行するときとで異なる大きさのマーカー画像IMGを右光学像表示部26Caまたは左光学像表示部28Caに表示させる。また、表示設定部165Caは、キャリブレーション実行時に、後述する文字画像等を光学像表示部26Ca,28Caに表示させる。
マーカー特定部166Caは、カメラ60Caによって撮像された撮像画像の中に実物マーカーMK1,MK2が印刷された紙面PPが含まれる場合に、撮像された紙面PPから、実物マーカーMK1,MK2を特定する。実物マーカーMK1,MK2を特定するための具体的な処理については、後述するが、マーカー特定部166Caは、実物マーカーMK1,MK2の4つの頂点、10個の円の中心の座標値を抽出することで、撮像画像の中から実物マーカーMK1,MK2を特定する。マーカー特定部166Caは、例えば、撮像画像の色の階調値を2値化することで、実物マーカーMK1,MK2における白色と黒色との部分を区別して、円の中心の座標を抽出する。
パラメーター設定部167Caは、カメラ60Caによって撮像された特定のオブジェクト(以下、「特定オブジェクト」とも言う)に対応付けられた状態で光学像表示部26Ca,28Caに表示されるAR(Augmented Reality)画像の表示領域内での位置などを設定するために必要なパラメーター群を設定する。具体的には、パラメーター設定部167Caは、光学像表示部26Ca,28Caに表示されるAR画像の位置と大きさと向きとの少なくとも1つと、特定オブジェクトの位置と大きさと向きとの1つと、が対応した状態のAR画像を使用者USに視認させるパラメーター群を設定する。換言すると、パラメーター設定部167Caは、カメラ60Caに原点が固定された3次元座標系(3D)と、光学像表示部26Ca,28Caの表示領域(2D)とを対応付けるためのパラメーター群の少なくとも1つを、キャリブレーションによって算出する。なお、以降では、カメラ60Caに原点が固定された3次元座標系をカメラ座標系と呼ぶ。本実施形態では、カメラ座標系以外の座標系として、実物マーカーMK1または実物マーカーMK2の原点を基準とする実物マーカー座標系、カメラ60Caによって撮像された特定オブジェクトを基準とするオブジェクト座標系、右光学像表示部26Caの原点または左光学像表示部28Caの原点を基準とする表示部座標系などを定義する。
ここで、パラメーター群は、「検出系パラメーターセット」と、「表示系パラメーターセット」と、を含む。「検出系パラメーターセット」は、カメラ60Caに関するカメラパラメーターCPを含む。「表示系パラメーターセット」は、カメラ60Caと光学像表示部26Ca,28Caとの間の空間関係を表す3Dから3Dへの「変換パラメーター」と、任意の3Dモデル(3次元座標で表わされたCGモデル)を画像(つまり2D)として表示するための3Dから2Dへの「写像パラメーター」と、を含む。これらのパラメーターは、必要に応じて行列またはベクトルの態様で表わされる。「一つのパラメーター」との表記は、一つの行列または一つのベクトルを示すこともあるし、一つの行列またはベクトルに含まれる複数の要素の一つを示すこともある。パラメーター設定部167Caは、パラメーター群のうち、必要なパラメーターを導出し、AR画像の表示の際に用いる。この結果、HMD100Caは、使用者USに、画像表示部20を介して、AR画像(ARモデル)の位置、大きさ、向き、奥行感の少なくとも一つと、特定オブジェクトのそれらにと、がほぼ一致する状態で当該AR画像を視認させることができる。もちろん、これらに加えて、HMD100Caは、色やテクスチャーなどの見えが互いに一致するようにしてもよい。
表示設定部165Caは、キャリブレーションが実行されているときに、AR画像または設定画像SIM(後述)を右光学像表示部26Caまたは左光学像表示部28Caに表示させる。設定画像SIMを用いた詳細な処理については後述する。
インターフェイス180Caは、制御部10Caに対して、コンテンツの供給元となる種々の外部機器OAを接続するためのインターフェイスである。外部機器OAとしては、例えば、ARシナリオを記憶している記憶装置、パーソナルコンピューター(PC)や携帯電話端末、ゲーム端末等、がある。インターフェイス180Caとしては、例えば、USBインターフェイス、マイクロUSBインターフェイス、メモリーカード用インターフェイス等、を用いることができる。
図21に示すように、画像表示部20Caは、右表示駆動部22Caと、左表示駆動部24Caと、右光学像表示部26Caとしての右導光板261Caと、左光学像表示部28Caとしての左導光板262Caと、を備えている。
右表示駆動部22Caは、受信部53Ca(Rx53Ca)と、光源として機能する右バックライト制御部201Ca(右BL制御部201Ca)および右バックライト221Ca(右BL221Ca)と、表示素子として機能する右LCD制御部211Caおよび右LCD241Caと、右投写光学系251Caと、を含んでいる。右バックライト制御部201Caと右バックライト221Caとは、光源として機能する。右LCD制御部211Caと右LCD241Caとは、表示素子として機能する。
受信部53Caは、制御部10Caと画像表示部20Caとの間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部201Caは、入力された制御信号に基づいて、右バックライト221Caを駆動する。右バックライト221Caは、例えば、LEDやエレクトロルミネセンス(EL)等の発光体である。右LCD制御部211Caは、画像処理部160Caおよび表示制御部190Caから送信された制御信号に基づいて、右LCD241Caを駆動する。右LCD241Caは、複数の画素をマトリクス状に配置した透過型液晶パネルである。
右投写光学系251Caは、右LCD241Caから射出された画像光を並行状態の光束にするコリメートレンズによって構成される。右光学像表示部26Caとしての右導光板261Caは、右投写光学系251Caから出力された画像光を、所定の光路に沿って反射させつつ使用者の右眼REに導く。なお、左表示駆動部24Caは、右表示駆動部22Caと同様の構成を有し、使用者の左眼LEに対応するため、説明を省略する。
C−2.キャリブレーション実行処理:
図26は、第3実施形態におけるキャリブレーション実行処理のフローチャートである。本実施形態のキャリブレーション実行処理は、2つのモード、すなわち、第1設定モードと第2設定モードとを含む。第1設定モードでは、HMD100Caは、使用者USに片眼ずつキャリブレーションを実施させる。第2設定モードでは、HMD100Caは、使用者USに両眼で調整を実施させる。
図26は、第3実施形態におけるキャリブレーション実行処理のフローチャートである。本実施形態のキャリブレーション実行処理は、2つのモード、すなわち、第1設定モードと第2設定モードとを含む。第1設定モードでは、HMD100Caは、使用者USに片眼ずつキャリブレーションを実施させる。第2設定モードでは、HMD100Caは、使用者USに両眼で調整を実施させる。
キャリブレーション実行処理では、初めに、操作部135Caが所定の操作を受け付けると、パラメーター設定部167Caは、今から実行するキャリブレーションが最初のキャリブレーションの設定であるか否かを判定する(ステップSC11)。マーカー画像記憶部138Caには、実行されるキャリブレーションが最初であるか否かのデータも記憶されている。本実施形態では、使用者US毎にキャリブレーションが最初であるか否かが判別されてもよい。具体的には、カメラ60Caが使用者USの掌の形状・模様を撮像し、CPU140Caが使用者USを特定し、キャリブレーションがその使用者USにとって最初に実行されるのか否かを判定してもよい。使用者USの特定は、近距離無線通信を用いたIDカードによる特定でもよい。パラメーター設定部167Caは、最初のキャリブレーションの設定であると判定した場合には(ステップSC11:YES)、第1設定モードに移行する(ステップSC20)。第1設定モードの詳細については後述するが、第1設定モードでは、パラメーター設定部167Caが右光学像表示部26Caと左光学像表示部28Caとに、別々にマーカー画像IMGを表示させる。その後、パラメーター設定部167Caは、マーカー画像IMGと実物マーカーMK1,MK2とが一致するように使用者USに視認された状態でカメラ60Caに撮像された実物マーカーMK1,MK2の撮像画像を用いて、変換パラメーターおよびカメラパラメーターCPを設定する。
ステップSC20の処理として、パラメーター設定部167Caが第1設定モードにおいてキャリブレーションを実行すると、表示設定部165Caは、設定された変換パラメーターおよびカメラパラメーターCPを用いて、特定オブジェクトに対応付けられた設定画像SIMを光学像表示部26Ca,28Caに表示させる(ステップSC15)。本実施形態では、特定オブジェクトは実物マーカーMK1,MK2であるが、特定オブジェクトはこれらに限定されない。光学像表示部26Ca,28Caに設定画像SIMが表示されると、パラメーター設定部167Caは、操作部135Caが受け付けた操作に応じて、変換パラメーターおよびカメラパラメーターCPの値がうまく調整されたか否かを決定する(ステップSC17)。具体的には、特定オブジェクトの位置および向き(姿勢)に、設定画像SIMが対応付けられているように使用者USが視認しているか否かの判断を使用者USが行ない、当該判断に応じて、使用者USが操作部135Caを操作すればよい。パラメーター設定部167Caは、設定された変換パラメーターおよびカメラパラメーターCPでよいとの入力を受けた場合には(ステップSC17:YES)、キャリブレーション実行処理を終了する。
ステップSC17の処理において、操作部135Caが所定の操作を受け付けることで、パラメーター設定部167Caが、設定された変換パラメーターおよびカメラパラメーターCPではよくないとの入力を受けた場合、または大きさと奥行感の調整がさらに必要であるとの入力を受けた場合には(ステップSC17:NO)、ステップSC11以降の処理を繰り返す。パラメーター設定部167Caは、ステップSC11の処理において、今から実行しようとするキャリブレーションが最初のキャリブレーションの設定ではないと判定した場合には(ステップSC11:NO)、操作部135Caが所定の操作を受け付けることで、第2設定モードに移行するか否かを判定する(ステップSC13)。パラメーター設定部167Caは、第2設定モードに移行しないと判定した場合には(ステップSC13:NO)、以上で説明した第1設定モードに移行する(ステップSC20)。
ステップSC13の処理において、パラメーター設定部167Caは、第2設定モードに移行すると判定した場合には(ステップSC13:YES)、第2設定モードに移行する(ステップSC30)。第2設定モードの詳細については後述するが、第2設定モードでは、カメラ60Caが特定オブジェクトを撮像することで得られるカメラ60Caに対する特定オブジェクトの位置および姿勢を、表示設定部165Caは、既に実行された第1設定モードまたは第2設定モードにおいて設定されたパラメーター群を用いて特定オブジェクトの右光学像表示部26Caに対する位置および向き(姿勢)に変換する。そして、表示設定部165Caは、当該変換された位置および姿勢と同じ位置と姿勢で設定画像SIMを右光学像表示部26Caおよび左光学像表示部28Caに表示させる。その後、操作部135Caが受け付けた所定の操作に応じて、パラメーター設定部167Caは、特定オブジェクトに対応付けられた設定画像SIMを変更するように、パラメーター群のうちのいくつかをさらに調整させる。パラメーター設定部167Caは、第2設定モードにおいてキャリブレーションを実行すると、表示設定部165CaがステップSC15の処理を実行して、その後の処理が繰り返される。
C−2−1.第1設定モード:
第1設定モードで実行される処理は、以下のような処理である。HMD100Caは、大きさの異なる2つの実物マーカーMK1,MK2を用いて、使用者USに、1つの眼について1度に1回のアライメントを2回実施させることで、合計4回のアライメントを実施させる。具体的には、まず、HMD100Caは、右光学像表示部26Caまたは左光学像表示部28Caに、マーカー画像IMGを表示させる。マーカー画像IMGは、右光学像表示部26Caまたは左光学像表示部28Caのそれぞれに対して、仮想的な位置と姿勢(3D)とを有するモデルマーカーを、光学像表示部26Ca,28Caの表示領域(2D)へ写像、すなわちレンダリング、したものである。本実施形態では、当該仮想的な位置と姿勢とは、光学像表示部26Ca,28Caに対して固定されているが、後述するように、可変であってもよい。使用者USは、右光学像表示部26Caまたは左光学像表示部28Caに表示されたマーカー画像IMGと、実物マーカーMK1または実物マーカーMK2とが、重複または一致して視認することが可能な位置および向き(姿勢)に移動する。使用者USがマーカーIMGと実物マーカーMK1,MK2とが一致するように視認する場合には、実物マーカーMK1,MK2は右光学像表示部26Caまたは左光学像表示部28Caに対して、実物マーカーMK1,MK2の大きさに応じた既定の距離となる位置と上記仮想的な姿勢とを取っていることとなる。マーカー画像IMGと、実物マーカーMK1または実物マーカーMK2とが一致している状態で、パラメーター設定部167Caが、カメラ60Caを用いて実物マーカーMK1または実物マーカーMK2を撮像する。パラメーター設定部167Caは、撮像画像に含まれる実物マーカーMK1または実物マーカーMK2を用いて、変換パラメーターおよびカメラパラメーターCPを設定することとなる。
第1設定モードで実行される処理は、以下のような処理である。HMD100Caは、大きさの異なる2つの実物マーカーMK1,MK2を用いて、使用者USに、1つの眼について1度に1回のアライメントを2回実施させることで、合計4回のアライメントを実施させる。具体的には、まず、HMD100Caは、右光学像表示部26Caまたは左光学像表示部28Caに、マーカー画像IMGを表示させる。マーカー画像IMGは、右光学像表示部26Caまたは左光学像表示部28Caのそれぞれに対して、仮想的な位置と姿勢(3D)とを有するモデルマーカーを、光学像表示部26Ca,28Caの表示領域(2D)へ写像、すなわちレンダリング、したものである。本実施形態では、当該仮想的な位置と姿勢とは、光学像表示部26Ca,28Caに対して固定されているが、後述するように、可変であってもよい。使用者USは、右光学像表示部26Caまたは左光学像表示部28Caに表示されたマーカー画像IMGと、実物マーカーMK1または実物マーカーMK2とが、重複または一致して視認することが可能な位置および向き(姿勢)に移動する。使用者USがマーカーIMGと実物マーカーMK1,MK2とが一致するように視認する場合には、実物マーカーMK1,MK2は右光学像表示部26Caまたは左光学像表示部28Caに対して、実物マーカーMK1,MK2の大きさに応じた既定の距離となる位置と上記仮想的な姿勢とを取っていることとなる。マーカー画像IMGと、実物マーカーMK1または実物マーカーMK2とが一致している状態で、パラメーター設定部167Caが、カメラ60Caを用いて実物マーカーMK1または実物マーカーMK2を撮像する。パラメーター設定部167Caは、撮像画像に含まれる実物マーカーMK1または実物マーカーMK2を用いて、変換パラメーターおよびカメラパラメーターCPを設定することとなる。
図27は、第1設定モードのフローチャートである。第1設定モードでは、パラメーター設定部167Caが、右光学像表示部26Caに関するアライメントを成立させた状態でキャリブレーションデータを収集し、左光学像表示部28Caに関するアライメントを成立させた状態でキャリブレーションデータを収集し、その後、変換パラメーターおよびカメラパラメーターCPを設定する。
第1設定モードでは、初めに、表示設定部165Caが右光学像表示部26Caにマーカー画像IMGを表示させる(ステップSC201)。図28は、マーカー画像IMGが表示された場合の光学像表示部26Caのイメージ図である。図28に示すように、表示設定部165Caは、マーカーの正方形の外枠と、正方形の中に含まれる10個の円の外枠と、を右光学像表示部26Caに表示させる。表示設定部165Caは、マーカー画像IMGを、赤色の線として右光学像表示部26に表示させる。なお、図28では、画像表示部20Caの内の右光学像表示部26Ca以外の部分の図示を省略し、以降の図面でも省略する。
右光学像表示部26Caにマーカー画像IMGが表示されると、パラメーター設定部167Caは、マーカー画像IMGと実物マーカーMK2とが一致して視認されるように、HMD100Caを装着したまま使用者USに位置と姿勢を合わせることを促す(図27のステップSC210)。
右画像表示部26Caにはさらにメッセージが表示されてもよい。HMD100Caは、使用者USがマーカー画像IMGと実物マーカーMK2とが一致するように視認した場合に、使用者USは、タッチパッドの操作、ボタンの押下、または音声コマンドの発声をするように、指示する。パラメーター設定部167Caがこれら操作または音声コマンドを受け付けた場合に、カメラ60CaがマーカーMK2を撮像、すなわちキャリブレーションデータの収集をする(ステップSC202)。音声コマンドに基づいて、パラメーター設定部167Caがキャリブレーションデータを収集する場合には、使用者USの頭部の動きが少ないことが期待される。そのため、音声コマンドに基づく操作では、タッチ操作やボタンの押下の場合に比べて、使用者USが成立させたアライメントからのずれが少ない状態でのキャリブレーションデータの収集が可能となり、結果として、AR画像の重畳精度のよいHMD100Caが得られる。
図27のステップSC210のマーカー画像IMGと実物マーカーMK2との位置と姿勢を合わせる処理(目視によるアライメント処理)およびキャリブレーションデータの収集が実行されると、表示設定部165Caは、ステップSC201の処理と同じく図28に示すように、右光学像表示部26Caにマーカー画像IMGを表示させる(ステップSC203)。その後、パラメーター設定部167Caは、マーカー画像IMGと実物マーカーMK1とが一致して視認されるように、HMD100Caを装着したまま使用者USに位置と姿勢を合わせることを促す(ステップSC220)。この状態で実物マーカーMK1が撮像されることで、パラメーター設定部167Caは、キャリブレーションデータを収集する(ステップSC204)。ここで、実物マーカーMK1は、実物マーカーMK2よりも大きい。そのため、ステップSC220の処理では、使用者USがマーカー画像IMGと実物マーカーMK1とが一致するように視認する場合には、右光学像表示部26Caと実物マーカーMK1との距離は、実物マーカーMK2の場合と比べて大きくなる。
パラメーター設定部167Caは、左光学像表示部28Caに関して、右光学像表示部26CaにおけるステップSC201からステップSC204までの処理と同じ処理として、図27のステップSC205からステップSC208までの処理を実行する。左右の光学像表示部26Ca、28Caに関して第1設定モードにおける各処理(ステップSC201からステップSC208までの処理)が実行されると、パラメーター設定部167Caは、後述する式(69)を最小化するような、右光学像表示部26Caに関するパラメーター群と、左光学像表示部28Caに関するパラメーター群とを設定できる(ステップSC209)。
C−2−2.パラメーターの設定:
ここでは、第1設定モードにおいて、パラメーター設定部167Caが、カメラ60Caから得られた実物マーカーMK2の撮像データおよび実物マーカーMK1の撮像データを用いて、変換パラメーターおよびカメラパラメーターCPのパラメーターの設定する手順を説明する。なお、本実施形態の第1設定モードでは、カメラパラメーターCPは、必ずしも最適化される必要がなく、設計値に固定されていてよい。ただし、以下に示す本実施形態では、使用者USが必要に応じてカメラパラメーターCPを最適化することができるように、カメラパラメーターCPを最適化変数として含んだアルゴリズムを提示している。他の実施形態において、カメラパラメーターCPを最適化する必要がない場合には、これらを定数(固定値)として以下の式を扱えばよい。
ここでは、第1設定モードにおいて、パラメーター設定部167Caが、カメラ60Caから得られた実物マーカーMK2の撮像データおよび実物マーカーMK1の撮像データを用いて、変換パラメーターおよびカメラパラメーターCPのパラメーターの設定する手順を説明する。なお、本実施形態の第1設定モードでは、カメラパラメーターCPは、必ずしも最適化される必要がなく、設計値に固定されていてよい。ただし、以下に示す本実施形態では、使用者USが必要に応じてカメラパラメーターCPを最適化することができるように、カメラパラメーターCPを最適化変数として含んだアルゴリズムを提示している。他の実施形態において、カメラパラメーターCPを最適化する必要がない場合には、これらを定数(固定値)として以下の式を扱えばよい。
C−2−2−1.カメラパラメーターについて:
カメラ60Caに関するカメラパラメーターCPとして、本実施形態では、4個のカメラパラメーターCP(fx、fy、Cx、Cy)が利用される。(fx、fy)は撮像部であるカメラ60の焦点距離であり、画素密度に基づいて画素数に換算されている。(Cx、Cy)は、カメラ主点位置と呼ばれ、撮像画像の中心位置を意味し、たとえばカメラ60Caのイメージセンサーに固定された2D座標系で表わされ得る。
カメラ60Caに関するカメラパラメーターCPとして、本実施形態では、4個のカメラパラメーターCP(fx、fy、Cx、Cy)が利用される。(fx、fy)は撮像部であるカメラ60の焦点距離であり、画素密度に基づいて画素数に換算されている。(Cx、Cy)は、カメラ主点位置と呼ばれ、撮像画像の中心位置を意味し、たとえばカメラ60Caのイメージセンサーに固定された2D座標系で表わされ得る。
カメラパラメーターCPは、撮像部の主要部分を構成するカメラ60Caの製品仕様から知ることができる(以下ではこれをデフォルトカメラパラメーターとも表記する)。ただし、実際のカメラのカメラパラメーターCPがデフォルトカメラパラメーターから大きくずれていることが多い。しかも、同じ仕様のカメラであっても、製品が異なれば、製品ごとのカメラ間で、カメラパラメーターCPがばらついている(揃っていない)ことがある。
AR画像として光学像表示部26Ca,28Caに表示されるARモデルにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、カメラ60Caは、当該実物体の位置および姿勢を検出する検出機として機能する。このとき、パラメーター設定部167Caは、カメラパラメーターCPを用いて、カメラ60Caに撮像された実物体のカメラ60Caに対する位置および姿勢を推定する。さらに、パラメーター設定部167Caは、当該位置および姿勢を、カメラ60Caと左光学像表示部28Ca(右光学像表示部26Ca)との間の相対位置関係を用いて、左光学像表示部28Caに対する実物体の位置および姿勢に変換する。さらに、パラメーター設定部167Caは、当該変換された位置および姿勢に基づいて、ARモデルの位置および姿勢を決定する。そして、画像処理部160Caは、当該位置および姿勢を有するARモデルを、写像パラメーターを用いて表示領域に写像(変換)し、表示バッファ(例えばRAM122Ca)に書き込む。そして、表示制御部190Caは、表示バッファに書き込まれたARモデルを左光学像表示部28Caに表示する。このため、カメラパラメーターCPがデフォルトカメラパラメーターである場合には、推定される実物体の位置および姿勢に誤差が含まれることとなる。そうすると、推定された位置および姿勢の誤差に由来して、表示されたARモデルと実物体との重畳に誤差があるように使用者に視認される。
そこで、本実施形態では、ARモデルが対象物に重畳して使用者USに視認されるようにするためのキャリブレーションの際に、パラメーター設定部167Caは、カメラパラメーターCPを、実物マーカーMK2および実物マーカーMK1の撮像データを用いて、最適化して設定する。そして、設定されたカメラパラメーターCPが用いられて、対象物の位置および姿勢が検出(推定)されるようにする。そうすれば、ARモデルの表示において、表示されるARモデルと実物体との間に発生するずれが使用者USに視認される度合いが低くなる。後述するように、同じHMD100Caの使用者USが同一人であっても、カメラパラメーターCPの設定は、キャリブレーションが行なわれるごとに行なわれ、当該キャリブレーションに引き続いて行なわれる対象物とARモデルとの間での位置、大きさ、向きの少なくとも一つが一致した表示のために使用されることが好ましい。これは、キャリブレーションの際に、必ずしも使用者は、実物マーカーMK2または実物マーカーMK1と、実物マーカーMK2または実物マーカーMK1に対応したマーカー画像IMGとを、同じ精度で位置および姿勢を合わせるとは限らないことによる。たとえ使用者USが違う精度で位置および姿勢を合わせたとしても、それに応じたカメラパラメーターCPが設定されることから、実物体に対するARモデルの重畳表示がされる場合に重畳表示のずれの増大が抑制される。
C−2−2−2.変換パラメーターについて:
また、本実施形態のHMD100Caは、カメラ60Caと光学像表示部26Ca,28Caとの間の相対位置関係が変化する構造を有する。デフォルトカメラパラメーターについての説明からも理解されるように、ARモデルにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、実際のカメラ60Caと光学像表示部26Ca,28Caとの間の相対位置関係とは異なる相対位置関係に基づいてARモデルを表示すると、表示されたARモデルと実物体との重畳に誤差が視認される。
また、本実施形態のHMD100Caは、カメラ60Caと光学像表示部26Ca,28Caとの間の相対位置関係が変化する構造を有する。デフォルトカメラパラメーターについての説明からも理解されるように、ARモデルにおける位置、大きさ、姿勢の少なくとも一つが実物体にアライン(重畳)するように使用者に視認させる場合、実際のカメラ60Caと光学像表示部26Ca,28Caとの間の相対位置関係とは異なる相対位置関係に基づいてARモデルを表示すると、表示されたARモデルと実物体との重畳に誤差が視認される。
そこで、本実施形態では、ARモデルが対象物に重畳して使用者に視認されるようにするためのキャリブレーションの際に、カメラ60Caの座標系と、右光学像表示部26Caの座標系および左光学像表示部28Caの座標系と、の間の相対位置関係(回転および並進の少なくとも一つ)を表す変換パラメーターを調整または設定する。そして、設定された当該変換パラメーターが表す空間関係(相対位置関係)を用いてARモデルの表示をすると、使用者USにずれが視認される度合いが低くなる。
本実施形態では、パラメーター設定部167Caは、右光学像表示部26Caと左光学像表示部28Caとのそれぞれに対応する左変換パラメーターPML[Rcam2left, tcam2left]と、右変換パラメーターPMR[Rcam2lright, tcam2right]とを設定する。回転行列Rcam2rightは、直交する3軸の回転によって決定される3つのパラメーターであり、並進行列Tcam2rightは、3軸に沿った並進のそれぞれに対応する3つのパラメーターである。すなわち、右光学像表示部26Caに対応する右変換パラメーターPMRは、計6つのパラメーターを含んでいる。同じように、左光学像表示部28Caに対応する変換パラメーターは、回転行列Rcam2leftと並進行列Tcam2leftとであり、計6つのパラメーターを含んでいる。以上の通り、本実施形態では、カメラパラメーターCPに含まる4個のパラメーターと、空間関係を表す12個の変換パラメーターとの16個のパラメーターが算出される。
C−2−2−3.パラメーター導出処理:
以下における説明では、使用者USが実物マーカーMK2(または実物マーカーMK1)とマーカー画像IMGとが互いに一致するように視認する状態でカメラ60Caが実物マーカーMK2(または実物マーカーMK1)を撮像し、パラメーター設定部167Caがその撮像画像を取得する。パラメーター設定部167Caは、取得した当該撮像画像に基づいて、後述の式(69)を用いて、カメラパラメーターおよび変換パラメーターを算出する。本実施形態では、設定パラメーターを設定する場合の初期値(i=0)として、HMD100Caが製造される工場から出荷される前の計測値や検査値を用いる。一方で、他の実施形態では、カメラ60Caまたは光学像表示部26Ca,28Caの最大可動した場合の一方の姿勢における値、または、可動域の中間の姿勢における値を初期値として用いてもよい。
以下における説明では、使用者USが実物マーカーMK2(または実物マーカーMK1)とマーカー画像IMGとが互いに一致するように視認する状態でカメラ60Caが実物マーカーMK2(または実物マーカーMK1)を撮像し、パラメーター設定部167Caがその撮像画像を取得する。パラメーター設定部167Caは、取得した当該撮像画像に基づいて、後述の式(69)を用いて、カメラパラメーターおよび変換パラメーターを算出する。本実施形態では、設定パラメーターを設定する場合の初期値(i=0)として、HMD100Caが製造される工場から出荷される前の計測値や検査値を用いる。一方で、他の実施形態では、カメラ60Caまたは光学像表示部26Ca,28Caの最大可動した場合の一方の姿勢における値、または、可動域の中間の姿勢における値を初期値として用いてもよい。
図29は、右光学像表示部26Caのみにマーカー画像IMGが表示された状態での空間的な位置関係を示す概略図である。図29には、使用者USが、予め画像表示部20Caを装着した使用者USの仮想の右眼の位置として設定された右眼位置RPから、右光学像表示部26Caに表示されたマーカー画像IMGを視認した場合の概略が示されている。なお、図29には、HMD100Caの内の画像表示部20Caのみを図示し、装着帯90Caや制御部10Caなどについては図示を省略している。つまり、図29に示す画像表示部20Caは、図18ないし図20に示す画像表示部20Caと同じ画像表示部である。また、図29には、撮像される三次元空間である外景の座標軸を表す座標軸CD2と、座標軸CD2を投影した二次元画像の座標軸を表す座標軸CD1と、が示されている。使用者USは、右光学像表示部26Caに表示されたマーカー画像IMGを、画像表示部20Caから距離L1離れた位置に存在するマーカーMK1として視認する。
図29に示すように、右光学像表示部26Caに表示されたマーカー画像IMGと、外景に含まれ前方に位置する実物マーカーMK1と、が位置、大きさ、向きが一致するように使用者が視認するとき(以下、使用者USが左眼LE(右眼RE)でアライメントを成立させるときともいう)、座標系の間には、次の式(55)の関係が成り立つ。なお、以降では、右光学像表示部26Caではなく、左光学像表示部28Caにマーカー画像IMGが表示された場合について説明する。
ここで、左辺および右辺のCPは、カメラ60CaのカメラパラメーターCPである。[Ro2dl, to2dl]は、実オブジェクト(この場合、実物マーカーMK2または実物マーカーMK1)に固定された座標系から左光学像表示部28Caに固定された座標系への変換行列であり、このうち、[Ro2dl]が回転を表す3×3の行列であり、[to2dl]が並進を表す3×1の行列である。[Ro2dl, to2dl]は、左光学像表示部28Caに対する実オブジェクトの位置および姿勢を表している。ModelMatrixは、モデルマーカー上の任意の1点を表す3×1の行列である。モデルマーカーは、マーカー画像IMGが光学像表示部28Caに表示される場合の基礎となる3次元データ(3次元モデル:ただし本実施形態では平面)である。[Ro2dl, to2dl]×ModelMatrixの表記は、下記の式(56)の規則に従っている。
上記式(56)の表記規則は、式(55)の他の部分にも適用される。
式(55)の右辺における[Rcam2left, tcam2left]は、カメラ60Caの座標系から左光学像表示部28Caの座標系への変換行列である。当該変換行列は、パラメーター設定部167Caによって設定される複数の変換パラメーターで構成される。式(55)の右辺における[Robj2cam, tobj2cam]は、実オブジェクト(実物マーカーMK2または実物マーカーMK1)の座標系からカメラ60Caの座標系への変換行列である。[Robj2cam, tobj2cam]は、カメラ60Caに対する実オブジェクトの位置および姿勢を表している。
左眼LEのアライメントが成立すると仮定したとき、実物マーカーMK2または実物マーカーMK1のカメラ60Caに対する姿勢をモデルマーカーに適用すると、カメラ60Caの座標系に変換されたモデルマーカー上の任意の点は次の式(59)のPcl(Xcl, Ycl, Zcl)のようになる。
Ro2dlおよびto2dlは、実物マーカーMK2または実物マーカーMK1の座標系から左光学像表示部28Caの座標系への回転および並進である。本実施形態では、使用者USが左光学像表示部28Caに表示されたマーカー画像IMGを実物マーカーMK2または実物マーカーMK1に位置合わせしたときに、Ro2dlおよびto2dlが所定の回転および並進となるように、マーカー画像IMGが左光学像表示部28Ca上の所定位置(例えば中央)に所定の配向かつ所定の大きさで、固定されて表示される。Tcam2leftは、カメラの座標系から左光学像表示部28Caの座標系への並進である。
上記式(61)および(62)における要素は本実施形態では定数(aは図29のL1)である。式(63)における要素D1, D2, D3は本実施形態では初期値であり、パラメーター導出処理の間に変化し得る。なお、図29からわかるように、本実施形態では、画像表示部20Caに固定された座標系では、光学像表示部26Ca,28Ca(画像表示部20Ca)から使用者USの眼へと射出される光の方向がZ軸方向と平行である。
式(59)で表されるモデルマーカーをカメラ60Caの撮像画像上に写像するとき、撮像画像上のモデルマーカーの座標は、次のようになる。
ここで、(Fx, Fy)はカメラ60Caの焦点距離であり、(Cx, Cy)はカメラ60Caの主点位置座標である。
カメラ60Caが実際に実物マーカーMK2または実物マーカーMK1を撮像した場合の撮像画像におけるマーカーの特徴要素の座標を(ul, vl)と表記すると、(ul, vl)と(ximl, yiml)との差は以下のようになる。
式(66)における添え字iは、マーカーにおける特徴要素を示す整数であり、1から9までの値を取る。パラメーター設定部167Caは、左眼LEのアライメントについて、式(67)で表される二乗和を導出する。
本実施形態では、カメラ60CaのカメラパラメーターCPと、カメラ60Caの座標系から左光学像表示部28Caの座標系への回転(Rcam2left)および並進(Tcam2left)を表す変換パラメーターと、カメラ60Caの座標系から右光学像表示部26Caの座標系への回転(Rcam2right)および並進(Tcam2right)を表す変換パラメーターと、が最適化により設定される。
式(69)で表わされるコスト関数Eを最小化する繰り返し計算に用いられるヤコビ行列は、式(70)のようになる。
ここで、式(70)の右辺における変数xmliおよびymliはそれぞれ式(64)および(65)によって表され、さらに式(64)および(65)におけるxclおよびyclは式(60)によって表される。また、式(60)の右辺における変数pは、カメラ60CaのカメラパラメーターCPに含まれるFx,Fy,Cx,Cyと、カメラ60Caと光学像表示部26Ca,28Caとの間の空間関係を表す回転Rcam2left、Rcam2rightを構成する6つのオイラー角と、並進Tcam2left、 Tcam2rightを構成する6つの並進成分と、である。パラメーター設定部167Caは、式(60)のヤコビ行列と、変数pの微小変化量と、に基づいて、式(59)のグローバルミニマムを探索することができる。グローバルミニマムに対応する変数pによって、カメラパラメーターCPおよび変換パラメーターが求められる。
カメラパラメーターCPおよび変換パラメーターが設定されると、図26に示すキャリブレーション実行処理におけるステップSC15の処理として、設定された変換パラメーターおよびカメラパラメーターCPを、使用者USに画像を用いて確認させる目的で、表示設定部165Caは設定画像SIMを光学像表示部26Ca,28Caに表示させる。カメラ60Caの撮像範囲に特定オブジェクト(この例では実物マーカーMK1)が含まれる場合に、CPU140Caは、設定されたカメラパラメーターCPを用いてカメラ60Caに対する特定オブジェクトの位置および姿勢を導出する。また、CPU140は、設定された変換パラメーターを用いて、カメラ60Caに対する特定オブジェクトの位置および姿勢を、光学像表示部26Ca、28Caに対する特定オブジェクトの位置および姿勢に変換する。そして、表示設定部165Caは、当該変換された位置および姿勢をARモデルに与えてから、当該ARモデルを写像し、そして、ARモデルを設定画像SIMとして光学像表示部26Ca,28Caに表示させる。この例では、使用者USに、設定画像SIMの位置および姿勢が特定オブジェクトの位置および姿勢に一致し、かつ特定オブジェクトの動きに追跡するように設定画像SIMを視認させることができれば、変換パラメーターとカメラパラメーターCPの設定は十分である。実物マーカー、またはそれに対応したARモデルの内部座標をXと定義すると、変換パラメーターが用いられ、左光学像表示部28Caにおける表示画像の位置(u,v)は、式(71)のように表される。
ここで、[Robj2cam, Tobj2am]は実物マーカーMK2または実物マーカーMK1とカメラ60Caとの間の空間関係を表すパラメーター(回転行列および並進行列)であり、これらは、カメラ60Caが撮像した実物マーカーMK2または実物マーカーMK1の撮像画像に、例えばホモグラフィーを適用することによってパラメーター設定部167Caによって算出される。マーカー特定部166Caが、実物マーカーMK2および実物マーカーMK1以外の特定オブジェクトを検出する場合には、パラメーター設定部167Caは、他の方法で特定オブジェクトとカメラ60Caとの間の空間関係を設定する。なお、右光学像表示部26Caについても、式(71)と同様な関係式により、表示画像の位置(u,v)が導出される。式(71)に示す通り、実物マーカーMK2または実物マーカーMK1とカメラ60Caとの間の空間関係、およびカメラ60Caと光学像表示部26Ca、左光学像表示部28Caとの間の空間関係に少なくとも基づいて定まる位置(u,v)に、表示設定部165Caは、AR画像としてのARモデルを表示させる。当該ARモデル(この場合、設定画像SIM)の位置、大きさおよび配向の少なくとも一つが、特定オブジェクトの位置、大きさ、配向の少なくとも一つに一致するように、表示設定部165Caは、使用者USに視認させることができる。なお、式(71)における右辺のRPは、ピンホールカメラモデルと同様な写像モデルを用いた場合に決定される写像パラメーター(またはレンダリングパラメーターとも呼ぶ)であり、本実施形態では下記の式(72)のように表される。
ここで、式(72)におけるFx, FyはHMD100Caにおけるプロジェクターの画素数に換算された焦点距離であり、Wは水平方向の左光学像表示部28Caの画素数(解像度)であり、Hは垂直方向の左光学像表示部28Caの画素数(解像度)であり、CxおよびCyは、表示画像の中心位置である。写像パラメーターの上2行がu, vの導出に寄与する。fおよびnは、0と1の間で規格化された奥行を有する規格化デバイス座標との対応関係を決める係数である。すなわち、これらは、レンダリングバッファに(デプスバッファ)おいて奥行を調整するための係数であるが、表示画像の位置(u,v)の導出に直接関与しない。
ここで、特定オブジェクトまたはARモデルXがカメラ60で撮像されたとすると、特定オブジェクトまたはARモデルX上の点と撮像画像上の対応点との間には、式(73)が成り立つ。
式(73)の右辺における(R,T)は、カメラ60Caに対する特定オブジェクトの位置および姿勢を表す変換行列であり、カメラ座標系で表わされている。当該変換行列の左は、カメラパラメーターCPである。式(73)に模式的に表されるように、実空間または3次元座標系における点と撮像画像上の点との対応関係に基づいて(R,T)が推定されるから、実オブジェクトの正確な位置および姿勢の推定には、カメラパラメーターCPが適切であることが好ましい。
3次元におけるARモデルの同じ座標点は、画像処理部160Caにおけるディスプレイバッファにレンダリングされるため、その規格化デバイス座標(NDC)は、式(72)を用いて、式(74)のように表される。
式(74)は同時座標表現で表わされている。式(74)の右辺のXは、モデルマーカーまたはARモデルの内部座標であり、モデルに固定された座標系で表わされている。式(74)におけるXの左の(R,T)は、カメラ座標系で表わされた特定オブジェクトの位置と姿勢とであり、式(73)における(R,T)と同じ位置と姿勢とを表す。式(73)における(R,T)の左の0,1、−1を要素とする4×4の行列は、座標軸の向きを変換するための変換行列であり、本実施形態ではカメラ座標系と表示部座標系との間での座標軸の正方向の定義が異なることから、便宜上、設けられている。式(73)における座標軸の向きを変換する変換行列の左の(I,d)は、カメラ60Caと光学像表示部26Ca(28Ca)との間の空間関係を表しており、光学像表示部26Ca(28Ca)の座標系で表わされた回転Iと並進dからなる4×4の変換行列である。式(74)で表される座標点は、光学像表示部26Ca(28)の画像面において式(75)の(u’, v’)で表される位置である。
ここで、R1,R2,R3のそれぞれは、(R,T)に含まれる回転行列における対応する行ベクトルを表し、Tx,Ty,Tzは、(R,T)に含まれる並進ベクトルの対応する要素を表す。なお、(R,T)は、4×4の行列の形態を有する。
本実施形態では、キャリブレーションがうまく実施されていれば、HMD100を装着している使用者USは、光学像表示部26Ca、28Caに表示された設定画像SIMの位置、大きさ、向き、奥行感が、撮像された特定オブジェクト(この例では実物マーカーMK1)の位置、大きさ、向き、奥行感に一致するように、視認する。
図30は、特定オブジェクトに対応付けられて設定画像SIMが表示された場合に使用者USが視認する使用者USの視野の一例の説明図である。図30に示す例では、特定オブジェクトとして実物マーカーMK1が採用されている。キャリブレーションが実行された後に、表示設定部165Caは、パラメーター設定部167Caによって設定された変換パラメーターおよびカメラパラメーターCPを用いて、撮像された実物マーカーMK1の位置および配向(姿勢)に合わせて、設定画像SIMを右左の光学像表示部26Ca,28Caに表示させる。設定画像SIMは、立方体の各辺を形成する画像である。図30に示すように、設定画像SIMの立方体の底面は、実物マーカーMK1と合わさるように表示される。使用者USは、特定オブジェクトとしての実物マーカーMK1と設定画像SIMとの空間関係を視認することで、キャリブレーションの精度を認識できる。使用者USが実物マーカーMK1と設定画像SIMとが互いに一致するように視認しないときに、再度、キャリブレーションを第1設定モードまたは第2設定モードにおいてやり直すことができる。図30に示すように、光学像表示部26Ca、28Caまたは音声処理部170Caは、キャリブレーションが成功しAR表示機能を続行すること(重畳して見えるか)、およびキャリブレーションをやり直すことのいずれかを促す文字画像または音声を使用者に提示してもよい。
C−2−2−4.キャリブレーションデータの自動収集:
まず、キャリブレーションデータの自動収集処理の説明に備えて、光学像表示部26Ca,28Caに固定された座標系の座標軸を、右光学像表示部26Caの場合を例にとって説明する。本実施形態では、右光学像表示部26Caの座標系のZ軸は、使用者USがHMD100Caを適切に装着した場合に使用者USが視認する表示領域の法線方向に一致する。このため、Z軸は使用者USの顔面が向いている方向を示し得る。X軸は、Z軸に直交し、かつ右光学像表示部26Caと左光学像表示部28Caとが並ぶ方向にほぼ平行である。このため、X軸は使用者USの左右方向を示し得る。また、Y軸は、Z軸およびX軸の双方に直交する。このため、Y軸は、使用者USの上下方向を示し得る。
まず、キャリブレーションデータの自動収集処理の説明に備えて、光学像表示部26Ca,28Caに固定された座標系の座標軸を、右光学像表示部26Caの場合を例にとって説明する。本実施形態では、右光学像表示部26Caの座標系のZ軸は、使用者USがHMD100Caを適切に装着した場合に使用者USが視認する表示領域の法線方向に一致する。このため、Z軸は使用者USの顔面が向いている方向を示し得る。X軸は、Z軸に直交し、かつ右光学像表示部26Caと左光学像表示部28Caとが並ぶ方向にほぼ平行である。このため、X軸は使用者USの左右方向を示し得る。また、Y軸は、Z軸およびX軸の双方に直交する。このため、Y軸は、使用者USの上下方向を示し得る。
上記で説明した第1設定モードにおいて、使用者USは、マーカー画像IMGと実物マーカーMK1,MK2との目視によるアライメントを成立させたことを、タッチパッドの操作、ボタンの押下、または音声コマンドの発声により、パラメーター設定部167Caに伝えている。そして、パラメーター設定部167Caがこれら操作または音声コマンドを受け付けた場合に、カメラ60CaがマーカーMK1,MK2を撮像し、すなわちキャリブレーションデータの収集をする。すなわち、HMD100Caは、キャリブレーションデータの収集のトリガーとして、使用者USによる操作または発声を利用している。しかしながら、以下で説明するように、HMD100Caは、このような構成に代えて、自動的にキャリブレーションデータを収集する構成を備えてもよい。
図31は、実施形態に係るキャリブレーションデータの自動収集処理のフローである。この処理では、初めに、マーカー特定部166Caが撮像を開始し、そして、光学像表示部26Ca,28Caの一つ(以下では、右光学像表示部26Ca)がマーカー画像IMGを表示し始める(ステップSC211)。マーカー特定部166Caは、カメラ60Caが撮像した各撮像フレームに対して、2値化を実行して、実物マーカーMK2を抽出する。マーカー特定部166Caは、撮像範囲の中に、実物マーカーMK2があるか否かを判定する(ステップSC212)。マーカー特定部166Caは、撮像範囲の中に実物マーカーMK2がないと判定した場合には(ステップSC212:NO)、引き続き、撮像範囲の中から実物マーカーMK2の検出を監視する。
ステップS212の処理において、マーカー特定部166Caは、撮像範囲の中に、実物マーカーMK2があると判定した場合には(ステップSC212:YES)、カメラ60Caに対する実物マーカーMK2の位置と姿勢を導出し、それらの追跡を開始する(ステップSC212A)。
導出された実物マーカーMK2の位置および姿勢は、カメラ座標系で表わされている。つまり、その位置および姿勢は、カメラ60Caに対する位置および姿勢である。そこで、カメラ60Caと右光学像表示部26Caとの間のデフォルトの空間関係を利用して、カメラ60Caに対する実物マーカーMK2の位置および姿勢を、右光学像表示部26Caの座標系で表わされた近似的、すなわち暫定的な位置および姿勢に変換する。「デフォルトの空間関係」とは、例えば、カメラ60Caと右光学像表示部26Caとの間の相対可動範囲の両端間に存在する一つの空間関係である。位置および姿勢、すなわち回転および並進、を表す4×4の変換行列Tは、式(75A)のように表される。
ここで、左辺の「T (marker to display)」は右光学像表示部26Caに対する実物マーカーMK2の近似的な位置および姿勢であり、右辺の「T (camera to display)」は、カメラ60Caの座標系から右光学像表示部26の座標系へのデフォルトの変換行列であり、「Tracking pose」はカメラ60Caに対する実物マーカーMK2の位置および姿勢である。
モデルマーカーと実物マーカーMK2との間で、光学像表示部26Caの座標系におけるX軸およびY軸の回りの回転差が所定値未満か否かは、以下の式(75B)および式(75C)のように判定され得る。
ここで、「Ax」、「Ay」はそれぞれX軸、Y軸回りのモデルマーカーの回転角であり、「approximated Ax」、「approximated Ay」は、それぞれX軸、Y軸回りの実物マーカーMK2の近似的な回転角であり、いずれも度単位で表わされたオイラー角である。「abs」は値の絶対値を取ることを意味する。なお、上述の通り、モデルマーカーとは、3次元座標で表わされたモデルであり、2Dへ写像されてマーカー画像IMGとして表示されるものである。
次に、右光学像表示部26Caの座標系において、実物マーカーMK2のX軸、Y軸に沿った近似的な並進(Tx’, Ty’)が、モデルマーカーの並進(tx、ty)に近いか否かが、以下の式(75D)および式(75E)の関係式を用いて判定され得る。
以下の説明においては、上記回転角の差を集合的に「回転差A」、上記並進の差を集合的に「並進差D」と表す。
図31のフローの説明に戻ると、マーカー特定部166Caは、回転差Aがその閾値(threshold)以上で、かつ並進差Dがその閾値以上か否かを判定する(ステップSC213A)。回転差Aも並進差Dもそれぞれの閾値以上であると判定された場合には(ステップSC213A:Yes)、表示設定部165Caは、マーカー画像の色を赤色に変え、右光学像表示部26Caに位置合わせ(アライメント)を促す文字画像を表示させる(ステップSC214A)。ステップSC213Aの判定が「否」の場合には(ステップSC213A:No)、マーカー特定部166Caは、回転差Aが閾値未満で、かつ並進差Dが閾値以上であるか否かを判定する(ステップSC213B)。回転差Aが閾値未満で、かつ並進差Dが閾値以上であると判定された場合には(ステップSC213B:Yes)、表示設定部165Caは、マーカー画像の色を黄色に変え、右光学像表示部26Caに位置合わせ(アライメント)を促す文字画像を表示させる(ステップSC214B)。ステップSC213Bの判定が「否」の場合には(ステップSC213B:No)、マーカー特定部166Caは、回転差Aが閾値未満で、かつ並進差Dが閾値未満であるか否かを判定する(ステップSC213C)。回転差Aも並進差Dもそれぞれの閾値未満であると判定された場合には(ステップSC213C:Yes)、表示設定部165Caは、マーカー画像の色を緑色に変える(ステップSC214C)。ステップSC213Cの判定が「否」の場合には(ステップSC213C:No)、次に実行される処理はステップSC213Aの判定に戻る。ステップSC214Cの後で、マーカー特定部166Caは、回転差Aも並進差Dもそれぞれの閾値未満の状態と、使用者USの頭部が安定した状態とが、例えば2秒以上継続したか否かを判定する(ステップSC215A)。ステップSC215Aの判定が肯定的であると判定された場合には、パラメーター設定部167Caは、所定時間期間の計時または逆算計時を開始する。パラメーター設定部167Caが開始する逆算計時を、これをカウントダウン処理と呼ぶ。本実施形態の所定時間期間は1秒である。表示設定部165Caは、この1秒間を3分割し、時間の経過にしたがって表示または音声出力される「3」、「2」、「1」、「0」のカウントダウン情報を提示する。パラメーター設定部167Caは、「0」が提示されるタイミングで、カメラ60Caによる実物マーカーMK2の撮像画像を、キャリブレーションデータとして取得する。
カウントダウン処理における所定時間期間は1秒に限らない。所定時間期間は、使用者USがマーカー画像IMGと実物マーカーMK2との間の目視によるアライメントを精度の点でより向上させることができる程度に長く、同時に、既に精度よく成立している目視によるアライメントを使用者USが維持することができる程度に短いことが好ましい。この点で「1秒」は経験的に好適な長さである。
頭部が安定な状態にあるか否か、または実質的に静止しているか否かは、パラメーター設定部167Caが、カメラ60Caの撮像画像における実物マーカーMK2の特徴点の位置、HMD100Caに搭載されたIMUの出力、およびこれらの組み合わせから、判定することができる。
図32は、他の実施形態に係るキャリブレーションデータの自動収集処理を説明するフローである。
図32のフローは、ステップSC212とステップSC216との間の部分が、図31のフローのそれとは異なっていて、その他の部分は図31のフローと実質的に同じである。したがって、以下では、異なっている部分のみ説明する。
図32に示すフローでは、ステップSC212Aの後で、パラメーター設定部167Caは、カメラ60Caの撮像範囲に実物マーカーMK2が存在している状態であり、かつ、使用者USの頭部が所定期間、例えば2秒、に亘って安定的な状態か否かを判定する(ステップSC215B)。パラメーター設定部167Caがカメラ60Caの撮像範囲に実物マーカーが存在する状態であり、かつ、使用者USの頭部が2秒間に亘って安定的な状態であると判定した場合には(ステップSC215B:Yes)、処理はステップSC216へ移行する。ステップSC215Bの判定が「否」である場合には、この判定が満足されるまで、パラメーター設定部167Caは、撮像画像と使用者USの頭部の動きとを継続的に監視する。
図33は、他の実施形態に係るキャリブレーションデータの自動収集処理を説明するフローである。
図33のフローは、図31のフローと比較して、ステップSC216とステップSC217との間に、判定ステップSC218とステップSC219が加えられている点で、図31のフローとは異なっていて、その他の部分は図31のフローと実質的に同じである。したがって、以下では、異なっている部分のみ説明する。
図31の処理では、カウントダウン処理が開始されると(ステップSC216)、使用者USが姿勢を大きく変えた結果、もはや目視によるアライメントが成立していない場合であっても、所定時間期間の経過時にキャリブレーションデータが収集される。この場合、正確なキャリブレーションデータを収集することができない。本実施形態では、カウントダウン処理における所定時間期間内に使用者USの頭部が閾値以上の動きを示した場合に、カウントダウン処理を中止して、キャリブレーションデータの収集処理を再度やり直すことができる。具体的には、パラメーター設定部167Caは、ステップSC216のカウントダウン処理を開始された後に、所定時間期間(カウントダウン期間)が経過したか否かを判定する(ステップSC218)。パラメーター設定部167CaがステップSC218の判定が「否」と判定した場合には(ステップSC218:No)、IMUが出力する角速度または加速度に基づいて、使用者USの頭部が閾値以上の大きさの動きをしたか否かを判定する(ステップSC219)。パラメーター設定部167Caは、ステップSC219の判定が「否」と判定した場合には、ステップSC218の処理において、所定時間期間が経過した時点で(ステップSC281:Yes)、キャリブレーションデータを収集する(ステップSC217)。ステップSC219において、パラメーター設定部167Caが使用者USの頭部が閾値以上の大きさの動きがあったと判定した場合には、ステップSC213A以降の処理が実行される。
上述したように、パラメーター群を調整する際には、HMD100Caに表示されたマーカー画像IMGと実物マーカーMK2とが一致するように使用者USに視認させた(アライメントを成立させた)状態で、キャリブレーションデータを収集することが好ましい。使用者USがマーカー画像IMGと実物マーカーMK2とを精度よく一致して視認しているか否かは、パラメーター群を導出するキャリブレーションの精度に影響を与える。
ただし、せっかくユーザーが、マーカー画像と実物マーカーとが精度よく一致するよう視認していても、データ収集の指示またはトリガーのためにコントローラー10Caにタッチすると、その動作でアライメントがずれ、ずれたアライメントの状態でキャリブレーションデータが収集(実物マーカーが撮像)されることとなる。音声コマンドの場合にも、発声動作または発音動作により、アライメントがずれる可能性は皆無でない。このようなずれたアライメントの状態で得られたパラメーター群を使うと、AR画像の重畳表示が精度よく行われない。
図31、図32、図33を参照して説明したキャリブレーションデータの自動収集処理は、ユーザーがタッチや音声コマンドを必ずしも与えなくても、使用者がマーカー画像と実物マーカーとを一致して視認していることをHMD100Caが判定できる仕組みを提供することができる。そして、その判定をトリガーとしてキャリブレーションデータを収集できることから、精度のよいパラメーター群が得られ、結果として、AR画像の重畳表示の精度のよいHMD100Caが得られる。なお、本実施形態では、2つの回転角の差に基づいて、「回転差A」が閾値未満か否かが判定されるが、1つの軸の回りの回転角の差、または3つの軸の回りの回転角の差に基づいて、「回転差A」が閾値未満か否かが判定されてもよい。「並進差D」についても同様である。
C−2−3.第2設定モード:
第2設定モードでは、パラメーター設定部167Caが、第1設定モードにおいて実行したキャリブレーションの結果に対して、使用者USの操作を受け付けることで、さらに、キャリブレーションの結果を補正する。換言すると、パラメーター設定部167Caは、受け付けた操作に基づいて、特定オブジェクトに対応付けられて表示されるAR画像(ARモデル)の位置、大きさ、奥行感を補正する。
第2設定モードでは、パラメーター設定部167Caが、第1設定モードにおいて実行したキャリブレーションの結果に対して、使用者USの操作を受け付けることで、さらに、キャリブレーションの結果を補正する。換言すると、パラメーター設定部167Caは、受け付けた操作に基づいて、特定オブジェクトに対応付けられて表示されるAR画像(ARモデル)の位置、大きさ、奥行感を補正する。
図34は、第2設定モードに移行したときに使用者USが視認する視野VRの一例の説明図である。図34では、使用者USが、透過した外景に含まれる特定オブジェクトとしての実物マーカーMK1と、実物マーカーMK1に対応付けられて光学像表示部26Ca,28Caに表示される設定画像SIMと、第2設定モードのときに光学像表示部26Ca,28Caに表示される8個のアイコンおよびカーソル画像CSと、が示されている。8個のアイコンは、制御部10Caの操作部135Caが受け付けた操作によって、第2設定モードにおける設定モードを変更するためのアイコンである。図34に示す例では、使用者から見て、外景の実物マーカーMK1の位置と、表示された設定画像SIMの立方体の底面の位置と、が重なっていない。換言すると、キャリブレーションの精度がよくない。このような場合に、本実施形態では、第2設定モードにおいて、使用者USは、操作部135Caを操作することで、実物マーカーMK1と設定画像SIMとのキャリブレーションの結果を補正できる。
操作部135Caのトラックパッドが所定の操作を受け付けると、パラメーター設定部167Caは、光学像表示部26Ca,28Caに表示させたカーソル画像CSの位置を移動させる。カーソル画像CSが8個のアイコンの内のいずれかに重なっている状態で、操作部135Caの決定ボタンが押下されると、パラメーター設定部167Caは、カーソル画像CSが重なっていたアイコンと対応付けられている設定モードへと移行する。
アイコンIC1は、選択されると、設定画像SIMの画像を拡大または縮小を実行するモードへと移行するためのアイコンである。アイコンIC1のモードでは、操作部135Caが所定の操作を受け付けることで、パラメーター設定部167Caは、上述したカメラパラメーターCPおよび写像パラメーターの一方または双方を補正して、光学像表示部26Ca,28Caに表示された設定画像SIMの大きさを変更する。本実施形態では、パラメーター設定部167Caは、カメラパラメーターCPにおける焦点距離Fx,Fy,および写像パラメーターにおける焦点距離Fx,Fyの一方または両方を補正して、設定画像SIMの大きさを調整する。使用者USは、アイコンIC1を選択することで、実物マーカーMK1の大きさに合わせるように設定画像SIMの大きさを変更できる。
アイコンIC2は、選択されると、設定画像SIMの表示位置を上下に移動させるモードへと移行するためのアイコンである。アイコンIC2のモードでは、操作部135Caが所定の操作を受け付けることで、パラメーター設定部167Caは、光学像表示部26,28のそれぞれの変換パラメーターを補正して、光学像表示部26Ca,28Caが設定画像SIMを表示可能な範囲で上下に移動させる。本実施形態では、パラメーター設定部が変換パラメーターのうち、X軸回りの回転を表すパラメーターRxを調整して、設定画像SIMを上下(すなわちY軸方向)に移動させる。なお、変換パラメーターの表示において、XおよびYは光学像表示部26Ca,28Caに固定された座標系のX軸およびY軸をそれぞれ表し、さらに上述の通り、X軸はHMD100Caを装着した場合に使用者USの左右方向を表し、Y軸はその上下方向を表し得る。
アイコンIC3は、選択されると、設定画像SIMの表示位置を左右に移動させるモードへと移行するためのアイコンである。アイコンIC3のモードでは、操作部135Caが所定の操作を受け付けることで、パラメーター設定部167Caが光学像表示部26Ca、28Caのそれぞれの変換パラメーターを補正して、光学像表示部26Ca,28Caが設定画像SIMを表示可能な範囲で左右に移動させる。本実施形態では、パラメーター設定部167Caが変換パラメーターのうち、Y軸回りの回転を表すパラメーターRyを調整して、設定画像SIMを左右(すなわちX軸方向)に移動させる。使用者USは、アイコンIC2およびアイコンIC3を選択することで、実物マーカーMK1に対して、設定画像SIMの位置を合わせるように設定画像SIMの表示位置を変更できる。
アイコンIC4は、選択されると、使用者USに視認させる設定画像SIMの奥行感を調整するためのアイコンである。アイコンIC4のモードでは、操作部135Caが所定の操作を受け付けることで、パラメーター設定部167Caは、光学像表示部26Ca、28Caのそれぞれの写像パラメーターおける表示主点のX成分であるCxを調整して、設定画像SIMの奥行感を変える。奥行感の調整量をΔCxとし、右光学像表示部26Caの表示主点をCx_ritghとし、左光学像表示部28Caの表示主点をCy_leftとすると、奥行感の調整後の表示主点は、以下の式(75F)および式(75G)のように表される。
写像パラメーターの表示において、Xは光学像表示部26Ca,28Caに固定された座標系のX軸を表し、上述の通り、この場合のX軸はHMD100Caを装着した場合に使用者USの左右方向を表し得る。式(75F)および式(75G)により、左右の光学像表示部26Ca、28Caに表示される左右の画像領域の中心位置が変わり、これにより、左右の画像領域が互いに近づいたり、離れたりする。この結果、使用者USが両眼で左右の画像領域を観察すると、特定オブジェクトの距離に応じた適切な輻輳角でAR画像(ARオブジェクト)を視認できるようになる。このため、特定オブジェクトとAR画像との間で、奥行感が一致する。
アイコンIC5は、選択されると、今まで実行してきたパラメーター群の補正を、実行前のパラメーター群の値に戻すためのアイコンである。アイコンIC6は、選択されると、今まで実行してきたパラメーター群の補正を、新たなパラメーター群(カメラパラメーターCP、変換パラメーターおよび写像パラメーター)として更新して記憶するためのアイコンである。
アイコンIC7は、選択されると、第2設定モードへと移行する1つ前のモードへと戻るためのアイコンである。換言すると、アイコンIC7が選択されると、表示設定部165Caは、図26のステップSCS13に示す第2設定モードと第1設定モードとのどちらの設定モードへと移行するかの選択画面を光学像表示部26Ca,28Caに表示させる。
アイコンIC8は、選択されると、表示設定部165Caが光学像表示部26Ca,28Caに説明文である「ヘルプ」を表示させるためのアイコンである。「ヘルプ」が表示されると、第2設定モードおよびキャリブレーション実行処理におけるキャリブレーションを実行するための操作についての説明文が光学像表示部26Ca,28Caに表示される。アイコンIC9は、選択されると、第2設定モードを含むキャリブレーション実行処理を終了するためのアイコンである。
図35は、第2設定モードにおいて設定画像SIMの表示位置が変更されたときに使用者USが視認する視野VRの一例を示す説明図である。この例では、設定画像SIMの向き、大きさ、および奥行感は実物マーカーMK1のそれらに既に合っており、上下左右の表示位置だけを調整することでAR画像の重畳精度を向上させる場合を示している。図35では、第2設定モードにおいて、アイコンIC2およびアイコンIC3が選択された後に操作部135Caが所定の操作を受け付けて、設定画像SIMの立方体の底面と、実物マーカーMK1との位置が合わさるように設定画像SIMの表示位置が設定された状態が示されている。具体的な操作としては、初めに、アイコンIC2が選択されて、実物マーカーMK1に対して、設定画像SIMの上下方向の表示位置が合わされた後、アイコンIC3が選択されて、実物マーカーMK1に対して、設定画像SIMの水平方向の表示位置が合わされている。この後、アイコンIC5が選択されると、変換パラメーターが更新されて記憶される。
以上説明したように、第3実施形態のHMD100Caでは、カメラ60Caが特定オブジェクトを含む外景を撮像する。そして、パラメーター設定部167Caはカメラ60Caから、光学像表示部26Ca(28Ca)にマーカー画像IMGとして表示されたモデルマーカーの位置および姿勢と、実物マーカーMK1(MK2)のそれらとがほぼ一致するように使用者USに視認させた状態での特定オブジェクトの撮像画像を取得する。パラメーター設定部167Caは、取得された撮像画像に少なくとも基づいて、パラメーター群を設定する。パラメーター群は、カメラ60CaのカメラパラメーターCP,カメラ60Caと右光学像表示部26Ca,左光学像表示部28Caとの間の空間関係を表す3D−3Dのそれぞれの変換パラメーター、および光学像表示部26Ca,28Ca上に任意の3Dモデルを画像として表示するための3D−2Dの写像パラメーターを含む。HMD100Caは、カメラパラメーターCPを用いて、特定オブジェクトの位置と姿勢を推定する。また、HMD100Caは、変換パラメーターと写像パラメーターとを用いて、特定オブジェクトに関連付けられたARモデルの位置および姿勢と、特定オブジェクトの位置および姿勢とが、互いに対応、好ましくはほぼ一致する状態で当該ARモデルをAR画像として使用者USに視認させるように、光学像表示部26Ca,28CaにそれぞれAR画像を表示する。したがって、第1設定モードによるキャリブレーションによって、特定オブジェクトと、当該特定オブジェクトに関連付けられたARモデル(AR画像)とが互いに対応、好適にはほぼ一致するように使用者USに視認させることが可能なHMD100Caを提供することができる。
また、第3実施形態のHMD100Caでは、パラメーター設定部167Caは、第2設定モードにおいて、操作部135Caが受け付けた操作に応じて、光学像表示部26Ca,28Caに表示される設定画像SIMの位置、大きさ、および奥行感と、実物マーカーMK1(MK2)の位置、大きさ、および奥行感が互いに対応、好適には一致する状態で当該設定画像SIMを使用者USに視認させるように、カメラパラメーターCPと変換パラメーターと写像パラメーターとの少なくとも1つのパラメーターを設定する。そのため、第3実施形態のHMD100Caでは、操作部135Caが所定の操作を受け付けることで、特定オブジェクトとARモデル(AR画像)との位置関係を、使用者USが手動でさらに補正できる。これにより、使用者USは、キャリブレーションを容易に行なうことができ、また、より精度の高いキャリブレーションを実行できる。
また、第3実施形態のHMD100Caでは、パラメーター設定部167Caは、第1設定モードにおいて、カメラ60Caの撮像画像を用いて、カメラパラメーターCPおよび変換パラメーターの少なくとも1つに関するパラメーターを設定する。また、パラメーター設定部167Caは、第2設定モードにおいて、操作部135Caが受け付けた所定の操作に応じて、カメラパラメーターCP、変換パラメーターと、写像パラメーターとの少なくとも1つに関するパラメーターを設定する。そのため、第3実施形態のHMD100Caでは、第1設定モードで設定されたカメラパラメーターCPおよび変換パラメーターに対して、第2設定モードで個別に設定できる。これにより、第1設定モードで調整しきれなかったパラメーターを個別に調整することができ、結果として、特定オブジェクトに、その関連付けられたAR画像を重畳するように表示する際の精度を高めることができる。
また、第3実施形態のHMD100Caでは、カメラ60Caが装着帯90Caに対して向きを変更可能に配置されている。設定画像SIMを表示可能な光学像表示部26Ca,28Caは、装着帯90Caに対して、相対位置を変更可能に配置されている。そのため、カメラ60Caは、光学像表示部26Ca,28Caに対して、位置および向きが変更可能に配置されており(HMD100Caを「カメラ可動型HMD」とも呼ぶ)、カメラ60Caと光学像表示部26Ca,28Caとの位置関係の変化に応じて、キャリブレーションの設定が必要になる。第3実施形態のHMD100Caでは、使用者USは、位置関係の変化に応じて必要とされるキャリブレーションを、第1設定モードと第2設定モードとを実行することで、容易に実行できる。もちろん、カメラと光学像表示部26Ca,28Caとの間の空間関係が固定されたHMD(「カメラ固定型HMD」とも呼ぶ)において、使用者USによるキャリブレーション(第1設定モード)の際に毎回、カメラと光学像表示部との間の空間関係を表す回転と並進をキャリブレーションパラメーターとして可変にし、当該空間関係の最適化を行ってもよい。このようなキャリブレーションは、カメラ固定型HMDにおいても、製造誤差により、各個体に亘る上記空間関係の分散が大きいときに、有益である。
また、第3実施形態のHMD100Caでは、パラメーター設定部167Caが設定したカメラパラメーターCPおよび変換パラメーターに基づいて、表示設定部165Caは、撮像された特定オブジェクトである実物マーカーMK2または実物マーカーMK1に対応付けて設定画像SIMを表示させる。そのため、第3実施形態のHMDでは、使用者USが、実行されたキャリブレーションの結果を視認でき、追加調整を実行する必要があるかを判定できるので、使用者の利便性が向上する。
また、第3実施形態のHMD100Caでは、位置合わせ処理において、マーカー特定部166Caが、マーカー画像IMGと実物マーカーMK2とが所定の位置関係であり、マーカー画像IMGが表示された右光学像表示部26Caと実物マーカーMK2との距離が所定値以下であり、使用者USの頭部が静止している場合に、表示設定部165Caは、カウントダウンを表す文字画像を右光学像表示部26Caに表示させる。カウントダウンが経過した後に、パラメーター設定部167Caは、カメラ60Caに実物マーカーMK2を撮像させて、カメラパラメーターCPおよび変換パラメーターを設定する。そのため、第3実施形態のHMD100Caでは、キャリブレーションの実行に必要な実物マーカーMK2の撮像データを取得するときに、特定のボタンを押したり、音声認識を実行する必要がなく、自動的にカメラ60Caによる撮像が実行される。よって、使用者の操作および音声発生などによる実物マーカーMK2とマーカー画像IMGとの重なり(アライメント)のずれを低減できる。これにより、精度の良いアライメントの撮像データを取得でき、キャリブレーションの精度を向上する。
また、第3実施形態のHMD100Caでは、パラメーター設定部167Caは、所定の位置関係および距離の所定値として、算出したカメラ60Caに対する特定オブジェクトの空間関係と、カメラと光学像表示部26Ca、28Caとの間のデフォルトの空間関係と、を用いて、右光学像表示部26Caまたは左光学像表示部28Caに対する特定オブジェクトの仮想の位置と姿勢を算出する。パラメーター設定部167Caは、特定オブジェクトの上記仮想の位置と姿勢と、マーカー画像IMGとして表示(写像)されているモデルマーカーの光学像表示部26Ca、28Caに対する仮想の位置と姿勢と、を比較することで両位置・姿勢の回転に関するパラメーターのずれおよび並進に関するパラメーターのずれを算出する。これらのずれとしての差に基づいて、表示設定部165Caは、カメラ60Caが外景を撮像するまでのカウントダウンの情報を右光学像表示部26Caまたは左光学像表示部28Caに表示させる。また、表示設定部165Caは、回転に関するパラメーターの差や並進に関するパラメーターの差に応じて、使用者USに、マーカー画像IMGと特定オブジェクトである実物マーカーMK2との位置合わせの処理を促す文字画像を右光学像表示部26Caに表示させる。そのため、第3実施形態のHMD100Caでは、使用者USは、マーカー画像IMGと実物マーカーMK2とのずれを視覚情報として認識でき、容易に精度の高いキャリブレーションを実行できる。
また、第3実施形態のHMD100Caでは、表示設定部165Caは、カメラ60Caが撮像するまでのカウントダウンを表す情報として、特定オブジェクトとしての実物マーカーMK2に対応付けられたマーカー画像IMGの色を変化させた画像を右光学像表示部26Caに表示させる。そのため、第3実施形態のHMD100Caでは、使用者USにカメラ60Caが実物マーカーMK2を撮像するタイミングを視覚情報として認識させることができ、使用者USは感覚的にキャリブレーションを実行できる。
D.第4実施形態:
第4実施形態では、第3実施形態と比較して、キャリブレーションが実行されるときにカメラ60Caが撮像する実物マーカーと、実物マーカーを撮像する第1設定モードの一部とが異なる。そのため、第4実施形態では、第3実施形態と比較してことなる処理について説明し、その他の第3実施形態と同じ処理の説明については省略する。
第4実施形態では、第3実施形態と比較して、キャリブレーションが実行されるときにカメラ60Caが撮像する実物マーカーと、実物マーカーを撮像する第1設定モードの一部とが異なる。そのため、第4実施形態では、第3実施形態と比較してことなる処理について説明し、その他の第3実施形態と同じ処理の説明については省略する。
図36は、第4実施形態における制御部10Cbの裏面を示す正面図である。図36には、制御部10Cbにおける操作部135Caが形成された面を表面と定義した場合の裏面が示されている。図36に示すように、制御部10Cbの裏面には、実物マーカーMK1を小さくした実物マーカーMK3が配置されている。
第4実施形態の第1設定モードでは、第3実施形態の第1モードと同じように、初めに、表示設定部165Caが右光学像表示部26Caにマーカー画像IMGを表示させる(図26のステップSC201)。パラメーター設定部167Caは、マーカー画像IMGと制御部10Cbの裏面に配置された実物マーカーMK3との位置合わせを使用者USに促す(ステップSC210)。実物マーカーMK3とマーカー画像IMGとの位置合わせが実行されると、第3実施形態と異なり、表示設定部165Caは、ステップSC201で右光学像表示部26Caに表示されたマーカー画像IMGと大きさが異なるマーカー画像IMGを右光学像表示部26Caに表示させる(ステップSC202)。パラメーター設定部167Caは、ステップSC201の処理時とは大きさが異なるマーカー画像IMGと実物マーカーMK3との位置合わせを使用者USに促す(ステップSC220)。ここで、大きさが異なる2つのマーカー画像IMGは、本実施形態では光学像表示部26Ca,28Caに対する仮想的な位置(Z軸に沿った距離)が異なる同一のモデルマーカーを写像パラメーターにより2次元に写像することで生成される。第4実施形態のステップSC220の処理では、使用する実物マーカーが一つであっても、大きさが異なる2つのマーカー画像IMGに対してアライメントを成立させようとするから、第3実施形態と同様に、使用者USは、マーカー画像IMGが表示された右光学像表示部26Caと実物マーカーMK3とを、距離を変えてアラインさせる。第1設定モードのステップSC203以降の処理については、右光学像表示部26Caに対する処理と同じであるため、説明を省略する。
第4実施形態のHMD100Cbでは、1つの実物マーカーMK3であっても、第1設定モードにおいて右光学像表示部26Caまたは左光学像表示部28Caに表示されるマーカー画像IMGを変化させることで、精度の高いキャリブレーションを実行できる。
E.第5実施形態:
第5実施形態では、第3実施形態と比較して、キャリブレーションが実行されるときにカメラ60Caが撮像する実物マーカーの形状と、実物マーカーに対応するマーカー画像IMGの形状と、が異なる。そのため、第5実施形態では、第3実施形態に対して異なる実物マーカーの形状および実物マーカーの特定について説明し、その他の構成については説明を省略する。
第5実施形態では、第3実施形態と比較して、キャリブレーションが実行されるときにカメラ60Caが撮像する実物マーカーの形状と、実物マーカーに対応するマーカー画像IMGの形状と、が異なる。そのため、第5実施形態では、第3実施形態に対して異なる実物マーカーの形状および実物マーカーの特定について説明し、その他の構成については説明を省略する。
図37および図38は、第5実施形態の実物マーカーの一例を示す概略図である。図37には、実物マーカーMK4として、階段状に形成された3次元のブロックが示されている。同様に、図38には、実物マーカーMK5として、三角錐を基準として半円筒などのブロックが付加された3次元のブロックが示されている。第5実施形態のマーカー画像記憶部138Ccは、実物マーカーMK4および実物マーカーMK5に対応する3次元モデルのデータを、その特徴点とともに記憶している。そのため、マーカー特定部166Caは、マーカー画像記憶部138Ccに記憶された特徴点と撮像画像における特徴点との対応関係を推定することで、カメラ60Caに対する実物マーカーMK4または実物マーカーMK5の位置と姿勢を推定できる。特徴点の特定方法としては、ステレオカメラによって特定の位置までの距離を特定して、特定した距離を用いたエッジ検出などであってもよく、公知の技術を適用できる。
記憶部には、実物マーカーMK4または実物マーカーMK5の形状と相似な形状を有する3Dモデルマーカーが記憶されている。なお、第3実施形態と同様に、モデルマーカーは、仮想の3次元空間内で定義されている。HMD100Caは、光学像表示部26Ca、28Caに対して所定の位置と姿勢を有するように設定された当該モデルマーカーを上述の写像パラメーターにより写像し、光学像表示部26Ca、28Caにマーカー画像IMGとして表示する。以下は、第3実施形態と同様に、使用者USにマーカー画像IMGと実物マーカーMK4,MK5とのアライメントを成立させる。
以上説明したように、第5実施形態のHMD100Ccでは、2次元モデルよりも特徴点の多い3次元モデルを用いてキャリブレーションが実行されるため、精度の高いキャリブレーションを実行できる。
F.第3実施形態、第4実施形態、および第5実施形態の変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
F−1.変形例1:
第3実施形態ないし第5実施形態では、図18ないし図20に示すように、光学像表示部26Ca,28Caに対するカメラ60Caの位置や向きが変化するHMD100Caについて説明した。光学像表示部26Ca,28Caに対するカメラ60Caの位置が変化しないHMD101Caについても、第3実施形態ないし第5実施形態で説明したキャリブレーションが有効である。なお、以降では、第3実施形態ないし第5実施形態で説明したHMD100Caを、「カメラ可動型HMD」とも呼び、カメラ60Caの位置が固定であるHMD101Caを「カメラ固定型HMD」とも呼ぶ。たとえば、カメラ固定型HMDの場合であっても、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係を表す回転と並進に存在する誤差の分散が、同一仕様のHMDの間で大きい場合には、使用者USがAR画像を表示する前に毎回、上記回転と並進を含む相対関係を調整するようにキャリブレーション処理をしてもよい。
第3実施形態ないし第5実施形態では、図18ないし図20に示すように、光学像表示部26Ca,28Caに対するカメラ60Caの位置や向きが変化するHMD100Caについて説明した。光学像表示部26Ca,28Caに対するカメラ60Caの位置が変化しないHMD101Caについても、第3実施形態ないし第5実施形態で説明したキャリブレーションが有効である。なお、以降では、第3実施形態ないし第5実施形態で説明したHMD100Caを、「カメラ可動型HMD」とも呼び、カメラ60Caの位置が固定であるHMD101Caを「カメラ固定型HMD」とも呼ぶ。たとえば、カメラ固定型HMDの場合であっても、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係を表す回転と並進に存在する誤差の分散が、同一仕様のHMDの間で大きい場合には、使用者USがAR画像を表示する前に毎回、上記回転と並進を含む相対関係を調整するようにキャリブレーション処理をしてもよい。
図39は、第1設定モードで設定するパラメーターに関連する要素を示す表である。第1設定モードで変換パラメーターが設定される場合に、光学像表示部26Ca,28Caから特定オブジェクトまでの距離の選択、いずれのパラメーターを優先的に最適化するかの選択などを設定できる。
図39に示すように、「マーカー画像IMGの表示」として、両眼表示と単眼表示との2つの表示が挙げられる。両眼表示は、右光学像表示部26Caおよび左光学像表示部28Caに同時にマーカー画像IMGを表示させて、使用者USにアライメントを実行させる場合を表す。単眼表示は、右光学像表示部26または左光学像表示部28にマーカー画像IMGを表示させて、使用者USに右光学像表示部26Caと左光学像表示部28Caとを別々にアライメントを実行させる場合を表す。HMD100Caであるカメラ可動型HMDおよびHMD101Caであるカメラ固定型HMDでは、単眼表示を採用している。
「実物マーカー、モデルマーカーの構造」とは、マーカー画像IMGの基となるモデルマーカーおよび実物マーカーMK1,MK2,MK3,MK4として、2次元のオブジェクト(図形など)を用いる「2D」と、3次元のオブジェクトを用いる「3D」とが挙げられる。HMD100Caであるカメラ可動型HMDおよびHMD101Caであるカメラ固定型HMDでは、第3実施形態に示すように、2次元の実物マーカーMK1,MK2、および2次元のモデルマーカーを写像したマーカー画像IMGを採用している。
「モデルマーカー(マーカー画像IMG)の位置と姿勢」は、使用者USがアライメントを実施する際に、光学像表示部26Ca、28Caに表示されるマーカー画像IMGが光学像表示部26Ca、28Caに対して固定で表示されるか、カスタマイズされるかを示している。以下、詳細に説明する。
本実施形態では、3次元で表わされたモデルマーカーを使用し、そして、光学像表示部26Ca、28Caから所定距離だけ離れたところにまっすぐに固定されているかのように当該モデルマーカーをマーカー画像IMGとしてレンダリング(描画)する。光学像表示部26Ca、28Caに対するモデルマーカーの仮想的な位置と姿勢は、既定(固定)である。それは、通常、特定のHMD100Caに対して、以下の条件に基づいて、選択される。
(1)実物マーカーMK1,MK2が、使用者USとカメラ60Caとによって同時に見られる。たとえば、あるHMDに搭載されたカメラは、眼鏡型の構造体の右脚に位置するかもしれない。したがって、アライメントの距離は、近すぎると、撮像画像に含まれないことがある。
(2)多くのARシナリオが生じる位置と姿勢(特に距離)の場所に、上記既定の位置と姿勢を選択する。なぜなら、AR画像の重畳精度(またはキャリブレーション精度)は、アライメントが実施されたところを含む近傍領域で高く、その領域から外れると低下するからである。
(1)実物マーカーMK1,MK2が、使用者USとカメラ60Caとによって同時に見られる。たとえば、あるHMDに搭載されたカメラは、眼鏡型の構造体の右脚に位置するかもしれない。したがって、アライメントの距離は、近すぎると、撮像画像に含まれないことがある。
(2)多くのARシナリオが生じる位置と姿勢(特に距離)の場所に、上記既定の位置と姿勢を選択する。なぜなら、AR画像の重畳精度(またはキャリブレーション精度)は、アライメントが実施されたところを含む近傍領域で高く、その領域から外れると低下するからである。
しかしながら、上述の既定の位置と姿勢、すなわち既定のアライメント姿勢は、他の実施形態においては必ずしも必須ではない。他の実施形態によれば、カメラ60Caに撮像された実物マーカーMK1,MK2(MK4,MK5)の位置と姿勢をトラッキングし続け、トラッキングされた位置・姿勢と、既存またはデフォルトのパラメーター群と、を用いてモデルマーカーを光学像表示部26Ca、28Caにマーカー画像IMGとして表示する。そして、トラッキングされた位置・姿勢に応じてモデルマーカー(マーカー画像IMG)のレンダリング(描画)を更新し、アライメントに最良であると使用者USが認めるマーカー画像IMGの位置・姿勢を使用者USに決定させる。たとえば、使用者USは、実物マーカーMK1,MK2がユニークに見え、かつ既存のパラメーター群(既存のキャリブレーション結果)が明白なエラーを呈する位置と姿勢(視野)を見つけるまで、実物マーカーMK1,MK2の回りを動くことができる。そして、使用者USが指定したその時点で、パラメーター設定部167が、新しいトラッキング姿勢を用いた位置・姿勢の更新を停止する。そうすると、モデルマーカー(マーカー画像IMG)は静止して描かれ、そして、使用者USは、マーカー画像IMGと実物マーカーMK1,MK2とが互いに一致して視認することができるように、自らの位置と姿勢へ、変える。このような方法によっても、使用者USは、アライメントを成立させることができる。
画像処理部160Caは、モデルマーカーの表示に用いられるレンダリングエンジンを有し、そのレンダリングエンジンにおけるOpenGLは、「PVM」の行列積を利用しCGを生成する。ここで、Pは写像パラメーターであり、Vは、光学像表示部26Ca、28Caに対するモデルマーカーの位置と姿勢であり、Mはモデルマーカー(3Dモデル)の内部座標である。使用者USの目視によるアライメントのためにモデルマーカーを写像したマーカー画像をレンダリング(描画)したい場合には、Vは、例えば、第3実施形態のように、[I:0,0,d1]のように既定にし得る。なお、ここで、Iは単位行列であり、光学像表示部26Ca、28Caの座標系で表わされた回転であり、(0,0,d)のdはアライメントの距離であり、光学像表示部26Ca、28Caの座標系で表わされた並進である。
カスタマイズアライメントは、固定されたVの使用に代えて、Vとして既存またはデフォルトのパラメーター群を使用することと、使用者USが実物マーカーMK1,MK2の位置・姿勢のトラッキングを固定した時点での当該トラッキングされた位置・姿勢(以下、トラッキングポーズ)を利用することを意味する。
式(75H)において、Tは、カメラ60Caを介したトラッキングにより得たトラッキング姿勢(カメラ60Caに対する位置と姿勢)を表し、Hは、現行またはデフォルトのカメラとディスプレイとの間の変換行列(空間関係)を表す。
カスタマイズアライメントの利点は、以下のように現れる。
(1)ユーザーの装着具合とARシナリオの距離範囲に依存して、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係が大きく変化するカメラ可動型HMDの場合:あるケースでは、本実施形態のキャリブレーション処理が、対応する既定の距離にある大きさの異なる実物マーカーMK1およびMK2のいずれを用いてもうまく実施し得ない可能性がある。なぜなら、カメラ60が実物マーカーMK1,MK2を見ること(補足すること)ができない場合があるからである。実物マーカーMK1,MK2は、上部または下部において、カメラ60Caの撮像画像から外れ得る。このようなケースでは、使用者USにアライメントの距離を選択するよう促すことが解決策となる。
(2)使用者USが、特定のARシナリオの距離のために、よりよいAR画像の重畳精度を達成することを望む場合、特に、使用者USの関心のある距離が、キャリブレーション範囲内にない場合: 使用者USが大きい距離範囲において精度を求める場合には、ユーザーは、その範囲内においてむしろ複数の距離を選択し、複数回のアライメントを実施することができる。
(3)使用者USが使用者US自身で創作した3Dオブジェクトを実物マーカーとして用いる場合には、使用者USは、アライメント距離を定義(決定)する必要がある。
(1)ユーザーの装着具合とARシナリオの距離範囲に依存して、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係が大きく変化するカメラ可動型HMDの場合:あるケースでは、本実施形態のキャリブレーション処理が、対応する既定の距離にある大きさの異なる実物マーカーMK1およびMK2のいずれを用いてもうまく実施し得ない可能性がある。なぜなら、カメラ60が実物マーカーMK1,MK2を見ること(補足すること)ができない場合があるからである。実物マーカーMK1,MK2は、上部または下部において、カメラ60Caの撮像画像から外れ得る。このようなケースでは、使用者USにアライメントの距離を選択するよう促すことが解決策となる。
(2)使用者USが、特定のARシナリオの距離のために、よりよいAR画像の重畳精度を達成することを望む場合、特に、使用者USの関心のある距離が、キャリブレーション範囲内にない場合: 使用者USが大きい距離範囲において精度を求める場合には、ユーザーは、その範囲内においてむしろ複数の距離を選択し、複数回のアライメントを実施することができる。
(3)使用者USが使用者US自身で創作した3Dオブジェクトを実物マーカーとして用いる場合には、使用者USは、アライメント距離を定義(決定)する必要がある。
図39に戻り、「調整するパラメーター」は、キャリブレーション処理において調整されるパラメーターを示している。後述するように、HMD100Caに含まれるカメラ60CaのカメラパラメーターCPは、必ずしも調整される必要はない。また、カメラ固定型HMDであっても、カメラ60Caと右光学像表示部26Ca,28Caとの間の空間関係(回転と並進)を表す変換パラメーターを調整することが好ましい場合がある。
F−2.変形例2:
光学像表示部26Ca、28Ca、およびカメラ60Caのファクトリーキャリブレーション(初期キャリブレーション):
例えば、サービスステーションにおいて、カメラ60CaのカメラパラメーターCP、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係(変換パラメーター)、光学像表示部26Ca、28Caの写像パラメーターの初期値(デフォルト値)が、以下のステップを有するプロセスにより、導出され得る。
1.別途、高解像度な測定用カメラのキャリブレーションをする。
2.別途、HMD100Caに含まれるカメラ60Caのキャリブレーションをし、カメラパラメーターCPを導出する。
3.HMD100Caと測定用カメラとを特別なジグ上にセットアップする。ワールド座標系として平面パターンを設置する。
4.測定用カメラについてジグ上で数か所の位置を定義する。そして、それぞれの位置で、平面パターンに対する測定用カメラの位置と姿勢を推定する。
5.光学像表示部26Caに、光学像表示部26Caに対して仮想的な位置と姿勢を有する仮想パターンを写像する。なお、光学像表示部26Caに対する仮想的な位置と姿勢は、光学像表示部26Caに対する平面パターンの位置と姿勢と同じである。
6.測定用カメラを定義された複数の位置へ移動させ、それぞれの位置で、光学像表示部26Caに表示された仮想パターンの画像を撮像する。
7.撮像された画像を用いて写像されている3D位置を再構築する。
8.2D-3Dの対応関係を用いて光学像表示部26Caの内部パラメーター(写像パラメーター)を推定する。
9.平面パターンに対する2つのカメラ(カメラ60Caおよび測定用カメラ)の姿勢を計算し、そしてカメラ60Caと、光学像表示部26Caとの間の変換パラメーターを解く。
10.4〜9のステップを、光学像表示部28Caについて繰り返す。
光学像表示部26Ca、28Ca、およびカメラ60Caのファクトリーキャリブレーション(初期キャリブレーション):
例えば、サービスステーションにおいて、カメラ60CaのカメラパラメーターCP、カメラ60Caと光学像表示部26Ca、28Caとの間の空間関係(変換パラメーター)、光学像表示部26Ca、28Caの写像パラメーターの初期値(デフォルト値)が、以下のステップを有するプロセスにより、導出され得る。
1.別途、高解像度な測定用カメラのキャリブレーションをする。
2.別途、HMD100Caに含まれるカメラ60Caのキャリブレーションをし、カメラパラメーターCPを導出する。
3.HMD100Caと測定用カメラとを特別なジグ上にセットアップする。ワールド座標系として平面パターンを設置する。
4.測定用カメラについてジグ上で数か所の位置を定義する。そして、それぞれの位置で、平面パターンに対する測定用カメラの位置と姿勢を推定する。
5.光学像表示部26Caに、光学像表示部26Caに対して仮想的な位置と姿勢を有する仮想パターンを写像する。なお、光学像表示部26Caに対する仮想的な位置と姿勢は、光学像表示部26Caに対する平面パターンの位置と姿勢と同じである。
6.測定用カメラを定義された複数の位置へ移動させ、それぞれの位置で、光学像表示部26Caに表示された仮想パターンの画像を撮像する。
7.撮像された画像を用いて写像されている3D位置を再構築する。
8.2D-3Dの対応関係を用いて光学像表示部26Caの内部パラメーター(写像パラメーター)を推定する。
9.平面パターンに対する2つのカメラ(カメラ60Caおよび測定用カメラ)の姿勢を計算し、そしてカメラ60Caと、光学像表示部26Caとの間の変換パラメーターを解く。
10.4〜9のステップを、光学像表示部28Caについて繰り返す。
F−3.変形例3:
HMD100Caのカメラ可動型HMDと、HMD101Caのカメラ固定型HMDとでは、光学像表示部26Ca,28Caに対するカメラ60Caの位置および向きの変化の有無が異なる。そのため、カメラ固定型HMDとカメラ可動型HMDとでは、第1設定モードにおいて、優先的に最適化が実行されるパラメーターを、異なるパラメーターとして変更してもよい。例えば、カメラ可動型HMDに対して、カメラ固定型HMDでは、キャリブレーションによってカメラパラメーターCPを最適化してもよい。
HMD100Caのカメラ可動型HMDと、HMD101Caのカメラ固定型HMDとでは、光学像表示部26Ca,28Caに対するカメラ60Caの位置および向きの変化の有無が異なる。そのため、カメラ固定型HMDとカメラ可動型HMDとでは、第1設定モードにおいて、優先的に最適化が実行されるパラメーターを、異なるパラメーターとして変更してもよい。例えば、カメラ可動型HMDに対して、カメラ固定型HMDでは、キャリブレーションによってカメラパラメーターCPを最適化してもよい。
最適化されるパラメーターとして、カメラパラメーターCPと、変換パラメーターとが挙げられる。カメラ固定型HMDでは、カメラパラメーターCPについて、HMD101Caの製造時の設計値を固定値として用いた上で、キャリブレーションによって最適化が実行される。最適化されるカメラパラメーターCPとしては、カメラ60Caの焦点距離およびカメラ60Caの主点位置(撮像画像の中心位置)である。カメラ固定型HMDでは、最適化される変換パラメーターとして、右光学像表示部26および左光学像表示部28CaのそれぞれのX,Y,Z軸のそれぞれの回転パラメーターおよび並進パラメーターを最適化する。
カメラ可動型HMDでは、カメラパラメーターCPについては、必ずしも最適化を行なう必要はない。カメラ可動型HMDでは、光学像表示部26Ca、28Caに対してカメラ60Caが可動であるため、カメラパラメーターのずれよりも変換パラメーターのずれがAR画像の表示に大きく影響し得ることから、変換パラメーターを優先的に最適化するためである。
F−4.変形例4:
第3実施形態では、表示設定部165Caは、位置合わせを促す文字画像を右光学像表示部26Caに表示させたが、使用者に位置合わせを促す方法としては、種々変形可能である。例えば、表示設定部165Caは、「位置がずれています」の音声を、イヤホン32Ca,34Caを介して出力することで、使用者に位置合わせを促してもよい。また、文字画像についても種々変形可能であり、表示設定部165Caは、文字画像に代えて、位置ずれを補正する方向を表す矢印の画像を、右光学像表示部26Caに表示させてもよい。
第3実施形態では、表示設定部165Caは、位置合わせを促す文字画像を右光学像表示部26Caに表示させたが、使用者に位置合わせを促す方法としては、種々変形可能である。例えば、表示設定部165Caは、「位置がずれています」の音声を、イヤホン32Ca,34Caを介して出力することで、使用者に位置合わせを促してもよい。また、文字画像についても種々変形可能であり、表示設定部165Caは、文字画像に代えて、位置ずれを補正する方向を表す矢印の画像を、右光学像表示部26Caに表示させてもよい。
他の実施形態では、使用者に撮像までの時間を報知する方法として、種々変形可能である。例えば、表示設定部165Caは、撮像までの時間を表す数字を音声として、イヤホン32Ca,34Caを介して出力することで、使用者に撮像までの時間を報知してもよい。また、表示設定部165Caは、例えば、カウントダウンの際に、「3」という数字のみを右光学像表示部26Caに表示させることで、使用者の撮像までの時間を報知してもよい。また、表示設定部165Caは、棒線を右光学像表示部26Caに表示させて、撮像までの時間の長さを表現するように、時間の経過と共に棒線の長さを減少させてもよい。
F−5.変形例5:
第3実施形態では、右光学像表示部26Caおよび左光学像表示部28Caのそれぞれについて、第1設定モードでは、2回のアライメントを実行することで、キャリブレーションが実行されたが、アライメントの回数については、種々変形可能である。アライメントの回数を増やすことで、ヤコビ行列を用いた各パラメーターの最適化において、より精度の高いキャリブレーションを実行するためのパラメーターが設定される。以下では、パラメーターの最適化の一例について説明する。
第3実施形態では、右光学像表示部26Caおよび左光学像表示部28Caのそれぞれについて、第1設定モードでは、2回のアライメントを実行することで、キャリブレーションが実行されたが、アライメントの回数については、種々変形可能である。アライメントの回数を増やすことで、ヤコビ行列を用いた各パラメーターの最適化において、より精度の高いキャリブレーションを実行するためのパラメーターが設定される。以下では、パラメーターの最適化の一例について説明する。
アライメントの回数をAとし、実物マーカーMK1,MK2の特徴要素(例えば、円の中心)の数をnとする。カメラ60Caと画像表示部とのペア(第3実施形態ではカメラ60Caと右と左のいずれかの光学像表示部26Ca、28Caとのペア)について調整されるべきパラメーターの数をmとすると、最適化されるべきパラメーターの数はMであり、下記の式(76)を満たす。
それぞれの繰り返しについて、最適化の疑似コードは、以下の通りになる。まず、それぞれのアライメントについて、カメラ60Caと右光学像表示部26Caとのペアおよびカメラ60Caと左光学像表示部28Caとのペアについて、ヤコビ行列Jsを計算する。このヤコビ行列Jsは、2n×M行列として表すことができる。次に、2n×1の残差行列esを計算する。以上をA個のアライメントのそれぞれについて実施する。
次に、ヤコビ行列Jsを、4n×Mの大きさの行列Jへとマージする。残差行列esを連結して、4n×1の行列eを生成する。行列eの要素は式(66)で表わされ得る。そして、選択されたパラメーターの増加値dpを計算する。
式(77)におけるBは、修正行列であり、式(77)におけるtranspose(J)*Jがうまく調整されていない場合の収束問題を回避するために用いられる。なお、上記式において、「inverse()」はかっこ内の行列の逆行列を意味し、「transpose()」は、かっこ内の行列の転置行列を意味する。次に、パラメーターpについて、式(78)のように更新する。
更新されたパラメーターpが、終了条件を満たす場合には、最適化を終了し、終了条件を満たさない場合には、繰り返し、最適化を行なう。
F−6.変形例6:
上記実施形態では、パラメーター設定部167Caは、カメラパラメーターCPも最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、カメラパラメーターCPについては設計値を設定し、カメラ60Caと光学像表示部26Ca,28Caとの間の空間関係だけを導出してもよい。この変形例のHMD100Caでは、最適化するパラメーターの数が少なくなる。また、製造上、ばらつきの少ないパラメーターに対して、設計値を代入することで、コスト関数Eをより小さくするパラメーターの最適化を行ないつつ、パラメーターを最適化するための時間を短くできる。
上記実施形態では、パラメーター設定部167Caは、カメラパラメーターCPも最適化により導出したが、製造時の設計値からのばらつきが少ない場合には、カメラパラメーターCPについては設計値を設定し、カメラ60Caと光学像表示部26Ca,28Caとの間の空間関係だけを導出してもよい。この変形例のHMD100Caでは、最適化するパラメーターの数が少なくなる。また、製造上、ばらつきの少ないパラメーターに対して、設計値を代入することで、コスト関数Eをより小さくするパラメーターの最適化を行ないつつ、パラメーターを最適化するための時間を短くできる。
上記実施形態では、右光学像表示部26Caに表示されるマーカーと左光学像表示部28Caに表示されるマーカーとは、同じマーカー画像IMGであったが、マーカー画像IMGおよび実物マーカーMK1,MK2については、種々変形可能である。例えば、右光学像表示部26Caと左光学像表示部28Caとのそれぞれに表示されるマーカーの画像は、異なるマーカーの画像であってもよい。また、マーカー画像IMGおよび実物マーカーMK1,MK2は、導出されるパラメーターの精度に応じて、種々変形可能である。例えば、実物マーカーMK1に含まれる円の数は、10個に限られず、10個よりも多くてよいし、10個よりも少なくてもよい。また、実物マーカーMK1に含まれる複数の特徴点は、円の中心でなくてもよく、単に三角形の重心であってもよい。また、実物マーカーMK1の内部に並行でない複数の直線が形成されて、直線の交点が複数の特徴点として特定されてもよい。また、マーカー画像IMGと実物マーカーMK1,MK2とは、異なるマーカーであってもよい。マーカー画像と実物マーカーとを重ねる場合に、どの部分を重ね合わせるのかが使用者に認識される範囲で、マーカー画像と実物マーカーとについては、種々変形可能である。例えば、矩形状のマーカー画像に対して、正円の実物マーカーの中心をマーカー画像の中心に合わせるような位置合わせであってもよい。
上記実施形態では、カメラ60CaのカメラパラメーターCPが最適化される場合に、焦点距離(Fx,Fy)と、カメラ主点位置(撮像画像の中心位置)(Cx,Cy)と、が最適化されたが、これらに代えて、またはこれらとともに、カメラ60CaのカメラパラメーターCPとして歪係数を最適化してもよい。
F−7. 変形例7:
第3実施形態において定義された式(69)のコスト関数に、以下の付加的な制約条件を加えてもよい。使用者USの目視によるアライメントは、それぞれの光学像表示部26Ca,27Caに対して別々に行われることから、そのアライメントエラーは、必ずしも同じではない。このため、左および右の光学像表示部26Ca、28Caに対するカメラ60Caの2つの並進のうち、Ty成分の推定が光学像表示部26Ca,28Caの間で大きく異なることがあり得る。2つのTy成分が大きく異なる場合には、ユーザーが立体視の融合問題を経験する。カメラ60Caと光学像表示部26Ca、28Caとの間の並進Tyの最大の差が所定有限値であることから、左右のTy差の絶対値の関数として下記式(79)のように定義する関数を式(69)に加えてもよい。式(79)を式(69)に加えた場合には、式(69)は、下記の式(80)のように表される。
ここで、式(80)に含まれる要素は、下記の式(81)ないし式(83)で表される通りである。
上記式(82)および式(83)において、「acceptable difference」は許容されるTy差であり、「maximum difference」は、想定されるTy差の最大値である。
式(69)は以下のようになる。
「acceptable difference」と、「maximum difference」とは経験的にセットされ得る。Ty_leftとTy_rightとの差が大きくなればコスト関数Eは増大する。このため、変数p(特に左右のTy_left、Ty_right)が要求範囲内に収まるように強いられながら、コスト関数Eはグローバルミニマムに近づくことになる。最適化計算においては、新しいロウ(row:行列の横の並び)がヤコビ行列Jに追加され、e行列が最適化の各繰り返しステップで生成される。上記した関数から計算された誤差は、e行列の最後に追加される。ヤコビ行列Jにおける新しいロウは、Ty_leftとTy_rightとを除いて、すべてのパラメーターについてゼロ値を取る。また、これら2つのパラメーターに対応するエントリー(初期値)は、それぞれ1および−1にすればよい。
第3実施形態において定義された式(69)のコスト関数に、以下の付加的な制約条件を加えてもよい。使用者USの目視によるアライメントは、それぞれの光学像表示部26Ca,27Caに対して別々に行われることから、そのアライメントエラーは、必ずしも同じではない。このため、左および右の光学像表示部26Ca、28Caに対するカメラ60Caの2つの並進のうち、Ty成分の推定が光学像表示部26Ca,28Caの間で大きく異なることがあり得る。2つのTy成分が大きく異なる場合には、ユーザーが立体視の融合問題を経験する。カメラ60Caと光学像表示部26Ca、28Caとの間の並進Tyの最大の差が所定有限値であることから、左右のTy差の絶対値の関数として下記式(79)のように定義する関数を式(69)に加えてもよい。式(79)を式(69)に加えた場合には、式(69)は、下記の式(80)のように表される。
式(69)は以下のようになる。
本発明は、上記実施形態や変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行なうことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
A…回転差、AP…先端部、221…右BL、C1、C10、C3、C5、C6、C9…円、C3P…円の中心、CA…蓋、CD1、CD2…座標軸、CL1、CL2…対角線、CP…カメラパラメーター、CS…カーソル画像、Fx…焦点距離、IMG…マーカー画像、Js…ヤコビ行列、LE…左眼、LP…左眼位置、MK1、MK1A、MK2、MK3、MK4、MK5…実物マーカー、OA…外部機器、P0、P1、P2、P3…頂点、PM…空間パラメーター、PM1…第1パラメーター、PMR…右変換パラメーター、PP…紙面、PT…ペットボトル本体、PTa…開口部、RA…円弧、RC…円弧、RE…右眼、RL…実物マーカー、RP…右眼位置、SC…外景、SIM…設定画像、TX1、TX2、TX3…文字画像、US…使用者、VR…視野、IC1,IC2,IC3,IC4,IC5,IC6,IC7,IC8,IC9…アイコン、3DCG…確認用画像、10,10B,10Ca,10Cb…制御部(コントローラー)、20、20B、20Ca…画像表示部、21、21B、21Ca…右保持部、22、22B、22Ca…右表示駆動部、23、23B、23Ca…左保持部、24、24B、24Ca…左表示駆動部、26、26B、26Ca…右光学像表示部、28、28B、28Ca…左光学像表示部、30…イヤホンプラグ、32…右イヤホン、34…左イヤホン、40、40B、40Ca…接続部、42…右コード、44…左コード、46、46B、46Ca…連結部材、48…本体コード、51、51B、51Ca、52、52B、52Ca…送信部、53、53B、53Ca…受信部、60、60B、60Ca、61…カメラ、90B、90Ca…装着帯、91B、91Ca…装着基部、92B、92Ca…ベルト部、93B、93Ca…連結部、100、100B、100Ca、101Ca…HMD(頭部装着型表示装置)、121、121B、121Ca…ROM、122、122B、122Ca…RAM、130、130B、130Ca…電源、135、135B、135Ca…操作部、138、138B、138Ca、138Cc…マーカー画像記憶部、140、140B、140Ca…CPU、150、150B、150Ca…オペレーティングシステム、160、160B、160Ca…画像処理部、165、165B、165Ca…表示設定部、166、166B、166Ca…マーカー特定部、167、167B…演算部、167Ca…パラメーター設定部、170、170B、170Ca…音声処理部、180、180B、180Ca…インターフェイス、190、190B、190Ca…表示制御部、201、201B、201Ca…右バックライト制御部、202、202B、202Ca…左バックライト制御部、211、211B、211Ca…右LCD制御部、212、212B、212Ca…左LCD制御部、221、221B、221Ca…右バックライト、251、251B、251Ca…右投写光学系、261、261B、261Ca…右導光板、262、262B。262Ca…左導光板、CS1…カーソル画像
Claims (5)
- 頭部装着型表示装置であって、
外光を透過可能であって、画像を表示可能な画像表示部と、
撮像部と、
マーカー画像のデータを記憶するマーカー画像記憶部と、
前記データに基づいて前記マーカー画像を前記画像表示部に表示させる画像設定部と、
パラメーター設定部と、を備え、
前記パラメーター設定部は、前記画像表示部に表示された前記マーカー画像と前記マーカー画像に対応した実物マーカーとが少なくとも部分的にほぼ一致するように使用者に視認させた状態で前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記撮像画像に少なくとも基づいて、前記撮像部のカメラパラメーター、および前記撮像部と前記画像表示部との間の空間関係の少なくとも一つを導出する、頭部装着型表示装置。 - 請求項1に記載の頭部装着型表示装置であって、
前記画像設定部は、前記パラメーター設定部が前記カメラパラメーターと前記空間関係との少なくとも一方を設定した後に、設定された前記カメラパラメーターと前記空間関係とを用いて、AR画像の位置と向きと、前記実物マーカーの位置と向きと、が対応した状態の前記AR画像が前記使用者に視認されるように、前記画像表示部に前記AR画像を表示する、頭部装着型表示装置。 - 請求項1または請求項2に記載の頭部装着型表示装置であって、
前記マーカー画像記憶部は、前記マーカー画像の元となる3次元モデルを前記データとして記憶しており、
前記画像設定部は、前記3次元モデルを前記マーカー画像として前記画像表示部に表示させ、
前記画像表示部に表示された前記マーカー画像と、前記3次元モデルに対応した3次元形状を有する実物マーカーと、が少なくとも部分的にほぼ一致するように使用者に視認させた状態で前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記パラメーター設定部は、前記撮像画像に少なくとも基づいて、前記カメラパラメーター、および前記空間関係の少なくとも一つを導出する、頭部装着型表示装置。 - 請求項1に記載の頭部装着型表示装置であって、
前記撮像部は前記画像表示部に対して可動である、頭部装着型表示装置。 - 外光を透過可能であって、画像を表示可能な画像表示部と、撮像部と、マーカー画像のデータを記憶するマーカー画像記憶部と、を備える頭部装着型表示装置のためのコンピュータープログラムであって、
前記データに基づいて前記マーカー画像を前記画像表示部に表示させる画像設定機能と、
パラメーター設定機能と、を頭部装着型表示装置に実現させ、
前記パラメーター設定機能は、前記画像表示部に表示された前記マーカー画像と前記マーカー画像に対応した実物マーカーとが少なくとも部分的にほぼ一致するように使用者に視認させた状態で前記撮像部が前記実物マーカーの撮像画像を取得した場合に、前記撮像画像に少なくとも基づいて、前記撮像部のカメラパラメーター、および前記撮像部と前記画像表示部との間の空間関係の少なくとも一つを導出する、コンピュータープログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US15/187,257 US10192361B2 (en) | 2015-07-06 | 2016-06-20 | Head-mounted display device and computer program |
| EP16178033.3A EP3115873B1 (en) | 2015-07-06 | 2016-07-05 | Head-mounted display device and computer program |
| US16/123,904 US10242504B2 (en) | 2015-07-06 | 2018-09-06 | Head-mounted display device and computer program |
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015135365 | 2015-07-06 | ||
| JP2015135365 | 2015-07-06 | ||
| JP2015167787 | 2015-08-27 | ||
| JP2015167787 | 2015-08-27 | ||
| JP2015235306 | 2015-12-02 | ||
| JP2015235306 | 2015-12-02 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017108370A true JP2017108370A (ja) | 2017-06-15 |
Family
ID=59060238
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016097716A Pending JP2017108370A (ja) | 2015-07-06 | 2016-05-16 | 頭部装着型表示装置およびコンピュータープログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017108370A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112348889A (zh) * | 2020-10-23 | 2021-02-09 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| JP2021509482A (ja) * | 2018-01-02 | 2021-03-25 | ルムス エルティーディー. | アクティブアライメントを備えた拡張現実ディスプレイおよび対応する方法 |
| JP2023007793A (ja) * | 2021-07-02 | 2023-01-19 | 株式会社日立国際電気 | カメラ設置支援システム、カメラ制御装置、及びカメラ設置方法 |
| US11720313B2 (en) | 2020-09-29 | 2023-08-08 | Seiko Epson Corporation | Display system, display method and program |
| US11747635B2 (en) | 2016-12-31 | 2023-09-05 | Lumus Ltd. | Eye tracker based on retinal imaging via light-guide optical element |
| US11822088B2 (en) | 2021-05-19 | 2023-11-21 | Lumus Ltd. | Active optical engine |
| US11860369B2 (en) | 2021-03-01 | 2024-01-02 | Lumus Ltd. | Optical system with compact coupling from a projector into a waveguide |
| JP2024503247A (ja) * | 2020-12-22 | 2024-01-25 | マジック リープ, インコーポレイテッド | 仮想または拡張現実システムのための較正 |
| US11886008B2 (en) | 2021-08-23 | 2024-01-30 | Lumus Ltd. | Methods of fabrication of compound light-guide optical elements having embedded coupling-in reflectors |
-
2016
- 2016-05-16 JP JP2016097716A patent/JP2017108370A/ja active Pending
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11747635B2 (en) | 2016-12-31 | 2023-09-05 | Lumus Ltd. | Eye tracker based on retinal imaging via light-guide optical element |
| JP2023081930A (ja) * | 2018-01-02 | 2023-06-13 | ルムス エルティーディー. | アクティブアライメントを備えた拡張現実ディスプレイおよび対応する方法 |
| JP2021509482A (ja) * | 2018-01-02 | 2021-03-25 | ルムス エルティーディー. | アクティブアライメントを備えた拡張現実ディスプレイおよび対応する方法 |
| JP7519126B2 (ja) | 2018-01-02 | 2024-07-19 | ルムス エルティーディー. | アクティブアライメントを備えた拡張現実ディスプレイおよび対応する方法 |
| US11720313B2 (en) | 2020-09-29 | 2023-08-08 | Seiko Epson Corporation | Display system, display method and program |
| CN112348889B (zh) * | 2020-10-23 | 2024-06-07 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| JP7280385B2 (ja) | 2020-10-23 | 2023-05-23 | チョーチアン センスタイム テクノロジー デベロップメント カンパニー,リミテッド | 視覚的ポジショニング方法および関連装置、機器並びにコンピュータ可読記憶媒体 |
| JP2023502192A (ja) * | 2020-10-23 | 2023-01-23 | チョーチアン センスタイム テクノロジー デベロップメント カンパニー,リミテッド | 視覚的ポジショニング方法および関連装置、機器並びにコンピュータ可読記憶媒体 |
| CN112348889A (zh) * | 2020-10-23 | 2021-02-09 | 浙江商汤科技开发有限公司 | 视觉定位方法及相关装置、设备 |
| JP2024503247A (ja) * | 2020-12-22 | 2024-01-25 | マジック リープ, インコーポレイテッド | 仮想または拡張現実システムのための較正 |
| JP7667859B2 (ja) | 2020-12-22 | 2025-04-23 | マジック リープ, インコーポレイテッド | 仮想または拡張現実システムのための較正 |
| US12488544B2 (en) | 2020-12-22 | 2025-12-02 | Magic Leap, Inc. | Calibration for virtual or augmented reality systems |
| US11860369B2 (en) | 2021-03-01 | 2024-01-02 | Lumus Ltd. | Optical system with compact coupling from a projector into a waveguide |
| US11822088B2 (en) | 2021-05-19 | 2023-11-21 | Lumus Ltd. | Active optical engine |
| JP2023007793A (ja) * | 2021-07-02 | 2023-01-19 | 株式会社日立国際電気 | カメラ設置支援システム、カメラ制御装置、及びカメラ設置方法 |
| JP7761412B2 (ja) | 2021-07-02 | 2025-10-28 | 株式会社国際電気 | カメラ設置支援システム、カメラ制御装置、及びカメラ設置方法 |
| US11886008B2 (en) | 2021-08-23 | 2024-01-30 | Lumus Ltd. | Methods of fabrication of compound light-guide optical elements having embedded coupling-in reflectors |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10242504B2 (en) | Head-mounted display device and computer program | |
| JP6852355B2 (ja) | プログラム、頭部装着型表示装置 | |
| US10469836B2 (en) | Head-mounted display device and computer program | |
| US10424117B2 (en) | Controlling a display of a head-mounted display device | |
| CN112926428B (zh) | 使用合成图像训练对象检测算法的方法和系统和存储介质 | |
| JP2017108370A (ja) | 頭部装着型表示装置およびコンピュータープログラム | |
| US10269139B2 (en) | Computer program, head-mounted display device, and calibration method | |
| US9846968B2 (en) | Holographic bird's eye view camera | |
| CN107209950B (zh) | 从现实世界材料自动生成虚拟材料 | |
| JP5923603B2 (ja) | 表示装置、ヘッドマウントディスプレイ、校正方法及び校正プログラム、並びに記録媒体 | |
| WO2021146035A1 (en) | Compensation for deformation in head mounted display systems | |
| JP2017199379A (ja) | 追従表示システム、追従表示プログラム、および追従表示方法、ならびにそれらを用いたウェアラブル機器、ウェアラブル機器用の追従表示プログラム、およびウェアラブル機器の操作方法 | |
| EP2932358A1 (en) | Direct interaction system for mixed reality environments | |
| JP2019164420A (ja) | 透過型頭部装着型表示装置および透過型頭部装着型表示装置の制御方法、透過型頭部装着型表示装置の制御のためのコンピュータープログラム | |
| JP6701694B2 (ja) | 頭部装着型表示装置およびコンピュータープログラム | |
| US10296098B2 (en) | Input/output device, input/output program, and input/output method | |
| CN114356071A (zh) | 显示系统、显示方法以及记录介质 | |
| JP6701693B2 (ja) | 頭部装着型表示装置およびコンピュータープログラム | |
| US20260039781A1 (en) | Display image generation apparatus and image display method | |
| JP2017111724A (ja) | 配管用ヘッドマウントディスプレイ | |
| US20190114838A1 (en) | Augmented reality system and method for providing augmented reality |