構造化光における誤り訂正のためのシステムおよび方法

申请号 JP2017545343 申请日 2016-02-11 公开(公告)号 JP6419988B2 公开(公告)日 2018-11-07
申请人 クゥアルコム・インコーポレイテッド; QUALCOMM INCORPORATED; 发明人 ナッシュ、ジェームズ・ウィルソン; アタナソフ、カリン・ミトコフ; ゴマ、セルジュ・ラドゥ;
摘要
权利要求

シーンのデジタル表現を生成する方法であって、 センサーにおいて、複数の符号化されたコードワードの構造化光画像を受信することと、前記複数の符号化されたコードワードが無効コードワードを含み、 プロセッサを使用して、前記構造化光画像中の符号化された各コードワードがメモリに記憶されたコードブック中のコードに対応するかどうかを決定することによって、前記無効コードワードを検出することと、前記コードブックが無効コードのリストを備え、 前記プロセッサを使用して、前記無効コードワードに基づいて複数の候補コードワードを生成することと、 前記プロセッサを使用して、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、ここにおいて、前記複数の候補コードワードのうちの1つを前記選択することが、 前記生成された複数の候補コードワードから、複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの1つの同じである、 前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択することと を備える、 前記プロセッサを使用して、前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、 前記プロセッサを使用して、前記深度マップに基づいてシーンのデジタル表現を生成することと、 出デバイスに前記シーンの前記デジタル表現を出力することとを備える、方法。前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、請求項1に記載の方法。前記無効コードワードを検出することが、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較することを備える、請求項2に記載の方法。前記比較することが、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える、請求項3に記載の方法。前記複数の候補コードワードを生成することが、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備える、請求項1に記載の方法。前記複数の候補コードワードを生成することは、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させることを備える、請求項1に記載の方法。前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、請求項1に記載の方法。前記局所近傍に関連する前記深度がメジアン深度である、請求項7に記載の方法。シーンのデジタル表現を生成するための装置であって、 複数の符号化されたコードワードの構造化光画像を受信するように構成された受信機センサーと、前記複数の符号化されたコードワードが無効コードワードを含み、 前記受信機センサーと通信している処理回路と、を備え、 ここにおいて、前記処理回路が、 前記構造化光画像中の符号化された各コードワードがメモリに記憶されたコードブック中のコードに対応するかどうかを決定することによって、前記無効コードワードを検出することと、前記コードブックが無効コードのリストを備え、 前記無効コードワードに基づいて複数の候補コードワードを生成することと、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、 前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、 前記深度マップに基づいてシーンのデジタル表現を生成することと、 出力デバイスに前記シーンの前記デジタル表現を出力することとを行うように構成され、 ここにおいて、前記複数の候補コードワードのうちの1つを前記選択することが、 複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの1つと同じである、 前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択することと、 を備える、装置。前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、請求項9に記載の装置。前記処理回路が、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するようにさらに構成された、請求項10に記載の装置。前記処理回路が、前記構造化光画像中の符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するようにさらに構成された、請求項10に記載の装置。前記処理回路が、前記無効コードワードの各要素を摂動させることと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成された、請求項9に記載の装置。前記処理回路は、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させるようにさらに構成された、請求項13に記載の装置。前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのコードワードロケーションの周りの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、請求項9に記載の装置。前記局所近傍に関連する前記深度がメジアン深度である、請求項15に記載の装置。シーンのデジタル表現を生成するための装置であって、 複数の符号化されたコードワードの構造化光画像を受信するための手段と、前記複数の符号化されたコードワードが無効コードワードを含み、 前記構造化光画像中の符号化された各コードワードがコードブック中のコードに対応するかどうかを決定するための手段を備える、前記無効コードワードを検出するための手段と、前記コードブックが無効コードのリストを備え、 前記無効コードワードに基づいて複数の候補コードワードを生成するための手段と、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択するための手段と、ここにおいて、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択するための前記手段が、 前記生成された複数の候補コードワードから、複数の候補コードワードのサブセットを選択するための手段と、前記サブセット中の各候補コードワードが前記複数の符号化されたコードワードのうちの1つの同じである、 前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定するための手段と、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記サブセット中の前記候補コードワードを選択するための手段と を備える、 前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成するための手段と、 前記深度マップに基づいてシーンのデジタル表現を生成するための手段と、 出力デバイスに前記シーンの前記デジタル表現を出力するための手段とを備える、装置。前記受信するための手段が受信機センサーを備え、ここにおいて、前記無効コードワードを検出するための手段が処理回路を備え、ここにおいて、前記複数の候補コードワードを生成するための手段が前記処理回路を備え、ここにおいて、前記複数の候補コードワードのうちの1つを選択するための前記手段が前記処理回路を備え、ここにおいて、前記深度マップを生成するための手段が前記処理回路を備え、ここにおいて、前記デジタル表現を生成するための手段が前記処理回路を備え、ここにおいて、前記出力するための手段が前記処理回路を備える、請求項17に記載の装置。前記構造化光画像中の前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成され、ここにおいて、前記無効コードワードを検出するための手段が、符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するための手段を備え、ここにおいて、前記比較するための手段が、符号化された各コードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するための手段を備える、請求項17に記載の装置。前記複数の候補コードワードを生成するための手段が、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備え、前記複数の候補コードワードを生成するための手段が、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させることを備える、請求項17に記載の装置。前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記局所近傍に関連する前記深度がメジアン深度であり、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの周りの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、請求項17に記載の装置。シーンのデジタル表現を生成するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、 受信機センサーを介して、複数の符号化されたコードワードの構造化光画像を受信することと、前記複数の符号化されたコードワードが無効コードワードを含み、 前記無効コードワードを検出することと、前記無効コードワードを検出することが、前記構造化光画像中の符号化された各コードワードがコードブック中のコードに対応するかどうかを決定することを備え、前記コードブックが無効コードのリストを備え、 前記無効コードワードに基づいて複数の候補コードワードを生成することと、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、ここにおいて、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを前記選択することが、 複数の候補コードワードのサブセットを選択することと、前記サブセット中の各候補コードワードが前記符号化されたコードワードのうちの1つの同じである、 前記サブセット中の各候補コードワードと、前記無効コードワードの周りの局所近傍内のコードワードとの間の類似度を決定することと、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することと を備える、 前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、 前記深度マップに基づいて前記シーンのデジタル表現を生成することと、 出力デバイスに前記シーンの前記デジタル表現を出力することとを備える方法を実施する、非一時的コンピュータ可読媒体。前記複数の候補コードワードを生成することが、前記無効コードワードの各ビットを1つずつ変化させることと、ビットの各変化について候補コードワードを生成することとを備える、請求項22に記載の非一時的コンピュータ可読媒体。

说明书全文

[0001]様々な特徴は、アクティブ深度検知(active depth sensing)に関し、より詳細には、構造化光から導出された深度情報を解釈するときにデータ誤りから生じる深度マップにおけるギャップを訂正するための技法に関する。

[0002]構造化光アクティブ検知システムは、シーンのための深度マップを生成するために、空間コード(コードワード)に対応するパターンを送信および受信する。物体が送信機および受信機から遠くなるほど、受信された空間コード投影は、出射空間コード投影(outgoing spatial code projection)と反射された入来空間コード投影(reflected incoming spatial code projection)とがより平行になるので、(1つまたは複数の)受信機においてそれの元の位置から近くなる。逆に、物体が送信機および受信機に近くなるほど、受信された空間コード投影は、(1つまたは複数の)受信機においてそれの元の位置から遠くなる。したがって、受信コードワード位置と送信コードワード位置との間の差は、シーンにおける物体の深度を示す。構造化光アクティブ検知システムは、シーンの深度マップまたは3次元表現を生成するために、これらの相対深度を使用する。深度マップは、カメラ品質向上からコンピュータビジョンにわたる多くの適用例にとって重要である。

[0003]各コードワードは、変動する強度値を用いて行および列にセグメント化された光パターンを使用して符号化され得る。たとえば、バイナリパターンを形成するための0および1(0’s and 1’s)を表すために、明強度値(bright intensity values)および暗強度値(dark intensity values)が使用され得る。他の空間コードは、3つ以上の異なる強度値を使用し得る。

[0004]スペックル(speckle)などの干渉は、受信された空間コードおよび得られた深度マップがギャップまたはホールを有することを引き起こし得る。たとえば、バイナリコードが送信されるときに存在する干渉は、送信されたコード中の符号化された「1」値が「0」として受信されることを引き起こし得、またはその逆も同様である。したがって、受信された空間コードは、送信された空間コードとして認識されない。この生じた誤りは、シーンの深度マップにおける不正確なまたは消失した深度値を生じ得る。

[0005]本明細書で開示されている方法および装置またはデバイスは、それぞれ、いくつかの態様を有し、それらのうちの単一の態様が単独でそれの望ましい属性を担当するとは限らない。次に、たとえば以下の特許請求の範囲によって表される本開示の範囲を限定することなしに、それのより顕著な特徴が手短に説明される。この説明を考察すれば、特に「発明を実施するための形態」と題するセクションを読めば、説明されている特徴が、構造化光における誤り訂正を含む利点をどのように提供するかが理解されよう。

[0006]開示される一態様は、構造化光における誤り訂正の方法である。様々な実施形態では、本方法は、受信機センサーを介して、複数のコードワードを符号化する複合コードマスク(composite code mask)の少なくとも一部分の構造化光画像(structured light image)を受信することを含み得、画像は無効コードワードを含む。本方法は、無効コードワードを検出することをさらに含み得る。本方法は、無効コードワードに基づいて複数の候補コードワードを生成することをさらに含み得る。本方法は、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択することをさらに含み得る。本方法は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することをさらに含み得る。本方法は、深度マップに基づいてシーンのデジタル表現を生成することをさらに含み得る。本方法は、出デバイスにシーンのデジタル表現を出力することをさらに含み得る。

[0007]いくつかの実装形態では、無効コードワードを検出することは、受信されたコードワードが複数の符号化されたコードワードに含まれるかどうかを決定することと、受信されたコードワードが複数の符号化されたワードに含まれないという決定に応答して、受信されたコードワードが無効であると決定することとを含む。

