JP2017224984A - プログラム、装置、キャリブレーション方法 - Google Patents
プログラム、装置、キャリブレーション方法 Download PDFInfo
- Publication number
- JP2017224984A JP2017224984A JP2016118947A JP2016118947A JP2017224984A JP 2017224984 A JP2017224984 A JP 2017224984A JP 2016118947 A JP2016118947 A JP 2016118947A JP 2016118947 A JP2016118947 A JP 2016118947A JP 2017224984 A JP2017224984 A JP 2017224984A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- posture
- image
- imu
- picked
- 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
- 238000000034 method Methods 0.000 title claims abstract description 64
- 239000003550 marker Substances 0.000 claims abstract description 76
- 238000003384 imaging method Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims description 10
- 238000005259 measurement Methods 0.000 description 39
- 230000003287 optical effect Effects 0.000 description 32
- 239000011159 matrix material Substances 0.000 description 31
- 230000008569 process Effects 0.000 description 26
- 230000001133 acceleration Effects 0.000 description 22
- 210000003128 head Anatomy 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000013480 data collection Methods 0.000 description 7
- 230000004927 fusion Effects 0.000 description 7
- 230000005484 gravity Effects 0.000 description 7
- 239000013598 vector Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 238000005401 electroluminescence Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000007500 overflow downdraw method Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000011347 resin Substances 0.000 description 2
- 229920005989 resin Polymers 0.000 description 2
- 210000001525 retina Anatomy 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000001061 forehead Anatomy 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002844 melting Methods 0.000 description 1
- 230000008018 melting Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/014—Head-up displays characterised by optical features comprising information/image processing systems
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B2027/0178—Eyeglass type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Optics & Photonics (AREA)
- Human Computer Interaction (AREA)
- Studio Devices (AREA)
Abstract
【課題】撮像部と慣性センサーとの空間関係を対応付けること。【解決手段】撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に、前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第1の姿勢の場合に撮像された撮像画像である第1の撮像画像と、前記慣性センサーが第2の姿勢の場合に撮像された撮像画像である第2の撮像画像と、を取得する手順と、前記第1の姿勢と前記第2の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、前記第1の撮像画像と、前記第2の撮像画像と、前記姿勢の差と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、を実行させるためのプログラム。【選択図】図6
Description
本発明は、装置のキャリブレーションに関する。
近年、現実空間の物体に対してコンピューターによる情報を付加する拡張現実(AR、Augmented Reality)と呼ばれる技術が注目されている。拡張現実を実現する手法の一つとして、外界を透過視認可能なシースルー型の表示装置がある。特許文献1は、このような表示装置として、頭部装着型表示装置(ヘッドマウントディスプレイ:HMD(Head Mounted Display))を開示している。
以下では、シースルー型の表示装置の一例として、HMDを例として説明する。HMDは、AR機能を提供できるように、トラッキングカメラ(撮像部)を備える。そして、トラッキングカメラを介して、HMD(またはトラッキングカメラ)に対する実オブジェクトの位置を検出し、追跡する(この方式による実オブジェクトの追跡を「光学トラッキング」と表記する)。HMDは、当該実オブジェクトの位置に追従するように、CG等の仮想オブジェクトを表示する。このときユーザーは、実オブジェクトの位置に、仮想オブジェクトの位置が対応づけられるように、仮想オブジェクトを視認する。
トラッキングカメラのビュー(画角)における実オブジェクトの位置と姿勢は、実オブジェクトの動きだけでなく、ユーザーの頭部の動き(特に回転)によっても変化する。そして、頭部の回転の角速度が速く、および/または角度が大きい場合には、光学トラッキングだけでは、実オブジェクトの位置さらには姿勢の変化が、仮想オブジェクトの表示に反映されるまでの時間差(レイテンシー)が目立つようになる場合がある。
技術的に、トラッキングカメラの時間分解能(画像のフレームレート)より、慣性センサーの時間分解能を高くしやすい。そこで、上記レイテンシー対策として、HMDが、トラッキングカメラだけでなく、慣性センサーを搭載し、トラッキングカメラと慣性センサーとによって、HMDに対する実オブジェクトの位置・姿勢(実オブジェクトとHMDとの間の空間的位置関係)を推定することが効果的であると考えられる。
上記場合のように、トラッキングカメラと慣性センサーとが協働して「トラッカー(追跡装置)」として機能する場合には、トラッキングカメラの座標系と慣性センサーの座標系とが、対応付けられている(較正されている)ことが望まれる。また、上記「トラッカー」として利用される場合以外でも、たとえば、ユーザーの眼(網膜)を基準にしてトラッキングカメラと画像表示部とが較正される場合に、トラッキングカメラの座標系と慣性センサーの座標系とが較正されていることは、有用である。そして、較正方法は簡易で、且つ較正結果が高精度であることが望ましい。
課題の説明を補足する。HMDにおいてIMUと光学トラッカーを融合するには、IMU−カメラキャリブレーションが必要である。加速度センサーによって計測される重力ベクトル、および慣性―ビジュアル系の回転アライメントを推定する垂直パターンを利用したIMU―カメラキャリブレーション方法が提案されている。このアプローチは、静的であり、動的な動きを必要としないという利点を有する。しかしながら、システムセットアップは、むしろやっかいで、エラーを生じがちである。それは、垂直チェッカー模様を有する平面ターゲットに依存する。このセットアップに必要な要件は、平均的なユーザーにとっては負荷が大きい。ユーザーは、特別な表面またはそのような垂直表面が存在する特別な位置を確保する必要がある。しかも、異なる時刻に収集されたデータには、再現可能な精度を達成する保証がない。
本発明は、上記課題を解決するためのものであり、以下の形態として実現できる。
本発明の一形態は、撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に;前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第1の姿勢の場合に撮像された撮像画像である第1の撮像画像と、前記慣性センサーが第2の姿勢の場合に撮像された撮像画像である第2の撮像画像と、を取得する手順と;前記第1の姿勢と前記第2の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と;前記第1の撮像画像と、前記第2の撮像画像と、前記姿勢の相違と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と;を実行させるためのプログラムである。この形態によれば、撮像部の姿勢の変更によって、撮像部と慣性センサーとの間の空間関係が導出できる。さらに、静的な位置における実物マーカーを撮像すればキャリブレーションが実行できるため、動的な実物マーカーを撮像する場合と比較して、時間の同期等の問題がなく、精度の高いキャリブレーションを実行できる。
上記形態において、前記撮像部は、前記慣性センサーに対して可動であってもよい。
上記形態において、前記装置は、画像を表示可能な表示部を有し;前記撮像部は、前記表示部に対する相対位置が可動であってもよい。
本発明は、上記以外の種々の形態で実現できる。例えば、プログラムを記憶した一時的でない記憶媒体形態で実現できる。或いは、上記の手順によるキャリブレーション方法や、この方法を実行する装置(例えば、HMD、撮像装置、ロボット)等の形態で実現できる。
図1は、HMD100の概略構成を示す。HMD100は、頭部装着型表示装置(ヘッドマウントディスプレイ:Head Mounted Display)である。HMD100は、ユーザーが虚像を視認すると同時に外景も直接視認可能な光学透過型のヘッドマウントディスプレイである。HMD100は、撮像部としてのカメラ60(後述)を備えるので、撮像装置でもある。
HMD100は、ユーザーの頭部に装着可能な装着帯90と、画像を表示する表示部20と、表示部20を制御する制御部(コントローラー)10と、を備えている。表示部20は、ユーザーの頭部に装着された状態においてユーザーに虚像を視認させる。
装着帯90は、樹脂製の装着基部91と、装着基部91に連結される布製のベルト部92と、カメラ60と、IMU71と、を備える。装着基部91は、人の前頭部の形に合った湾曲した形状を有する。ベルト部92は、ユーザーの頭部の周りに装着されるためのベルトである。
カメラ60は、外景を撮像可能で、装着基部91の中心部分に配置されている。換言すると、カメラ60は、装着帯90がユーザーの頭部に装着された状態で、ユーザーの額の中央に対応する位置に配置されている。そのため、カメラ60は、ユーザーが装着帯90を頭部に装着した状態において、ユーザーの視線方向の外部の景色である外景を撮像し、撮像された画像である撮像画像を取得する。
カメラ60は、装着基部91に対して回転するカメラ基部61と、カメラ基部61に対して相対位置が固定されたレンズ部62と、を有する。カメラ基部61は、装着帯90がユーザーの頭部に装着された際に、ユーザーの中心軸を含む面に含まれる軸の所定の範囲である矢印CS1に沿って回転可能に配置されている。そのため、カメラ60の光軸であるレンズ部62の光軸は矢印CS1の範囲で向きを変更可能である。レンズ部62は、光軸を中心としたズームによって変化する範囲を撮像する。
IMU71(Inertial Measurement Unit)は、加速度を検出する慣性センサーである。IMU71は、加速度に加えて、角速度と、地磁気とを検出できる。IMU71は、装着基部91に内蔵されている。そのため、IMU71は、装着帯90及びカメラ基部61の加速度と角速度と地磁気とを検出する。
IMU71は装着基部91との相対位置が固定されているので、カメラ60はIMU71に対して可動である。さらに、表示部20は、装着基部91との相対位置が固定されているので、カメラ60は表示部20に対する相対位置が可動である。
表示部20は、装着帯90の装着基部91に連結される表示部であり、本実施形態では眼鏡形状を有している。表示部20は、右保持部21と、右表示駆動部22と、左保持部23と、左表示駆動部24と、右光学像表示部26と、左光学像表示部28と、を含んでいる。右光学像表示部26及び左光学像表示部28は、それぞれ、ユーザーが表示部20を装着した際にユーザーの右および左の眼前に位置する。右光学像表示部26の一端および左光学像表示部28の一端は、ユーザーが表示部20を装着した際のユーザーの眉間に対応する位置で、互いに接続されている。
右保持部21は、右光学像表示部26の他端である端部ERから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ERと装着基部91の右側の連結部93との間を結ぶ。同様に、左保持部23は、左光学像表示部28の他端である端部ELから略水平方向に延び、途中から斜め上方へ傾斜した形状を有し、端部ELと装着基部91の左側の連結部(図示せず)との間を結ぶ。右保持部21及び左保持部23が左右の連結部93によって装着基部91に連結されることで、右光学像表示部26と左光学像表示部28をユーザーの眼前に位置させる。なお、各連結部93は、右保持部21及び左保持部23を回転可能に、且つ任意の回転位置に固定可能に連結する。連結部93の詳しい機構は周知の構成であることから、詳しい説明は省略する。この結果、表示部20は、装着基部91に対して回転可能に設けられることになる。
右保持部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の表側を覆うように配置されている。調光板の光透過率を調整することによって、ユーザーの眼に入る外光量を調整して虚像の視認のしやすさを調整できる。
表示部20は、さらに、表示部20を制御部10に接続するための接続部40を有している。接続部40は、制御部10に接続される本体コード48と、右コード42と、左コード44と、連結部材46と、を含んでいる。右コード42及び左コード44は、本体コード48が2本に分岐したコードである。表示部20及び制御部10は、接続部40を介して各種信号の伝送を実行する。右コード42と、左コード44と、本体コード48とには、例えば、金属ケーブルや光ファイバーを採用できる。
制御部10は、HMD100を制御するための装置である。制御部10は、静電式のトラックパッドや押下可能な複数のボタンなどを含む操作部135と、撮像されることでキャリブレーションに用いられる実物マーカーMKと、を有する。操作部135は、制御部10の表面に配置されている。実物マーカーMKは、制御部10裏面に配置されている。そのため、図1では、実物マーカーMKが示されていない。実物マーカーMKの詳細については後述する。
図2は、実物マーカーMKを示す概略図である。図3は、実物マーカーMKの詳細図である。図2に示すように、制御部10の裏面には実物マーカーMKが配置されている。図3に示すように、実物マーカーMKは、4つの頂点P0,P1,P2,P3を直線で結んだ正方形の中に、10個の円が形成された2次元のマーカーである。後述する変換パラメーター算出処理では、白色の円の中心の座標値が用いられることで、カメラ60によって撮像された実物マーカーMKと、マーカー画像IMG(後述)との重複の度合いが判定される。
図4は、HMD100の構成を機能的に示すブロック図である。図4に示すように、制御部10は、ROM121と、RAM122と、電源130と、操作部135と、識別対象記憶部139と、CPU140と、インターフェース180と、送信部51(Tx51)および送信部52(Tx52)と、を有している。
電源130は、HMD100の各部に給電する。ROM121には、種々のプログラムが格納されている。CPU140は、ROM121に格納された各種プログラムを、RAM122に展開することで、各種プログラムを実行する。
CPU140は、ROM121に格納されているプログラムを、RAM122に展開することにより、オペレーティングシステム150(OS150)、表示制御部190、音声処理部170、画像処理部160、マーカー識別部165及び処理部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は、カメラ60によって得られた撮像画像に対して、所定の階調値を閾値として2値化を実行する。マーカー識別部165は、2値化した画像の中から、ROM121に記憶されたマーカー画像IMGと同じ実物マーカーMKを抽出する。本実施形態では、マーカー識別部165は、撮像画像に対して、初めに、予め設定された初期閾値で2値化を実行する。マーカー識別部165は、2値化した画像に対して、マーカー画像IMGの特徴点と同じと判定する画像を撮像画像の中から抽出する。
マーカー画像IMGの特徴点は、正方形の4個の頂点である頂点P0,P1,P2,P3及び正方形の中に含まれる白色の9個の円である。マーカー識別部165は、9個の円の特徴点として、対向する2つの頂点を結んだ対角線上に、マーカー画像IMGと同じ位置関係で円が並んでいるか否かの判定をすることで、撮像画像の中からマーカー画像IMGと同じと判定する実物マーカーMKを抽出する。例えば、マーカー識別部165は、図3において、頂点P0と頂点P2とを結んだ直線上、および/または頂点P1と頂点P3を結んだ直線上に、2値化された白色の円が黒色に対して5個並んでいるか否か、或いは並んでいる白色の円の大きさや複数の円に挟まれる黒色の領域の大きさなどで判定する。
マーカー識別部165は、初期閾値を用いた2値化で実物マーカーMKを抽出できない場合には、予め設定された階調値である加算閾値を初期閾値に加えた新たな閾値として、撮像画像に対して2値化を実行し、実物マーカーMKを抽出する。このように、マーカー識別部165は、いくつかの階調値を閾値として2値化することで、撮像画像の中から実物マーカーMKを抽出する。なお、マーカー識別部165は、複数の閾値を用いても撮像範囲から実物マーカーMKを抽出できない場合には、撮像範囲に実物マーカーMKが含まれないと判定する。
処理部167は、マーカー識別部165によって実物マーカーMKが抽出された場合に、例えばホモグラフィー行列により、マーカー姿勢を算出する。マーカー姿勢とは、カメラ60と実物マーカーMKとの空間的関係(回転関係)を算出する。後述するように、処理部167は、算出した上記空間的関係と、IMU71によって検出された加速度等の検出値と、を用いて、カメラに固定された座標系からIMU71に固定された座標系へと変換するための回転行列を算出する。
インターフェース180は、制御部10に対して、コンテンツの供給元となる種々の外部機器OAを接続するための入出力インターフェースである。外部機器OAとしては、例えば、ARシナリオを記憶している記憶装置、パーソナルコンピューター(PC)や携帯電話端末、ゲーム端末等がある。インターフェース180としては、例えば、USBインターフェース、マイクロUSBインターフェース、メモリーカード用インターフェース等を用いることができる。
図4に示すように、表示部20は、右表示駆動部22と、左表示駆動部24と、右光学像表示部26としての右導光板261と、左光学像表示部28としての左導光板262と、を備えている。
右表示駆動部22は、受信部53(Rx53)と、右バックライト制御部201及び右バックライト221と、右LCD制御部211及び右LCD241と、右投写光学系251と、を含んでいる。右バックライト制御部201及び右バックライト221は、光源として機能する。右LCD制御部211及び右LCD241は、表示素子として機能する。なお、他の実施形態では、右表示駆動部22は、上記構成に代えて、有機EL表示素子などの自発光型表示素子を備えてもよいし、レーザーダイオードからの光ビームを網膜上でスキャンするスキャン型の表示素子を備えてもよい。左表示駆動部24についても、同様である。
受信部53は、制御部10と表示部20との間におけるシリアル伝送のためのレシーバーとして機能する。右バックライト制御部201は、入力された制御信号に基づいて、右バックライト221を駆動する。右バックライト221は、例えば、LEDやエレクトロルミネッセンス(EL)等の発光体である。右LCD制御部211は、画像処理部160及び表示制御部190から送信された制御信号に基づいて、右LCD241を駆動する。右LCD241は、複数の画素をマトリクス状に配置した透過型液晶パネルである。
右投写光学系251は、右LCD241から射出された画像光を平行状態の光束にするコリメートレンズによって構成される。右光学像表示部26としての右導光板261は、右投写光学系251から出力された画像光を、所定の光路に沿って反射させつつユーザーの右眼REに導く。なお、左表示駆動部24は、右表示駆動部22と同様の構成を有し、ユーザーの左眼LEに対応するため、説明を省略する。
IMU71及びカメラ60を用いたキャリブレーションは、慣性センサーであるIMU71の性能によって精度が異なる。精度が高くない安価なIMUが用いられると、キャリブレーションには、大きな誤差やドリフトが発生することがある。
本実施形態では、IMU71を用いたマルチポジション法を用いたバッチ・ソリューション・ベース・アルゴリズムによってキャリブレーションを実行する。本実施形態では、IMU71とカメラ60との間の並進関係については、製造時の設計データを用いる。マルチポジション法は、キャリブレーションを実行するにあたり、下記(A)−(D)のメリットを有する。
(A)IMU71の検出と、カメラ60による撮像とが静的な位置で実行されるため、時間の同期(シンクロ)が問題にならない。
(B)複数の位置における検出値や撮像画像を用いることで、フィルタリングにより、IMU71(に含まれる各センサー)及びカメラ60のノイズを少なくできる。
(C)IMU71におけるジャイロセンサー、加速度センサー、磁気センサーの出力が融合されてIMU71の姿勢(以下、IMU配向)が求められることから、各センサーのドリフトが修正され、IMU配向が高精度である。
(D)制御部10に配置された実物マーカーMKを用いることで、複雑なキャリブレーションを実行するための装置やHMD100以外の他の装置が不要になる。
図7と共に後述するキャリブレーション処理に先立ち、IMU71とカメラ60とのそれぞれに対して、別々のキャリブレーション(以下、独立キャリブレーション)が実行される。独立キャリブレーションの具体的な方法については、一般的に広く知られている周知技術を用いればよく、本明細書では記載を省略する。
独立キャリブレーションでは、IMU71が較正される。具体的には、IMU71に含まれる3軸の加速度センサー(Ax,Ay,Az)と、3軸のジャイロセンサー(Gx,Gy,Gz)と、3軸の地磁気センサー(Mx,My,Mz)とに対して、ゲイン/スケールと、静的なバイアス/オフセットと、3軸間のスキューと、についてキャリブレーションが実行される。
これらのキャリブレーションが実行されると、IMU71は、加速度、角速度、地磁気のそれぞれについての出力値として、加速度と角速度と地磁気とを出力する。これらの出力値は、ゲイン、静的なバイアス/オフセット、および3軸間のミスアライメントを修正した値である。これらのキャリブレーションは、本実施形態では、HMD100の製造時において製造工場などで実施される。
独立キャリブレーションで実行されるカメラ60のキャリブレーションでは、カメラ60における焦点距離、スキュー、主点位置、歪みを含むカメラ60の内部パラメーターがキャリブレーションされる。カメラ60のキャリブレーションには、周知技術を適用できる。
IMU71に含まれる各センサーのキャリブレーションが実行された後においては、IMU71における加速度、角速度、地磁気のそれぞれのセンサーの検出値(計測された出力)を融合して、精度の高いIMU配向を得ることができる。
図5は、IMU71における融合部300を示す。融合部300は、IMU71の外部にあってもよい。融合部300は、拡張カルマンフィルター(EKF)に基づいて、内部の各センサーの計測(値または信号)を融合する。本実施形態では、IMU配向は、4元数により表記される。4元数による表記は、回転行列へ変換可能である。拡張カルマンフィルターは、以下のように表される状態ベクトルに適用される。
X=[qs2w, bgyro]・・・(a)
X=[qs2w, bgyro]・・・(a)
制御入力ベクトルは、ジャイロセンサーの入力によって決定される。
u=[ws]・・・(b)
インターバルΔtの間のK−1からKへ状態遷移モデルは、次式のように表される。
xk=f(xk-1, uk-1, wk-1)・・・(c)
ここで、wk-1は、ノイズベクトルである。
u=[ws]・・・(b)
インターバルΔtの間のK−1からKへ状態遷移モデルは、次式のように表される。
xk=f(xk-1, uk-1, wk-1)・・・(c)
ここで、wk-1は、ノイズベクトルである。
図5に示すように、融合部300は、測定部310と、予測部320と、更新部330と、重力キャンセル部340と、回転変換部350と、遅延器360とを含む。
測定部310は、加速度センサーから出力された加速度と、磁気センサーから出力された地磁気の計測as k,ms kとに基づき機能する。測定部310は、ローパスフィルター311,312を含む。ローパスフィルター311は、計測された加速度as kにおけるノイズを低減する。ローパスフィルター312は、計測された地磁気ms kにおけるノイズを低減する。
予測部320は、所定時間期間に亘って、検出された角速度ωs k-1を積分することによって、角度変化の量(または姿勢)を推定し、予測された角度変化(または姿勢)を、更新部330へ出力する。更新部330は、予測された角度変化(または姿勢)を用いて、計測されたものzk(加速度および地磁気)を、フィルターすなわち融合する。そうすると、融合されたIMU配向qs2w kが更新されて出力され、そして、融合されたIMU配向qs2w kが、次のサイクルのために、遅延器360を介して、予測部320へフィードバックされる。融合されたIMU配向qs2w kが計算されると、重力キャンセル部340による重力のキャンセルよって、IMU71の動的または線形な加速度aw kが計算される。
回転変換部350は、IMU配向qs2w kを受け取り、回転行列Rs2w kに変換し出力する。加速度センサーからの計測された加速度as kは、重力キャンセル部340に入力される。重力キャンセル部340は、回転行列Rs2w kで表されたIMU配向を用いて地球の重力加速度を打ち消し、重力加速度の成分を含まないIMU71の線形加速度aw kを計算して出力する。
上述した拡張カルマンフィルターに基づく検出値の融合のための調整は、HMD100を製造する工場で実施され得る。カメラ60及びIMU71のキャリブレーションも、HMD100を製造する工場で実施され得る。
一方で、CPU140は、キャリブレーション処理(図7と共に後述)を実行する。キャリブレーション処理は、HMD100のオフラインキャリブレーションを実行するための処理である。オフラインキャリブレーションでは、カメラ60に固定された座標系からIMU71に固定された座標系への回転行列Rcam2imuが導出される。回転行列Rcam2imuは、カメラ60とIMU71との間の空間関係を示す。添え字のcam2imuは、camera to imuを意味する。回転行列Rcam2imuの導出は、本実施形態の目的の一つである。次に、回転行列Rcam2imuについて説明する。
図6は、実物マーカーMKが撮像されている場合のカメラ60と実物マーカーMKとの位置関係を表す概略図である。図6には、表示部20と、装着帯90の一部である装着基部91と、カメラ60と、装着基部91に内蔵されて固定されているIMU71と、制御部10と、が示されている。
図6には、カメラ座標系(X3-Y3-Z3)からIMU座標系(X1-Y1-Z1)への回転行列Rcam2imuと、カメラ座標系からマーカー座標系(X2-Y2-Z2)への回転行列Rcam2markerと、が示されている。ここで、制御部10が地球に対して移動しないという条件を満たす場合、Rcam2markerは、Rcam2worldに対して固定されていることになる。Rcam2worldは、カメラ座標系からワールド座標系(絶対座標系:X-Y-Z)への回転行列である。ワールド座標系は、地球に対して固定された座標系である。
カメラ60とIMU71とが、或る静的な位置Aから他の静的な位置Bへ回転する場合、回転角の変化は次式を満足する。静的な位置とは、ワールド座標系によって定義される位置である。次式のRcam2imuは、先述したようにカメラ60からIMU71への回転行列である。
RcamA2B=Rcam2imu -1RimuA2BRcam2imu・・・(d)
RcamA2B=Rcam2imu -1RimuA2BRcam2imu・・・(d)
RcamA2Bは、位置Aから位置Bへカメラ60が回転した場合に変化させられたカメラ60の回転角である。つまり、RcamA2Bは、位置Aにおけるカメラ60の姿勢である第1の姿勢から、位置Bにおけるカメラ60の姿勢である第2の姿勢への回転行列である。
RimuA2Bは、位置Aから位置BへIIMU71が回転した場合に変化させられたIMU71の回転角である。つまり、RimuA2Bは、位置AにおけるIMU71の姿勢から、位置BにおけるIMU71の姿勢への回転行列である。さらに言い換えると、RimuA2Bは、位置AにおけるIMU71の姿勢である第1の姿勢と、位置BにおけるIMU71の姿勢である第2の姿勢との相違を示す。
式(d)の導出過程を以下に示す。カメラ60およびIMU71が位置Aから位置Bへ変位する場合のカメラ回転角の変化は、次式によって計算される。
RcamA2B=Rcam2world -1(B)Rcam2world(A)・・・(e)
Rcam2world(A)は、位置Aにおける撮像画像である第1の撮像画像から得られ得る。Rcam2world(B)は、位置Bにおける撮像画像である第2の撮像画像から得られ得る。これらの算出には、先述したようにホモグラフィー行列を用いる。ホモグラフィー行列を用いれば、カメラ60に対する平面マーカーの姿勢を導出できる。実物マーカーMKは、平面マーカーである。
RcamA2B=Rcam2world -1(B)Rcam2world(A)・・・(e)
Rcam2world(A)は、位置Aにおける撮像画像である第1の撮像画像から得られ得る。Rcam2world(B)は、位置Bにおける撮像画像である第2の撮像画像から得られ得る。これらの算出には、先述したようにホモグラフィー行列を用いる。ホモグラフィー行列を用いれば、カメラ60に対する平面マーカーの姿勢を導出できる。実物マーカーMKは、平面マーカーである。
同様に、IMU回転角は、次式によって計算される。
RimuA2B=Rimu2world -1(B)Rimu2world(A)・・・(f)
Rimu2worldは、IMU配向qs2w kであり、且つ、IMU座標系からワールド座標系への回転行列と捉えることもできる。Rimu2world(A)は、位置AにおけるIMU配向qs2w kから計算され得る。Rimu2world(B)は、位置BにおけるIMU配向qs2w kから計算され得る。
RimuA2B=Rimu2world -1(B)Rimu2world(A)・・・(f)
Rimu2worldは、IMU配向qs2w kであり、且つ、IMU座標系からワールド座標系への回転行列と捉えることもできる。Rimu2world(A)は、位置AにおけるIMU配向qs2w kから計算され得る。Rimu2world(B)は、位置BにおけるIMU配向qs2w kから計算され得る。
ところで、次の2つの式が成り立つ。
Rcam2world(A)=Rimu2world(A)Rcam2imu・・・(g)
Rcam2world(B)=Rimu2world(B)Rcam2imu・・・(h)
Rcam2world(A)=Rimu2world(A)Rcam2imu・・・(g)
Rcam2world(B)=Rimu2world(B)Rcam2imu・・・(h)
式(h)を式(e)に導入すると、次式が得られる。
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rcam2world(A)・・・(i)
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rcam2world(A)・・・(i)
式(g)を式(i)に導入すると、次式が得られる。
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rimu2world(A)Rcam2imu
=Rcam2imu -1Rimu2world -1(B)Rimu2world(A)Rcam2imu・・・(j)
式(f)を式(j)に導入すると、式(d)が得られる。
RcamA2B=(Rimu2world(B)Rcam2imu)-1Rimu2world(A)Rcam2imu
=Rcam2imu -1Rimu2world -1(B)Rimu2world(A)Rcam2imu・・・(j)
式(f)を式(j)に導入すると、式(d)が得られる。
式(d)を利用することで、Rcam2imuを求めることができる。本実施形態における具体的なキャリブレーション方法は、Rcam2imuを繰り返し高精度化する非線形最適化に基づく。繰り返し高精度化するために、まずはRcam2imuの初期推定値が必要である。初期推定値は、設計または使用からの粗い推定値でよい。例えば、Rcam2imuの初期推定値として次式を用いることができる。
Rcam2worldはマーカートラッキングアルゴリズムから求められる。そして、RcamA2Bは、式(e)で表される。そこで、マーカートラッキングアルゴリズムから求められたRcam2worldを用いて表されるRcamA2Bを、RcamA2B Obsと表記する。つまり、RcamA2B Obsは、観測に基づくものであり、次式によって表される。
RcamA2B Obs=Rcam2world -1(B)Rcam2world(A)・・・(k)
RcamA2B Obs=Rcam2world -1(B)Rcam2world(A)・・・(k)
他方、式(d)から計算されるRcamA2Bを、RcamA2B Predと表記する。つまり、RcamA2B Predは、予測値であり、次式によって表される。
RcamA2B Pred=Rcam2imu -1RimuA2BRcam2imu・・・(l)
RcamA2B Pred=Rcam2imu -1RimuA2BRcam2imu・・・(l)
RcamA2B ObsとRcamA2B Predとの誤差が小さければ、RcamA2B Predの元である式(d)の精度が高いことになる。式(d)の精度が高いことは、Rcam2imuの精度が高いことを意味する。そこで、誤差計測式として、観測された回転と予測された回転との間の角度を求める次式を定義する。
e=acos((trace(RcamA2B Obs*(RcamA2B Pred)′)-1)*0.5)・・・(m)
上記eの値が小さくなるような回転行列Rcam2imuを求めることができれば、その回転行列Rcam2imuは、カメラ60とIMU71との空間関係を適切に記述していることになる。
e=acos((trace(RcamA2B Obs*(RcamA2B Pred)′)-1)*0.5)・・・(m)
上記eの値が小さくなるような回転行列Rcam2imuを求めることができれば、その回転行列Rcam2imuは、カメラ60とIMU71との空間関係を適切に記述していることになる。
式(m)に含まれるRcamA2B Obs及びRcamA2B Predを取得するためには、測定データ群を取得することが必要である。1つの測定データ群は、ほぼ同時刻に取得された撮像画像と、IMU配向qs2w kの元になるデータ(地磁気ms k,加速度as k,角速度ωs k)とによって構成される。以下、測定データ群の取得を含め、カメラ60とIMU71との間の空間関係を表す回転行列Rcam2imuの導出手順を具体的に説明する。
図7は、キャリブレーション処理を示すフローチャートである。この処理は、回転行列Rcam2imuを求めることを目的としている。処理部167つまりCPU140は、ユーザーからの指示を契機として、ROM121に格納されたプログラムを実行することで、キャリブレーション処理を実現する。キャリブレーション処理は、データ収集処理(S600)と、算出処理(S700)とから構成される。
データ収集処理の概要を説明する。キャリブレーションの精度を確保するために、データは、異なるビュー角から収集され、かつ、有効作動範囲の全範囲をカバーすることが望ましい。全作動範囲は、10(又はそれを超える)ビューに分割される。作動範囲は半球である。キャリブレーションの期間中、収集されたデータが入るビューは、ハイライトされる。ユーザーは、容易にどのビューがカバーされ、どのビューがカバーされていないかを理解することができるから、ユーザーはどこでデータを収集すべきかを把握することができる。最低限のデータが収集された場合には、ユーザーにはその旨が通知される。本実施形態では、ビューは、カメラ60に対する実物マーカーMKの姿勢(カメラ60の座標系で表わされた実物マーカーMKの姿勢)によって表されている。
図8は、データ収集処理を示すフローチャートである。まず、測定データ群を取得すべきビューに向けて、ゆっくり移動を続けることをユーザーに催促する(S610)。この結果、ユーザーは、マークされていないビューに向けて、ゆっくり移動を続ける。この催促について、図9を用いて説明する。
図9は、表示画像IM4を示す。表示画像IM4は、S610を実現するための画像である。測定データ群の取得のためには、カメラ60によって実物マーカーMKを撮像することが必要である。ユーザーは、測定データ群の取得中に実物マーカーMKを動かさないように、予め指示されている。
表示画像IM4は、複数のドットDTを含む。複数のドットDTは、半球画像IMhb1を構成する。図10は、半球IMhb2を示す。複数のドットDTはそれぞれ、半球IMhb2上に配置されている。
複数のドットDTそれぞれは、3つの色の何れかに着色される。青色の青ドットDTbは、まだ測定データ群が得られていないビューを表す。緑色の緑ドットDTgは、既に測定データ群が得られたビューを表す。黄色の黄ドットDTyは、さらに多くの測定データ群を取得すべきビューを表している。
ユーザーは、青ドットDTbや黄ドットDTyが1つでも表示されていると、これらのドットDTが示すビューに向かって移動するように、予め指示されている。つまり、青ドットDTbや黄ドットDTyを表示することは、測定データ群を取得すべきビューに向けて、ゆっくり移動を続けることをユーザーに催促することになる。
全てのドットDTが緑ドットDTgになると、所定の空間関係の全てに亘って、測定データ群が取得し終わったことをユーザーに伝えることができる。
S610が実行されている間、測定データ群の取得が済んでいないビューにおいて、測定データ群を取得する(S620)。つまり、S620の処理は、実物マーカーMKの撮像と、IMU配向qs2w kの元になるデータ(地磁気ms k,加速度as k,角速度ωs k)との検出を含む。そして、取得した測定データ群に含まれる撮像画像からマーカー姿勢を検出する(S630)。続いて、取得した測定データ群からIMU配向qs2w kを取得する(S635)。
次に、質計測関数Q(data)の算出する(S640)。測定データ群の質は、質計測関数Q(data)によって評価される。Q(data)は、IMU配向qs2w kとマーカー姿勢の双方から決定される。つまりQ(data)はIMU配向qs2w kとマーカー姿勢との関数であり、言い換えると測定データ群の関数である。具体的には、質計測関数Q(data)は、或る1つの測定データ群と、他の1つの測定データ群とが信頼できるか否かを判定するための値を出力する。以下、或る1つの測定データと、他の1つの測定データ群とをまとめて、データ対ともいう。
IMU配向qs2w kにノイズが多い場合(例えば、スパイク、またはランダム値が検出される場合)には、データの質は、貧弱である。ユーザーの動きが速くなれば、IMU配向qs2w kの質は悪化する。いくつかのビューにおいて、ジッター(ジッタリング)や、撮像画像におけるモーションブラーがある場合には、撮像画像の質が低下し、取得されるマーカー姿勢は信頼できないものとなる。
IMU配向qs2w kが貧弱である場合、またはマーカー姿勢が信頼できないものである場合、Q(data)の値は小さい。データ対を構成する2つの測定データ群同士の比較において、角度差が十分には大きくない場合、または時間差がとても大きい場合には、このデータ対は信頼できない。
例えば、Q(data)は次式のように定義され得る。
Q(data)=a*Stdev(IMUdata)/CIMU
+b*AngleMarkerPose(data)/CAngleMarkerPose
+c*AngleIMU(data)/CAngleIMU・・・(n)
Q(data)=a*Stdev(IMUdata)/CIMU
+b*AngleMarkerPose(data)/CAngleMarkerPose
+c*AngleIMU(data)/CAngleIMU・・・(n)
a,b,cは重み係数である。Stdev(IMUdata)はIMU配向qs2w kの標準偏差であり、IMU配向qs2w kの安定性を計測するものである。AngleMarkerPose(data)は、2つのマーカー姿勢の間の角度である。この角度は、データ対に含まれる2つの撮像画像から取得される。AngleIMU(data)は、2つのIMU配向qs2w kの間の角度である。CIMU、CAngleMarkerPose及びCAngleIMUは、規格化定数である。
S640の後、Q(data)が閾値Qthよりも大きいかを判定する(S650)。Q(data)が閾値Qth以下の場合(S650,NO)、S620に戻る。この場合、取得されたデータ対は、捨てられることになる。
Q(data)が閾値Qthよりも大きい場合(S650,YES)、Q(data)は良好であるので、対応する視野にデータを挿入する(S660)。つまり、マーカー姿勢とIMU配向qs2w kとを対応するビューに対応付けて記憶する。そして、図10と共に説明したようにドットの色を変更する(S670)。つまり、収集されたデータのビュー範囲を示す半球部分をマークする。
続いて、全ビューについて測定が完了したかを判定する(S680)。全ビューについて測定が完了していない場合(S680,NO)、S610に戻る。全ビューについて測定が完了した場合(S680,YES)、データ収集処理を終え、算出処理を実行する(S700)。
本実施形態における算出処理は、複数の演算から構成されるが、フローチャートを用いずに説明する。本実施形態における算出処理は、非線形のコスト関数を定義して、定義したコスト関数を最小化することで、キャリブレーションの誤差を低減する最適化を実行する。コスト関数としては、ガウス・ニュートン法を用いたエネルギー関数が用いられる。ガウス・ニュートン法を用いたコスト関数Eは、式(m)のeを用いて、次式で表される。
この方法は、初期推定値から開始して、次式による繰り返し計算によって進行する。
rn=rn-1+Δr・・・(o)
ここで、増分Δrは正規方程式の解である。
式(2)のeは、eのヤコビ行列Jrを用いて、次式で表される。
e=-JrΔr・・・(p)
ヤコビ行列Jrは、rの関数であるので、J(r)として次のように記述できる。
Jr=J(r)=∂e/∂r・・・(q)
rn=rn-1+Δr・・・(o)
ここで、増分Δrは正規方程式の解である。
式(2)のeは、eのヤコビ行列Jrを用いて、次式で表される。
e=-JrΔr・・・(p)
ヤコビ行列Jrは、rの関数であるので、J(r)として次のように記述できる。
Jr=J(r)=∂e/∂r・・・(q)
ガウス・ニュートン法の2乗和を最小化するには、次式を解けばよい。
min||e+JrΔr||・・・(r)
min||e+JrΔr||・・・(r)
増分Δrは、次式で算出される。
Δr=-(Jr TJr)-1Jr Te・・・(s)
Δr=-(Jr TJr)-1Jr Te・・・(s)
本実施形態の目的の一つは、回転行列Rcam2imuを推定することである。回転行列は、一般的に、オイラー角を用いて表され得る。具体的には、次式で表される。
R=Rz(γ)*Ry(β)*Rx(α)・・・(t)
R=Rz(γ)*Ry(β)*Rx(α)・・・(t)
結果としてRcam2imuは次式で表される。
Rcam2imu=Rz(γ)*Ry(β)*Rx(α)・・・(u)
Rcam2imu=Rz(γ)*Ry(β)*Rx(α)・・・(u)
式(u)より、本実施形態では、未知のrが次式で定義される。
r=[α,β,γ]・・・(v)
よって、式(q)は、次のように表すこともできる。
J(r)=[∂e/∂α,∂e/∂β,∂e/∂γ]・・・(w)
よって、rを最適化することによって、最適なRcam2imuを決定することができる。
式(q)は、次式に変形できる。
r=[α,β,γ]・・・(v)
よって、式(q)は、次のように表すこともできる。
J(r)=[∂e/∂α,∂e/∂β,∂e/∂γ]・・・(w)
よって、rを最適化することによって、最適なRcam2imuを決定することができる。
式(q)は、次式に変形できる。
ところで、一般的に、アークコサインの合成関数の微分は、次式で表される。
ここで、xを次式で定義すると、式(5)は式(4-2)の2倍に等しくなる。2倍になるのは式(4-2)に含まれる*0.5を無視したからである。定数倍(*0.5)を無視しても、rの最適化には影響がないので、以下、*0.5を無視する。
RcamA2B Obsは、rの関数ではない。よって、式(6)より、式(5)に含まれる∂x/∂rは次式になる。
式(7)の右辺に含まれる偏微分は、式(d)より次式になる。なお、次式及び後述する式(12),(13),(14)におけるRcam2imu -1は、Rcam2imu′と同じ行列である。Rcam2imu -1は、Rcam2imuの逆行列である。Rcam2imu′は、Rcam2imuの転置行列である。
式(8)に含まれる∂Rcam2imu/∂rは、式(u)より、次式で表される。
∂Rcam2imu/∂r=∂{Rz(γ)*Ry(β)*Rx(α)}/∂r・・・(x)
前式に関し、rに含まれるαについては、次式で表される。
∂Rcam2imu/∂α=Rz(γ)*Ry(β)*∂{Rx(α)}/∂α・・・(y)
前式に含まれる∂{Rx(α)}/∂αは、式(3)より、次式で表される。
∂Rcam2imu/∂r=∂{Rz(γ)*Ry(β)*Rx(α)}/∂r・・・(x)
前式に関し、rに含まれるαについては、次式で表される。
∂Rcam2imu/∂α=Rz(γ)*Ry(β)*∂{Rx(α)}/∂α・・・(y)
前式に含まれる∂{Rx(α)}/∂αは、式(3)より、次式で表される。
rに含まれるβについては、次式で表される。
∂Rcam2imu/∂β=Rz(γ)*∂{Ry(β)}/∂β*Rx(α)・・・(z)
前式に含まれる∂{Ry(β)}/∂βは、式(3)より、次式で表される。
∂Rcam2imu/∂β=Rz(γ)*∂{Ry(β)}/∂β*Rx(α)・・・(z)
前式に含まれる∂{Ry(β)}/∂βは、式(3)より、次式で表される。
rに含まれるγについては、次式で表される。
∂Rcam2imu/∂γ=∂{Rz(γ)}/∂γ*Ry(β)β*Rx(α)・・・(aa)
前式に含まれる∂{Rz(γ)}/∂γは、式(3)より、次式で表される。
∂Rcam2imu/∂γ=∂{Rz(γ)}/∂γ*Ry(β)β*Rx(α)・・・(aa)
前式に含まれる∂{Rz(γ)}/∂γは、式(3)より、次式で表される。
式(4-2),(5),(6),(7)より、次式が成立する。
∂Rcom2imu/∂αは式(y)および式(9)によって算出される。さらに、β及びγの場合についても以下に示すようにαの場合と同様である。∂Rcom2imu/∂βは式(z)および式(10)によって算出される。∂Rcom2imu/∂γは式(aa)および式(11)によって算出される。
以上によって、収集データとRcam2imuの初期推定値とからJrが算出でき、ひいては式(r)を解くことができる。式(r)を解けば、最適なRcam2imuを決定することができる。
本実施形態によれば、IMU−カメラキャリブレーションのために、オフラインで利用可能なユーザーフレンドリーなセットアップに関するソリューションが実現される。本ソリューションにおいて、ユーザーは、平面ターゲットを垂直にアラインする必要がなく、しかも2つめのIMUが必要とされない。その代わり、実物マーカーMKが用いられる。本実施形態において、自動的なユーザーフレンドリーなガイド付きキャリブレーション手続は、全動作レンジにおけるデータ収集が完全となることを保証する。
つまり、本実施形態によれば、垂直にアラインされたパターンも、2つ目のIMUも必要としない。ユーザーにとって、本実施形態の方法をセットアップすることも、利用することも簡単である。さらに、ユーザーに親切なガイド付き手順を提供し、全作動範囲において要求されるデータが収集されることを確実にすることによって、全体的な精度が改善される。
実施形態2を説明する。実施形態2の説明は、実施形態1と異なる点を主な対象とする。特に説明しない内容は、実施形態1と同じである。
図11は、実施形態2の算出処理を示すフローチャートである。まず、重み付けを考慮してコスト関数を計算する(S710)。具体的には、適応的重み付けスキーム(Adaptive weighting scheme又はAdaptive weighting schema)を用いる。適応的重み付けスキームは、適応型重みづけ融合方法と言い換えることができる。
適応的重み付けスキームについて説明する。データ収集処理において、或るビューについて、他のビューよりも、多くのデータが収集されてもよい。但し、全てのデータ対の重みが等しい場合には、データがより多く集められたビューが、他のビューよりも、全体の結果に影響をより与えることになり、結果を予期しない方向に導き得る。
本実施形態では、データ対のそれぞれの重みが、データ対が関連付けられたビューに基づき調整される。具体的には、或るビューについてより多くのデータが収集された場合には、これらのデータの重みの和は、このビューの重みに等しくする。こうすれば、そのビューのデータが全体のキャリブレーション結果に対して過度に影響を与えることはない。
それぞれのデータは、複数の重み(重み係数)を有する。その最終的な重みは、自動的に融合される。本実施形態では、IMU71のノイズレベルと、動きの種類と、マーカー姿勢と、ジッターレベルと、モーションブラーと、ビュー角と、ビューのデータ密度とを融合することによって、重みを融合する。
例えば、i番目のデータについて、IMU71のノイズレベルによって重みwi_noiseが決定される。IMU71のノイズが大きい場合には重みはより小さくなる。ジッターによって重みwi_jitterが決定される。ジッターのノイズが大きい場合には重みはより小さくなる。他の形態として、異なる融合方法が検討されてもよい。例えば、最も簡単な方法は、全て重みを掛け合わせることである。トレーニングベースの方法も適用できる。
重み係数を考慮したコスト関数は、次式のように表記される。次式において、nは収集されたデータ対の合計数であり、wiは重み係数である。eiは、実施形態1で説明した通りである。
最後に、ロバスト推定を実施する(S720)。つまり、ロバスト推定器(ロバスト推定量)を用いて、IMU−カメラパラメーターで或る回転行列Rcam2imuを算出する。本実施形態においては、ロバスト推定としてM推定を採用する。ロバスト推定は、他のデータから極端に外れたデータ(アウトライアー)が推定量に与える影響を小さくする。ロバスト推定は周知なので、ロバスト推定についての詳しい説明は省略する。
本実施形態によれば、適応型重みづけ融合方法とM推定器とを使用し、徐々にアウトライアサンプルの影響を低減することができる。
実施形態3を説明する。実施形態3の説明は、実施形態2と異なる点を主な対象とする。特に説明しない内容は、実施形態2と同じである。
制御部10が水平なテーブルまたは垂直な壁に置かれている場合には、実物マーカーMKが水平または垂直に配置されるので、コスト関数は次式のように変形される。
式(16)におけるVi1IMU,Vi2IMUは、IMU71による垂直の計測値(ベクトル)である。iは、i番目のデータ対を表し、2つの位置それぞれの計測(i1及びi2)を含む。Vi1marker,Vi2markerは、カメラ60による対応する計測値(ベクトル)であり、或るシーンの消失点から導出され、マーカー姿勢から計算され得る。θi1は、2つのベクトルVi1IMUとVi1Markerとの間の角度である。α及びβは、重み係数である。α+β=1である。
マーカーが水平面にも垂直面にもない場合には、βはゼロにセットされ、αは1にセットされる。この場合、式(16)は、式(15)と同じになる。
本発明は、本明細書の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現できる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、先述の課題の一部又は全部を解決するために、あるいは、先述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせができる。その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除できる。例えば、以下のものが例示される。
実施形態として開示した技術を適用する装置は、HMD以外の撮像装置でもよい。例えば、画像を表示する機能を有しない撮像装置でもよい。
カメラは、IMUに対する相対位置が固定されていてもよいし、画像表示部に対する相対位置が固定されていてもよい。
実物マーカーは、制御部に設けられていなくてもよい。例えば、HMDとは別体の付属品として形成されていてもよい。
カメラは、IMUに対する相対位置が固定されていてもよいし、画像表示部に対する相対位置が固定されていてもよい。
実物マーカーは、制御部に設けられていなくてもよい。例えば、HMDとは別体の付属品として形成されていてもよい。
上記実施形態において、ソフトウエアによって実現された機能及び処理の一部又は全部は、ハードウエアによって実現されてもよい。ハードウエアによって実現された機能及び処理の一部又は全部は、ソフトウエアによって実現されてもよい。ハードウエアとしては、例えば、集積回路、ディスクリート回路、または、それらの回路を組み合わせた回路モジュールなど、各種回路を用いてもよい。
10…制御部、20…画像表示部、21…右保持部、22…右表示駆動部、23…左保持部、24…左表示駆動部、26…右光学像表示部、28…左光学像表示部、40…接続部、42…右コード、44…左コード、46…連結部材、48…本体コード、51…送信部、52…送信部、53…受信部、60…カメラ、61…カメラ基部、62…レンズ部、71…IMU、90…装着帯、91…装着基部、92…ベルト部、93…連結部、100…HMD、121…ROM、122…RAM、130…電源、135…操作部、139…識別対象記憶部、140…CPU、150…オペレーティングシステム、160…画像処理部、165…マーカー識別部、167…処理部、170…音声処理部、180…インターフェース、190…表示制御部、201…右バックライト制御部、202…左バックライト制御部、211…右LCD制御部、212…左LCD制御部、221…右バックライト、241…液晶ディスプレイ、251…右投写光学系、261…右導光板、262…左導光板、300…融合部、310…測定部、311…ローパスフィルター、312…ローパスフィルター、320…予測部、330…更新部、340…重力キャンセル部、350…回転変換部、360…遅延器
Claims (5)
- 撮像部と、慣性センサーと、処理部と、を備えた装置の前記処理部に、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第1の姿勢の場合に撮像された撮像画像である第1の撮像画像と、前記慣性センサーが第2の姿勢の場合に撮像された撮像画像である第2の撮像画像と、を取得する手順と、
前記第1の姿勢と前記第2の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第1の撮像画像と、前記第2の撮像画像と、前記姿勢の相違と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行させるためのプログラム。 - 前記撮像部は、前記慣性センサーに対して可動である
請求項1に記載のプログラム。 - 前記装置は、画像を表示可能な表示部を有し、
前記撮像部は、前記表示部に対する相対位置が可動である
請求項1又は請求項2に記載のプログラム。 - 撮像部と、慣性センサーと、処理部と、を備え、
前記処理部は、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第1の姿勢の場合に撮像された撮像画像である第1の撮像画像と、前記慣性センサーが第2の姿勢の場合に撮像された撮像画像である第2の撮像画像と、を取得する手順と、
前記第1の姿勢と前記第2の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第1の撮像画像と、前記第2の撮像画像と、前記姿勢の変化と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行する装置。 - 撮像部と、慣性センサーと、処理部と、を備える装置の前記処理部が、
前記撮像部によって撮像された実物マーカーの撮像画像として、前記慣性センサーが第1の姿勢の場合に撮像された撮像画像である第1の撮像画像と、前記慣性センサーが第2の姿勢の場合に撮像された撮像画像である第2の撮像画像と、を取得する手順と、
前記第1の姿勢と前記第2の姿勢との姿勢の相違を、前記慣性センサーの出力に基づき取得する手順と、
前記第1の撮像画像と、前記第2の撮像画像と、前記姿勢の変化と、に基づいて、前記撮像部と前記慣性センサーとの間の空間関係を導出する手順と、
を実行するキャリブレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016118947A JP2017224984A (ja) | 2016-06-15 | 2016-06-15 | プログラム、装置、キャリブレーション方法 |
US15/612,293 US10061382B2 (en) | 2016-06-15 | 2017-06-02 | Program, device, and calibration method for a camera and an inertial sensor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016118947A JP2017224984A (ja) | 2016-06-15 | 2016-06-15 | プログラム、装置、キャリブレーション方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017224984A true JP2017224984A (ja) | 2017-12-21 |
Family
ID=60677453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016118947A Pending JP2017224984A (ja) | 2016-06-15 | 2016-06-15 | プログラム、装置、キャリブレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10061382B2 (ja) |
JP (1) | JP2017224984A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019216000A1 (ja) * | 2018-05-08 | 2019-11-14 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP2020042811A (ja) * | 2018-09-07 | 2020-03-19 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | クロック同期方法とその装置、機器、記憶媒体及び車両 |
WO2022193318A1 (zh) * | 2021-03-19 | 2022-09-22 | 深圳市大疆创新科技有限公司 | 外参标定方法、装置、可移动平台及计算机可读存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10365710B2 (en) * | 2017-06-23 | 2019-07-30 | Seiko Epson Corporation | Head-mounted display device configured to display a visual element at a location derived from sensor data and perform calibration |
US10835809B2 (en) | 2017-08-26 | 2020-11-17 | Kristina Contreras | Auditorium efficient tracking in auditory augmented reality |
WO2020024909A1 (zh) * | 2018-08-02 | 2020-02-06 | 广东虚拟现实科技有限公司 | 定位跟踪方法、终端设备及计算机可读取存储介质 |
CN113168224A (zh) * | 2018-11-27 | 2021-07-23 | 索尼集团公司 | 信息处理装置、信息处理方法及程序 |
RU2729512C1 (ru) * | 2019-12-09 | 2020-08-07 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Рязанский государственный радиотехнический университет имени В.Ф. Уткина" | Способ косвенного измерения дальности от маневрового тепловоза до вагона на прямолинейном участке железнодорожного пути |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4007899B2 (ja) * | 2002-11-07 | 2007-11-14 | オリンパス株式会社 | 運動検出装置 |
JP2005038321A (ja) | 2003-07-18 | 2005-02-10 | Canon Inc | ヘッドマウントディスプレイ装置 |
JP4734640B2 (ja) | 2006-02-10 | 2011-07-27 | 国立大学法人岐阜大学 | 仮想現実画像表示装置 |
US10444845B2 (en) * | 2012-12-21 | 2019-10-15 | Qualcomm Incorporated | Display of separate computer vision based pose and inertial sensor based pose |
-
2016
- 2016-06-15 JP JP2016118947A patent/JP2017224984A/ja active Pending
-
2017
- 2017-06-02 US US15/612,293 patent/US10061382B2/en active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019216000A1 (ja) * | 2018-05-08 | 2019-11-14 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
US11282228B2 (en) | 2018-05-08 | 2022-03-22 | Sony Corporation | Information processing device, information processing method, and program |
JP2020042811A (ja) * | 2018-09-07 | 2020-03-19 | バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド | クロック同期方法とその装置、機器、記憶媒体及び車両 |
US11363192B2 (en) | 2018-09-07 | 2022-06-14 | Apollo Intelligent Driving Technology (Beijing) Co., Ltd. | Method, and apparatus for clock synchronization, device, storage medium and vehicle |
WO2022193318A1 (zh) * | 2021-03-19 | 2022-09-22 | 深圳市大疆创新科技有限公司 | 外参标定方法、装置、可移动平台及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10061382B2 (en) | 2018-08-28 |
US20170371406A1 (en) | 2017-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6565465B2 (ja) | 画像表示装置、コンピュータープログラム、および画像表示システム | |
JP2017224984A (ja) | プログラム、装置、キャリブレーション方法 | |
US10365710B2 (en) | Head-mounted display device configured to display a visual element at a location derived from sensor data and perform calibration | |
US9401050B2 (en) | Recalibration of a flexible mixed reality device | |
US10269139B2 (en) | Computer program, head-mounted display device, and calibration method | |
JP6514089B2 (ja) | 情報処理装置、情報処理システム、および情報処理方法 | |
US10373334B2 (en) | Computer program, object tracking method, and object tracking device | |
US11200646B2 (en) | Compensation for deformation in head mounted display systems | |
EP3301545B1 (en) | Computer program, object tracking method, and display device | |
CN111194423A (zh) | 头戴式显示器跟踪系统 | |
CN114189789A (zh) | 用于个性化声传递函数的动态确定的音频系统 | |
EP3631600B1 (en) | Dynamic control of performance parameters in a six degrees-of-freedom sensor calibration subsystem | |
CN114761909A (zh) | 针对头戴式显示器的内容稳定 | |
US11914762B2 (en) | Controller position tracking using inertial measurement units and machine learning | |
US10248191B2 (en) | Virtual rigid framework for sensor subsystem | |
US20180144500A1 (en) | Computer program, pose derivation method, and pose derivation device | |
US11917120B2 (en) | Eyewear with strain gauge estimation | |
JP6485819B2 (ja) | 視線検出システム、ずれ検出方法、ずれ検出プログラム | |
WO2022146858A1 (en) | Controller position tracking using inertial measurement units and machine learning | |
WO2023157498A1 (ja) | 情報処理装置、デバイス速度推定方法およびデバイス位置推定方法 | |
US20230319476A1 (en) | Eyewear with audio source separation using pose trackers | |
WO2024085904A1 (en) | Systems and methods for estimating a bias of an inertial measurement unit | |
WO2024112351A1 (en) | System and method for offline calibration of a motion-tracking device | |
EP4396780A1 (en) | System and method for offline calibration of a motion-tracking device | |
JP2017215262A (ja) | 検出方法、被検出物、及びシステム |