JP2023509291A - ジョイント赤外および可視光視覚慣性オブジェクト追跡 - Google Patents

ジョイント赤外および可視光視覚慣性オブジェクト追跡 Download PDF

Info

Publication number
JP2023509291A
JP2023509291A JP2022530244A JP2022530244A JP2023509291A JP 2023509291 A JP2023509291 A JP 2023509291A JP 2022530244 A JP2022530244 A JP 2022530244A JP 2022530244 A JP2022530244 A JP 2022530244A JP 2023509291 A JP2023509291 A JP 2023509291A
Authority
JP
Japan
Prior art keywords
wearable device
frame
light
camera
exposure time
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
Application number
JP2022530244A
Other languages
English (en)
Inventor
クリスティアン フォースター,
アンドリュー メリム,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2023509291A publication Critical patent/JP2023509291A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing 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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • A61B5/6802Sensor mounted on worn items
    • A61B5/6803Head-worn items, e.g. helmets, masks, headphones or goggles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0308Detection arrangements using opto-electronic means comprising a plurality of distinctive and separately oriented light emitters or reflectors associated to the pointing device, e.g. remote cursor controller with distinct and separately oriented LEDs at the tip whose radiations are captured by a photo-detector associated to the screen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Pathology (AREA)
  • Veterinary Medicine (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Glass Compositions (AREA)
  • Road Signs Or Road Markings (AREA)

Abstract

一実施形態では、追跡のための方法が、ウェアラブルデバイスの動きセンサーによってキャプチャされた動きデータを受信することと、動きデータに基づいてウェアラブルデバイスのポーズを生成することと、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャすることと、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別することと、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャすることと、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、第1のフレーム中の光の識別されたパターンまたは第2のフレーム中の識別されたあらかじめ決定された特徴に基づいて、環境においてウェアラブルデバイスのポーズを調整することとを含む。本方法は、コントローラのポーズの精度を改善するために、特定の光条件下で可視光フレーム中でウェアラブルデバイスを追跡するために、あらかじめ決定された特徴を利用する。【選択図】図1

Description

本開示は、一般に赤外ベースオブジェクト追跡に関し、より詳細には、慣性支援赤外および可視光追跡のための方法、装置、およびシステムに関する。
現在のAR/VRコントローラは、コントローラ上の赤外(IR)発光ダイオード(LED)によって形成された既知のパターンを使用して追跡されている。各コントローラがIMUを有し、IMUデータがコントローラのポーズを決定するために使用され得るが、推定されたポーズは、時間とともに必然的にずれることになる。したがって、周期的に、コントローラのIMUベースポーズ推定は、カメラによって観測される観測されたパターンと再整合される必要がある。さらに、IR LEDに基づく追跡は、いくつかの短所を有する。たとえば、明るい日光または他の赤外光源は、追跡を失敗させる。さらに、コントローラがユーザの頭部に近いとき、IR LEDは、適切な追跡を可能にするために可視でないことがある。
上記の問題に対処するために、カメラによって赤外(IR)ベース追跡と視覚慣性オドメトリ(VIO:visual inertial odometry)追跡とを交互に実施することなど、オブジェクトの短い露光フレームと長い露光フレームとを交互にキャプチャすることによってコントローラを追跡するための方法、装置、およびシステムが開示される。本開示は、より短い露光時間をもつコントローラのIR画像とより長い露光時間をもつ可視光画像とを交互に撮ることによってコントローラのロケーションを再整合させるための方法を提供する。本出願で開示される方法は、IRベース観測または可視光観測に基づいてコントローラを追跡するために環境の条件を考慮し得る。さらに、本出願で開示される方法は、コントローラの推定されたポーズの精度が時間とともに改善され得るように、周期的に、またはコントローラがカメラの視野において可視であるとき、コントローラの追跡を再始動し得る。
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、本明細書で開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。方法の一実施形態によれば、本方法は、コンピューティングシステムによって、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することを含む。本方法は、動きデータに基づいてウェアラブルデバイスのポーズを生成することをさらに含む。本方法は、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャすることをまたさらに含む。本方法は、追加として、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別することを含む。本方法は、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャすることをさらに含む。本方法は、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別することをさらに含む。特定の実施形態では、あらかじめ決定された特徴は、前のフレーム中で識別された特徴であり得る。本方法は、(1)第1のフレーム中の光の識別されたパターンまたは(2)第2のフレーム中の識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境においてウェアラブルデバイスのポーズを調整することをまたさらに含む。
本発明の一態様によれば、コンピューティングシステムによって、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、動きデータに基づいてウェアラブルデバイスのポーズを生成することと、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャすることと、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別することと、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャすることと、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、(1)第1のフレーム中の光の識別されたパターンまたは(2)第2のフレーム中の識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境においてウェアラブルデバイスのポーズを調整することとを含む、方法が提供される。
いくつかの実施形態は、環境が第1の光条件を有するとき、第1の露光時間を使用してウェアラブルデバイスの第1のフレームをキャプチャし得、環境が第2の光条件を有するとき、第2の露光時間を使用してウェアラブルデバイスの第2のフレームをキャプチャすること。
いくつかの実施形態では、第2の光条件は、環境が明るい光を有すること、環境が、ウェアラブルデバイスの光のパターンに干渉することになる光源を有すること、およびカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。
いくつかの実施形態では、ウェアラブルデバイスは、1つまたは複数の慣性測定ユニット(IMU)と1つまたは複数の赤外(IR)発光ダイオード(LED)とを装備し得、第1のフレームはIR画像であり、第2のフレームは可視光画像である。
いくつかの実施形態では、第2の露光時間は第1の露光時間よりも長いことがある。
いくつかの実施形態では、ウェアラブルデバイスのポーズは、第1のフレームおよび第2のフレームがキャプチャされる周波数よりも速い周波数において生成され得る。
いくつかの実施形態では、本方法は、第2の露光時間を使用してカメラによってウェアラブルデバイスの第3のフレームをキャプチャすることと、第3のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、あらかじめ決定された特徴と1つまたは複数の特徴との間の対応データを決定することと、対応データに基づいて環境においてウェアラブルデバイスを追跡することとをさらに含み得る。
いくつかの実施形態では、コンピューティングシステムは、ウェアラブルデバイスの第1のフレームおよび第2のフレームをキャプチャするように構成されたカメラと、ウェアラブルデバイスの光のパターンおよびあらかじめ決定された特徴を識別するように構成された識別ユニットと、ウェアラブルデバイスのポーズを調整するように構成されたフィルタユニットとを備え得る。
いくつかの実施形態では、カメラはヘッドマウントデバイス内に位置し得、ウェアラブルデバイスは、ヘッドマウントデバイスから分離されたコントローラである。
いくつかの実施形態では、ヘッドマウントデバイスは1つまたは複数のプロセッサを備え得、1つまたは複数のプロセッサは、カメラ、識別ユニット、およびフィルタユニットを実装するように構成される。
本発明のさらなる態様によれば、ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、ソフトウェアが、実行されたとき、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、動きデータに基づいてウェアラブルデバイスのポーズを生成することと、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャすることと、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別することと、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャすることと、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、(1)第1のフレーム中の光の識別されたパターンまたは(2)第2のフレーム中の識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境においてウェアラブルデバイスのポーズを調整することとを行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体が提供される。
いくつかの実施形態では、ソフトウェアは、実行されたとき、環境が第1の光条件を有するとき、第1の露光時間を使用してウェアラブルデバイスの第1のフレームをキャプチャすることと、環境が第2の光条件を有するとき、第2の露光時間を使用してウェアラブルデバイスの第2のフレームをキャプチャすることとを行うようにさらに動作可能であり得る。
いくつかの実施形態では、第2の光条件は、環境が明るい光を有すること、環境が、ウェアラブルデバイスの光のパターンに干渉することになる光源を有すること、およびカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。
いくつかの実施形態では、ウェアラブルデバイスは、1つまたは複数の慣性測定ユニット(IMU)と1つまたは複数の赤外(IR)発光ダイオード(LED)とを装備し得、第1のフレームはIR画像であり、第2のフレームは可視光画像である。
いくつかの実施形態では、第2の露光時間は第1の露光時間よりも長いことがある。
いくつかの実施形態では、ウェアラブルデバイスのポーズは、第1のフレームおよび第2のフレームがキャプチャされる周波数よりも速い周波数において生成され得る。
いくつかの実施形態では、ソフトウェアは、実行されたとき、第2の露光時間を使用してカメラによってウェアラブルデバイスの第3のフレームをキャプチャすることと、第3のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、あらかじめ決定された特徴と1つまたは複数の特徴との間の対応データを決定することと、調整されたポーズと対応データとに基づいて環境においてウェアラブルデバイスを追跡することとを行うようにさらに動作可能であり得る。
いくつかの実施形態では、カメラはヘッドマウントデバイス内に位置し得、ウェアラブルデバイスは、ヘッドマウントデバイスから分離されたリモートコントローラである。
本発明のさらなる態様によれば、1つまたは複数のプロセッサと、プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、命令が、プロセッサのうちの1つまたは複数によって実行されたとき、システムに、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、動きデータに基づいてウェアラブルデバイスのポーズを生成することと、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャすることと、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別することと、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャすることと、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、(1)第1のフレーム中の光の識別されたパターンまたは(2)第2のフレーム中の識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境においてウェアラブルデバイスのポーズを調整することとを行わせるように動作可能である、システムが提供される。
いくつかの実施形態では、命令は、システムに、環境が第1の光条件を有するとき、第1の露光時間を使用してウェアラブルデバイスの第1のフレームをキャプチャすることと、環境が第2の光条件を有するとき、第2の露光時間を使用してウェアラブルデバイスの第2のフレームをキャプチャすることとをさらに行わせ得る。
本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
本開示のいくつかの態様およびそれらの実施形態は、これらまたは他の課題のソリューションを提供し得る。本明細書で開示される問題点のうちの1つまたは複数に対処する様々な実施形態が、本明細書で提案される。本開示で開示される方法は、ヘッドマウントデバイスのカメラによってキャプチャされたIR画像および/または可視光画像に基づいて、コントローラ上に配置された(1つまたは複数の)IMUから収集されたIMUデータによって推定されたコントローラのポーズを調整する、コントローラのための追跡方法を提供し得る。本開示で開示される方法は、ユーザが様々な光条件または光干渉をもつ環境下にいる場合でも、コントローラのポーズの精度を改善し得る。さらに、本出願で開示される特定の実施形態は、電力を節約し、コントローラを製造するためのコストを潜在的に低下させるために、ある光条件下でIRベース追跡が制限され得るように、IMUデータと可視光画像とに基づいてコントローラのポーズを生成し得る。したがって、本開示で開示される代替追跡システムは、様々な環境条件において追跡タスクを効率的に改善し得る。
本開示の特定の実施形態は、人工現実システムを含むか、または人工現実システムとともに実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
本特許または出願ファイルは、カラーで仕上げられた図面を含んでいる。(1つまたは複数の)カラー図面をもつ本特許または特許出願公開のコピーは、要求し、必要な料金を支払うと、特許庁によって提供される。
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本開示のいくつかの態様を示し、説明とともに本開示の原理について解説するように働く。
追跡システムアーキテクチャの例示的な図である。 IR画像および/または可視光画像に基づいてコントローラを追跡する例示的な一実施形態を示す図である。 光の識別されたパターンおよび/または識別された特徴に基づいてコントローラを追跡する例示的な一実施形態を示す図である。 コントローラのポーズを調整することの例示的な図である。 コントローラの調整されたポーズに基づいてローカルまたはグローバルマップ中のコントローラの位置を特定することの例示的な図である。 環境における第1の光条件に基づいてIR画像と可視光画像とを交互にキャプチャすることによってウェアラブルデバイスのポーズを調整するための方法の一実施形態を示す図である。 環境における第2の光条件に基づいて可視光画像をキャプチャすることによってウェアラブルデバイスのポーズを調整するための方法の一実施形態を示す図である。 例示的なコンピュータシステムを示す図である。
現在のAR/VRデバイスによって提供される広範なサービスおよび機能の場合、コントローラが、一般に、AR/VRデバイスのための命令を入力するための容易で直観的なやり方をユーザに提供するためにAR/VRデバイスとペアリングされる。コントローラは、通常、ユーザがコントローラを介していくつかの機能を実施し得るように、AR/VRデバイスがコントローラのポーズを推定し、および/またはコントローラのロケーションを追跡するための、少なくとも1つの慣性測定ユニット(IMU)と赤外(IR)発光ダイオード(LED)とを装備する。たとえば、ユーザは、空間の角において視覚オブジェクトを表示するかまたは環境において視覚タグを生成するためにコントローラを使用し得る。コントローラの推定されたポーズは、時間とともに必然的にずれ、IRベース追跡による再整合を必要とすることになる。しかしながら、IRベース追跡は、他のLED光源によって、および/または明るい光を有する環境下で干渉され得る。さらに、IRベース追跡は、コントローラのIR LEDが適切な追跡を可能にするために可視でないことにより、失敗し得る。本開示で開示される特定の実施形態は、コントローラの異なる光レベル、環境条件、および/またはロケーションに基づいてコントローラのポーズを調整するためにIR画像と可視光画像とを交互に撮るための方法を提供する。
本開示で開示される特定の実施形態は、どちらが最初に起こるかに応じてIR追跡または特徴追跡を利用してコントローラのポーズを再整合させるための方法を提供する。コントローラの初期化中に、本出願の特定の実施形態は、いくつかの特徴、たとえば、コントローラを追跡するための信頼できる特徴を、中央モジュールにおいてこれらの特徴を設定する/これらの特徴にペイントすることによってあらかじめ決定し得、それにより、中央モジュールは、コントローラのポーズが動作に沿ってずれたときにコントローラのポーズを調整するために、可視光画像中でこれらの特徴を識別することができる。
図1は、いくつかの実施形態による、例示的なVIOベースSLAM追跡システムアーキテクチャを示す。追跡システム100は、中央モジュール110と少なくとも1つのコントローラモジュール120とを備える。中央モジュール110は、環境においてコントローラモジュール120のフレームをキャプチャするように構成されたカメラ112と、カメラ112によってキャプチャされたフレームからパッチおよび特徴を識別するように構成された識別ユニット114と、中央モジュール110およびコントローラモジュール120のジオメトリを推定するように構成された少なくとも1つのプロセッサ116とを備える。たとえば、ジオメトリは、ローカルマップ中の3Dポイント、コントローラモジュール120および/または中央モジュール110のポーズ/動き、中央モジュール110の較正、ならびに/あるいはコントローラモジュール120の較正を含む。コントローラモジュール120は、中央モジュール110から命令124を受信するとコントローラモジュール120の生IMUデータ128を収集することと、中央モジュール110が環境においてコントローラモジュール120のポーズを学習および追跡し得るようにコントローラモジュール120のポーズを生成するために、生IMUデータ128をプロセッサ116に送信することとを行うように構成された少なくとも1つのIMU122を備える。コントローラモジュール120はまた、対応するモジュールについての、対応データなど、予測を計算するために、生IMUデータ126を識別ユニット114に提供することができる。さらに、コントローラモジュール120は、中央モジュール110によって追跡されるべき、コントローラモジュール120上に選択的に分布された追跡可能マーカーを備え得る。たとえば、追跡可能マーカーは、カメラ112によって追跡され得る複数の光(たとえば、発光ダイオード)または他の追跡可能マーカーであり得る。
特定の実施形態では、中央モジュール110の識別ユニット114は、コントローラモジュール120を始動するようにとの命令130を受信する。識別ユニット114は、カメラ112に、命令130の受信時に、初期化のためにコントローラモジュール120の第1のフレームをキャプチャするように命令する。第1のフレーム140は、中央モジュール110において設定またはペイントされた1つまたは複数のあらかじめ決定された特徴142を含み得る。たとえば、あらかじめ決定された特徴142は、コントローラモジュール120を追跡するために前のフレーム中で識別された特徴であり得、前のフレーム中で繰り返し認識されたこれらの識別された特徴は、コントローラモジュール120を追跡するための信頼できる特徴と見なされる。中央モジュール110のカメラ112は、次いで、コントローラモジュール120の初期化の後に第2のフレーム144をキャプチャすることを開始し得る。たとえば、中央モジュール110のプロセッサ116は、第2のフレーム144をキャプチャすることによってコントローラモジュール120を追跡することを開始し得る。一実施形態では、第2のフレーム144は、コントローラモジュール120のあらかじめ決定された特徴142を含む可視光画像であり得、それにより、中央モジュール110は、第2のフレーム144中でキャプチャされたあらかじめ決定された特徴142に基づいてコントローラモジュール120のポーズを調整し得る。別の実施形態では、第2のフレームは、コントローラモジュール120上に配置された複数の光をキャプチャするIR画像であり得、それにより、中央モジュール110は、コントローラモジュール120上の複数の光によって形成された光のパターン146に基づいてコントローラモジュール120のポーズを再整合させ得る。また、IR画像は、コントローラモジュール120上に配置された光のパターン146、たとえば、LEDのコンスタレーションに基づいてコントローラモジュール120を追跡し、さらに、中央モジュール110のプロセッサ116を更新するために使用され得る。特定の実施形態では、中央モジュール110は、コントローラモジュール120の再整合のためにIR画像と可視光画像とを交互に撮るように設定され得る。特定の実施形態では、中央モジュール110は、環境の光条件に基づいて、コントローラモジュール120の再整合のためにIR画像または可視光画像のいずれかを撮ることを決定し得る。中央モジュール110において実施される詳細な動作およびアクションは、図4でさらに説明され得る。
いくつかの実施形態では、識別ユニット114は、さらに、第2のフレーム144に続く第3のフレームをキャプチャし、第3のフレーム中で、あらかじめ決定された特徴142に対応する1つまたは複数のパッチを識別し得る。この特定の実施形態では、第2のフレーム144および第3のフレーム、ならびに潜在的に1つまたは複数の次のフレームは、可視光フレーム、たとえば、長い露光時間で撮られたフレームであり、それにより、中央モジュール110は、フレームにわたる繰り返し識別された特徴に基づいてコントローラモジュール120を追跡することができる。識別ユニット114は、次いで、異なるフレーム、たとえば、第2のフレーム144および第3のフレーム中で識別された、互いに対応するパッチ間のあらかじめ決定された特徴142の対応データ132を決定し、コントローラモジュール120のポーズを調整することおよびコントローラモジュール120の状態情報を生成することなど、さらなる分析およびサービスのために、対応データ132をプロセッサ116に送信し得る。特定の実施形態では、状態情報は、コントローラモジュール120のポーズ、速度、加速度、空間的位置および動き、ならびに潜在的に、中央モジュール110のカメラ112によってキャプチャされた一連のフレームによって構築された環境に対するコントローラモジュール120の前のルートを含み得る。
図2は、いくつかの実施形態による、IR画像および/または可視光画像に基づくコントローラのための例示的な追跡システムを示す。追跡システム200は、中央モジュール(図示せず)とコントローラモジュール210とを備える。中央モジュールは、環境においてコントローラモジュール210を追跡するための、カメラと少なくとも1つのプロセッサとを備える。特定の実施形態では、中央モジュールのカメラは、初期化段階中に、追跡のためにコントローラモジュール210のあらかじめ決定された特徴222を決定またはセットアップするために、第1のフレーム220をキャプチャし得る。たとえば、コントローラモジュール210の初期化/起動フェーズ中に、ユーザが、コントローラモジュール210を始動するために、中央モジュールのカメラの視野(FOV)の範囲内にコントローラモジュール210を置くことになる。中央モジュールのカメラは、手の人差し指と親指で囲まれた空間(purlicue)がコントローラモジュール120と重複するエリア、およびコントローラモジュール120を保持するユーザの手を表す手の尺側縁(ulnar border)など、コントローラモジュール210を追跡するための1つまたは複数のあらかじめ決定された特徴222を決定するために、この起動フェーズにおいてコントローラモジュール210の第1のフレーム220をキャプチャし得る。特定の実施形態では、あらかじめ決定された特徴222はまた、(たとえば、小さいQRコードを介して)ペイントされ得る。特定の実施形態では、あらかじめ決定された特徴222は、テーブルの角、または可視光フレーム中で識別された任意の他の追跡可能特徴であり得る。特定の実施形態では、あらかじめ決定された特徴222は、IR画像中のIRパターン「ブロブ」、たとえば、IR画像中でキャプチャされたLEDのコンスタレーションであり得る。
特定の実施形態では、コントローラモジュール210は、少なくとも1つのIMUと複数のIR LEDとを備え、それにより、コントローラモジュール210は、第2のフレーム230がIR LEDのパターン240をキャプチャすることまたは第2のフレーム230があらかじめ決定された特徴222をキャプチャすることのいずれかに基づいて動作中に再整合され得る。たとえば、中央モジュールは、コントローラモジュール210からの生IMUデータ送信に基づいてコントローラモジュール210のポーズを生成し得る。コントローラモジュール210の生成されたポーズは、時間とともにシフトされ、再整合を必要とされ得る。中央モジュールは、環境における光条件に基づいてコントローラ210の生成されたポーズを調整するためにコントローラモジュール210をキャプチャする第2のフレーム230をキャプチャすることを決定し得る。一実施形態では、第2のフレーム230は、IR LEDのパターン240を含むIR画像であり得る。IRパターンがアプリオリに知られているとき、IR画像である第2のフレームは、複数のフレームなしにコントローラモジュール210を再整合させるかまたは追跡するために使用され得る。別の実施形態では、第2のフレーム230は、少なくとも1つのあらかじめ決定された特徴222を含むと識別された可視光画像であり得る。可視光画像は、RGB画像、CMYK画像、またはグレースケール画像であり得る。
特定の実施形態では、中央モジュールは、デフォルト設定によってIR画像と可視光画像とを交互にキャプチャし得、それにより、中央モジュールは、IR画像または可視光画像のいずれか、再調整のために最初にキャプチャされたほうに基づいて、コントローラモジュール210の生成されたポーズを再調整し得る。特定の実施形態では、中央モジュールは、環境が第1の光条件を含むとき、IR画像をキャプチャし得る。第1の光条件は、屋内環境、環境がバックグラウンドで明るい光を有しないこと、環境が、コントローラモジュール210のIR LEDのパターン240に干渉することになる光源を有しないことのうちの1つまたは複数を含み得る。たとえば、環境は、コントローラモジュール210のロケーションを決定するために中央モジュールのIR LEDによって形成されたパターン240に干渉することになる他のLEDを含まないことがある。
特定の実施形態では、中央モジュールは、環境が第2の光条件を含むとき、可視画像をキャプチャし得る。第2の光条件は、環境が明るい光を有すること、環境が、コントローラモジュール210のIR LEDのパターン240に干渉することになる光源を有すること、および中央モジュールのカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。たとえば、ユーザが、中央モジュールとともに実装されたヘッドマウントデバイスのあまりに近くにコントローラモジュール210とともに実装されたコントローラを保持しているとき、中央モジュールのカメラは、環境におけるコントローラモジュール210のロケーションを決定するためにコントローラモジュール210のIR LEDによって形成された完全なパターン240をキャプチャすることができない。中央モジュールにおいて実施される詳細な動作およびアクションは、図3から図7でさらに説明され得る。
図3は、いくつかの実施形態による、コントローラモジュールとともに実装された例示的なコントローラ300を示す。コントローラ300は、周囲リング部分310とハンドル部分320とを備える。コントローラ300は、本開示で説明されるコントローラモジュールとともに実装され、対応する追跡パターンにおいて位置決めされた複数の追跡特徴を含む。特定の実施形態では、追跡特徴は、たとえば、基準マーカーまたは発光ダイオード(LED)を含むことができる。本明細書で説明される特定の実施形態では、追跡特徴はLED光であるが、他の実施形態では、他の光、反射体、信号生成器あるいは他の受動または能動マーカーが使用され得る。たとえば、コントローラ300は、リング部分310またはハンドル部分320上のコントラスト特徴、たとえば、リング部分310の表面の周りのコントラスト色をもつストリップ、および/あるいは、リング部分310中に埋め込まれた複数のIR LED330を備え得る。追跡パターンにおける追跡特徴は、仮想/拡張環境における再生のためにコントローラ300の動き、配向、および/または空間的位置を決定するために、中央モジュールの追跡カメラによって正確に追跡されるように構成される。特定の実施形態では、コントローラ300は、リング部分310上に配置された光332のコンスタレーションまたはパターンを含む。
特定の実施形態では、コントローラ300は、中央モジュールがコントローラ300のポーズを再調整するための少なくとも1つのあらかじめ決定された特徴334を備える。コントローラ300のポーズは、フレーム間のあらかじめ決定された特徴334に基づいて決定された空間的移動(X-Y-Z位置決め移動)によって調整され得る。たとえば、中央モジュールは、コントローラ300のポーズを再調整するために、フレームk+1、たとえば、動作中にキャプチャされたフレーム中の、コントローラ300の更新された空間的位置を決定し、その空間的位置を、フレームk、たとえば、コントローラ300の初期化においてキャプチャされたフレーム中の、コントローラ300の前の空間的位置と比較し得る。
図4は、いくつかの実施形態による、中央モジュール410とコントローラモジュール430とを備える追跡システム400の例示的な図を示す。中央モジュール410は、環境におけるコントローラ420のための追跡/調整を実施するための、カメラ412と、識別ユニット414と、追跡ユニット416と、フィルタユニット418とを備える。コントローラモジュール430は、複数のLED432と少なくとも1つのIMU434とを備える。特定の実施形態では、中央モジュール410の識別ユニット414は、コントローラモジュール430を始動するようにとの命令426を送信し得る。特定の実施形態では、コントローラモジュール430のための初期化は、コントローラモジュール430の第1のフレームをキャプチャすることと、コントローラモジュール430を追跡/識別するために第1のフレーム中の1つまたは複数の特徴をあらかじめ決定することとを含み得る。命令426は、中央モジュール410がコントローラモジュール430を追跡するための生IMUデータ436を提供するようにコントローラモジュール430に指示し得る。コントローラモジュール430は、動作中にコントローラモジュール430のポーズを生成/推定するように命令するために、命令426の受信時に、IMU434によって収集された生IMUデータ436を中央モジュール410のフィルタユニット418に送信する。さらに、コントローラモジュール430は、対応するモジュールの予測、たとえば、コントローラモジュール430の対応データを計算するために、生IMUデータ436を識別ユニット414に送信する。特定の実施形態では、中央モジュール410は、500Hzから1kHzまでの周波数においてコントローラモジュール430のポーズを測定する。
コントローラモジュール430の初期化の後に、中央モジュール410のカメラ412は、コントローラモジュール430の生成されたポーズの再整合のために、コントローラモジュール430がカメラのFOV範囲内にあるとき、第2のフレームをキャプチャし得る。特定の実施形態では、カメラ412は、再整合のためのコントローラモジュール430の第2のフレームを、デフォルト設定によって交互にIR画像または可視光画像としてキャプチャし得る。たとえば、カメラ412は、コントローラモジュール430のポーズを生成する周波数よりも遅い周波数、たとえば、30Hzにおいて、IR画像と可視光画像とを交互にキャプチャし、コントローラモジュール430のLED432の追跡可能パターンをキャプチャする画像、またはコントローラモジュール430を追跡するためのあらかじめ決定された特徴をキャプチャする画像など、どちらか最初にキャプチャされた画像または再整合について可能な画像を利用し得る。
特定の実施形態では、識別ユニット414は、カメラ412に特定のタイプのフレームを撮るように命令するために、環境における光条件を決定し得る。たとえば、カメラ412は、光条件の決定422に基づいて識別ユニット414にフレーム420を提供し得る。一実施形態では、カメラ412は、環境がバックグラウンドで明るい光を有しないとき、コントローラモジュール430上に配置されたLED432のパターンを含むIR画像をキャプチャし得る。別の実施形態では、カメラ412は、環境が、コントローラモジュール430のLED432のパターンに干渉することになる同様の光源を有するとき、コントローラモジュール430の可視光画像をキャプチャし得る。特定の実施形態では、カメラ412は、第1の露光時間を使用してIR画像をキャプチャし、第2の露光時間を使用して可視光画像をキャプチャする。第2の露光時間は、ユーザの移動および/または環境の光条件を考慮すると第1の露光時間よりも長いことがある。
コントローラモジュール430のLED432が使用されない特定の実施形態では、中央モジュール410は、可視光画像に基づいてコントローラモジュール430を追跡し得る。可視光画像中でコントローラモジュール430を見つけるために、ニューラルネットワークが使用され得る。中央モジュール410の識別ユニット414は、カメラ412によってキャプチャされたフレーム中で、いくつかのフレームにわたって常に観測される特徴、たとえば、コントローラモジュール430を追跡するためのあらかじめ決定された特徴および/または信頼できる特徴を識別し得る。中央モジュール410は、コントローラモジュール430のポーズを計算/調整するためにこれらの特徴を利用し得る。特定の実施形態では、特徴は、コントローラモジュール430のエッジなど、コントローラモジュール430に対応する画像のパッチを含み得る。
特定の実施形態では、識別ユニット414は、さらに、コントローラモジュール430の生成されたポーズを調整するために、識別されたフレーム424をフィルタユニット418に送信し得る。フィルタユニット418が、光のパターンをキャプチャするIR画像またはコントローラモジュール430を追跡するためのパッチを含む可視光画像のいずれかであり得る識別されたフレーム418を受信したとき、フィルタユニット418は、コントローラモジュール430の光のパターンまたは可視光画像からのパッチ中で識別されたあらかじめ決定された特徴に基づいて、環境におけるコントローラモジュール430のロケーションを決定し得る。特定の実施形態では、パッチは、画像がカメラ412によって撮られた角度にかかわらず、画像/フレーム中で明確および容易に識別可能である特徴(たとえば、コントローラの角またはエッジ)の小さい画像シグネチャであり得る。
さらに、フィルタユニット418はまた、ユーザ/デバイスの状態を生成すること、ローカルにまたはグローバルにユーザ/デバイスの位置を特定すること、および/あるいは環境において仮想タグ/オブジェクトをレンダリングすることなど、広範なサービスおよび機能を行うために、これらの識別されたフレーム424を利用し得る。特定の実施形態では、中央モジュール410のフィルタユニット418はまた、ユーザの状態を生成することの支援において生IMUデータ436を使用し得る。特定の実施形態では、フィルタユニット418は、環境において仮想オブジェクトを投影するかまたはコントローラモジュール430を介してマップ中で仮想タグを設定するために、識別されたフレーム424に基づいて、環境におけるコントローラモジュール430に対するユーザの状態情報を使用し得る。
特定の実施形態では、識別ユニット414はまた、識別されたフレーム424を、コントローラモジュール430を追跡するための追跡ユニット416に送信し得る。追跡ユニット416は、異なる識別されたフレーム424中のあらかじめ決定された特徴に基づいて対応データ428を決定し、決定された対応データ428に基づいてコントローラモジュール430を追跡し得る。
特定の実施形態では、中央モジュール410は、コントローラモジュール430を追跡する/再整合させるために、少なくとも以下のフレーム、すなわち、(1)IR画像、(2)可視光画像、(3)IR画像、および(4)可視光画像をキャプチャする。特定の実施形態では、中央モジュール410の識別ユニット414は、キャプチャされたIR画像中のIRパターンを識別し得る。IR画像中のIRパターンが、第1のフレーム中で識別された、コントローラモジュール430上のLED位置のコンスタレーションなど、アプリオリなパターンに対して一致されたとき、状態推定および/または他の計算のためにフィルタユニット418によって使用されるのに単一のIR画像が十分であり得る。特徴ベース追跡の別の実施形態では、中央モジュール410の識別ユニット414は、第1の可視光画像中で追跡すべき特徴を識別し得、識別ユニット414は、次いで、第2の可視光フレーム中の同じ特徴を識別することを試み得、その特徴は、第1の可視光画像中で識別された特徴に対応している。識別ユニット414が少なくとも2つの可視光フレームにわたって同じ特徴を繰り返し観測したとき、これらのフレーム中のこれらの観測、たとえば、識別された特徴は、状態推定および/または他の計算のためにフィルタユニット418によって使用され得る。さらに、特定の実施形態では、中央モジュール410はまた、コントローラモジュール430のコンピュータ支援設計(CAD)モデルなど、コントローラモジュール430の3次元モデルに基づいて状態推定を更新するために、単一の可視光フレームを使用することができる。
特定の実施形態では、追跡システム400は、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、スマートフォン、タブレットコンピュータ、拡張/仮想現実デバイス、ヘッドマウントデバイス、ポータブルスマートデバイス、ウェアラブルスマートデバイス、または追跡システム400に適合する任意の好適なデバイスなど、任意の好適なコンピューティングデバイスにおいて実装され得る。本開示では、追跡デバイスによって追跡され、位置特定されているユーザは、車両などの可動オブジェクト上に取り付けられたデバイス、または人にアタッチされたデバイスを基準とし得る。本開示では、ユーザは、追跡システム400と対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、ビジネス、またはサードパーティアプリケーション)、または(たとえば、個人またはエンティティの)グループであり得る。特定の実施形態では、中央モジュール410はヘッドマウントデバイスにおいて実装され得、コントローラモジュール430は、ヘッドマウントデバイスから分離されたリモートコントローラにおいて実装され得る。ヘッドマウントデバイスは、中央モジュール410のカメラ412、識別ユニット414、追跡ユニット416、およびフィルタユニット418を実装するように構成された1つまたは複数のプロセッサを備える。一実施形態では、プロセッサの各々は、カメラ412、識別ユニット414、追跡ユニット416、およびフィルタユニット418を別個に実装するように構成される。リモートコントローラは、コントローラモジュール430のLED432およびIMU434を実装するように構成された1つまたは複数のプロセッサを備える。一実施形態では、プロセッサの各々は、LED432およびIMU434を別個に実装するように構成される。
本開示は、追跡システム400中の各要素を接続するかまたは追跡システム400を他のシステムと接続するための任意の好適なネットワークを企図する。限定としてではなく一例として、ネットワークの1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワークは、1つまたは複数のネットワークを含み得る。
図5は、いくつかの実施形態による、マッピングサービスをもつ追跡システム500の例示的な図を示す。追跡システム500は、コントローラモジュール510と、中央モジュール520と、クラウド530とを備える。コントローラモジュール510は、IMUユニット512と、光ユニット514と、プロセッサ516とを備える。コントローラモジュール510は、特定の機能を実施するために中央モジュール520から1つまたは複数の命令542を受信する。たとえば、命令542は、限定はしないが、コントローラモジュール510を始動するようにとの命令と、光ユニット514をオフに切り替えるようにとの命令と、環境において仮想オブジェクトをタグ付けするようにとの命令とを含む。コントローラモジュール510は、コントローラモジュール510のプロセッサ516がマップ中でまたは環境において命令542を正確に実施し得るように、動作中のポーズ推定のために生IMUデータ540を中央モジュール420に送信するように構成される。
中央モジュール520は、カメラ522と、識別ユニット524と、追跡ユニット526と、フィルタユニット528とを備える。中央モジュール520は、様々な方法、たとえば、生IMUデータ540によって決定されたコントローラモジュール510の推定されたポーズに基づいて、コントローラモジュール510を追跡するように構成され得る。さらに、中央モジュール520は、カメラ522によってキャプチャされたコントローラモジュール510のフレームに基づいて、動作中にコントローラモジュール510の推定されたポーズを調整するように構成され得る。特定の実施形態では、中央モジュール520の識別ユニット524は、環境の光条件に基づいてコントローラモジュール510のフレームをキャプチャするためのプログラムを決定し得る。プログラムは、限定はしないが、IR画像と可視光画像とを交互にキャプチャすることと、可視光画像のみをキャプチャすることとを含む。IR画像は第1の露光時間によってキャプチャされ、可視光画像は第2の露光時間によってキャプチャされる。特定の実施形態では、第2の露光時間は第1の露光時間よりも長いことがある。識別ユニット524は、次いで、カメラ522に、決定に基づいてコントローラモジュール510のフレーム/画像を撮るように命令し得、カメラ522は、決定に従って識別ユニット524に特定のフレームを提供することになる。特定の実施形態では、識別ユニット524はまた、コントローラモジュール510に、電力を節約するために、ある光条件に固有の光ユニット514、たとえば、近くの別のLEDソースをオフに切り替えるように命令し得る。
識別ユニット524は、カメラ522からの受信時にフレームを識別する。特に、識別ユニット524は、コントローラモジュール510がそのポーズの再調整を必要とするとき、最初にキャプチャされているほうのフレームを受信し得る。たとえば、カメラ522は、遅いレート、たとえば、30Hzの周波数においてIR画像と可視光画像とを交互にキャプチャし、次いで、コントローラモジュール510がカメラ522のFOV内にあるとき、フレームを識別ユニット524に送信する。したがって、キャプチャされているフレームは、IR画像または可視光画像のいずれかであり得る。特定の実施形態では、識別ユニット524は、キャプチャされたフレーム中でコントローラモジュール510の光ユニット514によって形成されたパターンを識別し得る。光ユニット514によって形成されたパターンは、ユーザ/中央モジュール520および/または環境に対するコントローラモジュール510の位置を示し得る。たとえば、コントローラモジュール510の移動/回転に応答して、光ユニット514のパターンは変化する。特定の実施形態では、識別ユニット524は、キャプチャされたフレーム中でコントローラモジュール510を追跡するためのあらかじめ決定された特徴を識別し得る。たとえば、コントローラモジュール510のあらかじめ決定された特徴は、コントローラモジュール510を保持しているときのユーザの手のジェスチャーを含み得、それにより、あらかじめ決定された特徴は、ユーザ/中央モジュール520に対するコントローラモジュール510の位置を示し得る。識別ユニット524は、次いで、コントローラモジュール528のポーズの調整のために、識別されたフレームをフィルタユニット528に送信し得る。特定の実施形態では、識別ユニット524はまた、識別されたフレームを、コントローラユニット510を追跡するための追跡ユニット526に送信し得る。
フィルタユニット528は、受信された生IMUデータ540に基づいてコントローラモジュール510のポーズを生成する。特定の実施形態では、フィルタユニット528は、コントローラモジュールのフレームをキャプチャするレートよりも速いレートにおいてコントローラモジュール510のポーズを生成する。たとえば、フィルタユニット528は、500Hzのレートにおいてコントローラモジュール510のポーズを推定および更新し得る。フィルタユニット528は、次いで、識別されたフレームに基づいてコントローラモジュール510のポーズを再整合させる/再調整する。特定の実施形態では、フィルタユニット528は、識別されたフレーム中のコントローラモジュール510の光ユニット514のパターンに基づいてコントローラモジュール510のポーズを調整し得る。特定の実施形態では、フィルタユニット528は、フレーム中で識別されたあらかじめ決定された特徴に基づいてコントローラモジュール510のポーズを調整し得る。
特定の実施形態では、追跡ユニット526は、異なるフレーム中で識別されたあらかじめ決定された特徴に基づいて対応データを決定し得る。対応データは、環境におけるコントローラモジュール510のあらかじめ決定された特徴のロケーションなど、あらかじめ決定された特徴の観測値および測定値を含み得る。さらに、追跡ユニット526はまた、中央モジュール520がコントローラモジュール510を追跡するための追加情報を提供するために、あらかじめ決定された特徴の近くで収集されたステレオ計算を実施し得る。さらに、中央モジュール520の追跡ユニット526は、対応データに対応するライブマップをクラウド530に要求し得る。特定の実施形態では、ライブマップは、マップデータ544を含み得る。中央モジュール520の追跡ユニット526はまた、ローカルにまたはグローバルにライブマップ中で位置を特定されるようにコントローラモジュール510についてリモート再位置特定サービス544を要求し得る。
さらに、フィルタユニット528は、対応データと生IMUデータ540とに基づいてコントローラモジュール510の状態を推定し得る。特定の実施形態では、コントローラモジュール510の状態は、カメラ522によってキャプチャされたフレームに基づいて構築された環境、たとえば、ローカルに構築されたマップに対するコントローラモジュール510のポーズを含み得る。さらに、フィルタユニット528はまた、(たとえば、ローカルに構築された環境を用いた)クラウド530に記憶されたマップのグローバル位置特定または更新のために、コントローラモジュール510の状態情報をクラウド530に送信し得る。
図6Aは、いくつかの実施形態による、環境における第1の光条件に基づいてIR画像をキャプチャするための例示的な方法600を示す。追跡システムのコントローラモジュールが、ウェアラブルデバイス(たとえば、入力ボタンをもつリモートコントローラ、タッチパッドをもつスマートパックなど)において実装され得る。追跡システムの中央モジュールが、任意のコンピューティングシステム(たとえば、スマートフォンなどのエンドユーザのデバイス、仮想現実システム、ゲーミングシステムなど)に提供されるかまたはその上に表示され、ウェアラブルデバイスにおいて実装されるコントローラモジュールとペアリングされ得る。方法600は、ステップ610において始まり、ウェアラブルデバイスから、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信し得る。特定の実施形態では、ウェアラブルデバイスはコントローラであり得る。特定の実施形態では、ウェアラブルデバイスは、1つまたは複数のIMUおよび1つまたは複数のIR LEDを装備し得る。
ステップ620において、方法600は、中央モジュールにおいて、ウェアラブルデバイスから送信された動きデータに基づいてウェアラブルデバイスのポーズを生成し得る。
ステップ630において、方法600は、中央モジュールにおいて、ウェアラブルデバイスの第1の光条件を識別し得る。特定の実施形態では、第1の光条件は、屋内環境、環境が薄暗い光を有すること、ウェアラブルデバイスのIR LEDと同様の光源をもたない環境、および中央モジュールのカメラが追跡のためにウェアラブルデバイスのIR LEDのパターンをキャプチャすることが可能であることのうちの1つまたは複数を含み得る。
ステップ640において、方法600は、第1の露光時間を使用してカメラによってウェアラブルデバイスの第1のフレームをキャプチャし得る。特定の実施形態では、第1のフレームはIR画像であり得る。特定の実施形態では、ウェアラブルデバイスのポーズは、第1のフレームがキャプチャされる周波数よりも速い周波数において生成され得る。
ステップ650において、方法600は、第1のフレーム中で、ウェアラブルデバイス上に配置された光のパターンを識別し得る。特定の実施形態では、光のパターンは、ウェアラブルデバイスのIR LEDからなるものであり得る。
図6Bは、いくつかの実施形態による、環境における第1の光条件に基づいてIR画像と可視光画像とを交互にキャプチャすることによってウェアラブルデバイスのポーズを調整するための例示的な方法601を示す。方法601は、方法601におけるステップ650に続くステップ660において始まり、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャし得る。特定の実施形態では、第2の露光時間は第1の露光時間よりも長いことがある。特定の実施形態では、第2のフレームは可視光画像であり得る。たとえば、可視光画像はRGB画像であり得る。特定の実施形態では、ウェアラブルデバイスのポーズは、第2のフレームがキャプチャされる周波数よりも速い周波数において生成され得る。
ステップ670において、方法601は、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別し得る。特定の実施形態では、あらかじめ決定された特徴は、コントローラモジュールのための初期化/起動フェーズ中にあらかじめ決定され得る。特定の実施形態では、あらかじめ決定された特徴は、コントローラモジュールにおいて(たとえば、小さいQRコードを介して)ペイントされ得る。特定の実施形態では、あらかじめ決定された特徴は、前の動作から決定されたウェアラブルデバイスを追跡するための信頼できる特徴であり得る。たとえば、信頼できる特徴は、ウェアラブルデバイスを追跡するための前のフレーム中で繰り返し識別された特徴であり得る。
ステップ680において、方法601は、(1)第1のフレーム中の光の識別されたパターンまたは(2)第2のフレーム中の識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境においてウェアラブルデバイスのポーズを調整し得る。特定の実施形態では、本方法は、光の識別されたパターン、または識別されたあらかじめ決定された特徴の最初にキャプチャ/識別されたほうに基づいて、ウェアラブルデバイスのポーズを調整し得る。特定の実施形態では、本方法は、ウェアラブルデバイスのポーズを調整するプロセスに基づいてニューラルネットワークを訓練または更新し得る。訓練されたニューラルネットワークは、さらに、追跡および/または画像改良において使用され得る。
特定の実施形態では、方法601は、第2の露光時間を使用してカメラによってウェアラブルデバイスの第3のフレームをキャプチャすることと、第3のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、あらかじめ決定された特徴と1つまたは複数の特徴との間の対応データを決定することと、対応データに基づいて環境においてウェアラブルデバイスを追跡することとをさらに行い得る。
特定の実施形態では、コンピューティングシステムは、ウェアラブルデバイスの第1のフレームおよび第2のフレームをキャプチャするように構成されたカメラと、ウェアラブルデバイスの光のパターンおよびあらかじめ決定された特徴を識別するように構成された識別ユニットと、ウェアラブルデバイスのポーズを調整するように構成されたフィルタユニットとを備え得る。特定の実施形態では、中央モジュールはヘッドマウントデバイス内に位置し得、コントローラモジュールは、ヘッドマウントデバイスから分離されたコントローラにおいて実装され得る。特定の実施形態では、ヘッドマウントデバイスは1つまたは複数のプロセッサを備え得、1つまたは複数のプロセッサは、カメラ、識別ユニット、およびフィルタユニットを実装するように構成される。
特定の実施形態では、方法601は、環境が第1の光条件を有するとき、第1の露光時間を使用してウェアラブルデバイスの第1のフレームをキャプチャするようにさらに構成され得る。特定の実施形態では、方法601は、環境が第2の光条件を有するとき、第2の露光時間を使用してウェアラブルデバイスの第2のフレームをキャプチャするようにさらに構成され得る。第2の光条件は、環境が明るい光を有すること、環境が、ウェアラブルデバイスの光のパターンに干渉することになる光源を有すること、およびカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。
特定の実施形態は、適切な場合、図6A~図6Bの方法の1つまたは複数のステップを繰り返し得る。本開示は、図6A~図6Bの方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図6A~図6Bの方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図6A~図6Bの方法の特定のステップを含む、ローカル位置特定のための例示的な方法を説明し、示すが、本開示は、適切な場合、図6A~図6Bの方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、ローカル位置特定のための任意の好適な方法を企図する。さらに、本開示は、図6A~図6Bの方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図6A~図6Bの方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
図7は、いくつかの実施形態による、環境における第2の光条件に基づいて可視光画像をキャプチャすることによってウェアラブルデバイスのポーズを調整するための例示的な方法700を示す。追跡システムのコントローラモジュールが、ウェアラブルデバイス(たとえば、入力ボタンをもつリモートコントローラ、タッチパッドをもつスマートパックなど)において実装され得る。追跡システムの中央モジュールが、任意のコンピューティングシステム(たとえば、スマートフォンなどのエンドユーザのデバイス、仮想現実システム、ゲーミングシステムなど)に提供されるかまたはその上に表示され、ウェアラブルデバイスにおいて実装されるコントローラモジュールとペアリングされ得る。方法700は、ステップ710において始まり、ウェアラブルデバイスから、ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信し得る。特定の実施形態では、ウェアラブルデバイスはコントローラであり得る。特定の実施形態では、ウェアラブルデバイスは、1つまたは複数のIMUおよび1つまたは複数のIR LEDを装備し得る。
ステップ720において、方法700は、中央モジュールにおいて、ウェアラブルデバイスから送信された動きデータに基づいてウェアラブルデバイスのポーズを生成し得る。
ステップ730において、方法700は、中央モジュールにおいて、ウェアラブルデバイスの第2の光条件を識別し得る。特定の実施形態では、第2の光条件は、環境が明るい光を有すること、環境が、ウェアラブルデバイスのIR LEDと同様の光源を有すること、およびカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。
ステップ740において、方法700は、第2の露光時間を使用してカメラによってウェアラブルデバイスの第2のフレームをキャプチャし得る。特定の実施形態では、第2のフレームは可視光画像であり得る。たとえば、可視光画像はRGB画像であり得る。特定の実施形態では、ウェアラブルデバイスのポーズは、第2のフレームがキャプチャされる周波数よりも速い周波数において生成され得る。
ステップ750において、方法700は、第2のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴を識別し得る。特定の実施形態では、あらかじめ決定された特徴は、コントローラモジュールのための初期化/起動フェーズ中にあらかじめ決定され得る。特定の実施形態では、あらかじめ決定された特徴は、コントローラモジュールにおいて(たとえば、小さいQRコードを介して)ペイントされ得る。特定の実施形態では、あらかじめ決定された特徴は、前の動作から決定されたウェアラブルデバイスを追跡するための信頼できる特徴であり得る。たとえば、信頼できる特徴は、ウェアラブルデバイスを追跡するための前のフレーム中で繰り返し識別された特徴であり得る。
ステップ760において、方法700は、第2のフレーム中の識別されたあらかじめ決定された特徴に基づいて、環境においてウェアラブルデバイスのポーズを調整し得る。
特定の実施形態では、方法700は、第2の露光時間を使用してカメラによってウェアラブルデバイスの第3のフレームをキャプチャすることと、第3のフレーム中で、ウェアラブルデバイスのあらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、あらかじめ決定された特徴と1つまたは複数の特徴との間の対応データを決定することと、対応データに基づいて環境においてウェアラブルデバイスを追跡することとをさらに行い得る。
特定の実施形態では、コンピューティングシステムは、ウェアラブルデバイスの第1のフレームおよび第2のフレームをキャプチャするように構成されたカメラと、ウェアラブルデバイスの光のパターンおよびあらかじめ決定された特徴を識別するように構成された識別ユニットと、ウェアラブルデバイスのポーズを調整するように構成されたフィルタユニットとを備え得る。特定の実施形態では、中央モジュールはヘッドマウントデバイス内に位置し得、コントローラモジュールは、ヘッドマウントデバイスから分離されたコントローラにおいて実装され得る。特定の実施形態では、ヘッドマウントデバイスは1つまたは複数のプロセッサを備え得、1つまたは複数のプロセッサは、カメラ、識別ユニット、およびフィルタユニットを実装するように構成される。
特定の実施形態では、方法700は、環境が第2の光条件を有するとき、第2の露光時間を使用してウェアラブルデバイスの第2のフレームをキャプチャするようにさらに構成され得る。第2の光条件は、環境が明るい光を有すること、環境が、ウェアラブルデバイスの光のパターンに干渉することになる光源を有すること、およびカメラが光のパターンをキャプチャすることが可能でないことのうちの1つまたは複数を含み得る。
特定の実施形態は、適切な場合、図7の方法の1つまたは複数のステップを繰り返し得る。本開示は、図7の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図7の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図7の方法の特定のステップを含む、ローカル位置特定のための例示的な方法を説明し、示すが、本開示は、適切な場合、図7の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、ローカル位置特定のための任意の好適な方法を企図する。さらに、本開示は、図7の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図7の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
図8は、例示的なコンピュータシステム800を示す。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム800は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム800上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム800の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
本開示は、任意の好適な数のコンピュータシステム800を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム800を企図する。限定としてではなく例として、コンピュータシステム800は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム800は、1つまたは複数のコンピュータシステム800を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム800は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム800は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム800は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
特定の実施形態では、コンピュータシステム800は、プロセッサ802と、メモリ804と、ストレージ806と、入出力(I/O)インターフェース808と、通信インターフェース810と、バス812とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
特定の実施形態では、プロセッサ802は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ802を企図する。限定としてではなく一例として、プロセッサ802は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ804またはストレージ806中の命令のコピーであり得、命令キャッシュは、プロセッサ802によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ802において実行する命令が動作する対象のメモリ804またはストレージ806中のデータのコピー、プロセッサ802において実行する後続の命令によるアクセスのための、またはメモリ804もしくはストレージ806に書き込むための、プロセッサ802において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ802による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ802のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ802を企図する。適切な場合、プロセッサ802は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ802を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ804は、プロセッサ802が実行するための命令、またはプロセッサ802が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム800は、ストレージ806または(たとえば、別のコンピュータシステム800などの)別のソースからメモリ804に命令をロードし得る。プロセッサ802は、次いで、メモリ804から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ802は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ802は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ802は、次いで、メモリ804にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ802は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ806または他の場所とは対照的な)メモリ804中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ806または他の場所とは対照的な)メモリ804中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ802をメモリ804に結合し得る。バス812は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ802とメモリ804との間に常駐し、プロセッサ802によって要求されるメモリ804へのアクセスを容易にする。特定の実施形態では、メモリ804は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ804は、適切な場合、1つまたは複数のメモリ804を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
特定の実施形態では、ストレージ806は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ806は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ806は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ806は、適切な場合、コンピュータシステム800の内部または外部にあり得る。特定の実施形態では、ストレージ806は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ806は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ806を企図する。ストレージ806は、適切な場合、プロセッサ802とストレージ806との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ806は、1つまたは複数のストレージ806を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
特定の実施形態では、I/Oインターフェース808は、コンピュータシステム800と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム800は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム800との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース808とを企図する。適切な場合、I/Oインターフェース808は、プロセッサ802がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース808は、適切な場合、1つまたは複数のI/Oインターフェース808を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース810は、コンピュータシステム800と、1つまたは複数の他のコンピュータシステム800または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース810は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース810とを企図する。限定としてではなく一例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム800は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム800は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース810を含み得る。通信インターフェース810は、適切な場合、1つまたは複数の通信インターフェース810を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス812は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス812は、適切な場合、1つまたは複数のバス812を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
様々な実施形態によれば、本明細書の特徴の利点は、追跡システム中の中央モジュールに関連するコントローラのポーズが動作中に効率的に再整合され得ることである。中央モジュールは、中央モジュールが環境からの制限なしにリアルタイムで正確にコントローラを追跡し得るように、IRコンスタレーション追跡またはVIOベース追跡のいずれかに基づいてコントローラを再整合させることができる。本開示の特定の実施形態はまた、コントローラ上に配置されたLEDが機能しないときにコントローラを追跡することが可能である。さらに、中央モジュールが、IRコンスタレーション追跡が損なわれたと決定したとき、中央モジュールは、電力節約のためにコントローラ上のLEDをオフに切り替えることができる。したがって、本開示で開示される特定の実施形態は、コントローラのための改善された、電力効率的な追跡方法を提供し得る。
図におけるプロセスが本発明のいくつかの実施形態によって実施される動作の特定の順序を示し得るが、そのような順序は例示的である(たとえば、代替実施形態が、異なる順序で動作を実施する、いくつかの動作を組み合わせる、いくつかの動作を重ね合わせる、などを行い得る)ことを理解されたい。
本発明はいくつかの実施形態に関して説明されたが、当業者は、本発明が、説明された実施形態に限定されず、添付の特許請求の範囲の範囲内で修正および改変を加えて実施され得ることを認識されよう。したがって、説明は、限定ではなく、例示的と考えられるべきである。