[0008]いくつかの実装形態では、符号化されたコードワードは、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される(formed of)。いくつかの実装形態では、無効コードワードを検出することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較することを含む。いくつかの実装形態では、比較することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを含む。

[0009]いくつかの実装形態では、複数の候補コードワードを生成することは、各個々の摂動について候補コードワードを生成するために、無効コードワードの各要素を個々に摂動させることを含む。いくつかの実装形態では、複数の候補コードワードを生成することは、無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させることを備える。

[0010]いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択することは、複数の符号化されたコードワードに含まれる複数の候補コードワードのサブセットを選択することを含む。いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択することは、候補コードワードの選択されたサブセットの各々と、無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することをさらに含む。いくつかの実装形態では、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択することは、無効コードワードを置き換えるために、局所近傍に最も類似した候補コードワードを選択することをさらに含む。いくつかの実装形態では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。いくつかの実装形態では、無効コードワードのコードワードの局所近傍は、無効コードワードのロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる。いくつかの実装形態では、局所近傍に関連する深度はメジアン深度である。

[0011]開示される別の態様は、構造化光における誤り訂正のための装置である。本誤り訂正装置は、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するように構成された受信機センサーを含み得、画像は無効コードワードを含む。本誤り訂正装置は、受信機センサーと通信している処理回路をさらに含み得る、処理回路。処理回路は、無効コードワードを検出するように構成され得る。処理回路は、無効コードワードに基づいて複数の候補コードワードを生成するようにさらに構成され得る。処理回路は、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択するようにさらに構成され得る。処理回路は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するようにさらに構成され得る。処理回路は、深度マップに基づいてシーンのデジタル表現を生成するようにさらに構成され得る。処理回路は、出力デバイスにシーンのデジタル表現を出力するようにさらに構成され得る。

[0012]いくつかの実装形態では、処理回路は、受信されたコードワードが複数の符号化されたコードワードに含まれるかどうかを決定するようにさらに構成される。いくつかの実装形態では、処理回路は、受信されたコードワードが複数の符号化されたワードに含まれないという決定に応答して、受信されたコードワードが無効であると決定するように構成される。

[0013]いくつかの実装形態では、符号化されたコードワードは、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される。いくつかの実装形態では、処理回路は、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較するようにさらに構成される。いくつかの実装形態では、処理回路は、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理する(match filter)ようにさらに構成される。

[0014]いくつかの実装形態では、処理回路は、無効コードワードの各要素を摂動させる(perturb)ことと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成される。いくつかの実装形態では、処理回路は、無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させるようにさらに構成される。

[0015]いくつかの実装形態では、処理回路は、複数の符号化されたコードワードに含まれる複数の候補コードワードのサブセットを選択するようにさらに構成される。いくつかの実装形態では、処理回路は、候補コードワードの選択されたサブセットの各々と、無効コードワードの周りのコードワードの局所近傍との間の類似度(similarity)を決定するようにさらに構成される。いくつかの実装形態では、処理回路は、無効コードワードを置き換えるために、局所近傍に最も類似した候補コードワードを選択するようにさらに構成される。いくつかの実装形態では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。いくつかの実装形態では、無効コードワードの周りのコードワードの局所近傍は、無効コードワードのコードワードロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる。いくつかの実装形態では、局所近傍に関連する深度はメジアン深度である。

[0016]開示される別の態様は、構造化光における誤り訂正のための装置である。本装置は、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するための手段を含み得、画像は無効コードワードを含む。本装置は、無効コードワードを検出するための手段を含み得る。本装置は、無効コードワードに基づいて複数の候補コードワードを生成するための手段を含み得る。本装置は、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択するための手段を含み得る。本装置は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するための手段を含み得る。本装置は、深度マップに基づいてシーンのデジタル表現を生成するための手段を含み得る。本装置は、出力デバイスにシーンのデジタル表現を出力するための手段を含み得る。

[0017]開示される別の態様は、構造化光における誤り訂正のための命令を記憶する非一時的コンピュータ可読媒体であり、命令は、実行されたとき、実行されたとき、方法を実施する。方法は、受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することを含み得、画像は無効コードワードを含む。方法は、無効コードワードを検出することを含み得る。方法は、無効コードワードに基づいて複数の候補コードワードを生成することを含み得る。方法は、無効コードワードを置き換えるために、複数の候補コードワードのうちの1つを選択することを含み得る。方法は、選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することを含み得る。方法は、深度マップに基づいてシーンのデジタル表現を生成することを含み得る。方法は、出力デバイスにシーンのデジタル表現を出力することを含み得る。

[0018]次に、上述の態様、ならびに本技術の他の特徴、態様、および利点が、添付の図面を参照しながら、様々な実装形態に関して説明される。ただし、図示された実装形態は、例にすぎず、限定するものではない。図面全体にわたって、同様のシンボルは、一般に、コンテキストが別段に規定しない限り、同様の構成要素を識別する。以下の図の相対寸法は一定の縮尺で描かれていないことがあることに留意されたい。

[0019]シーンまたは物体を照明し(illuminate)、2次元画像および/または情報から3次元情報を生成するための(with which)深度情報を取得するために、既知のパターンが使用される、アクティブ検知システムの一例を示す概略図。

[0020]2次元(2D)画像または情報から3次元(3D)シーンが構成されるアクティブ検知のためのシステムの別の例を示す図。

[0021]物体またはシーンのために深度がどのように検知され得るかを示す概略図。

[0022]複合コードマスクを生成することおよび/またはそのような複合コードマスクを投影することを行うように構成され得る送信機デバイスの一例を示すブロック図。

[0023]複合コードマスクから深度情報を取得するように構成され得る受信機デバイスの一例を示すブロック図。

[0024]本明細書で開示される誤り訂正方法のうちの1つまたは複数を実施するように構成された装置の一実施形態のブロック図。

[0025]メジアンフィルタを使用する誤り訂正の異なる度合いを示す図。

[0026]エルミート対称性を呈する点をもつパターンの一例を示す図。

[0027]ゴースト画像をもたないエルミート対称パターンの一例を示す図。

[0028]エルミート対称性をもつコードマスクパターンの一例を示す図。

[0029]ゴースト画像をもつ非エルミート対称パターンの一例を示す図。

[0030]エルミート対称性をもたないコードマスクパターンの一例を示す図。

[0031]異なる基底関数の列およびウィンドウ処理された4×4空間コードをもつ、図8Cに示されている例示的なコードマスクの詳細図。

[0032]構造化光から導出された深度マップにおけるギャップを示す図。

[0033]深度マップホール充填(depth map hole filling)の方法のデータフロー図の一例の図。

[0034]深度マップにおける誤り訂正のプロセスの一例を示す図。

[0035]メジアンフィルタを使用する深度マップにおけるギャップ充填のいくつかの態様を示す画像を示す図。

[0036]本明細書で開示される方法およびシステムを使用する深度マップのギャップ充填のいくつかの態様を示す画像を示す図。

[0037]構造化光から生成されたコードワード中の誤りを訂正するプロセスの一例を示すフローチャート。




[0038]以下の発明を実施するための形態は、いくつかの特定の実施形態を対象とする。ただし、開示される方法およびシステムは多数の異なる方法で実施され得る。本明細書の態様は多種多様な形態で実施され得、本明細書で開示される特定の構造、機能、またはその両方は代表的なものにすぎないことは明らかであろう。本明細書の教示に基づいて、本明細書で開示される態様は他の態様から独立して実装され得ること、およびこれらの態様のうちの2つまたはそれ以上は様々な方法で組み合わせられ得ることを、当業者は諒解されたい。たとえば、本明細書に記載する態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本明細書に記載する態様のうちの1つまたは複数に加えて、あるいはそれら以外の他の構造、機能、または構造および機能を使用して、そのような装置が実装され得るか、またはそのような方法が実施され得る。


[0039]さらに、本明細書で説明されるシステムおよび方法は、様々な異なるコンピューティングデバイス上で実装され得る。これらは、モバイルフォン、タブレット、専用カメラ、ウェアラブルコンピュータ、パーソナルコンピュータ、写真ブースまたはキオスク、携帯情報端末(personal digital assistants)、ウルトラモバイルパーソナルコンピュータ、およびモバイルインターネットデバイスを含む。それらは、汎用または専用のコンピューティングシステム環境または構成を使用し得る。本発明とともに使用するのに好適であり得る、コンピューティングシステム、環境、および/または構成の例としては、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、プログラマブルコンシューマーエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがある。


[0040]上記で説明されたように、構造化光システムは、深度マップを取得するために、シーン上に既知のパターンまたはコードを投影し、受信されたパターンまたはコードを処理する。各コードワードは、以下でより詳細に説明される「基底関数」の使用によって生成され得る。基底関数の周期性は、(ゴースト画像を除去し、製造を簡略化するための)エルミート対称性のアグリゲートパターンと、(コードワードごとの最小電力を保証するための)最小デューティサイクルと、(最適な輪郭解像度および高解像度のためのコードパッキングのための)完全ウィンドウプロパティと、(物体境界に対する改善された検出のための)ランダム化されたシフトとのための1つまたは複数の要件を満たすように選定され得る。


[0041]受信されたコードが、有効コードをリストするコードブック中のコードのうちの1つに一致する場合、受信されたコードは、送信されたコードと等価な可能性が最も高く、したがって、誤りは存在しない。必然的に、スペックルまたは他の雑音源により、受信されたパターンのいくつかの領域は、コードの送信と受信との間で変更され得る。受信されたコードがコードブック中のコードのうちの1つに正確に一致しない場合、受信機は、受信されたコードが送信されたコードに一致せず、したがって、受信されたコード中に誤りが存在すると決定し得る。復号されていないコードワードは、深度情報を含んでおらず、したがって、マップのユーティリティを劣化させる深度マップにおけるホールを生じる。


[0042]いくつかのソリューションは、受信されたコードワード中の基底関数の存在に関する軟判定を与えるために、整合フィルタを利用する。誤り検出および訂正のための他の機構は、下にあるコード構造を使用せず、したがって、新しい情報を作成しない幾何学的制約の使用を伴う(involve)。


