JP2023020877A - ポーズを推定する方法及び装置 - Google Patents
ポーズを推定する方法及び装置 Download PDFInfo
- Publication number
- JP2023020877A JP2023020877A JP2022076437A JP2022076437A JP2023020877A JP 2023020877 A JP2023020877 A JP 2023020877A JP 2022076437 A JP2022076437 A JP 2022076437A JP 2022076437 A JP2022076437 A JP 2022076437A JP 2023020877 A JP2023020877 A JP 2023020877A
- Authority
- JP
- Japan
- Prior art keywords
- pose
- current state
- feature point
- state variable
- estimating
- 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 49
- 230000033001 locomotion Effects 0.000 claims abstract description 76
- 230000003190 augmentative effect Effects 0.000 claims description 21
- 230000000007 visual effect Effects 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 11
- 230000004807 localization Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 7
- 239000004984 smart glass Substances 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 5
- 230000009471 action Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000009877 rendering Methods 0.000 claims 1
- 238000005259 measurement Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001603 reducing effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- 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
-
- 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
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
- G06T7/248—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Graphics (AREA)
- General Health & Medical Sciences (AREA)
- Optics & Photonics (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
【課題】ポーズを推定する方法及び装置を提供する。【解決手段】一実施形態によれば、プロセッサによって実現されるポーズを推定する方法は、イメージセンサから受信した、複数の映像フレームを含む映像情報から抽出した特徴点の位置を追跡し、動きセンサから受信した動き情報に基づいて電子装置のポーズを決定する推定モデルの現在状態変数を予測し、映像フレームから抽出した特徴点の第1位置と現在状態変数に基づいて予測された特徴点の第2位置との間の残差に基づいて、推定モデルの不確実性によるノイズを決定し、現在状態変数、追跡した特徴点の位置、及びノイズに基づいて現在状態変数を更新し、更新された現在状態変数に基づいて電子装置のポーズを決定する。【選択図】図4
Description
以下の開示は、ポーズを推定する方法及び装置に関する。
仮想現実(virtual reality;VR)、拡張現実(augmented reality;AR)又は混合現実(mixed reality;MR)を実現できる電子機器が提供される。そのうち、拡張現実は、現実世界の環境上に仮想のオブジェクトや情報を結合して示すディスプレイ技術である。拡張現実は、例えば、ユビキタス(ubiquitous)環境や事物インターネット(internet of things;IoT)環境で様々に活用され得る。拡張現実は、外部前景と仮想映像の結合によって様々な情報をユーザにより実感できるよう伝達することができる。
実施形態によれば、フィルタ基盤のVIO(Visual Inertial Odometry)において、モデルの不確実性を算出し、測定値アップデート時に算出結果を反映することによって、様々な環境でフィルタ基盤のVIOを使用する場合にアルゴリズムの強靭性を確保し、動的な振れが少ない安定的な位置推定結果を提供することにある。
一実施形態に係るプロセッサによって実現されるポーズを推定する方法は、イメージセンサから受信した、複数の映像フレームを含む映像情報から抽出した特徴点の位置を追跡する動作と、動きセンサから受信した動き情報に基づいて、前記電子装置のポーズを決定する推定モデルの現在状態変数を予測する動作と、前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定する動作と、前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて、前記現在状態変数を更新する動作と、前記更新された現在状態変数に基づいて、前記電子装置のポーズを決定する動作とを含む。
前記ノイズを決定する動作は、前記映像フレームのうち、現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差を決定する動作と、前記残差に基づいて前記推定モデルの不確実性によるノイズを決定する動作とを含むことができる。
前記ノイズを決定する動作は、前記現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を正解(Ground-Truth)と誤差の和として表現することによって前記ノイズを決定する動作を含むことができる。
前記ノイズを決定する動作は、前記残差を正解と誤差の和として表現した結果を前記推定モデルのチューニングパラメータによって近似化することで前記ノイズを決定する動作を含むことができる。
前記推定モデルの不確実性は、拡張されたカルマンフィルター(Extended Kalman filter)方式のSLAM(Simultaneous Localization and Mapping)方式による推定共分散に基づいて決定されることができる。
前記現在状態変数を予測する動作は、前記動き情報及び前記映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、前記映像フレームのうち現在映像フレームに対応する現在状態変数及び前記以前状態変数の誤差共分散を予測する動作を含むことができる。
前記現在状態変数を更新する動作は、前記現在状態変数、前記以前状態変数の誤差共分散、前記追跡した特徴点の位置及び前記ノイズに基づいて、前記現在状態変数を更新する動作を含むことができる。
前記特徴点の位置を追跡する動作は、前記映像フレームのうち現在映像フレームに含まれた第2特徴点を抽出する動作と、前記映像フレームのうち、前記現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と前記第2特徴点との間のマッチングを介して前記第2特徴点の位置を追跡する動作とを含むことができる。
前記推定モデルは、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry:VIO)を用いた推定モデルを含むことができる。
前記電子装置は、スマートグラスを含むウェアラブルデバイスと、AR(Augmented Reality)機器、VR(Virtual Reality)機器、及びMR(Mixed Reality)機器を含むヘッドマウントデバイス(Head Mounted Device:HMD)のいずれか1つ又は2以上を含むことができる。
一実施形態に係るポーズを推定する装置は、複数の映像フレームを含む映像情報を検出するイメージセンサと、前記電子装置の動き情報を検出する動きセンサと、前記映像情報から特徴点を抽出して追跡し、前記動き情報に基づいて前記電子装置のポーズを決定する推定モデルの現在状態変数を予測し、前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定し、前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新し、前記更新された現在状態変数に基づいて前記電子装置のポーズを決定する1つ以上のプロセッサとを含む。
前記ノイズを決定するために、前記1つ以上のプロセッサは、前記映像フレームのうち現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を決定し、前記残差に基づいて、前記推定モデルの不確実性によるノイズを決定することができる。
前記ノイズを決定するために前記1つ以上のプロセッサは、前記現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を正解と誤差の和として表現することによって前記ノイズを決定することができる。
前記ノイズを決定するために前記1つ以上のプロセッサは、前記残差を正解と誤差の和として表現した結果を、前記推定モデルのチューニングパラメータによって近似化することで前記ノイズを決定することができる。
前記推定モデルの不確実性は、拡張されたカルマンフィルター方式のSLAM(Simultaneous Localization and Mapping)方式による推定共分散に基づいて決定されることができる。
前記現在状態変数を予測するために、前記1つ以上のプロセッサは、前記動き情報及び前記映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、前記映像フレームのうち現在映像フレームに対応する現在状態変数及び前記以前状態変数の誤差共分散を予測することができる。
前記現在状態変数を更新するために、前記1つ以上のプロセッサは、前記現在状態変数、前記以前状態変数の誤差共分散、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新することができる。
前記特徴点の位置を追跡するために、前記1つ以上のプロセッサは、前記映像フレームのうち現在映像フレームに含まれた第2特徴点を抽出し、前記映像フレームのうち前記現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と前記第2特徴点との間のマッチングを介して前記第2特徴点の位置を追跡することができる。
前記推定モデルは、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry:VIO)を用いた推定モデルを含むことができる。
前記電子装置は、スマートグラスを含むウェアラブルデバイスと、AR機器、VR機器、及びMR機器のいずれか1つ又は2以上を含むヘッドマウントデバイスのいずれか1つ又は2以上を含むことができる。
一実施形態に係るウェアラブル電子装置は、複数の映像フレームを含む映像情報を検出するイメージセンサと、前記ウェアラブル電子装置の動き情報を検出する動きセンサと、前記映像情報から特徴点を抽出して追跡し、前記動き情報に基づいて前記ウェアラブル電子装置のポーズを決定する推定モデルの現在状態変数を予測し、前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定し、前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新し、前記更新された現在状態変数に基づいて前記ウェアラブル電子装置のポーズを決定し、前記決定されたポーズに基づいて仮想のコンテンツを生成する1つ以上のプロセッサと、前記仮想のコンテンツを表示するディスプレイとを含む。
一実施形態に係るプロセッサによって実現されるポーズを推定する方法は、電子装置のポーズを決定するための推定モデルの現在状態変数を予測する動作と、映像フレームから抽出された特徴点の第1位置と前記現在状態変数に基づいて予測された特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定する動作と、前記ノイズに基づいて前記現在状態変数を更新する動作と、前記更新された現在状態変数に基づいて前記電子装置のポーズを決定する動作と含む。
前記現在状態変数は、動きセンサに対応する状態変数とイメージセンサに対応する状態変数を含むことができる。
前記動きセンサに対応する状態変数は、前記映像フレームのいずれか1つの映像フレームの方向誤差、前記動きセンサのバイアス誤差、速度誤差、加速度誤差、及び位置誤差のいずれか1つ又は2以上の任意の組み合わせを含むことができる。
前記イメージセンサに対応する状態変数は、前記映像フレームのいずれか1つの映像フレームで見える特徴点の位置の誤差を含むことができる。
一態様によれば、フィルタ基盤のVIO(Visual Inertial Odometry)において、モデル不確実性を算出して測定値をアップデートするとき算出結果を反映することで、様々な環境でフィルタ基盤のVIOを使用する場合にアルゴリズムの強靭性を確保し、動的な揺れが少ない安定的な位置推定結果を提供することができる。
実施形態に対する特定な構造的又は機能的な説明は単なる例示のための目的として開示されたものであって、様々な形態に変更されることができる。したがって、実施形態は特定な開示形態に限定されるものではなく、本明細書の範囲は技術的な思想に含まれる変更、均等物ないし代替物を含む。
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素にも命名することができる。
いずれかの構成要素が他の構成要素に「連結」されているか「接続」されていると言及されたときには、その他の構成要素に直接的に連結されているか又は接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
異なるように定義さがれない限り、技術的又は科学的な用語を含んで、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
以下、添付する図面を参照しながら実施形態を詳細に説明する。図面を参照して説明する際に、図面符号に拘わらず同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。
図1及び図2は、一実施形態に係る拡張現実を提供する電子装置の概要(overview)を説明するための図である。
図1を参照すると、電子装置110は、ユーザ100に拡張現実サービスを提供する装置である。拡張現実サービスは、ユーザ100が見る現実世界のイメージに仮想のイメージ、又は仮想のコンテンツを重なって示すサービスである。電子装置110は、ディスプレイ115を介して現実世界の実際のオブジェクト120と共に、現実世界の実際のオブジェクト120に関するコンテンツを含む仮想のイメージ(例えば、図2に示す仮想オブジェクト220)をユーザ100に提供することができる。ユーザ100に見られる仮想のイメージは2Dイメージであってもよく、又は3Dイメージであってもよい。また、仮想のイメージは、動きのない静的イメージであってもよく、又は、アニメーションのように動きを有する動的なイメージであってもよい。電子装置110は、ユーザ100に着用され得るウェアラブル装置であってもよい。電子装置110は、例えば、スマートグラス、VRヘッドセット、又はARヘッドセットを含むHMD(head mounted display)、及びFMD(face mounted display)のようなウェアラブル電子装置であってもよいが、必ずこれに限定されることはない。
図2を参照すると、電子装置110のディスプレイ115を介して提供される拡張現実コンテンツ210の一例が図示されている。以下、説明の便宜のために電子装置110によって提供される仮想コンテンツが拡張現実コンテンツ210である場合について一例に挙げて説明するが、これは、仮想現実コンテンツ及び/又は混合現実コンテンツの提供を排除することはない。
電子装置110、はユーザ100が見る現実世界の実際のオブジェクト120に仮想情報を含む仮想オブジェクト220を整合して拡張現実コンテンツ210を形成(例えば、生成)することができる。拡張現実コンテンツ210は、例えば、現実世界の実際のオブジェクト120からリアルな仮想オブジェクトを複製するものであってもよく、又は、現実世界の実際のオブジェクト120上に仮想のコンピュータグラフィック効果を具現したものであってもよい。仮想のコンピュータグラフィックの効果は、例えば、実際の機械装置上にユーザ説明書のような付加情報又はユーザ説明書を説明する仮想のキャラクターのような付加コンテンツを仮想のイメージで具現化したものであってもよいが、必ずこれに限らない。
例えば、ユーザ100が頭又は視線を動かす場合、ユーザ100が実際のオブジェクト120を見ている視線方向が変わり得る。電子装置110は、視線方向の変化により仮想オブジェクト220を細かく調整することで、ユーザ100に高精密の拡張現実コンテンツ210を提供することができる。電子装置110は、視線方向の変化を精密に測定することで、実際のオブジェクト120と仮想オブジェクト220をナチュラルに整合できる。電子装置110は、ユーザ100が実際のオブジェクト120を見ている場面で仮想オブジェクト220を実際のオブジェクト120に対比される正確な位置に表現することで、実感できる拡張現実コンテンツ210を実現することができる。
電子装置110は、後述するポーズ推定方法を自体に実行(例えば、電子装置は、図8に示すポーズ推定装置800であるか、又は、ポーズ推定装置800を含む)してもよく、又は、別途のポーズを推定(例えば、決定)する装置(以下、「ポーズ推定装置」)(例えば、図8に示すポーズ推定装置800)を介して推定されたポーズが伝達されてもよい。この場合、ポーズ推定装置は、電子装置110の位置測定を行ってもよい。電子装置110の位置測定結果は、ユーザ100の頭の動きやユーザ100が見ている方向を推定するために使用される。ポーズ推定装置により決定される電子装置110のポーズは、電子装置110の位置及び姿勢に関する情報を含んでもよい。電子装置110のポーズは、例えば、6自由度(degrees of freedom;DoF)に表現され、必ずこれに限定されることはない。電子装置110のポーズは、電子装置110を着用したユーザ100のポーズ又は電子装置110に含まれたイメージセンサ(例えば、カメラ)のポーズに対応する。
ポーズ推定装置は、イメージセンサによって取得された映像情報(例えば、図3に示す映像フレーム301)と動きセンサによって取得された動き情報(例えば、IMUセンサデータ)を用いて、電子装置110のポーズを決定することができる。ポーズ推定装置は、電子装置110のポーズを決定するために映像情報と動き情報を共に利用することで、映像情報と動き情報のいずれか1つを用いてポーズを推定する一般的なポーズ推定装置に比べて、電子装置110のポーズを正確かつ効果的に決定することができる。イメージセンサと動きセンサは、電子装置110に含まれてもよい。イメージセンサは、電子装置110の周辺領域のうち少なくとも一部領域(例、ユーザ100の前方領域)を撮影して映像情報を取得することができる。動きセンサは、電子装置110又はユーザ100の動きを測定する。動きセンサは、例えば、加速度センサとジャイロ(gyro)センサを含む慣性センサ(inertial measurement unit;IMU)を含んでもよく、必ずこれに限定されることはない。
ポーズ推定装置は、実際のオブジェクト120を撮影した映像情報から実際のオブジェクト120の特徴点232,233,234,235,236,237,238を抽出し、抽出された特徴点232,233,234,235,236,237,238と事前情報として予め定義又は決定された実際のオブジェクト120の基準特徴点間のマッピングを介して特徴点の位置を追跡することができる。事前情報は、実際のオブジェクト120が基準ポーズにある時の実際のオブジェクト120の表面上に位置する基準特徴点の3次元座標情報を含んでもよい。「特徴点」は、ランドマークに称されてもよい。
ポーズ推定装置は、電子装置110の以前時間の位置に以前時間から現在時間までの動きを反映して特徴点の位置を推定する推定モデルの状態変数を予測することができる。
図3は、一実施形態に基づいてポーズを推定する方法を概念的に示した図である。図3を参照すると、一実施形態に係るポーズ推定装置が視覚的慣性距離計(Visual Inertial Odometry;VIO)に基づいたSLAM(Simultaneous LocalizationAnd Mapping)手法によりポーズを推定するための構成が示されている。
視覚的慣性距離計(VIO)は、カメラのようなイメージセンサを介して取得した映像情報(例えば、映像フレーム301)及び慣性センサによって取得した動き情報(例えば、IMUセンサデータ303)とを融合して該当装置の位置、速度、及び姿勢値を推定する技術である。「映像情報」は、カメラのようなイメージセンサから得られる映像である。カメラは、IMUセンサと反対に低速の動きで比較的に正確なモーションを検出することができる。「動き情報」は、IMUセンサに加えられる動きを測定した情報である。より具体的に、動き情報は、IMU(Inertial Measurement Unit)にある加速度系(accelerometer)とジャイロスコープ(gyroscope)から該当装置が受けている力、加速、回転などを含んでもよい。
SLAMは、ローカライゼーション(localization)とマッピングを同時に行いながら位置を推定していく技術である。SLAMは、映像情報と動き情報を共に使用する視覚的慣性距離計(VIO)を要素技術として使用することができる。
SLAMにおいて、リアルタイムに位置を推定するローカライゼーション(localization)を実行する際に視覚的慣性距離計(VIO)が用いられてもよい。
ポーズ推定装置で使用する視覚的慣性距離計(VIO)に基づいたSLAMは、大きくフロントエンド(front-end)310とバックエンド(back-end)330の2種類に構成される。
フロントエンド310において、ポーズ推定装置は、映像情報(例えば、映像フレーム301)から特徴点を抽出する(312)。「特徴点」は、映像フレーム301で色や明るさの変化が明確で全体的なイメージの特徴を表現できる地点を意味する。フロントエンド310において、ポーズ推定装置は、連続的にキャプチャーされた映像フレーム301で特徴点間のマッチングを介して同じ特徴点を追跡する(314)。このように互いにマッチングされる特徴点を追跡した情報は、バックエンド330でポーズ推定装置(例えば、電子装置110)のポーズを推定するために使用される。
バックエンド330において、ポーズ推定装置は、フロントエンド310から伝達されたマッチングされた特徴点及び慣性センサによって取得した動き情報(例えば、IMUセンサデータ303)に基づいて特徴点の現在位置を推定し(332)、推定した特徴点の現在位置に基づいてポーズ推定装置のポーズを推定する(334)。ポーズ推定装置は、リアルタイムに推定したポーズを出力する(350)。
バックエンド330において、ポーズ推定装置は、回帰的(recursive)なフィルタ方式に基づいて、映像フレームごとに現在映像フレームと以前映像フレームから見つかった特徴点及び動き情報を用いて、推定モデルに基づいてポーズを推定することができる。推定モデルとして、例えば、EKF(Extended Kalman Filter)、UKF(Unscented Kalman Filter)、及びEIF(Extended Information Filter)などのようにカルマンフィルターに基づいた様々な推定モデルが使用される。以下、説明の便宜のために、EKF(Extended Kalman Filter)に基づいた推定モデルの動作を中心に説明するが、必ずこれに限定されることはない。カルマンフィルター(Kalman filter)は、状態予測と測定値アップデートを繰り返し行ってポーズを推定することができる。拡張されたカルマンフィルター(EKF)は、カルマンフィルターを非線型(nonlinear)のモデルに拡張して使用する方式である。
一実施形態に係るポーズ推定装置は、フレームごとに繰り返しポーズを推定するフィルタ基盤の視覚的慣性距離計(VIO)によって演算効率性を向上させることで、少ない演算量を求めるAR、VR機器においてもより正確に位置を推定することができる。
図4は、一実施形態に係るポーズ推定装置の動作を説明するための図である。図4を参照すると、一実施形態に係るポーズを推定する装置(「ポーズ推定装置」)400は、イメージセンサ401、動きセンサ403、特徴点抽出及び追跡部410、動き情報取得部420、状態予測部430、測定値更新部440、及びモデル不確実性算出部450を含む。
特徴点抽出及び追跡部410及び動き情報取得部420は、前述したフロントエンド310に対応する。動き情報取得部420、状態予測部430、測定値更新部440、及びモデル不確実性算出部450は、前述したバックエンド330に対応する。
ポーズ推定装置400は、例えば、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry;VIO)を用いた推定モデルによって実行される状態予測と測定値更新を介してポーズを推定することができる。したがって、推定モデルが不正確であるほど、ポーズの推定正確度は低下する。
一実施形態に係るポーズ推定装置400は、推定モデルの不確実性を考慮してポーズの推定正確度が低下することを防止できる。
ポーズ推定装置400は、イメージセンサ401でキャプチャーされた映像情報(例えば、映像フレーム)及び動きセンサ403から検出された慣性センサ情報を受信する。
特徴点抽出及び追跡部410は、映像情報(例えば、現在映像フレーム)から1つの以上の特徴点を抽出し、以前映像フレームから抽出された特徴点と現在映像フレームから抽出した特徴点とをマッチングすることで、現在映像フレームの特徴点を追跡することができる。
動き情報取得部420は、動きセンサ403から検出された慣性センサ情報を動かす情報として取得することができる。
ここで、動き情報取得部420で取得した動き情報は、状態予測部430で使用され、特徴点抽出及び追跡部410で追跡した特定点情報は、測定値更新部440で使用される。
フィルタ基盤の慣性距離計(VIO)による推定モデルは、大きく状態予測部430と測定値更新部440を含む。
測定値更新部440は、推定モデルと特徴点抽出及び追跡部410で追跡した特定点情報を用いて測定値(例えば、特徴点の位置(現在位置))を更新することができる。このとき、推定モデルは、推定する特徴点の3次元位置に関っているため誤差を含み得る。一実施形態に係るポーズ推定装置400は、測定値更新時に推定モデルの不確実性を算出して反映することで、推定モデル及びポーズ推定装置400の性能を向上させることができる。
ポーズ推定装置400は、電子装置のポーズを推定するために使用される複数の要素を推定モデルの状態変数として設定し、リアルタイムに推定することができる。
実施形態により、動きセンサ403に関する状態変数
は、イメージセンサ401と動きセンサ403との間の外部媒介変数(extrinsic parameter)、加速度、ジャイロスケール因子などをさらに含んでもよい。その他にも、特徴点の3D位置誤差も動きセンサ403に関する状態変数
に含まれてもよい。
は、イメージセンサ401と動きセンサ403との間の外部媒介変数(extrinsic parameter)、加速度、ジャイロスケール因子などをさらに含んでもよい。その他にも、特徴点の3D位置誤差も動きセンサ403に関する状態変数
に含まれてもよい。
一実施形態において、イメージセンサ401によって取得された映像フレームから見た特徴点の位置誤差を、下記の数式(2)のようにイメージセンサ401又は映像フレームに関する状態変数
に推定することができる。
に推定することができる。
より具体的に、状態予測部430は、推定している値と動きセンサ403の入力(例えば、位置、速度、姿勢など)を介して現在状態変数と確率分布(例えば、以前状態変数の推定共分散)を予測することができる。
状態予測部430は、以前映像フレームで推定した以前状態変数を基盤に予測した現在状態変数を更新する。推定モデルは測定値(例えば、特徴点の位置)をアップデートするとき、フィードバック構造で誤差を除去することができる。したがって、状態予測部430は、誤差値に対する更新を実行せず、確率分布に対する予測を行うことができる。
状態予測部430は、例えば、下記の数(5)を介して現在状態変数を予測るすることができる。
は、k時点における状態変数の誤差共分散を意味し、
は、システムモデル(推定モデル)を意味し、
は、システムノイズに該当する。システムノイズ
は、動きセンサ(例えば、IMUセンサ)の誤差特性に応じて決定され得る。
測定値更新部440は、状態予測部430が予測した以前状態情報の誤差共分散と現在映像フレームから抽出した特徴点情報を用いて現在状態変数を推定することができる。
測定値更新部440は、実際の測定値(特徴点の位置)と以前映像フレームに基づいて推定した以前状態変数に基づいて予測した測定値(特徴点の位置)間の差rを反映し、現在状態変数を更新することができる。ここで、実際の測定値と予測した測定値との間の差に該当する残差(residual)
は、下記の数式(6)のように示すことができる。
は、下記の数式(6)のように示すことができる。
一実施形態において、推定モデルの不確実性による誤差を測定値ノイズ、言い換えれば、測定値に対するノイズとして考慮することができる。
予測した測定値と実際の測定値との間の差に該当する残差
は、下記の数式(7)のように表現することができる。例えば、j番目の特徴点に対する測定値を使用するとき、イメージセンサを介して測定したj番目の特徴点の実際の位置
とj番目の特徴点の予測した位置
を差分すれば、下記の数式(7)のように整理することができる。下記の数式において、
記号は、実際の測定された値を意味し、
記号は、推定した値を意味する。また、
記号の含まれているものは誤差を意味し、いずれの記号も含まれていないものは正解値(ground truth)を意味する。
は、下記の数式(7)のように表現することができる。例えば、j番目の特徴点に対する測定値を使用するとき、イメージセンサを介して測定したj番目の特徴点の実際の位置
とj番目の特徴点の予測した位置
を差分すれば、下記の数式(7)のように整理することができる。下記の数式において、
記号は、実際の測定された値を意味し、
記号は、推定した値を意味する。また、
記号の含まれているものは誤差を意味し、いずれの記号も含まれていないものは正解値(ground truth)を意味する。
ここで、実際の測定値
は、例えば、ピンホールカメラモデル(pinhole camera model)で焦点距離が1である平面上で測定された特徴点の深さ方向の位置に該当する。また、予測した測定値
は、カメラによってキャプチャーされた映像フレームから見たj番目の特徴点の位置
を用いて求めることができる。
特徴点の位置を実際に測定した値と特徴点の位置を予測した値を数式(10)のように正解値と誤差の和として表現した後、数式(11)のように差分すれば下記の数式(12)のように示すことができる。
はU軸に対する推定モデル
の状態を示す状態誤差に該当する。
は、U軸上のj番目の特徴点の測定された実際の位置
に対する誤差に該当する。
は、U軸上の測定値ノイズ(測定値エラー)に該当する。
は、U軸上のj番目の特徴点の位置に対する誤差の分散に該当する。
一般に拡張カルマンフィルター(EKF)は高次項を無視するが、誤差が小さくない場合は高次項による影響により追加的な推定誤差が発生し得る。
一実施形態では、線型化された拡張されたカルマンフィルター(EKF)の高次項を近似して測定値(例えば、特徴点の位置)に対するノイズ(「測定値ノイズ」)形態に考慮することで、様々な動作状況に剛健なVIOを設計し、安定的にポーズを推定することができる。それだけでなく、推定モデルの不確実性を考慮することで、迅速な動作状況で発生し得る追加的なノイズを減らすことができるため、拡張されたカルマンフィルター(EKF)に比べて動的ジッター(jitter)の減少効果も有することができる。
例えば、測定値ノイズをガウス分布(Gaussian distribution)に仮定すれば、フロントエンド310から伝達されたj番目の特徴点の実際の位置
値はガウス分布に従わず、実際には誤差が大きく発生する可能性がある。したがって、一実施形態において、数式(18)の誤差は、相関関係(correlation)を無視して測定値ノイズの形態に考慮される。測定値ノイズは、例えば、特徴点の深さ方向の位置が間違って推定されることにより発生する推定モデルの誤差である。
ここで、推定モデルの誤差を測定値ノイズ形態に考慮した方法は様々に存在する。モデル不確実性算出部450は、例えば、推定モデルのチューニングパラメータを
又は
に定義した後、状態変数を更新する数式(15)を下記の数式(19)のように示すことができる。
又は
に定義した後、状態変数を更新する数式(15)を下記の数式(19)のように示すことができる。
下記の数式(21)において、推定モデルに対する不確実性を推定モデルのチューニングパラメータ
と共に示し、数式(18)で言及した誤差は、相関関係を無視してチューニングパラメータに比例したノイズとして考慮した。
と共に示し、数式(18)で言及した誤差は、相関関係を無視してチューニングパラメータに比例したノイズとして考慮した。
は、V軸に対する推定モデル
の状態を示す状態誤差である。
は、V軸上のj番目の特徴点の実際の位置
に対する誤差である。
は、V軸上の測定値ノイズ(測定値エラー)である。
は、推定モデル
の不確実性を示す。
図5を参照すると、一実施形態に係るポーズ推定装置は、動作S510ないし動作S550を介して電子装置のポーズを推定することができる。
動作S510において、ポーズ推定装置は、イメージセンサから受信した、複数の映像フレームを含む映像情報から抽出した特徴点の位置を追跡する。ポーズ推定装置は、例えば、映像フレームのうち現在映像フレームに含まれている第2特徴点を抽出してもよい。ポーズ推定装置は、映像フレームのうち現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と第2特徴点との間のマッチングを介して第2特徴点の位置を追跡することができる。
動作S520において、ポーズ推定装置は、動きセンサから受信した動き情報に基づいて、電子装置のポーズを推定する推定モデルの現在状態変数を予測する。ポーズ推定装置は、動き情報に基づいて電子装置の位置、速度、及び姿勢を含むポーズを推定する推定モデルの現在状態変数を予測する。推定モデルは、例えば、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry;VIO)を用いた推定モデルであってもよいが、必ずこれに限定されることはない。ここで、フィルタは、例えば、EKF(Extended Kalman Filter)、UKF(Unscented Kalman Filter)、及びEIF(Extended Information Filter)などのようにカルマンフィルターに基づいたフィルタであってもよい。現在状態変数は、特徴点の現在位置に対応する確率分布を含んでもよい。
動作S520において、ポーズ推定装置は、例えば、動き情報及び映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、映像フレームのうち現在映像フレームに対応する現在状態変数及び以前状態変数の誤差共分散を予測する。
動作S530において、ポーズ推定装置は、映像フレームから抽出した特徴点の第1位置と、動作S520で予測した現在状態変数に基づいて予測された特徴点の第2位置との間の残差に基づいて、推定モデルの不確実性によるノイズを決定する。ポーズ推定装置が推定モデルの不確実性によるノイズを決定する方法については、以下の図6を参照してより具体的に説明する。
動作S540において、ポーズ推定装置は、動作S520で予測した現在状態変数、動作S510で追跡した特徴点の位置、及び動作S530で決定したノイズに基づいて、現在状態変数を更新する。ポーズ推定装置は、例えば、現在状態変数、以前状態変数の誤差共分散、追跡した特徴点の位置及びノイズに基づいて、現在状態変数を更新することができる。
動作S550において、ポーズ推定装置は、更新された現在状態変数に基づいて電子装置のポーズを推定する。電子装置は、例えば、スマートグラス(smart glass)を含むウェアラブルデバイス(wearable device)及びAR(Augmented Reality)機器、VR(Virtual Reality)機器、及びMR(Mixed Reality)機器を含むヘッドマウントデバイス(Head Mounted Device;HMD)のうち少なくとも1つを含んでもよい。
図6は、一実施形態によりノイズを決定する方法を示したフローチャートである。以下、実施形態における各動作は順次実行されてもよいが、必ず順次実行されなくてもよい。例えば、各動作の順序が変更されてもよく、少なくとも2つの動作が並列的に実行されてもよい。
図6を参照すると、一実施形態に係るポーズ推定装置は、動作S610ないし動作S620を介して推定モデルの不確実性によるノイズを決定することができる。
動作S610において、ポーズ推定装置は、映像フレームのうち現在映像フレームから抽出した特徴点の第1位置と現在状態変数に基づいて予測された特徴点の第2位置との間の残差を算出する。ポーズ推定装置は、例えば、前述した数式(6)に残差を算出することができる。
動作S620において、ポーズ推定装置は、動作S610で算出した残差に基づいて、推定モデルの不確実性によるノイズを決定する。ここで、推定モデルの不確実性は、例えば、カルマンフィルター(Kalman filter)方式のSLAM(Simultaneous Localization and Mapping)方式による推定共分散(estimation covariance)に基づいて決定されたものであるが、必ずこれに限定されることはない。推定モデルの不確実性によるノイズは、例えば、特徴点の深さ方向の位置が間違って推定されることで生じる推定モデルの誤差に該当する。
ポーズ推定装置は、例えば、現在映像フレームから抽出した特徴点の第1位置と現在状態変数に基づいて予測された特徴点の第2位置との間の残差を、前述した数式(10)のように正解(Ground-Truth)と誤差の和に表現することによってノイズを決定することができる。
又は、ポーズ推定装置は、残差を正解と誤差の和として表現した結果を推定モデルのチューニングパラメータによって近似化することでノイズを決定してもよい。
図7は、他の実施形態によってポーズを推定する方法を示したフローチャートである。以下の実施形態において、各動作は順次行ってもよいが、必ず順次行うわなくてもよい。例えば、それぞれの動作の順序が変更されてもよく、少なくとも2つの動作が並列的に行われてもよい。
図7を参照すると、一実施形態に係るポーズ推定装置は動作S710ないし動作S790を介して電子装置のポーズを推定することができる。電子装置は、イメージセンサ及び動きセンサを含んでもよい。
動作S710において、ポーズ推定装置は、イメージセンサから複数の映像フレームを含む映像情報を受信する。
動作S720において、ポーズ推定装置は、映像フレームのうち現在映像フレームに含まれた第2特徴点を抽出する。
動作S730において、ポーズ推定装置は、映像フレームのうち現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と第2特徴点との間のマッチングを介して特徴点の位置を追跡する。
動作S740において、ポーズ推定装置は、動きセンサから電子装置の動き情報を受信する。ここで、電子装置は、ポーズ推定装置であってもよく、ポーズ推定装置とは区別される別個の装置であってもよい。
動作S750において、ポーズ推定装置は、動き情報及び映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、映像フレームのうち現在映像フレームに対応する現在状態変数及び以前状態変数の誤差共分散を予測する。
動作S760において、ポーズ推定装置は、現在映像フレームから抽出した第1特徴点の第1位置と現在状態変数に基づいて予測された第2特徴点の第2位置との間の残差を算出する。
動作S770において、ポーズ推定装置は、残差に基づいて推定モデルの不確実性によるノイズを決定する。
動作S780において、ポーズ推定装置は、現在状態変数、以前状態変数の誤差共分散、追跡した特徴点の位置、及びノイズに基づいて、現在状態変数を更新する。
動作S790において、ポーズ推定装置は、更新された現在状態変数に基づいて、電子装置のポーズを推定する。
図8は、一実施形態に係るポーズ推定装置のブロック図である。図8を参照すると、一実施形態に係るポーズ推定装置800は、少なくとも1つのセンサ(例えば、1つ以上のセンサ)810、プロセッサ(例えば、1つ以上のプロセッサ)830、メモリ(例えば、1つ以上のメモリ)850、通信インターフェース870、及びディスプレイ890を含む。少なくとも1つのセンサ810、プロセッサ830、メモリ850、通信インターフェース870、及びディスプレイ890は、通信バス805を介して接続される。
少なくとも1つのセンサ810は、複数の映像フレームを含む映像情報を検出するイメージセンサ及び電子装置の動き情報を検出する動きセンサを含む。
プロセッサ830は、ここで説明された動作及び方法のうち任意の1つ以上又は全てを行ってもよい。
プロセッサ830は、映像情報から特徴点を抽出して追跡する。プロセッサ830は、動き情報に基づいて電子装置のポーズを推定する推定モデルの現在状態変数を予測する。プロセッサ830は、映像フレームから抽出した特徴点の第1位置と現在状態変数に基づいて予測された特徴点の第2位置との間の残差に基づいて、推定モデルの不確実性によるノイズを決定することができる。プロセッサ830は、現在状態変数、追跡した特徴点の位置、及びノイズに基づいて現在状態変数を更新する。プロセッサ830は、更新された現在状態変数に基づいて、電子装置のポーズを推定する。
例えば、ポーズ推定装置800がウェアラブル電子装置である場合、プロセッサ830は、推定されたポーズに基づいて仮想のコンテンツを生成してもよい。仮想のコンテンツは、例えば、前述した拡張現実コンテンツ210であってもよく、その他の様々な混合現実コンテンツであってもよい。
この場合、ディスプレイ890は、プロセッサ830が生成した仮想のコンテンツを表示する。
プロセッサ830はプログラムを実行し、ポーズ推定装置800を制御することができる。プロセッサ830によって実行されるプログラムコードは、メモリ850に格納される。
メモリ850は、少なくとも1つのセンサ810によって検出された映像情報及び/又は動き情報を格納する。メモリ850は、プロセッサ830が予測した推定モデルの現在状態変数、残差、及びノイズのうち少なくとも1つを格納する。また、メモリ850は、プロセッサ830によって更新された現在状態変数、推定されたポーズ、及び/又はプロセッサ830によって生成された仮想のコンテンツを格納する。
このように、メモリ850は、上述したプロセッサ830の処理過程で生成される様々な情報を格納することができる。その他にも、メモリ850は、各種のデータとプログラムなどを格納してもよい。メモリ850は、揮発性メモリ又は不揮発性メモリを含んでもよい。メモリ850は、ハードディスクなどのような大容量の格納媒体を備えて各種データを格納することができる。
通信インターフェース870は、少なくとも1つのセンサ810が検出した情報を受信する。通信インターフェース870は、プロセッサ830が予測した電子装置のポーズを外部に送信する。
ポーズ推定装置800は、ディスプレイ890を選択的に含んでもよい。例えば、ポーズ推定装置800がウェアラブル電子装置である場合、ポーズ推定装置800は、前述した過程を介してプロセッサ830が推定したウェアラブル電子装置のポーズに基づいて、仮想コンテンツオブジェクトと実際のオブジェクトを整合してもよい。この場合、ディスプレイ890は、プロセッサ830によって整合な仮想コンテンツオブジェクトと実際のオブジェクトを可視化する。ディスプレイ890は、例えば、ディスプレイ、及び/又はフレキシブルディスプレイであってもよく、必ずこれに限定されることはない。この場合、整合結果をディスプレイ980を介して表示することができる。
一実施形態に係るポーズ推定装置800は、例えば、先端運転者補助システム(Advanced Drivers Assistance System;ADAS)、HUD(Head Up Display)装置、3Dデジタル情報ディスプレイ(Digital Information Display、DID)、ナビゲーション装置、ニューロモルフィック装置(neuromorphic device)、3Dモバイル機器、スマートフォン、スマートTV、スマート車両、IoT(Internet of Things)デバイス、医療デバイス、及び計測デバイスなどのように様々な分野の装置に該当する。ここで、3Dモバイル機器は、例えば、拡張現実(Augmented Reality;AR)、仮想現実(Virtual Reality;VR)、及び/又は混合現実(Mixed Reality;MR)を表示するためのディスプレイ装置、頭着用ディスプレイ(Head Mounted Display;HMD)、顔着用ディスプレイ(Face Mounted Display;FMD)、及び拡張現実メガネ(AR glasses)などを全て含む意味として理解される。
また、プロセッサ830は、図1~図7を参照して前述した少なくとも1つの方法又は少なくとも1つの方法に対応する方式を行ってもよい。プロセッサ830は、目的とする動作を実行させるための物理的な構造を有する回路を有するハードウェアで具現されたポーズ推定装置であってもよい。例えば、目的する動作は、プログラムに含まれたコード(code)又は命令(instructions)を含んでもよい。例えば、ハードウェアで具現されたポーズ推定装置は、マイクロプロセッサー(microprocessor)、中央処理装置(Central Processing Unit;CPU)、グラフィック処理装置(Graphic Processing Unit;GPU)、プロセッサコア(processor core)、マルチコアプロセッサ(multi-core processor)、マルチプロセッサ(multiprocessor)、ASIC(Application-Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、NPU(Neural Processing Unit)などを含んでもよい。
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことが把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、又はそのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成したり、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアはネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納されたり実行され得る。ソフトウェア及びデータは一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
上記で説明したハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
上述したように実施形態をたとえ限定された図面によって説明したが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が説明された方法と異なる順で実行されるし、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって置き換え又は置換されたとしても適切な結果を達成することができる。
したがって、他の具現、他の実施形態および特許請求の範囲と均等なものも後述する特許請求範囲の範囲に属する。
800:ポーズ推定装置
805:通信バス
810:少なくとも1つのセンサ
830:プロセッサ
850:メモリ
870:通信インターフェース
890:ディスプレイ
805:通信バス
810:少なくとも1つのセンサ
830:プロセッサ
850:メモリ
870:通信インターフェース
890:ディスプレイ
Claims (26)
- プロセッサによって実現されるポーズを推定する方法であって、
イメージセンサから受信した、複数の映像フレームを含む映像情報から抽出した特徴点の位置を追跡する動作と、
動きセンサから受信した動き情報に基づいて、前記電子装置のポーズを決定する推定モデルの現在状態変数を予測する動作と、
前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定する動作と、
前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて、前記現在状態変数を更新する動作と、
前記更新された現在状態変数に基づいて、前記電子装置のポーズを決定する動作と、
を含む、ポーズを推定する方法。 - 前記ノイズを決定する動作は、
前記映像フレームのうち、現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差を決定する動作と、
前記残差に基づいて前記推定モデルの不確実性によるノイズを決定する動作と、
を含む、請求項1に記載のポーズを推定する方法。 - 前記ノイズを決定する動作は、前記現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を正解(Ground-Truth)と誤差の和として表現することによって前記ノイズを決定する動作を含む、請求項2に記載のポーズを推定する方法。
- 前記ノイズを決定する動作は、前記残差を正解と誤差の和として表現した結果を前記推定モデルのチューニングパラメータによって近似化することで前記ノイズを決定する動作を含む、請求項3に記載のポーズを推定する方法。
- 前記推定モデルの不確実性は、拡張されたカルマンフィルター(Extended Kalman filter)方式のSLAM(Simultaneous Localization and Mapping)方式による推定共分散に基づいて決定される、請求項1に記載のポーズを推定する方法。
- 前記現在状態変数を予測する動作は、前記動き情報及び前記映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、前記映像フレームのうち現在映像フレームに対応する現在状態変数及び前記以前状態変数の誤差共分散を予測する動作を含む、請求項1に記載のポーズを推定する方法。
- 前記現在状態変数を更新する動作は、前記現在状態変数、前記以前状態変数の誤差共分散、前記追跡した特徴点の位置及び前記ノイズに基づいて、前記現在状態変数を更新する動作を含む、請求項6に記載のポーズを推定する方法。
- 前記特徴点の位置を追跡する動作は、
前記映像フレームのうち現在映像フレームに含まれた第2特徴点を抽出する動作と、
前記映像フレームのうち、前記現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と前記第2特徴点との間のマッチングを介して前記第2特徴点の位置を追跡する動作と、
を含む、請求項1に記載のポーズを推定する方法。 - 前記推定モデルは、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry:VIO)を用いた推定モデルを含む、請求項1に記載のポーズを推定する方法。
- 前記電子装置は、
スマートグラスを含むウェアラブルデバイスと、
AR(Augmented Reality)機器、VR(Virtual Reality)機器、及びMR(Mixed Reality)機器を含むヘッドマウントデバイス(Head Mounted Device:HMD)と、
のいずれか1つ又は2以上を含む、請求項1に記載のポーズを推定する方法。 - 1つ以上のハードウェアと結合して請求項1に記載の方法を実行させるためにコンピュータで読み出し可能な記録媒体に格納されたコンピュータプログラム。
- ポーズを推定する装置であって、
複数の映像フレームを含む映像情報を検出するイメージセンサと、
前記電子装置の動き情報を検出する動きセンサと、
前記映像情報から特徴点を抽出して追跡し、前記動き情報に基づいて前記電子装置のポーズを決定する推定モデルの現在状態変数を予測し、前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定し、前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新し、前記更新された現在状態変数に基づいて前記電子装置のポーズを決定する1つ以上のプロセッサと、
を含む、ポーズを推定する装置。 - 前記ノイズを決定するために、前記1つ以上のプロセッサは、前記映像フレームのうち現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を決定し、前記残差に基づいて、前記推定モデルの不確実性によるノイズを決定する、請求項12に記載のポーズを推定する装置。
- 前記ノイズを決定するために前記1つ以上のプロセッサは、
前記現在映像フレームから抽出した前記特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の前記残差を正解と誤差の和として表現することによって前記ノイズを決定する、請求項13に記載のポーズを推定する装置。 - 前記ノイズを決定するために前記1つ以上のプロセッサは、前記残差を正解と誤差の和として表現した結果を、前記推定モデルのチューニングパラメータによって近似化することで前記ノイズを決定する、請求項14に記載のポーズを推定する装置。
- 前記推定モデルの不確実性は、拡張されたカルマンフィルター方式のSLAM(Simultaneous Localization and Mapping)方式による推定共分散に基づいて決定される、請求項12に記載のポーズを推定する装置。
- 前記現在状態変数を予測するために、前記1つ以上のプロセッサは、前記動き情報及び前記映像フレームのうち以前映像フレームに対応する以前状態変数に基づいて、前記映像フレームのうち現在映像フレームに対応する現在状態変数及び前記以前状態変数の誤差共分散を予測する、請求項12に記載のポーズを推定する装置。
- 前記現在状態変数を更新するために、前記1つ以上のプロセッサは、前記現在状態変数、前記以前状態変数の誤差共分散、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新する、請求項17に記載のポーズを推定する装置。
- 前記特徴点の位置を追跡するために、前記1つ以上のプロセッサは、前記映像フレームのうち現在映像フレームに含まれた第2特徴点を抽出し、前記映像フレームのうち前記現在映像フレームに先行する以前映像フレームから抽出された第1特徴点と前記第2特徴点との間のマッチングを介して前記第2特徴点の位置を追跡する、請求項12に記載のポーズを推定する装置。
- 前記推定モデルは、フィルタ基盤の視覚的慣性距離計(Visual Inertial Odometry:VIO)を用いた推定モデルを含む、請求項12に記載のポーズを推定する装置。
- 前記電子装置は、
スマートグラスを含むウェアラブルデバイスと、
AR機器、VR機器、及びMR機器のいずれか1つ又は2以上を含むヘッドマウントデバイスと、
のいずれか1つ又は2以上を含む、請求項12に記載のポーズを推定する方法。 - ウェアラブル電子装置であって、
複数の映像フレームを含む映像情報を検出するイメージセンサと、
前記ウェアラブル電子装置の動き情報を検出する動きセンサと、
前記映像情報から特徴点を抽出して追跡し、前記動き情報に基づいて前記ウェアラブル電子装置のポーズを決定する推定モデルの現在状態変数を予測し、前記映像フレームから抽出した特徴点の第1位置と前記現在状態変数に基づいて予測された前記特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定し、前記現在状態変数、前記追跡した特徴点の位置、及び前記ノイズに基づいて前記現在状態変数を更新し、前記更新された現在状態変数に基づいて前記ウェアラブル電子装置のポーズを決定し、前記決定されたポーズに基づいて仮想のコンテンツを生成する1つ以上のプロセッサと、
前記仮想のコンテンツを表示するディスプレイと、
を含む、ウェアラブル電子装置。 - プロセッサによって実現されるポーズを推定する方法であって、
電子装置のポーズを決定するための推定モデルの現在状態変数を予測する動作と、
映像フレームから抽出された特徴点の第1位置と前記現在状態変数に基づいて予測された特徴点の第2位置との間の残差に基づいて、前記推定モデルの不確実性によるノイズを決定する動作と、
前記ノイズに基づいて前記現在状態変数を更新する動作と、
前記更新された現在状態変数に基づいて前記電子装置のポーズを決定する動作と、
を含む、ポーズを推定する方法。 - 前記現在状態変数は、動きセンサに対応する状態変数とイメージセンサに対応する状態変数を含む、請求項23に記載のポーズを推定する方法。
- 前記動きセンサに対応する状態変数は、前記映像フレームのいずれか1つの映像フレームの方向誤差、前記動きセンサのバイアス誤差、速度誤差、加速度誤差、及び位置誤差のいずれか1つ又は2以上の任意の組み合わせを含む、請求項24に記載のポーズを推定する方法。
- 前記イメージセンサに対応する状態変数は、前記映像フレームのいずれか1つの映像フレームで見える特徴点の位置の誤差を含む、請求項24に記載のポーズを推定する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210100131A KR20230018214A (ko) | 2021-07-29 | 2021-07-29 | 포즈를 추정하는 방법 및 장치 |
KR10-2021-0100131 | 2021-07-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023020877A true JP2023020877A (ja) | 2023-02-09 |
Family
ID=81325684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022076437A Pending JP2023020877A (ja) | 2021-07-29 | 2022-05-06 | ポーズを推定する方法及び装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230035458A1 (ja) |
EP (1) | EP4125039B1 (ja) |
JP (1) | JP2023020877A (ja) |
KR (1) | KR20230018214A (ja) |
CN (1) | CN115690201A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210030147A (ko) * | 2019-09-09 | 2021-03-17 | 삼성전자주식회사 | 3d 렌더링 방법 및 장치 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5920352B2 (ja) * | 2011-08-24 | 2016-05-18 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
US11238340B1 (en) * | 2016-12-21 | 2022-02-01 | Facebook Technologies, Llc | Predictive eyetracking using recurrent neural networks |
US10216265B1 (en) * | 2017-08-07 | 2019-02-26 | Rockwell Collins, Inc. | System and method for hybrid optical/inertial headtracking via numerically stable Kalman filter |
US10989916B2 (en) * | 2019-08-20 | 2021-04-27 | Google Llc | Pose prediction with recurrent neural networks |
IT201900025399A1 (it) * | 2019-12-23 | 2021-06-23 | St Microelectronics Srl | Procedimento per provvedere informazione di navigazione, corrispondente sistema e prodotto informatico |
-
2021
- 2021-07-29 KR KR1020210100131A patent/KR20230018214A/ko unknown
-
2022
- 2022-01-26 US US17/584,682 patent/US20230035458A1/en active Pending
- 2022-02-21 CN CN202210158102.0A patent/CN115690201A/zh active Pending
- 2022-03-25 EP EP22164546.8A patent/EP4125039B1/en active Active
- 2022-05-06 JP JP2022076437A patent/JP2023020877A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230035458A1 (en) | 2023-02-02 |
KR20230018214A (ko) | 2023-02-07 |
EP4125039A1 (en) | 2023-02-01 |
EP4125039B1 (en) | 2023-10-04 |
CN115690201A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2813082B1 (en) | Head pose tracking using a depth camera | |
KR102442780B1 (ko) | 장치의 자세 추정 방법 및 그 장치 | |
EP3000011B1 (en) | Body-locked placement of augmented reality objects | |
US9761054B2 (en) | Augmented reality computing with inertial sensors | |
EP1501051A2 (en) | Position and orientation detection method and apparatus | |
US10636190B2 (en) | Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems | |
US20220051031A1 (en) | Moving object tracking method and apparatus | |
KR20220122287A (ko) | 증강 현실 제공 장치의 포즈 결정 방법 및 장치 | |
WO2023087681A1 (zh) | 定位初始化方法、装置、计算机可读存储介质和计算机程序产品 | |
JP2023020877A (ja) | ポーズを推定する方法及び装置 | |
US20220335638A1 (en) | Depth estimation using a neural network | |
EP4168740A1 (en) | Pedestrian dead reckoning using map constraining features | |
WO2023140990A1 (en) | Visual inertial odometry with machine learning depth | |
CN114187509B (zh) | 对象定位方法、装置、电子设备以及存储介质 | |
Ismail et al. | A review of visual inertial odometry for object tracking and measurement | |
CN116848493A (zh) | 使用极线约束的光束平差 | |
KR20230017088A (ko) | 영상 좌표의 불확실성을 추정하는 장치 및 방법 | |
CN116704022A (zh) | 基于结构线段的vio系统的位姿估计方法、装置及介质 | |
CN117870650A (zh) | 一种ar定位地图更新的方法和装置 | |
CN113375667A (zh) | 导航方法、装置、设备和存储介质 | |
CN117589159A (zh) | 用于增强现实设备的具有神经网络的地图辅助惯性测距 | |
Ababsa et al. | 3D Camera Tracking for Mixed Reality using Multi-Sensors Technology |