Claims (15)

  1. コンピューティングシステムによって、
    ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、
    前記動きデータに基づいて前記ウェアラブルデバイスのポーズを生成することと、
    第1の露光時間を使用してカメラによって前記ウェアラブルデバイスの第1のフレームをキャプチャすることと、
    前記第1のフレーム中で、前記ウェアラブルデバイス上に配置された光のパターンを識別することと、
    第2の露光時間を使用して前記カメラによって前記ウェアラブルデバイスの第2のフレームをキャプチャすることと、
    前記第2のフレーム中で、前記ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、
    (1)前記第1のフレーム中の光の前記識別されたパターンまたは(2)前記第2のフレーム中の前記識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境において前記ウェアラブルデバイスの前記ポーズを調整することと
    を含む、方法。
  2. 前記環境が第1の光条件を有するとき、前記第1の露光時間を使用して前記ウェアラブルデバイスの前記第1のフレームをキャプチャすることと、
    前記環境が第2の光条件を有するとき、前記第2の露光時間を使用して前記ウェアラブルデバイスの前記第2のフレームをキャプチャすることと、好ましくは、前記第2の光条件が、
    環境が明るい光を有すること、
    環境が、前記ウェアラブルデバイスの光の前記パターンに干渉することになる光源を有すること、および
    前記カメラが光の前記パターンをキャプチャすることが可能でないこと
    のうちの1つまたは複数を含む、
    請求項1に記載の方法。
  3. 前記ウェアラブルデバイスが、1つまたは複数の慣性測定ユニット(IMU)と1つまたは複数の赤外(IR)発光ダイオード(LED)とを装備し、
    前記第1のフレームがIR画像であり、
    前記第2のフレームが可視光画像である、
    請求項1または2に記載の方法。
  4. 前記第2の露光時間が前記第1の露光時間よりも長い、請求項1から3のいずれか一項に記載の方法。
  5. 前記ウェアラブルデバイスの前記ポーズは、前記第1のフレームおよび前記第2のフレームがキャプチャされる周波数よりも速い周波数において生成される、請求項1から4のいずれか一項に記載の方法。
  6. 前記第2の露光時間を使用して前記カメラによって前記ウェアラブルデバイスの第3のフレームをキャプチャすることと、
    前記第3のフレーム中で、前記ウェアラブルデバイスの前記あらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、
    前記あらかじめ決定された特徴と前記1つまたは複数の特徴との間の対応データを決定することと、
    前記対応データに基づいて前記環境において前記ウェアラブルデバイスを追跡することと
    をさらに含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記コンピューティングシステムが、
    前記ウェアラブルデバイスの前記第1のフレームおよび前記第2のフレームをキャプチャするように構成された前記カメラと、
    前記ウェアラブルデバイスの光の前記パターンおよび前記あらかじめ決定された特徴を識別するように構成された識別ユニットと、
    前記ウェアラブルデバイスの前記ポーズを調整するように構成されたフィルタユニットと
    を備える、請求項1から6のいずれか一項に記載の方法。
  8. 前記カメラがヘッドマウントデバイス内に位置し、
    前記ウェアラブルデバイスが、前記ヘッドマウントデバイスから分離されたコントローラであり、好ましくは、前記ヘッドマウントデバイスが1つまたは複数のプロセッサを備え、前記1つまたは複数のプロセッサが、前記カメラ、前記識別ユニット、および前記フィルタユニットを実装するように構成された、
    請求項1から7のいずれか一項に記載の方法。
  9. ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアが、実行されたとき、
    ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、
    前記動きデータに基づいて前記ウェアラブルデバイスのポーズを生成することと、
    第1の露光時間を使用してカメラによって前記ウェアラブルデバイスの第1のフレームをキャプチャすることと、
    前記第1のフレーム中で、前記ウェアラブルデバイス上に配置された光のパターンを識別することと、
    第2の露光時間を使用して前記カメラによって前記ウェアラブルデバイスの第2のフレームをキャプチャすることと、
    前記第2のフレーム中で、前記ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、
    (1)前記第1のフレーム中の光の前記識別されたパターンまたは(2)前記第2のフレーム中の前記識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境において前記ウェアラブルデバイスの前記ポーズを調整することと
    を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
  10. 前記ソフトウェアは、実行されたとき、
    前記環境が第1の光条件を有するとき、前記第1の露光時間を使用して前記ウェアラブルデバイスの前記第1のフレームをキャプチャすることと、
    前記環境が第2の光条件を有するとき、前記第2の露光時間を使用して前記ウェアラブルデバイスの前記第2のフレームをキャプチャすることとを行うようにさらに動作可能であり、好ましくは、前記第2の光条件が、
    環境が明るい光を有すること、
    環境が、前記ウェアラブルデバイスの光の前記パターンに干渉することになる光源を有すること、および
    前記カメラが光の前記パターンをキャプチャすることが可能でないこと
    のうちの1つまたは複数を含む、
    請求項9に記載の媒体。
  11. 前記ウェアラブルデバイスが、1つまたは複数の慣性測定ユニット(IMU)と1つまたは複数の赤外(IR)発光ダイオード(LED)とを装備し、
    前記第1のフレームがIR画像であり、
    前記第2のフレームが可視光画像であり、ならびに/または好ましくは、前記第2の露光時間が前記第1の露光時間よりも長く、ならびに/または好ましくは、ウェアラブルデバイスの前記ポーズは、前記第1のフレームおよび前記第2のフレームがキャプチャされる周波数よりも速い周波数において生成される、
    請求項9または10に記載の媒体。
  12. 前記ソフトウェアが、実行されたとき、
    前記第2の露光時間を使用して前記カメラによって前記ウェアラブルデバイスの第3のフレームをキャプチャすることと、
    前記第3のフレーム中で、前記ウェアラブルデバイスの前記あらかじめ決定された特徴に対応する1つまたは複数の特徴を識別することと、
    前記あらかじめ決定された特徴と前記1つまたは複数の特徴との間の対応データを決定することと、
    前記調整されたポーズと前記対応データとに基づいて前記環境において前記ウェアラブルデバイスを追跡することと
    を行うようにさらに動作可能である、請求項9から11のいずれか一項に記載の方法。
  13. 前記カメラがヘッドマウントデバイス内に位置し、
    前記ウェアラブルデバイスが、前記ヘッドマウントデバイスから分離されたリモートコントローラである、
    請求項9から12のいずれか一項に記載の媒体。
  14. 1つまたは複数のプロセッサと、前記プロセッサのうちの1つまたは複数に結合され、命令を備える、1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、前記命令が、前記プロセッサのうちの前記1つまたは複数によって実行されたとき、前記システムに、
    ウェアラブルデバイスの1つまたは複数の動きセンサーによってキャプチャされた動きデータを受信することと、
    前記動きデータに基づいて前記ウェアラブルデバイスのポーズを生成することと、
    第1の露光時間を使用してカメラによって前記ウェアラブルデバイスの第1のフレームをキャプチャすることと、
    前記第1のフレーム中で、前記ウェアラブルデバイス上に配置された光のパターンを識別することと、
    第2の露光時間を使用して前記カメラによって前記ウェアラブルデバイスの第2のフレームをキャプチャすることと、
    前記第2のフレーム中で、前記ウェアラブルデバイスのあらかじめ決定された特徴を識別することと、
    (1)前記第1のフレーム中の光の前記識別されたパターンまたは(2)前記第2のフレーム中の前記識別されたあらかじめ決定された特徴のうちの少なくとも1つに基づいて、環境において前記ウェアラブルデバイスの前記ポーズを調整することと
    を行わせるように動作可能である、システム。
  15. 前記命令は、前記システムに、
    前記環境が第1の光条件を有するとき、前記第1の露光時間を使用して前記ウェアラブルデバイスの前記第1のフレームをキャプチャすることと、
    前記環境が第2の光条件を有するとき、前記第2の露光時間を使用して前記ウェアラブルデバイスの前記第2のフレームをキャプチャすることと
    をさらに行わせる、請求項14に記載のシステム。