[0043]いくつかの実施形態では、開示されるシステムおよび方法は、送信されていることがある有効コードのリストを含んでいるコードブックと、受信されたコードワードとに基づいて、送信された最も可能性が高いコードワードを決定することによって、誤り訂正を実施し得る。


[0044]たとえば、いくつかの態様では、受信されたコードが、有効コードのコードブック中のどのコードにも一致しない場合、受信されたコードベイからの1つまたは複数のビット差を含む受信されたコードの変形体(variations)が、変形体のいずれかが有効コードのコードブックに含まれるかどうかを決定するために、コードブックと比較される。受信されたコードワードの複数の変形体がコードブックに含まれる場合、コードワードの局所近傍と候補コードワードとの間の類似性測度が、元の送信されたコードワードに一致する可能性が最も高い変形体を選択するために採用される。 例示的な動作環境 [0045]図1は、シーンまたは物体を照明し、深度情報を取得するために、構造化光パターンが使用される、例示的なアクティブ検知システムを示す。本明細書で説明される1つまたは複数の態様および/または特徴は、そのような例示的なアクティブ検知システム内に実装され得る。図1は、物体またはシーン106上にコードワードを投影するために、コードマスク104(たとえば、コードをもつ画像)を通して光を投影する送信機102を示す。受信機108は、投影されたコードマスク110とその中のコードワードとをキャプチャする。コードマスク104のセクション/部分/ウィンドウ112は、物体またはシーン106の表面(たとえば、投影されたセクション/部分/ウィンドウ116)上に(セクション/部分/ウィンドウ114として)投影される。投影されたセクション/部分/ウィンドウ116は、次いで、キャプチャされたセグメント118として受信機108によってキャプチャされ得る。セクション/部分/ウィンドウ112は、一意に識別され得るコードワードを符号化する。このようにして一意のコードワードをもつシーンまたは物体106を画像化すること(imaging)によって、シーンまたは物体106のセクション/部分は識別/タグ付けされ得、この情報は深度検知のために使用され得る。


[0046]受信機108によってキャプチャされた画像から、複数のセグメント(multiple segments)がシーンまたは物体106上で識別され得る。各セグメント118は受信機108において一意に識別可能であり、他のセグメントに対するそれのロケーションはコード化マスク104の既知のパターンから確認され(ascertained)得る。各セグメント/部分/ウィンドウからのコードの識別は、(たとえば、ひずみに対処するための)パターンセグメンテーションと、知覚されたセグメント/部分/ウィンドウの、対応する(1つまたは複数の)コードへの復号とを伴い得る。さらに、三測量が、配向および/または深度を確認するために、各キャプチャされたセグメント/部分/ウィンドウ上で適用され得る。複数のそのようなセグメント/部分/ウィンドウは、キャプチャされた画像パターンを一緒にスティッチ(stitch)するために組み合わせられ得る。このようにして、深度のマップがシーンまたは物体106のために生成され得る。


[0047]図2は、2次元(2D)画像または情報から3次元(3D)シーンが構成されるアクティブ検知のための別の例示的なシステムを示す。エンコーダ/形状変調器201はコードマスクを生成するように働き(serve)得、コードマスクは、次いで、送信チャネル204上で送信機デバイス202によって投影される。コードマスクはターゲット(たとえば、シーンまたは物体)上に投影され得、反射光は画像(たとえば、コードマスク画像)として受信機センサー205によってキャプチャされる。受信機センサー205(たとえば、図1中の受信機108)において、ターゲット(たとえば、シーンまたは物体)がキャプチャされ、それの形状/深度が符号化205される。形状/深度符号化は、たとえば、深度情報を確認するために、投影されたコードマスクを使用して達成され得る。たとえば、(投影されたコードマスクを含む)シーンまたは物体のキャプチャされた画像は、深度マップ208を取得するために復号206され得る。深度マップ208は、次いで、ターゲットの3次元バージョン210a〜eを提示、生成、および/または与えるために使用され得る。


[0048]アクティブ検知は、シーンまたは物体上に送信機デバイス202によって投影されているコードマスクからのすべての空間コード(すなわち、コードワード)を(受信機センサー205および/またはデコーダ206において)認識することが可能であることに依拠する。シーンまたは物体が送信機/受信機に近すぎる、シーンまたは物体の表面が傾斜/湾曲している、および/あるいはベースライン基準面が傾いている場合、コードは未知のアフィン変換(たとえば、回転、スキュー、圧縮、伸長(elongation)など)の下で変更される。


[0049]本明細書で説明される1つまたは複数の態様または特徴は、図1および図2の例示的な環境内に実装され得る。 例示的なアクティブ深度検知 [0050]図3は、物体またはシーンのために「深度」がどのように検知され得るかの一例を示す。図3は、送信機302と受信機304とを含むデバイス300を示す。デバイスは、コードワード投影310として送信機302から放出された構造化光を用いて、2つの物体306および308を照明している。コードワード投影310は、物体306および/または308から反射し、コードワード反射311として受信される。


[0051]示されている態様では、送信機302は、受信機304と同じベースライン基準面(たとえば、レンズ平面305)上にある。送信機302は、レンズまたは開口313を通して物体306および308上にコードマスク310を投影する。


[0052]コードワード投影310は、投影されたセグメント312’として物体306を照明し、投影されたセグメント312”として物体308を照明する。投影されたセグメント312’および312”が受信機レンズまたは開口315を通して受信機304によって受信されたとき、コードワード反射311は、第1の距離d1において物体308から生成された反射と、第2の距離d2において物体306から生成された反射とを示し得る。


