IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マジック リープ, インコーポレイテッドの特許一覧

特開2024-74862軸外カメラを使用して眼追跡を実施するための方法およびシステム
<>
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図1
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図2
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図3
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図4
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図5
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図6
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図7
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図8
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図9
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図10
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図11
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図12
  • 特開-軸外カメラを使用して眼追跡を実施するための方法およびシステム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024074862
(43)【公開日】2024-05-31
(54)【発明の名称】軸外カメラを使用して眼追跡を実施するための方法およびシステム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240524BHJP
   G06T 7/70 20170101ALI20240524BHJP
   G06V 10/82 20220101ALI20240524BHJP
【FI】
G06T7/00 660A
G06T7/70 B
G06T7/00 350C
G06V10/82
【審査請求】有
【請求項の数】1
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024056129
(22)【出願日】2024-03-29
(62)【分割の表示】P 2020570526の分割
【原出願日】2019-06-24
(31)【優先権主張番号】62/688,983
(32)【優先日】2018-06-22
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【弁理士】
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【弁理士】
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【弁理士】
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【弁理士】
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【弁護士】
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ヴィジャイ バドリナラヤナン
(72)【発明者】
【氏名】ウー ジェンヤン
(72)【発明者】
【氏名】スリヴィグネシュ ラジェンドラン
(72)【発明者】
【氏名】アンドリュー ラビノビッチ
(57)【要約】
【課題】訓練されたニューラルネットワークを使用して、眼の視線ベクトルを推定するためのシステムおよび方法の提供。
【解決手段】眼の入力画像が、カメラから受信され得る。入力画像は、ニューラルネットワークに提供され得る。ネットワーク出力データが、ニューラルネットワークを使用して生成され得る。ネットワーク出力データは、2次元(2D)瞳孔データ、眼セグメント化データ、および/または角膜中心データを含んでもよい。視線ベクトルは、ネットワーク出力データに基づいて算出され得る。ニューラルネットワークは、訓練入力画像をニューラルネットワークに提供し、訓練ネットワーク出力データを生成し、グラウンドトゥルース(GT)データを受信し、訓練ネットワーク出力データとGTデータとの間の差異に基づいて、誤差データを算出し、誤差データに基づいて、ニューラルネットワークを修正することによって、事前に訓練され得る。
【選択図】図8
【特許請求の範囲】
【請求項1】
本明細書に記載の発明。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その内容が、参照することによってその全体として本明細書に組み込まれる、2018年6月22日に出願され、「METHOD AND SYSTEM FOR PERFORMING EYE TRACKING USING AN OFF-AXIS
CAMERA」と題された、米国仮特許出願第62/688,983号の優先権の利益を主張する。
【背景技術】
【0002】
現代のコンピューティングおよびディスプレイ技術は、いわゆる「仮想現実」または「拡張現実」体験のためのシステムの開発を促進しており、デジタル的に再現された画像またはその一部は、現実であるように見える、またはそのように知覚され得る様式で、ユーザに提示される。仮想現実、すなわち、「VR」シナリオは、典型的には、他の実際の実世界の視覚的入力に対する透過性を伴わずに、デジタルまたは仮想画像情報の提示を伴う。拡張現実、すなわち、「AR」シナリオは、典型的には、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を伴う。
【0003】
これらのディスプレイ技術において成された進歩にもかかわらず、当技術分野において、拡張現実システム、特に、ディスプレイシステムに関連する、改良された方法、システム、およびデバイスの必要性が存在する。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、概して、眼追跡のためのシステムおよび方法に関する。より具体的には、本開示の実施形態は、頭部搭載型仮想現実(VR)、複合現実(MR)、および/または拡張現実(AR)デバイスにおける視線推定のために眼追跡を実施するためのシステムおよび方法を提供する。本発明の実施形態は、コンテンツのエネルギーおよび帯域幅効率的レンダリングの使用が、効果的かつユーザの必要性の妨げにならない様式において、多焦点ディスプレイを駆動することを可能にする。本発明は、ARデバイスを参照して説明されるが、本開示は、コンピュータビジョンおよび画像ディスプレイシステムにおける種々の用途に適用可能である。
【0005】
本発明の一側面では、ニューラルネットワークを使用して視線ベクトルを推定する方法が、提供される。本方法は、カメラから、眼の入力画像を受信するステップを含んでもよい。本方法はまた、眼の入力画像をニューラルネットワークに提供するステップを含んでもよい。本方法はさらに、ニューラルネットワークを使用して、ネットワーク出力データを生成するステップを含んでもよい。本方法はさらに、ネットワーク出力データに基づいて、眼に対応する視線ベクトルを算出するステップを含んでもよい。いくつかの実施形態では、ネットワーク出力データは、2次元(2D)瞳孔データ、眼セグメント化データ、および角膜中心データのうちの1つ以上のものを含む。いくつかの実施形態では、2D瞳孔データは、2D瞳孔中心を含む。いくつかの実施形態では、眼セグメント化データは、背景領域、強膜領域、瞳孔領域、および虹彩領域のうちの1つ以上のものを含む、複数の領域への眼のセグメント化を含む。いくつかの実施形態では、角膜中心データは、2Dまたは3D角膜中心を含む。
【0006】
いくつかの実施形態では、本方法はさらに、2D瞳孔データおよび眼セグメント化データに基づいて、3次元(3D)瞳孔中心を算出するステップを含む。いくつかの実施形態では、本方法はさらに、3D瞳孔中心および角膜中心データに基づいて、眼と関連付けられる光学軸を算出するステップを含む。いくつかの実施形態では、本方法はさらに、光学軸およびユーザに対応する較正角度に基づいて、眼と関連付けられる視線ベクトルを算出するステップを含む。いくつかの実施形態では、ニューラルネットワークは、複数の訓練入力画像の訓練入力画像毎に、訓練入力画像をニューラルネットワークに提供するステップと、ニューラルネットワークを使用して、訓練ネットワーク出力データを生成するステップと、グラウンドトゥルース(GT)データを受信するステップと、訓練ネットワーク出力データとGTデータとの間の差異に基づいて、誤差データを算出するステップと、誤差データに基づいて、ニューラルネットワークを修正するステップとによって事前に訓練されている。
【0007】
いくつかの実施形態では、訓練ネットワーク出力データは、訓練眼セグメント化データ、訓練閃光検出データ、および訓練角膜中心データのうちの1つ以上のものを含む。いくつかの実施形態では、GTデータは、2D瞳孔中心GTデータ、眼セグメント化GTデータ、および閃光検出GTデータのうちの1つ以上のものを含む。いくつかの実施形態では、眼セグメント化GTデータは、訓練背景領域、訓練強膜領域、訓練瞳孔領域、および訓練虹彩領域のうちの1つ以上のものを含む、複数の訓練領域への眼の手動で作成されたセグメント化を含む。いくつかの実施形態では、閃光検出GTデータは、閃光場所(glint location)の手動で作成された識別を含む。
【0008】
いくつかの実施形態では、誤差データは、訓練2D瞳孔中心データと2D瞳孔中心GTデータとの間の差異、訓練眼セグメント化データと眼セグメント化GTデータとの間の差異、訓練閃光検出データと閃光検出GTデータとの間の差異、および訓練角膜中心データおよび1つ以上の幾何学的制約に基づく誤差のうちの1つ以上のものを含む。いくつかの実施形態では、本方法はさらに、エミッタ場所データ、カメラ固有のパラメータ、閃光検出データ、および角膜中心データのうちの1つ以上のものに基づいて、1つ以上の幾何学的制約を算出するステップを含む。いくつかの実施形態では、エミッタ場所データは、複数のエミッタ場所を含む。いくつかの実施形態では、複数の訓練入力画像は、カメラによって捕捉されている。
【0009】
本発明の別の側面では、ARデバイス等の光学デバイスが、提供される。光学デバイスは、カメラと、ユーザの眼に向かって指向される、複数の赤外線(IR)発光ダイオード(LED)(デバイスが装着されるとき)と、カメラに通信可能に結合され、カメラから、眼の入力画像を受信するステップと、眼の入力画像をニューラルネットワークに提供するステップと、ニューラルネットワークを使用して、ネットワーク出力データを生成するステップと、ネットワーク出力データに基づいて、眼に対応する視線ベクトルを算出するステップとを含む、動作を実施するように構成される、プロセッサとを含んでもよい。プロセッサはさらに、上記の方法を参照して説明される動作のいずれかを実施するように構成されてもよい。
【0010】
従来の技法に優る多数の利点が、本開示の方法によって達成される。第1に、訓練されたネットワークを使用した推定値は、古典的眼追跡パイプラインと併せて良好に機能する。訓練されたネットワークを使用した推定値は、その全体的ロバスト性および正確度を改良するために、幾何学的眼追跡システムに取り込まれることができることが実証されている。第2に、本明細書に説明される多段階眼追跡モデルからの結果は、AR/VR/MRにおける他の不可欠である用途を駆動することができる。例えば、角膜予測は、中心窩化レンダリングのために使用されることができ、眼セグメント化は、アバタベースのソーシャルスイートアプリにおいて眼をレンダリングするために有用である。第3に、多数の対象に関する持続的視線標的GTデータを収集することは、不正確かつ困難の両方であり得るが、本明細書のデータ収集は、中間予測(瞳孔および角膜推定)の訓練を最終3D視線ベクトル推定パイプラインから分断することによって、有意により単純化される。第4に、エンドツーエンド深層ネットワークにおける誤差は、解釈することが困難であり得るが、訓練されたネットワークを使用して各段階において行われる中間推定は、解釈可能性に役立つ。本開示の他の利点は、当業者に容易に明白となるであろう。
本発明は、例えば、以下を提供する。
(項目1)
光学デバイスのユーザのための視線ベクトルを推定する方法であって、前記方法は、
前記光学デバイスに搭載されるカメラから前記ユーザの眼の入力画像を受信することと、
前記ユーザの眼の入力画像をニューラルネットワークに提供することであって、前記ニューラルネットワークは、複数の訓練入力画像を使用して事前に訓練されている、ことと、
前記ニューラルネットワークを使用して、ネットワーク出力データを生成することと、
前記ネットワーク出力データに基づいて、前記ユーザの眼に対応する視線ベクトルを算出することと
を含む、方法。
(項目2)
前記ネットワーク出力データは、
2次元(2D)瞳孔データ、
眼セグメント化データ、または
角膜中心データ
のうちの1つ以上のものを含む、項目1に記載の方法。
(項目3)
前記2D瞳孔データは、2D瞳孔中心を含む、項目2に記載の方法。
(項目4)
前記眼セグメント化データは、背景領域、強膜領域、瞳孔領域、または虹彩領域のうちの1つ以上のものを含む複数の領域への前記ユーザの眼のセグメント化を含む、項目2に記載の方法。
(項目5)
前記角膜中心データは、2Dまたは3D角膜中心を含む、項目2に記載の方法。
(項目6)
前記2D瞳孔データおよび前記眼セグメント化データに基づいて、3次元(3D)瞳孔中心を算出することをさらに含む、項目2に記載の方法。
(項目7)
前記3D瞳孔中心および前記角膜中心データに基づいて、前記ユーザの眼と関連付けられる光学軸を算出することをさらに含む、項目6に記載の方法。
(項目8)
光学軸と、ユーザに対応する較正角度とに基づいて、前記ユーザの眼と関連付けられる視線ベクトルを算出することをさらに含む、項目7に記載の方法。
(項目9)
前記ニューラルネットワークは、
前記複数の訓練入力画像の訓練入力画像毎に、
前記訓練入力画像を前記ニューラルネットワークに提供することと、
前記ニューラルネットワークを使用して、訓練ネットワーク出力データを生成することと、
グラウンドトゥルース(GT)データを受信することと、
前記訓練ネットワーク出力データと前記GTデータとの間の差異に基づいて、誤差データを算出することと、
前記誤差データに基づいて、前記ニューラルネットワークを修正することと
を行うことによって事前に訓練されている、項目1に記載の方法。
(項目10)
前記訓練ネットワーク出力データは、
訓練2D瞳孔中心データ、
訓練眼セグメント化データ、
訓練閃光検出データ、または
訓練角膜中心データ
のうちの1つ以上のものを含む、項目9に記載の方法。
(項目11)
前記GTデータは、
2D瞳孔中心GTデータ、
眼セグメント化GTデータ、または
閃光検出GTデータ
のうちの1つ以上のものを含む、項目10に記載の方法。
(項目12)
前記眼セグメント化GTデータは、訓練背景領域、訓練強膜領域、訓練瞳孔領域、および訓練虹彩領域のうちの1つ以上のものを含む複数の訓練領域への手動で作成された前記ユーザの眼のセグメント化を含む、項目11に記載の方法。
(項目13)
前記閃光検出GTデータは、閃光場所の手動で作成された識別を含む、項目11に記載の方法。
(項目14)
前記誤差データは、
前記訓練2D瞳孔中心データと前記2D瞳孔中心GTデータとの間の差異、
前記訓練眼セグメント化データと前記眼セグメント化GTデータとの間の差異、
前記訓練閃光検出データと前記閃光検出GTデータとの間の差異、または
前記訓練角膜中心データおよび1つ以上の幾何学的制約に基づく誤差
のうちの1つ以上のものを含む、項目11に記載の方法。
(項目15)
光学デバイスであって、
カメラと、
前記カメラに通信可能に結合されたプロセッサであって、前記プロセッサは、
前記カメラからユーザの眼の入力画像を受信することと、
前記ユーザの眼の入力画像をニューラルネットワークに提供することであって、前記ニューラルネットワークは、複数の訓練入力画像を使用して事前に訓練されている、ことと、
前記ニューラルネットワークを使用して、ネットワーク出力データを生成することと、
前記ネットワーク出力データに基づいて、前記ユーザの眼に対応する視線ベクトルを算出することと
を含む動作を実施するように構成される、プロセッサと
を備える、光学デバイス。
(項目16)
複数の赤外線(IR)発光ダイオード(LED)をさらに備える、項目15に記載の光学デバイス。
(項目17)
前記ネットワーク出力データは、
2次元(2D)瞳孔データ、
眼セグメント化データ、または
角膜中心データ
のうちの1つ以上のものを含む、項目15に記載の光学デバイス。
(項目18)
前記2D瞳孔データは、2D瞳孔中心を含む、項目17に記載の光学デバイス。
(項目19)
前記眼セグメント化データは、背景領域、強膜領域、瞳孔領域、または虹彩領域のうちの1つ以上のものを含む複数の領域への前記ユーザの眼のセグメント化を含む、項目17に記載の光学デバイス。
(項目20)
前記ニューラルネットワークは、
複数の訓練入力画像の訓練入力画像毎に、
前記訓練入力画像を前記ニューラルネットワークに提供することと、
前記ニューラルネットワークを使用して、訓練ネットワーク出力データを生成することと、
グラウンドトゥルース(GT)データを受信することと、
前記訓練ネットワーク出力データと前記GTデータとの間の差異に基づいて、誤差データを算出することと、
前記誤差データに基づいて、前記ニューラルネットワークを修正することと
を行うことによって事前に訓練されている、項目15に記載の光学デバイス。
【図面の簡単な説明】
【0011】
種々の実施形態の性質および利点のさらなる理解は、以下の図を参照することによって実現され得る。添付の図では、類似コンポーネントまたは特徴は、同一参照ラベルを有し得る。さらに、同一タイプの種々のコンポーネントは、参照ラベルの後に、ダッシュと、類似コンポーネント間で区別する、第2のラベルとが続くことによって、区別され得る。第1の参照ラベルのみが、本明細書で使用される場合、説明は、第2の参照ラベルに関係なく、同一の第1の参照ラベルを有する類似コンポーネントのうちの任意の1つに適用可能である。
【0012】
図1図1は、本明細書に説明される実施形態による、ウェアラブルARデバイスを通して視認されるような拡張現実(AR)場面を図示する。
【0013】
図2図2は、本発明による、ARデバイスの種々の特徴を図示する。
【0014】
図3図3は、ヒトの眼の標準的二重球状モデルを図示する。
【0015】
図4図4は、本発明による、ARデバイスの概略図を図示する。
【0016】
図5図5は、ネットワークの構成の概略図を図示する。
【0017】
図6図6は、ネットワークの種々の入力および出力の概略図を図示する。
【0018】
図7図7は、訓練モードで動作するARデバイスの概略図を図示する。
【0019】
図8図8は、ランタイムモードで動作するARデバイスの概略図を図示する。
【0020】
図9図9は、ネットワークの1つの可能性として考えられる構造を図示する。
【0021】
図10図10は、瞬目予測を生産する、再帰ニューラルネットワーク(RNN)を図示する。
【0022】
図11図11は、ネットワークを使用して視線ベクトルを推定する方法を図示する。
【0023】
図12図12は、視線ベクトルを推定するためにネットワークを訓練する方法を図示する。
【0024】
図13図13は、本明細書に説明される実施形態による、簡略化されたコンピュータシステムを図示する。
【発明を実施するための形態】
【0025】
視線推定のための眼追跡は、頭部搭載型仮想および複合現実デバイスの現在および将来的生成のための重要なコンポーネントである。これは、コンテンツのエネルギーおよび帯域幅効率的レンダリングの使用を可能にし、コンテンツのより現実に即したレンダリングのために多焦点ディスプレイを駆動し、ユーザの必要性の理解の効果的かつ妨げにならない様式として作用する。正確な視線を推定するプロセスは、外観ベースの算出(セグメント化、特徴点検出、例えば、瞳孔中心、閃光)に続いて、モデル/幾何学形状ベースの算出(例えば、3次元において、角膜、瞳孔中心、および視線ベクトルを推定する)を伴う。現在の眼トラッカは、古典的コンピュータビジョン技法(学習を伴わない)を使用し、瞳孔境界/中心を推定し、次いで、それらの推定に基づいて、視線を算出する。本明細書に説明される訓練されたネットワークを使用した推定は、古典的技法より有意に正確である。本発明によると、単一深層ネットワークが、ともに軸外眼画像のための眼および視線推定に関連する複数の量を推定するように訓練される。
【0026】
図1は、本明細書に説明される実施形態による、ウェアラブルARデバイスを通して視認されるような拡張現実(AR)場面を図示する。AR場面100が、描写されており、AR技術のユーザには、人々、木々、背景における建物、およびコンクリートプラットフォーム120を特徴とする、実世界公園状設定106が見える。これらのアイテムに加え、AR技術のユーザはまた、実世界プラットフォーム120上に立っているロボット像110と、マルハナバチの擬人化のように見える、飛んでいる漫画のようなアバタキャラクタ102とが「見える」と知覚するが、これらの要素(キャラクタ102および像110)は、実世界には存在しない。ヒト視知覚および神経系の著しい複雑性に起因して、他の仮想または実世界画像要素の中に、仮想画像要素の快適で自然のように感じる豊かな提示を促進する、仮想現実(VR)またはAR技術を生産することは、困難である。
【0027】
図2は、本発明による、ARデバイス200の種々の特徴を図示する。いくつかの実施形態では、ARデバイス200は、仮想画像222が、世界オブジェクト230とともにユーザによって知覚されるように、光を接眼レンズ202上に投影するように構成される、プロジェクタ214を含んでもよい。ARデバイス200はまた、軸外カメラ240と、ARデバイス200に搭載され、ユーザの眼に向かって指向される、1つ以上のエミッタ262とを含んでもよい。エミッタ262は、ユーザの眼に不可視であるが、軸外カメラ240によって検出可能な光を透過させる、赤外線(IR)発光ダイオード(LED)を備えてもよい。いくつかの実施形態では、エミッタ262は、軸外カメラ240がIRスペクトル内の光を検出する能力を有する必要はないように、ユーザの眼に可視である光を透過させる、LEDを備えてもよい。したがって、軸外カメラ240は、IR検出能力の有無にかかわらず、カメラであってもよい。
【0028】
ARデバイス200の動作の間、軸外カメラ240は、ユーザの眼に対応する視線ベクトル238の推定につながる情報を検出してもよい(例えば、画像を捕捉する)。視線ベクトル238は、画像フレーム毎に算出されてもよく、種々の実施形態では、2次元(2D)または3次元(3D)値として表されてもよい。例えば、図2に図示されるように、視線ベクトル238は、極性角度θおよび方位角φによって、球面座標系を使用して表されてもよい。代替として、または加えて、視線ベクトル238は、X、Y、およびZ値によって、3Dデカルト座標系を使用して表されてもよい。視線ベクトル238は、ユーザの眼の場所、接眼レンズ202の場所、および視線ベクトル238に基づいて計算され得る、交点239において、接眼レンズ202と交差し得る。いくつかのインスタンスでは、プロジェクタ214は、視野の他のエリアに有利に働くように、交点239の周囲の画像明度および/または明確性を改良するために、仮想画像222を調節してもよい。
【0029】
図3は、ヒトの眼の標準的二重球状モデル300を図示する。モデル300によると、眼球球体302は、完全または部分的に、内側角膜球面304を包含し得る。角膜中心306は、角膜球面304の幾何学的中心であり得る。瞳孔中心308は、眼の瞳孔開口部または瞳孔の中心に対応し得、角膜球面304によって包含され得る。眼の光学軸310は、角膜中心306および瞳孔中心308を接続することによって形成される、ベクトルであり得る。視線ベクトル238(代替として、視軸と称される)は、眼の背面において、角膜中心306および中心窩312を接続することによって形成され得る。中心窩312は、概して、未知であって、推定することが困難であるため、視線ベクトル238は、光学軸310およびユーザ特有の較正角度κを使用して算出され得る。較正角度κは、1次元(1D)、2D、または3D値であってもよく、ARデバイス200が、ユーザによって最初に動作されるときの較正位相の間、特定のユーザのために較正されてもよい。いったん較正角度κが、特定のユーザのために算出されると、固定されると仮定される。故に、角膜中心306および瞳孔中心308を使用して、光学軸310を推定することは、視線追跡の根底にある重要な問題である。
【0030】
図4は、本発明による、ARデバイス200の概略図を図示する。ARデバイス200は、左接眼レンズ202Aと、右接眼レンズ202Bと、直接、左接眼レンズ202Aの上またはその近くに取り付けられる、左正面に向いた世界カメラ206Aと、直接、右接眼レンズ202Bの上またはその近くに取り付けられる、右正面に向いた世界カメラ206Bと、左側に向いた世界カメラ206Cと、右側に向いた世界カメラ206Dと、処理モジュール250とを含んでもよい。エミッタ262は、接眼レンズ202の一方または両方に搭載されてもよく、いくつかの実施形態では、直接、左接眼レンズ202Aの上またはその近くに搭載される、左エミッタ262Aと、直接、右接眼レンズ202Bの上またはその近くに搭載される、右エミッタ262Bとに分離されてもよい(例えば、ARデバイス200のフレームに搭載される)。いくつかのインスタンスでは、ARデバイス200は、中心に位置付けられた軸外カメラ260、または図4に図示されるように、直接、左接眼レンズ202Aの上またはその近くに搭載される、左軸外カメラ260A、および直接、右接眼レンズ202Bの上またはその近くに搭載される、右軸外カメラ260A等、単一または複数の軸外カメラ260を含んでもよい。
【0031】
ARデバイス200のコンポーネントの一部または全部は、投影された画像がユーザによって視認され得るように、頭部に搭載されてもよい。1つの特定の実装では、図4に示されるARデバイス200のコンポーネントは全て、ユーザによって装着可能な単一デバイス(例えば、単一ヘッドセット)上に搭載される。別の実装では、処理モジュール250は、ARデバイス200の他のコンポーネントと物理的に別個であって、有線または無線コネクティビティによって、通信可能に結合される。例えば、処理モジュール250は、フレームに固定して取り付けられる、ユーザによって装着されるヘルメットまたは帽子に固定して取り付けられる、ヘッドホンに内蔵される、または別様に、ユーザに除去可能に取り付けられる(例えば、リュック式構成において、ベルト結合式構成において等)等、種々の構成において搭載されてもよい。
【0032】
処理モジュール250は、プロセッサ252と、不揮発性メモリ(例えば、フラッシュメモリ)等のデジタルメモリとを備えてもよく、両方とも、データの処理、キャッシュ、および記憶を補助するために利用され得る。データは、画像捕捉デバイス(例えば、カメラ206および軸外カメラ260)、マイクロホン、慣性測定ユニット、加速度計、コンパス、GPSユニット、無線デバイス、および/またはジャイロスコープ等のセンサ(例えば、ARデバイス200に動作可能に結合される)から捕捉されたデータを含んでもよい。例えば、処理モジュール250は、カメラ206からの画像220、より具体的には、左正面に向いた世界カメラ206Aからの左正面画像220A、右正面に向いた世界カメラ206Bからの右正面画像220B、左側に向いた世界カメラ206Cからの左側画像220C、および右側に向いた世界カメラ206Dからの右側画像220Dを受信してもよい。いくつかの実施形態では、画像220(または軸外カメラ260から受信されるもの)は、単一画像、一対の画像、画像のストリームを含むビデオ、ペアリングされた画像のストリームを含むビデオ、および同等物を含んでもよい。画像220(または軸外カメラ260から受信されるもの)は、ARデバイス200の電源がオンの間、周期的に生成され、処理モジュール250に送信されてもよい、または処理モジュール250によってカメラのうちの1つ以上のものに送信される命令に応答して、生成されてもよい。
【0033】
接眼レンズ202Aおよび202Bは、それぞれ、プロジェクタ214Aおよび214Bからの光を指向するように構成される、透明または半透明導波管を備えてもよい。具体的には、処理モジュール250は、左プロジェクタ214Aに、左投影画像222Aを左接眼レンズ202Aに出力させ得、右プロジェクタ214Bに、右投影画像222Bを右接眼レンズ202Bに出力させ得る。いくつかの実施形態では、接眼レンズ202はそれぞれ、異なる色および/または異なる深度平面に対応する、複数の導波管を備えてもよい。
【0034】
カメラ206Aおよび206Bは、それぞれ、ユーザの左および右眼の視野と実質的に重複する、画像を捕捉するように位置付けられてもよい。故に、カメラ206Aおよび206Bの設置場所は、ユーザの眼の近傍であってもよいが、ユーザの視野を不明瞭にするほど近傍ではない。代替として、または加えて、カメラ206Aおよび206Bは、それぞれ、投影された画像222Aおよび222Bの内部結合場所と整合するように位置付けられてもよい。カメラ206Cおよび206Dは、ユーザの側面、例えば、ユーザの周辺視覚内またはユーザの周辺視覚外の画像を捕捉するように位置付けられてもよい。カメラ206Cおよび206Dを使用して捕捉された画像220Cおよび220Dは、必ずしも、カメラ206Aおよび206Bを使用して捕捉された画像220Aおよび220Bと重複する必要はない。カメラ260Aおよび260Bは、それぞれ、ユーザの左および右眼の画像を捕捉するように位置付けられてもよい。カメラ260によって捕捉された画像は、ユーザの眼をその全体として、またはユーザの眼の一部を示してもよい。
【0035】
ARデバイス200の動作の間、処理モジュール250は、ニューラルネットワーク256を使用して、視線ベクトル238を推定してもよい。ニューラルネットワーク256は、人工ニューラルネットワーク、畳み込みニューラルネットワーク、または処理実施例によって徐々に「学習」し得る、任意のタイプのコンピューティングシステムであってもよい。例えば、ニューラルネットワーク256は、グラウンドトゥルース(GT)データを表す、手動で準備された訓練データを処理することによって、訓練されてもよい。訓練データのそれぞれを処理後、ニューラルネットワーク256は、GTデータにより緊密に近似する、出力を生成することが可能である。いくつかの実施形態では、ニューラルネットワーク256は、信号を1つのノードから別のノードに伝送することが可能である、接続されたノードの集合を備える。ニューラルネットワーク256の訓練および使用は、下記にさらに説明される。
【0036】
図5は、ニューラルネットワーク256の構成の概略図を図示する。軸外カメラ260によって捕捉された入力画像I(x,y,c)が、ニューラルネットワーク256への入力として提供されてもよい。入力画像I(x,y,c)は、H×W×Cの寸法を有してもよく、Hは、垂直方向におけるピクセルの数であって、Wは、水平方向におけるピクセルの数であって、Cは、画像のチャネルの数である(例えば、RGB画像に関しては、3に等しく、グレースケール画像に関しては、1に等しい)。ニューラルネットワーク256は、入力画像I(x,y,c)を処理してもよく、入力画像I(x,y,c)に基づいて、ネットワーク出力データ264を生成してもよい。ARデバイス200が、ランタイムモードで動作しているとき、ネットワーク出力データ264は、較正角度κと併用され、視線ベクトル238を算出し得る。いくつかの実施形態では、後処理ブロック266が、1つ以上の演算を実施し、視線ベクトル238を算出してもよい。他の実施形態では、または同一実施形態では、較正角度κは、入力画像I(x,y,c)とともに、ニューラルネットワーク256への入力として提供されてもよく、視線ベクトル238は、直接、ネットワーク出力データ264内に含まれてもよい、またはネットワーク出力データ264に基づいて算出されてもよい。
【0037】
ARデバイス200が、訓練モードで動作しているとき、ネットワーク出力データ264は、GTデータ268と比較されてもよい。誤差データ270が、比較に基づいて算出されてもよく、いくつかの実施形態では、誤差データ270の大きさが、ネットワーク出力データ264とGTデータ268との間の差異に比例し得るように、ネットワーク出力データ264とGTデータ268との間の差異を表してもよい。ニューラルネットワーク256は、誤差データ270に基づいて、修正されてもよい(例えば、修正器272を使用して)。いくつかの実施形態では、ニューラルネットワーク256への修正の大きさは、ネットワーク出力データ264とGTデータ268との間のより大きい差異が、ニューラルネットワーク256へのより大きい修正に対応し得るように、誤差データ270の大きさに比例し得る。
【0038】
図6は、ニューラルネットワーク256の種々の入力および出力の概略図を図示する。ネットワーク出力データ264は、図6に示されるデータのタイプのうちの1つ以上のものを含んでもよい。ARデバイスが、訓練モードで動作するかまたはランタイムモードで動作するかに基づいて、データのタイプのうちの1つ以上のものは、後続処理において利用されなくてもよい。代替として、ARデバイス200が、訓練モードで動作するかまたはランタイムモードで動作するかに基づいて、データのタイプのうちの1つ以上のものは、ニューラルネットワーク256によって生成されず、処理電力を保存してもよい。
【0039】
いくつかの実施形態では、ネットワーク出力データ264は、2D瞳孔中心データ274を含んでもよい。いくつかの実施形態では、2D瞳孔中心データ274は、2D値として表される2D瞳孔中心を含んでもよい。例えば、2D瞳孔中心は、瞳孔の中心(例えば、瞳孔中心308)の算出された場所に対応する、入力画像I(x,y,c)のフレーム内のXおよびY値を含んでもよい。代替として、または加えて、2D瞳孔中心データ274は、0または1のバイナリ値(1の値は、瞳孔の中心の算出された場所に対応する)を備える、H×Wの寸法を有する、行列を含んでもよい。
【0040】
いくつかの実施形態では、ネットワーク出力データ264は、眼セグメント化データ276を含んでもよい。眼セグメント化データ276は、複数の領域への眼のセグメント化を含んでもよい。1つの特定の実装では、領域は、背景領域、強膜領域、瞳孔領域、および虹彩領域を含んでもよい。別の特定の実装では、領域は、瞳孔領域および非瞳孔領域を含んでもよい。別の特定の実装では、領域は、瞳孔領域、眼領域(瞳孔領域の一部ではない眼の部分を含む)、および背景領域を含んでもよい。いくつかの実施形態では、眼セグメント化データ276は、0、1、2、および3(例えば、それぞれ、背景領域、強膜領域、瞳孔領域、および虹彩領域に対応する)等の値の有限セットを備える、H×Wの寸法を有する、行列を含んでもよい。いくつかの実施形態では、眼セグメント化データ276は、背景、強膜、瞳孔、および虹彩を含む、クラスのセットへの、入力画像I(x,y,c)の全ピクセルの割当を含み、これは、いくつかの実施形態では、(デコーダ)ニューラルネットワーク256の最後の層を求め、それを逆畳み込みを使用して入力画像I(x,y,c)と同一分解能にアップサンプリングすることによって取得され得、これは、ひいては、各特徴チャネルがあるクラスに属するピクセルの確率を表す、特徴チャネルを横断して、ソフトマックスクロスエントロピ損失の中にフィードされる。
【0041】
いくつかの実施形態では、ネットワーク出力データ264は、閃光検出データ278を含んでもよい。いくつかの実施形態では、閃光検出データ278は、2Dまたは3D値として表される1つ以上の閃光場所を含む。例えば、単一閃光場所のみが、検出される場合、閃光検出データ278は、単一2D値を含んでもよい、または4つの閃光場所が、検出される場合、閃光検出データ278は、4つの2D値を含んでもよい。いくつかの実施形態では、閃光検出データ278は、検出された閃光の算出された場所に対応する入力画像I(x,y,c)のフレーム内のXおよびY値を含んでもよい。代替として、または加えて、閃光検出データ278は、0または1のバイナリ値(1の値は、検出された閃光の場所に対応する)を備える、H×Wの寸法を有する、行列を含んでもよい。
【0042】
いくつかの実施形態では、ネットワーク出力データ264は、角膜中心データ280を含んでもよい。いくつかの実施形態では、角膜中心データ280は、2D値として表される2D角膜中心または3D値として表される3D角膜中心を含んでもよい。例えば、2D角膜中心は、角膜の中心(例えば、角膜中心306)の算出された場所に対応する入力画像I(x,y,c)のフレーム内のXおよびY値を含んでもよい。代替として、または加えて、角膜中心データ280は、0または1のバイナリ値(1の値は、角膜の中心の算出された場所に対応する)を備える、H×Wの寸法を有する、行列を含んでもよい。
【0043】
いくつかの実施形態では、ネットワーク出力データ264は、閃光および瞳孔インジケータ282を含んでもよい。いくつかの実施形態では、閃光および瞳孔インジケータ282は、0または1のバイナリ値(1の値は、閃光または瞳孔中心の検出成功に対応し、0の値は、検出不成功に対応する)を備える。代替実施形態では、1の値は、閃光または瞳孔中心のオクルージョンに対応してもよい。1つの特定の実装では、閃光および瞳孔インジケータ282は、5つのバイナリ値を備えてもよく、最初の4つのバイナリ値は、4つの閃光に対応し、最後のバイナリ値は、瞳孔中心に対応する。いくつかの実施形態では、閃光および瞳孔インジケータ282は、代替として、2D瞳孔中心データ274および閃光検出データ278に基づいて生成されてもよい。いくつかの実施形態では、閃光および瞳孔インジケータ282は、エンコーダの最後の層を(全ての特徴が、共通ブロック内で共有される)求め、2つの全結合層を再成形および追加し、4つの閃光および1つの瞳孔中心のうちのいくつかが欠測しているかどうかのバイナリ分類として、5×2確率を生産することによって取得されてもよい。
【0044】
図7および8は、それぞれ、訓練モードおよびランタイムモードで動作する、ARデバイス200の概略図を図示する。ARデバイス200が、訓練モードで動作しているとき、ネットワーク出力データ264は、眼セグメント化データ276、閃光検出データ278、および角膜中心データ280を含む。これらのネットワーク出力を生成するために使用される特定の入力画像I(x,y,c)はまた、ニューラルネットワーク256によるネットワーク出力データ264の生成に先立って、それに続いて、またはそれと並行して、GTデータ268を準備し得る、1人以上の個人によって手動で検査されてもよい。例えば、個人は、パーソナルコンピュータまたはスマートフォン等の電子デバイス上の入力画像I(x,y,c)の表示されるバージョンを検査してもよい。電子デバイス上のプログラムまたはアプリケーションは、個人に、入力画像I(x,y,c)に関連する質問のセットを尋ねてもよく、個人は、マウス、キーボード、タッチ画面等の入力デバイスを使用して、その応答を入力してもよい。
【0045】
入力画像I(x,y,c)を観察および検査する際、個人は、入力デバイスを使用して、瞳孔の輪郭を識別することによって、2D瞳孔中心GTデータ283を準備してもよい。これは、個人が、楕円形境界を瞳孔にわたって設置し、設置された楕円形境界に基づいて、瞳孔中心を自動的に計算させるステップを含んでもよい。2D瞳孔中心GTデータ283は、2D瞳孔中心データ274と同一フォーマットおよび寸法(例えば、XおよびY値)を有するように準備されてもよい。加えて、入力画像I(x,y,c)を観察および検査する際、個人は、画像の第1の領域が背景領域として、第2の領域が強膜領域として、第3の領域が瞳孔領域として、および第4の領域が虹彩領域として割り当てられるべきであることを決定することによって、眼セグメント化GTデータ284を準備してもよい。眼セグメント化GTデータ284は、眼セグメント化データ276と同一フォーマットおよび寸法(例えば、異なる領域に対応する0、1、2、および3等の値の有限セットを備える、H×Wの寸法を有する、行列)を有するように準備されてもよい。
【0046】
加えて、入力画像I(x,y,c)を観察および検査する際、個人は、入力画像I(x,y,c)内に存在する閃光場所の数およびそれぞれの場所を決定することによって、閃光検出GTデータ286を準備してもよい。閃光検出GTデータ286は、閃光検出データ278と同一フォーマットおよび寸法(例えば、2D値のセット)を有するように準備されてもよい、またはある数の閃光場所が、検出された場合(例えば、4つ)、閃光検出GTデータ286は、その2D値の数を含んでもよい。いくつかの実施形態では、閃光検出GTデータ286は、検出された閃光の算出された場所に対応する入力画像I(x,y,c)のフレーム内にXおよびY値を含んでもよい。代替として、または加えて、閃光検出GTデータ286は、0または1のバイナリ値(1の値は、検出された閃光の場所に対応する)を備える、H×Wの寸法を有する、行列を含んでもよい。
【0047】
1つの特定の実装では、GTデータ268は、個人または個人のグループを、例えば、3メートルにおける近くの深度と、例えば、6メートルにおけるより遠い平面との、2つの明確に異なる深度における点の3×3グリッドに対面させることによって取得されてもよい。所与のキューに応じて、個人は、その視線をこれらの18個の3D点のうちの1つに合焦させるように求められ、これは、視線ベクトル238に関するGTデータ268がフレーム毎に収集されたことを可能にする(後に全体的正確度を決定するために)。個人の眼の捕捉された画像(個人によって装着されるARデバイスのカメラを使用して)は、分析され、GTデータ268が、眼セグメント化および閃光場所情報を含むことを可能にし得る。30または60Hz記録におけるフレーム毎にセグメント化、閃光、および瞳孔中心に注釈を付ける際、収穫逓減が存在するため、ある数(例えば、200)の左または右眼画像フレームが、個人毎に、均一にサンプリングされ、セグメント化、閃光存在または不在、閃光2Dおよび瞳孔2D位置に手動で注釈を付けてもよい。1つの特定の実験工程では、87,000毎の注釈が付けられた画像が、ニューラルネットワーク256を訓練し、その性能を検証するためにデータセット内で使用された。
【0048】
いくつかの実施形態では、誤差データ270は、2D瞳孔中心データ274と2D瞳孔中心GTデータとの間の差異に基づいて算出された、第1の誤差データ270A、眼セグメント化データ276と眼セグメント化GTデータ284との間の差異に基づいて算出された、第2の誤差データ270B、閃光検出データ278と閃光検出GTデータ286との間の差異に基づく、第3の誤差データ270C、および幾何学的制約エンジン288によって生成された、第4の誤差データ270Cを含んでもよい。幾何学的制約エンジン288への入力は、角膜中心データ280、閃光検出データ278、エミッタ場所データ290、およびカメラ固有のパラメータ291のうちの1つ以上のものを含む。エミッタ場所データ290は、エミッタ262の固定場所および/またはエミッタ262の放出方向を含んでもよい。エミッタ場所データ290は、ARデバイス200の製造の際および/または較正位相の間に決定されてもよい。カメラ固有のパラメータ291は、他の可能性の中でもとりわけ、軸外カメラ260の光学中心および/または焦点長を含んでもよい。カメラ固有のパラメータ291は、軸外カメラ260の製造の際および/または較正位相の間に決定されてもよい。
【0049】
幾何学的制約エンジン288は、生成されたデータ(閃光検出データ278および角膜中心データ280)と較正されたデータ(エミッタ場所データ290)との間の異なる一貫性を評価するために、種々の演算を実施してもよく、幾何学的制約エンジン288の出力である、第4の誤差データ270Dは、尤度または一貫性パラメータに反比例し得る。いくつかのインスタンスでは、角膜球面304は、閃光検出データ278およびエミッタ場所データ290を使用して再構成され、第4の誤差データ270Dは、再構成された球体の中心と角膜中心データ280によって示されるような角膜中心との間の計算された距離に設定される。
【0050】
いくつかの実施形態では、ニューラルネットワーク256の訓練は、異なる訓練反復の間、ニューラルネットワーク256のある出力のみを使用して、順次訓練することによって改良される。第1の訓練ステップでは、眼セグメント化データ276のみが、ニューラルネットワーク256を訓練するために使用される。これは、第2の誤差データ270Bのみを使用して、ニューラルネットワーク256を修正することによって遂行されてもよい。いったんニューラルネットワーク256が、眼セグメント化のために十分に訓練される(すなわち、十分に正確になる)と、第2の訓練ステップが、加えて、閃光検出データ278を使用して、ニューラルネットワーク256を訓練することによって実施される。これは、第2の誤差データ270Bおよび第3の誤差データ270Cのみを使用して、ニューラルネットワーク256を修正することによって遂行されてもよい。いったんニューラルネットワーク256が、眼セグメント化および閃光検出のために十分に訓練されると、第3の訓練ステップが、加えて、角膜中心データ280を使用して、ニューラルネットワーク256を訓練することによって実施される。これは、誤差データ270の全てを使用して、ニューラルネットワーク256を修正することによって遂行されてもよい。いくつかのインスタンスでは、同一訓練画像およびGTデータが、異なる訓練ステップの間に使用されてもよい。いくつかの実施形態では、ARデバイス200は、正確度閾値が満たされる、または最大反復閾値が満たされる(すなわち、使用される訓練画像の数が最大反復閾値を満たす)まで、訓練モードのままである。
【0051】
ARデバイス200が、ランタイムモードで動作しているとき、ネットワーク出力データ264は、2D瞳孔中心データ274、眼セグメント化データ276、および角膜中心データ280を含む。これらの出力は、較正角度κと併用され、後処理ブロック266を使用して、視線ベクトル238を算出し得る。いくつかの実施形態では、後処理ブロック266は、第1の後処理ブロック266A、第2の後処理ブロック266B、および第3の後処理ブロック266Cに分離されてもよい。第1の後処理ブロック266Aは、2D瞳孔中心データ274および眼セグメント化データ276を入力として受信し、3D瞳孔中心292を算出する。第2の後処理ブロック266Bは、3D瞳孔中心292および角膜中心データ280を入力として受信し、光学軸310を算出する。第3の後処理ブロック266Cは、光学軸310および較正角度κを入力として受信し、視線ベクトル238を算出する。
【0052】
図9は、複数の層257を備える、ニューラルネットワーク256の1つの可能性として考えられる構造を図示する。層257はそれぞれ、入力画像I(x,y,c)上で実施される、1つ以上の演算を表し得る。いくつかの実施形態では、ニューラルネットワーク256は、特徴エンコーディングベースネットワークと、5つのタスク分岐とから成ってもよい。図示されるように、ニューラルネットワーク256のある出力は、より早い段階で、かつニューラルネットワーク256の他の出力より少ない演算が実施される状態において、取得され得る。例えば、閃光および瞳孔インジケータ282および角膜中心データ280は、他の出力より少ない算出を用いて取得され得、眼セグメント化データ276は、他の出力より多くの算出を用いて取得される。故に、眼セグメント化データ276を最初に使用してニューラルネットワーク256を訓練する利点は、眼セグメント化データ276の算出のためのみに使用される、いくつかの層が、他の出力からのフィードバックによって影響されずに微調整されることができることである。
【0053】
図10は、特徴をニューラルネットワーク256から求め、瞬目予測を生産する、再帰ニューラルネットワーク(RNN)1000を図示する。より具体的には、RNN1000は、いくつかの連続フレームに関する特徴(例えば、出力)をニューラルネットワーク256から求め(ニューラルネットワーク256は、フレーム毎に特徴を生産してもよい)、特徴の運動およびフローに基づいて、瞬目が次の1、2、および/または3フレームにおいて生じるであろうかどうか(確率)を予測する。いくつかの実施形態では、RNN1000は、入力画像I(x,y,c)自体の代わりに、特徴をニューラルネットワーク256によって出力された連続フレームからのみ求める。RNN1000は、データの時系列またはシーケンス(運動、追跡等)を予測する利点を有する。RNN1000は、プロセスシーケンス入力データを処理するために、それ自体にフィードバックし、サイクルを形成する、畳み込みニューラルネットワーク(CNN)と異なり、出力を伴う、内部メモリ状態を有してもよい。このように、RNN1000は、シーケンスとして生じたイベントの履歴を「記憶」し、したがって、次の転帰をより良好に予測し得る。示される特定の実装では、Xt-1、X、およびXt+1は、ニューラルネットワーク256からの連続フレームに関する特徴に対応し、Ot-1、O、およびOt+1は、次のフレームにおいて瞬目イベントが存在するかどうかの確率である。RNN1000は、ニューラルネットワーク256によって生産された高レベル特徴を利用するため、ARデバイス200の性能を改良するために含まれ得る、付加的後処理ステップと見なされ得る。
【0054】
図11は、ニューラルネットワークを使用して視線ベクトルを推定する方法1100を図示する。方法1100のステップは、示される順序で実施される必要はなく、方法1100の1つ以上のステップは、方法1100の実施の間、省略されてもよい。いくつかの実施形態では、方法1100の1つ以上のステップは、処理モジュール250またはARデバイス200のある他のコンポーネントによって実施されてもよい。
【0055】
ステップ1102では、ユーザの眼の入力画像(例えば、入力画像I(x,y,c))が、受信される。いくつかの実施形態では、入力画像は、カメラ(例えば、軸外カメラ260)から受信される。カメラは、光学デバイスに搭載されてもよく、および/または光学デバイスのコンポーネントであってもよい。いくつかの実施形態では、方法1100は、カメラを使用して、ユーザの眼の入力画像を捕捉するステップを含む。いくつかの実施形態では、方法1100は、カメラからの入力画像を処理モジュール(例えば、処理モジュール250)に送信するステップを含む。
【0056】
ステップ1104では、眼の入力画像が、ニューラルネットワーク(例えば、ニューラルネットワーク256)に提供される。いくつかの実施形態では、入力画像は、ニューラルネットワークを実装する、プロセッサに提供される。プロセッサは、ニューラルネットワークによって一般に実施されるある演算(例えば、畳み込み、行列乗算)が汎用プロセッサを用いた場合より高速で実施されることを可能にする、アーキテクチャを有する、特殊目的プロセッサ(例えば、ニューラルネットワークプロセッサ)であってもよい。例えば、特殊目的プロセッサは、並行して、または同時に、種々の算術演算を入力画像の異なるピクセル上で実施するための複数の処理要素を有する、シストリックアレイを含んでもよい。
【0057】
ステップ1106では、ネットワーク出力データ(例えば、ネットワーク出力データ264)が、ニューラルネットワークを使用して生成される。ネットワーク出力データは、ニューラルネットワークの全体的出力およびニューラルネットワークの中間層の出力に対応するデータを含んでもよい。例えば、ネットワーク出力データは、ニューラルネットワークの全体的出力から導出される、あるデータ(例えば、眼セグメント化データ276)と、ニューラルネットワークの中間層の出力から導出される、あるデータ(例えば、閃光および瞳孔インジケータ282および角膜中心データ280)とを含んでもよい。加えて、または代替として、ネットワーク出力データは、ニューラルネットワークの異なる中間層およびニューラルネットワークの全体的出力の処理に関わらない1つ以上の付加的層の出力から導出される、あるデータ(例えば、閃光検出データ278および2D瞳孔中心データ274)を含んでもよい。
【0058】
ステップ1108では、3D瞳孔中心(例えば、3D瞳孔中心292)が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、3D瞳孔中心は、2D瞳孔データおよび眼セグメント化データに基づいて算出される。
【0059】
ステップ1110では、ユーザの眼と関連付けられる光学軸(例えば、光学軸310)が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、光学軸は、3D瞳孔中心およびネットワーク出力データのあるデータ(例えば、角膜中心データ280)に基づいて算出される。
【0060】
ステップ1112では、眼に対応する視線ベクトル(例えば、視線ベクトル238)が、ネットワーク出力データに基づいて算出される。いくつかの実施形態では、視線ベクトルは、ネットワーク出力データ(例えば、2D瞳孔中心データ274、眼セグメント化データ276、および角膜中心データ280)のあるコンポーネントのみを使用して算出される一方、ネットワーク出力データの他のコンポーネント(例えば、閃光検出データ278)は、算出において使用されない。いくつかの実施形態では、視線ベクトルを算出するステップは、1つ以上の後処理ステップを含んでもよい。例えば、3D瞳孔中心(例えば、3D瞳孔中心292)が、最初に、ネットワーク出力データの1つ以上のコンポーネント(例えば、2D瞳孔中心データ274および眼セグメント化データ276)に基づいて算出され得る。第2に、光学軸(例えば、光学軸310)が、3D瞳孔中心およびネットワーク出力データの付加的コンポーネント(例えば、角膜中心データ280)に基づいて算出され得る。次に、視線ベクトルが、光学軸およびユーザに対応する較正角度に基づいて算出され得る。
【0061】
図12は、ニューラルネットワークを訓練する方法1200を図示する。方法1200のステップは、示される順序で実施される必要はなく、方法1200の1つ以上のステップは、方法1200の実施の間、省略されてもよい。いくつかの実施形態では、方法1200の1つ以上のステップは、処理モジュール250またはARデバイス200のある他のコンポーネントによって実施されてもよい。
【0062】
ステップ1202では、複数の訓練入力画像(例えば、入力画像I(x,y,c))が、受信される。複数の訓練入力画像は、カメラ(例えば、軸外カメラ260)から受信されてもよい、または訓練の目的のために、人工的に生成される、または読み出されてもよい。複数の訓練画像はそれぞれ、眼の画像であってもよい。ステップ1202は、ステップ1102に類似してもよい。
【0063】
ステップ1204-1212は、複数の訓練入力画像の訓練入力画像毎に実施されてもよい。ステップ1204では、訓練入力画像は、ニューラルネットワーク(例えば、ニューラルネットワーク256)に提供される。ステップ1204は、ステップ1104に類似してもよい。
【0064】
ステップ1206では、訓練ネットワーク出力データ(例えば、ネットワーク出力データ264)は、ニューラルネットワークを使用して生成される。ステップ1206は、ステップ1106に類似してもよい。
【0065】
ステップ1208では、GTデータ(例えば、GTデータ268)が、ユーザ入力デバイスから受信される。GTデータは、訓練ネットワーク出力データの1つ以上のコンポーネントに対応する、1つ以上のコンポーネント(例えば、2D瞳孔中心GTデータ283、眼セグメント化GTデータ284、閃光検出GTデータ286)を含んでもよい。
【0066】
ステップ1210では、誤差データ(例えば、誤差データ270)が、訓練ネットワーク出力データとGTデータとの間の差異に基づいて算出される。誤差データは、GTデータおよび/または訓練ネットワーク出力データの1つ以上のコンポーネントに対応する、1つ以上のコンポーネント(例えば、第1の誤差データ270A、第2の誤差データ270B、第3の誤差データ270C、第4の誤差データ270D)を含んでもよい。
【0067】
ステップ1212では、ニューラルネットワークは、誤差データに基づいて修正される。いくつかの実施形態では、ニューラルネットワークへの修正の大きさは、訓練ネットワーク出力データとGTデータとの間のより大きい差異が、ニューラルネットワークへのより大きい修正に対応し得るように、誤差データの大きさに比例する。いくつかの実施形態では、ニューラルネットワークは、ニューラルネットワークの加重への1つ以上の加重更新を計算する、逆伝搬アルゴリズムを使用して訓練されてもよい。
【0068】
図13は、本明細書に説明される実施形態による、簡略化されたコンピュータシステム1300を図示する。図13に図示されるようなコンピュータシステム1300は、本明細書に説明されるようなARデバイス200等のデバイスの中に組み込まれてもよい。図13は、種々の実施形態によって提供される方法のステップの一部または全部を実施し得る、コンピュータシステム1300の一実施形態の概略化された例証を提供する。図13は、種々のコンポーネントの一般化された例証を提供するためだけに意図され、そのいずれかまたは全てが、必要に応じて利用されてもよいことに留意されたい。図13は、したがって、広義には、個々のシステム要素が比較的に分離された様式または比較的により統合された様式において実装され得る状況を図示する。
【0069】
コンピュータシステム1300は、バス1305を介して電気的に結合されることができる、または必要に応じて別様に通信し得る、ハードウェア要素を備えるように示される。ハードウェア要素は、限定ではないが、デジタル信号処理チップ、グラフィック加速プロセッサ、および/または同等物等の、1つ以上の汎用プロセッサおよび/または1つ以上の特殊目的プロセッサを含む、1つ以上のプロセッサ1310と、限定ではないが、マウス、キーボード、カメラ、および/または同等物を含むことができる、1つ以上の入力デバイス1315と、限定ではないが、ディスプレイデバイス、プリンタ、および/または同等物を含むことができる、1つ以上の出力デバイス1320とを含んでもよい。
【0070】
コンピュータシステム1300はさらに、限定ではないが、ローカルおよび/またはネットワークアクセス可能記憶装置を備えることができ、および/または、限定ではないが、プログラム可能である、フラッシュ更新可能である、および/または同等物であることができる、ディスクドライブ、ドライブアレイ、光学記憶デバイス、ランダムアクセスメモリ(「RAM」)等のソリッドステート記憶デバイス、および/または読取専用メモリ(「ROM」)を含むことができる、1つ以上の非一過性記憶デバイス1325を含む、および/またはそれと通信してもよい。そのような記憶デバイスは、限定ではないが、種々のファイルシステム、データベース構造、および/または同等物を含む、任意の適切なデータ記憶を実装するように構成されてもよい。
【0071】
コンピュータシステム1300はまた、限定ではないが、Bluetooth(登録商標)デバイス、802.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備等、および/または同等物等のモデム、ネットワークカード(無線または有線)、赤外線通信デバイス、無線通信デバイス、および/またはチップセットを含むことができる、通信サブシステム1330を含み得る。通信サブシステム1330は、1つ以上の入力および/または出力通信インターフェースを含み、データが、一実施例として挙げるために以下に説明されるネットワーク、他のコンピュータシステム、テレビ、および/または本明細書に説明される任意の他のデバイス等のネットワークと交換されることを可能にしてもよい。所望の機能性および/または他の実装懸念に応じて、ポータブル電子デバイスまたは類似デバイスは、通信サブシステム1330を介して、画像および/または他の情報を通信してもよい。他の実施形態では、ポータブル電子デバイス、例えば、第1の電子デバイスは、コンピュータシステム1300、例えば、電子デバイスの中に入力デバイス1315として組み込まれてもよい。いくつかの実施形態では、コンピュータシステム1300はさらに、作業メモリ1335を備え、これは、上記に説明されるようなRAMまたはROMデバイスを含むであろう。
【0072】
コンピュータシステム1300はまた、種々の実施形態によって提供されるコンピュータプログラムを備え得る、および/または本明細書に説明されるような他の実施形態によって提供される方法を実装し、および/またはシステムを構成するように設計され得る、1つ以上のアプリケーションプログラム1345等のオペレーティングシステム1340、デバイスドライバ、実行可能ライブラリ、および/または他のコードを含む、作業メモリ1335内に現在位置するものとして示される、ソフトウェア要素を含むことができる。単に、一例として、上記に議論される方法に関して説明される1つ以上のプロシージャは、コンピュータまたはコンピュータ内のプロセッサによって実行可能なコードおよび/または命令として実装され得、ある側面では、次いで、そのようなコードおよび/または命令は、説明される方法に従って1つ以上の動作を実施するように汎用コンピュータまたは他のデバイスを構成および/または適合するために使用されることができる。
【0073】
これらの命令および/またはコードのセットは、上記に説明される記憶デバイス1325等の非一過性コンピュータ可読記憶媒体上に記憶されてもよい。ある場合には、記憶媒体は、コンピュータシステム1300等のコンピュータシステム内に組み込まれ得る。他の実施形態では、記憶媒体は、コンピュータシステムと別個である、例えば、コンパクトディスク等の可撤性媒体である、および/または記憶媒体が、汎用コンピュータをその上に記憶される命令/コードを用いてプログラム、構成、および/または適合するために使用され得るように、インストールパッケージ内に提供され得る。これらの命令は、コンピュータシステム1300によって実行可能である、実行可能コードの形態をとり得る、および/または、例えば、種々の概して利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティ等のいずれかを使用したコンピュータシステム1300上へのコンパイルおよび/またはインストールに応じて、次いで、実行可能コードの形態をとる、ソースおよび/またはインストール可能コードの形態をとり得る。
【0074】
実質的な変形例が、具体的要件に従って構成されてもよいことが、当業者に明白となるであろう。例えば、カスタマイズされたハードウェアもまた、使用され得る、および/または特定の要素が、ハードウェア、アプレット等のポータブルソフトウェアを含む、ソフトウェア、または両方内に実装され得る。さらに、ネットワーク入力/出力デバイス等の他のコンピューティングデバイスへの接続も、採用されてもよい。
【0075】
上記に述べられたように、一側面では、いくつかの実施形態は、コンピュータシステム1300等のコンピュータシステムを採用し、本技術の種々の実施形態による方法を実施してもよい。一式の実施形態によると、そのような方法のプロシージャの一部または全部は、プロセッサ1310が、オペレーティングシステム1340の中に組み込まれ得る、1つ以上の命令の1つ以上のシーケンス、および/または作業メモリ1335内に含有される、アプリケーションプログラム1345等の他のコードを実行することに応答して、コンピュータシステム1300によって実施される。そのような命令は、記憶デバイス1325のうちの1つ以上のもの等の別のコンピュータ可読媒体から作業メモリ1335の中に読み取られてもよい。単に、一例として、作業メモリ1335内に含有される命令のシーケンスの実行は、プロセッサ1310に、本明細書に説明される方法の1つ以上のプロシージャを実施させ得る。加えて、または代替として、本明細書に説明される方法の一部は、特殊ハードウェアを通して実行されてもよい。
【0076】
用語「機械可読媒体」および「コンピュータ可読媒体」は、本明細書で使用されるとき、機械を具体的方式で動作させるデータを提供することに関わる、任意の媒体を指す。コンピュータシステム1300を使用して実装される、ある実施形態では、種々のコンピュータ可読媒体は、実行のための命令/コードをプロセッサ1310に提供する際に関わり得る、および/またはそのような命令/コードを記憶および/または搬送するために使用され得る。多くの実装では、コンピュータ可読媒体は、物理的および/または有形記憶媒体である。そのような媒体は、不揮発性媒体または揮発性媒体の形態をとってもよい。不揮発性媒体は、例えば、記憶デバイス1325等の光学および/または磁気ディスクを含む。揮発性媒体は、限定ではないが、作業メモリ1335等の動的メモリを含む。
【0077】
一般的形態の物理的および/または有形コンピュータ可読媒体は、例えば、フロッピー(登録商標)ディスク、可撓性ディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD-ROM、任意の他の光学媒体、パンチカード、紙テープ、孔のパターンを伴う任意の他の物理的媒体、RAM、PROM、EPROM、FLASH(登録商標)-EPROM、任意の他のメモリチップまたはカートリッジ、またはコンピュータが命令および/またはコードを読み取ることができる、任意の他の媒体を含む。
【0078】
種々の形態のコンピュータ可読媒体が、実行のための1つ以上の命令の1つ以上のシーケンスをプロセッサ1310に搬送する際に関わってもよい。単に、一例として、命令は、最初に、遠隔コンピュータの磁気ディスクおよび/または光学ディスク上で搬送されてもよい。遠隔コンピュータは、命令をその動的メモリの中にロードし、コンピュータシステム1300によって受信および/または実行される伝送媒体を経由して、命令を信号として送信し得る。
【0079】
通信サブシステム1330および/またはそのコンポーネントは、概して、信号を受信し、バス1305が、次いで、信号および/または信号によって搬送されるデータ、命令等を作業メモリ1335に搬送し得、そこから、プロセッサ1310が、命令を読み出し、実行する。作業メモリ1335によって受信された命令は、随意に、プロセッサ1310による実行前または後のいずれかにおいて、非一過性記憶デバイス1325上に記憶されてもよい。
【0080】
上記に議論される方法、システム、およびデバイスは、実施例である。種々の構成は、必要に応じて、種々のプロシージャまたはコンポーネントを省略、代用、または追加してもよい。例えば、代替構成では、本方法は、説明されるものと異なる順序で実施されてもよく、および/または種々の段階は、追加される、省略される、および/または組み合わせられてもよい。また、ある構成に関して説明される特徴は、種々の他の構成において組み合わせられてもよい。構成の異なる側面および要素は、類似様式で組み合わせられてもよい。また、技術は、進歩するものであって、したがって、要素の多くは、実施例であって、本開示の範囲または請求項を限定するものではない。
【0081】
具体的詳細が、実装を含む、例示的構成の完全な理解を提供するために説明に与えられる。しかしながら、構成は、これらの具体的詳細を伴わずに実践されてもよい。例えば、周知の回路、プロセス、アルゴリズム、構造、および技法は、構成を曖昧にすることを回避するために、不必要な詳細を伴わずに示されている。本説明は、例示的構成のみを提供し、請求項の範囲、可用性、または構成を限定するものではない。むしろ、構成の前述の説明は、当業者に説明される技法を実装するための有効な説明を提供するであろう。種々の変更が、本開示の精神または範囲から逸脱することなく、要素の機能および配列に行われてもよい。
【0082】
また、構成は、概略フローチャートまたはブロック図として描写される、プロセスとして説明され得る。それぞれ、シーケンシャルプロセスとして動作を説明し得るが、動作の多くは、並行して、または同時に実施されることができる。加えて、動作の順序は、再配列されてもよい。プロセスは、図内に含まれない付加的ステップを有してもよい。さらに、本方法の実施例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、または任意のそれらの組み合わせによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコード内に実装されるとき、必要タスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体等の非一過性コンピュータ可読媒体内に記憶されてもよい。プロセッサは、説明されるタスクを実施してもよい。
【0083】
いくつかの例示的構成が説明されたが、種々の修正、代替構造、および均等物が、本開示の精神から逸脱することなく、使用されてもよい。例えば、前述の要素は、より大きいシステムのコンポーネントであってもよく、他のルールが、本技術の用途に優先する、または別様にそれを修正してもよい。また、いくつかのステップは、前述の要素が検討される前、間、または後に行われてもよい。故に、前述の説明は、請求項の範囲を束縛するものではない。
【0084】
本明細書および添付の請求項で使用されるように、単数形「a」、「an」、および「the」は、文脈によって明確に別様に示されない限り、複数参照を含む。したがって、例えば、「ユーザ」の言及は、複数のそのようなユーザを含み、「プロセッサ」の言及は、1つ以上のプロセッサおよび当業者に公知のその均等物等の言及を含む。
【0085】
また、単語「comprise(~を備える)」、「comprising(~を備える)」、「contains(~を含有する)」、「containing(~を含有する)」、「include(~を含む)」、「including(~を含む)」、および「includes(~を含む)」は、本明細書および以下の請求項で使用されるとき、述べられた特徴、整数、コンポーネント、またはステップの存在を規定するために意図されるが、それらは、1つ以上の他の特徴、整数、コンポーネント、ステップ、行為、またはグループの存在または追加を除外するものではない。
【0086】
また、本明細書に説明される実施例および実施形態は、例証目的のみのためのものであって、それに照らして、種々の修正または変更が、当業者に示唆され、本願の精神および権限および添付の請求項の範囲内に含まれることを理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【外国語明細書】