JP2022530244A 2020-01-03 2021-01-01 ジョイント赤外および可視光視覚慣性オブジェクト追跡 Pending JP2023509291A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/734,172 US20210208673A1 (en) 2020-01-03 2020-01-03 Joint infrared and visible light visual-inertial object tracking
US16/734,172 2020-01-03
PCT/US2021/012001 WO2021138637A1 (en) 2020-01-03 2021-01-01 Joint infrared and visible light visual-inertial object tracking

Publications (1)

Publication Number Publication Date
JP2023509291A true JP2023509291A (ja) 2023-03-08

Family

ID=74347731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022530244A Pending JP2023509291A (ja) 2020-01-03 2021-01-01 ジョイント赤外および可視光視覚慣性オブジェクト追跡

Country Status (6)

Country Link
US (1) US20210208673A1 (ja)
EP (1) EP4085373A1 (ja)
JP (1) JP2023509291A (ja)
KR (1) KR20220122675A (ja)
CN (1) CN115104134A (ja)
WO (1) WO2021138637A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828596A (zh) * 2019-02-28 2019-05-31 深圳市道通智能航空技术有限公司 一种目标跟踪方法、装置和无人机
CN112437213A (zh) * 2020-10-28 2021-03-02 青岛小鸟看看科技有限公司 图像采集方法、手柄设备、头戴设备及头戴系统
CN112527102B (zh) * 2020-11-16 2022-11-08 青岛小鸟看看科技有限公司 头戴式一体机系统及其6DoF追踪方法和装置
US20220244540A1 (en) * 2021-02-03 2022-08-04 Htc Corporation Tracking system
US20240069651A1 (en) * 2022-08-30 2024-02-29 Htc Corporation Virtual reality tracker and tracker correction position method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9724597B2 (en) * 2012-06-04 2017-08-08 Sony Interactive Entertainment Inc. Multi-image interactive gaming device
US10951310B2 (en) * 2012-12-27 2021-03-16 Panasonic Intellectual Property Corporation Of America Communication method, communication device, and transmitter
US20160366398A1 (en) * 2015-09-11 2016-12-15 Mediatek Inc. Image Frame Synchronization For Dynamic Image Frame Rate In Dual-Camera Applications
US10819926B2 (en) * 2018-04-09 2020-10-27 Facebook Technologies, Llc Systems and methods for synchronizing image sensors
US10628711B2 (en) * 2018-04-24 2020-04-21 Microsoft Technology Licensing, Llc Determining pose of handheld object in environment
TWI784237B (zh) * 2020-02-11 2022-11-21 群光電子股份有限公司 監控裝置及影像擷取方法