[0053]図3によって示されるように、物体306は送信機302のより近く(たとえば、送信機デバイスから第1の距離)に配置されるので、投影されたセグメント312’はそれの初期ロケーションから距離d2のところに現れる。対照的に、物体308はさらに離れて(たとえば、送信機302から第2の距離離れて)配置されるので、投影されたセグメント/部分/ウィンドウ312”はそれの初期ロケーションから距離d1のところに現れる(ここで、d1


[0054]コードワード投影またはコードマスクを生成するための様々なタイプの変調およびコーディング方式が考えられている。これらの変調およびコーディング方式は、時間コーディング、空間コーディング、および直接コード化(direct codification)を含む。


[0055]時間コーディングでは、パターンは、(たとえば、時間とともに(over time))測定表面上に連続的に投影される。この技法は、高い精度および解像度を有するが、動的シーン(dynamic scenes)にあまり好適でない。


[0056]空間コーディングでは、情報は、形状およびパターンに基づいて局所近傍において符号化される。擬似ランダムコードはDe−Bruijnに基づき得るか、またはM配列はコードブック(たとえば、m値強度または色変調)を定義する。パターンセグメンテーションは、たとえば、形状およびパターンがひずんでいる場合、容易に達成されないことがある。


[0057]直接コード化では、平ピクセル座標と垂直ピクセル座標の両方が符号化される。変調は単調位相または強度波形によるものであり得る。しかしながら、この方式は、他の方法のために利用されるコードブックよりも大きいコードブックを利用し得る。たいていの方法(most methods)では、受信されたコードワードは、(たとえば、コードブック中の)可能なコードワードの定義されたセットに対して相関させられ得る。したがって、コードワードの小さいセット(たとえば、小さいコードブック)の使用は、より大きいコードブックよりも良好な性能を与え得る。また、より大きいコードブックがコードワード間のより小さい距離を生じるので、より大きいコードブックを使用する実装形態によって、追加の誤りが経験され(experienced)得る。 アクティブ深度検知のための例示的なコード [0058]構造化光パターンは、コードマスクを通して光を照らすことによってシーン上に投影され得る。コードマスクを通して投影された光は、1つまたは複数のテッセレーションされた(tessellated)コードマスクプリミティブを含んでいることがある。各コードマスクプリミティブは、空間コードのアレイを含んでいることがある。コードブックまたはデータ構造はコードのセットを含み得る。空間コード、コードマスク、およびコードマスクプリミティブは、基底関数を使用して生成され得る。基底関数の周期性は、(ゴースト画像を除去し、製造を簡略化するための)エルミート対称性のアグリゲートパターンと、(コードワードごとの最小電力を保証するための)最小デューティサイクルと、(最適な輪郭解像度および高解像度のためのコードパッキングのための)完全ウィンドウプロパティと、(物体境界に対する改善された検出のための)ランダム化されたシフトとのための要件を満たすように選定され得る。受信機は、受信されたパターン中の誤りを復調、復号、および訂正するとき、コードブック、ならびに/または空間コード、コードマスク、およびコードマスクプリミティブの設計の属性を利用し得る。


[0059]空間コードのサイズおよび対応する解像度は、コードマスク上の空間コードの物理的空間範囲に対応する。サイズは、各コードワードを表す行列中の行および列の数に対応し得る。コードワードが小さいほど、検出され得る物体は小さくなる。たとえば、シャツ上のボタンとシャツ生地との間の深度差を検出および決定するために、コードワードは、ボタンのサイズよりも大きくないものであるべきである。一実施形態では、各空間コードは4つの行と4つの列とを占有し得る。一実施形態では、コードは、たとえば、3×3、4×4、4×5、5×5、6×4、または10×10の行および列を占有するために、より多いまたはより少ない行および列(行×列)を占有し得る。


[0060]空間コードの空間表現は、各コードワード要素が、どのようにコードマスク上でパターニングされ、次いでシーン上に投影されるかに対応する。たとえば、各コードワード要素は、1つまたは複数のドット、1つまたは複数のラインセグメント、1つまたは複数のグリッド、何らかの他の形状、またはそれらの何らかの組合せを使用して表され得る。


[0061]空間コードの「デューティサイクル」は、コードワード中の、アサートされたビットまたは部分(たとえば、「1(1s)」)の数と、アサートされないビットまたは部分(たとえば、「0(0s)」)の数の比に対応する。コードワードを含むコード化光パターンがシーン上に投影されるとき、「1」の値を有する各ビットまたは部分はエネルギー(たとえば、「光エネルギー」)を有し得、「0」の値を有する各ビットはエネルギーがないこと(devoid of)がある。コードワードが容易に検出可能であるために、コードワードは十分なエネルギーを有するべきである。低エネルギーコードワードは、検出することがより困難であり得、雑音をより受けやすい(susceptible)ことがある。たとえば、4×4コードワードは、コードワード中のビットのうちの8つまたはそれ以上が「1」である場合、50%またはそれ以上のデューティサイクルを有する。個々のコードワードのための最小(または最大)デューティサイクル制約、またはコードブック中のコードのセットのための平均デューティサイクルなどのデューティサイクル制約があり得る。


[0062]コードの「輪郭解像度」または「完全ウィンドウ」特性は、コードワードが1ビット回転などの小さい量だけシフトされるとき、得られたデータが別のコードワードを表すことを示す。コードワードがシフトされる量はシフト量と呼ばれることがある。高輪郭解像度をもつコードは、構造化光深度検知システムが、比較的小さい物体境界を認識し、異なる物体について認識連続性を与えることを可能にし得る。行次元における1および列次元における2のシフト量は、行次元に沿って右に1ビット位置だけの、および列次元に沿って下に2ビット位置だけのシフトに対応し得る。コードワードの高輪郭解像度セットは、受信された画像上のウィンドウを一度に1行または1列移動し、各ウィンドウ位置における深度を決定することを可能にする。これは、受信された画像の第3の行および第3の列を中心とする開始点において5×5ウィンドウを使用し、各行に、すなわち列ロケーションを第3の行から最後の行に対して3番目に、および第3の列から最後の列に対して3番目に5×5ウィンドウを移動する深度の決定を可能にする。コードワードが重複するので、ウィンドウは、決定されるべき物体深度(シャツ上のボタンなど)の解像度に基づいてサイズ決定され得る。


[0063]コードの対称性は、コードマスクまたはコードブックプリミティブが、非エルミート対称コードブックプリミティブまたはパターンを使用することと比較していくつかの利益を与え得るエルミート対称性を有することを示し得る。エルミート対称性をもつパターンは、XおよびY(行および列)軸の両方に沿って「反転される」かまたは対称である。


[0064]コードマスクまたはコードマスクプリミティブのエイリアシング(aliasing)特性は、同じである2つのコードワード間の距離に対応する。光パターンがテッセレーションされたコードブックプリミティブを含むとき、およびプリミティブにおける各コードブックが一意であるとき、エイリアシング距離はコードブックプリミティブのサイズに基づき得る。したがって、エイリアシング距離は、コードブックプリミティブの各コードワードがコードブックプリミティブの各他のコードワードとは異なるべきであること、およびコードブックプリミティブが全体として一意であることを示す一意性基準(uniqueness criterio)を表し得る。エイリアシング距離は、1つまたは複数の受信機デバイスに知られており、コードワード復調中にエイリアシングを防ぐために使用され得る。


[0065]コードマスクのカーディナリティ(cardinality)は、コードブックプリミティブにおける一意のコードの数に対応する。 例示的な送信機デバイス [0066]図4は、複合コードマスクを生成することおよび/またはそのような複合コードマスクを投影することを行うように構成され得る送信機デバイスの一例を示すブロック図である。送信機デバイス402は、メモリ/ストレージデバイス、画像投影デバイス408、および/または有形媒体409に結合された処理回路404を含み得る。いくつかの態様では、送信機デバイス402は、図3に関して上記で説明された送信機302に対応し得る。


[0067]第1の例では、送信機デバイス402は、有形媒体409を含むように結合され得る。有形媒体は、複合コードマスク414を定義し、含み、および/または記憶し、複合コードマスクは、キャリアレイヤと組み合わせられたコードレイヤを含み得る。コードレイヤは、複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードを含み得る。キャリアレイヤは、独立して確認可能であり、コードレイヤとは別個であり得、投影時のひずみにロバストである複数の基準物体を含む。コードレイヤおよびキャリアレイヤのうちの少なくとも1つは、投影より前に合成点像分布関数(synthetic point spread function)によって事前整形され得る。


[0068]第2の例では、処理ユニット404は、コードレイヤ生成器/セレクタ416、キャリアレイヤ生成器/セレクタ418、複合コードマスク生成器/セレクタ420および/または事前整形回路422を含み得る。コードレイヤ生成器/セレクタ416は、事前記憶されたコードレイヤ410を選択し得、および/またはそのようなコードレイヤを生成し得る。キャリアレイヤ生成器/セレクタ418は、事前記憶されたキャリアレイヤ412を選択し得、および/またはそのようなキャリアレイヤを生成し得る。複合コードマスク生成器/セレクタは、事前記憶された複合コードマスク414を選択し得、および/または複合コードマスク414を生成するためにコードレイヤ410とキャリアレイヤ412とを組み合わせ得る。随意に、処理回路404は、複合コードマスクが投影されるべきである(through which)チャネル中の予想されるひずみを補償するために、複合コードマスク414、コードレイヤ410、および/またはキャリアレイヤ412を事前整形する事前整形回路を含み得る。


[0069]いくつかの実装形態では、複数の異なるコードレイヤおよび/またはキャリアレイヤが利用可能であり得、ここで、各そのようなキャリアレイヤまたはコードレイヤは、異なる状態のために(たとえば、異なる距離にある物体、または送信機デバイスと受信機デバイスとの間の異なる構成のために)構成され得る。たとえば、第1の距離または範囲内の物体のために、第2の距離または範囲にある物体のためのものとは異なるコードレイヤとキャリアレイヤとの組合せが使用され得、ここで、第2の距離は第1の距離よりも大きい。別の例では、コードレイヤとキャリアレイヤとの異なる組合せが、送信機デバイスと受信機デバイスとの相対配向に応じて使用され得る。


[0070]画像投影デバイス408は、生成/選択された複合コードマスクを当該の(interest)物体上に投影するように働き得る。たとえば、レーザーまたは他の光源が、(たとえば、投影チャネルを通して)当該の物体上に複合コードマスクを投影するために使用され得る。一例では、複合コードマスク414は赤外スペクトル(infrared spectrum)において投影され得、したがって、それは肉眼にとって可視でないことがある。代わりに、赤外スペクトル範囲中の受信機センサーが、そのような投影された複合コードマスクをキャプチャするために使用され得る。 例示的な受信機デバイス動作 [0071]図5は、複合コードマスクから深度情報を取得するように構成され得る受信機デバイス502の一例を示すブロック図である。受信機デバイス502は、メモリ/ストレージデバイスと受信機センサー508(たとえば、画像キャプチャデバイス508)とに結合された処理回路504を含み得る。いくつかの態様では、図5に示されている受信機デバイス502は、図3に関して上記で説明された受信機304に対応し得る。


[0072]受信機センサー508(たとえば、カメラ)は、物体の表面上に投影された複合コードマスクの少なくとも一部分を取得するように働き得る。たとえば、受信機センサーは、ターゲット物体の表面上に投影された複合コードマスクの少なくとも一部分をキャプチャし得る。複合コードマスクは、(a)複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードのコードレイヤと、(b)独立して確認可能な、コードレイヤとは別個の、投影時のひずみにロバストである複数の基準物体を含む、キャリアレイヤとによって定義され得る。コードレイヤおよびキャリアレイヤのうちの少なくとも1つは、投影より前に合成点像分布関数によって事前整形されていることがある。一例では、受信機センサー508は赤外スペクトルにおける複合コードマスクをキャプチャし得る。


[0073]一実装形態では、コードレイヤは、n1×n2個のバイナリシンボルを備え得、ここで、n1およびn2は2よりも大きい整数である。複合コードマスクでは、各シンボルは、基準物体とは別個の2つのグレースケールシェード(gray-scale shades)のうちの1つ中のラインセグメントであり得る。コードレイヤのシンボルは、少なくとも1つの次元においてスタッガされ(staggered)得る。キャリアレイヤ基準物体(carrier layer reference objects)は、間にガードインターバルをもつ複数の等間隔に離間した基準ストライプを備え得る。基準ストライプおよびガードインターバルは異なる幅のものであり得る。ガードインターバル幅に対する各基準ストライプの幅は、送信機デバイスおよび/または受信機デバイスの予想される光拡散によって決定され得る。


[0074]処理回路504は、基準ストライプ検出器回路/モジュール512、ひずみ調整回路/モジュール514、コードワード識別器回路/モジュール516、深度検出回路/モジュール518、および/または深度マップ生成回路/モジュール520を含み得る。


[0075]基準ストライプ検出器回路/モジュール512は、複合コードマスクの部分内の基準ストライプを検出するように構成され得る。ひずみ調整回路/モジュール514は、基準ストライプの実際の配向に対する基準ストライプの予想される配向に基づいて、複合コードマスクの部分のひずみを調整するように構成され得る。コードワード識別器回路/モジュール516は、複合コードマスクの部分内に定義されたウィンドウからコードワードを取得するように構成され得る。深度検出回路/モジュール518は、(a)複合コードマスクの単一の投影と、(b)知られている参照コードマスクに対するウィンドウの変位とに基づいて、ウィンドウに対応するターゲット物体の表面部分のための深度情報を取得するように構成され得る。


[0076]まだ図5を参照すると、深度マップ生成回路/モジュール520は、ひずまされていない複合コードマスクの部分内の異なる重複ウィンドウとして検出された複数のコードワードに基づいて、物体のための深度マップをアセンブルするように構成され得る。


[0077]一例では、コードレイヤおよびキャリアレイヤのうちの少なくとも1つの事前整形(pre-shaping)は、整形されていない(unshaped)複合コードマスクと比較してより多くの電力が受信機センサーによって知覚されるように、複合コードマスクの投影中の電力効率を増加させる。


[0078]一事例では、使用される合成点像分布関数は、(a)複合コードマスクが投影されるべきである(through which)予想されるチャネル状態、(b)複合コードマスクが投影される(onto which)表面の特性、および/または(c)投影された複合コードマスクを受信すべきである受信機センサーの感度のうちの少なくとも1つに基づいて、複数の点像分布関数から選択され得る。別の例では、合成点像分布関数は、(a)複合コードマスクを投影すべきであるプロジェクタのための第1のチャネル応答、および/または(b)複合コードマスクを投影すべきであるプロジェクタから、複合コードマスクを受信すべきである受信機センサーへの経路のための第2のチャネル応答のうちの少なくとも1つに基づいて、複数の点像分布関数から選択され得る。 例示的な誤り訂正デバイス [0079]図6は、本明細書で開示される誤り訂正方法のうちの1つまたは複数を実施するように構成された装置の一実施形態を示すブロック図である。装置600は、発光体602と、受光要素604と、プロセッサ606と、メモリ608とを含む。発光体602と、受光要素604と、プロセッサ606と、メモリ608とは、バス610を介して動作可能に接続される。いくつかの態様では、受光要素604は、図5に関して上記で説明された受信機デバイス502に対応し得る。いくつかの態様では、発光体602は、図4に関して上記で説明された送信機デバイス402に対応し得る。


[0080]メモリ608は、本明細書で説明される方法の1つまたは複数の機能を実施するようにプロセッサ606を構成する命令を記憶し得る。たとえば、メモリに記憶された命令は、ターゲット物体を照明するために、構造化光をコードワードとして符号化する光を放出するように発光体602を制御するようにプロセッサ606を構成し得る。メモリ608に記憶された命令は、さらに、プロセッサ606に、ターゲット物体から反射する光を受信し、反射光において符号化されたデータを生成するように受光要素604を制御させ得る。メモリに記憶された命令は、以下で説明される方法1500に従って、受光要素(light receiving element)によって生成されたデータ中の誤りを訂正するようにプロセッサをさらに構成し得る。


[0081]図7は、画像深度マップにおけるギャップの影響を緩和するための知られている方法の適用の結果を示す。画像701aは誤り訂正なしの深度マップを示す。深度マップにおけるホールは、たとえば、手701bにおける暗い領域として見られ得る。画像702aは、軽度ホール充填プロセス(mild hole filling process)が実施された後の同じ深度マップを示す。手702bは、手701aよりも少ないホールを深度マップ中に含むが、細部の若干の損失も存在する。画像703aは、中間レベルホール充填が実施された後の、画像701aと同じ深度マップを示す。画像703aからの手703bは、深度マップギャップの数のさらなる低減を示すが、手701bおよび702bに対する細部の損失をも示す。画像704aは、網羅的ホール充填の後の画像701aと同じ深度マップを示す。画像704aからの手704bは、手701b、702b、および703bと比較して、深度マップギャップのさらなる低減を示す。しかしながら、手701b、702b、および703bに対する細部のさらなる損失も明白である。


[0082]図8Aは、エルミート対称性を呈するパターンを示す。正の(x,y)をもつ各点A、B、Cがコードブックプリミティブに含まれ、原点(たとえば、点(0,0))を中心として(about)、同じくコードブックプリミティブ中にある点(−x,−y)に反射される。点A、B、Cの各々によって呈される(exhibited)エルミート対称性は、非エルミートパターンが使用されるときに受信され得る「ゴースト」画像の形成を抑制し得る。たとえば、図8Bは、エルミート対称コードマスクから形成された、ゴースト画像をもたないパターンを示す。対照的に、図8Dは、エルミート対称でないコードマスクから形成された、ゴースト画像をもつパターンを示す。ゴースト画像をなくすことは、受信機側信号処理を低減し得、コードワード認識および復調精度を増加させ、移動している物体に対する許容差(tolerance)を増加させ、雑音に対する許容差を増加させ、照明変化に対する許容差を増加させ得る。


[0083]図8Cおよび図8Eは、エルミート対称パターンが、構造化光投影における0次ビームのサイズにどのように影響を及ぼし得るかを示す。図示のように、図8Cのエルミート対称パターンは、非エルミート対称パターンをもつ図8Eに示されている0次ビームと比較して、より小さい0次ビームを生成した。0次ビームは、レーザー光などの光がコードマスクを通過し、光の一部分が、回折されない(un-diffracted)コードマスクの中心を通過するときに生成される。これは0次ビームを生じる。0次ビームは回折されないので、0次ビームは回折ビームよりも高い強度を有し、その結果、0次ビームの位置を中心として受信画像センサーのブラインドスポットおよび飽和を生じ得る。図8C中の0次ビームの低減されたサイズおよびより低い強度は、ブラインドスポットのサイズを低減し、図8Eにおいて使用される非エルミート対称パターンと比較して、レーザー光を使用するシステムにおける目の安全性(eye-safety)を改善し得る。


[0084]図9は、図8Cに示されている例示的なコードマスクの詳細図を示す。コードマスク900の列内の符号化されたデータは、基底関数のセットに基づいて生成され得る。基底関数は空間コードを形成するために使用される。基底関数(基底シーケンス)の設計は、基底関数が、互いに直交であるように選定され得、線形的に組み合わせられ得るという点で、行列のための固有ベクトルに類似し得る。


[0085]図9のコードマスクは、3つの基底関数から生成されたコードマスクを示す。パターン中の白い正方形はイチ(1)の値を表し、暗い正方形はゼロ(0)の値を表す。図9の図示されたコードマスクでは、各列は、3つの基底関数、すなわち、











、または






のうちの1つからの値を符号化する。特定の列を生成するとき、各基底関数は回転され得る。回転すること910は、すべてのビットが等価であるので、変化を生じない。基底関数






は、一度に1ビットずつ、











、または






に回転され得る。同様に、基底関数






は、






に回転され得る。コードマスク900における各列は、これらの関数910、920、922、924、926、930、または932のうちの1つの繰返し数列(repeating series)に対応する。


[0086](時々回転される)基底関数から生じるパターンは、4つの列部分から構成されるコードに編成され(organized)、各列部分は1つの4セル基底関数パターンからなる。たとえば、コード950は、関数[910|910|932|920]に対応する、






として表され得る。


[0087]コード950は、4×4バイナリ行列として、(たとえば、列1111111101011100による、または行1101111111001110による)バイナリ行列のバイナリ表現として、位相(910、910、930+1、920)をもつ基底関数の組合せとして、または関数(910、910、932、920)の組合せとして、画像形式でコードブックに記憶され得る。


[0088]同様にして、コード






は基底関数[910|932|910|930]から形成され、コード






は基底関数[930|910|932|930]から形成され、コード






は[910|910|910|910]から形成される。


[0089]コードは、図9のコードマスクにおけるあらゆる4×4要素「ウィンドウ」について識別され得る。識別可能なコードは、コードマスク900の各4×4部分が有効コードを表すので、コード952およびコード954によって示されるように「重複する」。コードマスク900が設計される(to which)輪郭解像度(完全ウィンドウ)制約のために、各4×4「ウィンドウ」は、910、920、922、924、926、930、または932の組合せから有効コードを形成する。


[0090]図9のコードマスクパターンの設計において使用される完全ウィンドウ制約はまた、シフトされたコードワードが一意であることを必要とする。コードマスクへの1つのウィンドウは、ロケーション950、952、954、および956に示されている4×4ウィンドウに対応する。ウィンドウが1つまたは複数の行および/または1つまたは複数の列だけシフトするので(as)、ウィンドウ内の4×4コードワードは、アンチエイリアスエリアにわたって一意であり、繰り返さない必要がある。コードワードが一意でない場合、アンチエイリアスエリア内の各コードワードロケーション(各一意のコードワードに対応するウィンドウロケーション)を一意に識別することが可能でないことがある。7つの関数910、920、922、924、926、930、および932と4つの列とをもつこの例の場合、4つの列の74=2,401個の可能な組合せがあり、最高2,401個の列のアンチエイリアシングエリアにわたる完全ウィンドウ制約を満たすことを可能にする。


[0091]この例では使用されなかった4×4コードのための2つの他の候補基底関数は、






、および






である。パターン中のどの列も、これらの関数またはこれらの関数のシフトされたバージョンを使用しない。したがって、






または






のいずれかを含む受信されたコードは無効コードである。したがって、受信機は、すべての送信されたコードがコードブック中にある基底関数(または基底関数の回転バージョン)から形成されたとき、受信されたコードが有効コードのコードブック中にないときに誤りを検出し得る。


[0092]図9のコードマスク900は、シーンにおける1つまたは複数の物体上に送信され、受信機に反射され(reflected back)得る。受信機502または受光要素604などの受信機は、シーンにおける物体からの送信されたパターンの反射を受信する。受信の後、ウィンドウ950、952、954、および956におけるコードの受信されたバージョンが決定され得る。符号化されたコードワードが、物体によって反射されたときにどのように変化するかを観測することによって、図10に示されている深度マップ1002aなどの深度マップが生成され得る。生成された深度マップは、深度マップに基づいて画像データを変更し得る1つまたは複数の画像処理方法に与えられ(provided)得る。生成された深度マップは、1つまたは複数のギャップまたはホールを含み得る。ギャップまたはホールは、コードの受信されたバージョンの復号における誤りから生じ得る。誤りは、低い反射率をもつ物体の部分、スプリアス周辺光状態(spurious ambient light conditions)を含む様々なファクタ、または様々な他のファクタによって引き起こされ得る。深度マップにおけるホールの例が、手1002bの拡大画像中で見られ得る。これらの誤りを訂正するための手段がなければ、ホールに近接している画像の領域の画像処理は抑制され、その結果、処理された画像の視覚的品質の低減を生じ得る。


[0093]コードマスク900のコードワードが受信されたとき、各受信されたコードワードは、受信されたコードを決定するために復調または解釈され得る。


[0094]一実施形態では、受信された空間コード、または受信された空間コードのシンボル(symbolic)(バイナリまたはn値(n-ary))表現は、受信されたコードが有効コードに対応するかどうかを決定するために、(たとえば、整合フィルタを使用する)基底関数、基底関数のシフトされたバージョン、または各有効空間コードアレイに整合させられ得る。コードマスク900は、基底関数のすべての可能な組合せのサブセットのみを表す有効コードを含むように生成され得る。図9の4×4コードの例では、7つの関数910、920、922、924、926、930、および932は、216(4×4)=65,536個の可能性のうちの74=2,401個の可能なコードに対応する。


[0095]コードマスク900を生成するために使用されるコードブックは、2,401個のコードのサブセット(たとえば、400個)を選択し得、その場合、可能なコードのうちの1%未満が有効である。有効コードが十分に類似しない場合、単一のビット誤りにより別の有効コードが生じないことがある。したがって、受信されたコードが有効コードに一致しない場合、受信されたコードが誤りを有すると決定することが可能であり得、第1の有効コードが第2の有効コードと間違えられることを単一のビット誤りが引き起こすことは、比較的可能性が低いか場合によっては不可能である。


[0096]本明細書で説明される誤り訂正システムおよび方法は、受信された無効コードに対応する最も可能性が高い、有効な、送信されたコードワードを決定することによって、無効コードが受信されたときの誤りを検出し、誤りを訂正する。最も可能性が高い有効な送信されたコードワードの決定は、いくつかの態様では、無効コードワードがただ1つの誤りを含むと仮定し得る。この仮定は、最も可能性が高い有効コードワードを決定することの計算要件を制限する(bounds)。さらに、単一のコードワード中の複数の誤りの比較的低い確率を仮定すれば、この仮定は、誤りを訂正する十分な能力をもつ方法およびシステムを与える。


[0097]図11は、深度マップホール充填の方法のデータフロー図である。方法は、誤り検出ステップ1150において、受信された空間コードワード中の誤りを検出することを含む。誤りを検出することは、受信されたコードワードが、有効コードワードをリストするコードブックに含まれないと決定することを含み得る。誤りを検出した後、方法は、コードワード生成ステップ(generate codewords step)1160において、有効候補コードワード(candidate valid codewords)を生成することを含む。候補コードワードの各々は、候補コードワードのうちのどれが有効候補であるかを決定するために、有効性検査ステップ(check validity step)1170において有効コードワードのセットと照合される(checked against)。次に、深度が、深度生成されたステップ(generated depths step)1180において有効コードワードの各々について生成される。図11は、図9に関して説明された基底関数、すなわち、基底関数











、および






、ならびにシフトされた関数
















および






を使用して生成された例示的な4×4空間コードのためのデータフローを示す。


[0098]図11は、最初に、誤り検出プロセス1150を垂直方向に示す。誤り検出プロセス11150内で、受信された空間コード1102が復号される。復号された空間コード1102は、図9に関して上記で説明された空間コードのうちの少なくとも1つの反射から生じ得る。特殊コード1102中の各受信された空間列は、整合フィルタを使用して図9の基底関数のセットと比較される。1102の第1、第2、および第3の列は、それぞれ、関数910、930、および926に一致する。しかしながら、列1104は、関数910、920、922、924、926、930、または932のいずれにも一致せず、列1104の要素のうちの少なくとも1つ中の誤りを示す。


[0099]誤り検出プロセス1150が空間コードワード1102の列1104中の誤りを検出すると、有効候補コードワードが、図11中で垂直方向に示されている候補コードワード生成ステップ1160において生成される。


[00100]図11の例示的な候補生成ステップ1160は、ただ1つの誤りが列1104中に存在するという設計仮定を含む。他の企図された(contemplated)実施形態は、異なる仮定を行い得、たとえば、他の実施形態は、2つ、3つ、または4つ以下の誤りが列1104中に存在すると仮定し得る。しかしながら、より多数の誤りを検出および訂正することは、より高い計算コストおよび複雑さを必要とし得る。いくつかの態様では、候補コードワードは、無効コードの特定のハミング距離内にあるように生成され得る。たとえば、無効コードワード中の多くとも1つの(most one)誤りを仮定する実装形態では、無効コードワードから1のハミング距離を有する候補コードワードが生成され得る。列1104中の多くとも2つの誤りを企図する実装形態では、無効コードワード1102から2のハミング距離内にある候補コードワードが生成され得、以下同様である。


[00101]図11に示されているように、候補コードワード1106a〜dがコードワード生成ステップ1160において生成される。候補コードワード1106a〜dの各々は、無効コードワード1102から1のハミング距離を有する。これは、上記で説明された単一のビット誤り仮定に対応する。代替的に、候補コードワード1106a〜dは、実装に応じて様々な他の方法によって生成され得る。一実装形態では、各候補コードワードは、誤りを含む列1104の一意の(unique)ビットを摂動させること(または変更すること)によって生成される。したがって、列1104が8ビットを含むべきところの場合、8つの候補コードワードが生成され得、各候補コードワードは、異なる摂動させられたビットを含む。


[00102]候補コードワード1106a〜dが生成された後、候補コードワードの各々は、次いで、有効性ステップ(validity step)1170において有効性について検査され得る。有効性は、いくつかの態様では、候補コードワードが、コードマスク900を生成するために使用された有効コードのコードブック1108に含まれるかどうかを決定することによって決定され得る。候補置換1106a〜dのうちのちょうど1つが有効コードである(コードブック1108に記載されている(listed))場合、単一の一致する候補は、最初に(originally)送信された有効コードである可能性が高い。図11の例では、コード1106a〜cがコードブック1108中で有効であることがわかったが、コード1106dはコードブック1108中で見つけられなかった。候補コードワードのいずれも有効である(すなわち、コードブック1108中にある)と決定されなかった場合、いくつかの実装形態は、無効コードワード列1104が単一よりも多い誤りを含むと決定し得ることに留意されたい。この決定に応答して、いくつかの実装形態は、第2の候補コードワード生成ステップを実施し得る。たとえば、無効コードワードから2のハミング距離内の候補コードワードが、生成され、コードブック1108と比較され得る。いくつかの実装形態は、無効コードワードからより大きいハミング距離をもつ候補コードワードのための追加のステップを実施し得る。いくつかの実装形態は、単一のステップにおいて最も近いハミング距離にある候補コードワードを決定し得る。


[00103]いくつかの実施形態では、有効性検査プロセス1170は、コードワード割振り方式に基づいて実施され得る。たとえば、いくつかの態様では、水平方向のコードワードは、x次元(x-dimension)において一意であり、y次元において繰り返していることがある。いくつかの候補コードワードは、そのような全体的コードワード割振り方式に準拠しないことがあり、有効性検査308中に拒否され得る。


[00104]有効性検査1170が実施された後、深度生成されたステップ1180は、各有効候補コードワード1110a〜cに関連する深度を決定する。コードワード1110a〜cに関連する候補深度は、候補コードワード1110a〜cのうちのどの1つが無効コードワード1102を置き換えるべきであるかを決定するために、局所近傍内の深度と比較され得る。たとえば、どの候補深度1110a〜cが無効コードワード1102の局所近傍深度値に最も近くても、深度マップにおける無効コードワード1102を置き換えるために使用され得る。いくつかの場合には、局所近傍は、無効コードワード1102からの1つ、2つ、3つ、4つ、5つ、6つ、7つ、8つ、9つ、または10個のコードワードに限定され得る。いくつかの態様では、局所近傍は、深度マップ幅または高さのあるパーセント内のコードワードに限定され得る。たとえば、深度マップが100個のコードワードにわたる場合、局所近傍は、この次元の1パーセントであるか、または無効コードワード1102のうちの1つのコードワード内にあるように定義され得る。深度生成ステップ1180に関するさらなる詳細が、図12に関して以下で説明される。


[00105]いくつかの例示的な復号されたコードワード1102は、2つ以上の列中の誤りを含み得ることに留意されたい。たとえば、4×4コードワードの第1および第3の列が、それぞれ、誤りを含み得る。この場合、8つの潜在的候補について候補コードワードが生成され得(4×4コードワードの場合、各列について4つ)、コードブックに対して各候補が検証され、各有効候補について深度が生成され、最も類似する深度が置き換えのために選択される。方法は、考慮すべきビット誤りの数に対して上限を設定し得る。


[00106]図12は、図12中のそれぞれ候補深度1204a〜cに対応する、図11に示されている1110a〜cなど、候補置換深度のセットを仮定した、深度マップにおける誤り訂正のプロセスの一部分を示す。いくつかの態様では、以下の図12の説明は、図11のプロセス1180の一実装形態について説明する。図12は、中心ロケーション1203における未知の深度値をもつ3×3領域を示す。深度は、ロケーション1203において受信されたコードが、図11の誤り検出1150によって決定された(as)有効コードでなかったので、ロケーション1203において未知である。図11の有効性検査1170によって検証され、候補深度が深度生成ステップ1180によって生成された(for which)、3つの検証された候補コードワード1204a〜cがある。図12は、類似性測度1206a〜cが、3×3近傍における他のロケーションの深度を用いて各対応する候補コードワード1204a〜cについて決定された候補深度について決定されることを示す。図12は、3つの候補コードワード1204a〜cについての類似性測度に基づいて、値63691をもつコードワード1204cが、8つの近隣ロケーション1208a〜hの深度に最も類似した深度を有することを示す。誤り訂正された深度値は、選択された深度を含む。


[00107]いくつかの態様では、各候補置換深度1204a〜cと近隣深度との間の類似性測度1206a〜cが算出される。いくつかの態様では、近隣深度は深度1208a〜hに限定され得る。いくつかの態様では、近隣深度のメジアンが各置換深度1110a〜cと比較され得、(たとえば、いくつかの態様では、最近傍(nearest neighbors)のメジアン深度間の差の絶対値に基づいて)最も類似する候補深度が、図11の無効コードワード1102を置き換えるために使用され得る。他の実施形態は、メジアン以外の測度(たとえば、平均)を使用し、および/またはより少数(たとえば、4つ)またはより多数の近隣の深度を考慮し得る。一実施形態では、すべての類似性測度1206a〜cが類似度しきい値を下回る類似度を示す場合、すべての候補コードワードが拒否され得る。


[00108]既知の方法は、図9、図11、および図12に関して上記で説明された誤り検出および訂正プロセスを使用しない。たとえば、図13は、メジアンフィルタを使用する深度マップにおけるギャップ充填を示す。メジアンフィルタベースソリューションは、構造化光の基礎をなす(underlying)符号化の知識を使用せず、したがって、実際には誤りを訂正しない。代わりに、誤りは、概して、メジアンフィルタによって周囲のエリア中に平滑化される。この平滑化の結果は図13中で明らかである。画像1302aは左手1302bと右手1302cとを含む。左手と右手の両方1302b〜cは、低減された数のギャップを示すが、細部の対応する損失を示す。


[00109]図13のメジアンフィルタベースソリューションによって示されている細部の損失とは対照的に、図14は、本明細書で開示される方法およびシステムを使用する深度マップのギャップ充填を示す。画像1404aの左手および右手1404b〜cに見られるように、基礎をなすコーディングにおける誤りから生じるギャップが低減された一方で、細部は、図13に示されているメジアンフィルタの左手および右手1402b〜cに対して維持される。


[00110]一実施形態では、どの候補空間コードが送信された可能性が最も高いかを決定するために、候補空間コードの各々が近隣空間コードと比較され得、比較に基づいて、送信された可能性が最も高いコードとして候補が選択され得る。たとえば、近隣空間コードの基底関数が、すべての他の候補よりも(than that)候補のうちの1つにより一致する場合、それよりも候補が選択され得る。一実施形態では、候補空間コードの各々に対応する深度が、推定された近隣深度(neighboring estimated depths)と比較され得、比較に基づいて候補が選択され得る。たとえば、近隣深度のメジアンフィルタ値が、各候補コードに対応する深度と比較され得、メジアンフィルタ値に最も近い深度をもつ候補コードが選択され得る。


[00111]図15は、構造化光から生成されたコードワード中の誤りを訂正する方法のフローチャートである。いくつかの態様では、上記で説明された特徴のうちの1つまたは複数は、図15に関して説明される(1つまたは複数の)実装形態にも関連し得る。


[00112]いくつかの態様では、方法1500は、図6に関して上記で説明されたデバイス600によって実施され得る。たとえば、メモリ608に記憶されたプロセッサ命令は、方法1500に関して以下で説明される機能のうちの1つまたは複数を実施するようにプロセッサ606を構成し得る。いくつかの態様では、方法1500は、図5に関して上記で説明されたデバイス500によって実施され得る。たとえば、メモリ/ストレージデバイス506に記憶されたプロセッサ命令は、方法1500に関して以下で説明される機能のうちの1つまたは複数を実施するように処理回路504を構成し得る。


[00113]ブロック1510において、受信機センサーは、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信し、画像は無効コードワードを含む。いくつかの態様では、ブロック1510は、図6に関して上記で説明された受光要素604によって実施される。いくつかの態様では、ブロック1510は、複合コードマスクを受信するように受光要素604を制御するプロセッサ606によって実施される。いくつかの態様では、ブロック1510は、図5に関して以下で説明される受信機センサー508によって実施される。いくつかの態様では、ブロック1510は、複合コードマスクを受信するように受信機センサー508を制御する処理回路504によって実施される。いくつかの態様では、コードマスク部分は1つまたは複数のコードワードを備え得る。いくつかの態様では、コードは、「アクティブ深度検知のための例示的なコード」に関して上記で説明された(as)特性を有する。たとえば、コードは、(テッセレーションされ得る)コードマスクプリミティブ、コードブック、サイズおよび空間解像度、コードワードパターン、デューティサイクル、輪郭解像度または完全ウィンドウ特性、(図8A〜図8Eを参照しながら説明された)対称性、エイリアシング、ならびにカーディナリティなどの特性を含み得る。いくつかの態様では、符号化されたコードワードは、データの行およびまたは列に編成され得る。いくつかの態様では、コードマスクの符号化されたコードワードは、たとえば、図11に関して上記で説明されたように、複数の基底関数と、複数の基底関数の回転バージョンとの組合せから形成される。


[00114]いくつかの態様では、有効コードワードは、コードワードのすべての可能な値をスパースに(sparsely)ポピュレートし得る。たとえば、いくつかの態様では、コードワードは、32ビットの情報を符号化するが、231個よりもはるかに少ない有効値を有し得る。したがって、いくつかの態様では、無効値をもつコードワードは、1つまたは複数の誤りを含むと決定され得る。いくつかの態様では、可能なバイナリコードワードの1%未満が、有効コードワードとしてコードマスクにおいて符号化される。


[00115]ブロック1520において、方法1500は無効コードワードを検出する。いくつかの態様では、ブロック1520は、図11を参照しながら上記で説明されたように誤り検出プロセス1150を使用して無効コードワードを検出し得る。いくつかの態様では、ブロック1520は、受信されたコードワードが複数の符号化されたコードワードに(たとえば、コードブックに)含まれるかどうかを決定し、含まれない場合、受信されたコードワードは無効であると決定する。いくつかの態様では、無効コードワードを検出することは、図9に関して上記で説明されたように、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々と比較することを備える。いくつかの態様では、比較することは、受信されたコードワードを、複数の基底関数および複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える。いくつかの態様では、比較することは、コードワードをコードブック中のエントリと比較することを備える。いくつかの態様では、ブロック1520は、プロセッサ606によってまたは処理回路504によって実施される。


[00116]ブロック1530は、無効コードワードに基づいて複数の候補コードワードを生成する。ブロック1530は、少なくとも、図9で説明されたように基底関数によって生成されたコードワードについて、図11を参照しながら上記で説明された候補生成ステップ1160および/または有効性ステップ1170を使用してコードワードを生成し得る。いくつかの態様では、これは、コードマスクに含まれる1つまたは複数の候補コードワードを生成することを含み得る。いくつかの場合には、複数の候補コードワードが、コードマスクの部分に含まれる複数のコードワードの各々について生成される。図11および図12に関して上記で説明されたように、いくつかの態様では、候補コードワードは、コードワードの検査が、誤りが候補部分中に存在しないことを示すように、コードワード中の個々のビットを摂動させることによって生成され得る。たとえば、コードワード列が8ビットを含む場合、8つの候補マスクが生成され得、各候補コードワードは、ブロック1505において受信されたコードマスクの部分からの対応するコードワードと比較されるとき、1ビットを摂動させる。いくつかの態様では、ブロック1530は、プロセッサ606または処理回路504によって実施される。


[00117]ブロック1540において、候補コードワードのうちの1つが選択される。いくつかの態様では、ブロック1540は、上記で説明された有効性検査ステップ1170および/または深度生成ステップ1180に関して上記で説明された機能のうちの1つまたは複数を実施し得る。


[00118]いくつかの態様では、候補コードワードの選択は、図12に関して上記で説明された機能のうちの1つまたは複数をも含み得る。たとえば、いくつかの態様では、各候補コードワードに関連する深度と、無効コードワードを囲む局所近傍の深度値との間の類似性測度が生成され得る。局所近傍に最も類似した候補コードワードがブロック1540において選択され得る。


[00119]いくつかの態様では、類似度は、候補コードワードの選択されたサブセットの各々に関連する深度と、無効コードワードの周りのコードワードの局所近傍に関連する深度との差に対応する。


[00120]いくつかの態様では、局所近傍に関連する深度はメジアン深度である。いくつかの態様では、それは平均深度である。


[00121]いくつかの態様では、無効コードワードの周りのコードワードの局所近傍は、無効コードワードのロケーションの1つ、2つ、3つ、4つ、5つ、6つ、7つ、8つ、9つ、10個、または11個のコードワードロケーション内のコードワードからなる。いくつかの態様では、局所近傍の範囲は、無効コードワードから対角距離内に位置するコードワードを含む。たとえば、1つ、2つ、3つ、4つ、5つ、6つ、7つ、8つ、9つ、10個、11個の対角コードワード位置のいずれか1つ内のコードワードが、局所近傍に含まれ得る。いくつかの態様では、ブロック1540は、候補コードワードを選択するプロセッサ606によって実施される。いくつかの態様では、ブロック1540は、候補コードワードを選択する処理回路504によって実施される。


[00122]ブロック1550において、選択された候補コードワードに基づく深度マップが決定される。いくつかの態様では、選択された候補コードワードは、誤りを含んでいたコードワードの位置において深度マップに含まれ得る。いくつかの態様では、選択されたコードワードのロケーションにおける深度は、図3を参照しながら上記で説明されたようにアクティブ深度検知方法に基づいて決定される。深度マップは、シーンの画像を処理し、改善するために1つまたは複数の処理ルーチンによって使用され得る。いくつかの態様では、ブロック1550は、深度マップを生成するプロセッサ606によって実施される。いくつかの態様では、ブロック1550は、深度マップを生成する処理回路504によって実施される。


[00123]ブロック1560において、深度マップに基づいてシーンのデジタル表現が生成される。いくつかの態様では、シーンのデジタル表現は、深度マップにおける深度に基づいてシーンにおける物体の深度を表したシーンの3次元表面表現である。いくつかの態様では、シーンのデジタル表現は、深度マップ深度情報(depth information the depth map)を使用して3次元物体を表すための視点(perspective)および/またはシャドーイングを使用するシーンの2次元表現である。いくつかの態様では、デジタル表現は、シーンのコンピュータグラフィック画像を生成するために使用される。いくつかの態様では、デジタル表現は、シーンの拡張現実画像を生成するために使用される。いくつかの態様では、デジタル表現は、たとえば、コンピュータ支援設計、ソリッドモデリングにおいて使用するための、または3次元プリンティングのためのシーンのソリッド表現を生成するために使用される。いくつかの態様では、ブロック1560は、プロセッサ606によってまたは処理回路504によって実施される。


[00124]ブロック1570において、シーンのデジタル表現は出力デバイスに出力される。いくつかの態様では、出力デバイスはディスプレイ、モニタ、またはプロジェクタである。ディスプレイ、モニタ、またはプロジェクタは、テレビジョンの場合のようにスタンドアロンであるか、あるいはデスクトップコンピュータ、ラップトップ、ポータブルコンピュータデバイス、ウェアラブルコンピュータ、タブレットコンピュータ、または電話の構成要素であり得る。いくつかの態様では、3次元ディスプレイまたはホログラムプロジェクタなどの出力デバイスは、3次元画像を生成する。いくつかの態様では、出力デバイスは、2次元におけるピクチャのプリンタ、または3Dプリンタなど、3次元における物体のプリンタのいずれかであり得る。いくつかの態様では、出力デバイスは、コンピュータ支援エンジニアリング設計システムなど、ソリッドまたは3次元モデリングシステムであり得る。いくつかの態様では、ブロック1570は、プロセッサ606によってまたは処理回路504によって実施される。いくつかの態様では、ブロック1560および1570は実施されないことがある。


[00125]本明細書における「第1」、「第2」などの名称を使用した要素への言及は、それらの要素の数量または順序を概括的に限定するものでないことを理解されたい。むしろ、これらの名称は、本明細書において2つまたはそれ以上の要素またはある要素の複数の事例を区別する便利な方法として使用され得る。したがって、第1の要素および第2の要素への言及は、そこで2つの要素のみが採用され得ること、または第1の要素が何らかの方法で第2の要素に先行しなければならないことを意味するものではない。また、別段に記載されていない限り、要素のセットは1つまたは複数の要素を備え得る。さらに、明細書または特許請求の範囲において使用される「A、B、またはCのうちの少なくとも1つ」という形式の用語は、「AまたはBまたはCあるいはこれらの要素の任意の組合せ」を意味する。


[00126]本明細書で使用される「決定すること」という用語は、多種多様なアクションを包含する。たとえば、「決定すること」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること(たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること)、確認することなどを含み得る。また、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ中のデータにアクセスすること)などを含み得る。また、「決定すること」は、解決すること、選択すること、選定すること、確立することなどを含み得る。


