(57)【特許請求の範囲】
【請求項１】
シーンのデジタル表現を生成する方法であって、
センサーにおいて、複数の符号化されたコードワードの構造化光画像を受信することと、前記複数の符号化されたコードワードが無効コードワードを含み、
プロセッサを使用して、前記構造化光画像中の符号化された各コードワードがメモリに記憶されたコードブック中のコードに対応するかどうかを決定することによって、前記無効コードワードを検出することと、前記コードブックが無効コードのリストを備え、
前記プロセッサを使用して、前記無効コードワードに基づいて複数の候補コードワードを生成することと、
前記プロセッサを使用して、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、ここにおいて、前記複数の候補コードワードのうちの１つを前記選択することが、
前記生成された複数の候補コードワードから、複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの１つの同じである、
前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択することと
を備える、  前記プロセッサを使用して、前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、
前記プロセッサを使用して、前記深度マップに基づいてシーンのデジタル表現を生成することと、
出力デバイスに前記シーンの前記デジタル表現を出力することとを備える、方法。
【請求項２】
前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、請求項１に記載の方法。
【請求項３】
前記無効コードワードを検出することが、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較することを備える、請求項２に記載の方法。
【請求項４】
前記比較することが、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える、請求項３に記載の方法。
【請求項５】
前記複数の候補コードワードを生成することが、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備える、請求項１に記載の方法。
【請求項６】
前記複数の候補コードワードを生成することは、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させることを備える、請求項１に記載の方法。
【請求項７】
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、請求項１に記載の方法。
【請求項８】
前記局所近傍に関連する前記深度がメジアン深度である、請求項７に記載の方法。
【請求項９】
シーンのデジタル表現を生成するための装置であって、
複数の符号化されたコードワードの構造化光画像を受信するように構成された受信機センサーと、前記複数の符号化されたコードワードが無効コードワードを含み、
前記受信機センサーと通信している処理回路と、を備え、
ここにおいて、前記処理回路が、
前記構造化光画像中の符号化された各コードワードがメモリに記憶されたコードブック中のコードに対応するかどうかを決定することによって、前記無効コードワードを検出することと、前記コードブックが無効コードのリストを備え、
前記無効コードワードに基づいて複数の候補コードワードを生成することと、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、
前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、
前記深度マップに基づいてシーンのデジタル表現を生成することと、
出力デバイスに前記シーンの前記デジタル表現を出力することとを行うように構成され、
ここにおいて、前記複数の候補コードワードのうちの１つを前記選択することが、
複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの１つと同じである、
前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択することと、
を備える、装置。
【請求項１０】
前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、請求項９に記載の装置。
【請求項１１】
前記処理回路が、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するようにさらに構成された、請求項１０に記載の装置。
【請求項１２】
前記処理回路が、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するようにさらに構成された、請求項１０に記載の装置。
【請求項１３】
前記処理回路が、前記無効コードワードの各要素を摂動させることと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成された、請求項９に記載の装置。
【請求項１４】
前記処理回路は、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させるようにさらに構成された、請求項１３に記載の装置。
【請求項１５】
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのコードワードロケーションの周りの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、請求項９に記載の装置。
【請求項１６】
前記局所近傍に関連する前記深度がメジアン深度である、請求項１５に記載の装置。
【請求項１７】
シーンのデジタル表現を生成するための装置であって、
複数の符号化されたコードワードの構造化光画像を受信するための手段と、前記複数の符号化されたコードワードが無効コードワードを含み、
前記構造化光画像中の符号化された各コードワードがコードブック中のコードに対応するかどうかを決定するための手段を備える、前記無効コードワードを検出するための手段と、前記コードブックが無効コードのリストを備え、
前記無効コードワードに基づいて複数の候補コードワードを生成するための手段と、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択するための手段と、ここにおいて、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択するための前記手段が、
前記生成された複数の候補コードワードから、複数の候補コードワードのサブセットを選択するための手段と、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの１つの同じである、
前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定するための手段と、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択するための手段と
を備える、
前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成するための手段と、
前記深度マップに基づいてシーンのデジタル表現を生成するための手段と、
出力デバイスに前記シーンの前記デジタル表現を出力するための手段とを備える、装置。
【請求項１８】
前記受信するための手段が受信機センサーを備え、ここにおいて、前記無効コードワードを検出するための手段が処理回路を備え、ここにおいて、前記複数の候補コードワードを生成するための手段が前記処理回路を備え、ここにおいて、前記複数の候補コードワードのうちの１つを選択するための前記手段が前記処理回路を備え、ここにおいて、前記深度マップを生成するための手段が前記処理回路を備え、ここにおいて、前記デジタル表現を生成するための手段が前記処理回路を備え、ここにおいて、前記出力するための手段が前記処理回路を備える、請求項１７に記載の装置。
【請求項１９】
前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成され、ここにおいて、前記無効コードワードを検出するための手段が、符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するための手段を備え、ここにおいて、前記比較するための手段が、符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するための手段を備える、請求項１７に記載の装置。
【請求項２０】
前記複数の候補コードワードを生成するための手段が、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備え、前記複数の候補コードワードを生成するための手段が、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させることを備える、請求項１７に記載の装置。
【請求項２１】
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記局所近傍に関連する前記深度がメジアン深度であり、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの周りの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、請求項１７に記載の装置。
【請求項２２】
シーンのデジタル表現を生成するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、
受信機センサーを介して、複数の符号化されたコードワードの構造化光画像を受信することと、前記複数の符号化されたコードワードが無効コードワードを含み、
前記無効コードワードを検出することと、前記無効コードワードを検出することが、前記構造化光画像中の符号化された各コードワードがコードブック中のコードに対応するかどうかを決定することを備え、前記コードブックが無効コードのリストを備え、
前記無効コードワードに基づいて複数の候補コードワードを生成することと、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、ここにおいて、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを前記選択することが、
複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記符号化されたコードワードのうちの１つの同じである、
前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することと
を備える、
前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、
前記深度マップに基づいて前記シーンのデジタル表現を生成することと、
出力デバイスに前記シーンの前記デジタル表現を出力することとを備える方法を実施する、非一時的コンピュータ可読媒体。
【請求項２３】
前記複数の候補コードワードを生成することが、前記無効コードワードの各ビットを１つずつ変化させることと、ビットの各変化について候補コードワードを生成することとを備える、請求項２２に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]様々な特徴は、アクティブ深度検知（active depth sensing）に関し、より詳細には、構造化光から導出された深度情報を解釈するときにデータ誤りから生じる深度マップにおけるギャップを訂正するための技法に関する。
【背景技術】
【０００２】
[0002]構造化光アクティブ検知システムは、シーンのための深度マップを生成するために、空間コード（コードワード）に対応するパターンを送信および受信する。物体が送信機および受信機から遠くなるほど、受信された空間コード投影は、出射空間コード投影（outgoing spatial code projection）と反射された入来空間コード投影（reflected incoming spatial code projection）とがより平行になるので、（１つまたは複数の）受信機においてそれの元の位置から近くなる。逆に、物体が送信機および受信機に近くなるほど、受信された空間コード投影は、（１つまたは複数の）受信機においてそれの元の位置から遠くなる。したがって、受信コードワード位置と送信コードワード位置との間の差は、シーンにおける物体の深度を示す。構造化光アクティブ検知システムは、シーンの深度マップまたは３次元表現を生成するために、これらの相対深度を使用する。深度マップは、カメラ品質向上からコンピュータビジョンにわたる多くの適用例にとって重要である。
【０００３】
[0003]各コードワードは、変動する強度値を用いて行および列にセグメント化された光パターンを使用して符号化され得る。たとえば、バイナリパターンを形成するための０および１（0’s and 1’s）を表すために、明強度値（bright intensity values）および暗強度値（dark intensity values）が使用され得る。他の空間コードは、３つ以上の異なる強度値を使用し得る。
【０００４】
[0004]スペックル（speckle）などの干渉は、受信された空間コードおよび得られた深度マップがギャップまたはホールを有することを引き起こし得る。たとえば、バイナリコードが送信されるときに存在する干渉は、送信されたコード中の符号化された「１」値が「０」として受信されることを引き起こし得、またはその逆も同様である。したがって、受信された空間コードは、送信された空間コードとして認識されない。この生じた誤りは、シーンの深度マップにおける不正確なまたは消失した深度値を生じ得る。
【発明の概要】
【０００５】
[0005]本明細書で開示されている方法および装置またはデバイスは、それぞれ、いくつかの態様を有し、それらのうちの単一の態様が単独でそれの望ましい属性を担当するとは限らない。次に、たとえば以下の特許請求の範囲によって表される本開示の範囲を限定することなしに、それのより顕著な特徴が手短に説明される。この説明を考察すれば、特に「発明を実施するための形態」と題するセクションを読めば、説明されている特徴が、構造化光における誤り訂正を含む利点をどのように提供するかが理解されよう。
【０００６】
[0006]開示される一態様は、構造化光における誤り訂正の方法である。様々な実施形態では、本方法は、受信機センサーを介して、複数のコードワードを符号化する複合コードマスク（composite code mask）の少なくとも一部分の構造化光画像（structured light image）を受信することを含み得、画像は無効コードワードを含む。本方法は、無効コードワードを検出することをさらに含み得る。本方法は、無効コードワードに基づいて複数の候補コードワードを生成することをさらに含み得る。本方法は、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択することをさらに含み得る。本方法は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することをさらに含み得る。本方法は、深度マップに基づいてシーンのデジタル表現を生成することをさらに含み得る。本方法は、出力デバイスにシーンのデジタル表現を出力することをさらに含み得る。
【０００７】
[0007]いくつかの実装形態では、無効コードワードを検出することは、受信されたコードワードが複数の符号化されたコードワードに含まれるかどうかを決定することと、受信されたコードワードが複数の符号化されたワードに含まれないという決定に応答して、受信されたコードワードが無効であると決定することとを含む。
【０００８】
[0008]いくつかの実装形態では、符号化されたコードワードは、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される（formed of）。いくつかの実装形態では、無効コードワードを検出することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較することを含む。いくつかの実装形態では、比較することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを含む。
【０００９】
[0009]いくつかの実装形態では、複数の候補コードワードを生成することは、各個々の摂動について候補コードワードを生成するために、無効コードワードの各要素を個々に摂動させることを含む。いくつかの実装形態では、複数の候補コードワードを生成することは、無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させることを備える。
【００１０】
[0010]いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択することは、複数の符号化されたコードワードに含まれる複数の候補コードワードのサブセットを選択することを含む。いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択することは、候補コードワードの選択されたサブセットの各々と、無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することをさらに含む。いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択することは、無効コードワードを置き換えるために、局所近傍に最も類似した候補コードワードを選択することをさらに含む。いくつかの実装形態では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。いくつかの実装形態では、無効コードワードのコードワードの局所近傍は、無効コードワードのロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる。いくつかの実装形態では、局所近傍に関連する深度はメジアン深度である。
【００１１】
[0011]開示される別の態様は、構造化光における誤り訂正のための装置である。本誤り訂正装置は、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するように構成された受信機センサーを含み得、画像は無効コードワードを含む。本誤り訂正装置は、受信機センサーと通信している処理回路をさらに含み得る、処理回路。処理回路は、無効コードワードを検出するように構成され得る。処理回路は、無効コードワードに基づいて複数の候補コードワードを生成するようにさらに構成され得る。処理回路は、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択するようにさらに構成され得る。処理回路は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するようにさらに構成され得る。処理回路は、深度マップに基づいてシーンのデジタル表現を生成するようにさらに構成され得る。処理回路は、出力デバイスにシーンのデジタル表現を出力するようにさらに構成され得る。
【００１２】
[0012]いくつかの実装形態では、処理回路は、受信されたコードワードが複数の符号化されたコードワードに含まれるかどうかを決定するようにさらに構成される。いくつかの実装形態では、処理回路は、受信されたコードワードが複数の符号化されたワードに含まれないという決定に応答して、受信されたコードワードが無効であると決定するように構成される。
【００１３】
[0013]いくつかの実装形態では、符号化されたコードワードは、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される。いくつかの実装形態では、処理回路は、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較するようにさらに構成される。いくつかの実装形態では、処理回路は、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理する（match filter）ようにさらに構成される。
【００１４】
[0014]いくつかの実装形態では、処理回路は、無効コードワードの各要素を摂動させる（perturb）ことと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成される。いくつかの実装形態では、処理回路は、無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させるようにさらに構成される。
【００１５】
[0015]いくつかの実装形態では、処理回路は、複数の符号化されたコードワードに含まれる複数の候補コードワードのサブセットを選択するようにさらに構成される。いくつかの実装形態では、処理回路は、候補コードワードの選択されたサブセットの各々と、無効コードワードの周りのコードワードの局所近傍との間の類似度（similarity）を決定するようにさらに構成される。いくつかの実装形態では、処理回路は、無効コードワードを置き換えるために、局所近傍に最も類似した候補コードワードを選択するようにさらに構成される。いくつかの実装形態では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。いくつかの実装形態では、無効コードワードの周りのコードワードの局所近傍は、無効コードワードのコードワードロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる。いくつかの実装形態では、局所近傍に関連する深度はメジアン深度である。
【００１６】
[0016]開示される別の態様は、構造化光における誤り訂正のための装置である。本装置は、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するための手段を含み得、画像は無効コードワードを含む。本装置は、無効コードワードを検出するための手段を含み得る。本装置は、無効コードワードに基づいて複数の候補コードワードを生成するための手段を含み得る。本装置は、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択するための手段を含み得る。本装置は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するための手段を含み得る。本装置は、深度マップに基づいてシーンのデジタル表現を生成するための手段を含み得る。本装置は、出力デバイスにシーンのデジタル表現を出力するための手段を含み得る。
【００１７】
[0017]開示される別の態様は、構造化光における誤り訂正のための命令を記憶する非一時的コンピュータ可読媒体であり、命令は、実行されたとき、実行されたとき、方法を実施する。方法は、受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することを含み得、画像は無効コードワードを含む。方法は、無効コードワードを検出することを含み得る。方法は、無効コードワードに基づいて複数の候補コードワードを生成することを含み得る。方法は、無効コードワードを置き換えるために、複数の候補コードワードのうちの１つを選択することを含み得る。方法は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することを含み得る。方法は、深度マップに基づいてシーンのデジタル表現を生成することを含み得る。方法は、出力デバイスにシーンのデジタル表現を出力することを含み得る。
【００１８】
[0018]次に、上述の態様、ならびに本技術の他の特徴、態様、および利点が、添付の図面を参照しながら、様々な実装形態に関して説明される。ただし、図示された実装形態は、例にすぎず、限定するものではない。図面全体にわたって、同様のシンボルは、一般に、コンテキストが別段に規定しない限り、同様の構成要素を識別する。以下の図の相対寸法は一定の縮尺で描かれていないことがあることに留意されたい。
【図面の簡単な説明】
【００１９】
【図１】[0019]シーンまたは物体を照明し（illuminate）、２次元画像および／または情報から３次元情報を生成するための（with which）深度情報を取得するために、既知のパターンが使用される、アクティブ検知システムの一例を示す概略図。
【図２】[0020]２次元（２Ｄ）画像または情報から３次元（３Ｄ）シーンが構成されるアクティブ検知のためのシステムの別の例を示す図。
【図３】[0021]物体またはシーンのために深度がどのように検知され得るかを示す概略図。
【図４】[0022]複合コードマスクを生成することおよび／またはそのような複合コードマスクを投影することを行うように構成され得る送信機デバイスの一例を示すブロック図。
【図５】[0023]複合コードマスクから深度情報を取得するように構成され得る受信機デバイスの一例を示すブロック図。
【図６】[0024]本明細書で開示される誤り訂正方法のうちの１つまたは複数を実施するように構成された装置の一実施形態のブロック図。
【図７】[0025]メジアンフィルタを使用する誤り訂正の異なる度合いを示す図。
【図８Ａ】[0026]エルミート対称性を呈する点をもつパターンの一例を示す図。
【図８Ｂ】[0027]ゴースト画像をもたないエルミート対称パターンの一例を示す図。
【図８Ｃ】[0028]エルミート対称性をもつコードマスクパターンの一例を示す図。
【図８Ｄ】[0029]ゴースト画像をもつ非エルミート対称パターンの一例を示す図。
【図８Ｅ】[0030]エルミート対称性をもたないコードマスクパターンの一例を示す図。
【図９】[0031]異なる基底関数の列およびウィンドウ処理された４×４空間コードをもつ、図８Ｃに示されている例示的なコードマスクの詳細図。
【図１０】[0032]構造化光から導出された深度マップにおけるギャップを示す図。
【図１１】[0033]深度マップホール充填（depth map hole filling）の方法のデータフロー図の一例の図。
【図１２】[0034]深度マップにおける誤り訂正のプロセスの一例を示す図。
【図１３】[0035]メジアンフィルタを使用する深度マップにおけるギャップ充填のいくつかの態様を示す画像を示す図。
【図１４】[0036]本明細書で開示される方法およびシステムを使用する深度マップのギャップ充填のいくつかの態様を示す画像を示す図。
【図１５】[0037]構造化光から生成されたコードワード中の誤りを訂正するプロセスの一例を示すフローチャート。
【発明を実施するための形態】
【００２０】
[0038]以下の発明を実施するための形態は、いくつかの特定の実施形態を対象とする。ただし、開示される方法およびシステムは多数の異なる方法で実施され得る。本明細書の態様は多種多様な形態で実施され得、本明細書で開示される特定の構造、機能、またはその両方は代表的なものにすぎないことは明らかであろう。本明細書の教示に基づいて、本明細書で開示される態様は他の態様から独立して実装され得ること、およびこれらの態様のうちの２つまたはそれ以上は様々な方法で組み合わせられ得ることを、当業者は諒解されたい。たとえば、本明細書に記載する態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本明細書に記載する態様のうちの１つまたは複数に加えて、あるいはそれら以外の他の構造、機能、または構造および機能を使用して、そのような装置が実装され得るか、またはそのような方法が実施され得る。
【００２１】
[0039]さらに、本明細書で説明されるシステムおよび方法は、様々な異なるコンピューティングデバイス上で実装され得る。これらは、モバイルフォン、タブレット、専用カメラ、ウェアラブルコンピュータ、パーソナルコンピュータ、写真ブースまたはキオスク、携帯情報端末（personal digital assistants）、ウルトラモバイルパーソナルコンピュータ、およびモバイルインターネットデバイスを含む。それらは、汎用または専用のコンピューティングシステム環境または構成を使用し得る。本発明とともに使用するのに好適であり得る、コンピューティングシステム、環境、および／または構成の例としては、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブルコンシューマーエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがある。
【００２２】
[0040]上記で説明されたように、構造化光システムは、深度マップを取得するために、シーン上に既知のパターンまたはコードを投影し、受信されたパターンまたはコードを処理する。各コードワードは、以下でより詳細に説明される「基底関数」の使用によって生成され得る。基底関数の周期性は、（ゴースト画像を除去し、製造を簡略化するための）エルミート対称性のアグリゲートパターンと、（コードワードごとの最小電力を保証するための）最小デューティサイクルと、（最適な輪郭解像度および高解像度のためのコードパッキングのための）完全ウィンドウプロパティと、（物体境界に対する改善された検出のための）ランダム化されたシフトとのための１つまたは複数の要件を満たすように選定され得る。
【００２３】
[0041]受信されたコードが、有効コードをリストするコードブック中のコードのうちの１つに一致する場合、受信されたコードは、送信されたコードと等価な可能性が最も高く、したがって、誤りは存在しない。必然的に、スペックルまたは他の雑音源により、受信されたパターンのいくつかの領域は、コードの送信と受信との間で変更され得る。受信されたコードがコードブック中のコードのうちの１つに正確に一致しない場合、受信機は、受信されたコードが送信されたコードに一致せず、したがって、受信されたコード中に誤りが存在すると決定し得る。復号されていないコードワードは、深度情報を含んでおらず、したがって、マップのユーティリティを劣化させる深度マップにおけるホールを生じる。
【００２４】
[0042]いくつかのソリューションは、受信されたコードワード中の基底関数の存在に関する軟判定を与えるために、整合フィルタを利用する。誤り検出および訂正のための他の機構は、下にあるコード構造を使用せず、したがって、新しい情報を作成しない幾何学的制約の使用を伴う（involve）。
【００２５】
[0043]いくつかの実施形態では、開示されるシステムおよび方法は、送信されていることがある有効コードのリストを含んでいるコードブックと、受信されたコードワードとに基づいて、送信された最も可能性が高いコードワードを決定することによって、誤り訂正を実施し得る。
【００２６】
[0044]たとえば、いくつかの態様では、受信されたコードが、有効コードのコードブック中のどのコードにも一致しない場合、受信されたコードベイからの１つまたは複数のビット差を含む受信されたコードの変形体（variations）が、変形体のいずれかが有効コードのコードブックに含まれるかどうかを決定するために、コードブックと比較される。受信されたコードワードの複数の変形体がコードブックに含まれる場合、コードワードの局所近傍と候補コードワードとの間の類似性測度が、元の送信されたコードワードに一致する可能性が最も高い変形体を選択するために採用される。
例示的な動作環境
[0045]図１は、シーンまたは物体を照明し、深度情報を取得するために、構造化光パターンが使用される、例示的なアクティブ検知システムを示す。本明細書で説明される１つまたは複数の態様および／または特徴は、そのような例示的なアクティブ検知システム内に実装され得る。図１は、物体またはシーン１０６上にコードワードを投影するために、コードマスク１０４（たとえば、コードをもつ画像）を通して光を投影する送信機１０２を示す。受信機１０８は、投影されたコードマスク１１０とその中のコードワードとをキャプチャする。コードマスク１０４のセクション／部分／ウィンドウ１１２は、物体またはシーン１０６の表面（たとえば、投影されたセクション／部分／ウィンドウ１１６）上に（セクション／部分／ウィンドウ１１４として）投影される。投影されたセクション／部分／ウィンドウ１１６は、次いで、キャプチャされたセグメント１１８として受信機１０８によってキャプチャされ得る。セクション／部分／ウィンドウ１１２は、一意に識別され得るコードワードを符号化する。このようにして一意のコードワードをもつシーンまたは物体１０６を画像化すること（imaging）によって、シーンまたは物体１０６のセクション／部分は識別／タグ付けされ得、この情報は深度検知のために使用され得る。
【００２７】
[0046]受信機１０８によってキャプチャされた画像から、複数のセグメント（multiple segments）がシーンまたは物体１０６上で識別され得る。各セグメント１１８は受信機１０８において一意に識別可能であり、他のセグメントに対するそれのロケーションはコード化マスク１０４の既知のパターンから確認され（ascertained）得る。各セグメント／部分／ウィンドウからのコードの識別は、（たとえば、ひずみに対処するための）パターンセグメンテーションと、知覚されたセグメント／部分／ウィンドウの、対応する（１つまたは複数の）コードへの復号とを伴い得る。さらに、三角測量が、配向および／または深度を確認するために、各キャプチャされたセグメント／部分／ウィンドウ上で適用され得る。複数のそのようなセグメント／部分／ウィンドウは、キャプチャされた画像パターンを一緒にスティッチ（stitch）するために組み合わせられ得る。このようにして、深度のマップがシーンまたは物体１０６のために生成され得る。
【００２８】
[0047]図２は、２次元（２Ｄ）画像または情報から３次元（３Ｄ）シーンが構成されるアクティブ検知のための別の例示的なシステムを示す。エンコーダ／形状変調器２０１はコードマスクを生成するように働き（serve）得、コードマスクは、次いで、送信チャネル２０４上で送信機デバイス２０２によって投影される。コードマスクはターゲット（たとえば、シーンまたは物体）上に投影され得、反射光は画像（たとえば、コードマスク画像）として受信機センサー２０５によってキャプチャされる。受信機センサー２０５（たとえば、図１中の受信機１０８）において、ターゲット（たとえば、シーンまたは物体）がキャプチャされ、それの形状／深度が符号化２０５される。形状／深度符号化は、たとえば、深度情報を確認するために、投影されたコードマスクを使用して達成され得る。たとえば、（投影されたコードマスクを含む）シーンまたは物体のキャプチャされた画像は、深度マップ２０８を取得するために復号２０６され得る。深度マップ２０８は、次いで、ターゲットの３次元バージョン２１０ａ〜ｅを提示、生成、および／または与えるために使用され得る。
【００２９】
[0048]アクティブ検知は、シーンまたは物体上に送信機デバイス２０２によって投影されているコードマスクからのすべての空間コード（すなわち、コードワード）を（受信機センサー２０５および／またはデコーダ２０６において）認識することが可能であることに依拠する。シーンまたは物体が送信機／受信機に近すぎる、シーンまたは物体の表面が傾斜／湾曲している、および／あるいはベースライン基準面が傾いている場合、コードは未知のアフィン変換（たとえば、回転、スキュー、圧縮、伸長（elongation）など）の下で変更される。
【００３０】
[0049]本明細書で説明される１つまたは複数の態様または特徴は、図１および図２の例示的な環境内に実装され得る。
例示的なアクティブ深度検知
[0050]図３は、物体またはシーンのために「深度」がどのように検知され得るかの一例を示す。図３は、送信機３０２と受信機３０４とを含むデバイス３００を示す。デバイスは、コードワード投影３１０として送信機３０２から放出された構造化光を用いて、２つの物体３０６および３０８を照明している。コードワード投影３１０は、物体３０６および／または３０８から反射し、コードワード反射３１１として受信される。
【００３１】
[0051]示されている態様では、送信機３０２は、受信機３０４と同じベースライン基準面（たとえば、レンズ平面３０５）上にある。送信機３０２は、レンズまたは開口３１３を通して物体３０６および３０８上にコードマスク３１０を投影する。
【００３２】
[0052]コードワード投影３１０は、投影されたセグメント３１２’として物体３０６を照明し、投影されたセグメント３１２”として物体３０８を照明する。投影されたセグメント３１２’および３１２”が受信機レンズまたは開口３１５を通して受信機３０４によって受信されたとき、コードワード反射３１１は、第１の距離ｄ１において物体３０８から生成された反射と、第２の距離ｄ２において物体３０６から生成された反射とを示し得る。
【００３３】
[0053]図３によって示されるように、物体３０６は送信機３０２のより近く（たとえば、送信機デバイスから第１の距離）に配置されるので、投影されたセグメント３１２’はそれの初期ロケーションから距離ｄ２のところに現れる。対照的に、物体３０８はさらに離れて（たとえば、送信機３０２から第２の距離離れて）配置されるので、投影されたセグメント／部分／ウィンドウ３１２”はそれの初期ロケーションから距離ｄ１のところに現れる（ここで、ｄ１＜ｄ２）。すなわち、物体が送信機／受信機から離れるほど、受信された投影されたセグメント／部分／ウィンドウは受信機３０４においてそれの元の位置から近くなる（たとえば、出射投影と入来投影とはより平行になる）。逆に、物体が送信機／受信機から近くなるほど、受信された投影されたセグメント／部分／ウィンドウは受信機３０４においてそれの元の位置から遠くなる。したがって、受信コードワード位置と送信コードワード位置との間の差は、物体の深度のインジケータとして使用され得る。一例では、そのような深度（たとえば、相対深度）は、画像中の各ピクセルまたはグループ化されたピクセル（たとえば、２つまたはそれ以上のピクセルの領域）によって示される物体のための深度値を与え得る。
【００３４】
[0054]コードワード投影またはコードマスクを生成するための様々なタイプの変調およびコーディング方式が考えられている。これらの変調およびコーディング方式は、時間コーディング、空間コーディング、および直接コード化（direct codification）を含む。
【００３５】
[0055]時間コーディングでは、パターンは、（たとえば、時間とともに（over time））測定表面上に連続的に投影される。この技法は、高い精度および解像度を有するが、動的シーン（dynamic scenes）にあまり好適でない。
【００３６】
[0056]空間コーディングでは、情報は、形状およびパターンに基づいて局所近傍において符号化される。擬似ランダムコードはＤｅ−Ｂｒｕｉｊｎに基づき得るか、またはＭ配列はコードブック（たとえば、ｍ値強度または色変調）を定義する。パターンセグメンテーションは、たとえば、形状およびパターンがひずんでいる場合、容易に達成されないことがある。
【００３７】
[0057]直接コード化では、水平ピクセル座標と垂直ピクセル座標の両方が符号化される。変調は単調位相または強度波形によるものであり得る。しかしながら、この方式は、他の方法のために利用されるコードブックよりも大きいコードブックを利用し得る。たいていの方法（most methods）では、受信されたコードワードは、（たとえば、コードブック中の）可能なコードワードの定義されたセットに対して相関させられ得る。したがって、コードワードの小さいセット（たとえば、小さいコードブック）の使用は、より大きいコードブックよりも良好な性能を与え得る。また、より大きいコードブックがコードワード間のより小さい距離を生じるので、より大きいコードブックを使用する実装形態によって、追加の誤りが経験され（experienced）得る。
アクティブ深度検知のための例示的なコード
[0058]構造化光パターンは、コードマスクを通して光を照らすことによってシーン上に投影され得る。コードマスクを通して投影された光は、１つまたは複数のテッセレーションされた（tessellated）コードマスクプリミティブを含んでいることがある。各コードマスクプリミティブは、空間コードのアレイを含んでいることがある。コードブックまたはデータ構造はコードのセットを含み得る。空間コード、コードマスク、およびコードマスクプリミティブは、基底関数を使用して生成され得る。基底関数の周期性は、（ゴースト画像を除去し、製造を簡略化するための）エルミート対称性のアグリゲートパターンと、（コードワードごとの最小電力を保証するための）最小デューティサイクルと、（最適な輪郭解像度および高解像度のためのコードパッキングのための）完全ウィンドウプロパティと、（物体境界に対する改善された検出のための）ランダム化されたシフトとのための要件を満たすように選定され得る。受信機は、受信されたパターン中の誤りを復調、復号、および訂正するとき、コードブック、ならびに／または空間コード、コードマスク、およびコードマスクプリミティブの設計の属性を利用し得る。
【００３８】
[0059]空間コードのサイズおよび対応する解像度は、コードマスク上の空間コードの物理的空間範囲に対応する。サイズは、各コードワードを表す行列中の行および列の数に対応し得る。コードワードが小さいほど、検出され得る物体は小さくなる。たとえば、シャツ上のボタンとシャツ生地との間の深度差を検出および決定するために、コードワードは、ボタンのサイズよりも大きくないものであるべきである。一実施形態では、各空間コードは４つの行と４つの列とを占有し得る。一実施形態では、コードは、たとえば、３×３、４×４、４×５、５×５、６×４、または１０×１０の行および列を占有するために、より多いまたはより少ない行および列（行×列）を占有し得る。
【００３９】
[0060]空間コードの空間表現は、各コードワード要素が、どのようにコードマスク上でパターニングされ、次いでシーン上に投影されるかに対応する。たとえば、各コードワード要素は、１つまたは複数のドット、１つまたは複数のラインセグメント、１つまたは複数のグリッド、何らかの他の形状、またはそれらの何らかの組合せを使用して表され得る。
【００４０】
[0061]空間コードの「デューティサイクル」は、コードワード中の、アサートされたビットまたは部分（たとえば、「１（1s）」）の数と、アサートされないビットまたは部分（たとえば、「０（0s）」）の数の比に対応する。コードワードを含むコード化光パターンがシーン上に投影されるとき、「１」の値を有する各ビットまたは部分はエネルギー（たとえば、「光エネルギー」）を有し得、「０」の値を有する各ビットはエネルギーがないこと（devoid of）がある。コードワードが容易に検出可能であるために、コードワードは十分なエネルギーを有するべきである。低エネルギーコードワードは、検出することがより困難であり得、雑音をより受けやすい（susceptible）ことがある。たとえば、４×４コードワードは、コードワード中のビットのうちの８つまたはそれ以上が「１」である場合、５０％またはそれ以上のデューティサイクルを有する。個々のコードワードのための最小（または最大）デューティサイクル制約、またはコードブック中のコードのセットのための平均デューティサイクルなどのデューティサイクル制約があり得る。
【００４１】
[0062]コードの「輪郭解像度」または「完全ウィンドウ」特性は、コードワードが１ビット回転などの小さい量だけシフトされるとき、得られたデータが別のコードワードを表すことを示す。コードワードがシフトされる量はシフト量と呼ばれることがある。高輪郭解像度をもつコードは、構造化光深度検知システムが、比較的小さい物体境界を認識し、異なる物体について認識連続性を与えることを可能にし得る。行次元における１および列次元における２のシフト量は、行次元に沿って右に１ビット位置だけの、および列次元に沿って下に２ビット位置だけのシフトに対応し得る。コードワードの高輪郭解像度セットは、受信された画像上のウィンドウを一度に１行または１列移動し、各ウィンドウ位置における深度を決定することを可能にする。これは、受信された画像の第３の行および第３の列を中心とする開始点において５×５ウィンドウを使用し、各行に、すなわち列ロケーションを第３の行から最後の行に対して３番目に、および第３の列から最後の列に対して３番目に５×５ウィンドウを移動する深度の決定を可能にする。コードワードが重複するので、ウィンドウは、決定されるべき物体深度（シャツ上のボタンなど）の解像度に基づいてサイズ決定され得る。
【００４２】
[0063]コードの対称性は、コードマスクまたはコードブックプリミティブが、非エルミート対称コードブックプリミティブまたはパターンを使用することと比較していくつかの利益を与え得るエルミート対称性を有することを示し得る。エルミート対称性をもつパターンは、ＸおよびＹ（行および列）軸の両方に沿って「反転される」かまたは対称である。
【００４３】
[0064]コードマスクまたはコードマスクプリミティブのエイリアシング（aliasing）特性は、同じである２つのコードワード間の距離に対応する。光パターンがテッセレーションされたコードブックプリミティブを含むとき、およびプリミティブにおける各コードブックが一意であるとき、エイリアシング距離はコードブックプリミティブのサイズに基づき得る。したがって、エイリアシング距離は、コードブックプリミティブの各コードワードがコードブックプリミティブの各他のコードワードとは異なるべきであること、およびコードブックプリミティブが全体として一意であることを示す一意性基準（uniqueness criterio）を表し得る。エイリアシング距離は、１つまたは複数の受信機デバイスに知られており、コードワード復調中にエイリアシングを防ぐために使用され得る。
【００４４】
[0065]コードマスクのカーディナリティ（cardinality）は、コードブックプリミティブにおける一意のコードの数に対応する。
例示的な送信機デバイス
[0066]図４は、複合コードマスクを生成することおよび／またはそのような複合コードマスクを投影することを行うように構成され得る送信機デバイスの一例を示すブロック図である。送信機デバイス４０２は、メモリ／ストレージデバイス、画像投影デバイス４０８、および／または有形媒体４０９に結合された処理回路４０４を含み得る。いくつかの態様では、送信機デバイス４０２は、図３に関して上記で説明された送信機３０２に対応し得る。
【００４５】
[0067]第１の例では、送信機デバイス４０２は、有形媒体４０９を含むように結合され得る。有形媒体は、複合コードマスク４１４を定義し、含み、および／または記憶し、複合コードマスクは、キャリアレイヤと組み合わせられたコードレイヤを含み得る。コードレイヤは、複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードを含み得る。キャリアレイヤは、独立して確認可能であり、コードレイヤとは別個であり得、投影時のひずみにロバストである複数の基準物体を含む。コードレイヤおよびキャリアレイヤのうちの少なくとも１つは、投影より前に合成点像分布関数（synthetic point spread function）によって事前整形され得る。
【００４６】
[0068]第２の例では、処理ユニット４０４は、コードレイヤ生成器／セレクタ４１６、キャリアレイヤ生成器／セレクタ４１８、複合コードマスク生成器／セレクタ４２０および／または事前整形回路４２２を含み得る。コードレイヤ生成器／セレクタ４１６は、事前記憶されたコードレイヤ４１０を選択し得、および／またはそのようなコードレイヤを生成し得る。キャリアレイヤ生成器／セレクタ４１８は、事前記憶されたキャリアレイヤ４１２を選択し得、および／またはそのようなキャリアレイヤを生成し得る。複合コードマスク生成器／セレクタは、事前記憶された複合コードマスク４１４を選択し得、および／または複合コードマスク４１４を生成するためにコードレイヤ４１０とキャリアレイヤ４１２とを組み合わせ得る。随意に、処理回路４０４は、複合コードマスクが投影されるべきである（through which）チャネル中の予想されるひずみを補償するために、複合コードマスク４１４、コードレイヤ４１０、および／またはキャリアレイヤ４１２を事前整形する事前整形回路を含み得る。
【００４７】
[0069]いくつかの実装形態では、複数の異なるコードレイヤおよび／またはキャリアレイヤが利用可能であり得、ここで、各そのようなキャリアレイヤまたはコードレイヤは、異なる状態のために（たとえば、異なる距離にある物体、または送信機デバイスと受信機デバイスとの間の異なる構成のために）構成され得る。たとえば、第１の距離または範囲内の物体のために、第２の距離または範囲にある物体のためのものとは異なるコードレイヤとキャリアレイヤとの組合せが使用され得、ここで、第２の距離は第１の距離よりも大きい。別の例では、コードレイヤとキャリアレイヤとの異なる組合せが、送信機デバイスと受信機デバイスとの相対配向に応じて使用され得る。
【００４８】
[0070]画像投影デバイス４０８は、生成／選択された複合コードマスクを当該の（interest）物体上に投影するように働き得る。たとえば、レーザーまたは他の光源が、（たとえば、投影チャネルを通して）当該の物体上に複合コードマスクを投影するために使用され得る。一例では、複合コードマスク４１４は赤外スペクトル（infrared spectrum）において投影され得、したがって、それは肉眼にとって可視でないことがある。代わりに、赤外スペクトル範囲中の受信機センサーが、そのような投影された複合コードマスクをキャプチャするために使用され得る。
例示的な受信機デバイス動作
[0071]図５は、複合コードマスクから深度情報を取得するように構成され得る受信機デバイス５０２の一例を示すブロック図である。受信機デバイス５０２は、メモリ／ストレージデバイスと受信機センサー５０８（たとえば、画像キャプチャデバイス５０８）とに結合された処理回路５０４を含み得る。いくつかの態様では、図５に示されている受信機デバイス５０２は、図３に関して上記で説明された受信機３０４に対応し得る。
【００４９】
[0072]受信機センサー５０８（たとえば、カメラ）は、物体の表面上に投影された複合コードマスクの少なくとも一部分を取得するように働き得る。たとえば、受信機センサーは、ターゲット物体の表面上に投影された複合コードマスクの少なくとも一部分をキャプチャし得る。複合コードマスクは、（ａ）複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードのコードレイヤと、（ｂ）独立して確認可能な、コードレイヤとは別個の、投影時のひずみにロバストである複数の基準物体を含む、キャリアレイヤとによって定義され得る。コードレイヤおよびキャリアレイヤのうちの少なくとも１つは、投影より前に合成点像分布関数によって事前整形されていることがある。一例では、受信機センサー５０８は赤外スペクトルにおける複合コードマスクをキャプチャし得る。
【００５０】
[0073]一実装形態では、コードレイヤは、ｎ１×ｎ２個のバイナリシンボルを備え得、ここで、ｎ１およびｎ２は２よりも大きい整数である。複合コードマスクでは、各シンボルは、基準物体とは別個の２つのグレースケールシェード（gray-scale shades）のうちの１つ中のラインセグメントであり得る。コードレイヤのシンボルは、少なくとも１つの次元においてスタッガされ（staggered）得る。キャリアレイヤ基準物体（carrier layer reference objects）は、間にガードインターバルをもつ複数の等間隔に離間した基準ストライプを備え得る。基準ストライプおよびガードインターバルは異なる幅のものであり得る。ガードインターバル幅に対する各基準ストライプの幅は、送信機デバイスおよび／または受信機デバイスの予想される光拡散によって決定され得る。
【００５１】
[0074]処理回路５０４は、基準ストライプ検出器回路／モジュール５１２、ひずみ調整回路／モジュール５１４、コードワード識別器回路／モジュール５１６、深度検出回路／モジュール５１８、および／または深度マップ生成回路／モジュール５２０を含み得る。
【００５２】
[0075]基準ストライプ検出器回路／モジュール５１２は、複合コードマスクの部分内の基準ストライプを検出するように構成され得る。ひずみ調整回路／モジュール５１４は、基準ストライプの実際の配向に対する基準ストライプの予想される配向に基づいて、複合コードマスクの部分のひずみを調整するように構成され得る。コードワード識別器回路／モジュール５１６は、複合コードマスクの部分内に定義されたウィンドウからコードワードを取得するように構成され得る。深度検出回路／モジュール５１８は、（ａ）複合コードマスクの単一の投影と、（ｂ）知られている参照コードマスクに対するウィンドウの変位とに基づいて、ウィンドウに対応するターゲット物体の表面部分のための深度情報を取得するように構成され得る。
【００５３】
[0076]まだ図５を参照すると、深度マップ生成回路／モジュール５２０は、ひずまされていない複合コードマスクの部分内の異なる重複ウィンドウとして検出された複数のコードワードに基づいて、物体のための深度マップをアセンブルするように構成され得る。
【００５４】
[0077]一例では、コードレイヤおよびキャリアレイヤのうちの少なくとも１つの事前整形（pre-shaping）は、整形されていない（unshaped）複合コードマスクと比較してより多くの電力が受信機センサーによって知覚されるように、複合コードマスクの投影中の電力効率を増加させる。
【００５５】
[0078]一事例では、使用される合成点像分布関数は、（ａ）複合コードマスクが投影されるべきである（through which）予想されるチャネル状態、（ｂ）複合コードマスクが投影される（onto which）表面の特性、および／または（ｃ）投影された複合コードマスクを受信すべきである受信機センサーの感度のうちの少なくとも１つに基づいて、複数の点像分布関数から選択され得る。別の例では、合成点像分布関数は、（ａ）複合コードマスクを投影すべきであるプロジェクタのための第１のチャネル応答、および／または（ｂ）複合コードマスクを投影すべきであるプロジェクタから、複合コードマスクを受信すべきである受信機センサーへの経路のための第２のチャネル応答のうちの少なくとも１つに基づいて、複数の点像分布関数から選択され得る。
例示的な誤り訂正デバイス
[0079]図６は、本明細書で開示される誤り訂正方法のうちの１つまたは複数を実施するように構成された装置の一実施形態を示すブロック図である。装置６００は、発光体６０２と、受光要素６０４と、プロセッサ６０６と、メモリ６０８とを含む。発光体６０２と、受光要素６０４と、プロセッサ６０６と、メモリ６０８とは、バス６１０を介して動作可能に接続される。いくつかの態様では、受光要素６０４は、図５に関して上記で説明された受信機デバイス５０２に対応し得る。いくつかの態様では、発光体６０２は、図４に関して上記で説明された送信機デバイス４０２に対応し得る。
【００５６】
[0080]メモリ６０８は、本明細書で説明される方法の１つまたは複数の機能を実施するようにプロセッサ６０６を構成する命令を記憶し得る。たとえば、メモリに記憶された命令は、ターゲット物体を照明するために、構造化光をコードワードとして符号化する光を放出するように発光体６０２を制御するようにプロセッサ６０６を構成し得る。メモリ６０８に記憶された命令は、さらに、プロセッサ６０６に、ターゲット物体から反射する光を受信し、反射光において符号化されたデータを生成するように受光要素６０４を制御させ得る。メモリに記憶された命令は、以下で説明される方法１５００に従って、受光要素（light receiving element）によって生成されたデータ中の誤りを訂正するようにプロセッサをさらに構成し得る。
【００５７】
[0081]図７は、画像深度マップにおけるギャップの影響を緩和するための知られている方法の適用の結果を示す。画像７０１ａは誤り訂正なしの深度マップを示す。深度マップにおけるホールは、たとえば、手７０１ｂにおける暗い領域として見られ得る。画像７０２ａは、軽度ホール充填プロセス（mild hole filling process）が実施された後の同じ深度マップを示す。手７０２ｂは、手７０１ａよりも少ないホールを深度マップ中に含むが、細部の若干の損失も存在する。画像７０３ａは、中間レベルホール充填が実施された後の、画像７０１ａと同じ深度マップを示す。画像７０３ａからの手７０３ｂは、深度マップギャップの数のさらなる低減を示すが、手７０１ｂおよび７０２ｂに対する細部の損失をも示す。画像７０４ａは、網羅的ホール充填の後の画像７０１ａと同じ深度マップを示す。画像７０４ａからの手７０４ｂは、手７０１ｂ、７０２ｂ、および７０３ｂと比較して、深度マップギャップのさらなる低減を示す。しかしながら、手７０１ｂ、７０２ｂ、および７０３ｂに対する細部のさらなる損失も明白である。
【００５８】
[0082]図８Ａは、エルミート対称性を呈するパターンを示す。正の（ｘ，ｙ）をもつ各点Ａ、Ｂ、Ｃがコードブックプリミティブに含まれ、原点（たとえば、点（０，０））を中心として（about）、同じくコードブックプリミティブ中にある点（−ｘ，−ｙ）に反射される。点Ａ、Ｂ、Ｃの各々によって呈される（exhibited）エルミート対称性は、非エルミートパターンが使用されるときに受信され得る「ゴースト」画像の形成を抑制し得る。たとえば、図８Ｂは、エルミート対称コードマスクから形成された、ゴースト画像をもたないパターンを示す。対照的に、図８Ｄは、エルミート対称でないコードマスクから形成された、ゴースト画像をもつパターンを示す。ゴースト画像をなくすことは、受信機側信号処理を低減し得、コードワード認識および復調精度を増加させ、移動している物体に対する許容差（tolerance）を増加させ、雑音に対する許容差を増加させ、照明変化に対する許容差を増加させ得る。
【００５９】
[0083]図８Ｃおよび図８Ｅは、エルミート対称パターンが、構造化光投影における０次ビームのサイズにどのように影響を及ぼし得るかを示す。図示のように、図８Ｃのエルミート対称パターンは、非エルミート対称パターンをもつ図８Ｅに示されている０次ビームと比較して、より小さい０次ビームを生成した。０次ビームは、レーザー光などの光がコードマスクを通過し、光の一部分が、回折されない（un-diffracted）コードマスクの中心を通過するときに生成される。これは０次ビームを生じる。０次ビームは回折されないので、０次ビームは回折ビームよりも高い強度を有し、その結果、０次ビームの位置を中心として受信画像センサーのブラインドスポットおよび飽和を生じ得る。図８Ｃ中の０次ビームの低減されたサイズおよびより低い強度は、ブラインドスポットのサイズを低減し、図８Ｅにおいて使用される非エルミート対称パターンと比較して、レーザー光を使用するシステムにおける目の安全性（eye-safety）を改善し得る。
【００６０】
[0084]図９は、図８Ｃに示されている例示的なコードマスクの詳細図を示す。コードマスク９００の列内の符号化されたデータは、基底関数のセットに基づいて生成され得る。基底関数は空間コードを形成するために使用される。基底関数（基底シーケンス）の設計は、基底関数が、互いに直交であるように選定され得、線形的に組み合わせられ得るという点で、行列のための固有ベクトルに類似し得る。
【００６１】
[0085]図９のコードマスクは、３つの基底関数から生成されたコードマスクを示す。パターン中の白い正方形はイチ（１）の値を表し、暗い正方形はゼロ（０）の値を表す。図９の図示されたコードマスクでは、各列は、３つの基底関数、すなわち、
【００６２】
【数１】
0006419988.tif 000002
【００６３】
、
【００６４】
【数２】
0006419988.tif 000003
【００６５】
、または
【００６６】
【数３】
0006419988.tif 000004
【００６７】
のうちの１つからの値を符号化する。特定の列を生成するとき、各基底関数は回転され得る。回転すること９１０は、すべてのビットが等価であるので、変化を生じない。基底関数
【００６８】
【数４】
0006419988.tif 000005
【００６９】
は、一度に１ビットずつ、
【００７０】
【数５】
0006419988.tif 000006
【００７１】
、
【００７２】
【数６】
0006419988.tif 000007
【００７３】
、または
【００７４】
【数７】
0006419988.tif 000008
【００７５】
に回転され得る。同様に、基底関数
【００７６】
【数８】
0006419988.tif 000009
【００７７】
は、
【００７８】
【数９】
0006419988.tif 000010
【００７９】
に回転され得る。コードマスク９００における各列は、これらの関数９１０、９２０、９２２、９２４、９２６、９３０、または９３２のうちの１つの繰返し数列（repeating series）に対応する。
【００８０】
[0086]（時々回転される）基底関数から生じるパターンは、４つの列部分から構成されるコードに編成され（organized）、各列部分は１つの４セル基底関数パターンからなる。たとえば、コード９５０は、関数［９１０｜９１０｜９３２｜９２０］に対応する、
【００８１】
【数１０】
0006419988.tif 000011
【００８２】
として表され得る。
【００８３】
[0087]コード９５０は、４×４バイナリ行列として、（たとえば、列１１１１１１１１０１０１１１００による、または行１１０１１１１１１１００１１１０による）バイナリ行列のバイナリ表現として、位相（９１０、９１０、９３０＋１、９２０）をもつ基底関数の組合せとして、または関数（９１０、９１０、９３２、９２０）の組合せとして、画像形式でコードブックに記憶され得る。
【００８４】
[0088]同様にして、コード
【００８５】
【数１１】
0006419988.tif 000012
【００８６】
は基底関数［９１０｜９３２｜９１０｜９３０］から形成され、コード
【００８７】
【数１２】
0006419988.tif 000013
【００８８】
は基底関数［９３０｜９１０｜９３２｜９３０］から形成され、コード
【００８９】
【数１３】
0006419988.tif 000014
【００９０】
は［９１０｜９１０｜９１０｜９１０］から形成される。
【００９１】
[0089]コードは、図９のコードマスクにおけるあらゆる４×４要素「ウィンドウ」について識別され得る。識別可能なコードは、コードマスク９００の各４×４部分が有効コードを表すので、コード９５２およびコード９５４によって示されるように「重複する」。コードマスク９００が設計される（to which）輪郭解像度（完全ウィンドウ）制約のために、各４×４「ウィンドウ」は、９１０、９２０、９２２、９２４、９２６、９３０、または９３２の組合せから有効コードを形成する。
【００９２】
[0090]図９のコードマスクパターンの設計において使用される完全ウィンドウ制約はまた、シフトされたコードワードが一意であることを必要とする。コードマスクへの１つのウィンドウは、ロケーション９５０、９５２、９５４、および９５６に示されている４×４ウィンドウに対応する。ウィンドウが１つまたは複数の行および／または１つまたは複数の列だけシフトするので（as）、ウィンドウ内の４×４コードワードは、アンチエイリアスエリアにわたって一意であり、繰り返さない必要がある。コードワードが一意でない場合、アンチエイリアスエリア内の各コードワードロケーション（各一意のコードワードに対応するウィンドウロケーション）を一意に識別することが可能でないことがある。７つの関数９１０、９２０、９２２、９２４、９２６、９３０、および９３２と４つの列とをもつこの例の場合、４つの列の７4＝２，４０１個の可能な組合せがあり、最高２，４０１個の列のアンチエイリアシングエリアにわたる完全ウィンドウ制約を満たすことを可能にする。
【００９３】
[0091]この例では使用されなかった４×４コードのための２つの他の候補基底関数は、
【００９４】
【数１４】
0006419988.tif 000015
【００９５】
、および
【００９６】
【数１５】
0006419988.tif 000016
【００９７】
である。パターン中のどの列も、これらの関数またはこれらの関数のシフトされたバージョンを使用しない。したがって、
【００９８】
【数１６】
0006419988.tif 000017
【００９９】
または
【０１００】
【数１７】
0006419988.tif 000018
【０１０１】
のいずれかを含む受信されたコードは無効コードである。したがって、受信機は、すべての送信されたコードがコードブック中にある基底関数（または基底関数の回転バージョン）から形成されたとき、受信されたコードが有効コードのコードブック中にないときに誤りを検出し得る。
【０１０２】
[0092]図９のコードマスク９００は、シーンにおける１つまたは複数の物体上に送信され、受信機に反射され（reflected back）得る。受信機５０２または受光要素６０４などの受信機は、シーンにおける物体からの送信されたパターンの反射を受信する。受信の後、ウィンドウ９５０、９５２、９５４、および９５６におけるコードの受信されたバージョンが決定され得る。符号化されたコードワードが、物体によって反射されたときにどのように変化するかを観測することによって、図１０に示されている深度マップ１００２ａなどの深度マップが生成され得る。生成された深度マップは、深度マップに基づいて画像データを変更し得る１つまたは複数の画像処理方法に与えられ（provided）得る。生成された深度マップは、１つまたは複数のギャップまたはホールを含み得る。ギャップまたはホールは、コードの受信されたバージョンの復号における誤りから生じ得る。誤りは、低い反射率をもつ物体の部分、スプリアス周辺光状態（spurious ambient light conditions）を含む様々なファクタ、または様々な他のファクタによって引き起こされ得る。深度マップにおけるホールの例が、手１００２ｂの拡大画像中で見られ得る。これらの誤りを訂正するための手段がなければ、ホールに近接している画像の領域の画像処理は抑制され、その結果、処理された画像の視覚的品質の低減を生じ得る。
【０１０３】
[0093]コードマスク９００のコードワードが受信されたとき、各受信されたコードワードは、受信されたコードを決定するために復調または解釈され得る。
【０１０４】
[0094]一実施形態では、受信された空間コード、または受信された空間コードのシンボル（symbolic）（バイナリまたはｎ値（n-ary））表現は、受信されたコードが有効コードに対応するかどうかを決定するために、（たとえば、整合フィルタを使用する）基底関数、基底関数のシフトされたバージョン、または各有効空間コードアレイに整合させられ得る。コードマスク９００は、基底関数のすべての可能な組合せのサブセットのみを表す有効コードを含むように生成され得る。図９の４×４コードの例では、７つの関数９１０、９２０、９２２、９２４、９２６、９３０、および９３２は、２16(4×4)＝６５，５３６個の可能性のうちの７4＝２，４０１個の可能なコードに対応する。
【０１０５】
[0095]コードマスク９００を生成するために使用されるコードブックは、２，４０１個のコードのサブセット（たとえば、４００個）を選択し得、その場合、可能なコードのうちの１％未満が有効である。有効コードが十分に類似しない場合、単一のビット誤りにより別の有効コードが生じないことがある。したがって、受信されたコードが有効コードに一致しない場合、受信されたコードが誤りを有すると決定することが可能であり得、第１の有効コードが第２の有効コードと間違えられることを単一のビット誤りが引き起こすことは、比較的可能性が低いか場合によっては不可能である。
【０１０６】
[0096]本明細書で説明される誤り訂正システムおよび方法は、受信された無効コードに対応する最も可能性が高い、有効な、送信されたコードワードを決定することによって、無効コードが受信されたときの誤りを検出し、誤りを訂正する。最も可能性が高い有効な送信されたコードワードの決定は、いくつかの態様では、無効コードワードがただ１つの誤りを含むと仮定し得る。この仮定は、最も可能性が高い有効コードワードを決定することの計算要件を制限する（bounds）。さらに、単一のコードワード中の複数の誤りの比較的低い確率を仮定すれば、この仮定は、誤りを訂正する十分な能力をもつ方法およびシステムを与える。
【０１０７】
[0097]図１１は、深度マップホール充填の方法のデータフロー図である。方法は、誤り検出ステップ１１５０において、受信された空間コードワード中の誤りを検出することを含む。誤りを検出することは、受信されたコードワードが、有効コードワードをリストするコードブックに含まれないと決定することを含み得る。誤りを検出した後、方法は、コードワード生成ステップ（generate codewords step）１１６０において、有効候補コードワード（candidate valid codewords）を生成することを含む。候補コードワードの各々は、候補コードワードのうちのどれが有効候補であるかを決定するために、有効性検査ステップ（check validity step）１１７０において有効コードワードのセットと照合される（checked against）。次に、深度が、深度生成されたステップ（generated depths step）１１８０において有効コードワードの各々について生成される。図１１は、図９に関して説明された基底関数、すなわち、基底関数
【０１０８】
【数１８】
0006419988.tif 000019
【０１０９】
、
【０１１０】
【数１９】
0006419988.tif 000020
【０１１１】
、および
【０１１２】
【数２０】
0006419988.tif 000021
【０１１３】
、ならびにシフトされた関数
【０１１４】
【数２１】
0006419988.tif 000022
【０１１５】
、
【０１１６】
【数２２】
0006419988.tif 000023
【０１１７】
、
【０１１８】
【数２３】
0006419988.tif 000024
【０１１９】
および
【０１２０】
【数２４】
0006419988.tif 000025
【０１２１】
を使用して生成された例示的な４×４空間コードのためのデータフローを示す。
【０１２２】
[0098]図１１は、最初に、誤り検出プロセス１１５０を垂直方向に示す。誤り検出プロセス１１１５０内で、受信された空間コード１１０２が復号される。復号された空間コード１１０２は、図９に関して上記で説明された空間コードのうちの少なくとも１つの反射から生じ得る。特殊コード１１０２中の各受信された空間列は、整合フィルタを使用して図９の基底関数のセットと比較される。１１０２の第１、第２、および第３の列は、それぞれ、関数９１０、９３０、および９２６に一致する。しかしながら、列１１０４は、関数９１０、９２０、９２２、９２４、９２６、９３０、または９３２のいずれにも一致せず、列１１０４の要素のうちの少なくとも１つ中の誤りを示す。
【０１２３】
[0099]誤り検出プロセス１１５０が空間コードワード１１０２の列１１０４中の誤りを検出すると、有効候補コードワードが、図１１中で垂直方向に示されている候補コードワード生成ステップ１１６０において生成される。
【０１２４】
[00100]図１１の例示的な候補生成ステップ１１６０は、ただ１つの誤りが列１１０４中に存在するという設計仮定を含む。他の企図された（contemplated）実施形態は、異なる仮定を行い得、たとえば、他の実施形態は、２つ、３つ、または４つ以下の誤りが列１１０４中に存在すると仮定し得る。しかしながら、より多数の誤りを検出および訂正することは、より高い計算コストおよび複雑さを必要とし得る。いくつかの態様では、候補コードワードは、無効コードの特定のハミング距離内にあるように生成され得る。たとえば、無効コードワード中の多くとも１つの（most one）誤りを仮定する実装形態では、無効コードワードから１のハミング距離を有する候補コードワードが生成され得る。列１１０４中の多くとも２つの誤りを企図する実装形態では、無効コードワード１１０２から２のハミング距離内にある候補コードワードが生成され得、以下同様である。
【０１２５】
[00101]図１１に示されているように、候補コードワード１１０６ａ〜ｄがコードワード生成ステップ１１６０において生成される。候補コードワード１１０６ａ〜ｄの各々は、無効コードワード１１０２から１のハミング距離を有する。これは、上記で説明された単一のビット誤り仮定に対応する。代替的に、候補コードワード１１０６ａ〜ｄは、実装に応じて様々な他の方法によって生成され得る。一実装形態では、各候補コードワードは、誤りを含む列１１０４の一意の（unique）ビットを摂動させること（または変更すること）によって生成される。したがって、列１１０４が８ビットを含むべきところの場合、８つの候補コードワードが生成され得、各候補コードワードは、異なる摂動させられたビットを含む。
【０１２６】
[00102]候補コードワード１１０６ａ〜ｄが生成された後、候補コードワードの各々は、次いで、有効性ステップ（validity step）１１７０において有効性について検査され得る。有効性は、いくつかの態様では、候補コードワードが、コードマスク９００を生成するために使用された有効コードのコードブック１１０８に含まれるかどうかを決定することによって決定され得る。候補置換１１０６ａ〜ｄのうちのちょうど１つが有効コードである（コードブック１１０８に記載されている（listed））場合、単一の一致する候補は、最初に（originally）送信された有効コードである可能性が高い。図１１の例では、コード１１０６ａ〜ｃがコードブック１１０８中で有効であることがわかったが、コード１１０６ｄはコードブック１１０８中で見つけられなかった。候補コードワードのいずれも有効である（すなわち、コードブック１１０８中にある）と決定されなかった場合、いくつかの実装形態は、無効コードワード列１１０４が単一よりも多い誤りを含むと決定し得ることに留意されたい。この決定に応答して、いくつかの実装形態は、第２の候補コードワード生成ステップを実施し得る。たとえば、無効コードワードから２のハミング距離内の候補コードワードが、生成され、コードブック１１０８と比較され得る。いくつかの実装形態は、無効コードワードからより大きいハミング距離をもつ候補コードワードのための追加のステップを実施し得る。いくつかの実装形態は、単一のステップにおいて最も近いハミング距離にある候補コードワードを決定し得る。
【０１２７】
[00103]いくつかの実施形態では、有効性検査プロセス１１７０は、コードワード割振り方式に基づいて実施され得る。たとえば、いくつかの態様では、水平方向のコードワードは、ｘ次元（x-dimension）において一意であり、ｙ次元において繰り返していることがある。いくつかの候補コードワードは、そのような全体的コードワード割振り方式に準拠しないことがあり、有効性検査３０８中に拒否され得る。
【０１２８】
[00104]有効性検査１１７０が実施された後、深度生成されたステップ１１８０は、各有効候補コードワード１１１０ａ〜ｃに関連する深度を決定する。コードワード１１１０ａ〜ｃに関連する候補深度は、候補コードワード１１１０ａ〜ｃのうちのどの１つが無効コードワード１１０２を置き換えるべきであるかを決定するために、局所近傍内の深度と比較され得る。たとえば、どの候補深度１１１０ａ〜ｃが無効コードワード１１０２の局所近傍深度値に最も近くても、深度マップにおける無効コードワード１１０２を置き換えるために使用され得る。いくつかの場合には、局所近傍は、無効コードワード１１０２からの１つ、２つ、３つ、４つ、５つ、６つ、７つ、８つ、９つ、または１０個のコードワードに限定され得る。いくつかの態様では、局所近傍は、深度マップ幅または高さのあるパーセント内のコードワードに限定され得る。たとえば、深度マップが１００個のコードワードにわたる場合、局所近傍は、この次元の１パーセントであるか、または無効コードワード１１０２のうちの１つのコードワード内にあるように定義され得る。深度生成ステップ１１８０に関するさらなる詳細が、図１２に関して以下で説明される。
【０１２９】
[00105]いくつかの例示的な復号されたコードワード１１０２は、２つ以上の列中の誤りを含み得ることに留意されたい。たとえば、４×４コードワードの第１および第３の列が、それぞれ、誤りを含み得る。この場合、８つの潜在的候補について候補コードワードが生成され得（４×４コードワードの場合、各列について４つ）、コードブックに対して各候補が検証され、各有効候補について深度が生成され、最も類似する深度が置き換えのために選択される。方法は、考慮すべきビット誤りの数に対して上限を設定し得る。
【０１３０】
[00106]図１２は、図１２中のそれぞれ候補深度１２０４ａ〜ｃに対応する、図１１に示されている１１１０ａ〜ｃなど、候補置換深度のセットを仮定した、深度マップにおける誤り訂正のプロセスの一部分を示す。いくつかの態様では、以下の図１２の説明は、図１１のプロセス１１８０の一実装形態について説明する。図１２は、中心ロケーション１２０３における未知の深度値をもつ３×３領域を示す。深度は、ロケーション１２０３において受信されたコードが、図１１の誤り検出１１５０によって決定された（as）有効コードでなかったので、ロケーション１２０３において未知である。図１１の有効性検査１１７０によって検証され、候補深度が深度生成ステップ１１８０によって生成された（for which）、３つの検証された候補コードワード１２０４ａ〜ｃがある。図１２は、類似性測度１２０６ａ〜ｃが、３×３近傍における他のロケーションの深度を用いて各対応する候補コードワード１２０４ａ〜ｃについて決定された候補深度について決定されることを示す。図１２は、３つの候補コードワード１２０４ａ〜ｃについての類似性測度に基づいて、値６３６９１をもつコードワード１２０４ｃが、８つの近隣ロケーション１２０８ａ〜ｈの深度に最も類似した深度を有することを示す。誤り訂正された深度値は、選択された深度を含む。
【０１３１】
[00107]いくつかの態様では、各候補置換深度１２０４ａ〜ｃと近隣深度との間の類似性測度１２０６ａ〜ｃが算出される。いくつかの態様では、近隣深度は深度１２０８ａ〜ｈに限定され得る。いくつかの態様では、近隣深度のメジアンが各置換深度１１１０ａ〜ｃと比較され得、（たとえば、いくつかの態様では、最近傍（nearest neighbors）のメジアン深度間の差の絶対値に基づいて）最も類似する候補深度が、図１１の無効コードワード１１０２を置き換えるために使用され得る。他の実施形態は、メジアン以外の測度（たとえば、平均）を使用し、および／またはより少数（たとえば、４つ）またはより多数の近隣の深度を考慮し得る。一実施形態では、すべての類似性測度１２０６ａ〜ｃが類似度しきい値を下回る類似度を示す場合、すべての候補コードワードが拒否され得る。
【０１３２】
[00108]既知の方法は、図９、図１１、および図１２に関して上記で説明された誤り検出および訂正プロセスを使用しない。たとえば、図１３は、メジアンフィルタを使用する深度マップにおけるギャップ充填を示す。メジアンフィルタベースソリューションは、構造化光の基礎をなす（underlying）符号化の知識を使用せず、したがって、実際には誤りを訂正しない。代わりに、誤りは、概して、メジアンフィルタによって周囲のエリア中に平滑化される。この平滑化の結果は図１３中で明らかである。画像１３０２ａは左手１３０２ｂと右手１３０２ｃとを含む。左手と右手の両方１３０２ｂ〜ｃは、低減された数のギャップを示すが、細部の対応する損失を示す。
【０１３３】
[00109]図１３のメジアンフィルタベースソリューションによって示されている細部の損失とは対照的に、図１４は、本明細書で開示される方法およびシステムを使用する深度マップのギャップ充填を示す。画像１４０４ａの左手および右手１４０４ｂ〜ｃに見られるように、基礎をなすコーディングにおける誤りから生じるギャップが低減された一方で、細部は、図１３に示されているメジアンフィルタの左手および右手１４０２ｂ〜ｃに対して維持される。
【０１３４】
[00110]一実施形態では、どの候補空間コードが送信された可能性が最も高いかを決定するために、候補空間コードの各々が近隣空間コードと比較され得、比較に基づいて、送信された可能性が最も高いコードとして候補が選択され得る。たとえば、近隣空間コードの基底関数が、すべての他の候補よりも（than that）候補のうちの１つにより一致する場合、それよりも候補が選択され得る。一実施形態では、候補空間コードの各々に対応する深度が、推定された近隣深度（neighboring estimated depths）と比較され得、比較に基づいて候補が選択され得る。たとえば、近隣深度のメジアンフィルタ値が、各候補コードに対応する深度と比較され得、メジアンフィルタ値に最も近い深度をもつ候補コードが選択され得る。
【０１３５】
[00111]図１５は、構造化光から生成されたコードワード中の誤りを訂正する方法のフローチャートである。いくつかの態様では、上記で説明された特徴のうちの１つまたは複数は、図１５に関して説明される（１つまたは複数の）実装形態にも関連し得る。
【０１３６】
[00112]いくつかの態様では、方法１５００は、図６に関して上記で説明されたデバイス６００によって実施され得る。たとえば、メモリ６０８に記憶されたプロセッサ命令は、方法１５００に関して以下で説明される機能のうちの１つまたは複数を実施するようにプロセッサ６０６を構成し得る。いくつかの態様では、方法１５００は、図５に関して上記で説明されたデバイス５００によって実施され得る。たとえば、メモリ／ストレージデバイス５０６に記憶されたプロセッサ命令は、方法１５００に関して以下で説明される機能のうちの１つまたは複数を実施するように処理回路５０４を構成し得る。
【０１３７】
[00113]ブロック１５１０において、受信機センサーは、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信し、画像は無効コードワードを含む。いくつかの態様では、ブロック１５１０は、図６に関して上記で説明された受光要素６０４によって実施される。いくつかの態様では、ブロック１５１０は、複合コードマスクを受信するように受光要素６０４を制御するプロセッサ６０６によって実施される。いくつかの態様では、ブロック１５１０は、図５に関して以下で説明される受信機センサー５０８によって実施される。いくつかの態様では、ブロック１５１０は、複合コードマスクを受信するように受信機センサー５０８を制御する処理回路５０４によって実施される。いくつかの態様では、コードマスク部分は１つまたは複数のコードワードを備え得る。いくつかの態様では、コードは、「アクティブ深度検知のための例示的なコード」に関して上記で説明された（as）特性を有する。たとえば、コードは、（テッセレーションされ得る）コードマスクプリミティブ、コードブック、サイズおよび空間解像度、コードワードパターン、デューティサイクル、輪郭解像度または完全ウィンドウ特性、（図８Ａ〜図８Ｅを参照しながら説明された）対称性、エイリアシング、ならびにカーディナリティなどの特性を含み得る。いくつかの態様では、符号化されたコードワードは、データの行およびまたは列に編成され得る。いくつかの態様では、コードマスクの符号化されたコードワードは、たとえば、図１１に関して上記で説明されたように、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される。
【０１３８】
[00114]いくつかの態様では、有効コードワードは、コードワードのすべての可能な値をスパースに（sparsely）ポピュレートし得る。たとえば、いくつかの態様では、コードワードは、３２ビットの情報を符号化するが、２31個よりもはるかに少ない有効値を有し得る。したがって、いくつかの態様では、無効値をもつコードワードは、１つまたは複数の誤りを含むと決定され得る。いくつかの態様では、可能なバイナリコードワードの１％未満が、有効コードワードとしてコードマスクにおいて符号化される。
【０１３９】
[00115]ブロック１５２０において、方法１５００は無効コードワードを検出する。いくつかの態様では、ブロック１５２０は、図１１を参照しながら上記で説明されたように誤り検出プロセス１１５０を使用して無効コードワードを検出し得る。いくつかの態様では、ブロック１５２０は、受信されたコードワードが複数の符号化されたコードワードに（たとえば、コードブックに）含まれるかどうかを決定し、含まれない場合、受信されたコードワードは無効であると決定する。いくつかの態様では、無効コードワードを検出することは、図９に関して上記で説明されたように、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較することを備える。いくつかの態様では、比較することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える。いくつかの態様では、比較することは、コードワードをコードブック中のエントリと比較することを備える。いくつかの態様では、ブロック１５２０は、プロセッサ６０６によってまたは処理回路５０４によって実施される。
【０１４０】
[00116]ブロック１５３０は、無効コードワードに基づいて複数の候補コードワードを生成する。ブロック１５３０は、少なくとも、図９で説明されたように基底関数によって生成されたコードワードについて、図１１を参照しながら上記で説明された候補生成ステップ１１６０および／または有効性ステップ１１７０を使用してコードワードを生成し得る。いくつかの態様では、これは、コードマスクに含まれる１つまたは複数の候補コードワードを生成することを含み得る。いくつかの場合には、複数の候補コードワードが、コードマスクの部分に含まれる複数のコードワードの各々について生成される。図１１および図１２に関して上記で説明されたように、いくつかの態様では、候補コードワードは、コードワードの検査が、誤りが候補部分中に存在しないことを示すように、コードワード中の個々のビットを摂動させることによって生成され得る。たとえば、コードワード列が８ビットを含む場合、８つの候補マスクが生成され得、各候補コードワードは、ブロック１５０５において受信されたコードマスクの部分からの対応するコードワードと比較されるとき、１ビットを摂動させる。いくつかの態様では、ブロック１５３０は、プロセッサ６０６または処理回路５０４によって実施される。
【０１４１】
[00117]ブロック１５４０において、候補コードワードのうちの１つが選択される。いくつかの態様では、ブロック１５４０は、上記で説明された有効性検査ステップ１１７０および／または深度生成ステップ１１８０に関して上記で説明された機能のうちの１つまたは複数を実施し得る。
【０１４２】
[00118]いくつかの態様では、候補コードワードの選択は、図１２に関して上記で説明された機能のうちの１つまたは複数をも含み得る。たとえば、いくつかの態様では、各候補コードワードに関連する深度と、無効コードワードを囲む局所近傍の深度値との間の類似性測度が生成され得る。局所近傍に最も類似した候補コードワードがブロック１５４０において選択され得る。
【０１４３】
[00119]いくつかの態様では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。
【０１４４】
[00120]いくつかの態様では、局所近傍に関連する深度はメジアン深度である。いくつかの態様では、それは平均深度である。
【０１４５】
[00121]いくつかの態様では、無効コードワードの周りのコードワードの局所近傍は、無効コードワードのロケーションの１つ、２つ、３つ、４つ、５つ、６つ、７つ、８つ、９つ、１０個、または１１個のコードワードロケーション内のコードワードからなる。いくつかの態様では、局所近傍の範囲は、無効コードワードから対角距離内に位置するコードワードを含む。たとえば、１つ、２つ、３つ、４つ、５つ、６つ、７つ、８つ、９つ、１０個、１１個の対角コードワード位置のいずれか１つ内のコードワードが、局所近傍に含まれ得る。いくつかの態様では、ブロック１５４０は、候補コードワードを選択するプロセッサ６０６によって実施される。いくつかの態様では、ブロック１５４０は、候補コードワードを選択する処理回路５０４によって実施される。
【０１４６】
[00122]ブロック１５５０において、選択された候補コードワードに基づく深度マップが決定される。いくつかの態様では、選択された候補コードワードは、誤りを含んでいたコードワードの位置において深度マップに含まれ得る。いくつかの態様では、選択されたコードワードのロケーションにおける深度は、図３を参照しながら上記で説明されたようにアクティブ深度検知方法に基づいて決定される。深度マップは、シーンの画像を処理し、改善するために１つまたは複数の処理ルーチンによって使用され得る。いくつかの態様では、ブロック１５５０は、深度マップを生成するプロセッサ６０６によって実施される。いくつかの態様では、ブロック１５５０は、深度マップを生成する処理回路５０４によって実施される。
【０１４７】
[00123]ブロック１５６０において、深度マップに基づいてシーンのデジタル表現が生成される。いくつかの態様では、シーンのデジタル表現は、深度マップにおける深度に基づいてシーンにおける物体の深度を表したシーンの３次元表面表現である。いくつかの態様では、シーンのデジタル表現は、深度マップ深度情報（depth information the depth map）を使用して３次元物体を表すための視点（perspective）および／またはシャドーイングを使用するシーンの２次元表現である。いくつかの態様では、デジタル表現は、シーンのコンピュータグラフィック画像を生成するために使用される。いくつかの態様では、デジタル表現は、シーンの拡張現実画像を生成するために使用される。いくつかの態様では、デジタル表現は、たとえば、コンピュータ支援設計、ソリッドモデリングにおいて使用するための、または３次元プリンティングのためのシーンのソリッド表現を生成するために使用される。いくつかの態様では、ブロック１５６０は、プロセッサ６０６によってまたは処理回路５０４によって実施される。
【０１４８】
[00124]ブロック１５７０において、シーンのデジタル表現は出力デバイスに出力される。いくつかの態様では、出力デバイスはディスプレイ、モニタ、またはプロジェクタである。ディスプレイ、モニタ、またはプロジェクタは、テレビジョンの場合のようにスタンドアロンであるか、あるいはデスクトップコンピュータ、ラップトップ、ポータブルコンピュータデバイス、ウェアラブルコンピュータ、タブレットコンピュータ、または電話の構成要素であり得る。いくつかの態様では、３次元ディスプレイまたはホログラムプロジェクタなどの出力デバイスは、３次元画像を生成する。いくつかの態様では、出力デバイスは、２次元におけるピクチャのプリンタ、または３Ｄプリンタなど、３次元における物体のプリンタのいずれかであり得る。いくつかの態様では、出力デバイスは、コンピュータ支援エンジニアリング設計システムなど、ソリッドまたは３次元モデリングシステムであり得る。いくつかの態様では、ブロック１５７０は、プロセッサ６０６によってまたは処理回路５０４によって実施される。いくつかの態様では、ブロック１５６０および１５７０は実施されないことがある。
【０１４９】
[00125]本明細書における「第１」、「第２」などの名称を使用した要素への言及は、それらの要素の数量または順序を概括的に限定するものでないことを理解されたい。むしろ、これらの名称は、本明細書において２つまたはそれ以上の要素またはある要素の複数の事例を区別する便利な方法として使用され得る。したがって、第１の要素および第２の要素への言及は、そこで２つの要素のみが採用され得ること、または第１の要素が何らかの方法で第２の要素に先行しなければならないことを意味するものではない。また、別段に記載されていない限り、要素のセットは１つまたは複数の要素を備え得る。さらに、明細書または特許請求の範囲において使用される「Ａ、Ｂ、またはＣのうちの少なくとも１つ」という形式の用語は、「ＡまたはＢまたはＣあるいはこれらの要素の任意の組合せ」を意味する。
【０１５０】
[00126]本明細書で使用される「決定すること」という用語は、多種多様なアクションを包含する。たとえば、「決定すること」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること（たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること）、確認することなどを含み得る。また、「決定すること」は、受信すること（たとえば、情報を受信すること）、アクセスすること（たとえば、メモリ中のデータにアクセスすること）などを含み得る。また、「決定すること」は、解決すること、選択すること、選定すること、確立することなどを含み得る。
【０１５１】
[00127]本明細書で使用される、項目のリスト「のうちの少なくとも１つ」を指す句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「ａ、ｂ、またはｃのうちの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、およびａ−ｂ−ｃを包含するものとする。
【０１５２】
[00128]上記で説明された方法の様々な動作は、（１つまたは複数の）様々なハードウェアおよび／またはソフトウェア構成要素、回路、および／または（１つまたは複数の）モジュールなど、それらの動作を実施することが可能な任意の好適な手段によって実施され得る。概して、図に示されたどの動作も、その動作を実施することが可能な対応する機能的手段によって実施され得る。
【０１５３】
[00129]本開示に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ信号（ＦＰＧＡ）または他のプログラマブル論理デバイス（ＰＬＤ）、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明された機能を実施するように設計されたそれらの任意の組合せを用いて実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
【０１５４】
[00130]１つまたは複数の態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体（たとえば、有形媒体）を備え得る。
【０１５５】
[00131]本明細書で開示された方法は、説明された方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく、互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されていない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲から逸脱することなく変更され得る。
【０１５６】
[00132]さらに、本明細書で説明された方法および技法を実施するためのモジュールおよび／または他の適切な手段は、適用可能な場合にユーザ端末および／または基地局によってダウンロードされ、および／または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明された方法を実施するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明された様々な方法は、ユーザ端末および／または基地局が記憶手段（たとえば、ＲＡＭ、ＲＯＭ、コンパクトディスク（ＣＤ）またはフロッピーディスクなどの物理記憶媒体など）をデバイスに結合するかまたは与えると様々な方法を得ることができるように、記憶手段によって提供され得る。その上、本明細書で説明された方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【０１５７】
[00133]特許請求の範囲は、上記で示された厳密な構成および構成要素に限定されないことを理解されたい。上記で説明された方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することと、前記画像が無効コードワードを含む、
前記無効コードワードを検出することと、
前記無効コードワードに基づいて複数の候補コードワードを生成することと、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、
前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、
前記深度マップに基づいてシーンのデジタル表現を生成することと、
出力デバイスに前記シーンの前記デジタル表現を出力することとを備える、構造化光における誤り訂正の方法。
［Ｃ２］
前記無効コードワードを検出することは、受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを備える、Ｃ１に記載の方法。
［Ｃ３］
前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、Ｃ１に記載の方法。
［Ｃ４］
前記無効コードワードを検出することが、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較することを備える、Ｃ３に記載の方法。
［Ｃ５］
前記比較することが、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える、Ｃ４に記載の方法。
［Ｃ６］
前記複数の候補コードワードを生成することが、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備える、Ｃ１に記載の方法。
［Ｃ７］
前記複数の候補コードワードを生成することは、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させることを備える、Ｃ１に記載の方法。
［Ｃ８］
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することが、
前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択することと、
候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することと、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することとを備える、Ｃ１に記載の方法。
［Ｃ９］
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードのコードワードの前記局所近傍が、前記無効コードワードのロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、Ｃ８に記載の方法。
［Ｃ１０］
前記局所近傍に関連する前記深度がメジアン深度である、Ｃ９に記載の方法。
［Ｃ１１］
複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するように構成された受信機センサーと、前記画像が無効コードワードを含む、
前記受信機センサーと通信している処理回路と、前記処理回路が、前記無効コードワードを検出することと、前記無効コードワードに基づいて複数の候補コードワードを生成することと、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、前記深度マップに基づいてシーンのデジタル表現を生成することと、出力デバイスに前記シーンの前記デジタル表現を出力することとを行うように構成された、を備える、構造化光における誤り訂正のための装置。
［Ｃ１２］
前記処理回路は、前記受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを行うようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１３］
前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、Ｃ１１に記載の装置。
［Ｃ１４］
前記処理回路が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ１５］
前記処理回路が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するようにさらに構成された、Ｃ１３に記載の装置。
［Ｃ１６］
前記処理回路が、前記無効コードワードの各要素を摂動させることと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１７］
前記処理回路は、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させるようにさらに構成された、Ｃ１６に記載の装置。
［Ｃ１８］
前記処理回路が、前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択することと、候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することと、前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することとを行うようにさらに構成された、Ｃ１１に記載の装置。
［Ｃ１９］
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのコードワードロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、Ｃ１８に記載の装置。
［Ｃ２０］
前記局所近傍に関連する前記深度がメジアン深度である、Ｃ１９に記載の装置。
［Ｃ２１］
複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するための手段と、前記画像が無効コードワードを含む、
前記無効コードワードを検出するための手段と、
前記無効コードワードに基づいて複数の候補コードワードを生成するための手段と、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択するための手段と、
前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するための手段と、
前記深度マップに基づいてシーンのデジタル表現を生成するための手段と、
出力デバイスに前記シーンの前記デジタル表現を出力するための手段とを備える、構造化光における誤り訂正のための装置。
［Ｃ２２］
前記受信手段が受信機センサーを備え、ここにおいて、前記無効コードワード検出手段が処理回路を備え、ここにおいて、前記候補コードワード生成手段が前記処理回路を備え、ここにおいて、前記コードワード選択手段が前記処理回路を備え、ここにおいて、前記深度マップ生成手段が前記処理回路を備え、ここにおいて、前記デジタル表現生成手段が前記処理回路を備え、ここにおいて、前記出力手段が前記処理回路を備える、Ｃ２１に記載の装置。
［Ｃ２３］
前記無効コードワード検出手段は、
受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定するための手段と、
前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定するための手段とを備える、Ｃ２１に記載の装置。
［Ｃ２４］
前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成され、ここにおいて、前記無効コードワード検出手段が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するための手段を備え、ここにおいて、前記比較手段が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するための手段を備える、Ｃ２１に記載の装置。
［Ｃ２５］
前記生成手段が、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備え、ここにおいて、前記生成手段が、前記無効コードワードの少なくとも２つの要素のすべての組合せが１回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも２つの要素を反復的に摂動させることを備える、Ｃ２１に記載の装置。
［Ｃ２６］
前記コードワード選択手段が、
前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択するための手段と、
候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定するための手段と、
前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択するための手段とを備える、Ｃ２１に記載の装置。
［Ｃ２７］
前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記局所近傍に関連する前記深度がメジアン深度であり、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの１つ、２つ、３つ、４つ、５つ、または６つのコードワードロケーション内のコードワードからなる、Ｃ２６に記載の装置。
［Ｃ２８］
構造化光における誤り訂正のための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、実行されたとき、
受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することと、前記画像が無効コードワードを含む、
前記無効コードワードを検出することと、
前記無効コードワードに基づいて複数の候補コードワードを生成することと、
前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの１つを選択することと、
前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、
前記深度マップに基づいてシーンのデジタル表現を生成することと、
出力デバイスに前記シーンの前記デジタル表現を出力することとを備える方法を実施する、非一時的コンピュータ可読媒体。
［Ｃ２９］
前記無効コードワードを検出することは、前記受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを備える、Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３０］
前記複数の候補コードワードを生成することが、前記無効コードワードの各ビットを１つずつ変化させることと、ビットの各変化について候補コードワードを生成することとを備える、Ｃ２８に記載の非一時的コンピュータ可読媒体。
【図１】
0006419988.tif 000026
【図２】
0006419988.tif 000027
【図３】
0006419988.tif 000028
【図４】
0006419988.tif 000029
【図５】
0006419988.tif 000030
【図６】
0006419988.tif 000031
【図７】
0006419988.tif 000032
【図８Ａ】
0006419988.tif 000033
【図８Ｂ】
0006419988.tif 000034
【図８Ｃ】
0006419988.tif 000035
【図８Ｄ】
0006419988.tif 000036
【図８Ｅ】
0006419988.tif 000037
【図９】
0006419988.tif 000038
【図１０】
0006419988.tif 000039
【図１１】
0006419988.tif 000040
【図１２】
0006419988.tif 000041
【図１３】
0006419988.tif 000042
【図１４】
0006419988.tif 000043
【図１５】
0006419988.tif 000044