Also Published As

Publication number Publication date
CN115104134A (zh) 2022-09-23
EP4085373A1 (en) 2022-11-09
KR20220122675A (ko) 2022-09-02
US20210208673A1 (en) 2021-07-08
WO2021138637A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
US11887312B2 (en) Fiducial marker patterns, their automatic detection in images, and applications thereof
JP2023509291A (ja) ジョイント赤外および可視光視覚慣性オブジェクト追跡
US11625841B2 (en) Localization and tracking method and platform, head-mounted display system, and computer-readable storage medium
JP6502370B2 (ja) 適応ホモグラフィ写像に基づく視線追跡
US10671843B2 (en) Technologies for detecting interactions with surfaces from a spherical view of a room
CN102959616B (zh) 自然交互的交互真实性增强
US11050803B2 (en) Head-mounted devices (HMDs) discovery in co-located virtual, augmented, and mixed reality (xR) applications
US20180005445A1 (en) Augmenting a Moveable Entity with a Hologram
US20220253131A1 (en) Systems and methods for object tracking using fused data
US20240104744A1 (en) Real-time multi-view detection of objects in multi-camera environments
TW202326365A (zh) 手持裝置的追蹤
TW201917534A (zh) 互動顯示系統及互動顯示控制方法
US20220375026A1 (en) Late warping to minimize latency of moving objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231019