(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-25
(54)【発明の名称】エンコーダ-デコーダモデルを使用する画像における物体観察追跡
(51)【国際特許分類】
G06N 3/045 20230101AFI20240718BHJP
G06N 3/08 20230101ALI20240718BHJP
【FI】
G06N3/045
G06N3/08
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023579020
(86)(22)【出願日】2022-06-22
(85)【翻訳文提出日】2024-01-30
(86)【国際出願番号】 US2022073092
(87)【国際公開番号】W WO2022272267
(87)【国際公開日】2022-12-29
(32)【優先日】2021-06-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】グレリューズ,オヌール・ジィ
(72)【発明者】
【氏名】ファネロ,ショーン・リャン・フランセスコ
(57)【要約】
方法であって、トレーニング段階では、第1のモデルと第2のモデルとを含む視線予測モデルをトレーニングすることを含み、第1のモデルおよび第2のモデルは、トレーニングデータに基づいてセグメンテーションデータを予測するように連携して構成され、方法は、第1のモデルおよび第2のモデルとともに第3のモデルをトレーニングすることをさらに含み、第3のモデルは、トレーニングデータに基づいて第1のモデルの出力を使用してトレーニング特性を予測するように構成され、方法は、動作段階では、動作データを受信することと、トレーニングされた第1のモデルとトレーニングされた第3のモデルとを使用して動作特性を予測することとをさらに含む、方法。
【特許請求の範囲】
【請求項1】
方法であって、
トレーニング段階では、
第1のモデルと第2のモデルとを含む視線予測モデルをトレーニングすることを含み、
前記第1のモデルおよび前記第2のモデルは、トレーニングデータに基づいてセグメンテーションデータを予測するように連携して構成され、
前記方法は、
前記第1のモデルおよび前記第2のモデルとともに第3のモデルをトレーニングすることをさらに含み、
前記第3のモデルは、前記トレーニングデータに基づいて前記第1のモデルの出力を使用してトレーニング特性を予測するように構成され、
前記方法は、動作段階では、
動作データを受信することと、
前記トレーニングされた第1のモデルと前記トレーニングされた第3のモデルとを使用して動作特性を予測することと
をさらに含む、方法。
【請求項2】
前記トレーニングデータは眼の画像を含み、
前記予測されたセグメンテーションデータは前記眼の領域を含み、
前記トレーニング特性は前記眼の視線である、
請求項1に記載の方法。
【請求項3】
前記動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉される眼の画像を含み、
前記動作特性は前記眼の視線である、
請求項1または請求項2に記載の方法。
【請求項4】
前記視線予測モデルを前記トレーニングすることは、
前記第1のモデルを使用して前記トレーニングデータに基づき第1の特徴マップを生成することと、
前記第2のモデルを使用して前記第1の特徴マップに基づき第2の特徴マップを生成することと、
前記第2の特徴マップに基づいて前記セグメンテーションデータを予測することと、
前記予測されたセグメンテーションデータに関連する損失を生成することと、
前記損失と前記トレーニング特性に関連する損失とに基づいて前記第1のモデルおよび前記第2のモデルのうちの少なくとも1つをトレーニングすることと
を含む、請求項1~請求項3のいずれか1項に記載の方法。
【請求項5】
前記視線予測モデルを前記トレーニングすることは、
前記第1のモデルを使用して前記トレーニングデータに基づき第1の特徴マップを生成することと、
前記第3のモデルを使用して前記第1の特徴マップに基づき前記トレーニング特性を予測することと、
前記予測されたトレーニング特性に関連する損失を生成することと、
前記損失と前記セグメンテーションデータに関連する損失とに基づいて前記第3のモデルをトレーニングすることと
を含む、請求項1~請求項4のいずれか1項に記載の方法。
【請求項6】
前記動作特性を前記予測することは、
前記第1のモデルを使用して前記動作データに基づき特徴マップを生成することと、
前記第3のモデルを使用して前記特徴マップに基づき前記動作特性を予測することと
を含む、請求項1~請求項5のいずれか1項に記載の方法。
【請求項7】
前記第1のモデルは第1の畳み込みニューラルネットワーク(CNN)であり、
前記第2のモデルは、前記第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNであり、
前記第3のモデルは線形ニューラルネットワークである、
請求項1~請求項6のいずれか1項に記載の方法。
【請求項8】
前記第2のモデルは、前記第1のモデルによって生成される特徴マップからセグメンテーションを予測するように構成され、
動作段階において、前記第2のモデルは前記視線予測モデルから除去される、
請求項1~請求項7のいずれか1項に記載の方法。
【請求項9】
前記視線予測モデルを前記トレーニングすることは、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含む、請求項1~請求項8のいずれか1項に記載の方法。
【請求項10】
前記動作段階の前に、較正段階において、ARユーザデバイスを使用して捕捉されるユーザデータに基づいて、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つをトレーニングすること
をさらに含む、請求項1~請求項9のいずれか1項に記載の方法。
【請求項11】
第1のモデルを使用してトレーニングデータに基づき第1の特徴マップを生成することと、
第2のモデルを使用して前記第1の特徴マップに基づき第2の特徴マップを生成することと、
前記第2の特徴マップに基づいてセグメンテーションデータを予測することと、
前記予測されたセグメンテーションデータに関連する第1の損失を生成することと、
第3のモデルを使用して前記第1の特徴マップに基づきトレーニング特性を予測することと、
前記予測されたトレーニング特性に関連する第2の損失を生成することと、
前記第1の損失と前記第2の損失とに基づいて、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つをトレーニングすることと
を含む、方法。
【請求項12】
前記トレーニングデータは眼の画像を含み、
前記予測されたセグメンテーションデータは前記眼の領域を含み、
前記トレーニング特性は前記眼の視線である、
請求項11に記載の方法。
【請求項13】
前記第1のモデルは第1の畳み込みニューラルネットワーク(CNN)であり、
前記第2のモデルは、前記第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNであり、
前記第3のモデルは線形ニューラルネットワークである、
請求項11または請求項12に記載の方法。
【請求項14】
前記第2のモデルは、前記第1のモデルによって生成される特徴マップからセグメンテーションを予測するように構成され、
動作段階において、前記第2のモデルは除去される、
請求項11~請求項13のいずれか1項に記載の方法。
【請求項15】
前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つを前記トレーニングすることは、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含む、請求項11~請求項14のいずれか1項に記載の方法。
【請求項16】
前記セグメンテーションデータを前記予測することは、前記第2の特徴マップに関連するデータを別個のグループに分離することを含むプロセスである、請求項11~請求項15のいずれか1項に記載の方法。
【請求項17】
前記セグメンテーションデータを前記予測することは、検出プロセスおよび抑制プロセスを含む、請求項11~請求項16のいずれか1項に記載の方法。
【請求項18】
方法であって、
トレーニングされた第1のモデルを使用して動作データに基づき特徴マップを生成することと、
トレーニングされた第2のモデルを使用して前記特徴マップに基づき特性を予測することとを含み、
前記第1のモデルおよび前記第2のモデルの前記トレーニングは、前記トレーニング中にセグメンテーションデータを予測するために第3のモデルを使用することを含み、
前記方法は、
前記特性を予測するために前記第3のモデルを除去することをさらに含む、
方法。
【請求項19】
前記動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉される眼の画像を含み、
前記動作特性は前記眼の視線である、
請求項18に記載の方法。
【請求項20】
ARユーザデバイスを使用して捕捉されるユーザデータに基づいて、前記トレーニングされた第1のモデル、前記トレーニングされた第2のモデル、および前記第3のモデルのうちの少なくとも1つをさらにトレーニングすることをさらに含む、請求項18または請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、その開示全体が参照により本明細書に組み込まれる、2021年6月22日に出願された「エンコーダ-デコーダモデルを使用する画像における物体観察追跡」という名称の米国非仮特許出願第17/304,505号の継続出願であり、その優先権を主張するものである。
【0002】
分野
実施形態は、拡張現実デバイスのユーザの視線または眼を追跡するためにユーザがどこを見ているかを決定することに関する。
【背景技術】
【0003】
背景
畳み込みネットワークを使用する機械学習技術は、拡張現実(AR)アプリケーションにおける視線(例えば、眼の方向)の予測および追跡に使用することができる。畳み込みネットワークは、複数の畳み込み層とプーリング層を連続して適用できる。畳み込みネットワークは、(N×N)個の高解像度画像から開始して、次元N/m × N/m × Fの空間的にプールされた特徴マップを生成でき、ここで、Fは特徴チャネルの数である。
【発明の概要】
【0004】
概要
実施態様は、機械学習モデル(例えば、エンコーダ-デコーダモデル、畳み込みニューラルネットワーク(CNN)、線形ネットワークなど)を使用して、画像内の物体の観察を追跡する(例えば、視線追跡)ことに関する。これらの機械学習されたモデルは、モデルが第1の構成でトレーニングされて第2の構成で使用されるデータの特性を予測するために使用することもできる。
【0005】
一般的な態様において、デバイス、システム、非一時的なコンピュータ可読媒体(コンピュータシステム上で実行可能なコンピュータ実行可能プログラムコードを記憶している)、および/または方法は、トレーニング段階では、第1のモデルと第2のモデルとを含む視線予測モデルをトレーニングすることを含み、第1のモデルおよび第2のモデルは、トレーニングデータに基づいてセグメンテーションデータを予測するように連携して構成され、方法は、第1のモデルおよび第2のモデルとともに第3のモデルをトレーニングすることをさらに含み、第3のモデルは、トレーニングデータに基づいて第1のモデルの出力を使用してトレーニング特性を予測するように構成され、方法は、動作段階では、動作データを受信することと、トレーニングされた第1のモデルとトレーニングされた第3のモデルとを使用して動作特性を予測することとをさらに含む方法を伴うプロセスを実行することができる。
【0006】
実施態様は、以下の特徴のうちの1つ以上を含むことができる。例えば、トレーニングデータは眼の画像を含むことができ、予測されたセグメンテーションデータは眼の領域を含むことができ、トレーニング特性は眼の視線であることができる。動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉された眼の画像を含むことができ、動作特性は眼の視線であり得る。視線予測モデルをトレーニングすることは、第1のモデルを使用してトレーニングデータに基づいて第1の特徴マップを生成することと、第2のモデルを使用して第1の特徴マップに基づいて第2の特徴マップを生成することと、第2の特徴マップに基づいてセグメンテーションデータを予測することと、予測されたセグメンテーションデータに関連する損失を生成することと、該損失とトレーニング特性に関連する損失とに基づいて第1のモデルおよび第2のモデルのうちの少なくとも1つをトレーニングすることとを含むことができる。視線予測モデルをトレーニングすることは、第1のモデルを使用してトレーニングデータに基づいて第1の特徴マップを生成することと、第3のモデルを使用して第1の特徴マップに基づいてトレーニング特性を予測することと、予測されたトレーニング特性に関連する損失を生成することと、該損失とセグメンテーションデータに関連する損失とに基づいて第3のモデルをトレーニングすることとを含むことができる。動作特性を予測することは、第1のモデルを使用して動作データに基づいて特徴マップを生成することと、第3のモデルを使用して特徴マップに基づいて動作特性を予測することとを含むことができる。第1のモデルは第1の畳み込みニューラルネットワーク(CNN)とすることができ、第2のモデルは第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNとすることができ、第3のモデルは線形ニューラルネットワークとすることができる。第2のモデルは、動作段階で使用する視線予測モデルから除去できる。視線予測モデルをトレーニングすることは、第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含むことができる。方法は、動作段階の前に、較正段階において、ARユーザデバイスを使用して捕捉されたユーザデータに基づいて、第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つをトレーニングすることをさらに含むことができる。
【0007】
他の一般的な態様において、デバイス、システム、非一時的コンピュータ可読媒体(コンピュータシステム上で実行できるコンピュータ実行可能プログラムコードを記憶している)、および/または方法は、第1のモデルを使用してトレーニングデータに基づき第1の特徴マップを生成することと、第2のモデルを使用して第1の特徴マップに基づき第2の特徴マップを生成することと、第2の特徴マップに基づいてセグメンテーションデータを予測することと、予測されたセグメンテーションデータに関連する第1の損失を生成することと、第3のモデルを使用して第1の特徴マップに基づきトレーニング特性を予測することと、予測されたトレーニング特性に関連する第2の損失を生成することと、第1の損失と第2の損失とに基づいて、第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つをトレーニングすることとを含む方法を伴うプロセスを実行することができる。
【0008】
実施態様は、以下の特徴のうちの1つ以上を含むことができる。例えば、トレーニングデータは眼の画像を含むことができ、予測されたセグメンテーションデータは眼の領域を含むことができ、トレーニング特性は眼の視線であることができる。第1のモデルは第1の畳み込みニューラルネットワーク(CNN)とすることができ、第2のモデルは、第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNとすることができ、第3のモデルは線形ニューラルネットワークとすることができる。請求項11に記載の方法において、第2のモデルは、動作段階で使用するために除去することができる。第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つをトレーニングすることは、第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含むことができる。セグメンテーションデータは、第2の特徴マップに関連するデータを別個のグループに分離することを含むプロセスであり得る。セグメンテーションデータを予測することは、検出プロセスおよび抑制プロセスを含むことができる。
【0009】
さらに他の一般的な態様において、デバイス、システム、非一時的コンピュータ可読媒体(コンピュータシステム上で実行できるコンピュータ実行可能プログラムコードを記憶している)、および/または方法は、トレーニングされた第1のモデルを使用して動作データに基づき特徴マップを生成することと、トレーニングされた第2のモデルを使用して特徴マップに基づき特性を予測することとを含み、第1のモデルおよび第2のモデルのトレーニングは、トレーニング中にセグメンテーションデータを予測するために第3のモデルを使用することを含み、特性を予測するために第3のモデルを除去することをさらに含む方法を伴うプロセスを実行することができる。
【0010】
実施態様は、以下の特徴のうちの1つまたは複数を含むことができる。例えば、動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉された眼の画像を含むことができ、動作特性は眼の視線であることができる。方法は、ARユーザデバイスを使用して捕捉されたユーザデータに基づいて、トレーニングされた第1のモデル、トレーニングされた第2のモデル、および第3のモデルのうちの少なくとも1つをさらにトレーニングすることをさらに含むことができる。
【0011】
例示的な実施形態は、本明細書中で与えられる以下の詳細な説明および添付図面からより完全に理解されるようになり、詳細な説明および添付図面中、同様の要素は同様の参照番号で表され、詳細な説明および添付図面は、例示のみを目的として与えられており、したがって、例示的な実施形態を限定するものではない。
【図面の簡単な説明】
【0012】
【
図1】例示的な実施形態に係る視線追跡システムのブロック図である。
【
図2A】例示的な実施形態に係る視線追跡システムのトレーニングのブロック図である。
【
図2B】例示的な実施形態に係る視線追跡システムの使用のブロック図である。
【
図3】例示的な実施形態に係る視線予測モデルのブロック図である。
【
図4】例示的な実施形態に係る視線予測モデルのブロック図である。
【
図5】例示的な実施形態に係る視線予測モデルをトレーニングする方法である。
【
図6】例示的な実施形態に係るトレーニングされた視線予測モデルを使用する方法である。
【
図7】少なくとも1つの例示的な実施形態に係るコンピュータデバイスおよびモバイルコンピュータデバイスの一例である。
【発明を実施するための形態】
【0013】
これらの図は、特定の例示的な実施形態で利用される方法、構造、および/または材料の一般的な特性を示し、以下に提供される書面による説明を補足することを意図していることに留意すべきである。しかしながら、これらの図面は、縮尺通りではなく、所与の実施形態の正確な構造特性または性能特性を正確に反映していない場合があり、例示的な実施形態に包含される値または特性の範囲を定義または制限するものとして解釈されるべきではない。例えば、領域および/または構造要素の相対的な厚さおよび位置は、明確にするために縮小または誇張されている場合がある。様々な図面における類似または同一の参照番号の使用は、類似または同一の要素または特徴の存在を示すことを意図している。
【0014】
詳細な説明
開示される技術は、従来のシステムよりも高精度かつ容易なカスタマイズで、最近取得された(例えば捕捉された)画像内の物体に対する物体観察(例えば視線)予測および追跡を提供する。畳み込みネットワークを使用する機械学習技術は、拡張現実(AR)アプリケーションおよび他のライブデータ捕捉システムにおいて、データ特性予測、視線(例えば、眼の方向)追跡、および/または同様のものに使用することができる。これらの畳み込みネットワークでは、大量のトレーニングデータが必要になる場合がある。視線追跡アプリケーションなどの一部のシナリオでは、実際のトレーニングデータの供給が限られている可能性がある。したがって、実施態様では、実際のトレーニングデータを合成トレーニングデータ、例えばコンピュータ生成画像で強化する場合がある。しかしながら、視線追跡を含む一部の物体観察タスクには、人間の眼の違い(虹彩の質感、瞳孔の形/サイズなど)、メイクアップ、肌の色/質感の変化などにより、多くのバリエーションや特殊なケースが含まれる可能性がある。これらの変化は、合成(コンピュータ生成など)データで捕捉するのが難しく、実データには限りがある。その結果、ARシステムを含む関連するトレーニングされたモデルのロバスト性は、不適切な(不正確な)予測によって損なわれる可能性がある。眼の視線または眼の視線追跡は、空間内の点を決定または特定することを含むことができる。空間内の点は、システムのユーザが見ている点を表す場合がある。空間内の点は、ユーザが見ている方向(例えば、ユーザの眼の表面に対する方向)を表す場合がある。空間内の点は、座標(例えば、デカルト座標またはx,y座標)および/または深さ(z座標など)を有することができる。空間内の点は、ARシステムの要素(カメラなど)を使用して決定できる測定変数となり得る。
【0015】
実施態様例は、ARシステム上でのリアルタイム動作を可能にし、前述の変化を正確に処理できる、堅牢だが複雑さの低い視線追跡モデルを生成することができる。モデル、アルゴリズム、ネットワーク、ニューラルネットワーク、および/または畳み込みニューラルネットワーク(CNN)を使用した機械学習技術が、視線追跡システムで使用できる。これらのモデルは、第1の構成でトレーニングされ、第2の構成で動作上使用され得る。第1のモデル構成は、限られた実際のトレーニングデータを使用したロバスト性が高いトレーニングに有利となり得るものであり、トレーニングの結果は第2の構成に適用でき、これは、正確な予測を依然として生成しながらリソース(例えばプロセッサ、メモリ、および/または同様のもの)利用を削減することで動作またはユースケースで有利になり得る。
【0016】
図1は、例示的な実施形態に係る視線追跡システムのブロック図を示す。
図1に示されるように、視線追跡システムは、第1のコンピューティングデバイス105および第2のコンピューティングデバイス120を含むことができる。第1のコンピューティングデバイス105は、
図7に示されるコンピューティングデバイス700または750の一例であり得る。第2のコンピューティングデバイスは、
図7に示されるコンピューティングデバイス790の一例であり得る。第1のコンピューティングデバイス105は、モデルトレーナ110ブロックおよびモデル修正器115ブロックを含み、第2のコンピューティングデバイス120は、モデル実装器125ブロックを含むことができる。第1のコンピューティングデバイス105は、製品製造業者に関連付けることができ、例えば、サーバ、ネットワーク接続されたコンピュータ、メインフレームコンピュータ、ローカルコンピュータなどに実装することができる。第2のコンピューティングデバイス120は、ユーザデバイスであってもよく、例えば、ARヘッドセット(例えば、ARデバイス130)、モバイルデバイス、ラップトップデバイス、携帯電話、パーソナルコンピュータなどに実装され得る。第2のコンピューティングデバイス120は、第1のコンピューティングデバイス105と比較して限られたコンピューティングリソースを有することができる。
【0017】
モデルトレーナ110は、モデル(例えば、統計モデル、ニューラルネットワーク(例えば、CNN)、線形ネットワーク、エンコーダ-デコーダネットワークなど)をトレーニングするように構成され得る。トレーニング中に、物体の特性(視線など)とセグメント(またはセグメンテーション)を予測するようにモデルを構成できる。物体特性(視線など)の予測では、物体特性(視線など)の座標を予測できる。例えば、視線予測は、人間のユーザが画像のどの座標を見ているかを予測できる。別の例としては、身体姿勢の推定があり得る。例えば、人体の関節の座標を推定できると同時に、対象の物体(脚など)をセグメント化することができる。実行時には、計算時間を節約するために、セグメンテーションなしで座標を出力できる。モデルトレーナ110は、トレーニングデータを用いてトレーニングされたモデルを生成することができる。
【0018】
図1に示すように、トレーニングデータは複数のトレーニング画像15であり得る。トレーニング画像15は、各トレーニング画像について視線予測およびセグメンテーション予測のためにモデルをトレーニングするために使用され得る。例えば、モデルは、損失が最小化されるまで、および/またはモデルに関連する1つまたは複数の損失の変化が最小化されるまで、各トレーニング反復後に修正される複数の重みを含むことができる。
【0019】
モデル修正器115は、モデルトレーナ110を使用してトレーニングされたモデルを修正するように構成することができる。例えば、トレーニングされたモデルは、2つ以上のモデル(複合モデルと呼ばれる)を含むことができ、モデル修正器115は、2つ以上のモデルのうち少なくとも1つを複合モデルから動作的に切断(または除去)することができる。例示的な実施態様において、トレーニングされたモデルは、第1のモデル(推論またはエンコーダと呼ばれることもある)、第2のモデル(セグメンテーションモデルまたはデコーダと呼ばれることもある)、および物体特性(視線など)を予測するように構成された第3のモデルを含むことができる複合モデル(例えば、一緒にトレーニングされた、連携してトレーニングされた、および/または一緒に最適化された2つ以上のモデル)である。第1のモデルは、特徴マップを生成(または推論)するように構成できる。第2のモデルは、特徴マップからセグメンテーションを予測するように構成できる。第3のモデルは、特徴マップから特性(視線など)を予測するように構成できる。セグメンテーションは、複合モデル(例えば、モデルトレーナ110)をトレーニングする場合にのみ使用することができる。したがって、モデル修正器115は、第2のモデルを複合モデルから動作的に切断(または除去)することによって、トレーニングされた複合モデルを修正するように構成することができる。第2のモデルを動作上切断する(または除去する)ことは、第2のモデルを伴う第1のトレーニングされた複合モデルと、トレーニングされたデータ(例えば、パラメータ、重みなど)を保持する第2のモデルを伴わない第2のトレーニングされた複合モデルとを有することを含むこともできる。
【0020】
モデル修正器115は、トレーニングされたモデル(または複合モデル)に関連するパラメータを修正するように構成することもできる。モデル修正器115は、複数のトレーニング画像15を使用して、トレーニングされたモデルを調整する(例えば、パラメータをさらに修正する)こともできる。トレーニングされたモデルの調整は、トレーニングされたモデルが修正された後に実行することができる。例えば、前述のトレーニングされた複合モデルを調整することは、第1のモデルと第3のモデルとを使用してトレーニング動作を実行することを含むことができる。
【0021】
モデル実装器125(例えば、第2のコンピューティングデバイス120に関連する)は、トレーニングされた(および場合によっては調整された)モデル(例えば、複合モデルまたは第1のモデルおよび第3のモデル)を含むことができる。したがって、モデル実装器125は、動作または視線予測段階またはモードでモデルを使用すると言うことができる。モデル実装器125は、画像5と関連付けられた視線10を決定する(例えば、予測する)ように構成され得る。画像5は、ARデバイス130などのコンピューティングデバイスによって捕捉され得る。したがって、視線10は、ARデバイス130のユーザと関連付けられ得る。例示的な実施態様では、第1のネットワークの出力が第3のネットワークに入力され、第3のネットワークは視線10を予測することができる。モデル実装部125は、ARデバイス130のユーザに関連付けられた画像をもとにモデルを較正する(例えば、重みをさらに修正する)ように構成することができる。この実施態様において、モデル実装器125は、トレーニングされたモデルと修正されたトレーニングされたモデルとの両方を含むことができる。この実施態様において、トレーニングされたモデルは、ユーザ(またはユーザと協力する技術者)によってさらにトレーニングすることができ、さらにトレーニングされたモデルと関連付けられたパラメータおよび/または重みは、修正されたトレーニングされたモデルによって使用され得る。幾つかの実施態様において、モデル実装器125は、較正のために、例えば第1のコンピューティングデバイス105においてトレーニングされたモデルにアクセスすることができる。
【0022】
トレーニング画像は、実データ(例えば、眼の画像)および/または合成データ(例えば、コンピュータで生成された眼の画像)であり得る。実データおよび/または合成データは、(画像[i],視線_方向[i],i=1,...K)の形式となることができ、ここで、方向はx,y座標で表される。実データおよび/または合成データは、(画像[i],視線_方向[i],セグメンテーション[i]、i=1,...K)という形式とすることもでき、ここで、i番目のセグメンテーションデータ(i番目の画像と関連付けられる)は、それぞれが眼の領域(例えば、瞳孔、虹彩、強膜など)を特定する複数のデータ点を含む。セグメンテーションラベルは、クラウドソーシングすることも、計算が複雑で場合によっては人間支援によるML技術を通じて生成することもできる。実データの取得には時間がかかるため、視線追跡システムに関連するモデルを堅牢にトレーニングするために十分な実データを取得することは非現実的な場合がある。この問題に対処するために、実施態様例は、限られた実データと合成データとを使用して堅牢にトレーニングできる第1のモデル(または第1の複合モデル)をトレーニングできる。この第1のモデルは、その後、動作上の視線追跡システムを含むユーザデバイスで使用するために、第2のモデル(または第2の複合モデル)に修正することができる。第2のモデルは、第1のモデルよりも少ない処理リソースを使用することができ、それにより、第2のモデルは、通常、ユーザデバイスと関連付けられるリソースに適している。
【0023】
正確な視線予測(例えば、画像内のx,y座標)は、瞳孔、瞳孔中心、および/または他の眼の領域に関連する正確な情報を取得することに依存することができる。セグメンテーションデータは、正確な視線予測を取得する際のファクタとなり得る。したがって、実施態様例において、視線予測モデルは、複合モデル(例えば、視線およびセグメンテーション予測モデル)としてセグメンテーションモデルと組み合わせることができる。複合モデルのセグメント化部分は、トレーニング中に(例えば、モデルトレーナ110によって)使用されて、複合モデルの視線予測部分の精度を正規化し改善することができる。実施態様例は、多重解像度エンコーダネットワーク(例えば、モデル実装器125を使用した視線追跡用)に(例えば、モデル修飾器115によって)分割または分解できる多重解像度エンコーダ-デコーダネットワーク(例えば、トレーニングおよび/または較正用)と呼ばれることもある推論セグメンテーションモデルとして複合モデルを含めることができる。換言すれば、推論セグメンテーションモデルは、推論モデル(例えば、モデル実装器125を使用する視線追跡用)に(例えば、モデル修正器115によって)分割または分解することができる。
【0024】
動作段階または視線追跡モードにおいて、推論モデル(例えば、デコーダネットワークが除去された多重解像度エンコーダ-デコーダネットワーク)は、視線予測または視線出力(例えば、視線方向、視線点など)を生成するために使用される特徴マップに対して動作することができる。このモードにおいて、推論モデルは、推論セグメンテーションモデルのセグメンテーションモデル出力を実現するために必要なスキップ接続およびその他の計算を含まない場合がある。推論モデルの複雑さは推論セグメンテーションモデルよりも大幅に低いが、推論モデルは同じトレーニングパラメータおよび/または重みを含む。したがって、推論セグメンテーションモデルのトレーニング段階で特定されたパラメータおよび/または重みを推論モデルで使用して、視線予測または視線出力を取得できる。言い換えれば、推論セグメンテーションモデルを使用した視線予測(例えば、トレーニング段階中)は、推論モデルを使用した視線予測(例えば、実装または動作段階中)と同じである必要がある。
【0025】
幾つかの実施態様では、推論セグメンテーションモデルは、較正段階または較正モードで使用することができる。例えば、推論セグメンテーションモデルは、特定のユーザに合わせて微調整できる。較正モードは、モデル修正器115および/またはモデル実装器125によって実装され得る。第1のコンピューティングデバイス105の動作は、トレーニング段階またはトレーニングモードと呼ぶことができ、第2のコンピューティングデバイス120の動作は、動作段階または動作モードと呼ぶことができる。
【0026】
図2Aを使用して、例えば
図1のモデルトレーナ110によって実行されるトレーニング段階をさらに説明することができ、
図2Bを使用して、例えば
図1のモデル実装器125によって実行される動作段階をさらに説明することができる。
図2Aは、例示的な実施形態に係る視線追跡システムのトレーニングのブロック図を示す。
図2Aに示されるように、視線追跡システムは、トレーニング段階205において、推論およびセグメンテーションモデル210ブロック、視線モデル215ブロック、損失220ブロック、およびトレーナ225ブロックを含むことができる。
【0027】
推論およびセグメンテーションモデル210(
図3においてより詳細に示す)は、画像のセグメンテーションを予測するように構成することができる。セグメンテーションまたはセグメンテーションデータは、眼の領域(例えば、瞳孔、虹彩、強膜など)などの物体または領域を特定する(または特定を助ける)ために使用することができる。セグメンテーション(眼の領域など)を使用して、視線を予測する(または予測を助ける)ことができる。予測されたセグメンテーションは、推論およびセグメンテーションモデル210ならびに/または視線モデル215をトレーニングするために使用することができる。推論およびセグメンテーションモデル210は、推論部分とセグメンテーション部分の2つの部分を含むことができる。推論およびセグメンテーションモデル210の推論部分は、ニューラルネットワーク(例えば、視線追跡システムにおける第1のニューラルネットワーク)とすることができる。推論およびセグメンテーションモデル210の推論部分は、エンコーダと呼ぶことができる。推論部分は画像を取得し、その画像に対応する特徴マップを出力する。ネットワークの各層は、入力画像と関連付けられた特徴を抽出する。各層は、1つまたは複数の畳み込み関数、ReLu関数、およびプーリング関数を使用して高次の特徴を構築する。特徴マップ(アクティベーションマップとも呼ばれる)は、最終出力またはネットワークの最後の層の出力となり得る。推論およびセグメンテーションモデル210のセグメンテーション部分は、ニューラルネットワーク(例えば、視線追跡システムにおける第2のニューラルネットワーク)とすることができる。推論およびセグメンテーションモデル210のセグメンテーション部分は、デコーダと呼ぶことができる。
【0028】
視線モデル215(さらなる詳細については
図3および
図4を参照)は、例えば、スパース制約のない層状畳み込みニューラルネットワークを使用して視線を予測するように構成することができる。前述のように、推論およびセグメンテーションモデル210は、第1のモデル(例えば、推論部分またはエンコーダ)および第2のモデル(例えば、セグメンテーション部分またはデコーダ)を含むことができる。視線モデル215は、第1のモデルの出力(例えば、特徴マップ)が第3のモデルへの入力となり得る第3のモデルであってもよい。言い換えれば、エンコーダ-デコーダCNNの推論部分またはエンコーダ部分によって生成されたデータは、視線モデルまたはスパース制約のない層状畳み込みニューラルネットワークによって視線を予測するために使用できる。本明細書で言及されるように、視線追跡システムは、推論セグメンテーションモデル(例えば、エンコーダ-デコーダCNN)内の推論モデル(例えば、エンコーダ)の特徴マップに基づくセグメンテーションモデル(例えば、デコーダ)と推論モデルの特徴マップに基づく視線予測とを使用するセグメンテーション予測を用いてトレーニングすることができる。トレーニング中にセグメンテーション予測を含めることで視線モデルのトレーニングが改善され、使用中の視線予測がより正確になる。
【0029】
損失220およびトレーナ225を使用して、トレーニングおよび最適化プロセスを実装することができる。トレーニングおよび最適化プロセスは、(損失220の)損失関数と、予測セグメンテーションおよび予測視線とグラウンドトゥルースデータとの比較(トレーナ225による)とに基づいて損失を生成するように構成することができる。例えば、損失220は、損失アルゴリズムによって(Lossg+λLosss)として計算することができ、ここで、Lossgは視線損失であり、Losssはセグメンテーション損失であり、λはラグランジュ乗数であり得る。次いで、トレーナ225は、結果として生じる損失(例えば、(Lossg+λLosss))を最小化するように構成され得る。一般に、グラウンドトゥルースは、トレーニングデータ(例えば、トレーニング画像15)と関連付けられたデータである。換言すれば、各トレーニング画像15は、関連するセグメンテーション予測データおよび視線方向データ(例えば、ユーザによって開発されたもの、実証済みの視線アルゴリズムによって開発されたものなど)を有することができる。一実施態様において、視線損失は、トレーニング画像における視線モデル215の予測とトレーニング画像における視線方向データとの間の差であり、セグメンテーション損失は、推論およびセグメンテーションモデル210のセグメンテーション予測とトレーニング画像におけるセグメンテーション予測データとの間の差である。別の実施態様例において、推論およびセグメンテーションモデル210は、セグメンテーション予測に基づいて視線を予測するように構成され得る。そのような実施態様において、損失220を計算することは、セグメンテーションに基づいて第2のニューラルネットワーク(またはデコーダ)によって予測された視線を、第3のニューラルネットワーク(またはスパース制約のない層状畳み込みニューラルネットワーク)によって予測された視線と比較することを含むことができる。
【0030】
損失220は、単一の例(例えば、トレーニング画像15)に関してモデルの予測がどの程度悪かったかを示す数値であり得る。モデルの予測(セグメンテーション予測および/または視線予測など)が完璧であれば損失はゼロであり、そうでなければ損失は大きくなる。トレーニング(例えば、トレーナ225)の目標は、全てのトレーニング例にわたって、平均して低損失となるパラメータ(例えば、重みおよびバイアス)を見つける(例えば、変更調整または修正する)ことである。損失アルゴリズムは、二乗損失、平均二乗誤差損失などであり得る。トレーニングは、推論およびセグメンテーションモデル210(例えば、第1のモデルおよび第2のモデル)、または損失220の結果に基づいて視線を予測するために使用される視線モデル215(例えば、第3のモデル)のうちの少なくとも1つと関連付けられたパラメータを修正することを含むことができる。
【0031】
第1のモデル、第2のモデル、および/または第3のモデルを修正することは、特徴、特徴の特性(例えば、重要な特徴または特徴の重要性)、および/またはパラメータを変更することを含むことができる。特徴、特徴の特性、およびパラメータの非限定的な例としては、バウンディングボックスの提案、アスペクト比、データ拡張オプション、損失関数、深度乗数、層数、画像入力サイズ(例えば、正規化)、アンカーボックス、アンカーボックスの位置、セル当たりのボックスの数、特徴マップサイズ、畳み込みパラメータ(例えば、重み)などが挙げられる。パラメータはモデルの係数にすることができ、それらはモデル自体によって選択される。言い換えれば、アルゴリズムは学習中に(所与の最適化戦略に従って)これらの係数を最適化し、誤差を最小限に抑えるパラメータの配列を返す。一部のパラメータ(ハイパーパラメータと呼ばれることもある)は、手動で設定される要素となり得る。例えば、モデルは、最適化戦略に従って一部のパラメータを更新しない場合がある(トレーニング中など)。
【0032】
トレーナ225によって実行されるトレーニングおよび最適化プロセスは、費やされる計算時間と所望する結果の品質との間の所望のトレードオフに基づいて構成することができる。一般に、トレーニングプロセス中に使用される反復回数によって精度がほぼ対数的に向上するため、さらなる最適化を停止するには自動閾値を使用することが好ましい可能性がある。結果の品質を優先する場合、例えば平均二乗誤差を計算することによって、自動閾値を再構成誤差の所定の値に設定できるが、他の方法を使用することもできる。自動閾値を設定して、トレーニングおよび最適化プロセスを所定の反復回数に制限することができる。一部の実施態様では、これら2つのファクタを組み合わせて使用できる。
【0033】
図2Bは、例示的な実施形態に係る視線追跡システムを使用するブロック図を示す。
図2Bに示されるように、視線追跡システムは、推論モデル235ブロック、視線モデル215、および視線240ブロックを含むことができる。本明細書全体で説明するように、トレーニングされたモデル(エンコーダ-デコーダCNNなど)を修正して、セグメンテーションに使用されるモデルの部分、例えばデコーダ部分を動作的に切断(または除去)することができる。この修正されたモデルは、動作段階230で使用され、複雑さと処理リソースの使用を大幅に軽減することができる。推論モデル235は、トレーニングされた推論およびセグメンテーションモデル210の推論モデルと一致することができる。
【0034】
したがって、推論モデル235(さらなる詳細については
図4を参照)は、画像(例えば、画像5)と関連付けられた特徴マップを生成するように構成することができる。視線モデル215(さらなる詳細については
図4を参照)は、特徴マップに基づいて視線240を予測するように構成することができる。視線240は、ARデバイス(例えば、ARデバイス130)のユーザの視線を決定するために使用することができる。
【0035】
前述のように、正確な視線予測を生成することは、瞳孔、瞳孔中心、および/または他の眼の領域に関連する正確な情報を取得することを含むことができる。セグメンテーションデータは、正確な視線を取得する際のファクタとなり得る。視線予測モデルを複合モデルとしてセグメンテーションモデルと組み合わせることができる場合(視線およびセグメンテーション予測モデルなど)、複合モデルのセグメント化部分をトレーニング中に(例えば、モデルトレーナ110によって)使用して、複合モデルの視線予測部分の精度を正規化し改善することができる。実施態様例は、多重解像度エンコーダネットワーク(例えば、モデル実装器125を使用した視線追跡用)に(例えば、モデル修正器115によって)分割または分解できる(例えば、トレーニングおよび/または較正用の)多重解像度エンコーダ-デコーダネットワークと呼ばれることもある推論セグメンテーションモデルとして複合モデルを含むことができる。換言すれば、推論セグメンテーションモデルは、(例えば、モデル修正器115によって)推論モデル(例えば、モデル実装器125を使用する視線追跡用)に分割または分解することができる。
【0036】
例えば、推論セグメンテーションモデルの推論部分の最も粗い解像度では、視線モデルを追加して視線出力を生成または予測することができる。トレーニング段階では、推論セグメンテーションモデルを利用して視線モデルへの入力とセグメンテーション予測とを生成できる。視線モデルを使用して視線予測を生成できる。視線予測およびセグメンテーション予測を損失関数に入力して、セグメンテーション正則化の利点を活用して推論セグメンテーションモデルおよび/または視線モデルをトレーニングすることができる。正則化は回帰の一種であり、係数(重みやバイアスなど)の推定値をゼロと上限、例えば1との間で制限/正則化する。言い換えれば、この技術は、過剰適合のリスクを回避するために、より複雑または柔軟なモデルの学習を妨げる。
【0037】
図3は、例示的な実施形態に係る推論セグメンテーションモデル(例えば、多重解像度エンコーダ-デコーダネットワーク)のブロック図を示す。
図3は、
図2Aの推論およびセグメンテーションモデル210ならびに視線モデル215の一例である。推論モデルおよびセグメンテーションモデルは各々、少なくとも1つの畳み込み層または畳み込みを含むことができる。例えば、
図3に示されるように、推論モデル365は、各々が3つの畳み込みを含む4つの畳み込み層を含むことができ、第1の畳み込み層370-1は畳み込み305-1、305-2、305-3を含み、第2の畳み込み層370-2は畳み込み310-1、310-2、310-3を含み、第3の畳み込み層370-3は畳み込み315-1、315-2、315-3を含み、第4の畳み込み層370-4は畳み込み320-1、320-2、320-3を含む。さらに、
図3に示されるように、セグメンテーションモデル375は、各々が3つの畳み込みを含む4つの畳み込み層を含むことができ、第1の畳み込み層380-1は畳み込み325-1、325-2、325-3を含み、第2の畳み込み層380-1は畳み込み330-1、330-2、330-3を含み、第3の畳み込み層380-3は畳み込み335-1、335-2、335-3を含み、第4の畳み込み層380-4は畳み込み340-1、340-2、340-3を含む。推論セグメンテーションモデルは、セグメンテーションモデル出力を実現するために必要なスキップ接続(例えば、畳み込み305-3の出力を畳み込み340-1への入力として通信することができる)および他の計算を含むことができる。スキップ接続は、ニューラルネットワーク内の1つまたは複数の層をスキップするように構成できる。したがって、スキップ接続は、1つの層の出力を、スキップされた層の後にある次の層への入力として供給する。
【0038】
畳み込み層(例えば、畳み込み層370-1、370-2、370-3、370-4、380-1、380-2、380-3、および/または380-4)または畳み込みは、画像5から特徴を抽出するように構成できる。特徴は、色、周波数領域、エッジ検出器などに基づくことができる。畳み込みはフィルタ(カーネルと呼ばれることもある)とストライドを有することができる。例えば、フィルタは、M×Mグリッドの位置における各チャネルのセルの特徴の組み合わせ(例えば、加算、減算、乗算など)に基づいて生成されるセルの出力をもたらす1のストライドを伴う1×1フィルタ(またはn個の出力チャネルへの変換の場合は1×1×n、1×1フィルタは点単位畳み込みと呼ばれることもある)にすることができる。換言すれば、1超の深さまたはチャネルを有する特徴マップが、単一の深さまたはチャネルを有する特徴マップに結合される。フィルタは、M×Mグリッドまたは特徴マップの各チャネル内に/各チャネルに対して、よりセルが少ない出力をもたらす1のストライドを伴う3×3フィルタにすることができる。出力は、同じ深さもしくはチャネル数(例えば、3×3×nフィルタ、ここでn=深さまたは深さ単位フィルタと呼ばれることもあるチャネルの数)を有することができ、または、減少した深さもしくはチャネル数(例えば、3×3×kフィルタ、ここで、k<深さまたはチャネルの数)を有することができる。各チャネル、深さ、または特徴マップは、関連付けられたフィルタを有することができる。関連する各フィルタは、チャネルの様々な態様を強調するように構成できる。言い換えれば、フィルタに基づいて各チャネルから異なる特徴を抽出することができる(これは深さ単位分離可能フィルタと呼ばれることもある)。他のフィルタもこの開示の範囲内にある。
【0039】
別のタイプの畳み込みは、2つ以上の畳み込みの組み合わせであり得る。例えば、畳み込みは、深さ単位および点単位の分離可能な畳み込みにすることができる。これは、例えば2ステップの畳み込みを含むことができる。第1のステップは、深さ単位の畳み込み(例えば、3×3畳み込み)にすることができる。第2のステップは、点単位の畳み込み(例えば、1×1畳み込み)にすることができる。深さ単位および点単位の畳み込みは、異なるフィルタ(例えば、異なる特徴を抽出するためのフィルタ)を特徴マップの各チャネルまたは各深さに対して使用できるという点で、分離可能な畳み込みとなり得る。実施態様例において、点単位畳み込みは、フィルタに基づいてc個のチャネルを含むように特徴マップを変換できる。例えば、8×8×3の特徴マップ(または画像)は、フィルタに基づいて8×8×256の特徴マップ(または画像)に変換できる。一部の実施態様では、2つ以上のフィルタを使用して、特徴マップ(または画像)をM×M×c特徴マップ(または画像)に変換できる。
【0040】
畳み込みは線形であり得る。線形畳み込みは、入力に関して出力を線形時不変(LTI)であると説明する。畳み込みは、正規化線形ユニット(ReLU)を含むこともできる。ReLUは、畳み込みのLTI出力を正規化し、正規化された出力を最大へと制限する活性化関数である。ReLUは、収束を加速するために使用できる(例えば、より効率的な計算)。
【0041】
実施態様例では、深さ単位の畳み込みと、深さ単位および点単位の分離可能な畳み込みとの組み合わせを使用することができる。各畳み込みは構成可能にすることができる(例えば、構成可能な特徴、ストライド、および/または深さ)。例えば、推論モデル365は、画像5を第1の特徴マップに変換することができる畳み込み305-1、305-2、305-3、310-1、310-2、310-3、315-1、315-2、315-3、320-1、320-2、および320-3を含むことができる。セグメンテーションモデル375は、第1の特徴マップを第2の特徴マップに増分的に変換できる畳み込み325-1、325-2、325-3、330-1、310-2、330-3、335-1、335-2、335-3、340-1、340-2、および340-3を含むことができる。この増分変換により、様々なサイズのバウンディングボックス(特徴マップまたはグリッドの領域)を生成でき、多くのサイズの物体の検出が可能になり得る。各セルは、少なくとも1つの関連付けられたバウンディングボックスを有することができる。実施態様例では、グリッド(例えば、セルの数)が大きくなるほど、セル当たりのバウンディングボックスの数は少なくなる。例えば、最大のグリッドはセルごとに3つのバウンディングボックスを使用でき、小さなグリッドはセルごとに6つのバウンディングボックスを使用できる。
【0042】
第2の特徴マップは、セグメンテーション20を予測するために使用することができる。セグメンテーションの予測は、検出(例えば、図示しない検出層を使用する)および抑制(例えば、図示しない抑制層)を含むことができる。検出は、第2の特徴マップと関連付けられた各バウンディングボックスに関連するデータ(例えば、少なくとも畳み込み340-3の出力)を使用することを含むことができる。データはバウンディングボックス内の特徴に関連付けることができる。データはバウンディングボックス内の物体を示すことができる(物体は、物体なしとすること、または物体の一部とすることができる)。物体はその特徴によって特定できる。データは、累積的に、クラスまたは分類子と呼ばれることがある。クラスまたは分類子は物体に関連付けることができる。データ(バウンディングボックスなど)は、信頼スコア(0から1までの数値など)を含むこともできる。
【0043】
検出後、結果は、同じ物体を示す複数の分類子を含むことができる。換言すれば、物体(または物体の一部)は、複数の重なり合うバウンディングボックス内に存在することができる。しかしながら、各分類子における信頼スコアは異なり得る。例えば、物体の一部を特定する分類子は、完全な(または実質的に完全な)物体を特定する分類子よりも低い信頼スコアを有する可能性がある。検出は、関連する分類子を伴わないバウンディングボックスを破棄することをさらに含むことができる。言い換えれば、検出では、物体が含まれていないバウンディングボックスを破棄することができる。
【0044】
抑制は、信頼スコアに基づいてバウンディングボックスをソートすること、および物体を特定する分類子として最高スコアを伴うバウンディングボックスを選択することを含むことができる。抑制層は、同じまたは実質的に同様の分類子を有する各バウンディングボックスに対してソートおよび選択のプロセスを繰り返すことができる。その結果、抑制層は、入力画像内の各物体を特定するデータ(例えば、分類子)を含むことができる。
【0045】
拡張現実(AR)視線追跡アプリケーションでは、特定されるべき眼の領域を、ARアプリケーションによって(例えば画像内で)捕捉された眼の領域に限定することができる。例えば、実施態様例では、トレーニングされたMLモデルを使用して、任意の想定し得る眼の領域(虹彩のテクスチャ、瞳孔の形状/サイズなど)を特定し、ユーザの視線の決定または確認を助ける。
【0046】
実施態様例は第3のモデル385を含むことができる。第3のモデル385は、第1の特徴マップ(例えば、畳み込み320-3の出力)を使用して視線10を予測することができる。
図3に示されるように、第3のモデル385は、スパース制約のない畳み込みニューラルネットワーク内に複数の層を含むことができる。層状ニューラルネットワークは、3つの層350、355、360を含むことができる。各層350、355、360は、複数のニューロン345から形成することができる。この実施態様では、スパース制約は適用されていない。したがって、各層350、355、360における全てのニューロン345は、任意の隣り合う層350、355、360の全てのニューロン345にネットワーク接続される。
【0047】
図3に示す第3のモデル385は、ニューロン345および層の数が少ないため、計算的に複雑でなくし得る。換言すれば、計算の複雑さは、ニューロン345の数に関連付けることができる。初期のスパース条件を使用して、ニューラルネットワークの計算の複雑さを下げることができる。例えば、ニューラルネットワークが最適化プロセスとして機能している場合、ニューラルネットワークのアプローチは、ニューロン間および/または層間の接続の数を制限することで高次元データを処理できる。さらに、畳み込みニューラルネットワークは、プーリングまたはマックスプーリングを利用して、ニューラルネットワークを流れるデータの次元(したがって複雑さ)を削減することもできる。畳み込みニューラルネットワークの計算の複雑さを軽減する他のアプローチを使用することもできる。
【0048】
図4は、例示的な実施形態に係る推論モデル(例えば、多重解像度エンコーダネットワーク)のブロック図を示す。この推論モデルは、
図2Bの推論モデル235の一例である。この実施態様では、セグメンテーションモデル(デコーダなど)が含まれない。したがって、この実施態様は、セグメンテーションを予測せずに視線を予測するために使用される。セグメンテーションを予測しないことにより、視線を予測するための画像の処理が簡素化され、大幅に高速になる(例えば、使用するプロセッササイクルが少なくなる)。
【0049】
推論モデル(例えば、エンコーダ)は、少なくとも1つの畳み込み層または畳み込みを含むことができる。例えば、
図4に示されるように、推論モデル365は、各々が3つの畳み込みを含む4つの畳み込み層を含むことができ、第1の畳み込み層370-1は畳み込み305-1、305-2、305-3を含み、第2の畳み込み層370-2は畳み込み310-1、310-2、310-3を含み、第3の畳み込み層370-3は畳み込み315-1、315-2、315-3を含み、第4の畳み込み層370-4は畳み込み320-1、320-2、320-3を含む。
図4の推論モデル365は
図3で説明した推論モデル365と同様である。幾つかの実施態様では、
図4の推論モデル365は、
図4の推論モデル365がスキップ接続を含まないという点で、
図3で説明した推論モデル365とは異なる。
【0050】
第2のモデル385(
図3の第3のモデル385)は、第1の特徴マップ(例えば、畳み込み320-3の出力)を使用して視線10を予測することができる。
図4に示すように、第2のモデル385は、スパース制約のない畳み込みニューラルネットワーク内に複数の層を含むことができる。層状ニューラルネットワークは3つの層350、355、360を含むことができる。各層350、355、360を複数のニューロン345から形成することができる。この実施態様では、スパース制約が適用されていない。したがって、各層350、355、360の全てのニューロン345は、任意の隣り合う層350、355、360の全てのニューロン345にネットワーク接続される。
図4に示されるニューロンネットワークの例は、ニューロン345および層の数が少ないため、計算的に複雑ではない。言い換えれば、計算の複雑さはニューロン345の数に関連付けることができる。さらに、畳み込みニューラルネットワークは、プーリングまたは最大プーリングを利用して、ニューラルネットワークを流れるデータの次元数(したがって複雑さ)を削減することもできる。畳み込みニューラルネットワークの計算の複雑さを軽減する他のアプローチを使用することもできる。
【0051】
図3および
図4に示すニューラルネットワークのパラメータを選択して、全体的な精度を維持しながら、モデル(例えばエンコーダおよびデコーダ)の複雑さを最小限に抑えることができる。例えば、典型的な多重解像度エンコーダ-デコーダネットワークモデルとは異なり、エンコーダの例は、デコーダと比較した場合、異なる非対称パラメータを有することができる。例えば、デコーダの各レベルが2つの畳み込み層を使用できる場合、エンコーダの対応する層は、単一の畳み込み層、より小さい畳み込みサイズなどを使用できる。
【0052】
上記の実施態様は、ARユーザデバイスの視線追跡システムを使用して説明されている。しかしながら、物体の特定に使用される他の実施態様では、上記のニューラルネットワークのトレーニングと使用とから恩恵を受けることができる。これらの実施態様は、物体(例えば、視線追跡システムにおける眼の特徴)および物体と関連付けられた属性(例えば、視線追跡システムにおける瞳孔の位置/方向)を特定するシステムを含むことができる。例えば、動きの方向(例えば、車両、人間(または人間の一部)の動きの方向)、天候(例えば、風、雪、雨、雲など)、製造における製品の特徴(例えば、色、サイズなど)のばらつきなどを特定するためのシステムは、本明細書で説明される技術を利用することができる。
【0053】
トレーニング段階またはトレーニングモードでは、実施態様例は、第1のニューラルネットワークおよび第2のニューラルネットワークを含む多重解像度エンコーダ-デコーダネットワークをトレーニングすることを含むことができ、第1のニューラルネットワークおよび第2のニューラルネットワークは、トレーニングデータに基づいてセグメンテーションデータを予測するように構成され、また、実施態様例は、第1のニューラルネットワークおよび第2のニューラルネットワークとともに第3のニューラルネットワーク(例えば、層状ニューラルネットワーク)をトレーニングすることを含むことができ、第3のニューラルネットワークは、トレーニングデータに基づいてトレーニング特性(例えば、視線)を予測するように構成される。
【0054】
図5は、例示的な実施形態に係る視線予測モデルをトレーニングする方法を示す。
図5に示すように、ステップS505では、第1のモデル(例えば、第1のニューラルネットワーク)および第2のモデル(例えば、第2のニューラルネットワーク)を含む推論セグメンテーションモデル(例えば、多重解像度エンコーダ-デコーダネットワーク)が構成される。例えば、多重解像度エンコーダ-デコーダネットワークは、エンコーダとしてCNNを使用し、デコーダとしてCNNを使用して構成され得る。あるいは、多重解像度エンコーダ-デコーダネットワークは、エンコーダ-デコーダネットワークのデータストアから選択され得る。
【0055】
ステップS510では、第3のモデル(例えば、第3のニューラルネットワーク)が構成される。例えば、第3のモデルは、層状ニューラルネットワーク、ディープニューラルネットワーク、稠密ネットワーク、スパース制約のない畳み込みニューラルネットワークの複数の層を含むネットワークなどであり得る。第3のモデルは、ニューラルネットワークのデータストアから選択することもできる。ステップS515では、第1のモデルの出力が第3のモデルへの入力として使用される。例えば、第1のモデルの出力は、第3のモデルへの入力に直接的または間接的に通信可能に結合され得る。ステップS520では、トレーニングデータが受信される。例えば、複数の実際の(捕捉された)画像または合成(例えば、コンピュータ生成された)画像を受信することができる。複数の実画像および合成画像は、トレーニングプロセス中にグラウンドトゥルースとして使用するためのラベルを含む。
【0056】
ステップS525では、第1のモデルを使用してトレーニングデータに基づいて第1の特徴マップが生成される。ステップS530では、第2のモデルを使用してトレーニングデータに基づいて第2の特徴マップが生成される。例えば、特徴マップは、入力画像またはニューラルネットワークの前の層の特徴マップ出力にフィルタまたは特徴検出器を適用することによって生成され得る。
【0057】
ステップS535では、第2の特徴マップに基づいてセグメンテーションデータが予測される。例えば、セグメンテーションは、データを個別のグループに分割することを含むことができる。セグメンテーションは、粗い推論から細かい推論への進行となり得る。セグメンテーションは、入力画像または入力画像の一部の予測を行うことを含む分類に基づくことができる。セグメンテーションは、クラス(眼の特徴など)とそれらのクラスの空間的位置に関する情報とを特定できる位置特定/検出を含むことができる。さらに、きめの細かい推論は、各ピクセルがその周囲の物体または領域のクラスでラベル付けされるように、全てのピクセルのラベルを推測する密な予測を行うことを含むことができる。
【0058】
ステップS540では、第1の特徴マップに基づいて特性が予測される。例えば、第3のモデルは、第1の特徴マップを処理して、予測された出力(例えば、特性)を生成できる。特性は視線予測であり得る。視線予測は、デバイス(ARユーザデバイスの表示画面など)上のx,y位置、または現実世界の環境での方向となり得る。第1の特徴マップは、視線を表すトークンおよび視線を特徴付ける他の特徴を含むことができる。この例では、予測された出力は、眼が特定の視線(例えば、特定のx,y位置)を有する尤度であり得る。
【0059】
ステップS545において、予測された特性に関連する損失と予測されたセグメンテーションに関連する損失とに基づいて、トレーニング損失が生成される。例えば、トレーニング損失を(Lossg+λLosss)として計算でき、ここで、Lossgは視線損失であり、Losssはセグメンテーション損失であり、λはラグランジュ乗数であり得る。一般に、グラウンドトゥルースはトレーニングデータと関連付けられたデータである。換言すれば、各トレーニング画像は、関連付けられたセグメンテーション予測データおよび視線予測データ(例えば、ユーザによって開発されたラベル、実証済みの視線アルゴリズムによって開発されたラベルなど)を有することができる。損失は、二乗損失、平均二乗誤差損失などとして計算することができる。別の実施態様例では、セグメンテーションに基づいて第2のニューラルネットワーク(またはデコーダ)によって予測された視線は、第3のニューラルネットワーク(またはスパース制約のない層状畳み込みニューラルネットワーク)によって予測された視線と比較することができる。
【0060】
ステップS550では、第1のモデル、第2のモデル、および/または第3のモデルが、トレーニング損失に基づいて修正される(例えば、(Lossg+λLosss)を最小化するために)。例えば、トレーニングの目標は、全てのトレーニング例にわたって平均して損失が少なくなるパラメータセット(例えばパラメータ、重み、および/またはバイアス)を見つけることである。トレーニングは、計算されたトレーニング損失に基づいて視線予測を生成するために使用される第1のモデル、第2のモデル、および第3のモデルのうちの少なくとも1つと関連付けられたパラメータを修正することを含むことができる。パラメータセットを見つけることは、特徴および/または特徴の特性(重要な特徴または特徴の重要性など)、パラメータを変更することを含むことができ、パラメータとしては、ボックス提案、アスペクト比、データ拡張オプション、損失関数、深度乗数、層数、画像入力サイズ(例えば、正規化)、アンカーボックス、アンカーボックスの位置、セル当たりのボックスの数、特徴マップサイズ、畳み込みパラメータ(例えば、重み)などが挙げられる。
【0061】
動作段階または動作モードにおいて、実施態様例は、動作データを受信することと、トレーニングされた第1のモデル(例えば、推論モデル、エンコーダなど)とトレーニングされた第2のモデル(例えば、視線予測モデル、層状ニューラルネットワークなど)とを使用して動作特性(例えば、視線)を予測することとを含むことができる。実施態様例では、ARユーザデバイスを使用して捕捉されたユーザデータは、動作前のトレーニング動作で使用することができる。ユーザデータは、ARユーザデバイスを使用するユーザと関連付けられたデータであり得る。このユーザデータを使用して、特定のユーザ向けにトレーニングされたモデルを微調整できる。この動作前のトレーニング動作により、特定のユーザ向けにトレーニングされたモデルを改善できる。
【0062】
図6は、例示的な実施形態に係るトレーニングされた視線予測モデルを使用する方法を示す。
図6に示すように、ステップS605(破線はステップS605が任意選択であることを示す)において、トレーニングされた視線予測モードがARデバイスのユーザに合わせて較正される。例えば、ユーザがARデバイスを使用している間に、トレーニングプロセス(例えば、
図5に関して説明した方法と同様)を実行することができる。この実施態様において、トレーニングデータは、ユーザがARデバイスを使用する間にARデバイスによって生成される画像であり得る。ステップS610では、動作データが受信される。例えば、ARデバイスは、カメラを使用してユーザの眼の画像を捕捉できる。捕捉された画像が動作データである。
【0063】
ステップS615では、第1のニューラルネットワークと、第1のニューラルネットワークの出力が第3のニューラルネットワークへの入力として使用される第2のニューラルネットワークとを使用してトレーニングされた、トレーニングされた多重解像度エンコーダ-デコーダネットワークを使用して、動作データに関連する特性が予測される。予測は、第2のニューラルネットワークを除去して行われる。例えば、
図3のニューラルネットワークは、視線追跡システムのエンコーダ-デコーダネットワークをトレーニングする際に使用することができ、
図4のニューラルネットワークは、視線追跡システムを動作する際に使用することができる。
【0064】
図7は、コンピュータデバイス700およびモバイルコンピュータデバイス750の例を示し、これらのデバイスは、本明細書中で説明される技術とともに使用され得る(例えば、本明細書で説明される技術を実装するために使用される第1のコンピューティングデバイス105、第2のコンピューティングデバイス120、および他のリソースを実装するために)。コンピューティングデバイス700は、プロセッサ702、メモリ704、記憶デバイス706、メモリ704および高速拡張ポート710に接続する高速インタフェース708、ならびに低速バス714および記憶デバイス706に接続する低速インタフェース712を含む。各構成要素702、704、706、708、710、および712は、様々なバスを使用して相互接続され、共通のマザーボード上に、または必要に応じて他の方式で装着され得る。プロセッサ702は、コンピュータデバイス700内で実行するための命令を処理することができ、命令としては、高速インタフェース708に結合されたディスプレイ716などの外部入力/出力デバイス上にGUI用のグラフィック情報を表示するためにメモリ704または記憶デバイス706に記憶された命令が挙げられる。他の実施態様では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよびメモリのタイプとともに、必要に応じて使用され得る。また、複数のコンピューティングデバイス700が接続されてもよく、その場合、各デバイスは必要な動作の一部を提供する(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0065】
メモリ704は、コンピューティングデバイス700内に情報を記憶する。一実施態様において、メモリ704は、1つまたは複数の揮発性メモリユニットである。他の実施態様において、メモリ704は、1つまたは複数の不揮発性メモリユニットである。メモリ704は、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ可読媒体であってもよい。
【0066】
記憶デバイス706は、コンピューティングデバイス700に大容量ストレージを提供することができる。一実施態様では、記憶デバイス706は、例えばフロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークまたは他の構成内のデバイスを含むデバイスのアレイ、などのコンピュータ可読媒体であってもよく、またはこれらを含んでもよい。コンピュータプログラムプロダクトは情報担体に有形に組み込むことができる。コンピュータプログラムプロダクトは、実行されると上記のような1つまたは複数の方法を実行する命令を含むこともできる。情報担体は、メモリ704、記憶デバイス706、またはプロセッサ702上のメモリなどのコンピュータまたは機械可読媒体である。
【0067】
高速コントローラ708は、コンピューティングデバイス700における帯域幅を大量に消費する動作を管理し、一方、低速コントローラ712は、帯域幅をあまり消費しない動作を管理する。そのような機能の割り当ては一例にすぎない。一実施態様において、高速コントローラ708は、メモリ704、ディスプレイ716に(例えば、グラフィックプロセッサまたはアクセラレータを介して)結合され、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート710に結合される。実施態様において、低速コントローラ712は、記憶デバイス706および低速拡張ポート714に結合される。様々な通信ポート(例えば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つもしくは複数の入力/出力デバイス、または、例えばネットワークアダプタを介してスイッチやルータなどのネットワーキングデバイスに結合されてもよい。
【0068】
コンピューティングデバイス700は、本図に示すように、多くの異なる形式で実装することができる。例えば、コンピューティングデバイス700は標準サーバ720として実装されてもよく、またはそのようなサーバのグループ内で複数回実装されてもよい。コンピューティングデバイス700は、ラックサーバシステム724の一部として実装することもできる。さらに、コンピューティングデバイス700は、ラップトップコンピュータ722などのパーソナルコンピュータに実装されてもよい。あるいは、コンピューティングデバイス700の構成要素をデバイス750などのモバイルデバイス(図示せず)内の他の構成要素と組み合わせることができる。そのようなデバイスの各々は、1つまたは複数のコンピューティングデバイス700、750を含むことができ、システム全体は、相互に通信する複数のコンピューティングデバイス700、750から構成されてもよい。
【0069】
コンピューティングデバイス750は、他の構成要素の中でもとりわけ、プロセッサ752、メモリ764、ディスプレイ754などの入力/出力デバイス、通信インタフェース766、およびトランシーバ768を含む。デバイス750には、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどの記憶デバイスも設けられてもよい。構成要素750、752、764、754、766、および768のそれぞれは、様々なバスを使用して相互接続され、構成要素の幾つかは、共通のマザーボード上に、または必要に応じて他の方式で実装され得る。
【0070】
プロセッサ752は、メモリ764に記憶された命令を含む、コンピューティングデバイス750内の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサは、例えば、ユーザインタフェース、デバイス750によって実行されるアプリケーション、およびデバイス750によるワイヤレス通信の制御など、デバイス750の他の構成要素の調整を行うことができる。
【0071】
プロセッサ752は、ディスプレイ754に結合された制御インタフェース758およびディスプレイインタフェース756を介してユーザと通信することができる。ディスプレイ754は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)、およびLED(発光ダイオード)もしくはOLED(有機発光ダイオード)ディスプレイ、またはその他の適切なディスプレイ技術であってもよい。ディスプレイインタフェース756は、ディスプレイ754を駆動してグラフィック情報および他の情報をユーザに提示するための適切な回路を含むことができる。制御インタフェース758は、ユーザからコマンドを受信し、それらを変換してプロセッサ752に送信することができる。さらに、デバイス750と他のデバイスとの近距離通信を可能にするために、プロセッサ752と通信する外部インタフェース762が設けられてもよい。外部インタフェース762は、例えば、幾つかの実施態様では有線通信を提供することができ、他の実施態様ではワイヤレス通信を提供することができ、複数のインタフェースを使用することもできる。
【0072】
メモリ764は、コンピューティングデバイス750内に情報を記憶する。メモリ764は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。拡張メモリ774がさらに設けられてもよく、拡張メモリ774は、拡張インタフェース772を介してデバイス750に接続されてもよく、拡張インタフェース772は、例えば、SIMM(シングルインラインメモリモジュール)カードインタフェースを含み得る。そのような拡張メモリ774は、デバイス750に追加の記憶スペースを提供することができ、またはデバイス750のためのアプリケーションもしくは他の情報を記憶することもできる。具体的には、拡張メモリ774は、前述のプロセスを実行または補足するための命令を含むことができ、安全な情報も含むことができる。したがって、例えば、拡張メモリ774は、デバイス750のためのセキュリティモジュールとして提供されてもよく、デバイス750の安全な使用を可能にする命令でプログラムされてもよい。さらに、セキュアアプリケーションが、ハッキング不可能な方式でSIMMカードに特定情報を配置するなど、追加情報とともに、SIMMカードを介して設けられてもよい。
【0073】
メモリは、例えば、以下に説明するように、フラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実施態様において、コンピュータプログラムプロダクトは情報担体に有形に組み込まれる。コンピュータプログラムプロダクトは、実行されると上記のような1つまたは複数の方法を実行する命令を含む。情報担体は、例えばトランシーバ768または外部インタフェース762を介して受信され得る、メモリ764、拡張メモリ774、またはプロセッサ752上のメモリなどのコンピュータまたは機械可読媒体である。
【0074】
デバイス750は、必要に応じてデジタル信号処理回路を含むことができる通信インタフェース766を介してワイヤレス通信することができる。通信インタフェース766は、とりわけ、GSM音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルの下での通信をもたらし得る。そのような通信は、例えば、無線周波数トランシーバ768を介して行われ得る。さらに、Bluetooth、Wi-Fi、または他のそのようなトランシーバ(図示せず)を使用するなど、短距離通信が行われ得る。さらに、GPS(全地球測位システム)受信機モジュール770は、追加のナビゲーションおよび位置関連ワイヤレスデータをデバイス750に提供することができ、このデータは、デバイス750上で実行されるアプリケーションによって適宜使用され得る。
【0075】
デバイス750は、オーディオコーデック760を使用して音声通信することもでき、オーディオコーデック760は、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換することができる。オーディオコーデック760は、同様に、例えばデバイス750のハンドセット内のスピーカなどを介して、ユーザに対して可聴音を生成することができる。そのような音は、音声通話からの音を含んでもよく、録音された音(例えば、音声メッセージ、音楽ファイルなど)を含んでもよく、さらにはデバイス750上で動作するアプリケーションによって生成される音を含んでもよい。
【0076】
コンピューティングデバイス750は、本図に示すように、多くの異なる形式で実装することができる。例えば、コンピューティングデバイスは、携帯電話780として実装されてもよい。また、コンピューティングデバイスは、スマートフォン782、携帯情報端末、または他の同様のモバイルデバイスの一部として実装されてもよい。
【0077】
本明細書で説明されるシステムおよび技術の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせにおいて実現することができる。これらの様々な実装は、データおよび命令を記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスに対して送受信するように結合され、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実装を含み得る。
【0078】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベルの手続き型および/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ/機械語で実装することができる。本明細書で使用される場合、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械命令および/またはデータを、機械読み取り可能な信号として機械命令を受信する機械読み取り可能な媒体を含むプログラマブルプロセッサに提供するために使用される、任意のコンピュータプログラムプロダクト、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0079】
ユーザとの対話をもたらすために、本明細書中で説明されるシステムおよび技術は、ユーザに情報を表示するための表示デバイス(LED(発光ダイオード)、OLED(有機LED)、またはLCD(液晶ディスプレイ)モニタ/スクリーン)、ならびにユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス(マウスやトラックボールなど)を有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとの対話を同様にもたらすこともでき、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚入力など、あらゆる形式で受け取ることができる。
【0080】
本明細書中で説明されるシステムおよび技術は、バックエンド構成要素(例えば、データサーバとして)を含む、またはミドルウェア構成要素(例えば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(例えば、ユーザが本明細書中で説明するシステムおよび技術の実装と対話できるグラフィカルユーザインタフェースまたはWebブラウザを有するクライアントコンピュータ)、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、デジタルデータ通信の任意の形式または媒体(通信ネットワークなど)によって相互接続できる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0081】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して互いに離れており、一般に、通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されて相互にクライアントとサーバとの関係を持つコンピュータプログラムによって発生する。
【0082】
幾つかの実施態様において、本図に示されるコンピューティングデバイスは、物理空間内に挿入されたコンテンツを閲覧するための拡張環境を生成するために、ARヘッドセット/HMDデバイス790とインタフェースするセンサを含むことができる。例えば、コンピューティングデバイス750または本図に示される他のコンピューティングデバイスに含まれる1つまたは複数のセンサは、ARヘッドセット790に入力を提供することができ、または、一般に、AR空間に入力を提供することができる。センサとしては、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、生体認証センサ、温度センサ、湿度センサ、周囲光センサなどが挙げられるが、これらに限定されない。コンピューティングデバイス750は、センサを使用して、AR空間内のコンピューティングデバイスの絶対位置および/または検出された回転を決定することができ、これは次いでAR空間への入力として使用できる。例えば、コンピューティングデバイス750は、コントローラ、レーザポインタ、キーボード、武器などの仮想物体としてAR空間に組み込むことができる。AR空間に組み込まれるときのユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めにより、ユーザは、AR空間内で特定の方式で仮想物体を見るようにコンピューティングデバイスを位置決めすることが可能になり得る。例えば、仮想物体がレーザポインタを表す場合、ユーザはコンピューティングデバイスを実際のレーザポインタであるかのように操作できる。ユーザはコンピューティングデバイスを左右、上下、円を描くように動かすなど、レーザポインタを使用する場合と同様の様式でデバイスを使用できる。一部の実施態様では、ユーザは仮想レーザポインタを使用してターゲット位置を狙うことができる。
【0083】
幾つかの実施態様では、コンピューティングデバイス750上に含まれる、またはコンピューティングデバイス750に接続される1つまたは複数の入力デバイスを、AR空間への入力として使用することができる。入力デバイスとしては、タッチスクリーン、キーボード、1つもしくは複数のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイク、入力機能を備えたイヤホンもしくはバッド、ゲームコントローラ、またはその他の接続可能な入力デバイスが挙げられるが、これらに限定されない。コンピューティングデバイスがAR空間に組み込まれているときにコンピューティングデバイス750に含まれる入力デバイスとユーザが対話することにより、AR空間内で特定のアクションが発生する可能性がある。
【0084】
幾つかの実施態様において、コンピューティングデバイス750のタッチスクリーンは、AR空間においてタッチパッドとしてレンダリングされ得る。ユーザは、コンピューティングデバイス750のタッチスクリーンと対話することができる。対話は、例えば、ARヘッドセット790において、AR空間内にレンダリングされたタッチパッド上の動きとしてレンダリングされる。レンダリングされた動きは、AR空間内の仮想物体を制御できる。
【0085】
幾つかの実施態様において、コンピューティングデバイス750に含まれる1つまたは複数の出力デバイスは、AR空間内のARヘッドセット790のユーザに出力および/またはフィードバックを提供することができる。出力およびフィードバックは、視覚的、触覚的、または音声のいずれかになる。出力および/またはフィードバックとしては、振動、1つまたは複数のライトまたはストロボのオン/オフまたは点滅および/もしくは閃光、アラームの鳴動、チャイムの再生、曲の再生、および音声ファイルの再生が挙げられるが、これらに限定されない。出力デバイスとしては、振動モータ、振動コイル、圧電デバイス、静電デバイス、発光ダイオード(LED)、ストロボ、スピーカなどを挙げることができるが、これらに限定されない。
【0086】
幾つかの実施態様において、コンピューティングデバイス750は、コンピュータ生成の3D環境において別の物体として現れることができる。ユーザによるコンピューティングデバイス750との対話(例えば、回転させる、振る、タッチスクリーンに触れる、タッチスクリーン上で指をスワイプする)は、AR空間内の物体との対話として解釈することができる。AR空間におけるレーザポインタの例では、コンピューティングデバイス750は、コンピュータ生成の3D環境において仮想レーザポインタとして現れる。ユーザがコンピューティングデバイス750を操作すると、AR空間内のユーザはレーザポインタの動きを見る。ユーザは、AR環境におけるコンピューティングデバイス750との対話からコンピューティングデバイス750上またはARヘッドセット790上でフィードバックを受ける。コンピューティングデバイスとのユーザの対話は、制御可能なデバイス用にAR環境内で生成されたユーザインタフェースとの対話に変換されてもよい。
【0087】
幾つかの実施態様では、コンピューティングデバイス750はタッチスクリーンを含み得る。例えば、ユーザはタッチスクリーンと対話して、制御可能なデバイス用のユーザインタフェースと対話できる。例えば、タッチスクリーンは、制御可能なデバイスのプロパティを制御できるスライダなどのユーザインタフェース要素を含むことができる。
【0088】
コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを含むがこれらに限定されない、様々な形態のデジタルコンピュータおよびデバイスを表すことを意図している。コンピューティングデバイス750は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すことを意図している。ここに示される構成要素、それらの接続と関係、およびそれらの機能は、単なる例であることを意図しており、本文書で説明および/または請求される発明の実装を限定することを意図するものではない。
【0089】
多くの実施形態について説明してきた。それにも関わらず、本明細書の趣旨および範囲から逸脱することなく、様々な修正を行うことができることが理解され得る。
【0090】
さらに、図に示されている論理フローは、望ましい結果を達成するために、示されている特定の順序、または一連の順序を必要としない。加えて、説明したフローに他のステップを提供したり、説明したフローからステップを除去したりすることができ、他の構成要素を説明したシステムに追加したり、説明したシステムから除去したりすることができる。したがって、他の実施形態も特許請求の範囲に含まれる。
【0091】
上記の説明に加えて、本明細書に記載のシステム、プログラム、または機能がユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、職業、ユーザの好み、またはユーザの現在位置に関する情報)の収集を可能にするかどうか、および収集をいつ行うか、ならびにユーザがサーバからコンテンツまたは通信を送信されるかどうかをユーザが選択できるようにする制御をユーザに提供することができる。さらに、特定のデータは、個人を特定できる情報が除去されるように、保存または使用される前に1つまたは複数の方法で処理されてもよい。例えば、ユーザの身元情報は、ユーザの個人を特定できる情報が特定できないように処理されてもよく、または、ユーザの特定の場所を決定することができないように、位置情報が取得される場所でユーザの地理的位置が一般化されてもよい(都市、郵便番号、州レベルなどに)。したがって、ユーザは、ユーザに関してどのような情報が収集されるか、その情報がどのように使用されるか、およびどのような情報がユーザに提供されるかを制御できる。
【0092】
記載された実施態様の特定の特徴が本明細書に記載されたように示されているが、多くの修正、置換、変更、および等価物が当業者にただちに想起されるだろう。したがって、添付の特許請求の範囲は、実施の範囲内に含まれる全てのそのような修正および変更を網羅することを意図していることを理解すべきである。これらは限定ではなく例としてのみ提示されており、形式および詳細において様々な変更が可能であることを理解すべきである。本明細書に記載される装置および/または方法の任意の部分は、相互に排他的な組み合わせを除いて、任意の組み合わせで組み合わせることができる。本明細書で説明される実装は、説明される異なる実装の機能、構成要素、および/または特徴の様々な組み合わせおよび/または部分組み合わせを含むことができる。
【0093】
例示的な実施形態は、様々な修正および代替形態を含むことができるが、それらの実施形態は、例として図面に示され、本明細書で詳細に説明される。しかしながら、例示的な実施形態を開示された特定の形態に限定する意図はなく、逆に、例示的な実施形態は、特許請求の範囲内に含まれる全ての修正、等価物、および代替物を網羅するものであることを理解すべきである。図面の説明全体を通じて、同様の番号は同様の要素を指す。
【0094】
上記の例示的な実施形態の幾つかは、フローチャートとして示されるプロセスまたは方法として説明される。フローチャートでは動作を逐次的なプロセスとして説明しているが、動作の多くはパラレルに、並行して、または同時に実行できる。さらに、動作の順序は並べ替えられてもよい。プロセスは、動作が完了すると終了し得るが、図には含まれていない追加のステップがあってもよい。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。
【0095】
上で論じた方法は、その一部がフローチャートによって示されており、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実装され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体などの機械またはコンピュータ可読媒体に記憶され得る。プロセッサは必要なタスクを実行できる。
【0096】
本明細書に開示される特定の構造および機能の詳細は、例示的な実施形態を説明する目的で単に代表的なものである。しかしながら、例示的な実施形態は多くの代替形態で具現化されてもよく、本明細書に記載された実施形態のみに限定されるものとして解釈されるべきではない。
【0097】
本明細書では、第1、第2などの用語を使用して様々な要素を説明することがあるが、これらの要素はこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、例示的な実施形態の範囲から逸脱することなく、第1の要素を第2の要素と呼ぶことができ、同様に、第2の要素を第1の要素と呼ぶことができる。本明細書で使用される場合、「および/または」という用語は、関連する列挙された項目の1つまたは複数の任意のおよび全ての組み合わせを含む。
【0098】
要素が別の要素に接続または結合されると言及される場合、それは他の要素に直接接続もしくは結合され得るか、または介在要素が存在し得ることが理解されよう。対照的に、要素が別の要素に直接接続または直接結合されていると呼ばれる場合、介在する要素は存在しない。要素間の関係を説明するために使用される他の単語も同様に解釈される必要がある(例えば、間と直接の間、隣接するものと直接隣接するものなど)。
【0099】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、例示的な実施形態を限定することを意図したものではない。本明細書で使用される場合、単数形a、an、およびtheは、文脈上明らかに別段の指示がない限り、複数形も含むものとする。さらに、本明細書で使用される場合、「備える」、「備えている」、「含む」、および/または「含んでいる」という用語は、記載された特徴、整数、ステップ、動作、要素および/または構成要素の存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことも理解されよう。
【0100】
また、幾つかの代替実装形態では、記載された機能/動作が、図に記載された順序から外れて発生する可能性があることにも留意すべきである。例えば、連続して表示される2つの図は、実際には同時に実行されることもあれば、関係する機能/動作に応じて逆の順序で実行されることも時にはある。
【0101】
特に定義しない限り、本明細書で使用される全ての用語(技術用語および科学用語を含む)は、例示的な実施形態が属する当業者によって一般に理解されるのと同じ意味を有する。さらに、用語、例えば一般に使用される辞書で定義されている用語は、関連技術の文脈におけるその意味と一致する意味を有するものとして解釈されるべきであり、本明細書では明示的にそのように定義される場合を除き、理想化された意味または過度に形式的な意味で解釈されないことが理解されよう。
【0102】
上記の例示的な実施形態の一部および対応する詳細な説明は、ソフトウェア、またはコンピュータメモリ内のデータビットに対する演算のアルゴリズムおよび記号表現の観点から提示されている。これらの説明および表現は、当業者がその研究の内容を他の当業者に効果的に伝えるためのものである。ここで使用されている用語および一般的に使用されている用語としてのアルゴリズムは、望ましい結果に至る、一貫した一連のステップであると考えられている。これらのステップは、物理量の物理的操作を必要とするステップである。必ずしもそうではないが、通常、これらの量は、保存、転送、結合、比較、その他の操作が可能な光、電気、または磁気信号の形をとる。主に一般的な使用上の理由から、これらの信号をビット、値、要素、記号、文字、項、数字などと呼ぶと便利な場合がある。
【0103】
上記の例示的な実施形態では、プログラムモジュールまたは機能プロセスとして実装され得る動作および動作の記号表現(例えば、フローチャートの形式)への言及には、特定のタスクを実行するかまたは特定の抽象データ型を実装し、既存の構造要素において既存のハードウェアを使用して記述および/または実装することができるルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。そのような既存のハードウェアとしては、1つまたは複数の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(FPGA)コンピュータなどを挙げることができる。
【0104】
しかしながら、これらの用語および同様の用語は全て、適切な物理量に関連付けられており、これらの量に適用される便宜的なラベルにすぎないことに留意すべきである。特に断りのない限り、または議論から明らかなように、処理または計算、または表示などの計算または決定などの用語は、コンピュータシステムのレジスタやメモリ内で物理量、電子量として表されるデータを操作して、コンピュータシステムのメモリやレジスタ、または他のそのような情報記憶装置、送信デバイス、または表示デバイス内で同様に物理量として表される他のデータに変換するコンピュータシステムまたは同様の電子コンピューティングデバイスの動作およびプロセスを指す。
【0105】
また、例示的な実施形態のソフトウェア実装された態様は、通常、何らかの形式の非一時的なプログラム記憶媒体上に符号化されるか、またはある種の伝送媒体上で実装されることにも留意されたい。プログラム記憶媒体は、磁気(例えば、フロッピーディスクまたはハードドライブ)または光学(例えば、コンパクトディスク読み取り専用メモリすなわちCDROM)であってもよく、読み取り専用またはランダムアクセスであってもよい。同様に、伝送媒体は、ツイストペア線、同軸ケーブル、光ファイバ、または当技術分野で知られている何らかの他の適切な伝送媒体であってもよい。例示的な実施形態は、任意の所与の実装形態のこれらの態様によって限定されない。
【0106】
最後に、添付の特許請求の範囲は、本明細書に記載される特徴の特定の組み合わせを記載しているが、本開示の範囲は、以下に特許請求される特定の組み合わせに限定されず、代わりに、現時点でその特定の組み合わせが添付の特許請求の範囲に具体的に列挙されているかどうかに関係なく、本明細書に開示される特徴または実施形態の任意の組み合わせを包含するように拡張されることにも留意すべきである。
【手続補正書】
【提出日】2024-02-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
トレーニング段階では、
第1のモデルと第2のモデルとを含む視線予測モデルをトレーニングすることを含み、
前記第1のモデルおよび前記第2のモデルは、トレーニングデータに基づいてセグメンテーションデータを予測するように連携して構成され、
前記方法は、
前記第1のモデルおよび前記第2のモデルとともに第3のモデルをトレーニングすることをさらに含み、
前記第3のモデルは、前記トレーニングデータに基づいて前記第1のモデルの出力を使用してトレーニング特性を予測するように構成され、
前記方法は、動作段階では、
動作データを受信することと、
前記トレーニングされた第1のモデルと前記トレーニングされた第3のモデルとを使用して動作特性を予測することと
をさらに含む、方法。
【請求項2】
前記トレーニングデータは眼の画像を含み、
前記予測されたセグメンテーションデータは前記眼の領域を含み、
前記トレーニング特性は前記眼の視線である、
請求項1に記載の方法。
【請求項3】
前記動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉される眼の画像を含み、
前記動作特性は前記眼の視線である、
請求項1または請求項2に記載の方法。
【請求項4】
前記視線予測モデルを前記トレーニングすることは、
前記第1のモデルを使用して前記トレーニングデータに基づき第1の特徴マップを生成することと、
前記第2のモデルを使用して前記第1の特徴マップに基づき第2の特徴マップを生成することと、
前記第2の特徴マップに基づいて前記セグメンテーションデータを予測することと、
前記予測されたセグメンテーションデータに関連する損失を生成することと、
前記損失と前記トレーニング特性に関連する損失とに基づいて前記第1のモデルおよび前記第2のモデルのうちの少なくとも1つをトレーニングすることと
を含む、請求項1
または請求項
2に記載の方法。
【請求項5】
前記視線予測モデルを前記トレーニングすることは、
前記第1のモデルを使用して前記トレーニングデータに基づき第1の特徴マップを生成することと、
前記第3のモデルを使用して前記第1の特徴マップに基づき前記トレーニング特性を予測することと、
前記予測されたトレーニング特性に関連する損失を生成することと、
前記損失と前記セグメンテーションデータに関連する損失とに基づいて前記第3のモデルをトレーニングすることと
を含む、請求項1
または請求項
2に記載の方法。
【請求項6】
前記動作特性を前記予測することは、
前記第1のモデルを使用して前記動作データに基づき特徴マップを生成することと、
前記第3のモデルを使用して前記特徴マップに基づき前記動作特性を予測することと
を含む、請求項1
または請求項
2に記載の方法。
【請求項7】
前記第1のモデルは第1の畳み込みニューラルネットワーク(CNN)であり、
前記第2のモデルは、前記第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNであり、
前記第3のモデルは線形ニューラルネットワークである、
請求項1
または請求項
2に記載の方法。
【請求項8】
前記第2のモデルは、前記第1のモデルによって生成される特徴マップからセグメンテーションを予測するように構成され、
前記動作段階において、前記第2のモデルは前記視線予測モデルから除去される、
請求項1
または請求項
2に記載の方法。
【請求項9】
前記視線予測モデルを前記トレーニングすることは、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含む、請求項1
または請求項
2に記載の方法。
【請求項10】
前記動作段階の前に、較正段階において、ARユーザデバイスを使用して捕捉されるユーザデータに基づいて、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つをトレーニングすること
をさらに含む、請求項1
または請求項
2に記載の方法。
【請求項11】
第1のモデルを使用してトレーニングデータに基づき第1の特徴マップを生成することと、
第2のモデルを使用して前記第1の特徴マップに基づき第2の特徴マップを生成することと、
前記第2の特徴マップに基づいてセグメンテーションデータを予測することと、
前記予測されたセグメンテーションデータに関連する第1の損失を生成することと、
第3のモデルを使用して前記第1の特徴マップに基づきトレーニング特性を予測することと、
前記予測されたトレーニング特性に関連する第2の損失を生成することと、
前記第1の損失と前記第2の損失とに基づいて、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つをトレーニングすることと
を含む、方法。
【請求項12】
前記トレーニングデータは眼の画像を含み、
前記予測されたセグメンテーションデータは前記眼の領域を含み、
前記トレーニング特性は前記眼の視線である、
請求項11に記載の方法。
【請求項13】
前記第1のモデルは第1の畳み込みニューラルネットワーク(CNN)であり、
前記第2のモデルは、前記第1のCNNからの少なくとも1つのスキップ接続を含む第2のCNNであり、
前記第3のモデルは線形ニューラルネットワークである、
請求項11または請求項12に記載の方法。
【請求項14】
前記第2のモデルは、前記第1のモデルによって生成される特徴マップからセグメンテーションを予測するように構成され、
動作段階において、前記第2のモデルは除去される、
請求項11
または請求項
12に記載の方法。
【請求項15】
前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つを前記トレーニングすることは、前記第1のモデル、前記第2のモデル、および前記第3のモデルのうちの少なくとも1つに関連するパラメータ、特徴、および特徴の特性のうちの少なくとも1つを変えることを含む、請求項11
または請求項
12に記載の方法。
【請求項16】
前記セグメンテーションデータを前記予測することは、前記第2の特徴マップに関連するデータを別個のグループに分離することを含むプロセスである、請求項11
または請求項
12に記載の方法。
【請求項17】
前記セグメンテーションデータを前記予測することは、検出プロセスおよび抑制プロセスを含む、請求項11
または請求項
12に記載の方法。
【請求項18】
方法であって、
トレーニングされた第1のモデルを使用して動作データに基づき特徴マップを生成することと、
トレーニングされた第2のモデルを使用して前記特徴マップに基づき特性を予測することとを含み、
前記第1のモデルおよび前記第2のモデルの前記トレーニングは、前記トレーニング中にセグメンテーションデータを予測するために第3のモデルを使用することを含み、
前記方法は、
前記特性を予測するために前記第3のモデルを除去することをさらに含む、
方法。
【請求項19】
前記動作データは、拡張現実(AR)ユーザデバイスを使用して捕捉される眼の画像を含み、
前記方法は、前記トレーニングされた第1のモデルと前記トレーニングされた第2のモデルとを使用して動作特性を予測することを含み、
前記動作特性は前記眼の視線である、
請求項18に記載の方法。
【請求項20】
ARユーザデバイスを使用して捕捉されるユーザデータに基づいて、前記トレーニングされた第1のモデル、前記トレーニングされた第2のモデル、および前記第3のモデルのうちの少なくとも1つをさらにトレーニングすることをさらに含む、請求項18または請求項19に記載の方法。
【国際調査報告】