例示的な実施形態の説明
[55]図1は、コンピューティングシステム160に関連付けられた例示的なネットワーク環境100を示している。ネットワーク環境100は、ユーザ101と、ネットワーク110によって互いに接続された、クライアントシステム130(例えばヘッドマウントディスプレイ)、コンピューティングシステム160、及びサードパーティシステム170とを含む。図1は、ユーザ101、クライアントシステム130、コンピューティングシステム160、サードパーティシステム170、及びネットワーク110の特定の構成を示しているが、この開示では、ユーザ101、クライアントシステム130、コンピューティングシステム160、サードパーティシステム170、及びネットワーク110の任意の好適な構成が想定される。一例としては(これに限定するものではないが)、クライアントシステム130、コンピューティングシステム160、及びサードパーティシステム170のうちの2つ以上が、ネットワーク110を迂回して、互いに直接接続されうる。別の例としては、クライアントシステム130、コンピューティングシステム160、及びサードパーティシステム170のうちの2つ以上が、物理的又は論理的に、全体的又は部分的に互いと共配置されうる。更に、図1は、特定の数のユーザ101、クライアントシステム130、コンピューティングシステム160、サードパーティシステム170、及びネットワーク110を示しているが、この開示では、任意の好適な数のユーザ101、クライアントシステム130、コンピューティングシステム160、サードパーティシステム170、及びネットワーク110が想定される。一例としては(これに限定するものではないが)、ネットワーク環境100は、複数のユーザ101、クライアントシステム130、コンピューティングシステム160、サードパーティシステム170、及びネットワーク110を含みうる。
[56]特定の実施形態では、ユーザ101は、コンピューティングシステム160と又はコンピューティングシステム160を介して相互作用又は通信を行う、個人(例えば人間のユーザ)でありうる。特定の実施形態では、コンピューティングシステム160は、人工現実環境(限定するわけではないが例としては視覚データ、音声データ、触覚データなどを含む)を生成することに関連するデータを、生成し、記憶し、受信し、かつ送りうる。コンピューティングシステム160は、ネットワーク環境100の他の構成要素によって、直接的に又はネットワーク110を介してアクセスされうる。特定の実施形態では、サードパーティシステム170は、構造化光のプロジェクタ及び/又は検出器、壁面装着型スピーカシステム、携帯センサシステム、触感アクチュエータなどでありうる。サードパーティシステム170は、ネットワーク環境100の他の構成要素によって、直接的に又はネットワーク110を介してアクセスされうる。特定の実施形態では、一又は複数のクライアントシステム130(ヘッドマウントディスプレイなど)は、コンピューティングシステム160及び/又はサードパーティシステム170にアクセスすること、及びそれらとの間でデータを送受信することが可能である。クライアントシステム130は、直接的に、ネットワーク110を介して、又はサードパーティシステムを介して、コンピューティングシステム160又はサードパーティシステム170にアクセスしうる。一例としては(これに限定するものではないが)、クライアントシステム130は、コンピューティングシステム160を介してサードパーティシステム170にアクセスしうる。クライアントシステム130は、例えばヘッドマウントディスプレイや拡張/仮想現実デバイスなどといった、任意の好適なコンピューティングデバイスでありうる。
[57]この開示では、任意の好適なネットワーク110が想定される。一例としては(これに限定するものではないが)、ネットワーク110の一又は複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話ネットワーク(PSTN)の一部分、セルラー電話ネットワーク、又はこれらのうちの2つ以上の組み合わせを含みうる。ネットワーク110は、一又は複数のネットワーク110を含みうる。
[58]リンク150が、クライアントシステム130と、コンピューティングシステム160と、サードパーティシステム170とを、通信ネットワーク110に又は互いに接続しうる。この開示では、任意の好適なリンク150が想定される。特定の実施形態では、一又は複数のリンク150は、一又は複数の有線リンク(例えばデジタル加入者ライン(DSL)若しくはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)など)、無線リンク(例えばWi-Fi、Bluetooth、若しくはWorldwide Interoperability for Microwave Access(WiMAX)など)、又は光リンク(例えば同期光ネットワーク(SONET)若しくは同期デジタル階層(SDH)など)を含む。特定の実施形態では、一又は複数のリンク150は各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、又はかかるリンク150のうちの2つ以上の組み合わせ、を含む。リンク150は、必ずしも、ネットワーク環境100全体を通じて同じである必要はない。一又は複数の第1リンク150は、一又は複数の第2リンク150と、一又は複数の点で異なっていることがある。
[59]図2Aは、三角測量演算の一例を示している。この図では、単純化のために、三角測量が2次元構成として示されているが、当業者には、3次元でも同じ概念が適用されうることが認識されよう。システム環境200はプロジェクタ210を含み、プロジェクタ210は、三角測量では、プロジェクタ位置215(例えば、プロジェクタのレンズの点表現)によって表わされうる。概念上、発光240(単純化のために単一のビームとして示しているが、複数のビーム又は平面であることもある)は、プロジェクタ位置215から投影され、反射点230においてオブジェクト260と交差する。システム環境200は、特定の実施形態では、実質的に重複した視野を有するよう設定された2つの検出器220-1及び220-2(集合的に検出器220と称される)を、更に含む。この三角測量演算では、検出器220-1と220-2は、検出器位置250-1と検出器位置250-2(集合的に検出器位置250と称される)によって、それぞれ表わされうる。特定の実施形態では、検出器位置250は、概念的に検出器220と定義されるピンホールレンズでありうる。
[60]プロジェクタ210は、光を放出することが可能な任意の種類のデバイスを含みうる。例えば、プロジェクタ210は、垂直共振器面発光レーザ(VCSEL)といった、レーザエミッタを含みうる。機能上、プロジェクタ210は、システム環境200内に発光240を放出する。発光240は、ビームサイズ、ビーム形状、ビーム強度、ビーム波長などといった、様々な特性を有しうる。特定の実施形態では、発光240は、コヒーレントなコリメート発光(レーザなど)でありうる。発光240は、ライン、格子、円環などの形態で、システム環境200を通って進みうる。加えて、発光240は、一又は複数の形態(例えば、2つ以上のライン、2つ以上の円環形状、2つ以上の格子など)の複数のインスタンスを含みうる。様々な実施形態において、発光240は、発光240の経路内にあるオブジェクト(例えばオブジェクト260)と相互作用する。このオブジェクトは、例としては(これらに限定されるものではないが)、壁、椅子、人間、動物、木、植物、曲面、メッシュなどでありうる。例えば、オブジェクト260は、発光240の一部又は全部を、反射及び/又は吸収しうる。詳細には、ラインc1は、オブジェクト260によって反射された発光240の、検出器220-1に入射する部分を表わしうる。同様に、ラインc2は、オブジェクト260によって反射された発光240の、検出器220-2に入射する部分を表わしうる。
[61]検出器220-1及び検出器220-2は、光を検出することが可能な任意の種類のデバイスでありうる。例えば、検出器220-1と検出器220-2のいずれか又は両方は、可動プラットフォーム上に装着された内外型(inside-outside)の光検出器又はカメラ、アレイセンサ(例えば線形アレイセンサ、平面アレイセンサ、円形アレイセンサなど)等でありうる。様々な実施形態において、検出器220-1及び検出器220-2は無フィルタでありうる。したがって、検出器220-1及び検出器220-2は、光の波長帯域(例えば発光240の波長)を優先的に選択する検出感度を示すことなく、様々な光の波長に対して同様な検出感度を示しうる。稼働時に、検出器220-1は、検出器開孔(図示せず)に進入する光を検出する。一部の実施形態では、検出器220-1と検出器220-2は各々、光を集束させる一又は複数のレンズを含みうる。例としては(これに限定するものではないが)、レンズが、ラインc1に沿って進む光を、検出器220-1の画像センサに集束させうる。様々な実施形態において、検出器220-1は、システム環境200におけるオブジェクトの位置を特定するために、検出された光の位置をクライアントシステム130(例えばヘッドマウントディスプレイ)に送信する。
[62]様々な実施形態において、ヘッドマウントディスプレイ内のプロセッサが、検出器220から受信したデータを処理するために、(クライアントシステム130、コンピューティングシステム160、又はサードパーティシステム170のいずれか又は全てに記憶された)ARアプリケーションを実行する。例えば、ARアプリケーションは、発光240の反射点230に対応する信号を識別するために、検出器220-1から受信した入力を解析しうる。例えば、ARアプリケーションは、予め設定された閾値強度を下回る光に対応する信号があれば、それをフィルタ除去する。ARアプリケーションは、反射点230に対応しうる検出器信号候補を識別すると、それが実際に反射点230に対応していることを検証し、三角測量技法を使用してオブジェクト260上の反射点230の奥行きを計算しうる。
[63]プロジェクタ210と、検出器220の各々と、オブジェクト260上の反射点230との間の幾何学的関係が、三角測量演算の基礎を形成するために使用されうる。ラインa1は、プロジェクタ位置215と検出器220-1の検出器位置250-1との間の、既知のベースライン距離を表わしている。同様に、ラインa2は、プロジェクタ位置215と検出器220-2の検出器位置250-2との間の、既知のベースライン距離を表わしている。更に、ラインbは、プロジェクタ位置215から放出された発光240の経路を表わしている。発光240は、反射点230においてオブジェクト260から反射しうる。ラインc1は、反射点230から検出器位置250-1に向かって進む反射光の経路を表わしてよく、ラインc2は、反射点230から検出器位置250-2に向かって進む反射光の経路を表わしうる。
[64]したがって、第1の三角形(本書では「三角形1」と称される)は、ラインa1、ラインc1、及びラインbによって説明されてよく、ラインa1とラインc1との間に角度α1が形成され、ラインc1とラインbとの間に角度β1が形成され、かつラインbとラインa1との間に角度θ1が形成される。上述したように、ラインa1の長さは既知である。ラインa1の長さは、一定の検出器位置250-1及び一定の投影器位置215に基づいて事前に算出されうるからである。特定の実施形態では、角度θ1も既知でありうる。検出器位置250-1とプロジェクタ位置215との一定の相対位置(ベースラインa1によって表わされている)に対する、発光240の軌跡が既知であるからである。図2Aに示している角度θ1は直角(すなわち90度)であるように見えるが、当業者には、θ1はかかる角度に限定されるわけではなく、他の任意の角度になりうることが認識されよう。最後に、角度α1は、検出器250-1の視野内の、反射点230の位置に基づいて算出されうる。反射点230が検出器220-1のセンサによって捕捉される点は、検出器220-1の視野によって画定される画像面内の一点に対応する。概念上、画像面内のこの点が現れる場所は、ラインc1が画像面と交差する場所である。画像面内のこの交点及び画像面の既知の中心は、画像面の中心と検出器位置250-1との間の既知の関係(例えば、画像面の中心と検出器位置250-1との間の距離、及び検出器位置250-1と中心とを結ぶラインと画像面との間の角度)と共に、(例えば三角測量を介して)角度α1を算出するために使用されうる。角度α1、辺a1、及び角度θ1が確認されれば、三角形1の残りの寸法は、三角形の既知の幾何学的特性に基づいて算出されうる。例えば、プロジェクタ位置215からの反射点230の第1の奥行きを表わすために、ラインbの長さが算出されうる。
[65]前述したように、放出光を使用して奥行き演算を実施することに関する課題の1つは、検出器によって捕捉される、対応する反射光を正確に識別する必要があるということである。捕捉された画像内の一点が、誤って放出光の反射と識別された場合、様々な三角測量の前提が成立しなくなるので、三角測量演算は誤ったものとなる(例えば、誤って識別された画像内の点は、反射点230に対応していなければ、ラインc1と画像面の交点とを表わすために使用不可となり、したがって、角度α1の算出も誤ったものとなる)。放出光の検出を支援するやり方の1つは、特定の波長(例えば赤外波長)の光を放出し、この波長に合わせてカスタマイズされたフィルタを伴う検出器を使用することである。しかし、前述したように、様々な応用において、このようにすることは実用的ではないことがある。例えば、奥行き検知システムが、リソース(例えば電力、面積(real estate)、及び重量)が限られたヘッドマウントディスプレイと一体化される場合、構造化光を検出するための特別なフィルタを有する検出器を追加することは、実行不可能であること又は望ましくないことがある。これは特に、ヘッドマウントディスプレイが、オブジェクト検出及びその他の体験用途ために使用される無フィルタカメラを既に有している可能性があるからである。
[66]特定の実施形態では、放出光の正確な識別を支援するために、第2の無フィルタカメラにより捕捉された情報を使用して反射点候補に第2の奥行き演算を実施することによって、この反射点候補が実際に放出光の反射であることが検証される。図2Aを再度参照するに、第2の三角形(本書では「三角形2」と称される)は、ラインa2、ラインc2、及びラインbによって説明されてよく、ラインa2とラインc2との間に角度α2が形成され、ラインc2とラインbとの間に角度β2が形成され、かつラインbとラインa2との間に角度θ2が形成される。ラインa1及び角度θ1と同様にラインa2及び角度θ2も、プロジェクタ位置215と検出器位置250-2との既知の一定の相対位置、及び放出光240の軌跡によって、既知となりうる。角度α2の算出は、詳細に上述した、α1がどのように算出されるかと同様でありうる。特定の実施形態では、検出器220-2によって捕捉された画像内の一点が、検出器220-1の画像内で捕捉された反射点230に対応するものとして識別されうる。特定の実施形態では、補足された2つの画像における点同士の対応は、任意の好適なステレオ対応アルゴリズム又はマッチアルゴリズムを使用して特定されうる。検出器220-2の視野によって画定された画像面におけるかかる点の位置は、この画像面の既知の中心、及び画像面の中心と検出器位置250-2との間の既知の関係(例えば、画像面の中心と検出器位置250-2との間の距離、及び検出器位置250-2と中心とを結ぶラインと画像面との間の角度)と共に、(例えば三角測量を介して)角度α2を算出するために使用されうる。角度α2、辺a2、及び角度θ2が確認されれば、三角形2の残りの寸法は、三角形の既知の幾何学的特性に基づいて算出されうる。例えば、プロジェクタ位置からの反射点230の第2の奥行きを表わすために、ラインbの長さが算出されうる。検出器220-2を使用して算出された反射点230の第2の奥行きが、検出器220-1を使用して算出された第1の奥行きと(例えば所定の閾値を超過して)異なる場合には、反射点230は、放出光240に対応していないと見なされ、却下されうる。
[67]図2Bは、2つのプロジェクタ210-1及び210-2を使用する三角測量演算の一例を示している。この図では、単純化のために、三角測量が2次元構成として示されているが、当業者には、3次元でも同じ概念が適用されうることが認識されよう。システム環境201は、2つのプロジェクタ210-1及び210-2を含み、これらのプロジェクタは、三角測量のでは、プロジェクタ位置215-1及び215-2(例えば、プロジェクタレンズの点表現)によって表わされうる。概念上、発光240-1及び240-2(単純化のためにそれぞれ単一のビームとして示しているが、複数のビーム又は平面であることもある)は、それぞれのプロジェクタ位置215-1及び215-2から投影され、それぞれの反射点230-1及び230-2においてオブジェクト260と交差する。システム環境201は、特定の実施形態では、視野を有する検出器220を更に含む。この三角測量演算では、検出器220は検出器位置250によって表わされうる。特定の実施形態では、検出器位置250は、概念的に検出器220と定義されるピンホールレンズでありうる。プロジェクタ210-1及び210-2は、図2Aを参照して上述したように、光を放出することが可能なデバイスでありうる。検出器220は、図2Aを参照して上述したように、光を検出することが可能な任意の種類のデバイスでありうる。
[68]プロジェクタ210と、検出器220と、オブジェクト260上の反射点230との間の幾何学的関係が、三角測量演算の基礎を形成するために使用されうる。ラインa1は、プロジェクタ位置215-1と検出器位置250との間の既知のベースライン距離を表わす。同様に、ラインa2は、プロジェクタ位置215-2と検出器位置250との間の既知のベースライン距離を表わす。更に、ラインb1は、プロジェクタ位置215-1から放出された発光240-1の経路を表わし、ラインb2は、プロジェクタ位置215-2から放出された発光240-2の経路を表わす。発光240-1と240-2はそれぞれ、反射点230-1と230-2においてオブジェクト260から反射しうる。ラインc3は、反射点230-1から検出器位置250に向かって進む反射光の経路を表わしてよく、ラインc4は、反射点230-2から検出器位置250に向かって進む反射光の経路を表わしうる。
[69]したがって、第1の三角形(本書では「三角形1」と称される)は、ラインa1、ラインc3、及びラインb1によって説明されてよく、ラインa1とラインc3との間に角度α1が形成され、ラインc1とラインbとの間に角度β1が形成され、かつラインbとラインa1との間に角度θ1が形成される。上述したように、ラインa1の長さは既知である。ラインa1の長さは、一定の検出器位置250及び一定のプロジェクタ位置215-1に基づいて事前に算出されうるからである。特定の実施形態では、角度θ1も既知でありうる。検出器位置250とプロジェクタ位置215-1との一定の相対位置(ベースラインa1によって表わされる)に対する、発光240-1の軌跡が既知であるからである。最後に、角度α1は、検出器250の視野内の、反射点230-1の位置に基づいて算出されうる。検出器220のセンサによって反射点230-1が捕捉される点は、検出器220の視野によって画定される画像面内の一点に対応する。概念上、画像面内のこの点が現れる場所は、ラインc3が画像面と交差する場所である。画像面内のこの交点及び画像面の既知の中心は、画像面の中心と検出器位置250-1との間の既知の関係(例えば、画像面の中心と検出器位置250-1との間の距離、及び検出器位置250-1と中心とを結ぶラインと画像面との間の角度)と共に、(例えば三角測量を介して)角度α1を算出するために使用されうる。角度α1、辺a1、及び角度θ1が確認されれば、三角形1の残りの寸法は、三角形の既知の幾何学的特性に基づいて算出されうる。例えば、プロジェクタ位置215-1からの反射点230-1の第1の奥行きを表わすために、ラインb1の長さが算出されうる。
[70]図3は、プロジェクタ210の一例を示している。システム環境300は、プロジェクタ210、レーザ発光340、光学素子350、放出パターン360、及びオブジェクト330上の光投影370を含む。プロジェクタ210は、光を放出することが可能な任意の種類のデバイスを含みうる。例えば、プロジェクタ210は、垂直共振器面発光レーザ(VCSEL)といった、レーザエミッタを含みうる。発光340は、ビームサイズ、ビーム形状、ビーム強度、ビーム波長などといった、様々な特性を有しうる。特定の実施形態では、発光340は、コヒーレントなコリメート発光(レーザなど)でありうる。発光340は、ライン、格子、円環などの形態で、システム環境300を通って進みうる。加えて、発光340は、一又は複数の形態(例えば、2つ以上のライン、2つ以上の円環形状、2つ以上の格子など)の複数のインスタンスを含みうる。
[71]様々な実施形態において、発光340は、一又は複数の光学素子350を通過して、奥行き検知に使用される構造化光を生成しうる。光学素子350は、回折素子、屈折素子、及び/又は反射素子を含みうる。光学素子350は、発光340をコリメートし、発光340を集束させ、発光340を複数のビームに分割し、発光を一又は複数の軸に沿って優先的に拡散させてラインパターン及び/又は格子パターンを生成し、発光340を集束及び/又は拡散させることが可能である。詳細には、光学素子350は、光をコリメートするためのコリメータと、発光340を2つ以上のビームに分割するためのビームスプリッタとを含みうる。加えて、光学素子350は、ライン生成装置(例えば、1つの軸に沿って非周期的な断面を有するホモジナイザ、格子角度の分離がスポット角度幅を下回る回折光学素子、1つの次元に沿って湾曲した反射面又は屈折面など)を含みうる。
[72]一部の実施形態では、光学素子350は、発光340を修正して、環境300を通って伝搬する放出パターン360(例えば一又は複数のライン)を有する、構造化光を発生させうる。様々な実施形態において、放出パターン360は、その経路内の物理的オブジェクト(例えば330)と相互作用する。このオブジェクトは、例としては(これらに限定されるものではないが)、壁、椅子、人間、動物、木、植物、曲面、メッシュなどでありうる。例えば、オブジェクト330は、発光の一部又は全部を、反射及び/又は吸収しうる。放出パターン360が環境内のオブジェクト(例えばオブジェクト330)に当たると、ラインはオブジェクト330と重なり、光投影370を発生させる。光投影370は、湾曲、尖点、不連続部などに沿ってオブジェクト330の輪郭を包みこむことによって、オブジェクト330の滑らかでない(textured)又は別様に非平面である表面及び/又はエッジについての、視覚的なキュー情報(cues)を提供する。したがって、ARアプリケーションは、オブジェクト330の特性を特定するために、予測される放出パターン360と比較した、光投影370における歪み又は不連続を特定しうる。
[73]図4Aは例示的な検知イベントを示している。システム環境400は、プロジェクタ210、発光340、光学素子350、放出パターン360、オブジェクト330、反射光410、及び画像センサ430(例えば、図2Aに示している検出器220-1又は検出器220-2のもの)を含む。画像センサ430は、ピクセルの格子(フォトサイトとも称されうる)を含んでよく、そのうちの1つがピクセル420-1として識別されている。特定のピクセルは反射光410を検出しうる。参照を容易にするために、本書では、かかるピクセルは光反射ピクセルと称される(例えば、そのうちの1つが光反射ピクセル422-1として識別されている)。
[74]様々な実施形態において、放出パターン360がオブジェクト330上に光投影を形成し、この光投影が画像センサ430によって検出されうる。詳細には、オブジェクト330は、光放出パターン360の一部分を画像センサ430向けて反射させる。様々な実施形態において、オブジェクト330は、鏡面及び/又は拡散面を含みうる。鏡面は、特定の角度(例えば、光パターン360の法線に対する入射角度を正確に反映する、オブジェクトの面法線に対する角度)で優先的に、光を偏向させうる。拡散面は光を、特定の角度で優先的に反射させることなく、複数の方向に反射させる。
[75]様々な実施形態において、画像センサ430は、フォトサイトとも称される感光性ピクセル(ピクセル420-1など)のアレイを含みうる。環境400からの光がこれらのピクセルに当たると、ピクセルは信号を生成しうる。例えば、ピクセル420-1の両端間の電圧降下が、ピクセル420-1が受光した光の強度に比例して、増大しうるか又は減少しうる。同様に、オブジェクト330からの反射光410がピクセル422-1に当たると、ピクセルは信号を生成しうる。図4Aに示しているように、反射光410は、ピクセル422-1によって検出される。一部の実施形態では、反射光410の強度は、システム環境400内の周辺光の平均強度を超過しうる。したがって、ARアプリケーションは、放出パターン360に対応する反射光410とその他の光源(本書では疑似光又は疑似信号と称される)との間の曖昧性をなくすために、強度ディスクリミネータを適用しうる。このプロセスは、例えば、反射光410に対応する可能性が高いピクセル候補を選択するのに役立ちうる。様々な実施形態において、ピクセルが実際に反射光410に対応しており、その奥行きが三角測量に基づいて算出されうることを検証するために、各ピクセル候補について、図2Aを参照して上述したプロセスが行われうる。したがって、ARアプリケーションは、システム環境400内のオブジェクトの3次元測定値を取得しうる。加えて、光パターン360によって生成された光投影の位置が、オブジェクト330の表面に沿って移動し、かつ/又はシステム環境400のあちこちを移動するにつれて、ARアプリケーションは、反射光410から、奥行きデータ及び/又は座標データを連続的に生成しうる。ARアプリケーションは更に、生成された奥行きデータ及び/又は座標データをコンパイルして、オブジェクト330及び/又はシステム環境400の3次元奥行きマップを形成しうる。更なる実施形態では、ARアプリケーションは、反射光410に対応する検出座標をサブピクセル精度に解像する(resolve)ことによって、検出解像能を向上させうる。
[76]図4Bは、面異常の例示的な検出イベントを示している。システム環境405は、プロジェクタ210、発光340、光学素子350、放出パターン360、オブジェクト330、反射光410、及び画像センサ430(例えば、図2Aに示している検出器220-1又は検出器220-2のもの)を含む。画像センサ430は、ピクセルの格子(フォトサイトとも称されうる)を含んでよく、そのうちの1つがピクセル420-1として識別されている。
[77]加えて、システム環境405は、オブジェクト330を部分的に遮蔽するオブジェクト490であって、オブジェクト490のエッジと表面330との間に表面不連続性を導入する、オブジェクト490を含む。オブジェクト490からの反射光(本書では反射光415と称する)は、オブジェクト330からの反射光410がピクセル(例えばピクセル422-1など)に当たる位置とは異なる箇所において、画像センサ430の特定のピクセル(ピクセル424-1など)に当たり、不連続パターンを形成する。様々な実施形態において、反射光415の特性はオブジェクト490の表面特性を示す。詳細には、ARアプリケーションは、反射光415を受光するピクセル(例えばピクセル424-1)の位置、配向、数、強度、及び/又は分布を利用して、オブジェクト490の表面特性及び/又はオブジェクト490とオブジェクト330との間の関係を特定しうる。例えば、図示しているように、反射光410に関連付けられたピクセル(例えばピクセル422-1)と、反射光415に関連付けられたピクセル(例えばピクセル424-1)との間には、不連続性が存在する。ARアプリケーションは、図2Aの三角測量技法に加えて、ピクセルのうち反射光415に関連付けられたものに対する反射光410に関連付けられたピクセルの変位、配向、数、強度、及び/又は分布の、一部又は全部を解析することで、オブジェクト330、オブジェクト490、及びオブジェクト330とオブジェクト490との間の表面不連続性を特徴付け、画像化しうる。例えば、一部の実施形態では、反射光415に関連付けられたピクセル(例えば424-1)は、反射光410に関連付けられたピクセル(例えば422-1)に対して、下方に、上方に、左側に、右側に配置されることや、左に回転すること、右に回転することなどが可能である。追加的又は代替的には、反射光410に関連付けられたピクセルは、反射光415に関連付けられたピクセルとは異なる強度、異なる空間分布、及び/又は異なるピクセル数を有しうる。
[78]更に、一部の実施形態では、プロジェクタ210は、オブジェクト330及びオブジェクト490に向けて光パターン360の複数のインスタンス(例えば、2つ以上のレーザ光のライン)を放出して、奥行きマッピングの効率を向上させうる(例えば、環境の複数の領域の奥行きが同時に特定されうる)。したがって、画像センサ430は、環境405内の複数のオブジェクトから反射する光パターン360の各インスタンスから、反射光を受光しうる。放出された光パターン360の特定のインスタンスに各信号を関連付けるために、アプリケーションが画像センサ430からの信号を解析しうる。このアプリケーションは、検出器(例えば検出器220-1及び/又は検出器220-2)によって検出された光反射ピクセルの各々(例えば、図4Bに示しているピクセル422-1又は424-1)を、オブジェクト330及び/又はオブジェクト490から反射された放出パターン360の特定のインスタンスとマッチさせうるか、又は関連付けうる。ある種の実施形態では、このマッチングプロセスを容易にするために、放出パターン360の各インスタンスが固有のシグネチャを有しうる(例えば、各ラインが、異なる強度、波長、時間エンコーディング、又は空間エンコーディングなどを有しうる)。
[79]他の実施形態では、放出パターン360の複数のインスタンスは、それらの相対順序を除き、同一の照射特性(例えば、同一の強度、色、ピッチなど)を有しうる。特定の実施形態では、放出パターンの各インスタンスを検出された照射パターンとマッチさせるために、順序が使用されうる。例えば、放出パターン360は5つのラインを含んでよく、この5つのラインは、一定の又は可変の分離距離及び/又は回転角度を伴って、互いから垂直方向に(かつ/又は水平方向)に離間し、配向され、かつ/又は回転している。アプリケーションが、反射された照射パターンの相対順序を識別し、特定するために、検出器220-1及び/又は検出器220-2によって生成された検出器信号を解析しうる。一例としては、プロジェクタは、検出器の予想視野をカバーするために、互いに平行に離間している、順序付けられた5つのラインを投影しうる。順序付けられたこの5つのラインからの反射光は、検出器によって検出される時にも、その相対順序を維持する。様々な実施形態において、検出器によって検出された反射照射パターンは、同じグループに属する反射照射パターンが同じ投影ラインに対応すると見なされるように、論理的にグループ化されうる。様々な実施形態において、反射照射パターンのセグメント又はピクセルは、反射照射パターンの他のセグメント又はピクセルに対する相対位置又はその他の特性(空間的分離距離、空間的分離方向、空間的配向など)に基づいて、グループ化されうる。例えば、反射照射パターンのあるセグメントが、反射照射パターンの他のどのグループよりもある1つのグループに近接していれば、このセグメントはそのグループに属するものとして分類されうる。反射照射パターンのグループ及びそれらの相対順序を識別することによって、反射照射パターンのグループとそれぞれの投影ラインとがマッチングされうる。例えば、最上部の投影ラインは、検出された照射パターンの最上部のグループに関連付けられてよく、最上部から2番目の投影ラインは、検出された照射パターンの最上部から2番目のグループに関連付けられてよく、以下同様である。様々な実施形態において、あるグループに属するピクセルは、このグループに関連付けられた投影ラインに、実際に対応することも、対応しないこともある。図2Aを参照して上述した実施形態は、このピクセルが実際に投影ラインに対応しているかどうかを検証するために使用されうる。ピクセルが投影ラインに対応していれば、関連する奥行き値が特定され、奥行きマップを生成するために使用されうるが、対応していなければ、そのピクセルは不要とされ、奥行きマップに寄与することはない。
[80]図5は、本書に記載の実施形態を実装するために使用されうる、例示的なヘッドマウントディスプレイ510を示している。システム環境500はヘッドマウントディスプレイ510を含み、ヘッドマウントディスプレイ510は、検出器220-1、検出器220-2、プロジェクタ210、ベースラインa1、及びベースラインa2を含む。様々な実施形態において、ベースラインa1はプロジェクタ210と検出器220-1との間の距離であり、ベースラインa2はプロジェクタ210と検出器220-2との間の距離である。加えて、プロジェクタ210は、エミッタ(例えば520-1)及び電圧供給部(例えば530-1)を含む。
[81]様々な実施形態において、検出器220-1及び検出器220-2(本書では概括的に検出器220と称される)は、ヘッドマウントディスプレイ510の角部に配置された、前向きの無フィルタカメラでありうる。これらの検出器220は、位置追跡のために、内外型カメラとして機能しうる。図示しているように、検出器220は、システム環境500のステレオ撮像を可能にするよう、ヘッドマウントディスプレイ510に位置付けられ、ヘッドマウントディスプレイ510上で配向されうる。詳細には、検出器220-1は、(ディスプレイ510を着用しているユーザの視点から見て)ヘッドマウントディスプレイ510の右側に配置され、システム環境500の右側画像を生成しうる。更に、検出器220-2は、ヘッドマウントディスプレイ510の左側に配置され、システム環境500の左側画像を生成しうる。
[82]したがって、検出器220は、システム環境500内のオブジェクトから反射された光を検出しうる。ARアプリケーションは、システム環境500におけるヘッドマウントディスプレイ510の位置を特定する時に、検出器220-1及び検出器220-2によって生成された検出器データを解析しうる。詳細には、検出器220-1と検出器220-2の各々は、無フィルタなので光の各波長に対して同様の検出感度を示す。プロジェクタ210によって放出された反射光に対応する検出器信号を分離させるために、ヘッドマウントディスプレイ510に関連付けられたコンピューティングシステムが、本書に記載の実施形態(例えば、図2Aを参照して説明している三角測量と検証のプロセス)を実施しうる。
[83]機能上、一部の実施形態では、検出器220の各々はフレームバッファを含みうる。フレームバッファは、ある時間間隔内に検出器によって生成される検出信号を記憶する。フレームとは、ある時間間隔内に取得される検出器信号のセットである。この時間間隔が終了すると、フレームはフレームバッファに記憶され、次の時間間隔が経過するまでの間、後続の検出器信号が新たなフレームに記憶される。新たなフレームが生成される頻度は、フレームレートと定義されうる。様々な実施形態において、フレームレートが高くなると、システム環境500における時間的変化の高解像能検出が可能になるが、それと同時、エネルギー負荷の増大が生じる。その一方、フレームレートが低くなれば、システム環境500における時間的変化の検出の解像能は低くなるが、エネルギー負荷の低減が生じる。様々な実施形態において、ARアプリケーションは、各検出器220を、同じフレームレートで又は別々のフレームレートで動作するよう設定しうる。追加的又は代替的には、ARアプリケーションは、検出器220の各々が動作するフレームレートを、動的に選択しうる。ARアプリケーションは更に、システム環境500の一又は複数の特性に基づいて、フレームレートを増大及び/又は低減させうる。
[84]一部の実施形態では、ARアプリケーションは、検出器220を、低フレームレートで動作するよう設定しうる。例えば、ARアプリケーションは、検出器220を、毎秒10フレームと50フレームとの間(例えば30フレーム毎秒(fps)など)で動作するよう設定しうる。かかる実施形態では、エネルギー負荷は低くなりうる。例えば、エネルギー負荷は、例としては10ミリワットと50ミリワットとの間(例えば30ミリワット)になりうる。したがって、検出器220の動作を可能にするには、より小さな電力供給源でも十分になりうる。追加的又は代替的には、(例えば、ヘッドマウントディスプレイ510に搭載された、又はヘッドマウントディスプレイ510の外部の)電力供給源の有効寿命が延長されうる。更に、各検出器220の材料費が安価になりうる。例えば、材料費が$2と$10との間(例えば$6など)になりうる。
[85]様々な実施形態において、プロジェクタ210は、一又は複数の波長で光を放出する、一又は複数のエミッタ520を含みうる。一部の実施形態では、各エミッタ又はエミッタのグループが、個別に電力供給源(例えば電圧供給部)に接続されうる。追加的又は代替的には、エミッタ520の一又は複数の横列及び/又は一又は複数の縦列が、電力供給源に接続されうる。したがって、ARアプリケーションは、例えば、一又は複数の個別のエミッタによって、エミッタの一又は複数の対によって、エミッタの一又は複数の横列によって、エミッタの一又は複数の縦列によって、エミッタの一又は複数のグループによって放出される、光の強度を制御しうる。こうすることで、ARアプリケーションは、プロジェクタ210によって生成される光の強度を増減し、別々の放出パターンを生成しうる。ARアプリケーションは更に、一又は複数のエミッタ520を選択的にオンに及び/又はオフにすることによって、プロジェクタ210により生成される発光の方向を制御しうる。例えば、ARアプリケーションは、光のビームを左に向ける時には、プロジェクタ210の左側のエミッタ520をオンにし、プロジェクタ210の右側のエミッタ520をオフにしうる。同様に、ARアプリケーションは、放出光のビームを上に、下に、右に、左に、かつ右と左と上と下との間の傾斜角度に向けるために、エミッタ520をオンに及び/又はオフにしうる。
[86]更なる実施形態では、ARアプリケーションは、特定の形態(例えばラインや格子など)を伴う発光を生成するために、エミッタ520を順次オンに及び/又はオフにしうる。発光は、システム環境500のある領域内に光投影を生成する。エミッタ520をオンに及び/又はオフにすることによって、ARアプリケーションは、システム環境500のこの領域の、光投影と相互作用する部分を制御しうる。特定の実施形態では、ARアプリケーションは、プロジェクタ210を、システム環境500の選択された領域を順次スキャンする光投影を生成するよう設定しうる。ARアプリケーションは、様々なパラメータ(例えば検出器フレームレート、選択された領域内のオブジェクトの数、選択された領域内の一又は複数のオブジェクトまでの距離、オブジェクトの種類、一又は複数のオブジェクトの表面の特徴、システム環境500の光ノイズレベル、プロジェクタ210によって放出される光パターンの種類など)に基づいて、スキャン周波数を選択しうる。
[87]様々な実施形態において、ARアプリケーションは、投影光パターンの希薄度(sparseness)及び/又は密度を増大及び/又は減少させるために、エミッタ520をオンに及び/又はオフにしうる。例えば、ARアプリケーションは、撮像されているオブジェクトがヘッドマウントディスプレイ510の近くにあると判定した場合には、プロジェクタ210によって放出される光パターンの希薄度を増大させるために、各エミッタ520によって放出される光の強度を減少させ、かつ/又は、一又は複数のエミッタ520をオフにしうる。あるいは、ARアプリケーションは、オブジェクトがシステム環境510内の遠くにあり、かつ/又はシステム環境がノイズの多い環境であると判定した場合には、(例えば、エミッタ520のうちの一又は複数への電圧供給を増大させることによって)エミッタ520によって放出される光の強度を増大させるよう、かつ/又は(例えば、光を発生させるエミッタ520の数を増加させることによって)プロジェクタ510によって放出される光パターンの密度を増大させるよう、設定されうる。
[88]ヘッドマウントディスプレイ510は、ユーザによって着用されうる。ユーザがシステム環境500を通って移動するにつれて、ヘッドマウントディスプレイ510の位置も変化しうる。したがって、ARアプリケーションは、プロジェクタ210を、ヘッド搭載ディスプレイ510の位置がシステム環境500を通って移動するにつれて、連続的に、周期的に、かつ/又は散発的にシステム環境500内に光を放出するよう、設定しうる。加えて、ARアプリケーションは、検出器220-1及び検出器220-2を、システム環境500内の周辺光を連続的に検出するよう設定しうる。ARアプリケーションは更に、検出器220-1及び検出器220-2からのデータを連続的に解析して、プロジェクタ210によって生成された、システム環境500内のオブジェクトから反射された光に対応する検出器信号を分離させうる。ARアプリケーションは、分離された検出器信号に基づいて奥行き及び/又は座標の情報を算出し、算出された情報をシステム環境マップに追加することも可能である。
[89]様々な実施形態において、プロジェクタ210は、ユーザが自分の頭部を垂直方向又は水平方向に移動させるのと同時に検出器によって放出された光パターンが環境500を垂直方向及び水平方向にスイープするように、ヘッドマウントデバイス510の配向に対してある角度(例えば45度)に位置付けられうる。したがって、ARアプリケーションは、ユーザの頭部の垂直移動と水平移動のいずれかに基づいて、表面についての垂直方向情報及び/又は水平方向情報を取得しうる。
[90]更に、ARアプリケーションは、システム環境500の特性に基づいて、プロジェクタ210によって生成される光パターンの様々な特性を動的に調整しうる。例えば、ヘッドマウントディスプレイ510が一又は複数のオブジェクトに近い位置にある場合、ARアプリケーションは、プロジェクタ210の出力強度を低減しうる。しかし、ARアプリケーションは、ヘッドマウントディスプレイ510がシステム環境500内でオブジェクトから離れた位置へと移動すると、出力強度を増大させるよう、プロジェクタ210を設定しうる。更に、ARアプリケーションは、プロジェクタ210及び検出器220をどのように修正するかを特定する時に、現時点のシステム環境マップの見直しを行いうる。ARアプリケーションは、システム環境500のあるエリアが良好にマッピングされていると判定した場合には、検出器220のフレームレートを低減しうる。しかし、ARアプリケーションは、システム環境500内にマッピングされていないオブジェクトが存在していると、及び/又は、システム環境500内のマッピングされたオブジェクトの位置が変化したと判定した場合、検出器220-1と検出器220-2のうちの一又は複数の、フレームレートを増大させうる。
[91]様々な実施形態において、ARアプリケーションは、システム環境500内にある生オブジェクト(例えば人間や動物など)によって検出されうる光量に基づいて、プロジェクタ210によって生成される放出の強度を動的に調整しうる。詳細には、ARアプリケーションは、見込まれる光検出強度を閾値強度レベル未満に保つために、放出強度を減少させ、かつ/又は放出パターンの希薄度を増大させうる。例えば、ARアプリケーションは、高密度のレーザパターンを実装する場合には、見込まれる光検出強度を閾値強度レベル未満に保つために、出力放出強度を低減しうる。あるいは、様々な実施形態において、ARアプリケーションは、低密度の光パターンを実装する場合には、遠くのオブジェクトを撮像するために、見込まれる光検出強度が閾値強度レベルを下回っている限りにおいて、実装される出力強度を高めうる。上記の説明は2つの検出器に言及しているが、1つの検出器及び/又は3つ以上の検出器もこの開示の範囲に含まれるため、この言及は非限定的である。
[92]特定の実施形態では、格子光パターンがオブジェクト上に投影されてよく、このパターンの反射がカメラを使用して捕捉されうる。オブジェクトまでの距離は、三角測量技法を使用して、パターンの捕捉された反射に基づいて特定されてよく、この場合、パターン内の検出点は、パターンの特性を使用して、パターン内の対応する投影点とマッチングされる。
[93]図6は、可変ラインピッチを有する、例示的な格子光パターン604、606を示している。投影パターン604は、構造物又はデバイス(ヘッドセットやヘッドマウントディスプレイなど)に装着されうる一又は複数のプロジェクタ210-1、210-2によって、シーン600内に投影されうる。プロジェクタ210-1、210-2は各々、カメラから一定のベースライン距離のところに装着されうる。プロジェクタ210-1は、投影ライン620a-624aの形態で光を投影してよく、プロジェクタ210-2は、投影ライン610a-616aの形態で光を投影しうる。この例では特定の数の投影ラインが図示されているが、各プロジェクタは任意の数のラインを投影しうることに留意されたい。投影ライン610a~616aは、投影ライン620a~624aと交差してよく、投影格子パターン604を形成しうる。投影ライン620a~624aは、本書では「水平(horizontal)」ラインと称され、投影ライン610a~616aは、本書では「垂直(vertical)」ラインと称されている。「水平」及び「垂直」という用語は、解説目的で使用されており、必ずしも、ラインが水平又は垂直であることを意味するものではない。投影格子パターン604の少なくとも一部分は、一又は複数のオブジェクト602に入射し、オブジェクト602によって反射され、かつオブジェクト602上に反射格子パターン606を形成しうる。反射格子パターン606は、投影格子パターン604の歪んだ変形体でありうる。反射格子パターン606は、投影格子パターン604の形状、及びプロジェクタ(複数可)と投影ラインを反射させるオブジェクト上の点との間の距離に基づいて、ある形状を有しうる。例えば、反射ラインには湾曲又は破断が存在しうる。
[94]特定の実施形態では、垂直投影ライン610a~616aと水平投影ライン620a~624aとの交点に、投影交差部630a~636aが形成されうる。交差部630a~636a、640a、650aは、オブジェクト602によって反射されてよく、かつカメラ220によって、対応する検出交差部630b~638b、640b、650bとして検出されうる。検出ライン620bに沿った各点は、対応する投影ライン620aに沿った点に対応してよく、交差した検出ライン間の検出交差部630bの各々は、交差した検出ラインに対応する投影ライン間の投影交差部630aに対応しうる。検出交差部630bは、2つの異なる検出ライン610b、620b上の一点でありうるので、投影交差部630aにおけるその対応点は、単一のライン上の一点よりも確実に識別されうる。
[95]特定の実施形態では、カメラ220は、反射格子パターン606の一又は複数の画像を捕捉しうる。カメラ220は、ライン620a~624aの反射でありうる第1の検出ラインのセット620b~624bと、ライン610a~616aの反射でありうる第2の検出ラインのセット610b~616bとを検出しうる。カメラによって捕捉された画像内の検出ライン610b~616b、620b~624bは、捕捉された画像内のピクセルとして表わされうる。各ピクセルは、1つのオブジェクト602の表面上の一点に対応しうる。
[96]図2A及び2Bを参照して上述したように、オブジェクト上の一点までの距離は、検出パターン610b~616b、620b~624bを形成するオブジェクト602の表面上の識別された光点に基づく三角測量計算と、既知のカメラ及びプロジェクタの位置とを使用して、特定されうる。三角測量計算は、投影格子パターン604の一又は複数のフィーチャ(ライン620aや交差部630aなど)と、反射格子パターン606の一又は複数のフィーチャ(ライン620bや交差部630bなど)との間の対応を識別することと、投影パターン及び反射パターンの識別されたフィーチャの位置を使用して、オブジェクト602又はオブジェクト602の表面上の点までの距離を計算することとを、伴いうる。投影ライン610a~616a、620a~624aは、対応する検出ライン610b~616b、620b~624bにより特定の投影ラインを識別するために使用されうる特性で、エンコードされうる。この特性は、例えばライン強度、ラインピッチ、ラインパターンなどでありうる。
[97]各ライン620aの強度、及び/又は隣り合った投影ラインの対の各々620a、622aの間のピッチ(間隔)といった、投影された格子ライン620a~624a、610a~616aの一又は複数の特性は、各投影ラインがかかる特性の固有値と関連付けられうるように、(少なくとも、特定の投影格子パターン604において)固有でありうる。かかる特性は、オブジェクト602によって反射されてよく、検出特性として検出されうる。検出特性は、カメラ220を使用して、検出ライン620b~624b、610b~616bにおいて識別されうる。検出特性は、検出ライン620bの検出特性とマッチする投影特性を有する投影ライン620aを見つけ出すことによって特定の検出ライン620bに対応する投影ライン620aを識別するために、使用されうる。
[98]特定の実施形態では、上述したように、各投影ラインの一又は複数の特性(例えば強度)は、投影格子パターン604の別の投影ラインの特性とは異なっているか、又は少なくとも、隣り合った若しくは近傍の別のラインの特性とは異なっていることがある。投影ラインと検出ラインとの間の対応は、これらのラインの関連特性に基づいて特定の投影ラインを特定の検出ラインとマッチさせることによって、特定されうる。例えば、投影格子パターン604は、投影格子パターン604の右下へと向かうライン間距離の増大に見られるように可変の、ラインピッチ特性を有する。つまり、隣り合ったラインの対の間の距離は、隣り合った投影ラインの別の対とは異なることがある。一例としては、投影ライン612aと614aとの間の距離(d1と称されうる)は、投影ライン614aと616aとの間の距離(d2と称されうる)とは異なる。これらの2つの距離が、投影ライン622aに対応する検出ライン622bを識別するために使用されうる。例えば、d1対d2の比率は、d1/d2と計算されてよく、検出格子パターン606におけるライン間の距離の比率(例えば、検出ライン612bと614bとの間の距離であるd3対検出ライン614bと616bとの間の距離であるd4の比率)と比較されうる。比率d1/d2が、格子パターン604における隣り合ったラインの別の対について計算された比率と比較された時に、投影格子パターン604において固有なものになるように、投影ライン620a~624aの間隔が設定されている場合には、検出格子パターン606における対応する比率を算出すること、及び、比率d1/d2にマッチする(例えば、比率d1/d2と等しいか、又は比率d1/d2の閾値許容範囲内にある)検出された比率d3/d4を見つけ出すことによって、対応する検出ライン622bが識別されうる。比率d3/d4は、検出ライン612bと614bとの間の距離(d3)と、614bと616bとの間の距離(d4)との比率でありうる。
[99]特定の実施形態では、各投影ライン610aは連続的でありうる。各投影ライン610aは両終点を有してよく、この場合、ラインはその両終点間で連続的でありうる。投影パターン604は(特定のサイズのパターンでは少なくともその外側境界と)連続的であるので、現実環境での奥行きの急激な変化により、検出格子パターン606に不連続性が生じうる。反射パターンにおける不連続性を識別することによって、現実環境での奥行きの変化が検出されうる。反射ラインに沿った特性の変化によっても、交差部が不連続であることが示されうる。投影ライン610aがオブジェクト602のエッジと交差すると、対応する検出ライン610bは、オブジェクト602のエッジの位置に対応する不連続性を有しうる。この不連続性は、オブジェクトの境界を検出するために使用されうる。例えば、オブジェクト602の左上は、検出パターン606と交差する斜めの境界を有している。投影パターン604の上端及び左端のラインは、検出パターン606では切り捨てられており、投影パターン604の左上角部の左端ラインと上端ラインとの交差部は、検出パターン606においては、対応する検出交差部を有していない。検出パターン606にこの交差部が存在しないこと、及び、検出パターン606内に近傍交差部(例えば、検出ライン620bと検出パターン606の左端ラインとの交差部)が存在することにより、近傍交差部の近くにオブジェクト602のエッジが存在することが示されている。
[100]特定の実施形態では、交差部630は、交差するライン610、620の所与の対を一意的に識別するために使用されうる。検出交差部630bと投影交差部630aとの間の対応は、この交差部の特性(例えば、交差部630で交差するライン610、620の相対強度、及びこの交差部で交差するライン610、620とライン612、622といった別のラインとの、水平方向及び垂直方向の相対間隔)に基づいて、特定されうる。特性は、投影交差部630aに関して、ライン610a、620a、及びオプションでその他のライン(例えばライン612a、622a)を使用して特定されうる。投影交差部630aに関して特定された投影特性は、検出ライン610b、620b、及びオプションでその他のライン(例えば検出ライン612b、622b)を使用して、検出交差部630bの検出特性と比較されうるか又は相関付けられうる。
[101]特定の実施形態では、検出ラインの検出特性(検出された強度や検出ライン間の距離など)は、必ずしも対応する投影特性と同一ではないが、複数の投影特性と検出特性とを比較することによって対応する投影ライン若しくは交差部が特定されうるのに十分なほど、これらの特性は類似したものでありうるか、又は、許容範囲を使用することにより、等しくはないが互いの所定の許容範囲(例えば1%、3%、5%、若しくはその他の好適な許容範囲)に含まれる特性が等しいと判定されうる。例えば、各投影ラインの強度が隣り合った投影ラインとは10%異なっている場合には、20の強度値を有する特定の投影ラインに対応する(例えばマッチする)反射ラインは、20プラス/マイナスある許容範囲(例えば5%)の強度を有するラインを反射ラインの中から探し出すことによって、識別されうる。
[102]特定の実施形態では、投影パターン及び検出パターンのライン構造が、特性がマッチしていないラインであるが、特性がマッチしている他のラインの対の間にあるラインを、識別するために使用されうる。例えば、10の水平ラインであって、第1ラインが1の強度を有し、第2ラインが10の強度を有し・・・(以下同様)、最後の第10ラインが100の強度を有する、10の水平ラインが格子状に投影される場合には、検出された強度値が23の特定の検出ラインに対応する投影ラインは、一方の側に23未満の投影ラインが隣り合っており、他方の側に23を上回る投影ラインが隣り合っている、ある投影ラインを投影ラインの中から探し出すことによって、識別されうる。
[103]特定の実施形態では、投影交差部630aが特定の検出交差部630bに対応するという特定に、曖昧性が存在しうる。例えば、2つの隣り合ったラインの反射強度は、ある種の状況においては、区別することが困難でありうる。特定の交差部における曖昧性は、周囲の交差部についてなされた特定を使用して、解消又は低減されることもある。ある検出交差部の検出された属性(例えば強度やピッチなど)又は特定された位置は、近傍の交差部に伝播されうる。各交差部の検出された属性又は特定された位置は、関連する信頼値を有してよく、この信頼値は、検出された属性又は特定された位置と共に、近傍の交差部に伝播されうる。
[104]特定の実施形態では、画像内のオブジェクト602の奥行きは、検出された垂直ライン610bと水平ライン620bが画像内のオブジェクト602上で交差している検出交差部630bを識別することによって、特定されうる。次いで、検出交差部630bの照射特性を使用して、対応する投影交差部630aが識別されてよく、これが、検出交差部630bに対応するオブジェクト602上の点の奥行き(例えば、この点までの距離)を三角測量するために使用されうる。照射特性は、投影交差部でエンコードされた情報として理解されてよく、交差部630bで交差する検出ラインの強度とそれらに対応する強度、近傍のラインまでの距離、及び、図11を参照して説明する時間的にエンコードされた情報を含みうる。照射特性は、交差部間のラインにしたがって別の交差部に伝搬されうる。この伝搬は、例えば、各フレームの後やNフレーム毎の後といった好適な時間において、ある交差部で特定された又は(別の交差部から)受信された照射特性を、隣り合った各交差部(例えば、第1等近傍交差部)に伝搬させることによって、段階的に実施されうる。このようにして、情報は、局所的な方式で、交差部間で伝播されうる。交差部のグラフを通る情報の伝播は、迅速に集束しうる。特定についての信頼性情報(例えば信頼値)も伝播されうる。信頼性閾値は、他の交差部に情報を伝播するかどうかを決定するために使用されうる。信頼性情報は、例えば、ノードが交差部に対応しており、エッジが交差部間のラインに対応している、重み付けされたグラフを形成するために使用されうる。検出交差部630bの奥行きは、交差部630bにおいて入手可能な情報に基づいて、三角測量を使用して算出されてよく、この情報は、他の交差部から伝播された情報(例えば、付近の交差部の属性、及びそれらの位置又は奥行き)を含みうる。
[105]図7は、可変ライン強度を有する例示的な格子光パターン704、706を示している。図7で視認できるように、投影パターン704における各ラインの強度は、(水平ラインの場合は)その上方のラインの強度よりも、又は(垂直ラインの場合は)その左側のラインの強度よりも、大きくなりうる。一例としては、投影ライン710、720の各々が固有の強度を有している場合には、検出交差部730bがカメラ220によって検出されると、交差部730bを形成している交差した検出ライン710b、720bの強度が、カメラによって検出され、対応する強度を有している交差した投影ラインを識別することによって検出交差部730bに対応する特定の投影交差部730aを識別するために、使用されうる。例えば、投影ライン710aが強度20を有しており、投影ライン720aが強度30を有している場合には、強度20を有する検出ライン710bは投影ライン710aに対応してよく、強度30を有する検出ライン720bは投影ライン710bに対応しうる。別の例としては、強度は別様に変化することもあり、例えば、各ラインの強度は、(水平ラインの場合は)その上方のラインの強度を下回り、(垂直ラインの場合は)その左側のラインの強度を下回りうる。投影ラインの強度は、投影格子パターン704全体を通じて増大しうるので、投影ライン712aの強度は、別のライン710aの強度に係数(例えば1.25、1.5、2.0、0.5など)を乗じることによって特定される値に基づいて、設定されうる。別の例としては、投影ライン712aの強度は、各投影ラインで段階的に増加するカウンタ値に基づいて、又は投影格子704における各投影ライン710、720に固有の別の値(例えば、投影格子704に固有の、ランダムに選択された値)に基づいて、設定されうる。
[106]図8は、可変ラインパターンを有する例示的な格子光パターン804、806を示している。図8で視認できるように、各投影ライン810a、812a、814aは、異なるラインパターンを有しうる。各ラインパターンは、例えば、ドット(小型の円など)のライン形成するよう構成されたドット、破線、又は線状に配置されたその他の形状でありうる。ラインパターンは均一で(例えば、形状間の距離が一定で)あってよく、形状は同じサイズのものでありうる。あるいは、形状間の距離又は形状のサイズは変化しうる。一例としては、各投影ライン810aの形状間の距離は隣り合った投影ライン810bの形状間の距離を上回ることがあり、又は、各ライン内の形状のサイズは隣り合ったライン内の形状のサイズを上回りうる。
[107]一例としては、投影ライン810a、820aの各々が固有のラインパターン(例えば、ダッシュ又はドットといった要素のサイズ及び/又は形状)を有している場合には、検出交差部830bがカメラ220によって検出されると、交差部830bを形成している交差した検出ライン810b、820bのパターンは、カメラ220によって検出されてよく、かつ、対応するパターンを有している交差した投影ラインを識別することによって検出交差部830bに対応する特定の投影交差部830aを識別するために、使用されうる。例えば、投影ライン810aが破線パターンを有しており、その各ダッシュの長さがダッシュの各対の間のスペースの長さの2倍である場合には、同じ破線パターンを有する検出ライン810bが、投影ライン810aに対応する。
[108]図9は、格子光パターンの移動及び対応するエピポーララインを示している。特定の実施形態では、特定の交差部の点において、水平ラインと垂直ラインの奥行きが一致する。例えば、(GPS座標の変化などによって検出されうる)デバイスの移動又は(カメラによって捕捉される画像の変化などによって検出されうる)シーン内でのオブジェクトの移動の結果としての、奥行きの移動があると、反射ラインの交点が移動しうる。本書では、移動前にラインが交差していた初期点と、移動後にこれらのラインが交差する後続点との間のラインが、エピポーラライン906と称される。エピポーラ906は経路に対応していることがあり、上記2つの交差部はその経路上にのみ配置されうる。一方向のラインの数がNであり、その直交方向のラインの数がMである場合には、NxMの数の交差部が存在し、これらの交差部は、特定の経路であって、それらを通ってラインが移動しうる経路を有する。かかる経路では、互いに共通な部分は、可能な限り少なくなるべきである。次いで、ある点が特定の経路上にある場合、対応する2つの交差部が特定されうる。
[109]特定の実施形態では、ベースライン距離(例えば、第1プロジェクタと第2プロジェクタとの間の距離)を鑑みれば、交差部は、比較的少数の可能な選択肢のうちの1つでありうる。これは、比較的少数の水平ラインと垂直ラインの対だけが、その点で交差しうるからである。この交差部にどのラインが対応するかを解像するために、格子内の全ての交差部をチェックする必要はない(M本の水平ライン×N本の垂直ラインの格子は、MxNの数の交差部を含みうる)。画像内の検出点に対応する可能性がある交差部のサブセットだけを、探し出す必要がある。このサブセットは、交差部の初期位置と交差するエピポーラライン上の、又はこのエピポーララインの付近の交差部を含みうる。例えば、点を通りうる5つの垂直ライン/水平ラインの対がある場合には、この点に対応する対を識別するために、かかる対だけを探し出す必要がある。更に、垂直方向のプロジェクタとカメラとの対に関するラインは、奥行きの変化に基づいて、特定の距離、又は最大でこの特定の距離まで、移動するだけでありうる。同様に、水平方向のプロジェクタとカメラとの対に関するラインは、同じ奥行きの変化に基づいて、特定の距離、又は最大でこの特定の距離まで、移動するだけでありうる。この2つの組み合わせ(例えばラインの交点)は、エピポーラに対応する、制約された方式で移動しうる。較正(水平方向と垂直方向のベースライン)は、2つのエピポーラ制約を発生させることがあり、このエピポーラ制約によって、ラインであって、それを通って交差部が移動しうるライン(例えばエピポーラ)が特定されうる。この制約により、反射交差部に対応する、ありうる投影交差部のセットの範囲が狭められうる。上述した強度及びピッチのコーディングは、投影交差部の識別に曖昧性がある場合に、反射交差部に対応するありうる投影交差部の範囲を狭めるためにも、使用されうる。垂直方向と水平方向の反射ラインの対が対応しうる垂直方向と水平方向の投影ラインの単一の対(例えば交差部)の、ありうる範囲を狭めるために、エンコーディングとエピポーラ制約とは組み合わされうる。
[110]一例としては、カメラによって捕捉されたシーン内のデバイス又はオブジェクトの移動が検出されると、(移動前の)初期点において検出された反射交差部が、(移動後の)画像内の後続点(例えばピクセル)において検出されうる。後続点において検出された反射交差部が初期点において検出された交差部に対応する(例えば、初期点で検出された同じ反射交差部であり、したがって、初期点において検出された交差部と同じ投影交差部に対応する)かどうかを判定するために、後続点の位置が、初期点と交差するエピポーララインと比較されうる。後続点がエピポーラライン上にある(又は、エピポーララインに十分に近い)場合には、後続点において検出される反射交差部は、初期点において検出された同じ反射交差部に対応し、したがって、初期点において検出された反射交差部と同じ投影交差部に対応しうる。
[111]図9を参照するに、交差部942aを含む投影格子光パターン904aが、オブジェクト902上に投影されている。格子光パターン904は、第1プロジェクタによって投影された水平ラインを含む。パターン904aの水平方向の格子ラインは第1プロジェクタによって投影され、垂直方向の格子ラインは第2プロジェクタによって投影される。投影パターン904aの反射は、カメラによって検出されてよく、投影交差部942aに対応する検出交差部位置942bを有する検出パターン904bを生成するために、使用されうる。その後動きが生じ、この動きにおいて、オブジェクト902はカメラに対して右上方に移動したので、交差部位置は第2の検出交差部位置942cへと移動する。位置942bから位置942cへの交差部の動きは、エピポーラライン906に沿ったものでありうる。更に、オブジェクトまでの奥行きが変化するにつれて、水平ラインを投影するプロジェクタからの検出ラインは画像内で上下に移動してよく、垂直ラインを投影するプロジェクタからの検出ラインは画像内で左右に移動しうる。
[112]図10は、格子光パターンを使用して奥行きを特定するための例示的な方法1000を示している。この方法はステップ1010で始まってよく、ステップ1010において、方法は、第1プロジェクタを使用して、一又は複数の第1投影照射特性を有する第1投影パターンを投影しうる。ステップ1020において、方法1000は、第2プロジェクタを使用して、一又は複数の第2投影照射特性を有する第2投影パターンを投影してよく、第1投影パターンは第2投影パターンと交差する。ステップ1030において、方法1000は、カメラを使用して、第1投影パターンの反射と第2投影パターンの反射にそれぞれ対応する、第1検出パターンと第2検出パターンとを含む画像を捕捉してよく、このカメラは、第1プロジェクタから第1ベースライン距離のところにあり、かつ第2プロジェクタから第2ベースライン距離のところにある。
[113]ステップ1040において、方法1000は、第1検出パターンの検出照射特性及び第2検出パターンの検出照射特性を第1投影照射特性及び第2投影照射特性と比較することによって、第1投影パターンと第2投影パターンの少なくとも一方における投影点に対応する、画像内の検出点を識別しうる。ステップ1050において、方法1000は、投影点、検出点、及びカメラと第1プロジェクタと第2プロジェクタの少なくとも一方との相対位置に基づいて、検出点に関連付けられた奥行きを算出しうる。
[114]特定の実施形態では、第1投影パターンは複数の第1投影ラインを含んでよく、第2投影パターンは複数の第2投影ラインを含みうる。検出照射特性は、複数の第1反射ラインと、第1反射ラインと交差する複数の第2反射ラインとを含んでよく、第1反射ライン及び第2反射ラインは、オブジェクトの表面からの第1投影ライン及び第2投影ラインの反射に基づきうる。第1投影パターンと第2投影パターンのうちの一又は複数における投影点に対応する画像上の検出点は、第1反射ラインのうちの1つが第2反射ラインのうちの1つと交差する反射交差部を識別することによって識別されうる。
[115]特定の実施形態では、反射交差部は、一又は複数の反射交差部特性に関連付けられうる。投影交差部は反射交差部に対応しうるので、投影交差部は、第1投影ラインのうちの1つと第2投影ラインのうちの1つとの交点にありうる。投影交差部は、(1)第1投影パターンに関連付けられた一又は複数の第1投影照射特性、及び(2)第2投影パターンに関連付けられた一又は複数の第2投影照射特性、に基づいて特定された、一又は複数の投影交差部特性に関連付けられ、投影交差部特性のうちの一又は複数は、反射交差部特性のうちの一又は複数のとマッチする。検出点の奥行きは、反射交差部に関連付けられた奥行きに基づいて特定されてよく、反射交差部に関連付けられた奥行きは、カメラ、プロジェクタのうちの少なくとも1つ、反射交差部、及び反射交差部に対応する投影交差部に基づいて特定されうる、
[116]特定の実施形態では、図10の方法の一又は複数のステップが適宜反復されうる。この開示では、図10の方法の特定のステップを、特定の順序で行われるものとして説明し、図示しているが、図10の方法の任意の好適なステップが、任意の好適な順序で行われることが想定されている。更に、この開示では、図10の方法の特定のステップを含む、格子光パターンを使用して奥行きを特定するための例示的な方法について説明し、図示しているが、任意の好適なステップを含む、格子光パターンを使用して奥行きを特定するための任意の好適な方法が想定されており、かかる任意の好適なステップは適宜、図10の方法のステップのうち全部若しくは一部を含むことも、いずれをも含まないこともある。更に、この開示では、図10の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムについて説明し、図示しているが、図10の方法の任意の好適なステップを実行する任意の好適な構成要素、デバイス、又はシステムの、任意の好適な組み合わせが想定されている。
[117]特定の実施形態では、パターン(ラインなど)を投影し、投影パターンに関連付けられうる時間的な照射特性のパターンにしたがって、ある期間にわたってパターンの投影照射特性(照射強度など)を変化させることによって、奥行き検知が実行されうる。この時間的な照射特性のパターンは、例えば、照射強度のパターンでありうる。カメラは、検出パターンを形成するために、この期間にわたって複数の画像における投影パターン(ラインなど)を捕捉し、検出パターンに基づいて、検出された時間的な照射特性のパターン(例えば、3、5、7、及び9といった照射強度のパターン)を特定しうる。奥行き検知システムは、検出された時間的な照射特性のパターンを、投影パターンに使用された、投影された時間的な照射特性のパターンと比較することによって、所与の検出パターンに対応する特定の投影パターンを識別しうる。同じ時間的な照射特性のパターン(3、5、7、及び9など)を有する投影パターンが、所与の検出パターンに対応する特定の投影パターンでありうる。
[118]図11は、例示的な時間的照射パターン1102~1130を示している。一又は複数の特性が(例えばある時間的な照射特性のパターンにしたがって)経時的に変化する照射パターンが、好適な種類のプロジェクタを使用して投影されうる。投影照射特性のパターンは、一又は複数の形状の照射特性として投影されうる。この照射特性は、一又は複数の投影された形状の、例えば形状の強度、形状の幾何学的特性(ライン間の距離など)、又は他の好適な特性でありうる。これらの形状は、例えばラインの格子であってよく、パターンによって規定される照射特性を有しうる。一又は複数の形状が、別々の照射特性を使用して、別々の時間において投影されうる。カメラは、画像のシーケンス内の反射光ビームを捕捉し、これらの画像に基づいて、時間的な照射特性の検出パターンを識別しうる。投影ビームに対応する画像ピクセルを見つけ出すために、投影照射特性の既に投影された形状パターンの特性が、捕捉された画像のシーケンス内の検出パターンの特性と比較されてよく、かかる対応は、対応する画像ピクセルの位置に基づいて、三角測量によって各ピクセルの奥行きを特定するために、使用されうる。オブジェクトまでの距離は、三角測量技法を使用して、カメラによって検出された反射に基づいて特定されてよく、三角測量技法においては、カメラによって検出されたライン又はその他のパターンに対応する投影ビームを識別するために、検出されたライン又はその他のパターンと投影ラインとの間の対応が、経時的に受光されたビームの時間的な照射特性のパターンと投影ビームの時間的な照射特性の既知のパターンとをマッチさせることによって、識別されうる。
[119]特定の実施形態では、時間的な照射特性は光強度値でありうる。プロジェクタによって使用されるこの強度は、時間的な照射特性のパターンを使用して特定されてよく、この時間的な照射特性のパターンは、値のシーケンス(例示的なシーケンス1102など)でありうる。例示的なシーケンス1102は、値3、5、7、9を有している。このシーケンス内の各値は、ある持続時間(例えば5ミリ秒間、100ミリ秒間、又は他の好適な持続時間)にわたって投影されうる。時間値は、シーケンス内の各数字が異なる時間における投影ラインの強度として使用されうることを示すよう、図11のシーケンス1102に関連付けられている。ゆえに、例えば、Tミリ秒の持続時間にわたって3の強度を有するライン又はその他の形状が投影されてよく、その後強度は、別のTミリ秒にわたって5に、次いで別のTミリ秒にわたって3に、かつ別のTミリ秒にわたって9に、変更されうる。次いでこのパターンが反復されうる。各強度が投影される持続時間は、フレームが捕捉されるレートに対応してよく、この場合、各ラインの強度は、フレームのシーケンスの過程を通じて変化しうる。パターンを投影する時間は、パターンの期間と称されうる。この例では、パターン1102の期間は4Tミリ秒である。フレームは、各強度が別個のフレームで捕捉されるように、Tミリ秒毎に捕捉されうる。次いで、捕捉されたフレームに基づいてパターンが特定されうる。例えば、ある関連強度を有する検出パターンは、各フレームにおいて検出されたライン又はその他のフィーチャの強度に基づいて特定されうる。この例では、検出された時間的パターンは3、5、7、9である。次いで検出された時間的パターンは、各投影ラインを識別するために使用されうる。この例では、検出パターン3、5、7、9は、既に投影されたパターン3、5、7、9と比較されてよく、パターン3、5、7、9が投影されたときに投影されたラインが、検出ラインに対応する投影ラインでありうる。別々のシーケンスが別々の投影ラインに使用されうる。シーケンスは、ある期間(例えば、特定の1時間又は1日の間)にわたって奥行き検知システムにより投影される他のシーケンスと比較して、固有のシーケンスでありうる。シーケンスは、その期間中に検出されうる他のシーケンスとは異なるので、このシーケンスに対応する投影された形状パターン604は、検出パターン606と同じシーケンスを有する投影パターンを見つけ出すことによって識別されうる。このシーケンスの長さに対応するいくつかのフレームが補足された後、検出されたシーケンスを投影されたシーケンスと比較することによって、特定の検出ラインに対応する投影ラインが識別されうる。
[120]カメラフレームから特定される強度値は不正確でありうるので、いくつかの連続したラインの強度は、プロジェクタによってエンコードされた既知の投影強度のシーケンスのサブシーケンスとマッチングされうる。対応が正しく識別されたという信頼度を高めるために、マッチングされるこの連続したラインの数が増大されうる。つまり、各投影ビームの強度値は、所定のシーケンスにおける1つの数に対応してよく、この所定のシーケンスでは、特定の長さN(例えば、3つの連続した数字)のサブシーケンスが固有である。連続して検出されたN本のラインについて、所定のシーケンスにおける同じN個の連続した数のサブシーケンスを見つけ出すことによって、対応する投影ラインが識別されうる。
[121]図11は、時間的な照射特性のパターン3、5、7、9をエンコードする3つの異なる投影パターンを示している。異なる強度の4つのライン11104~1110が、ライン強度のパターン3、5、7、9をエンコードしている。ライン1104は、3の強度を有し、時間T1からある持続時間にわたって投影される。ライン1106は、5の強度を有し、時間T2からこの持続時間にわたって投影される。ライン1108は、7の強度を有し、時間T3に、この持続時間にわたって投影される。ライン1110は、9の強度を有し、時間T4に、この持続時間にわたって投影される。
[122]別の例としては、異なる幅の4つのライン1114~1120が、ライン幅のパターン3、5、7、9をエンコードする。ライン1114は3(例えば3ピクセル)の幅を有し、ライン1116は5の幅を有し、ライン1118は7の幅を有し、ライン1120は9の幅を有する。各ライン幅は、ある持続時間にわたって投影されうる。各ラインは、同じ持続時間にわたって投影されうる。あるいは、ライン1114~1120は別々の持続時間にわたって投影されてよく、パターンにおける異なる特性間の推移の検出は、時間的な照射特性の変化に基づいて行われうる。例えば、投影パターンの強度が変化すると、カメラは次のフレームに進みうる。
[123]例示的な投影パターン1124~1130は、シーケンス1102に基づく、密度が異なる平行ラインを含む。第1投影パターン1124は3つのラインを有し、第2投影パターン1126は5つのラインを有し、第3投影パターン1128は7つのラインを有し、第4投影パターン1130は9つのラインを有する。第1パターン1124がある持続時間にわたって投影された後に、この持続時間にわたって第2パターン1126が投影され、この持続時間にわたって第3パターン1128が投影され、かつこの持続時間にわたって第4パターン1130が投影されうる。各持続時間が長さTという時間単位である場合、合計期間は4Tとなる。投影パターン1124~1130の各々は、カメラによって捕捉されてよく、各投影パターンでエンコードされた数値が、時間的な照射特性値の検出パターンを生成するために抽出されうる。奥行き検知システムは、各投影パターン1124~1130における非交差ラインの数を数えることが可能であり、ゆえに、第1パターン1124から3という数、第2パターン1126から5という数、第3パターン1128からの7という数、及び第4パターン1130からの9という数を特定しうる。
[124]検出された時間的な照射特性のパターン1130の例示的な反復は、時間1における数字0と、それに続くパターン3579の3回の連続発生と、時間14における数字1とを含む。第1の発生は時間2~5であり、第2の発生は時間6~9であり、第3の発生は時間10~13である。投影照射特性のパターンは、このように反復されることによって、より広い時間範囲において検出されうる。パターンは、異なるパターンが選択されるまで、連続的に反復されうる。奥行き検知システムは、パターン1130に基づいて、パターンをシーケンス3、5、7、9の反復として識別しうる。
[125]特定の実施形態では、プロジェクタは、カメラから一定の距離のところにある、構造物又はデバイス(ヘッドセットなど)に装着されうるプロジェクタは、異なる強度の光を投影するためにエミッタのラインを使用してよく、各ライン上には異なる数のエミッタが存在しうる。これにより、各ラインは異なる強度を投影する。あるいは、異なる強度を生成するためにエミッタに異なる電流が印加されうる、応答可能な(addressable)照射器が使用されうる。
[126]時間的な強度エンコーディングは、他のエンコード技法(例えば、別々の場所に同時に投影される別々のラインに別々の強度を使用すること、又は投影ライン間の距離を変化させること)と組み合わされうる。かかるエンコーディングは、カメラ画像内で検出された特定の点がパターン内のどこにあるのかについての曖昧性を解消することにより、三角測量を使用してその点の奥行きを特定するために使用されうる。
[127]特定の実施形態では、プロジェクタは、本書では投影パターンと称されるパターンを投影してよく、この投影パターンは、一又は複数の形状(ラインやその他の形状など)を含みうる。各投影パターンは投影された時間的な照射特性のパターンに関連付けられてよく、この投影された時間的な照射特性のパターンにより、投影パターンの照射特性がどのように経時的に変化するかが規定されうる。一例としては、2つの異なる投影パターンPat1及びPat2が投影されうる。Pat1は、ラインであってよく、関連する時間的な照射特性のパターン1、3、5、7を有しうる。Pat2は、ドット(例えば光点)であってよく、関連する時間的な照射特性のパターン2、4、6を有しうる。
[128]カメラは、投影パターンを包含する画像を捕捉しうる。例えば、カメラは、Pat1のラインとPat2のドットの両方の画像を捕捉しうる。カメラは、特定のフレームレート(例えば30フレーム毎秒、又はその他の好適なレート)で画像を捕捉しうる。プロジェクタは、同じレートでパターン値を投影しうる。ゆえに、プロジェクタは、時間T1において、1の強度を有するラインと2の強度を有するドットとを、30フレーム毎秒に対応する持続時間にわたって投影しうる。カメラは、強度1を有するラインと、強度2を有する円とを包含する画像を捕捉した後に、強度3を有するラインと強度4を有するドットとを包含する別のフレームを捕捉しうる。奥行き検知システムは、これらの2つのシーケンスと既に投影されたシーケンスとのマッチングを試行しうる。既に投影されたシーケンスは、1、3、5、7及び2、4、6であるので、検出されたシーケンス1、3及び2、4のいずれともマッチしない。プロジェクタは続けて、強度が5のラインと強度が6のドットとを投影しうる。奥行き検知システムは、検出されたシーケンスを既に投影されたシーケンスと比較し、ドットを投影するために使用されたパターン2、4、6にマッチするものを見つけ出しうる。シーケンス2、4、5は、投影されたドットパターンに関連付けられるので、投影されたドットパターンは、検出されたドットパターンに対応する投影パターンとして識別される。
[129]奥行きが特定されると、信頼レベルが各パターンに関連付けられうる。信頼レベルが低い場合には、ラインは、停止されうるか、又は次のフレームにおいて別様に(例えば、検出されうる別の周波数で)投影されうる。この技法は、オブジェクトが黒っぽい場合、又はノイズが多い場合に、特定された奥行きを検証し、望ましいレベルの精度を実現するために使用されうる。
[130]投影ラインの各々は、特定のシーケンスで固有パターンを投影してよく、この固有パターンは、経時的にラインを検出するために使用されうる。ゆえに、(1)各ラインが、経時的に変化する固有のパターン(例えば強度のパターン)を有する場合、(2)プロジェクタが、パターンを通じて十分に速くイテレートされる場合、(3)カメラのフレームレートが、プロジェクタのイテレーションレートとマッチするのに十分なほど高い場合、及び(4)シーン内のオブジェクトが静止しているか、又は十分に遅く移動している場合には、ラインは、固有パターンに基づいて一意的に識別されうる。この固有パターンと移動が遅いこと又はないこととによって、ラインの奥行きは、局所的情報(つまりラインの検出パターン)に基づいて解像されうる。固有パターンを識別するために必要なフレームレートは、シーン内の移動のスピードに基づきうるので、移動と時間との間にはトレードオフが存在する。シーンが静止している場合、又は遅い移動だけを有している場合には、比較的低いフレームレート(例えば50FPS)で十分でありうる。より速い移動を有しうるシーンでは、通常であれば、1ミリ秒又は2ミリ秒の間隔における移動は事実上存在しないので、より高いフレームレート(例えば500~1000FPS)が必要になる。検出される必要があるパターン期間の数は、パターンの密度に対応しうる。パターンが十分に高いレートで変化する場合、ラインの奥行きは、ラインの検出パターンに基づいて解像されてよく、パターンが変化するレートはカメラのフレームレートに応じて減速される。
[131]図12は、時間的パターンを使用して奥行きを特定するための例示的な方法1200を示している。この方法はステップ1210で始まりうる。ステップ1210において、方法1200は、少なくとも1つのプロジェクタを使用して複数の投影パターンを投影してよく、投影パターンの各々の投影照射特性は、その投影パターンに関連付けられた所定の時間的な照射特性のパターンにしたがって、ある期間にわたって変化する。ステップ1220において、方法1200は、カメラを使用して、期間中の異なる時間において複数の画像を捕捉してよく、これらの画像は、期間中に投影される複数の投影パターンの少なくとも一部分の反射に対応する、検出パターンを含む。ステップ1230において、方法1200は、検出パターンの各々について、期間中の検出パターンの検出照射特性の変動に基づいて、検出された時間的な照射特性のパターンを特定しうる。ステップ1240において、方法1200は、検出された時間的な照射特性のパターンのうちの少なくとも1つと、この期間に関連付けられた所定の時間的な照射特性のパターンのうちの少なくとも1つとを比較することによって、投影パターンのうちの一又は複数に対応する検出パターンのうちの一又は複数を識別しうる。ステップ1250において、方法1200は、対応する投影パターン(複数可)、検出パターン(複数可)、及びカメラとプロジェクタとの相対位置に基づいて、識別された検出パターン(複数可)に関連付けられた一又は複数の奥行きを算出しうる。
[132]特定の実施形態では、図12の方法の一又は複数のステップが適宜反復されうる。この開示では、図12の方法の特定のステップを、特定の順序で行われるものとして説明し、図示しているが、図12の方法の任意の好適なステップが、任意の好適な順序で行われることが想定されている。更に、この開示では、図12の方法の特定のステップを含む、時間的パターンを使用して奥行きを特定するための例示的な方法について説明し、図示しているが、任意の好適なステップを含む、時間的パターンを使用して奥行きを特定するための任意の好適な方法が想定されており、かかる任意の好適なステップは適宜、図12の方法のステップのうち全部若しくは一部を含むことも、いずれをも含まないこともある。更に、この開示では、図12の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムについて説明し、図示しているが、図12の方法の任意の好適なステップを実行する任意の好適な構成要素、デバイス、又はシステムの、任意の好適な組み合わせが想定されている。
[133]特定の実施形態では、発光デバイス(プロジェクタなど)は、個別に応答可能な複数のエミッタを有しうる。複数のエミッタは照射パターンを発生させるよう作動してよく、この照射パターンは、カメラによって検出され、かつ(例えば、反射パターンと特定の投影パターンとをマッチさせること、及び三角測量を実施することによって)オブジェクトの位置を特定するために使用されうる、個別光源のセットとして出現しうる。発光デバイス(プロジェクタなど)でのエミッタの配置の密度は、位置を特定する精度に影響を与えうる。例えば、エミッタ同士が近くなることで、エリア単位内の検出可能な点が多くなりうる。しかし、エミッタ同士が近くなりすぎた場合には、各エミッタによって投影されるビームにおける光強度のガウス分布(これにより、ビームの中心付近の光が非常に明るくなる)によって、隣り合ったエミッタからの光が合流する(例えば重複する)することがあり、個々のエミッタからの光ビームが、閾値距離よりも近くにあるカメラから見た時に、解像不能になりうる。ゆえに、カメラが比較的プロジェクタの近くにある場合、隣り合ったエミッタは、これらのエミッタの光ビームの合流を防止するのに十分ほど広い分離距離だけ、互いから分離されるべきである。しかし、もっと遠い距離から見ると、この分離距離だけ分離されているエミッタ同士はより遠く離れて見えるので、奥行き解像能の精度が低下する可能性がある。
[134]特定の実施形態では、この問題に対処するために、カメラがプロジェクタに近づくにつれ、複数のエミッタからのガウス光ビームが互いに合流すると、作動中のエミッタ間に更なるスペースを提供するよう、作動中のエミッタのうちの一又は複数が作動停止されうる。カメラがエミッタから遠ざかった時に精度が低下するのを避けるために、カメラがプロジェクタから離れるように移動し、検出された光源間の距離が増大するにつれて、更なるエミッタを作動させうる。ゆえに、カメラがエミッタからの光の特定の点を識別しうる距離の範囲は、放出された光パターンを修正することによって延長されうるので、カメラがエミッタに近い場合には、カメラが遠くにある場合よりも、隣り合った照射エミッタの対の各々の間の距離が大きくなる。エミッタ間の距離がこのように増大することで、カメラが近くにある時に、別々のエミッタによって生成された光が互いに合流することが防止される。カメラがエミッタから離れている時には、隣り合ったエミッタの対の間の距離が小さくなるように、放出された光パターンは修正されうる。そうしなければ、エミッタの間の距離が必要以上に大きくなることにより、点の位置を識別する精度が低下する可能性があるからである。
[135]特定の実施形態では、応答可能なエミッタを含む投影デバイスによって投影される照射パターンの密度は、個々のエミッタを作動又は作動停止させることによって変更されうる。高密度なパターンは、互いとの間隔が近いエミッタを作動させることによって投影され、低密度なパターンは、離間しているエミッタを作動させることによって投影されうる。高密度なパターンは、より多くのエミッタを使用することがあり、ゆえに、低密度なパターンよりも多くの電力を使用しうる。更に、高密度なパターンは、近距離からは解像不能でありうる。低密度なパターンは、近距離から解像可能でありうるが、高密度なパターンよりも位置特定の精度が低下しうる。比較的近距離にあるオブジェクトまでの奥行きを特定することを伴う含む応用(手の動きなど)では、より低密度のパターンが使用されうる。もっと遠い距離において奥行きを特定することを伴う応用(部屋やもっと大きなスペースの奥行きマップの構築など)では、より高密度のパターンが使用されうる。応答可能なエミッタは、近距離向けには比較的低密度なエミッタのパターンを作動させることによって(例えば、プロジェクタのエミッタの半分を作動させることによって)、遠距離向けには比較的高密度なエミッタのパターンを作動させることによって(例えば、プロジェクタのエミッタの全てを作動させることによって)、両方の種類の応用で使用されうる。
[136]特定の実施形態では、作動されるエミッタの好適な密度は、パターンを投影すること、カメラを使用してパターンの画像を捕捉すること、及びこの画像に基づいて、パターンの密度を増大させるかそれとも低減させるかを判定することによって、特定されうる。例えば、デバイスの9つのエミッタを使用して高密度なパターンを投影しても、個々のエミッタからの光が解像不能である場合(例えば、光が互いに合流し、9つの別個の光源には見えない場合)には、高密度なパターンを解像するにはカメラがエミッタに近接しすぎている可能性があり、パターンの密度が低減されうる。この密度は、例えば、作動中のエミッタの半分を(例えば作動中のエミッタを1つおきに)作動停止させること、及び残りの作動中のエミッタの画像を捕捉することによって、低減されうる。それでも個々のエミッタが解像されることが不可能である場合には、作動中のエミッタが解像されるようになる(例えば、カメラ画像内で明確に検出された光源の数と作動中のエミッタの数がマッチする)まで、例えば作動中のエミッタの更に半分を作動停止させることや、残りのエミッタが解像されうるかどうかを判定することなどによって、プロセスが反復されうる。光源は、個別に解像可能になるために完全に別個である必要はない。例えば、部分的に重複している光源を解像するために、重複閾値が使用されうる。別の例としては、個々の光源が解像可能である場合には、例えば作動中のエミッタの数を2倍にすることによって、更なるエミッタを作動させうる。カメラは次いで、数が増やされたエミッタの画像を捕捉しうる。作動中のエミッタか、解像可能であれば、後続のフレームに使用されうるか、あるいは、作動中のエミッタが解像されなくなるまで、作動中のエミッタの数が更に増大されうる。作動中のエミッタが解像されなくなった時間で、作動中のエミッタの先の(解像可能な)パターンが、後続のフレームに使用されうる。
[137]特定の実施形態では、高密度なパターンのために互いに近接したエミッタを作動させ、低密度なパターンのために離間したエミッタを作動させることによって、交互になったフレーム内に高密度なパターンと低密度なパターンとが投影されうる。カメラは、交互になった低密度なパターンと高密度なパターンとを検出し、各パターンにおいてエミッタが解像されうるかどうかを判定しうる。高密度なパターンにおいてエミッタが解像可能である場合には、パターンが必要以上に高密度でない限り、この高密度なパターンはそれ以降も(例えば、カメラによって捕捉された後続フレームで検出される投影に)使用されうる。パターンが必要以上に高密度であれば、より低密度なパターンが使用されうる。例えば、精度に対する他の制限(例えば、カメラフレームレートなどの他のデバイスからの制限)のせいで必要以上の又は使用されうるよりも高い精度が、パターンの密度によって提供される場合には、パターンは必要以上に高密度になりうる。
[138]高密度なパターンの個々のエミッタが解像不能である場合には、エミッタからのガウス光が重複していることがあり、その後には、(例えば、その後カメラによって捕捉されるフレームにおいて使用されるように、)より低密度なパターンが投影されうる。例えば、低密度なパターンの個々のエミッタが解像可能である場合には、その後も低密度なパターンが使用されうるか、又は、この低密度なパターンと解像不能の高密度なパターンとの間の密度を有する新たな低密度なパターンが生成され、投影されうる。新たな低密度なパターンは、それが解像可能であるかどうか、及び後続フレームでの使用のために投影されるべきかどうかを判定するために、上述したように解析されうる。例えば、ガウスビームが互いに合流したと判定するために、光のライン幅又は強度が使用されうる。
[139]図13Aは、別々の距離からの奥行きを特定するための照射器1302の例示的な照射パターンを示している。照射器1302は、例えば、応答可能な照射器であってよく、プロジェクタに含まれうる。この例における照射器は、9つのエミッタ1311~1319を有している。第1パターン1304では、9つのエミッタ全てが作動中である(例えば光を放出している)。エミッタは、例えば、奥行き検知で使用されるパターンを放出しうる。しかし、カメラがプロジェクタ1302に近づくにつれて、作動中のエミッタからのガウス光分布は、ガウス光の強度特性のせいで、互いに合流しているように見えることがある。ゆえに、十分に近い距離では、複数のエミッタからの光は互いに合流することがあり、光パターンの個々のフィーチャ(例えば、エミッタ1310~1318によって生成されるドット又はライン)は、もはや解像不能となりうる。構造化奥行き検知技法の精度は、ガウス光パターンのこの合流のせいで、短距離において低下しうる。特定の実施形態では、カメラが特定の距離よりも近くにある時に作動中のエミッタからの光が合流しないように、作動中のエミッタのうちの一又は複数を作動停止させることによって、作動中のエミッタ間の距離を増大させうる。エミッタは、可能であれば作動中のままであることが望ましいことがある。作動中のエミッタの数が多ければ、より正確な奥行き検知が提供されうるからである。ゆえに、作動停止される特定のエミッタは、イテレーションのプロセスを使用して識別されうる。
[140]図13Aに示しているように、例えばカメラがエミッタから閾値距離を下回るところにあるせいで、エミッタからの光が互いに合流し始めると、作動中のエミッタが1つおきに作動停止されうる。初期パターン1304では、9つのエミッタ全てが作動中であるので、作動中のエミッタを1つおきに作動停止することで、第2パターン1310に示しているように、2番目、4番目、6番目、及び8番目のエミッタが作動停止されることになる。パターン1310では、エミッタ1312、1314、1316、及び1318は作動停止されており、エミッタ1311、1313、1315、1317、及び1319は作動中のままである。エミッタからの光は、カメラがプロジェクタ1302に十分近接しているために合流したように見えたままでありうるか、又は、カメラがプロジェクタ1302に近づくにつれて合流し始めうる。光が合流したままであるか又は再度合流する(例えば、個々のエミッタが解像不能になる)場合には、作動中のエミッタを更に1つおきに作動停止させることによって、更なるエミッタが作動停止されうる。ゆえに、第3及び第7のエミッタが作動停止され、エミッタ1311、1315、及び1319が作動中のままであるパターン1320が生成される。
[141]光が合流したままであるか、又はある期間の後に合流するようになる場合、作動中のエミッタを更に1つおきに作動停止させることによって、更なるエミッタが作動停止されうる。ゆえに、第5のエミッタが作動停止され、エミッタ1311及び1319が作動中であるパターン1330が生成される。それでも、光が合流したままであるか、又はある期間の後に合流するようになる場合、作動中のエミッタを更に1つおきに作動停止させることによって、更なるエミッタが作動停止されうる。ゆえに、第9のエミッタが作動停止され、エミッタ1311のみが作動中であるパターン1340が生成される。この例では1つのエミッタのみが作動中なので、2つのエミッタからの光の合流は発生しない。カメラとプロジェクタ1302との間の距離が増大すれば、エミッタを再度作動させることが望ましいこともある。
[142]一例としては、エミッタは、例えば、パターン1330を作動させることによって、そして光の合流がなければパターン1320を作動させることによって、そして光の合流がないままであればパターン1310を作動させることによって、そして最終的に、光の合流がないままであればプロジェクタ1302の全てのエミッタを作動させることによって、エミッタが作動停止されたのと逆の順序で再度作動されうる。エミッタを、パターン1310~1340にしたがって作動停止させ又は作動させると説明しているが、これらのパターンは単なる例にすぎず、例えば、1つおきのエミッタの代わりに奇数番のエミッタ若しくは偶数番のエミッタを作動停止させることによって、又は各ステップでより多くのエミッタを作動停止させること(例えば、パターン1310ではなくパターン1320から作動停止を開始し、かつパターン1320の直後にパターン1340が続くこと)によって、別のパターンにしたがって、光を作動停止させ又は作動させることも可能である。
[143]図13Bは、別々の距離から見た例示的な光パターンを示している。上述したように、視認体(例えばカメラ)が光源に近づくにつれて光の強度は増大するので、応答可能な照射器1302の隣り合ったエミッタ1312~1316からのガウス光ビームは、光パターン1342によって示しているように、互いに合流しているように見え、個々のエミッタ1312~1316からの光ビームは、合流光パターン1342のカメラ画像においては区別不能となっている。光のこの合流は、照射器1302とカメラとの間の距離D1が閾値距離Dを下回ると発生しうる。合流光パターン1342では、隣り合ったエミッタ1312、1313からの光ビームは、距離d1だけ分離されている。合流光パターンになっている解像可能なフィーチャの幅は、w1とラベル付けされる。
[144]照射器1302とカメラとの間の距離が増大するにつれて、光ビームは、光パターン1344に示しているように、大きくなり、個別に解像可能になる。距離D2(>D)からの、照射器1302からの光の外観を示す光パターン1344では、隣り合ったエミッタ1312、1313からの光ビームは距離d2だけ分離されている。光ビームである解像可能なフィーチャの幅は、w2とラベル付けされる。照射器1302とカメラとの間の距離が更に増大するにつれて、光ビームは、光パターン1346に示しているように、より大きくなる。距離D3(>D2)からの、照射器1302からの光の外観を示す光パターン1346では、隣り合ったエミッタ1312、1313からの光ビームは距離d3だけ分離されている。光ビームである解像可能なフィーチャの幅は、w3とラベル付けされる。
[145]図13Cは、別々の距離から見た例示的な投影パターンを示している。この図では、照射器1302のエミッタは光のラインを投影している。近距離から見ると、複数のエミッタのうちの隣り合ったエミッタ1312~1316からのガウス光ビームは、合流光パターン1347によって示しているように、互いに合流しているように見えることがあり、個々のエミッタ1312~1316からの光ビームは、合流光パターン1347のカメラ画像においては区別不能となっている。照射器1302とカメラとの間の距離D1は、閾値距離Dを下回っている。合流光パターンになっている解像可能なフィーチャの幅は、w4とラベル付けされる。
[146]照射器1302とカメラとの間の距離が増大するにつれて、光パターン1348に示しているように、光ビームは大きくなり、個別に解像可能になる。距離D2(>D)からの、照射器1302からの光の外観を示す光パターン1348では、隣り合ったエミッタ1312、1313からの光ビームは距離d4だけ分離されている。エミッタによって生成されるラインである(かつ一又は複数の光ビームを含みうる)解像可能なフィーチャの幅は、w5とラベル付けされる。照射器1302とカメラとの間の距離が更に増大するにつれて、光ビームは、光パターン1349に示しているように、より大きくなる。距離D3(>D2)からの、照射器1302からの光の外観を示す光パターン1349では、隣り合ったエミッタ1312、1313からの光ビームは距離d5だけ分離されている。エミッタによって生成されるラインである解像可能フィーチャの幅は、w6とラベル付けされる。
[147]図13D及び図13Eは、別々の距離からの奥行きを特定するための二次元照射器の例示的な照射パターンを示している。特定の実施形態では、例えばカメラがエミッタからの閾値距離を下回るところにあるせいで、エミッタからの光が互いに合流し始めると、エミッタのセットが作動停止されうる。作動停止されるエミッタは、水平方向又は垂直方向と隣り合った作動中のエミッタの対がなくなるように選択されうる。つまり、作動停止により、1という水平方向又は垂直方向の距離だけ分離された作動中のエミッタがなくなる。あるいは、作動停止されうる作動中のエミッタを1つおきに選択することによって、作動中のエミッタの半分が作動停止されうる。図13Dに示しているように、初期パターン1350では25のエミッタが作動中である。エミッタパターン1350の左上からエミッタを1つおきに選択することによって、1つおきの作動中のエミッタが識別されうる。横列の終端に到達すると、選択は次の横列に続きうる。パターン1350の作動中のエミッタを1つおきに作動停止させることにより、第2パターン1352に示しているように、偶数番のエミッタが作動停止されることになる。第2パターン1352では、エミッタ1354、1356、1358、1360、1362、1364、1366、1368、1370、1372、1374、及び1376が作動停止されている。エミッタからの光は、カメラがプロジェクタに十分近接しているために合流したように見えたままでありうるか、又は、カメラがプロジェクタに近づくにつれて合流し始めうる。光が合流したままであるか又は再度合流する(例えば、個々のエミッタが解像不能になる)場合には、更なるエミッタが作動停止されうる。作動停止されるエミッタは、2という水平方向又は垂直方向の距離によって分離された作動中のエミッタがなくなるように選択されうる。これらのエミッタを作動停止させた結果が図13Eにパターン1380として示されており、ここでは、エミッタ1381、1382、1383、1384、1385、1386、1387、及び1388が作動停止されている。その後、光が合流したままであるか、又はある期間後に合流するようになる場合、さらなるエミッタが作動停止されうる。ゆえに、エミッタ1391、1392、1393、及び1394が作動停止され、中心のエミッタのみが作動中であるパターン1390が生成されうる。この例では1つのエミッタのみが作動中なので、2つのエミッタからの光の合流は発生しない。その後カメラとプロジェクタ1302との間の距離が増大すれば、エミッタを再度作動させることが望ましいこともある。
[148]特定の実施形態では、エミッタとカメラとの間の距離が特定され、エミッタ間の距離を制御するために使用されうる。あるいは、検出された光の幅に基づいて、隣り合った光が合流した(例えば、合流してラインを形成した)と判定するために、カメラ画像が解析されてよく、光が合流したように見えたら、エミッタの各対の間の距離が増大されうる。別の例としては、カメラによって検出された明光は、構造化光パターンによるものであることも、そうでないこともある。エミッタ密度(例えば、特定のエリア内の作動中のエミッタの数)は、次のフレームにおいて変更されてよく、このフレーム内の画像は、例えば、特定のエミッタを作動させるか又は作動停止させてから、これらのエミッタが作動又は作動停止されたことをカメラが検出したかどうかを判定することによって、光があるパターンによるものであるかどうかを判定するために、評価されうる。このプロセスは、ループのイテレーションの各々において別々のエミッタを作動又は作動停止させること、及び、閾値回数のイテレーションの後に、放出されたパターンが検出された又は検出されなかったと判定することによって、反復されうる。
[149]図14は、別々の距離からの奥行きを特定するために、照射器の一又は複数の光エミッタを作動又は作動停止させるための例示的な方法1400を示している。この方法はステップ1410において始まってよく、このステップにおいて、方法1400は、少なくとも1つのプロジェクタを使用して、別々の位置を有する複数の投影フィーチャを含む投影パターンを投影しうる。ステップ1420において、方法1400は、カメラを使用して、投影パターンの反射に対応する検出パターンを含む画像を捕捉しうる。ステップ1430において、方法1400は、検出パターンの少なくとも1つの検出フィーチャを識別可能であり、この検出フィーチャは、投影フィーチャの少なくとも1つの反射に対応する。ステップ1440において、方法1400は、検出フィーチャに基づいて、光エミッタのうちの一又は複数を作動又は作動停止させうる。
[150]特定の実施形態では、図14の方法の一又は複数のステップが適宜反復されうる。この開示では、図14の方法の特定のステップを、特定の順序で行われるものとして説明し、図示しているが、図14の方法の任意の好適なステップが、任意の好適な順序で行われることが想定されている。更に、この開示では、図14の方法の特定のステップを含む、別々の距離からの奥行きを特定するために、照射器の一又は複数の光エミッタを作動又は作動停止させるための例示的な方法について説明し、図示しているが、任意の好適なステップを含む、別々の距離からの奥行きを特定するために、照射器の一又は複数の光エミッタを作動又は作動停止させるための任意の好適な方法が想定されており、かかる任意の好適なステップは適宜、図14の方法のステップの全部若しくは一部を含むことも、いずれをも含まないこともある。更に、この開示では、図14の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムについて説明し、図示しているが、図14の方法の任意の好適なステップを実行する任意の好適な構成要素、デバイス、又はシステムの、任意の好適な組み合わせが想定されている。
[151]特定の実施形態では、構造化光を使用して奥行き検知を実施するシステムにおいて、(例えば、低電力モードで低密度なパターンを投影することによりシーン内の移動をスキャンし、移動を識別した場合に、その動きに基づいて奥行きマップを更新するためにより高密度なパターンを投影することによって)不要な又は使用されない照射器のエミッタを作動停止させることによって、電力消費が削減されうる。開示されている技法は、個別に制御可能なエミッタを有しうる、応答可能な照射器を使用しうる。応答可能なエミッタによって投影される構造化光の強度は、入力電流に基づいて変動しうる。構造化光は、あるパターン(点、ライン、又はラインの格子のセットなど)で投影されうる。
[152]特定の実施形態では、電力を節約するための技法は、シーンの高密度モデルを作り出すために高密度なパターンを投影し、その後に低密度なパターンを投影することにより低電力スキャンモードの動作を行って、変化を確認するためにシーンの部分をサンプリングすることを伴う。何らかの変化(例えば、低密度なパターンの一又は複数のラインと交差する動き)が検出された場合には、シーンの高密度モデルを生成又は更新するために、高密度なパターンが再度投影されうる。更に、シーンの部分は、かかる部分に低密度なパターン(ラインなど)を投影すること、及びカメラを使用して移動を示す低密度なパターンの反射を検出することによって、変化を確認するためにサンプリングされうる。シーンの高密度モデルを生成又は更新するために、高密度なパターンの単一のフレームバーストが、周期的に(例えば毎秒)投影されうる。
[153]図15は、電力消費を削減するための格子光パターン密度の低減の一例を示している。時間T1において、高密度なパターン1502がシーン上に投影される。時間T2において、例えば、時間T1とT2との間にシーン内で動きが検出されなかったことにより、より低密度なパターンがシーン上に投影される。動きがないので、少なくとも時間T2まで、既存の奥行きマップが使用されうる。奥行きマップは時間T1と少なくともT2との間では更新される必要がないので、低密度なパターン1504が、時間T2において、動きを検出するために投影されうる。時間T2において低密度なパターン1504を使用することで、電力消費が削減されうる。低密度なパターンでは、高密度なパターンよりも少ないラインが投影されるからである。時間T3において、低密度なパターン1504がまだ投影されている間に、(例えば、パターン1504の格子ラインのうちの一又は複数の歪みを検出することによって、又はシーンの画像に動き検出アルゴリズムを使用することによって)シーン内の動きが検出される。動きが検出されたということは、シーンが変化した可能性が高く、高密度なパターン1502を使用して新たな奥行きマップが生成されるはずである。ゆえに、時間T4において、高密度なパターン1502が再度投影される。時間T5においては、更なる動きは検出されていないので、初期の低密度なパターン1504よりも密度が低い低密度なパターン1506が、シーン上に投影されうる。低密度なパターン1506の密度(例えばそのライン間の距離)は、シーン内で検出された最小のオブジェクトのサイズに基づいて特定されうる。例えば、T5においてシーン内で検出される最小のオブジェクトはマッドハッターであるので、低密度なパターン1506のライン間の距離は、この低密度なパターンによってマッドハッターの動きが検出されるように選択される。オブジェクトのサイズは、オブジェクトの境界ボックスを生成することによって特定されうる。次いで、水平方向の格子ライン間の距離が境界ボックスの高さに基づいて設定されてよく、垂直方向の格子ライン間の距離は境界ボックスの幅に基づいて設定されうる。時間T5において、シーン内に別の人物が出現すると、動きが検出される。次いで、更なる動きを検出するか、又はシーンの奥行きマップを生成若しくは更新するために、高密度なパターン1504(先のパターン1506よりも高密度であるが、高密度なパターン1502ほど高密度ではない)が、をシーン上に投影されうる。
[154]特定の実施形態では、シーンの部分は、かかる部分に低密度なパターン(ラインなど)を投影すること、及びカメラを使用して移動を示す低密度なパターンの反射を検出することによって、変化を確認するためにサンプリングされうる。サンプリングされるシーンの部分は、いくつかのフレームの後にシーン全体がカバーされるように、又はいくつかのフレームの後に少なくとも最小サイズ閾値のオブジェクトが検出されるように、選択されうる。スキャンされる部分のサイズは、低密度なパターンの投影ライン間の距離に対応してよく、かつ予想されるオブジェクトのサイズに基づきうる。比較的大きなオブジェクトの移動が予想される場合には、比較的遠く離間した比較的少数のラインが投影されうる。例えば、最小サイズがシーンエリアの4分の1であり、スキャンされる部分のサイズがこの最小サイズに対応している場合には、最小サイズのオブジェクトの移動は、4つの連続するフレーム内で検出されうる。
[155]特定の実施形態では、シーン全体(又は特定のサイズのエリア)がスキャンされるまで、後続のフレームの各々内のシーンの異なる部分(例えば領域)に、低電力スキャンモードでパターンが投影されてよく、シーン全体(又は特定のサイズのエリア)がスキャンされた時点で、プロセスが反復されうる。他の例では、シーンのサンプリングされた部分は、ランダムに又は特定の応用(腕に繋がっていることが既知である手を探索することなど)にしたがって、選択されうる。サンプリングプロセスは、探索中に生成されたフィードバック(例えば反射ラインの位置)に基づいて、探索を修正しうる。特定の実施形態では、シーンの部分のエリアはシーンのエリアよりも小さいものでありうる。これらの部分は、第1投影パターンを囲む長方形を識別し、第1投影パターンを囲むこの長方形をサイズが等しい複数の長方形に分割することによって識別されてよく、別々の部分の各々が長方形のうちの1つに対応する。特定の実施形態では、サンプリングプロセスが変化を検出すると、例えば次のフレームで、高密度なパターンが再度投影される。特定の実施形態では、オブジェクトの移動は、第2画像のうちの一又は複数に基づいて検出されてよく、プロジェクタは、このオブジェクトの移動を検出することに応答して、第1投影パターンを投影するよう設定される。特定の実施形態では、エミッタのうちの一又は複数が、第1投影パターンの部分の各々を投影してよく、プロジェクタは、各部分を投影するために、その部分を投影するエミッタを作動させるよう設定される。
[156]図16は、格子光パターンの密度を低減するための例示的な方法1600を示している。この方法はステップ1610において始まってよく、このステップにおいて、方法1600は、少なくとも1つのプロジェクタを使用して、複数の第1投影フィーチャを含む第1投影パターンを含む複数の投影パターンを、シーン上に投影しうる。ステップ1620において、方法1600は、カメラを使用して、第1投影パターンの反射に対応する第1検出パターンを含む複数の画像を捕捉しうる。ステップ1630において、方法1600は、第1投影パターン、第1検出パターン、及びカメラとプロジェクタ(複数可)との相対位置に基づいて、シーンの奥行きマップを算出しうる。ステップ1640において、方法1600は、プロジェクタ(複数可)を使用して、複数の第2投影フィーチャを含む第2投影パターンをシーンの一部分に投影してよく、第2投影パターンは、第1投影パターンよりも低密度である。ステップ1650において、方法1600は、カメラを使用して、第2投影パターンの反射に対応する第2検出パターンを捕捉しうる。ステップ1660において、方法1600は、第2投影パターン、第2検出パターン、及びカメラとプロジェクタ(複数可)との相対位置に基づいて、シーンのこの部分の奥行きマップを算出しうる。ステップ1670において、方法1600は、シーンのこの部分の奥行きマップに基づいて、シーンの奥行きマップを更新しうる。
[157]特定の実施形態では、図16の方法の一又は複数のステップが適宜反復されうる。この開示では、図16の方法の特定のステップを、特定の順序で行われるものとして説明し、図示しているが、図16の方法の任意の好適なステップが、任意の好適な順序で行われることが想定されている。更に、この開示では、図16の方法の特定のステップを含む、格子光パターンの密度を低減するための例示的な方法について説明し、図示しているが、任意の好適なステップを含む、格子光パターンの密度を低減するための任意の好適な方法が想定されており、かかる任意の好適なステップは適宜、図16の方法のステップの全部若しくは一部を含むことも、いずれをも含まないこともある。更に、この開示では、図16の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムについて説明し、図示しているが、図16の方法の任意の好適なステップを実行する任意の好適な構成要素、デバイス、又はシステムの、任意の好適な組み合わせが想定されている。
[158]特定の実施形態では、電力消費を削減するために、特定の時間においてフレーム内に投影される点又はラインのパターンが、2つ以上の部分パターンに分割されてよく、この部分パターンが、連続した時間間隔で投影されうる。カメラは、この時間間隔で、「部分(partial)」フレーム内の部分パターンを捕捉しうる。パターン全体の代わりに各フレームに部分パターンを投影することで、電力消費が削減されうる。例えば、1つのフレーム内にパターンのラインの半分を投影し、もう半分を次のフレームに投影することで、電力消費が50%削減されうる。カメラは、連続した部分フレームを受信し、それらを結合させて完全なパターンを再構築しうる。
[159]特定の実施形態では、投影パターンをN個の部分パターンに分割した結果として、フレームの各々がN個の「部分」フレームに分割され、各部分フレームは完全なパターンの1/Nを有しうる。値Nは、「インターレース係数(interlacing factor)」として理解されてよく、どれほど迅速にパターンが受信されるかと望ましいバッテリ電力削減量との間のトレードオフにしたがって、特定の応用のために選択されうる。インターレース係数は、シーンに適応するよう、フレーム間で変更されうる。例えば、人がピアノを演奏するシーンでは高速検出が使用されてよく、この場合、パターンを分割することなく(N=1)、パターンのラインの全てが各フレームで使用されうる。人がピアノの演奏を停止すると、インターレース係数はN=5に増大されうる。部屋の中を移動しながら、60FPSで画像を捕捉し、奥行きマップを構築しているカメラでは、各フレームは、60FPSのフレームレートを維持しつつ、5つのフレームに分割されうる。別の例では、1つの「ライン(line)」(パターンの単位)が、各フレーム内に投影されうる。カメラのフレームレートは、プロジェクタのフレームレートに対応するよう変更されうる。
[160]図17は、電力消費を削減するために、格子光パターンを複数の部分に分けることの一例を示している。パターン1700は、パターン1700を4つの四半分に分割している点線1702によって示しているように、4つの部分パターンに分割されうる。パターン1700の四半分の各々が部分パターンに対応する。部分パターンの各々は、シーンの対応する部分に一定時間にわたって投影されてよく、その間、カメラは、シーンからの部分パターンの反射を捕捉し、シーン1704の投影された部分パターン1706によってカバーされるエリアの奥行きマップを生成しうる。部分パターンは、別々の時間で投影されうる。時間T1において、第1部分パターン1706がシーン1704の左上角部に投影される。時間T2において、第2部分パターン1710がシーン1704の右上の四半分に投影される。カメラは、第2部分パターン1710が投影されている時間中に、シーン1704からの第2部分パターン1710の反射を捕捉しうる。奥行き検知システムは、部分パターンの反射に基づいて、画面のこの四半分の検出パターンを識別しうる。時間T3において、第3部分パターン1714がシーン1704の左下の四半分に投影される。カメラは、第3部分パターン1714が投影されている時間中に、シーン1704からの第3部分パターン1714の反射を捕捉しうる。時間T4において、第4部分パターン1718がシーン1704の左下の四半分に投影される。カメラは、第3部分パターン1718が投影されている時間中に、シーン1704からの第3部分パターン1718の反射を捕捉しうる。
[161]特定の実施形態では、奥行き検知システムは、部分パターンが投影されている間に、4つの部分パターンの反射に基づいて、部分的な検出パターンを識別しうる。代替的又は追加的には、奥行き検知システムは、4つの部分パターンが投影された後に、4つの部分パターンの反射の組み合わせに基づいて、検出パターンを識別しうる。
[162]図18は、格子光パターンを、別々の時間に投影される複数の部分に分けるための例示的な方法1800を示している。この方法はステップ1810において始まってよく、このステップにおいて、方法1800は、第1投影パターンの異なる部分の具体的な数を特定しうる。ステップ1820において、方法1800は、少なくとも1つのプロジェクタを使用して、ある時間間隔中の別々の時間に、第1投影パターンの特定された別々の部分を投影しうる。ステップ1830において、方法1800は、カメラを使用して、第1投影パターンの反射に対応する第1検出パターンを含む複数の画像を捕捉してよく、第1検出パターンは、この時間間隔中の別々の時間に基づく時間においてカメラによって捕捉された画像のセットに基づく。ステップ1840において、方法1800は、複数の画像に基づいて、第1検出パターンの画像を生成しうる。この画像の各々は、(a)第1検出パターンの検出された部分を含み、かつ(b)第1投影パターンの対応する特定された部分の反射に対応する。ステップ1840において、方法1800は、第1投影パターン、第1検出パターンの画像、及びカメラと少なくとも1つのプロジェクタとの相対位置に基づいて、奥行きマップを算出しうる。
[163]特定の実施形態では、図18の方法の一又は複数のステップが適宜反復されうる。この開示では、図18の方法の特定のステップを、特定の順序で行われるものとして説明し、図示しているが、図18の方法の任意の好適なステップが、任意の好適な順序で行われることが想定されている。更に、この開示では、図18の方法の特定のステップを含む、格子光パターンを別々の時間に投影される複数の部分に分けるための例示的な方法について説明し、図示しているが、任意の好適なステップを含む、格子光パターンを別々の時間に投影される複数の部分に分けるための任意の好適な方法が想定されており、かかる任意の好適なステップは適宜、図18の方法のステップの全部若しくは一部を含むことも、いずれをも含まないこともある。更に、この開示では、図18の方法の特定のステップを実行する特定の構成要素、デバイス、又はシステムについて説明し、図示しているが、図18の方法の任意の好適なステップを実行する任意の好適な構成要素、デバイス、又はシステムの、任意の好適な組み合わせが想定されている。
[164]図19は、例示的なコンピュータシステム1900を示している。特定の実施形態では、一又は複数のコンピュータシステム1900が、本書で説明し、図示している一又は複数の方法の一又は複数のステップを実施する。特定の実施形態では、一又は複数のコンピュータシステム1900は、本書で説明し、図示している機能を提供する。特定の実施形態では、一又は複数のコンピュータシステム1900で実行されるソフトウェアは、本書で説明し、図示している一又は複数の方法の一又は複数のステップを実施するか、又は本書で説明し、図示している機能を提供する。特定の実施形態は、一又は複数のコンピュータシステム1900の一又は複数の部分を含む。本書では、コンピュータシステムへの言及は、適宜、コンピューティングデバイスを包含してよく、その逆でもありうる。更に、1つのコンピュータシステムへの言及は、一又は複数のコンピュータシステムを適宜包含しうる。
[165]この開示では、任意の好適な数のコンピュータシステム1900が想定される。この開示では、任意の好適な物理的形態をとるコンピュータシステム1900が想定される。一例としては(これに限定するものではないが)、コンピュータシステム1900は、組み込み型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)やシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップコンピュータシステム若しくはノートブックコンピュータシステム、対話式キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張現実/仮想現実デバイス、又はこれらのうちの2つ以上の組み合わせ、でありうる。コンピュータシステム1900は適宜、一又は複数のコンピュータシステム1900を含みうるか、一体型若しくは分散型でありうるか、複数の位置にわたって存在するか、複数のマシンにわたって存在するか、複数のデータセンターにわたって存在するか、又はクラウド(一又は複数のネットワーク内の一又は複数のクラウドコンポーネントを含みうる)内に常駐しうる。一又は複数のコンピュータシステム1900は適宜、実質的な空間的制限又は時間的制限なしに、本書で説明し、図示している一又は複数の方法の一又は複数のステップを実施しうる。一例としては(これに限定するものではないが)、一又は複数のコンピュータシステム1900は、リアルタイムで又はバッチモードで、本書で説明し、図示している一又は複数の方法の一又は複数のステップを実施しうる。一又は複数のコンピュータシステム1900は、本書で説明し、図示している一又は複数の方法の一又は複数のステップを、別々の時間又は別々の場所において適宜実施しうる。
[166]特定の実施形態では、コンピュータシステム1900は、プロセッサ1902、メモリ1904、ストレージ1906、入出力(I/O)インターフェース1908、通信インターフェース1910、及びバス1912を含む。この開示では、特定の構成の、特定の数の特定の構成要素を有する特定のコンピュータシステムについて説明し、図示しているが、任意の好適な構成の、任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムが想定されている。
[167]特定の実施形態では、プロセッサ1902は、命令(例えば、コンピュータプログラムを構成するもの)を実行するためのハードウェアを含む。一例としては(これに限定するものではないが)、プロセッサ1902は、命令を実行するために、内部レジスタから、内部キャッシュから、メモリ1904から、又はストレージ1906から、命令を読み出す(又はフェッチする)こと、命令を復号して実行すること、次いで内部レジスタ、内部キャッシュ、メモリ1904、又はストレージ1906に一又は複数の結果を書き込むことが、可能である。特定の実施形態では、プロセッサ1902は、データ、命令、又はアドレスのための一又は複数の内部キャッシュを含みうる。この開示では、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ1902が適宜想定される。一例としては(これに限定するものではないが)、プロセッサ1902は、一又は複数の命令キャッシュ、一又は複数のデータキャッシュ、及び一又は複数の変換ルックアサイドバッファ(TLB)を含みうる。命令キャッシュ内の命令は、メモリ1904又はストレージ1906における命令のコピーであってよく、命令キャッシュは、プロセッサ1902によるこれらの命令の読み出しを加速させうる。データキャッシュ内のデータは、メモリ1904又はストレージ1906内のデータであって、それに基づいてプロセッサ1902での命令の実行が行われるためのデータ、プロセッサ1902で実行される後続の命令によりアクセスされるか、メモリ1904若しくはストレージ1906に書き込まれる、プロセッサ1902で実行された先の命令の結果、又はその他の好適なデータの、コピーでありうる。データキャッシュは、プロセッサ1902による読み取り動作又は書き込み動作を加速させうる。TLBは、プロセッサ1902の仮想アドレス変換を加速させうる。特定の実施形態では、プロセッサ1902は、データ、命令、又はアドレスのための一又は複数の内部レジスタを含みうる。この開示では、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ1902が適宜想定される。プロセッサ1902は適宜、一又は複数の演算論理ユニット(ALU)を含みうるか、マルチコアプロセッサでありうるか、又は一又は複数のプロセッサ1902を含みうる。この開示では、特定のプロセッサについて説明し、図示しているが、任意の好適なプロセッサが想定されている。
[168]特定の実施形態では、メモリ1904は、プロセッサ1902が実行する命令、又はデータであって、それに基づいてプロセッサ1902が動作するためのデータを記憶するための、メインメモリを含む。一例としては(これに限定するものではないが)、コンピュータシステム1900は、ストレージ1906又は別のソース(例えば別のコンピュータシステム1900など)からメモリ1904に、命令をローディングしうる。プロセッサ1902は次いで、メモリ1904から内部レジスタ又は内部キャッシュに、命令をローディングしうる。プロセッサ1902は、命令を実行するために、内部レジスタ又は内部キャッシュから命令を読み出し、これらの命令を復号しうる。プロセッサ1902は、命令の実行中又は実行後に、一又は複数の結果(中間結果であっても、最終結果であってもよい)を内部レジスタ又は内部キャッシュに書き込みうる。プロセッサ1902は次いで、これらの結果のうちの一又は複数をメモリ1904に書き込みうる。特定の実施形態では、プロセッサ1902は、(ストレージ1906やそれ以外の格納場所とは対照的に)一又は複数の内部レジスタ若しくは内部キャッシュ内、又はメモリ1904内の命令のみを実行し、かつ、(ストレージ1906やそれ以外の格納場所とは対照的に)一又は複数の内部レジスタ若しくは内部キャッシュ内、又はメモリ1904内のデータ上でのみ動作する。一又は複数のメモリバス(その各々がアドレスバス及びデータバスを含みうる)が、プロセッサ1902とメモリ1904とを連結しうる。バス1912は、後述するように、一又は複数のメモリバスを含みうる。特定の実施形態では、一又は複数のメモリ管理ユニット(MMU)が、プロセッサ1902とメモリ1904との間に常駐し、プロセッサ1902によって要求されるメモリ1904へのアクセスを容易にする。特定の実施形態では、メモリ1904は、ランダムアクセスメモリ(RAM)を含む。このRAMは適宜、揮発性メモリでありうる。このRAMは適宜、動的RAM(DRAM)であっても、静的RAM(SRAM)であってもよい。更に、このRAMは適宜、シングルポートRAMであっても、マルチポートRAMであってもよい。この開示では、任意の好適なRAMが想定される。メモリ1904は適宜、一又は複数のメモリ1904を含みうる。この開示では、特定のメモリについて説明し、図示しているが、任意の好適なメモリが想定されている。
[169]特定の実施形態では、ストレージ1906は、データ又は命令のための大容量ストレージを含む。一例としては(これに限定するものではないが)、ストレージ1906は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、若しくはユニバーサルシリアルバス(USB)ドライブ、又はこれらのうちの2つ以上の組み合わせ、を含みうる。ストレージ1906は、取り外し可能な又は取り外し可能ではない(すなわち固定式の)の媒体を適宜含みうる。ストレージ1906は適宜、コンピュータシステム1900の内部にあっても、外部にあってもよい。特定の実施形態では、ストレージ1906は、不揮発性のソリッドステートメモリである。特定の実施形態では、ストレージ1906は、読み出し専用メモリ(ROM)を含む。このROMは適宜、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的可変ROM(EAROM)、若しくはフラッシュメモリ、又はこれらのうちの2つ以上の組み合わせ、でありうる。この開示では、任意の好適な物理的形態をとる大容量ストレージ1906が想定される。ストレージ1906は、プロセッサ1902とストレージ1906との間の通信を容易にする一又は複数の記憶制御ユニットを適宜含みうる。ストレージ1906は適宜、一又は複数のストレージ1906を含みうる。この開示では、特定のストレージについて説明し、図示しているが、任意の好適なストレージが想定されている。
[170]特定の実施形態では、I/Oインターフェース1908は、コンピュータシステム1900と一又は複数のI/Oデバイスとの間の通信のための一又は複数のインターフェースを提供する、ハードウェア、ソフトウェア、又はその両方を含む。コンピュータシステム1900は、これらのI/Oデバイスのうちの一又は複数を適宜含みうる。これらのI/Oデバイスのうちの一又は複数は、人とコンピュータシステム1900との間の通信を可能にしうる。一例としては(これに限定するものではないが)、I/Oデバイスは、キーボード、キーパッド、マイク、モニタ、マウス、プリンタ、スキャナ、スピーカー、静止カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の好適なI/Oデバイス、又はこれらのうちの2つ以上の組み合わせ、を含みうる。I/Oデバイスは、一又は複数のセンサを含みうる。この開示では、任意の好適なI/Oデバイス、及び任意の好適なI/Oデバイスのための任意の好適なI/Oインターフェース1908が想定されている。I/Oインターフェース1908は適宜、プロセッサ1902がかかるI/Oデバイスのうちの一又は複数を駆動することを可能にする、一又は複数のデバイス又はソフトウェアドライバを含みうる。I/Oインターフェース1908は、一又は複数のI/Oインターフェース1908を適宜含みうる。この開示では、特定のI/Oインターフェースについて説明し、図示しているが、任意の好適なI/Oインターフェースが想定されている。
[171]特定の実施形態では、通信インターフェース1910は、コンピュータシステム1900と一又は複数の別のコンピュータシステム1900若しくは一又は複数のネットワークとの間の通信(例えばパケットベースの通信など)のための一又は複数のインターフェースを提供する、ハードウェア、ソフトウェア、又はその両方を含む。一例としては(これに限定するものではないが)、通信インターフェース1910は、イーサネット若しくは別の有線ベースのネットワークと通信するためのネットワークインターフェースコントローラ(NIC)若しくはネットワークアダプタ、又は無線ネットワーク(WI-FIネットワークなど)と通信するための無線NIC(WNIC)若しくは無線アダプタを含みうる。この開示では、任意の好適なネットワーク、及び任意の好適なネットワークのための任意の好適な通信インターフェース1910が想定されている。一例としては(これに限定するものではないが)、コンピュータシステム1900は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、若しくはインターネットの一又は複数の部分、又はこれらのうちの2つ以上の組み合わせ、と通信しうる。これらのネットワークのうちの一又は複数の一又は複数の部分は、有線であっても、無線であってもよい。一例としては、コンピュータシステム1900は、無線PAN(WPAN)(例えば、BLUETOOTH WPANなど)、WI-FIネットワーク、WI-MAXネットワーク、携帯電話ネットワーク(例えば、Global System for Mobile Communications(GSM)ネットワークなど)、若しくはその他の好適な無線ネットワーク、又はこれらのうちの2つ以上の組み合わせ、と通信しうる。コンピュータシステム1900は、かかるネットワークのうちの任意のもののための任意の好適な通信インターフェース1910を適宜含みうる。通信インターフェース1910は、一又は複数の通信インターフェース1910を適宜含みうる。この開示では、特定の通信インターフェースについて説明し、図示しているが、任意の好適な通信インターフェースが想定されている。
[172]特定の実施形態では、バス1912は、コンピュータシステム1900の構成要素同士を互いに連結させる、ハードウェア、ソフトウェア、又はその両方を含む。一例としては(これに限定するものではないが)、バス1912は、高速グラフィックスポート(AGP)若しくはその他のグラフィックスバス、拡張産業標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、産業標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺コンポーネント相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、若しくはその他の好適なバス、又はこれらのうちの2つ以上の組み合わせ、を含みうる。バス1912は、一又は複数のバス1912を適宜含みうる。この開示では、特定のバスについて説明し、図示しているが、任意の好適なバス又は相互接続が想定されている。
[173]本書では、非一過性のコンピュータ可読記憶媒体は、一又は複数の半導体ベースの若しくはその他の集積回路(IC)(例えばフィールドプログラマブルゲートアレイ(FPGA)や特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HDD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカード若しくはセキュアデジタルドライブ、他の任意の好適な非一過性のコンピュータ可読記憶媒体、又はこれらのうちの2つ以上の任意の好適な組み合わせ、を適宜含みうる。非一過性のコンピュータ可読記憶媒体は適宜、揮発性、不揮発性、又は揮発性と不揮発性の組み合わせでありうる。
[174]本書において、「又は(or)」は、明示的に別様の指示がない限り又は文脈によって別様に指示されない限り、包括的なものであり、排他的なものではない。したがって、本書では、「A又はB(A or B)」は、明示的に別様の指示がない限り又は文脈によって別様に指示されない限り、「A、B、又はその両方」を意味する。更に、「及び(and)」は、明示的に別様の指示がない限り又は文脈によって別様に指示されない限り、集合的と個別的の両方である。したがって、本書では、「A及びB(A and B)」は、明示的に別様の指示がない限り又は文脈によって別様に指示されない限り、「集合的又は個別的にA及びB」を意味する。
[175]この開示の範囲は、当業者であれば理解するであろう、本書で説明又は図示している例示的な実施形態に対する、全ての変更、置換、変形、改変、及び修正を包含する。この開示の範囲は、本書で説明又は図示している例示的な実施形態に限定されるわけではない。更に、この開示は、本書の実施形態のそれぞれを、特定の構成要素、要素、特徴、機能、動作、又はステップを含むものとして説明し、図示しているが、これらの実施形態はいずれも、当業者であれば理解するであろう、本書の何処かで説明又は図示している構成要素、要素、特徴、機能、動作、又はステップのうちのいずれかの任意の組み合わせ又は置換(permutation)を含みうる。更に、付随する特許請求の範囲における、特定の機能を実施するよう適合し、かかる特定の機能を実施するよう構成され、かかる特定の機能を実施することが可能であり、かかる特定の機能を実施するよう設定され、かかる特定の機能を実施することを可能にされ、かかる特定の機能を実施するよう動作可能であり、又はかかる特定の機能を実施するよう動作する、装置若しくはシステム、又は装置又はシステムの構成要素に対する言及は、これらの装置、システム、又は構成要素が、その特定の機能が作動され、オンにされ、若しくはロック解除されているかどうかにかかわらず、特定の機能を実施するよう適合し、かかる特定の機能を実施するよう構成され、かかる特定の機能を実施することが可能であり、かかる特定の機能を実施するよう設定され、かかる特定の機能を実施することを可能にされ、かかる特定の機能を実施するよう動作可能であり、又はかかる特定の機能を実施するよう動作する限り、これらの装置、システム、構成要素を包含する。加えて、この開示では、特定の実施形態が特定の利点を提供するものとして説明又は図示されているが、特定の実施形態は、これらの利点のいずれをも提供しないことも、一部又は全部を提供することもある。