(57)【要約】訓練されたニューラルネットワークを使用して、眼の視線ベクトルを推定するためのシステムおよび方法。眼の入力画像が、カメラから受信され得る。入力画像は、ニューラルネットワークに提供され得る。ネットワーク出力データが、ニューラルネットワークを使用して生成され得る。ネットワーク出力データは、２次元（２Ｄ）瞳孔データ、眼セグメント化データ、および／または角膜中心データを含んでもよい。視線ベクトルは、ネットワーク出力データに基づいて算出され得る。ニューラルネットワークは、訓練入力画像をニューラルネットワークに提供し、訓練ネットワーク出力データを生成し、グラウンドトゥルース（ＧＴ）データを受信し、訓練ネットワーク出力データとＧＴデータとの間の差異に基づいて、誤差データを算出し、誤差データに基づいて、ニューラルネットワークを修正することによって、事前に訓練され得る。
2021527888.tif 000002
【特許請求の範囲】
【請求項１】
光学デバイスのユーザのための視線ベクトルを推定する方法であって、前記方法は、
前記光学デバイスに搭載されるカメラから前記ユーザの眼の入力画像を受信することと、
前記ユーザの眼の入力画像をニューラルネットワークに提供することであって、前記ニューラルネットワークは、複数の訓練入力画像を使用して事前に訓練されている、ことと、
前記ニューラルネットワークを使用して、ネットワーク出力データを生成することと、
前記ネットワーク出力データに基づいて、前記ユーザの眼に対応する視線ベクトルを算出することと
を含む、方法。
【請求項２】
前記ネットワーク出力データは、
２次元（２Ｄ）瞳孔データ、
眼セグメント化データ、または
角膜中心データ
のうちの１つ以上のものを含む、請求項１に記載の方法。
【請求項３】
前記２Ｄ瞳孔データは、２Ｄ瞳孔中心を含む、請求項２に記載の方法。
【請求項４】
前記眼セグメント化データは、背景領域、強膜領域、瞳孔領域、または虹彩領域のうちの１つ以上のものを含む複数の領域への前記ユーザの眼のセグメント化を含む、請求項２に記載の方法。
【請求項５】
前記角膜中心データは、２Ｄまたは３Ｄ角膜中心を含む、請求項２に記載の方法。
【請求項６】
前記２Ｄ瞳孔データおよび前記眼セグメント化データに基づいて、３次元（３Ｄ）瞳孔中心を算出することをさらに含む、請求項２に記載の方法。
【請求項７】
前記３Ｄ瞳孔中心および前記角膜中心データに基づいて、前記ユーザの眼と関連付けられる光学軸を算出することをさらに含む、請求項６に記載の方法。
【請求項８】
光学軸と、ユーザに対応する較正角度とに基づいて、前記ユーザの眼と関連付けられる視線ベクトルを算出することをさらに含む、請求項７に記載の方法。
【請求項９】
前記ニューラルネットワークは、
前記複数の訓練入力画像の訓練入力画像毎に、
前記訓練入力画像を前記ニューラルネットワークに提供することと、
前記ニューラルネットワークを使用して、訓練ネットワーク出力データを生成することと、
グラウンドトゥルース（ＧＴ）データを受信することと、
前記訓練ネットワーク出力データと前記ＧＴデータとの間の差異に基づいて、誤差データを算出することと、
前記誤差データに基づいて、前記ニューラルネットワークを修正することと
を行うことによって事前に訓練されている、請求項１に記載の方法。
【請求項１０】
前記訓練ネットワーク出力データは、
訓練２Ｄ瞳孔中心データ、
訓練眼セグメント化データ、
訓練閃光検出データ、または
訓練角膜中心データ
のうちの１つ以上のものを含む、請求項９に記載の方法。
【請求項１１】
前記ＧＴデータは、
２Ｄ瞳孔中心ＧＴデータ、
眼セグメント化ＧＴデータ、または
閃光検出ＧＴデータ
のうちの１つ以上のものを含む、請求項１０に記載の方法。
【請求項１２】
前記眼セグメント化ＧＴデータは、訓練背景領域、訓練強膜領域、訓練瞳孔領域、および訓練虹彩領域のうちの１つ以上のものを含む複数の訓練領域への手動で作成された前記ユーザの眼のセグメント化を含む、請求項１１に記載の方法。
【請求項１３】
前記閃光検出ＧＴデータは、閃光場所の手動で作成された識別を含む、請求項１１に記載の方法。
【請求項１４】
前記誤差データは、
前記訓練２Ｄ瞳孔中心データと前記２Ｄ瞳孔中心ＧＴデータとの間の差異、
前記訓練眼セグメント化データと前記眼セグメント化ＧＴデータとの間の差異、
前記訓練閃光検出データと前記閃光検出ＧＴデータとの間の差異、または
前記訓練角膜中心データおよび１つ以上の幾何学的制約に基づく誤差
のうちの１つ以上のものを含む、請求項１１に記載の方法。
【請求項１５】
光学デバイスであって、
カメラと、
前記カメラに通信可能に結合されたプロセッサであって、前記プロセッサは、
前記カメラからユーザの眼の入力画像を受信することと、
前記ユーザの眼の入力画像をニューラルネットワークに提供することであって、前記ニューラルネットワークは、複数の訓練入力画像を使用して事前に訓練されている、ことと、
前記ニューラルネットワークを使用して、ネットワーク出力データを生成することと、
前記ネットワーク出力データに基づいて、前記ユーザの眼に対応する視線ベクトルを算出することと
を含む動作を実施するように構成される、プロセッサと
を備える、光学デバイス。
【請求項１６】
複数の赤外線（ＩＲ）発光ダイオード（ＬＥＤ）をさらに備える、請求項１５に記載の光学デバイス。
【請求項１７】
前記ネットワーク出力データは、
２次元（２Ｄ）瞳孔データ、
眼セグメント化データ、または
角膜中心データ
のうちの１つ以上のものを含む、請求項１５に記載の光学デバイス。
【請求項１８】
前記２Ｄ瞳孔データは、２Ｄ瞳孔中心を含む、請求項１７に記載の光学デバイス。
【請求項１９】
前記眼セグメント化データは、背景領域、強膜領域、瞳孔領域、または虹彩領域のうちの１つ以上のものを含む複数の領域への前記ユーザの眼のセグメント化を含む、請求項１７に記載の光学デバイス。
【請求項２０】
前記ニューラルネットワークは、
複数の訓練入力画像の訓練入力画像毎に、
前記訓練入力画像を前記ニューラルネットワークに提供することと、
前記ニューラルネットワークを使用して、訓練ネットワーク出力データを生成することと、
グラウンドトゥルース（ＧＴ）データを受信することと、
前記訓練ネットワーク出力データと前記ＧＴデータとの間の差異に基づいて、誤差データを算出することと、
前記誤差データに基づいて、前記ニューラルネットワークを修正することと
を行うことによって事前に訓練されている、請求項１５に記載の光学デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、その内容が、参照することによってその全体として本明細書に組み込まれる、２０１８年６月２２日に出願され、「ＭＥＴＨＯＤ  ＡＮＤ  ＳＹＳＴＥＭ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＥＹＥ  ＴＲＡＣＫＩＮＧ  ＵＳＩＮＧ  ＡＮ  ＯＦＦ−ＡＸＩＳ  ＣＡＭＥＲＡ」と題された、米国仮特許出願第６２／６８８，９８３号の優先権の利益を主張する。
【背景技術】
【０００２】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実」または「拡張現実」体験のためのシステムの開発を促進しており、デジタル的に再現された画像またはその一部は、現実であるように見える、またはそのように知覚され得る様式で、ユーザに提示される。仮想現実、すなわち、「ＶＲ」シナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。拡張現実、すなわち、「ＡＲ」シナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。
【０００３】
これらのディスプレイ技術において成された進歩にもかかわらず、当技術分野において、拡張現実システム、特に、ディスプレイシステムに関連する、改良された方法、システム、およびデバイスの必要性が存在する。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、概して、眼追跡のためのシステムおよび方法に関する。より具体的には、本開示の実施形態は、頭部搭載型仮想現実（ＶＲ）、複合現実（ＭＲ）、および／または拡張現実（ＡＲ）デバイスにおける視線推定のために眼追跡を実施するためのシステムおよび方法を提供する。本発明の実施形態は、コンテンツのエネルギーおよび帯域幅効率的レンダリングの使用が、効果的かつユーザの必要性の妨げにならない様式において、多焦点ディスプレイを駆動することを可能にする。本発明は、ＡＲデバイスを参照して説明されるが、本開示は、コンピュータビジョンおよび画像ディスプレイシステムにおける種々の用途に適用可能である。
【０００５】
本発明の一側面では、ニューラルネットワークを使用して視線ベクトルを推定する方法が、提供される。本方法は、カメラから、眼の入力画像を受信するステップを含んでもよい。本方法はまた、眼の入力画像をニューラルネットワークに提供するステップを含んでもよい。本方法はさらに、ニューラルネットワークを使用して、ネットワーク出力データを生成するステップを含んでもよい。本方法はさらに、ネットワーク出力データに基づいて、眼に対応する視線ベクトルを算出するステップを含んでもよい。いくつかの実施形態では、ネットワーク出力データは、２次元（２Ｄ）瞳孔データ、眼セグメント化データ、および角膜中心データのうちの１つ以上のものを含む。いくつかの実施形態では、２Ｄ瞳孔データは、２Ｄ瞳孔中心を含む。いくつかの実施形態では、眼セグメント化データは、背景領域、強膜領域、瞳孔領域、および虹彩領域のうちの１つ以上のものを含む、複数の領域への眼のセグメント化を含む。いくつかの実施形態では、角膜中心データは、２Ｄまたは３Ｄ角膜中心を含む。
【０００６】
いくつかの実施形態では、本方法はさらに、２Ｄ瞳孔データおよび眼セグメント化データに基づいて、３次元（３Ｄ）瞳孔中心を算出するステップを含む。いくつかの実施形態では、本方法はさらに、３Ｄ瞳孔中心および角膜中心データに基づいて、眼と関連付けられる光学軸を算出するステップを含む。いくつかの実施形態では、本方法はさらに、光学軸およびユーザに対応する較正角度に基づいて、眼と関連付けられる視線ベクトルを算出するステップを含む。いくつかの実施形態では、ニューラルネットワークは、複数の訓練入力画像の訓練入力画像毎に、訓練入力画像をニューラルネットワークに提供するステップと、ニューラルネットワークを使用して、訓練ネットワーク出力データを生成するステップと、グラウンドトゥルース（ＧＴ）データを受信するステップと、訓練ネットワーク出力データとＧＴデータとの間の差異に基づいて、誤差データを算出するステップと、誤差データに基づいて、ニューラルネットワークを修正するステップとによって事前に訓練されている。
【０００７】
いくつかの実施形態では、訓練ネットワーク出力データは、訓練眼セグメント化データ、訓練閃光検出データ、および訓練角膜中心データのうちの１つ以上のものを含む。いくつかの実施形態では、ＧＴデータは、２Ｄ瞳孔中心ＧＴデータ、眼セグメント化ＧＴデータ、および閃光検出ＧＴデータのうちの１つ以上のものを含む。いくつかの実施形態では、眼セグメント化ＧＴデータは、訓練背景領域、訓練強膜領域、訓練瞳孔領域、および訓練虹彩領域のうちの１つ以上のものを含む、複数の訓練領域への眼の手動で作成されたセグメント化を含む。いくつかの実施形態では、閃光検出ＧＴデータは、閃光場所（ｇｌｉｎｔ  ｌｏｃａｔｉｏｎ）の手動で作成された識別を含む。
【０００８】
いくつかの実施形態では、誤差データは、訓練２Ｄ瞳孔中心データと２Ｄ瞳孔中心ＧＴデータとの間の差異、訓練眼セグメント化データと眼セグメント化ＧＴデータとの間の差異、訓練閃光検出データと閃光検出ＧＴデータとの間の差異、および訓練角膜中心データおよび１つ以上の幾何学的制約に基づく誤差のうちの１つ以上のものを含む。いくつかの実施形態では、本方法はさらに、エミッタ場所データ、カメラ固有のパラメータ、閃光検出データ、および角膜中心データのうちの１つ以上のものに基づいて、１つ以上の幾何学的制約を算出するステップを含む。いくつかの実施形態では、エミッタ場所データは、複数のエミッタ場所を含む。いくつかの実施形態では、複数の訓練入力画像は、カメラによって捕捉されている。
【０００９】
本発明の別の側面では、ＡＲデバイス等の光学デバイスが、提供される。光学デバイスは、カメラと、ユーザの眼に向かって指向される、複数の赤外線（ＩＲ）発光ダイオード（ＬＥＤ）（デバイスが装着されるとき）と、カメラに通信可能に結合され、カメラから、眼の入力画像を受信するステップと、眼の入力画像をニューラルネットワークに提供するステップと、ニューラルネットワークを使用して、ネットワーク出力データを生成するステップと、ネットワーク出力データに基づいて、眼に対応する視線ベクトルを算出するステップとを含む、動作を実施するように構成される、プロセッサとを含んでもよい。プロセッサはさらに、上記の方法を参照して説明される動作のいずれかを実施するように構成されてもよい。
【００１０】
従来の技法に優る多数の利点が、本開示の方法によって達成される。第１に、訓練されたネットワークを使用した推定値は、古典的眼追跡パイプラインと併せて良好に機能する。訓練されたネットワークを使用した推定値は、その全体的ロバスト性および正確度を改良するために、幾何学的眼追跡システムに取り込まれることができることが実証されている。第２に、本明細書に説明される多段階眼追跡モデルからの結果は、ＡＲ／ＶＲ／ＭＲにおける他の不可欠である用途を駆動することができる。例えば、角膜予測は、中心窩化レンダリングのために使用されることができ、眼セグメント化は、アバタベースのソーシャルスイートアプリにおいて眼をレンダリングするために有用である。第３に、多数の対象に関する持続的視線標的ＧＴデータを収集することは、不正確かつ困難の両方であり得るが、本明細書のデータ収集は、中間予測（瞳孔および角膜推定）の訓練を最終３Ｄ視線ベクトル推定パイプラインから分断することによって、有意により単純化される。第４に、エンドツーエンド深層ネットワークにおける誤差は、解釈することが困難であり得るが、訓練されたネットワークを使用して各段階において行われる中間推定は、解釈可能性に役立つ。本開示の他の利点は、当業者に容易に明白となるであろう。
【図面の簡単な説明】
【００１１】
種々の実施形態の性質および利点のさらなる理解は、以下の図を参照することによって実現され得る。添付の図では、類似コンポーネントまたは特徴は、同一参照ラベルを有し得る。さらに、同一タイプの種々のコンポーネントは、参照ラベルの後に、ダッシュと、類似コンポーネント間で区別する、第２のラベルとが続くことによって、区別され得る。第１の参照ラベルのみが、本明細書で使用される場合、説明は、第２の参照ラベルに関係なく、同一の第１の参照ラベルを有する類似コンポーネントのうちの任意の１つに適用可能である。
【００１２】
【図１】図１は、本明細書に説明される実施形態による、ウェアラブルＡＲデバイスを通して視認されるような拡張現実（ＡＲ）場面を図示する。
【００１３】
【図２】図２は、本発明による、ＡＲデバイスの種々の特徴を図示する。
【００１４】
【図３】図３は、ヒトの眼の標準的二重球状モデルを図示する。
【００１５】
【図４】図４は、本発明による、ＡＲデバイスの概略図を図示する。
【００１６】
【図５】図５は、ネットワークの構成の概略図を図示する。
【００１７】
【図６】図６は、ネットワークの種々の入力および出力の概略図を図示する。
【００１８】
【図７】図７は、訓練モードで動作するＡＲデバイスの概略図を図示する。
【００１９】
【図８】図８は、ランタイムモードで動作するＡＲデバイスの概略図を図示する。
【００２０】
【図９】図９は、ネットワークの１つの可能性として考えられる構造を図示する。
【００２１】
【図１０】図１０は、瞬目予測を生産する、再帰ニューラルネットワーク（ＲＮＮ）を図示する。
【００２２】
【図１１】図１１は、ネットワークを使用して視線ベクトルを推定する方法を図示する。
【００２３】
【図１２】図１２は、視線ベクトルを推定するためにネットワークを訓練する方法を図示する。
【００２４】
【図１３】図１３は、本明細書に説明される実施形態による、簡略化されたコンピュータシステムを図示する。
【発明を実施するための形態】
【００２５】
視線推定のための眼追跡は、頭部搭載型仮想および複合現実デバイスの現在および将来的生成のための重要なコンポーネントである。これは、コンテンツのエネルギーおよび帯域幅効率的レンダリングの使用を可能にし、コンテンツのより現実に即したレンダリングのために多焦点ディスプレイを駆動し、ユーザの必要性の理解の効果的かつ妨げにならない様式として作用する。正確な視線を推定するプロセスは、外観ベースの算出（セグメント化、特徴点検出、例えば、瞳孔中心、閃光）に続いて、モデル／幾何学形状ベースの算出（例えば、３次元において、角膜、瞳孔中心、および視線ベクトルを推定する）を伴う。現在の眼トラッカは、古典的コンピュータビジョン技法（学習を伴わない）を使用し、瞳孔境界／中心を推定し、次いで、それらの推定に基づいて、視線を算出する。本明細書に説明される訓練されたネットワークを使用した推定は、古典的技法より有意に正確である。本発明によると、単一深層ネットワークが、ともに軸外眼画像のための眼および視線推定に関連する複数の量を推定するように訓練される。
【００２６】
図１は、本明細書に説明される実施形態による、ウェアラブルＡＲデバイスを通して視認されるような拡張現実（ＡＲ）場面を図示する。ＡＲ場面１００が、描写されており、ＡＲ技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム１２０を特徴とする、実世界公園状設定１０６が見える。これらのアイテムに加え、ＡＲ技術のユーザはまた、実世界プラットフォーム１２０上に立っているロボット像１１０と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ１０２とが「見える」と知覚するが、これらの要素（キャラクタ１０２および像１１０）は、実世界には存在しない。ヒト視知覚および神経系の著しい複雑性に起因して、他の仮想または実世界画像要素の中に、仮想画像要素の快適で自然のように感じる豊かな提示を促進する、仮想現実（ＶＲ）またはＡＲ技術を生産することは、困難である。
【００２７】
図２は、本発明による、ＡＲデバイス２００の種々の特徴を図示する。いくつかの実施形態では、ＡＲデバイス２００は、仮想画像２２２が、世界オブジェクト２３０とともにユーザによって知覚されるように、光を接眼レンズ２０２上に投影するように構成される、プロジェクタ２１４を含んでもよい。ＡＲデバイス２００はまた、軸外カメラ２４０と、ＡＲデバイス２００に搭載され、ユーザの眼に向かって指向される、１つ以上のエミッタ２６２とを含んでもよい。エミッタ２６２は、ユーザの眼に不可視であるが、軸外カメラ２４０によって検出可能な光を透過させる、赤外線（ＩＲ）発光ダイオード（ＬＥＤ）を備えてもよい。いくつかの実施形態では、エミッタ２６２は、軸外カメラ２４０がＩＲスペクトル内の光を検出する能力を有する必要はないように、ユーザの眼に可視である光を透過させる、ＬＥＤを備えてもよい。したがって、軸外カメラ２４０は、ＩＲ検出能力の有無にかかわらず、カメラであってもよい。
【００２８】
ＡＲデバイス２００の動作の間、軸外カメラ２４０は、ユーザの眼に対応する視線ベクトル２３８の推定につながる情報を検出してもよい（例えば、画像を捕捉する）。視線ベクトル２３８は、画像フレーム毎に算出されてもよく、種々の実施形態では、２次元（２Ｄ）または３次元（３Ｄ）値として表されてもよい。例えば、図２に図示されるように、視線ベクトル２３８は、極性角度θおよび方位角φによって、球面座標系を使用して表されてもよい。代替として、または加えて、視線ベクトル２３８は、Ｘ、Ｙ、およびＺ値によって、３Ｄデカルト座標系を使用して表されてもよい。視線ベクトル２３８は、ユーザの眼の場所、接眼レンズ２０２の場所、および視線ベクトル２３８に基づいて計算され得る、交点２３９において、接眼レンズ２０２と交差し得る。いくつかのインスタンスでは、プロジェクタ２１４は、視野の他のエリアに有利に働くように、交点２３９の周囲の画像明度および／または明確性を改良するために、仮想画像２２２を調節してもよい。
【００２９】
図３は、ヒトの眼の標準的二重球状モデル３００を図示する。モデル３００によると、眼球球体３０２は、完全または部分的に、内側角膜球面３０４を包含し得る。角膜中心３０６は、角膜球面３０４の幾何学的中心であり得る。瞳孔中心３０８は、眼の瞳孔開口部または瞳孔の中心に対応し得、角膜球面３０４によって包含され得る。眼の光学軸３１０は、角膜中心３０６および瞳孔中心３０８を接続することによって形成される、ベクトルであり得る。視線ベクトル２３８（代替として、視軸と称される）は、眼の背面において、角膜中心３０６および中心窩３１２を接続することによって形成され得る。中心窩３１２は、概して、未知であって、推定することが困難であるため、視線ベクトル２３８は、光学軸３１０およびユーザ特有の較正角度κを使用して算出され得る。較正角度κは、１次元（１Ｄ）、２Ｄ、または３Ｄ値であってもよく、ＡＲデバイス２００が、ユーザによって最初に動作されるときの較正位相の間、特定のユーザのために較正されてもよい。いったん較正角度κが、特定のユーザのために算出されると、固定されると仮定される。故に、角膜中心３０６および瞳孔中心３０８を使用して、光学軸３１０を推定することは、視線追跡の根底にある重要な問題である。
【００３０】
図４は、本発明による、ＡＲデバイス２００の概略図を図示する。ＡＲデバイス２００は、左接眼レンズ２０２Ａと、右接眼レンズ２０２Ｂと、直接、左接眼レンズ２０２Ａの上またはその近くに取り付けられる、左正面に向いた世界カメラ２０６Ａと、直接、右接眼レンズ２０２Ｂの上またはその近くに取り付けられる、右正面に向いた世界カメラ２０６Ｂと、左側に向いた世界カメラ２０６Ｃと、右側に向いた世界カメラ２０６Ｄと、処理モジュール２５０とを含んでもよい。エミッタ２６２は、接眼レンズ２０２の一方または両方に搭載されてもよく、いくつかの実施形態では、直接、左接眼レンズ２０２Ａの上またはその近くに搭載される、左エミッタ２６２Ａと、直接、右接眼レンズ２０２Ｂの上またはその近くに搭載される、右エミッタ２６２Ｂとに分離されてもよい（例えば、ＡＲデバイス２００のフレームに搭載される）。いくつかのインスタンスでは、ＡＲデバイス２００は、中心に位置付けられた軸外カメラ２６０、または図４に図示されるように、直接、左接眼レンズ２０２Ａの上またはその近くに搭載される、左軸外カメラ２６０Ａ、および直接、右接眼レンズ２０２Ｂの上またはその近くに搭載される、右軸外カメラ２６０Ａ等、単一または複数の軸外カメラ２６０を含んでもよい。
【００３１】
ＡＲデバイス２００のコンポーネントの一部または全部は、投影された画像がユーザによって視認され得るように、頭部に搭載されてもよい。１つの特定の実装では、図４に示されるＡＲデバイス２００のコンポーネントは全て、ユーザによって装着可能な単一デバイス（例えば、単一ヘッドセット）上に搭載される。別の実装では、処理モジュール２５０は、ＡＲデバイス２００の他のコンポーネントと物理的に別個であって、有線または無線コネクティビティによって、通信可能に結合される。例えば、処理モジュール２５０は、フレームに固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザに除去可能に取り付けられる（例えば、リュック式構成において、ベルト結合式構成において等）等、種々の構成において搭載されてもよい。
【００３２】
処理モジュール２５０は、プロセッサ２５２と、不揮発性メモリ（例えば、フラッシュメモリ）等のデジタルメモリとを備えてもよく、両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、画像捕捉デバイス（例えば、カメラ２０６および軸外カメラ２６０）、マイクロホン、慣性測定ユニット、加速度計、コンパス、ＧＰＳユニット、無線デバイス、および／またはジャイロスコープ等のセンサ（例えば、ＡＲデバイス２００に動作可能に結合される）から捕捉されたデータを含んでもよい。例えば、処理モジュール２５０は、カメラ２０６からの画像２２０、より具体的には、左正面に向いた世界カメラ２０６Ａからの左正面画像２２０Ａ、右正面に向いた世界カメラ２０６Ｂからの右正面画像２２０Ｂ、左側に向いた世界カメラ２０６Ｃからの左側画像２２０Ｃ、および右側に向いた世界カメラ２０６Ｄからの右側画像２２０Ｄを受信してもよい。いくつかの実施形態では、画像２２０（または軸外カメラ２６０から受信されるもの）は、単一画像、一対の画像、画像のストリームを含むビデオ、ペアリングされた画像のストリームを含むビデオ、および同等物を含んでもよい。画像２２０（または軸外カメラ２６０から受信されるもの）は、ＡＲデバイス２００の電源がオンの間、周期的に生成され、処理モジュール２５０に送信されてもよい、または処理モジュール２５０によってカメラのうちの１つ以上のものに送信される命令に応答して、生成されてもよい。
【００３３】
接眼レンズ２０２Ａおよび２０２Ｂは、それぞれ、プロジェクタ２１４Ａおよび２１４Ｂからの光を指向するように構成される、透明または半透明導波管を備えてもよい。具体的には、処理モジュール２５０は、左プロジェクタ２１４Ａに、左投影画像２２２Ａを左接眼レンズ２０２Ａに出力させ得、右プロジェクタ２１４Ｂに、右投影画像２２２Ｂを右接眼レンズ２０２Ｂに出力させ得る。いくつかの実施形態では、接眼レンズ２０２はそれぞれ、異なる色および／または異なる深度平面に対応する、複数の導波管を備えてもよい。
【００３４】
カメラ２０６Ａおよび２０６Ｂは、それぞれ、ユーザの左および右眼の視野と実質的に重複する、画像を捕捉するように位置付けられてもよい。故に、カメラ２０６Ａおよび２０６Ｂの設置場所は、ユーザの眼の近傍であってもよいが、ユーザの視野を不明瞭にするほど近傍ではない。代替として、または加えて、カメラ２０６Ａおよび２０６Ｂは、それぞれ、投影された画像２２２Ａおよび２２２Ｂの内部結合場所と整合するように位置付けられてもよい。カメラ２０６Ｃおよび２０６Ｄは、ユーザの側面、例えば、ユーザの周辺視覚内またはユーザの周辺視覚外の画像を捕捉するように位置付けられてもよい。カメラ２０６Ｃおよび２０６Ｄを使用して捕捉された画像２２０Ｃおよび２２０Ｄは、必ずしも、カメラ２０６Ａおよび２０６Ｂを使用して捕捉された画像２２０Ａおよび２２０Ｂと重複する必要はない。カメラ２６０Ａおよび２６０Ｂは、それぞれ、ユーザの左および右眼の画像を捕捉するように位置付けられてもよい。カメラ２６０によって捕捉された画像は、ユーザの眼をその全体として、またはユーザの眼の一部を示してもよい。
【００３５】
ＡＲデバイス２００の動作の間、処理モジュール２５０は、ニューラルネットワーク２５６を使用して、視線ベクトル２３８を推定してもよい。ニューラルネットワーク２５６は、人工ニューラルネットワーク、畳み込みニューラルネットワーク、または処理実施例によって徐々に「学習」し得る、任意のタイプのコンピューティングシステムであってもよい。例えば、ニューラルネットワーク２５６は、グラウンドトゥルース（ＧＴ）データを表す、手動で準備された訓練データを処理することによって、訓練されてもよい。訓練データのそれぞれを処理後、ニューラルネットワーク２５６は、ＧＴデータにより緊密に近似する、出力を生成することが可能である。いくつかの実施形態では、ニューラルネットワーク２５６は、信号を１つのノードから別のノードに伝送することが可能である、接続されたノードの集合を備える。ニューラルネットワーク２５６の訓練および使用は、下記にさらに説明される。
【００３６】
図５は、ニューラルネットワーク２５６の構成の概略図を図示する。軸外カメラ２６０によって捕捉された入力画像Ｉ（ｘ，ｙ，ｃ）が、ニューラルネットワーク２５６への入力として提供されてもよい。入力画像Ｉ（ｘ，ｙ，ｃ）は、Ｈ×Ｗ×Ｃの寸法を有してもよく、Ｈは、垂直方向におけるピクセルの数であって、Ｗは、水平方向におけるピクセルの数であって、Ｃは、画像のチャネルの数である（例えば、ＲＧＢ画像に関しては、３に等しく、グレースケール画像に関しては、１に等しい）。ニューラルネットワーク２５６は、入力画像Ｉ（ｘ，ｙ，ｃ）を処理してもよく、入力画像Ｉ（ｘ，ｙ，ｃ）に基づいて、ネットワーク出力データ２６４を生成してもよい。ＡＲデバイス２００が、ランタイムモードで動作しているとき、ネットワーク出力データ２６４は、較正角度κと併用され、視線ベクトル２３８を算出し得る。いくつかの実施形態では、後処理ブロック２６６が、１つ以上の演算を実施し、視線ベクトル２３８を算出してもよい。他の実施形態では、または同一実施形態では、較正角度κは、入力画像Ｉ（ｘ，ｙ，ｃ）とともに、ニューラルネットワーク２５６への入力として提供されてもよく、視線ベクトル２３８は、直接、ネットワーク出力データ２６４内に含まれてもよい、またはネットワーク出力データ２６４に基づいて算出されてもよい。
【００３７】
ＡＲデバイス２００が、訓練モードで動作しているとき、ネットワーク出力データ２６４は、ＧＴデータ２６８と比較されてもよい。誤差データ２７０が、比較に基づいて算出されてもよく、いくつかの実施形態では、誤差データ２７０の大きさが、ネットワーク出力データ２６４とＧＴデータ２６８との間の差異に比例し得るように、ネットワーク出力データ２６４とＧＴデータ２６８との間の差異を表してもよい。ニューラルネットワーク２５６は、誤差データ２７０に基づいて、修正されてもよい（例えば、修正器２７２を使用して）。いくつかの実施形態では、ニューラルネットワーク２５６への修正の大きさは、ネットワーク出力データ２６４とＧＴデータ２６８との間のより大きい差異が、ニューラルネットワーク２５６へのより大きい修正に対応し得るように、誤差データ２７０の大きさに比例し得る。
【００３８】
図６は、ニューラルネットワーク２５６の種々の入力および出力の概略図を図示する。ネットワーク出力データ２６４は、図６に示されるデータのタイプのうちの１つ以上のものを含んでもよい。ＡＲデバイスが、訓練モードで動作するかまたはランタイムモードで動作するかに基づいて、データのタイプのうちの１つ以上のものは、後続処理において利用されなくてもよい。代替として、ＡＲデバイス２００が、訓練モードで動作するかまたはランタイムモードで動作するかに基づいて、データのタイプのうちの１つ以上のものは、ニューラルネットワーク２５６によって生成されず、処理電力を保存してもよい。
【００３９】
いくつかの実施形態では、ネットワーク出力データ２６４は、２Ｄ瞳孔中心データ２７４を含んでもよい。いくつかの実施形態では、２Ｄ瞳孔中心データ２７４は、２Ｄ値として表される２Ｄ瞳孔中心を含んでもよい。例えば、２Ｄ瞳孔中心は、瞳孔の中心（例えば、瞳孔中心３０８）の算出された場所に対応する、入力画像Ｉ（ｘ，ｙ，ｃ）のフレーム内のＸおよびＹ値を含んでもよい。代替として、または加えて、２Ｄ瞳孔中心データ２７４は、０または１のバイナリ値（１の値は、瞳孔の中心の算出された場所に対応する）を備える、Ｈ×Ｗの寸法を有する、行列を含んでもよい。
【００４０】
いくつかの実施形態では、ネットワーク出力データ２６４は、眼セグメント化データ２７６を含んでもよい。眼セグメント化データ２７６は、複数の領域への眼のセグメント化を含んでもよい。１つの特定の実装では、領域は、背景領域、強膜領域、瞳孔領域、および虹彩領域を含んでもよい。別の特定の実装では、領域は、瞳孔領域および非瞳孔領域を含んでもよい。別の特定の実装では、領域は、瞳孔領域、眼領域（瞳孔領域の一部ではない眼の部分を含む）、および背景領域を含んでもよい。いくつかの実施形態では、眼セグメント化データ２７６は、０、１、２、および３（例えば、それぞれ、背景領域、強膜領域、瞳孔領域、および虹彩領域に対応する）等の値の有限セットを備える、Ｈ×Ｗの寸法を有する、行列を含んでもよい。いくつかの実施形態では、眼セグメント化データ２７６は、背景、強膜、瞳孔、および虹彩を含む、クラスのセットへの、入力画像Ｉ（ｘ，ｙ，ｃ）の全ピクセルの割当を含み、これは、いくつかの実施形態では、（デコーダ）ニューラルネットワーク２５６の最後の層を求め、それを逆畳み込みを使用して入力画像Ｉ（ｘ，ｙ，ｃ）と同一分解能にアップサンプリングすることによって取得され得、これは、ひいては、各特徴チャネルがあるクラスに属するピクセルの確率を表す、特徴チャネルを横断して、ソフトマックスクロスエントロピ損失の中にフィードされる。
【００４１】
いくつかの実施形態では、ネットワーク出力データ２６４は、閃光検出データ２７８を含んでもよい。いくつかの実施形態では、閃光検出データ２７８は、２Ｄまたは３Ｄ値として表される１つ以上の閃光場所を含む。例えば、単一閃光場所のみが、検出される場合、閃光検出データ２７８は、単一２Ｄ値を含んでもよい、または４つの閃光場所が、検出される場合、閃光検出データ２７８は、４つの２Ｄ値を含んでもよい。いくつかの実施形態では、閃光検出データ２７８は、検出された閃光の算出された場所に対応する入力画像Ｉ（ｘ，ｙ，ｃ）のフレーム内のＸおよびＹ値を含んでもよい。代替として、または加えて、閃光検出データ２７８は、０または１のバイナリ値（１の値は、検出された閃光の場所に対応する）を備える、Ｈ×Ｗの寸法を有する、行列を含んでもよい。
【００４２】
いくつかの実施形態では、ネットワーク出力データ２６４は、角膜中心データ２８０を含んでもよい。いくつかの実施形態では、角膜中心データ２８０は、２Ｄ値として表される２Ｄ角膜中心または３Ｄ値として表される３Ｄ角膜中心を含んでもよい。例えば、２Ｄ角膜中心は、角膜の中心（例えば、角膜中心３０６）の算出された場所に対応する入力画像Ｉ（ｘ，ｙ，ｃ）のフレーム内のＸおよびＹ値を含んでもよい。代替として、または加えて、角膜中心データ２８０は、０または１のバイナリ値（１の値は、角膜の中心の算出された場所に対応する）を備える、Ｈ×Ｗの寸法を有する、行列を含んでもよい。
【００４３】
いくつかの実施形態では、ネットワーク出力データ２６４は、閃光および瞳孔インジケータ２８２を含んでもよい。いくつかの実施形態では、閃光および瞳孔インジケータ２８２は、０または１のバイナリ値（１の値は、閃光または瞳孔中心の検出成功に対応し、０の値は、検出不成功に対応する）を備える。代替実施形態では、１の値は、閃光または瞳孔中心のオクルージョンに対応してもよい。１つの特定の実装では、閃光および瞳孔インジケータ２８２は、５つのバイナリ値を備えてもよく、最初の４つのバイナリ値は、４つの閃光に対応し、最後のバイナリ値は、瞳孔中心に対応する。いくつかの実施形態では、閃光および瞳孔インジケータ２８２は、代替として、２Ｄ瞳孔中心データ２７４および閃光検出データ２７８に基づいて生成されてもよい。いくつかの実施形態では、閃光および瞳孔インジケータ２８２は、エンコーダの最後の層を（全ての特徴が、共通ブロック内で共有される）求め、２つの全結合層を再成形および追加し、４つの閃光および１つの瞳孔中心のうちのいくつかが欠測しているかどうかのバイナリ分類として、５×２確率を生産することによって取得されてもよい。
【００４４】
図７および８は、それぞれ、訓練モードおよびランタイムモードで動作する、ＡＲデバイス２００の概略図を図示する。ＡＲデバイス２００が、訓練モードで動作しているとき、ネットワーク出力データ２６４は、眼セグメント化データ２７６、閃光検出データ２７８、および角膜中心データ２８０を含む。これらのネットワーク出力を生成するために使用される特定の入力画像Ｉ（ｘ，ｙ，ｃ）はまた、ニューラルネットワーク２５６によるネットワーク出力データ２６４の生成に先立って、それに続いて、またはそれと並行して、ＧＴデータ２６８を準備し得る、１人以上の個人によって手動で検査されてもよい。例えば、個人は、パーソナルコンピュータまたはスマートフォン等の電子デバイス上の入力画像Ｉ（ｘ，ｙ，ｃ）の表示されるバージョンを検査してもよい。電子デバイス上のプログラムまたはアプリケーションは、個人に、入力画像Ｉ（ｘ，ｙ，ｃ）に関連する質問のセットを尋ねてもよく、個人は、マウス、キーボード、タッチ画面等の入力デバイスを使用して、その応答を入力してもよい。
【００４５】
入力画像Ｉ（ｘ，ｙ，ｃ）を観察および検査する際、個人は、入力デバイスを使用して、瞳孔の輪郭を識別することによって、２Ｄ瞳孔中心ＧＴデータ２８３を準備してもよい。これは、個人が、楕円形境界を瞳孔にわたって設置し、設置された楕円形境界に基づいて、瞳孔中心を自動的に計算させるステップを含んでもよい。２Ｄ瞳孔中心ＧＴデータ２８３は、２Ｄ瞳孔中心データ２７４と同一フォーマットおよび寸法（例えば、ＸおよびＹ値）を有するように準備されてもよい。加えて、入力画像Ｉ（ｘ，ｙ，ｃ）を観察および検査する際、個人は、画像の第１の領域が背景領域として、第２の領域が強膜領域として、第３の領域が瞳孔領域として、および第４の領域が虹彩領域として割り当てられるべきであることを決定することによって、眼セグメント化ＧＴデータ２８４を準備してもよい。眼セグメント化ＧＴデータ２８４は、眼セグメント化データ２７６と同一フォーマットおよび寸法（例えば、異なる領域に対応する０、１、２、および３等の値の有限セットを備える、Ｈ×Ｗの寸法を有する、行列）を有するように準備されてもよい。
【００４６】
加えて、入力画像Ｉ（ｘ，ｙ，ｃ）を観察および検査する際、個人は、入力画像Ｉ（ｘ，ｙ，ｃ）内に存在する閃光場所の数およびそれぞれの場所を決定することによって、閃光検出ＧＴデータ２８６を準備してもよい。閃光検出ＧＴデータ２８６は、閃光検出データ２７８と同一フォーマットおよび寸法（例えば、２Ｄ値のセット）を有するように準備されてもよい、またはある数の閃光場所が、検出された場合（例えば、４つ）、閃光検出ＧＴデータ２８６は、その２Ｄ値の数を含んでもよい。いくつかの実施形態では、閃光検出ＧＴデータ２８６は、検出された閃光の算出された場所に対応する入力画像Ｉ（ｘ，ｙ，ｃ）のフレーム内にＸおよびＹ値を含んでもよい。代替として、または加えて、閃光検出ＧＴデータ２８６は、０または１のバイナリ値（１の値は、検出された閃光の場所に対応する）を備える、Ｈ×Ｗの寸法を有する、行列を含んでもよい。
【００４７】
１つの特定の実装では、ＧＴデータ２６８は、個人または個人のグループを、例えば、３メートルにおける近くの深度と、例えば、６メートルにおけるより遠い平面との、２つの明確に異なる深度における点の３×３グリッドに対面させることによって取得されてもよい。所与のキューに応じて、個人は、その視線をこれらの１８個の３Ｄ点のうちの１つに合焦させるように求められ、これは、視線ベクトル２３８に関するＧＴデータ２６８がフレーム毎に収集されたことを可能にする（後に全体的正確度を決定するために）。個人の眼の捕捉された画像（個人によって装着されるＡＲデバイスのカメラを使用して）は、分析され、ＧＴデータ２６８が、眼セグメント化および閃光場所情報を含むことを可能にし得る。３０または６０Ｈｚ記録におけるフレーム毎にセグメント化、閃光、および瞳孔中心に注釈を付ける際、収穫逓減が存在するため、ある数（例えば、２００）の左または右眼画像フレームが、個人毎に、均一にサンプリングされ、セグメント化、閃光存在または不在、閃光２Ｄおよび瞳孔２Ｄ位置に手動で注釈を付けてもよい。１つの特定の実験工程では、８７，０００毎の注釈が付けられた画像が、ニューラルネットワーク２５６を訓練し、その性能を検証するためにデータセット内で使用された。
【００４８】
いくつかの実施形態では、誤差データ２７０は、２Ｄ瞳孔中心データ２７４と２Ｄ瞳孔中心ＧＴデータとの間の差異に基づいて算出された、第１の誤差データ２７０Ａ、眼セグメント化データ２７６と眼セグメント化ＧＴデータ２８４との間の差異に基づいて算出された、第２の誤差データ２７０Ｂ、閃光検出データ２７８と閃光検出ＧＴデータ２８６との間の差異に基づく、第３の誤差データ２７０Ｃ、および幾何学的制約エンジン２８８によって生成された、第４の誤差データ２７０Ｃを含んでもよい。幾何学的制約エンジン２８８への入力は、角膜中心データ２８０、閃光検出データ２７８、エミッタ場所データ２９０、およびカメラ固有のパラメータ２９１のうちの１つ以上のものを含む。エミッタ場所データ２９０は、エミッタ２６２の固定場所および／またはエミッタ２６２の放出方向を含んでもよい。エミッタ場所データ２９０は、ＡＲデバイス２００の製造の際および／または較正位相の間に決定されてもよい。カメラ固有のパラメータ２９１は、他の可能性の中でもとりわけ、軸外カメラ２６０の光学中心および／または焦点長を含んでもよい。カメラ固有のパラメータ２９１は、軸外カメラ２６０の製造の際および／または較正位相の間に決定されてもよい。
【００４９】
幾何学的制約エンジン２８８は、生成されたデータ（閃光検出データ２７８および角膜中心データ２８０）と較正されたデータ（エミッタ場所データ２９０）との間の異なる一貫性を評価するために、種々の演算を実施してもよく、幾何学的制約エンジン２８８の出力である、第４の誤差データ２７０Ｄは、尤度または一貫性パラメータに反比例し得る。いくつかのインスタンスでは、角膜球面３０４は、閃光検出データ２７８およびエミッタ場所データ２９０を使用して再構成され、第４の誤差データ２７０Ｄは、再構成された球体の中心と角膜中心データ２８０によって示されるような角膜中心との間の計算された距離に設定される。
【００５０】
いくつかの実施形態では、ニューラルネットワーク２５６の訓練は、異なる訓練反復の間、ニューラルネットワーク２５６のある出力のみを使用して、順次訓練することによって改良される。第１の訓練ステップでは、眼セグメント化データ２７６のみが、ニューラルネットワーク２５６を訓練するために使用される。これは、第２の誤差データ２７０Ｂのみを使用して、ニューラルネットワーク２５６を修正することによって遂行されてもよい。いったんニューラルネットワーク２５６が、眼セグメント化のために十分に訓練される（すなわち、十分に正確になる）と、第２の訓練ステップが、加えて、閃光検出データ２７８を使用して、ニューラルネットワーク２５６を訓練することによって実施される。これは、第２の誤差データ２７０Ｂおよび第３の誤差データ２７０Ｃのみを使用して、ニューラルネットワーク２５６を修正することによって遂行されてもよい。いったんニューラルネットワーク２５６が、眼セグメント化および閃光検出のために十分に訓練されると、第３の訓練ステップが、加えて、角膜中心データ２８０を使用して、ニューラルネットワーク２５６を訓練することによって実施される。これは、誤差データ２７０の全てを使用して、ニューラルネットワーク２５６を修正することによって遂行されてもよい。いくつかのインスタンスでは、同一訓練画像およびＧＴデータが、異なる訓練ステップの間に使用されてもよい。いくつかの実施形態では、ＡＲデバイス２００は、正確度閾値が満たされる、または最大反復閾値が満たされる（すなわち、使用される訓練画像の数が最大反復閾値を満たす）まで、訓練モードのままである。
【００５１】
ＡＲデバイス２００が、ランタイムモードで動作しているとき、ネットワーク出力データ２６４は、２Ｄ瞳孔中心データ２７４、眼セグメント化データ２７６、および角膜中心データ２８０を含む。これらの出力は、較正角度κと併用され、後処理ブロック２６６を使用して、視線ベクトル２３８を算出し得る。いくつかの実施形態では、後処理ブロック２６６は、第１の後処理ブロック２６６Ａ、第２の後処理ブロック２６６Ｂ、および第３の後処理ブロック２６６Ｃに分離されてもよい。第１の後処理ブロック２６６Ａは、２Ｄ瞳孔中心データ２７４および眼セグメント化データ２７６を入力として受信し、３Ｄ瞳孔中心２９２を算出する。第２の後処理ブロック２６６Ｂは、３Ｄ瞳孔中心２９２および角膜中心データ２８０を入力として受信し、光学軸３１０を算出する。第３の後処理ブロック２６６Ｃは、光学軸３１０および較正角度κを入力として受信し、視線ベクトル２３８を算出する。
【００５２】
図９は、複数の層２５７を備える、ニューラルネットワーク２５６の１つの可能性として考えられる構造を図示する。層２５７はそれぞれ、入力画像Ｉ（ｘ，ｙ，ｃ）上で実施される、１つ以上の演算を表し得る。いくつかの実施形態では、ニューラルネットワーク２５６は、特徴エンコーディングベースネットワークと、５つのタスク分岐とから成ってもよい。図示されるように、ニューラルネットワーク２５６のある出力は、より早い段階で、かつニューラルネットワーク２５６の他の出力より少ない演算が実施される状態において、取得され得る。例えば、閃光および瞳孔インジケータ２８２および角膜中心データ２８０は、他の出力より少ない算出を用いて取得され得、眼セグメント化データ２７６は、他の出力より多くの算出を用いて取得される。故に、眼セグメント化データ２７６を最初に使用してニューラルネットワーク２５６を訓練する利点は、眼セグメント化データ２７６の算出のためのみに使用される、いくつかの層が、他の出力からのフィードバックによって影響されずに微調整されることができることである。
【００５３】
図１０は、特徴をニューラルネットワーク２５６から求め、瞬目予測を生産する、再帰ニューラルネットワーク（ＲＮＮ）１０００を図示する。より具体的には、ＲＮＮ１０００は、いくつかの連続フレームに関する特徴（例えば、出力）をニューラルネットワーク２５６から求め（ニューラルネットワーク２５６は、フレーム毎に特徴を生産してもよい）、特徴の運動およびフローに基づいて、瞬目が次の１、２、および／または３フレームにおいて生じるであろうかどうか（確率）を予測する。いくつかの実施形態では、ＲＮＮ１０００は、入力画像Ｉ（ｘ，ｙ，ｃ）自体の代わりに、特徴をニューラルネットワーク２５６によって出力された連続フレームからのみ求める。ＲＮＮ１０００は、データの時系列またはシーケンス（運動、追跡等）を予測する利点を有する。ＲＮＮ１０００は、プロセスシーケンス入力データを処理するために、それ自体にフィードバックし、サイクルを形成する、畳み込みニューラルネットワーク（ＣＮＮ）と異なり、出力を伴う、内部メモリ状態を有してもよい。このように、ＲＮＮ１０００は、シーケンスとして生じたイベントの履歴を「記憶」し、したがって、次の転帰をより良好に予測し得る。示される特定の実装では、Ｘｔ−１、Ｘｔ、およびＸｔ＋１は、ニューラルネットワーク２５６からの連続フレームに関する特徴に対応し、Ｏｔ−１、Ｏｔ、およびＯｔ＋１は、次のフレームにおいて瞬目イベントが存在するかどうかの確率である。ＲＮＮ１０００は、ニューラルネットワーク２５６によって生産された高レベル特徴を利用するため、ＡＲデバイス２００の性能を改良するために含まれ得る、付加的後処理ステップと見なされ得る。
【００５４】
図１１は、ニューラルネットワークを使用して視線ベクトルを推定する方法１１００を図示する。方法１１００のステップは、示される順序で実施される必要はなく、方法１１００の１つ以上のステップは、方法１１００の実施の間、省略されてもよい。いくつかの実施形態では、方法１１００の１つ以上のステップは、処理モジュール２５０またはＡＲデバイス２００のある他のコンポーネントによって実施されてもよい。
【００５５】
ステップ１１０２では、ユーザの眼の入力画像（例えば、入力画像Ｉ（ｘ，ｙ，ｃ））が、受信される。いくつかの実施形態では、入力画像は、カメラ（例えば、軸外カメラ２６０）から受信される。カメラは、光学デバイスに搭載されてもよく、および／または光学デバイスのコンポーネントであってもよい。いくつかの実施形態では、方法１１００は、カメラを使用して、ユーザの眼の入力画像を捕捉するステップを含む。いくつかの実施形態では、方法１１００は、カメラからの入力画像を処理モジュール（例えば、処理モジュール２５０）に送信するステップを含む。
【００５６】
ステップ１１０４では、眼の入力画像が、ニューラルネットワーク（例えば、ニューラルネットワーク２５６）に提供される。いくつかの実施形態では、入力画像は、ニューラルネットワークを実装する、プロセッサに提供される。プロセッサは、ニューラルネットワークによって一般に実施されるある演算（例えば、畳み込み、行列乗算）が汎用プロセッサを用いた場合より高速で実施されることを可能にする、アーキテクチャを有する、特殊目的プロセッサ（例えば、ニューラルネットワークプロセッサ）であってもよい。例えば、特殊目的プロセッサは、並行して、または同時に、種々の算術演算を入力画像の異なるピクセル上で実施するための複数の処理要素を有する、シストリックアレイを含んでもよい。
【００５７】
ステップ１１０６では、ネットワーク出力データ（例えば、ネットワーク出力データ２６４）が、ニューラルネットワークを使用して生成される。ネットワーク出力データは、ニューラルネットワークの全体的出力およびニューラルネットワークの中間層の出力に対応するデータを含んでもよい。例えば、ネットワーク出力データは、ニューラルネットワークの全体的出力から導出される、あるデータ（例えば、眼セグメント化データ２７６）と、ニューラルネットワークの中間層の出力から導出される、あるデータ（例えば、閃光および瞳孔インジケータ２８２および角膜中心データ２８０）とを含んでもよい。加えて、または代替として、ネットワーク出力データは、ニューラルネットワークの異なる中間層およびニューラルネットワークの全体的出力の処理に関わらない１つ以上の付加的層の出力から導出される、あるデータ（例えば、閃光検出データ２７８および２Ｄ瞳孔中心データ２７４）を含んでもよい。
【００５８】
ステップ１１０８では、３Ｄ瞳孔中心（例えば、３Ｄ瞳孔中心２９２）が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、３Ｄ瞳孔中心は、２Ｄ瞳孔データおよび眼セグメント化データに基づいて算出される。
【００５９】
ステップ１１１０では、ユーザの眼と関連付けられる光学軸（例えば、光学軸３１０）が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、光学軸は、３Ｄ瞳孔中心およびネットワーク出力データのあるデータ（例えば、角膜中心データ２８０）に基づいて算出される。
【００６０】
ステップ１１１２では、眼に対応する視線ベクトル（例えば、視線ベクトル２３８）が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、視線ベクトルは、ネットワーク出力データ（例えば、２Ｄ瞳孔中心データ２７４、眼セグメント化データ２７６、および角膜中心データ２８０）のあるコンポーネントのみを使用して算出される一方、ネットワーク出力データの他のコンポーネント（例えば、閃光検出データ２７８）は、算出において使用されない。いくつかの実施形態では、視線ベクトルを算出するステップは、１つ以上の後処理ステップを含んでもよい。例えば、３Ｄ瞳孔中心（例えば、３Ｄ瞳孔中心２９２）が、最初に、ネットワーク出力データの１つ以上のコンポーネント（例えば、２Ｄ瞳孔中心データ２７４および眼セグメント化データ２７６）に基づいて算出され得る。第２に、光学軸（例えば、光学軸３１０）が、３Ｄ瞳孔中心およびネットワーク出力データの付加的コンポーネント（例えば、角膜中心データ２８０）に基づいて算出され得る。次に、視線ベクトルが、光学軸およびユーザに対応する較正角度に基づいて算出され得る。
【００６１】
図１２は、ニューラルネットワークを訓練する方法１２００を図示する。方法１２００のステップは、示される順序で実施される必要はなく、方法１２００の１つ以上のステップは、方法１２００の実施の間、省略されてもよい。いくつかの実施形態では、方法１２００の１つ以上のステップは、処理モジュール２５０またはＡＲデバイス２００のある他のコンポーネントによって実施されてもよい。
【００６２】
ステップ１２０２では、複数の訓練入力画像（例えば、入力画像Ｉ（ｘ，ｙ，ｃ））が、受信される。複数の訓練入力画像は、カメラ（例えば、軸外カメラ２６０）から受信されてもよい、または訓練の目的のために、人工的に生成される、または読み出されてもよい。複数の訓練画像はそれぞれ、眼の画像であってもよい。ステップ１２０２は、ステップ１１０２に類似してもよい。
【００６３】
ステップ１２０４−１２１２は、複数の訓練入力画像の訓練入力画像毎に実施されてもよい。ステップ１２０４では、訓練入力画像は、ニューラルネットワーク（例えば、ニューラルネットワーク２５６）に提供される。ステップ１２０４は、ステップ１１０４に類似してもよい。
【００６４】
ステップ１２０６では、訓練ネットワーク出力データ（例えば、ネットワーク出力データ２６４）は、ニューラルネットワークを使用して生成される。ステップ１２０６は、ステップ１１０６に類似してもよい。
【００６５】
ステップ１２０８では、ＧＴデータ（例えば、ＧＴデータ２６８）が、ユーザ入力デバイスから受信される。ＧＴデータは、訓練ネットワーク出力データの１つ以上のコンポーネントに対応する、１つ以上のコンポーネント（例えば、２Ｄ瞳孔中心ＧＴデータ２８３、眼セグメント化ＧＴデータ２８４、閃光検出ＧＴデータ２８６）を含んでもよい。
【００６６】
ステップ１２１０では、誤差データ（例えば、誤差データ２７０）が、訓練ネットワーク出力データとＧＴデータとの間の差異に基づいて算出される。誤差データは、ＧＴデータおよび／または訓練ネットワーク出力データの１つ以上のコンポーネントに対応する、１つ以上のコンポーネント（例えば、第１の誤差データ２７０Ａ、第２の誤差データ２７０Ｂ、第３の誤差データ２７０Ｃ、第４の誤差データ２７０Ｄ）を含んでもよい。
【００６７】
ステップ１２１２では、ニューラルネットワークは、誤差データに基づいて修正される。いくつかの実施形態では、ニューラルネットワークへの修正の大きさは、訓練ネットワーク出力データとＧＴデータとの間のより大きい差異が、ニューラルネットワークへのより大きい修正に対応し得るように、誤差データの大きさに比例する。いくつかの実施形態では、ニューラルネットワークは、ニューラルネットワークの加重への１つ以上の加重更新を計算する、逆伝搬アルゴリズムを使用して訓練されてもよい。
【００６８】
図１３は、本明細書に説明される実施形態による、簡略化されたコンピュータシステム１３００を図示する。図１３に図示されるようなコンピュータシステム１３００は、本明細書に説明されるようなＡＲデバイス２００等のデバイスの中に組み込まれてもよい。図１３は、種々の実施形態によって提供される方法のステップの一部または全部を実施し得る、コンピュータシステム１３００の一実施形態の概略化された例証を提供する。図１３は、種々のコンポーネントの一般化された例証を提供するためだけに意図され、そのいずれかまたは全てが、必要に応じて利用されてもよいことに留意されたい。図１３は、したがって、広義には、個々のシステム要素が比較的に分離された様式または比較的により統合された様式において実装され得る状況を図示する。
【００６９】
コンピュータシステム１３００は、バス１３０５を介して電気的に結合されることができる、または必要に応じて別様に通信し得る、ハードウェア要素を備えるように示される。ハードウェア要素は、限定ではないが、デジタル信号処理チップ、グラフィック加速プロセッサ、および／または同等物等の、１つ以上の汎用プロセッサおよび／または１つ以上の特殊目的プロセッサを含む、１つ以上のプロセッサ１３１０と、限定ではないが、マウス、キーボード、カメラ、および／または同等物を含むことができる、１つ以上の入力デバイス１３１５と、限定ではないが、ディスプレイデバイス、プリンタ、および／または同等物を含むことができる、１つ以上の出力デバイス１３２０とを含んでもよい。
【００７０】
コンピュータシステム１３００はさらに、限定ではないが、ローカルおよび／またはネットワークアクセス可能記憶装置を備えることができ、および／または、限定ではないが、プログラム可能である、フラッシュ更新可能である、および／または同等物であることができる、ディスクドライブ、ドライブアレイ、光学記憶デバイス、ランダムアクセスメモリ（「ＲＡＭ」）等のソリッドステート記憶デバイス、および／または読取専用メモリ（「ＲＯＭ」）を含むことができる、１つ以上の非一過性記憶デバイス１３２５を含む、および／またはそれと通信してもよい。そのような記憶デバイスは、限定ではないが、種々のファイルシステム、データベース構造、および／または同等物を含む、任意の適切なデータ記憶を実装するように構成されてもよい。
【００７１】
コンピュータシステム１３００はまた、限定ではないが、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、８０２．１１デバイス、ＷｉＦｉデバイス、ＷｉＭａｘデバイス、セルラー通信設備等、および／または同等物等のモデム、ネットワークカード（無線または有線）、赤外線通信デバイス、無線通信デバイス、および／またはチップセットを含むことができる、通信サブシステム１３３０を含み得る。通信サブシステム１３３０は、１つ以上の入力および／または出力通信インターフェースを含み、データが、一実施例として挙げるために以下に説明されるネットワーク、他のコンピュータシステム、テレビ、および／または本明細書に説明される任意の他のデバイス等のネットワークと交換されることを可能にしてもよい。所望の機能性および／または他の実装懸念に応じて、ポータブル電子デバイスまたは類似デバイスは、通信サブシステム１３３０を介して、画像および／または他の情報を通信してもよい。他の実施形態では、ポータブル電子デバイス、例えば、第１の電子デバイスは、コンピュータシステム１３００、例えば、電子デバイスの中に入力デバイス１３１５として組み込まれてもよい。いくつかの実施形態では、コンピュータシステム１３００はさらに、作業メモリ１３３５を備え、これは、上記に説明されるようなＲＡＭまたはＲＯＭデバイスを含むであろう。
【００７２】
コンピュータシステム１３００はまた、種々の実施形態によって提供されるコンピュータプログラムを備え得る、および／または本明細書に説明されるような他の実施形態によって提供される方法を実装し、および／またはシステムを構成するように設計され得る、１つ以上のアプリケーションプログラム１３４５等のオペレーティングシステム１３４０、デバイスドライバ、実行可能ライブラリ、および／または他のコードを含む、作業メモリ１３３５内に現在位置するものとして示される、ソフトウェア要素を含むことができる。単に、一例として、上記に議論される方法に関して説明される１つ以上のプロシージャは、コンピュータまたはコンピュータ内のプロセッサによって実行可能なコードおよび／または命令として実装され得、ある側面では、次いで、そのようなコードおよび／または命令は、説明される方法に従って１つ以上の動作を実施するように汎用コンピュータまたは他のデバイスを構成および／または適合するために使用されることができる。
【００７３】
これらの命令および／またはコードのセットは、上記に説明される記憶デバイス１３２５等の非一過性コンピュータ可読記憶媒体上に記憶されてもよい。ある場合には、記憶媒体は、コンピュータシステム１３００等のコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムと別個である、例えば、コンパクトディスク等の可撤性媒体である、および／または記憶媒体が、汎用コンピュータをその上に記憶される命令／コードを用いてプログラム、構成、および／または適合するために使用され得るように、インストールパッケージ内に提供され得る。これらの命令は、コンピュータシステム１３００によって実行可能である、実行可能コードの形態をとり得る、および／または、例えば、種々の概して利用可能なコンパイラ、インストールプログラム、圧縮／解凍ユーティリティ等のいずれかを使用したコンピュータシステム１３００上へのコンパイルおよび／またはインストールに応じて、次いで、実行可能コードの形態をとる、ソースおよび／またはインストール可能コードの形態をとり得る。
【００７４】
実質的な変形例が、具体的要件に従って構成されてもよいことが、当業者に明白となるであろう。例えば、カスタマイズされたハードウェアもまた、使用され得る、および／または特定の要素が、ハードウェア、アプレット等のポータブルソフトウェアを含む、ソフトウェア、または両方内に実装され得る。さらに、ネットワーク入力／出力デバイス等の他のコンピューティングデバイスへの接続も、採用されてもよい。
【００７５】
上記に述べられたように、一側面では、いくつかの実施形態は、コンピュータシステム１３００等のコンピュータシステムを採用し、本技術の種々の実施形態による方法を実施してもよい。一式の実施形態によると、そのような方法のプロシージャの一部または全部は、プロセッサ１３１０が、オペレーティングシステム１３４０の中に組み込まれ得る、１つ以上の命令の１つ以上のシーケンス、および／または作業メモリ１３３５内に含有される、アプリケーションプログラム１３４５等の他のコードを実行することに応答して、コンピュータシステム１３００によって実施される。そのような命令は、記憶デバイス１３２５のうちの１つ以上のもの等の別のコンピュータ可読媒体から作業メモリ１３３５の中に読み取られてもよい。単に、一例として、作業メモリ１３３５内に含有される命令のシーケンスの実行は、プロセッサ１３１０に、本明細書に説明される方法の１つ以上のプロシージャを実施させ得る。加えて、または代替として、本明細書に説明される方法の一部は、特殊ハードウェアを通して実行されてもよい。
【００７６】
用語「機械可読媒体」および「コンピュータ可読媒体」は、本明細書で使用されるとき、機械を具体的方式で動作させるデータを提供することに関わる、任意の媒体を指す。コンピュータシステム１３００を使用して実装される、ある実施形態では、種々のコンピュータ可読媒体は、実行のための命令／コードをプロセッサ１３１０に提供する際に関わり得る、および／またはそのような命令／コードを記憶および／または搬送するために使用され得る。多くの実装では、コンピュータ可読媒体は、物理的および／または有形記憶媒体である。そのような媒体は、不揮発性媒体または揮発性媒体の形態をとってもよい。不揮発性媒体は、例えば、記憶デバイス１３２５等の光学および／または磁気ディスクを含む。揮発性媒体は、限定ではないが、作業メモリ１３３５等の動的メモリを含む。
【００７７】
一般的形態の物理的および／または有形コンピュータ可読媒体は、例えば、フロッピー（登録商標）ディスク、可撓性ディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ（登録商標）−ＥＰＲＯＭ、任意の他のメモリチップまたはカートリッジ、またはコンピュータが命令および／またはコードを読み取ることができる、任意の他の媒体を含む。
【００７８】
種々の形態のコンピュータ可読媒体が、実行のための１つ以上の命令の１つ以上のシーケンスをプロセッサ１３１０に搬送する際に関わってもよい。単に、一例として、命令は、最初に、遠隔コンピュータの磁気ディスクおよび／または光学ディスク上で搬送されてもよい。遠隔コンピュータは、命令をその動的メモリの中にロードし、コンピュータシステム１３００によって受信および／または実行される伝送媒体を経由して、命令を信号として送信し得る。
【００７９】
通信サブシステム１３３０および／またはそのコンポーネントは、概して、信号を受信し、バス１３０５が、次いで、信号および／または信号によって搬送されるデータ、命令等を作業メモリ１３３５に搬送し得、そこから、プロセッサ１３１０が、命令を読み出し、実行する。作業メモリ１３３５によって受信された命令は、随意に、プロセッサ１３１０による実行前または後のいずれかにおいて、非一過性記憶デバイス１３２５上に記憶されてもよい。
【００８０】
上記に議論される方法、システム、およびデバイスは、実施例である。種々の構成は、必要に応じて、種々のプロシージャまたはコンポーネントを省略、代用、または追加してもよい。例えば、代替構成では、本方法は、説明されるものと異なる順序で実施されてもよく、および／または種々の段階は、追加される、省略される、および／または組み合わせられてもよい。また、ある構成に関して説明される特徴は、種々の他の構成において組み合わせられてもよい。構成の異なる側面および要素は、類似様式で組み合わせられてもよい。また、技術は、進歩するものであって、したがって、要素の多くは、実施例であって、本開示の範囲または請求項を限定するものではない。
【００８１】
具体的詳細が、実装を含む、例示的構成の完全な理解を提供するために説明に与えられる。しかしながら、構成は、これらの具体的詳細を伴わずに実践されてもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、および技法は、構成を曖昧にすることを回避するために、不必要な詳細を伴わずに示されている。本説明は、例示的構成のみを提供し、請求項の範囲、可用性、または構成を限定するものではない。むしろ、構成の前述の説明は、当業者に説明される技法を実装するための有効な説明を提供するであろう。種々の変更が、本開示の精神または範囲から逸脱することなく、要素の機能および配列に行われてもよい。
【００８２】
また、構成は、概略フローチャートまたはブロック図として描写される、プロセスとして説明され得る。それぞれ、シーケンシャルプロセスとして動作を説明し得るが、動作の多くは、並行して、または同時に実施されることができる。加えて、動作の順序は、再配列されてもよい。プロセスは、図内に含まれない付加的ステップを有してもよい。さらに、本方法の実施例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または任意のそれらの組み合わせによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコード内に実装されるとき、必要タスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体等の非一過性コンピュータ可読媒体内に記憶されてもよい。プロセッサは、説明されるタスクを実施してもよい。
【００８３】
いくつかの例示的構成が説明されたが、種々の修正、代替構造、および均等物が、本開示の精神から逸脱することなく、使用されてもよい。例えば、前述の要素は、より大きいシステムのコンポーネントであってもよく、他のルールが、本技術の用途に優先する、または別様にそれを修正してもよい。また、いくつかのステップは、前述の要素が検討される前、間、または後に行われてもよい。故に、前述の説明は、請求項の範囲を束縛するものではない。
【００８４】
本明細書および添付の請求項で使用されるように、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈によって明確に別様に示されない限り、複数参照を含む。したがって、例えば、「ユーザ」の言及は、複数のそのようなユーザを含み、「プロセッサ」の言及は、１つ以上のプロセッサおよび当業者に公知のその均等物等の言及を含む。
【００８５】
また、単語「ｃｏｍｐｒｉｓｅ（〜を備える）」、「ｃｏｍｐｒｉｓｉｎｇ（〜を備える）」、「ｃｏｎｔａｉｎｓ（〜を含有する）」、「ｃｏｎｔａｉｎｉｎｇ（〜を含有する）」、「ｉｎｃｌｕｄｅ（〜を含む）」、「ｉｎｃｌｕｄｉｎｇ（〜を含む）」、および「ｉｎｃｌｕｄｅｓ（〜を含む）」は、本明細書および以下の請求項で使用されるとき、述べられた特徴、整数、コンポーネント、またはステップの存在を規定するために意図されるが、それらは、１つ以上の他の特徴、整数、コンポーネント、ステップ、行為、またはグループの存在または追加を除外するものではない。
【００８６】
また、本明細書に説明される実施例および実施形態は、例証目的のみのためのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限および添付の請求項の範囲内に含まれることを理解されたい。
【図１】
2021527888.tif 000003
【図２】
2021527888.tif 000004
【図３】
2021527888.tif 000005
【図４】
2021527888.tif 000006
【図５】
2021527888.tif 000007
【図６】
2021527888.tif 000008
【図７】
2021527888.tif 000009
【図８】
2021527888.tif 000010
【図９】
2021527888.tif 000011
【図１０】
2021527888.tif 000012
【図１１】
2021527888.tif 000013
【図１２】
2021527888.tif 000014
【図１３】
2021527888.tif 000015
【国際調査報告】
2021527888.tif 000016