[00127]本明細書で使用される、項目のリスト「のうちの少なくとも1つ」を指す句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a−b、a−c、b−c、およびa−b−cを包含するものとする。


[00128]上記で説明された方法の様々な動作は、(1つまたは複数の)様々なハードウェアおよび/またはソフトウェア構成要素、回路、および/または(1つまたは複数の)モジュールなど、それらの動作を実施することが可能な任意の好適な手段によって実施され得る。概して、図に示されたどの動作も、その動作を実施することが可能な対応する機能的手段によって実施され得る。


[00129]本開示に関連して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ信号(FPGA)または他のプログラマブル論理デバイス(PLD)、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明された機能を実施するように設計されたそれらの任意の組合せを用いて実装または実施され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。


[00130]1つまたは複数の態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体(たとえば、有形媒体)を備え得る。


[00131]本明細書で開示された方法は、説明された方法を達成するための1つまたは複数のステップまたはアクションを備える。本方法のステップおよび/またはアクションは、特許請求の範囲から逸脱することなく、互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されていない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく変更され得る。


[00132]さらに、本明細書で説明された方法および技法を実施するためのモジュールおよび/または他の適切な手段は、適用可能な場合にユーザ端末および/または基地局によってダウンロードされ、および/または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明された方法を実施するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明された様々な方法は、ユーザ端末および/または基地局が記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピーディスクなどの物理記憶媒体など)をデバイスに結合するかまたは与えると様々な方法を得ることができるように、記憶手段によって提供され得る。その上、本明細書で説明された方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。


[00133]特許請求の範囲は、上記で示された厳密な構成および構成要素に限定されないことを理解されたい。上記で説明された方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。 以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。 [C1] 受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することと、前記画像が無効コードワードを含む、 前記無効コードワードを検出することと、 前記無効コードワードに基づいて複数の候補コードワードを生成することと、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、 前記選択された候補コードワードに基づいて前記シーンの画像のための深度マップを生成することと、 前記深度マップに基づいてシーンのデジタル表現を生成することと、 出力デバイスに前記シーンの前記デジタル表現を出力することとを備える、構造化光における誤り訂正の方法。 [C2] 前記無効コードワードを検出することは、受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを備える、C1に記載の方法。 [C3] 前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、C1に記載の方法。 [C4] 前記無効コードワードを検出することが、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較することを備える、C3に記載の方法。 [C5] 前記比較することが、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理することを備える、C4に記載の方法。 [C6] 前記複数の候補コードワードを生成することが、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備える、C1に記載の方法。 [C7] 前記複数の候補コードワードを生成することは、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させることを備える、C1に記載の方法。 [C8] 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することが、 前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択することと、 候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することと、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することとを備える、C1に記載の方法。 [C9] 前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードのコードワードの前記局所近傍が、前記無効コードワードのロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、C8に記載の方法。 [C10] 前記局所近傍に関連する前記深度がメジアン深度である、C9に記載の方法。 [C11] 複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するように構成された受信機センサーと、前記画像が無効コードワードを含む、 前記受信機センサーと通信している処理回路と、前記処理回路が、前記無効コードワードを検出することと、前記無効コードワードに基づいて複数の候補コードワードを生成することと、前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、前記深度マップに基づいてシーンのデジタル表現を生成することと、出力デバイスに前記シーンの前記デジタル表現を出力することとを行うように構成された、を備える、構造化光における誤り訂正のための装置。 [C12] 前記処理回路は、前記受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを行うようにさらに構成された、C11に記載の装置。 [C13] 前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成される、C11に記載の装置。 [C14] 前記処理回路が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するようにさらに構成された、C13に記載の装置。 [C15] 前記処理回路が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するようにさらに構成された、C13に記載の装置。 [C16] 前記処理回路が、前記無効コードワードの各要素を摂動させることと、各個々の摂動について候補コードワードを生成することとを行うようにさらに構成された、C11に記載の装置。 [C17] 前記処理回路は、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させるようにさらに構成された、C16に記載の装置。 [C18] 前記処理回路が、前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択することと、候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定することと、前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択することとを行うようにさらに構成された、C11に記載の装置。 [C19] 前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのコードワードロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、C18に記載の装置。 [C20] 前記局所近傍に関連する前記深度がメジアン深度である、C19に記載の装置。 [C21] 複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信するための手段と、前記画像が無効コードワードを含む、 前記無効コードワードを検出するための手段と、 前記無効コードワードに基づいて複数の候補コードワードを生成するための手段と、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択するための手段と、 前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成するための手段と、 前記深度マップに基づいてシーンのデジタル表現を生成するための手段と、 出力デバイスに前記シーンの前記デジタル表現を出力するための手段とを備える、構造化光における誤り訂正のための装置。 [C22] 前記受信手段が受信機センサーを備え、ここにおいて、前記無効コードワード検出手段が処理回路を備え、ここにおいて、前記候補コードワード生成手段が前記処理回路を備え、ここにおいて、前記コードワード選択手段が前記処理回路を備え、ここにおいて、前記深度マップ生成手段が前記処理回路を備え、ここにおいて、前記デジタル表現生成手段が前記処理回路を備え、ここにおいて、前記出力手段が前記処理回路を備える、C21に記載の装置。 [C23] 前記無効コードワード検出手段は、 受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定するための手段と、 前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定するための手段とを備える、C21に記載の装置。 [C24] 前記符号化されたコードワードが、複数の基底関数と、前記複数の基底関数の回転バージョンとの組合せから形成され、ここにおいて、前記無効コードワード検出手段が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々と比較するための手段を備え、ここにおいて、前記比較手段が、前記受信されたコードワードを、前記複数の基底関数および前記複数の基底関数の回転バージョンの各々に対して整合フィルタ処理するための手段を備える、C21に記載の装置。 [C25] 前記生成手段が、各個々の摂動について候補コードワードを生成するために、前記無効コードワードの各要素を個々に摂動させることを備え、ここにおいて、前記生成手段が、前記無効コードワードの少なくとも2つの要素のすべての組合せが1回摂動させられるまで、各反復について候補コードワードを生成するために、少なくとも2つの要素を反復的に摂動させることを備える、C21に記載の装置。 [C26] 前記コードワード選択手段が、 前記複数の符号化されたコードワードに含まれる前記複数の候補コードワードのサブセットを選択するための手段と、 候補コードワードの前記選択されたサブセットの各々と、前記無効コードワードの周りのコードワードの局所近傍との間の類似度を決定するための手段と、 前記無効コードワードを置き換えるために、前記局所近傍に最も類似した前記候補コードワードを選択するための手段とを備える、C21に記載の装置。 [C27] 前記類似度が、候補コードワードの前記選択されたサブセットの各々に関連する深度と、前記無効コードワードの周りのコードワードの前記局所近傍に関連する深度との差に対応し、ここにおいて、前記局所近傍に関連する前記深度がメジアン深度であり、ここにおいて、前記無効コードワードの周りのコードワードの前記局所近傍が、前記無効コードワードのロケーションの1つ、2つ、3つ、4つ、5つ、または6つのコードワードロケーション内のコードワードからなる、C26に記載の装置。 [C28] 構造化光における誤り訂正のための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、実行されたとき、 受信機センサーを介して、複数のコードワードを符号化する複合コードマスクの少なくとも一部分の構造化光画像を受信することと、前記画像が無効コードワードを含む、 前記無効コードワードを検出することと、 前記無効コードワードに基づいて複数の候補コードワードを生成することと、 前記無効コードワードを置き換えるために、前記複数の候補コードワードのうちの1つを選択することと、 前記選択された候補コードワードに基づいてシーンの画像のための深度マップを生成することと、 前記深度マップに基づいてシーンのデジタル表現を生成することと、 出力デバイスに前記シーンの前記デジタル表現を出力することとを備える方法を実施する、非一時的コンピュータ可読媒体。 [C29] 前記無効コードワードを検出することは、前記受信されたコードワードが前記複数の符号化されたコードワードに含まれるかどうかを決定することと、前記受信されたコードワードが前記複数の符号化されたワードに含まれないという決定に応答して、前記受信されたコードワードが無効であると決定することとを備える、C28に記載の非一時的コンピュータ可読媒体。 [C30] 前記複数の候補コードワードを生成することが、前記無効コードワードの各ビットを1つずつ変化させることと、ビットの各変化について候補コードワードを生成することとを備える、C28に記載の非一時的コンピュータ可読媒体。



QQ群二维码
意见反馈