JP6513887B2 - 構造化光深度マップのアウトライアの検出および補正のための方法および装置 - Google Patents

構造化光深度マップのアウトライアの検出および補正のための方法および装置 Download PDF

Info

Publication number
JP6513887B2
JP6513887B2 JP2018532358A JP2018532358A JP6513887B2 JP 6513887 B2 JP6513887 B2 JP 6513887B2 JP 2018532358 A JP2018532358 A JP 2018532358A JP 2018532358 A JP2018532358 A JP 2018532358A JP 6513887 B2 JP6513887 B2 JP 6513887B2
Authority
JP
Japan
Prior art keywords
depth
value
values
depth value
quantile
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018532358A
Other languages
English (en)
Other versions
JP2019501390A (ja
Inventor
リンドナー、アルブレヒト・ヨハネス
アタナソフ、カリン・ミトコフ
ベラール、スティーブン・マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2019501390A publication Critical patent/JP2019501390A/ja
Application granted granted Critical
Publication of JP6513887B2 publication Critical patent/JP6513887B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/92Dynamic range modification of images or parts thereof based on global image properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/90Dynamic range modification of images or parts thereof
    • G06T5/94Dynamic range modification of images or parts thereof based on local image properties, e.g. for local contrast enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20004Adaptive image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20182Noise reduction or smoothing in the temporal domain; Spatio-temporal filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

[0001]本開示は、一般に、構造化光深度マップの矛盾(inconsistencies)を検出および補正するためのシステムおよび方法に関する。
[0002]構造化光システムは、深度マップを生成するために、光パターン、あるいは(or)空間コード、を送信および受信する。オブジェクトが送信機および受信機から遠く離れているほど、出ていく投影と入ってくる投影とがより平行になるので、受信された投影は、(1つまたは複数の)受信機においてのその元の位置から近くなる。逆に、オブジェクトが送信機および受信機に近いほど、受信された投影は、(1つまたは複数の)受信機においてのその元の位置から遠くなる。したがって、受信コードワード位置と送信コードワード位置との間の差により、シーンまたはオブジェクトの深度が与えられる。構造化光システムは、シーンの3次元表現または深度マップを生成するために、これらの相対深度を使用する。深度マップの抽出は、カメラの品質向上からコンピュータビジョンにわたる多くのアプリケーションにとって重要である。
[0003]シーンにおける反射する表面または透明な表面が、課題を提示し得る。例えば、反射は、光を、受信機から遠ざけてか、あるいはちょうどそのオプティクスへと(right into its optics)反射させ得る。両方のケースにおいて、構造化光システムのダイナミックレンジは、超過され得る。透明な表面または半透明な表面(semi-transparent surfaces)はまた、困難のみならず、送信されたコードワードの適正な検出を損ない得る二重反射および相互反射を引き起す。また、肌、大理石、蝋、植物および人体組織のような、半透明の物質(translucent materials)は、表面下散乱(sub-surface scattering)を引き起こし得る。このコンテキストにおいて、深度マップの正確な生成を提供するために、深度マップにおけるアウトライア値(outlier values)を検出および補正する必要がある。
[0004]本開示のサンプル態様の概要が以下に続く。便宜上、本開示の1つまたは複数の態様は、ここでは単に「いくつかの態様」と呼ばれ得る。
[0005]ここで開示されている方法および装置またはデバイスは、いくつかの態様をそれぞれ有し、それらのうちの何れも、単独でその望ましい属性を担うものではない。例えば、以下に続く特許請求の範囲によって表される、本開示の範囲を限定することなく、そのより顕著な特徴が次に簡潔に説明される。
[0006]一態様によると、深度マップにおけるエラーを補正するための装置が提供される。装置は、投影視野(projected field-of-view)において、複数のコードワードを投影するように構成された送信機を含み得る。装置は、投影視野における表面からの投影されたコードワードの反射を受信するように構成された受信機を含み得る。装置は、投影されたコードワードの受信された反射に基づいて、深度マップを生成することと、深度マップを複数のセグメントに分割することと、複数のセグメントの各々における下位分位数の深度値(lower quantile depth value)および上位分位数の深度値(upper quantile depth value)を決定することと、(i)複数のセグメントの下位分位数の深度値の最小値(a minimum of lower quantile depth value)と、(ii)複数のセグメントの上位分位数の深度値の最大値(a maximum of upper quantile depth value)とに基づいて、グローバル深度範囲を生成することと、深度マップにおけるアウトライア深度値を識別することと、深度マップにおける情報に基づいて、アウトライア深度値を補正することとを行うように構成されたエラー補正回路を含み得る。
[0007]いくつかの実施形態では、上位分位数の深度値および下位分位数の深度値は、(i)ヒストグラム分位数計算(histogram quantile calculation)と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、これら計算の各々は、各セグメントにおける深度値の範囲(a range of depth values)と、深度値の範囲の連続したサブセットとに基づき、連続したサブセットは、セグメントにおける深度値の密度を表す。いくつかの実施形態では、上記範囲深度値の連続したサブセットは、下位分位数の深度値および上位分位数の深度値を備え、下位分位数の深度値は、連続したサブセット内の最低の深度値であり、上位分位数は、連続したサブセットにおける最高の深度値である。いくつかの実施形態では、複数のコードワードを投影することは、コードマスクを通して光りを伝搬させることを含み、コードマスクは、複数のシンボルを有する。いくつかの実施形態では、深度マップにおけるアウトライア深度値を識別することは、グローバル深度範囲外にある、深度マップにおける深度値を検出することを備える。いくつかの実施形態では、複数のセグメントは、深度マップのオーバーラップしている領域を備える。
[0008]いくつかの実施形態では、アウトライア深度値を補正することは、アウトライア深度値に隣接する複数の深度値を決定することと、複数の深度値は、グローバル深度範囲内にあり、複数の深度値に基づいて、第1の深度値を計算することと、アウトライア深度値を第1の深度値に置き換えることとを含む。いくつかの実施形態では、第1の深度値は、複数の深度値の平均である。いくつかの実施形態では、アウトライア深度値を補正することは、アウトライア深度値に隣接する複数の深度値を決定することと、複数の深度値は、グローバル深度範囲内にあり、隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、水平勾配および垂直勾配のうちの少なくとも1つに基づいて、第1の深度値を計算することと、アウトライア深度値を第1の深度値に置き換えることとを含む。いくつかの実施形態では、複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である(user configurable)。
[009]別の態様によると、深度マップにおけるエラーを補正する、深度マッピングシステムによって動作可能な方法が提供される。方法は、送信機を介して、投影視野において、複数のコードワードを投影することをさらに含み得る。方法は、受信機において、投影視野における表面からの投影されたコードワードの反射を受信することをさらに含み得る。方法は、エラー補正回路を介して、投影されたコードワードの受信された反射に基づいて、深度マップを生成することをさらに含み得る。方法は、エラー補正回路を介して、深度マップを複数のセグメントに分割することをさらに含み得る。方法は、エラー補正回路を介して、複数のセグメントの各々における下位分位数の深度値および上位分位数の深度値を決定することをさらに含み得る。方法は、エラー補正回路を介して、(i)複数のセグメントの下位分位数の深度値の最小値と、(ii)複数のセグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成することをさらに含み得る。方法は、エラー補正回路を介して、深度マップにおけるアウトライア深度値を識別することをさらに含み得る。方法は、エラー補正回路を介して、深度マップにおける情報に基づいて、アウトライア深度値を補正することをさらに含み得る。
[0010]いくつかの実施形態では、方法は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて、上位分位数の深度値および下位分位数の深度値を決定することを含み得、これら計算の各々は、各セグメントにおける深度値の範囲と、深度値の範囲の連続したサブセットとに基づき、連続したサブセットは、セグメントにおける深度値の密度を表す。いくつかの実施形態では、上記範囲深度値の連続したサブセットは、下位分位数の深度値および上位分位数の深度値を備え、下位分位数の深度値は、連続したサブセット内の最低の深度値であり、上位分位数は、連続したサブセットにおける最高の深度値である。いくつかの実施形態では、複数のコードワードを投影することは、コードマスクを通して光りを伝搬させることを備え、コードマスクは、複数のシンボルを有する。いくつかの実施形態では、深度マップにおけるアウトライア深度値を識別することは、グローバル深度範囲外にある、深度マップにおける深度値を検出することを備える。いくつかの実施形態では、複数のセグメントは、深度マップのオーバーラップしている領域を備える。
[0011]いくつかの実施形態では、アウトライア深度値を補正することは、アウトライア深度値に隣接する複数の深度値を決定することと、複数の深度値は、グローバル深度範囲内にあり、複数の深度値に基づいて、第1の深度値を計算することと、アウトライア深度値を第1の深度値に置き換えることとを含む。いくつかの実施形態では、第1の深度値は、複数の深度値の平均である。いくつかの実施形態では、アウトライア深度値を補正することは、アウトライア深度値に隣接する複数の深度値を決定することと、複数の深度値は、グローバル深度範囲内にあり、隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、水平勾配および垂直勾配のうちの少なくとも1つに基づいて、第1の深度値を計算することと、アウトライア深度値を第1の深度値に置き換えることとを含み得る。いくつかの実施形態では、複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である。
[0012]別の態様によると、深度マップにおけるエラーを補正するための装置が提供される。装置は、投影視野において、複数のコードワードを投影するための手段を含み得る。装置は、投影視野における表面からの投影されたコードワードの反射を受信するための手段を含み得る。装置は、投影されたコードワードの受信された反射に基づいて、深度マップを生成するための手段を含み得る。装置は、深度マップを複数のセグメントに分割するための手段を含み得る。装置は、複数のセグメントの各々における下位分位数の深度値および上位分位数の深度値を決定するための手段を含み得る。装置は、(i)複数のセグメントの下位分位数の深度値の最小値と、(ii)複数のセグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成するための手段を含み得る。装置は、深度マップにおけるアウトライア深度値を識別するための手段を含み得る。装置は、深度マップにおける情報に基づいて、アウトライア深度値を補正するための手段を含み得る。
[0013]別の態様によると、デバイスによって実行されたとき、デバイスに、送信機を介して、投影視野において、複数のコードワードを投影することを行わせる命令を備えた非一時的なコンピュータ可読媒体が提供される。デバイスはまた、受信機において、投影視野における表面からの投影されたコードワードの反射を受信することを行わされ得る。デバイスはまた、エラー補正システムを介して、投影されたコードワードの受信された反射に基づいて、深度マップを生成することを行わされ得る。デバイスはまた、エラー補正システムを介して、深度マップを複数のセグメントに分割することを行わされ得る。デバイスはまた、エラー補正システムを介して、複数のセグメントの各々における下位分位数の深度値および上位分位数の深度値を決定することを行わされ得る。デバイスはまた、エラー補正システムを介して、(i)複数のセグメントの下位分位数の深度値の最小値と、(ii)複数のセグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成することを行わされ得る。デバイスはまた、エラー補正システムを介して、深度マップにおけるアウトライア深度値を識別することを行わされ得る。デバイスはまた、エラー補正システムを介して、深度マップにおける情報に基づいて、アウトライア深度値を補正することを行わされ得る。
[0014]様々な特徴、性質、および利点は、同様の参照符号が全体を通して同様のものを指す図面と共に考慮されるとき、以下に示される詳細な説明から明らかになるであろう。
[0015]図1は、シーンを照射し(illuminate)、3次元情報を生成するための深度情報を取得するために、既知のパターンが使用される、検知システムの例を例示する。 [0016]図2は、エラーを含む、例となる深度マップを例示する。 [0017]図3は、複合コードマスク(composite code mask)を生成し、および/またはそのようなコードマスクを投影するように構成され得る、例となる送信機デバイスのブロック図を例示する。 [0018]図4は、複合コードマスクから深度情報を取得するように構成され得る、例となる受信機デバイスのブロック図を例示する。 [0019]図5は、ここで開示されるエラー補正方法のうちの1つまたは複数を実行するように構成された装置の一実施形態のブロック図を例示する。 [0020]図6は、複数のセグメントに分割されている、例となる深度マップとともに、各セグメントについての深度の有効範囲を決定するために生成されているヒストグラムを例示する。 [0021]図7は、グローバル最小深度値およびグローバル最大深度値の決定を有する(with)、例となる深度マップ、およびアウトライア深度値が補正された後の結果として生じる深度マップを例示する。 [0022]図8は、深度マップにおけるアウトライア深度値を識別および補正するための方法の例を例示するフローチャートである。 [0023]図9は、深度マップにおける少なくとも1つのアウトライア深度値を識別および補正するための装置の例を例示するブロック図である。
発明の詳細な説明
[0024]以下の詳細な説明は、本発明のある特定の実施形態に向けられる。しかしながら、本発明は、多数の異なる方法で具現化され得る。ここでの態様が多種多様な形態で具現化され得ること、および、ここで開示されている任意の特定の構造、機能、または両方が、単に代表的であるにすぎないことは明らかであるべきである。ここでの教示に基づいて、当業者は、ここで開示される態様が、その他任意の態様とは独立してインプリメントされ得ること、およびこれらの態様のうちの2つ以上が、様々な方法で組み合わされ得ることを理解されたい。例えば、ここで示される任意の数の態様を使用して、装置がインプリメントされ得、または方法が実施され得る。加えて、ここで示される態様のうちの1つまたは複数に加えて、あるいはそれら以外の他の構造、機能、または構造および機能を使用して、そのような装置がインプリメントされ得、またはそのような方法が実施され得る。
[0025]ここで説明されるシステムおよび方法は、アクティブ空間検知システムをホストする様々な異なるコンピューティングデバイス上でインプリメントされ得る。これらは、専用イメージングシステム、モバイルフォン、タブレット、専用カメラ、ウェアラブルコンピュータ、パーソナルコンピュータ、写真ブースまたはキオスク、携帯情報端末、ウルトラモバイルパーソナルコンピュータ、およびモバイルインターネットデバイスを含む。それらは、汎用または専用のコンピューティングシステム環境または構成を使用し得る。本発明との使用に適切であり得る、コンピューティングシステム、環境、および/または構成の例は、それに限定されるものではないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブル消費者電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのうちの任意のものを含む分散コンピューティング環境、および同様のものを含む。
[0026]本開示の態様によると、構造化光アクティブ検知システム100が、深度マップを生成するために、空間コードを送信および受信する。空間コードは、バイナリシンボルのような、複数のシンボルから構成され得る。空間コードの数が増大するにつれて、各空間コードについてのシンボル数が増大し、シンボル当たりの帯域幅が増大し、各シンボルを表示するために必要とされる空間が増大し、深度マスクの解像度(resolution)が減少する。空間コードのサイズが空間的に増大するにつれて、深度マスクの解像度は減少する。したがって、各フレーム内でより頻繁にコードを繰り返すことを可能にすることによって、使用される一意の空間コードの数を低減させる必要がある。
[0027]送信機からオブジェクトへのコードの投影の送信された光線は、送信機/受信機とオブジェクトとの間の距離が増大するにつれて、送信された光線によって照射されたオブジェクトの表面から反射された、受信された(入ってくる)コードとより平行になる。したがって、オブジェクトから反射され、受信機または複数の受信機によって受信されるコードは、オブジェクトがより遠く離れているとき、それらの(投影されたコード画像における)元の位置により近くなる。逆に、オブジェクトが送信機および受信機に近くなるほど、受信されたコードは、それらが送信されたときの(投影されたコード画像における)コードの元の位置から遠くなる。受信コードワード位置と送信コードワード位置との間の差は、シーンまたはオブジェクトの1つまたは複数の深度を決定するために使用され得る。構造化光アクティブ検知システム100は、シーンの3次元表現または深度マップを生成するために、このような深度情報を使用し得る。シーンまたはオブジェクトの深度マップ生成は、例えば、カメラの品質向上、コンピュータビジョン、等を含む、多くのアプリケーションにとって重要であり得る。
[0028]上記で説明されたように、構造化光システムは、シーンにおける少なくとも1つのオブジェクト上に既知のパターン(例えば、コードワード)を投影し(説明を簡単にするために、シーン上に投影されていると表現されることもある)、受信された画像を処理して、深度マップを取得する。必然的に、スペックル(speckle)または他のノイズ源により、受信されたパターンのある特定の領域は、復号されない。これらのコード化されていない領域は、深度情報を含まない、深度マップにおける穴(holes)を生じ、したがって、マップのユーティリティを劣化させる。ノイズはまた、正確な深度値を提供しない可能性がある、または誤って(accidentally)正確な深度値を提供する可能性がある、復号されたパターンのある特定の領域を生じ得る。このような領域は、深度情報を含まない、または不正確な深度情報を含む、深度マップにおける穴または干渉を生じ、したがって、マップのユーティリティを劣化させる。
[0029]いくつかの実施形態では、開示されるシステムおよび方法は、隣接するコード(neighboring codes)に基づいて、送信された最も可能性の高いコードを決定するように試みることによって、送信された最も可能性の高いコードワード(参照を簡単にするために、「コード」と呼ばれることもある)を決定し得る。
[0030]図1は、既知のパターンが、シーンを照射し、2次元(2D」)画像および/または情報から、3次元(「3D」)情報を生成するための深度情報を取得するために使用される、アクティブ検知システム100の例を例示する。ここで説明される1つまたは複数の態様および/または特徴は、このような例示的なアクティブ検知システム100内でインプリメントされ得る。図1に例示されるシステムは、送信機102および受信機108を含む。送信機102は、オブジェクトまたはシーン106上にコードワードの画像104を投影するために、コードマスク410を通してライトフィールド(light field)を投影する。ここでは、説明を明確にするために、「シーン」は、使用されるコンテキストに応じて、シーンおよびオブジェクトのいずれかまたは両方を呼ぶために使用され得る。例えば、シーンは、単一の対象のオブジェクト(object of interest)、または複数の対象のオブジェクトを含み得る。受信機108が、反射された画像110とその中のコードワードとをキャプチャする。この例は、どのようにコードマスク410のセクション112が、シーン106の表面(例えば、投影されたセクション116)上に(セクション114として)投影されるかを例示する。その後、投影されたセクション116は、キャプチャされたセグメント118として受信機108によってキャプチャされ得る。セクション112は、一意に識別され得るコードワード120として使用され得る。したがって、このようにして、一意のコードワードを用いてシーン106をカバーすることによって、シーン106のセクション/部分は、反射されたコードワードによって識別され得、この情報は、検知デバイスからシーンにおけるオブジェクトまでの距離(深度)を検知するために使用され得る。
[0031]受信機108によってキャプチャされた画像から、複数のセグメントがシーン106上で識別され得る。各キャプチャされたセグメント118は、受信機108において一意に識別可能であり得、他のセグメントに対するそのロケーションは、投影された画像104の既知のパターンから確定される(ascertained)。各セグメント/部分/ウィンドウからのコードの識別は、(例えば、歪みに対処するための)パターンセグメント化と、知覚されたセグメント/部分/ウィンドウを(1つまたは複数の)対応するコードに復号することとを伴い得る。加えて、三角形分割(triangulation)が、配向(orientation)および/または深度を確定するために、各キャプチャされたセグメント/部分/ウィンドウ上に適用され得る。複数のこのようなセグメント/部分/ウィンドウは、キャプチャされた画像パターンをつなぎ合わせる(stitch together)ために組み合わされ得る。このようにして、深度マップ107が、シーン106のために生成され得る。
[0032]図2は、無効な値201を含むコードワードと、誤って有効な値202を含むコードワードとを含む、例となる深度マップ200を例示する。上述されたように、ノイズは、検出されたコードにおけるビットを変えることがあり得、これは、無効な値201を含むコードワードと、誤って有効な値202を含むコードワードともたらし得、それによって、視覚的に不快な深度マップおよびあまり有用でない可能性があるものを作り出す。
アクティブ深度検知のためのコード
[0033]構造化光パターンは、コードマスク410を通して光を照らすことによって、シーン上に投影され得る。コードマスク410を通して投影される光は、1つまたは複数のテッセレートされた(tessellated)コードマスク410プリミティブを含み得る。各コードマスク410プリミティブは、空間コードの配列を含み得る。コードブックまたはデータ構造が、コードのセットを含み得る。空間コード、コードマスク410、およびコードマスク410プリミティブは、基底関数を使用して生成され得る。基底関数の周期性は、(ゴースト画像を除去し、製造を簡略化するための)エルミート対称性のアグリゲートパターンと、(1コードワード当たりの最小電力を保証するための)最小デューティサイクルと、(最適な輪郭解像度(contour resolution)および高解像度のためのコードパッキングのための)完全ウィンドウプロパティ(perfect window property)と、(オブジェクト境界に対する改善された検出のための)ランダム化されたシフティング(randomized shifting)と、に対する要件を満たすように選択され得る。受信機は、受信されたパターンを復調する、復号する、およびそれにおけるエラーを補正するとき(when demodulating, decoding, and correcting errors in received patterns)、これら制約に準拠するように意図される設計の属性および/またはコードブックを利用し得る。
[0034]空間コードのサイズおよび対応する解像度は、コードマスク410上の空間コードの物理的空間範囲に対応する。サイズは、各コードワードを表す行列中の行および列の数に対応し得る。コードワードが小さいほど、検出され得るオブジェクトは小さくなる。例えば、シャツ上のボタンとシャツの生地との間の深度差を検出および決定するために、コードワードは、ボタンのサイズよりも大きくないものであるべきである。一実施形態では、各空間コードは、4つの行と4つの列とを占有し得る。一実施形態では、コードは、例えば、3×3、4×4、4×5、5×5、6×4、または10×10の行および列を占有するために、より多いまたはより少ない行および列(行×列)を占有し得る。
[0035]空間コードの空間表現は、どのように各コードワード要素が、コードマスク410上でパターニングされ、その後、シーン上に投影されるかに対応する。例えば、各コードワード要素は、1つまたは複数のドット、1つまたは複数のラインセグメント、1つまたは複数のグリッド、何らかの他の形状、またはこれらの何らかの組合せを使用して表され得る。
[0036]空間コードの「デューティサイクル」は、コードワードにおけるアサートされた(asserted)ビットまたは部分(例えば、「1(1s)」)の数と、アサートされていない(un-asserted)ビットまたは部分(例えば、「0(0s)」)の数の比率に対応する。コードワードを含むコード化光パターンがシーン上に投影されるとき、「1」の値を有する各ビットまたは部分は、エネルギー(例えば、「光エネルギー」)を有し得るが、「0」の値を有する各ビットは、エネルギーを欠いている可能性がある。コードワードが容易に検出可能であるためには、コードワードは、十分なエネルギーを有するべきである。低エネルギーのコードワードは、検出することがより困難であり得、よりノイズの影響を受けやすい可能性がある。例えば、4×4コードワードは、コードワードにおけるビットのうちの8つ以上が「1」である場合、50%以上のデューティサイクルを有する。個々のコードワードのための最小(または最大)デューティサイクル制約、または、例えば、コードブック中のコードのセットのための平均デューティサイクルのような、デューティサイクル制約が存在し得る。
[0037]コードの「輪郭解像度」または「完全ウィンドウ」特性は、コードワードが、例えば、1ビット回転など、ある量だけシフトされるとき、結果として得られるデータが別のコードワードを表すことを示す。コードワードがシフトされる量は、シフト量と呼ばれ得る。高輪郭解像度をもつコードは、構造化光深度検知システムが、比較的小さいオブジェクト境界を認識し、異なるオブジェクトについての認識連続性(recognition continuity)を提供することを可能にし得る。行の次元における1および列の次元における2のシフト量は、行の次元に沿って右に1ビット位置、および列の次元に沿って下に2ビット位置分のシフトに対応し得る。コードワードの高輪郭解像度セットは、受信された画像上でウィンドウを1行ずつまたは1列ずつ移動し、各ウィンドウ位置における深度を決定することを可能にする。これは、受信された画像の第3の行および第3の列を中心とする開始点において5×5ウィンドウを使用し、この5×5ウィンドウを、第3の行から最後から3番目の行まで、および第3の列から最後から3番目の列まで、各行、列ロケーション(each row, column location)に移動させての深度の決定を可能にする。コードワードがオーバーラップするので、ウィンドウは、(例えば、シャツ上のボタンなどの)決定されるべきオブジェクト深度の解像度に基づいてサイズ決定され得る。
[0038]コードの対称性は、コードマスクまたはコードブックプリミティブが、エルミート対称性を有することを示し得、これは、非エルミート対称コードブックプリミティブまたはパターンを使用することと比較して、いくつかの利点を提供し得る。エルミート対称性をもつパターンは、XおよびY(行および列)軸の両方に沿って、「反転される(flipped)」すなわち対称である。
[0039]コードマスクまたはコードマスク410プリミティブのエイリアシング(aliasing)特性は、同じである2つのコードワード間の距離に対応する。光学パターンが、テッセレートされたコードブックプリミティブを含むとき、およびプリミティブにおける各コードブックが一意であるとき、エイリアシング距離は、コードブックプリミティブのサイズに基づき得る。したがって、エイリアシング距離は、コードブックプリミティブの各コードワードがコードブックプリミティブの各他のコードワードとは異なるべきであること、およびコードブックプリミティブが全体として一意であることを示す一意性の基準(uniqueness criterion)を表し得る。エイリアシング距離は、1つまたは複数の受信機デバイスに既知であり、コードワード復調中にエイリアシングを防ぐために使用され得る。コードマスク410のカーディナリティ(cardinality)は、コードブックプリミティブにおける一意のコードの数に対応する。
(送信機デバイス)
[0040]図3は、複合コードマスクを生成し、および/またはそのような複合コードマスクを投影するように構成され得る送信機デバイスの例を例示するブロック図である。送信機デバイス302は、メモリ/記憶デバイス306、画像投影デバイス308、および/または有形媒体309に結合された処理回路304(またはプロセッサ)を含み得る。
[0041]第1の例では、送信機デバイス302は、有形媒体309を含むように結合され得る。有形媒体は、複合コードマスク314を定義し、含み、および/または記憶し得る。複合コードマスクは、キャリアレイヤと組み合わされたコードレイヤを含み得る。コードレイヤは、複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードを含み得る。キャリアレイヤは、コードレイヤとは別個でありかつ独立して確認可能(independently ascertainable)であり得、投影時の歪みにロバストである複数の基準オブジェクトを含み得る。コードレイヤおよびキャリアレイヤのうちの少なくとも1つは、投影より前に合成点像分布関数(synthetic point spread function)によって事前成形され(pre-shaped)得る。
[0042]第2の例では、処理回路304は、コードレイヤ生成器/セレクタ316、キャリアレイヤ生成器/セレクタ318、複合コードマスク生成器/セレクタ320、および/または事前成形回路322を含み得る。コードレイヤ生成器/セレクタ316は、予め記憶されたコードレイヤ310を選択し得、および/またはそのようなコードレイヤを生成し得る。キャリアレイヤ生成器/セレクタ318は、予め記憶されたキャリアレイヤ312を選択し得、および/またはそのようなキャリアレイヤを生成し得る。複合コードマスク生成器/セレクタは、予め記憶された複合コードマスク314を選択し得、および/または複合コードマスク314を生成するために、コードレイヤ310とキャリアレイヤ312とを組み合わせ得る。オプションとして、処理回路304は、それを通じて複合コードマスクが投影されることになるチャネルにおける予期される歪みを補償するために、複合コードマスク314、コードレイヤ310、および/またはキャリアレイヤ312を事前成形する事前成形回路を含み得る。
[0043]いくつかのインプリメンテーションでは、複数の異なるコードレイヤおよび/またはキャリアレイヤが利用可能であり得、ここで、各そのようなキャリアレイヤまたはコードレイヤは、異なる状態のために(例えば、異なる距離にあるオブジェクト、または送信機デバイスと受信機デバイスとの間の異なる構成のために)構成され得る。例えば、第1の距離または範囲内のオブジェクトのために、第2の距離または範囲にあるオブジェクトのためのものとは異なる組合せのコードレイヤおよびキャリアレイヤが使用され得、ここで、第2の距離は、第1の距離よりも大きい。別の例では、異なる組合せのコードレイヤおよびキャリアレイヤが、送信機デバイスと受信機デバイスとの相対配向に応じて使用され得る。
[0044]画像投影デバイス308は、対象のオブジェクト上に、生成された/選択された複合コードマスクを投影するように働き得る。例えば、レーザーまたは他の光源が、(例えば、投影チャネルを通じて)対象のオブジェクト上に複合コードマスクを投影するために使用され得る。一例では、複合コードマスク314は、赤外スペクトルにおいて投影され得、したがって、それは肉眼では見えない可能性がある。代わりに、赤外スペクトル範囲内の受信機センサが、このような投影された複合コードマスクをキャプチャするために使用され得る。
(受信機デバイス動作)
[0045]図4は、オブジェクトから反射された複合コードマスクを受信し、複合コードマスクから深度情報を決定するように構成された受信機デバイス402の例を例示するブロック図である。受信機デバイス402は、メモリ/記憶デバイス406と、受信機センサ408(例えば、画像キャプチャデバイス)とに結合された処理回路404を含み得る。いくつかの実施形態では、受信機センサ408は、例えば、カメラのような、画像キャプチャデバイスである。
[0046]受信機センサ408は、オブジェクトの表面上に投影された複合コードマスクの少なくとも一部分を取得するように構成され得る。例えば、受信機センサは、ターゲットオブジェクトの表面上に投影された複合コードマスクの少なくとも一部分の画像をキャプチャし得る。複合コードマスクは、(a)複数のシンボルによって定義された一意に識別可能な空間的にコード化されたコードワードのコードレイヤと、(b)コードレイヤとは別個でありかつ独立して確認可能であり、投影時の歪みにロバストである複数の基準オブジェクトを含むキャリアレイヤとによって定義され得る。コードレイヤおよびキャリアレイヤのうちの少なくとも1つは、投影より前に合成点像分布関数によって事前成形されていることがある。一例では、受信機センサ408は、赤外スペクトルにおける複合コードマスクをキャプチャし得る。
[0047]引き続き図4を参照すると、いくつかの実施形態では、コードレイヤは、n1×n2のバイナリシンボルを備え得、ここで、n1およびn2は、2よりも大きい整数である。複合コードマスクにおいて、各シンボルは、基準オブジェクトとは別個の、2つのグレースケール階調のうちの1つでのラインセグメントであり得る。コードレイヤのシンボルは、少なくとも1つの次元において千鳥配列され得る。キャリアレイヤ基準オブジェクトは、ガードインターバルをその間に有する複数の等間隔に離間した基準ストライプを備え得る。基準ストライプおよびガードインターバルは、異なる幅であり得る。ガードインターバル幅に対する、各基準ストライプの幅は、送信機デバイスおよび/または受信機デバイスの予期される光拡散によって決定され得る。
[0048]処理回路404は、基準ストライプ検出器回路/モジュール412、歪み調整回路/モジュール414、コードワード識別器回路/モジュール416、深度検出回路/モジュール418、および/または深度マップ生成回路/モジュール420を含み得る。
[0049]基準ストライプ検出器回路/モジュール412は、複合コードマスクの部分内の基準ストライプを検出するように構成され得る。歪み調整回路/モジュール414は、基準ストライプの実際の配向に対する、基準ストライプの予期される配向に基づいて、複合コードマスクの部分の歪みを調整するように構成され得る。コードワード識別器回路/モジュール416は、複合コードマスクの部分内で定義されたウィンドウからコードワードを取得するように構成され得る。深度検出回路/モジュール418は、(a)複合コードマスクの単一の投影と、(b)既知の基準コードマスクに対するウィンドウの変位とに基づいて、ウィンドウに対応するターゲットオブジェクトの表面部分についての深度情報を取得するように構成され得る。
[0050]深度マップ生成回路/モジュール420は、歪んでいない複合コードマスクの部分内の異なるオーバーラップしているウィンドウとして検出された複数のコードワードに基づいて、オブジェクトについての深度マップを組み立てるように構成され得る。
[0051]一例では、コードレイヤおよびキャリアレイヤのうち少なくとも1つの事前成形は、成形されていない複合コードマスクと比較して、より多くの電力が受信機センサによって知覚されるように、複合コードマスクの投影中の電力効率を増大させる。
[0052]一事例では、使用される合成点像分布関数は、(a)複合コードマスクがそれを通じて投影されることになる予期されるチャネル状態、(b)複合コードマスクが投影される表面の特性、および/または(c)投影された複合コードマスクを受信することになる受信機センサの感度のうち少なくとも1つに基づいて、複数の点像分布関数から選択され得る。別の例では、合成点像分布関数は、(a)複合コードマスクを投影することになるプロジェクタに対する第1のチャネル応答、および/または(b)複合コードマスクを投影することになるプロジェクタから、複合コードマスクを受信することになる受信機センサまでの経路に対する第2のチャネル応答のうち少なくとも1つに基づいて、複数の点像分布関数から選択され得る。
(エラー検出デバイス)
[0053]図5は、ここで開示されるエラー補正方法のうちの1つまたは複数を実行するように構成された装置の実施形態を例示するブロック図である。例となる深度マッピングデバイス500が、光エミッタ502、受光素子504、プロセッサ506、およびメモリ508を含む。光エミッタ502、受光素子504、プロセッサ506、およびメモリ508は、バス510を介して動作可能に接続され得る。
[0054]メモリ508は、ここで説明される方法の1つまたは複数の機能を実行するようにプロセッサ506を構成する命令を記憶し得る。例えば、メモリ508に記憶された命令は、ターゲットオブジェクトを照射するために、構造化光をコードワードとして符号化する光を放射するように光エミッタ502を制御するようにプロセッサ506を構成し得る。メモリ508に記憶された命令は、プロセッサ506に、ターゲットオブジェクトから反射する光を受信し、反射光において符号化されたデータを生成するように受光素子504を制御することをさらに行わせ得る。
[0055]図6は、どのように深度マップにおけるエラーが検出され得るかを例示する。エラー補正前の例となる深度マップ200が示される。無効な値201を含むコードワードは、例えば、深度マップ200の右端にあるような、暗い、陰影のある領域として見られ得る。誤って有効な値202を含むコードワードは、しばしば、周囲の領域とは明らかに異なる色または陰影である、深度マップにおける色違いのスポットまたは領域(off-color spots or regions)の散在として見られ得る。
[0056]ここで説明されるエラー補正システムおよび方法は、無効なコードが受信されたとき、または誤って有効なコードが受信されたときに、エラーを検出し得る。エラーの補正は、以下で説明される方法のうちの任意のものに基づいて、有効なコードワードを決定することによって実行され得る。1つの例となる実施形態では、エラー補正システムは、深度マップ200を複数のセグメント(例えば、601a、602a、603a、および604a)に分割し得る。複数のセグメントは、セグメントごとにサイズが異なり得、または複数のセグメントは、サイズの均一性を呈し得る(take on size uniformity)。セグメントのサイズは、ユーザにより設定可能であるか、または投影された画像104とその中のコードマスク410のサイズに依存し得る。複数のセグメントにおける各セグメントのサイズに影響を及ぼし得る他の変数は、コードマスク410中の各一意のコードワード120のサイズ、コードマスク410中の一意のコードワード120の数、深度マップ200の解像度、投影された画像104のサイズ、反射された画像110のサイズ、等である。一例では、深度マップは、投影された画像104のサイズに基づいて、いくつかのセグメントに分割され得、これらセグメントは、複数の粗大な、オーバーラップしている領域である。いくつかのセグメントは、いかなるオーバーラップしている特徴も有していない場合があり、厳密に隣接する(to be strictly adjacent)ようにか、またはオーバーラップしている特徴と、隣接する特徴との組合せになるように分割され得るので、この例は、限定的であると見なされるべきでないことに留意されたい。
[0057]引き続き図6を参照すると、エラー補正システムは、各セグメントにおけるコードワードの数を決定し、それらの対応する深度値に従って、複数のインターバルにおいてその数のコードワードを分類し得る(categorize the number of codewords in intervals according to their corresponding depth value)。エラー補正システムは、各セグメントについての最高密度の深度値を表すインターバル(a range of intervals)の範囲をさらに決定し得る。これは、ヒストグラム分位数、平均および分散、密度分布、または2つの境界(bounds)を推定するその他任意の適切な方法を使用して達成され得る。一例では、プロセッサ506は、セグメント601aの受光素子504によって受信されるコードワードを分析し、そのセグメントについての深度値の範囲(a range of depth values)を決定し得る。例えば、セグメント601aについての深度値の密度分布を計算する際に、プロセッサ506は、複数のインターバル−すなわち、セグメント601aにおける深度値によって表される値の範囲−を決定し、その後、セグメント601aに含まれる全ての深度値のうち、いくつの深度値が各インターバルに入るかを決定し得る。これは、セグメント601aのために作成されたヒストグラム601として図6に例示されている。セグメント601aについての深度値の密度分布を表すヒストグラム601は、x軸およびy軸を含む。x軸は、特定のセグメントにおいて見られる深度値の複数のインターバルを示し得、一方、y軸は、各インターバルに関連付けられた深度値の数を示し得、すなわち、換言すれば、その特定のセグメントについての深度値の分布の密度である。
[0058]ヒストグラム601を参照すると、深度値601dの最大密度が、x軸上のおおよそ315と335のインターバル値間で生じる。x軸およびy軸上で与えられる値は、例となるスケールを表し、限定的であると見なされるべきでないことに留意されたい。同様に、ヒストグラム602は、深度値602dの最大密度が、x軸上のおおよそ310と335のインターバル値間で生じることを示す。ヒストグラム603は、深度値603dの最大密度が、x軸上のおおよそ310と340のインターバル値間で生じることを示し、ヒストグラム604は、深度値604dの最大密度が、x軸上のおおよそ340と355のインターバル値間で生じることを示す。したがって、ヒストグラムは、各セグメントについてプロセッサ506によって形成される(formulated)データの例となる例示を提供する。所与のセグメントの深度値は、所与のセグメントの統計的分析を適用するとき、不変であることに留意されたい。しかしながら、1つの例となる実施形態では、セグメントにおけるこれら値は、固定のまたは設定可能な重み関数によって重み付けされ得る。例えば、統計的分析を提供することを目的として、これら深度値は、所与のセグメントにおけるそれらのロケーション、深度マップ200におけるそれらのロケーションに依存して、またはユーザにより設定可能な重み関数に従って、変化し得る(may vary)。
[0059]セグメント601aを参照すると、いったんプロセッサ506が、セグメント601aの深度値を編成して(organized)、最高密度のインターバルを決定すると、プロセッサは、最小インターバル601bおよび最大インターバル601cを計算し得る。なお例としてセグメント601aを使用すると、最小インターバル601bは、315の深度値になると決定され得、最大インターバル601cは、335の深度値になると決定され得る。セグメント602aを参照すると、いったんプロセッサ506が、セグメント602aの深度値を編成して、最高密度のインターバルを決定すると、プロセッサは、最小インターバル602bおよび最大インターバル602cを計算し得る。なお例としてセグメント602aを使用すると、最小インターバル602bは、310の深度値になると決定され得、最大インターバル602cは、335の深度値になると決定され得る。セグメント603aを参照すると、いったんプロセッサ506が、セグメント603aの深度値を編成して、最高密度のインターバルを決定すると、プロセッサは、最小インターバル603bおよび最大インターバル603cを計算し得る。なお例としてセグメント603aを使用すると、最小インターバル603bは、310の深度値になると決定され得、最大インターバル603cは、340の深度値になると決定され得る。セグメント601aを参照すると、いったんプロセッサ506が、セグメント601aの深度値を編成して、最高密度のインターバルを決定すると、プロセッサは、最小インターバル601bおよび最大インターバル601cを計算し得る。なお例としてセグメント601aを使用すると、最小インターバル601bは、340の深度値になると決定され得、最大インターバル601cは、355の深度値になると決定され得る。
[0060]例としてヒストグラム601を使用すると、最小インターバル601bおよび最大インターバル601cを決定することは、ユーザにより設定可能な特徴であり得る。例えば、ユーザは、固定のまたは設定可能な分位数に深度値601dの範囲を狭める制約をインプリメントし得、所与のセグメントにおいて、あるパーセンテージの深度値(a percentage of the depth values)を含む値において、最小インターバル601bおよび最大インターバル601cを配置する。例えば、固定の分位数は、所与のセグメントの深度値のより多くの90%(90% of more of the depth values)を備えるインターバル値に、最小インターバル601bおよび最大インターバル601cを制限し得る。換言すれば、残りの深度値のアウトライア10%を備えるインターバルは、最小インターバル601bと最大インターバル601cの間の深度範囲に含まれないことになる。別の例では、ユーザは、同様の方法で深度値の範囲を広げ得るか、あるいは、各セグメントについての制限値を手動で入力し得る。このようにして、ユーザは、1つの最小インターバル601b限界と1つの最大インターバル601c限界とを入力し得、または、ユーザは、セグメント601aについての複数の最小インターバル限界と最大インターバル限界とを入力し得る。
[0061]なお例となるセグメント601aを参照すると、プロセッサ506は、深度値601dの範囲外にある、セグメント601aのエリアにおける深度値を、隣接するコードワードが、値の範囲内にある場合、隣接するコードワードの深度値に変更することによって、最小インターバル601bと最大インターバル601cの範囲内の深度値601dの範囲に、セグメント601aの深度値を制限し得る。例えば、セグメント601aは、プロセッサ506によって決定される深度値601dの範囲外の深度値を備え得る。これらの値は、無効な値201または誤って有効な値202を含み得る。セグメント601aにおける深度値が、最小インターバル601bおよび最大インターバル601cによって制限される深度値601dの範囲外にあると決定された場合、プロセッサ506は、この値が無効であると決定し得る。プロセッサ506は、無効な値に隣接する深度値を参照し(look to)、隣接する値が、深度値601dの範囲内にあるかどうかを決定し得る。隣接する深度値が、深度値601dの範囲内にあると決定された場合、プロセッサ506は、隣接する深度値の平均を決定し、その平均値を無効な深度値に割り当て、それを置き換え得る。別の例では、深度値601dの範囲外にある、セグメント601aの深度値は、ユーザによって特定の値に手動で変更され得る。
[0062]図7は、補正された深度マップ700を生成するために、セグメントの各々について決定されるインターバル値を使用する、深度マップ200全体のグローバルエラー補正の方法を例示する。好ましい実施形態では、グローバルエラー補正の方法は、上記で説明されたように、セグメントレベルで深度値を補正することなく、深度マップ200に適用され得ることに留意されたい。図7は、グローバルエラー補正前の例となる深度マップ200、ならびに、例となる深度マップ200から取られた2つの別個のセグメントからの2つの例となるヒストグラム(703および704)を含む。第1のヒストグラム703は、所与のセグメントについての深度値の密度分布を表す。第1のヒストグラム703の例では、その2つの領域が、深度値703dの最高密度を有して示される。第1の領域は、おおよそ310から320までの深度値の最高密度を有し、第2の領域は、おおよそ325から340までの深度値の最高密度を有する。この例では、第1のヒストグラム703に関連付けられたセグメントは、深度マップ200のその他全てのセグメントのうちの最低の深度値インターバル703eを含むと決定される。
[0063]第2のヒストグラム704は、所与のセグメントについての深度値の密度分布を表す。第2のヒストグラム704の例では、その2つの領域が、深度値704dの最高密度を有して示される。第1の領域は、おおよそ340から350までの深度値の最高密度を有し、第2の領域は、おおよそ350から355までの深度値の最高密度を有する。この例では、第2のヒストグラム704に関連付けられたセグメントは、深度マップ200のその他全てのセグメントのうちの最高の深度値インターバル704eを含むと決定される。
[0064]インターバル値(703eおよび704e)を使用するグローバルエラー補正は、深度マップ200におけるアウトライア深度値を補正するために使用され得る。一例では、プロセッサ506は、上記で説明されたように、深度マップ200を複数のセグメントに分割し、各セグメントについての深度値の範囲と最小および最大のインターバルとを決定し得る。その後、プロセッサ506は、全てのセグメントの最大および最小のインターバルを比較し、複数のセグメントにおいて見られる最低の深度値インターバル703eと、複数のセグメントにおいて見られる最高の深度値インターバル704eとを決定し得る。その後、プロセッサは、有効な深度範囲として、最低の深度値インターバル703eと最高の深度値インターバル704eとの間に入る深度値の範囲を使用して、この範囲外にある、深度マップ200における無効な深度値の位置を突き止め(locate)得る。
[0065]深度マップ200における無効およびアウトライア深度値は、様々な技法のうちの任意の1つを使用して補正され得る。プロセッサ506は、無効な深度値を、有効である隣接する深度値に変更し得る。プロセッサ506は、無効な深度値の周囲にある深度値の有効性を決定し得る。周囲の深度値の有効性を決定すると、プロセッサは、無効な深度値を、有効な隣接する深度値の補間に基づいて、それを新しい値で置き換えることによって補正し得る。補間の方法は、周囲の深度値を平均すること、パターンを決定するためにパターン認識ソフトウェアを使用し、パターンを維持するために無効な深度値を補正すること、またはその他任意の補間の方法を含み得る。例えば、いくつかの実施形態では、補正されるべきアウトライア深度値ごとに、深度マップ200全体またはセグメント内のN個(例えば、10個)の最も近い有効な深度値が決定され得、N個の深度値の(例えば、距離による)加重平均が、それぞれのアウトライアのための新しい深度値として計算され得る。例えば、(d0,...,d9)が、アウトライア深度値Pに対する10個の最も近い有効な深度値の値であり、(D0,...,D9)が、(距離による昇順での)これらの深度値からアウトライア深度値Pまでの距離であり、
である場合には、加重平均(w)は、
である。
加重平均は、アウトライア深度値Pを置き換えるために使用され得る。一実施形態では、アウトライア深度値を置き換えるために、8個の最も近い隣接するもの(d0...d7)が使用され得る。例えば、8個の最も近い隣接する深度値は、2個の水平に隣接するものと、2個の垂直に隣接するものと、4個の角(corner)に隣接するものとを含み得る。Nは、深度マップにおける深度値のロケーションに依存して、動的な数になり得る。例えば、深度マップの隅(corner)における深度値は、深度マップの中央における深度値よりも小さいN値を有することになる。別の例では、N値は、深度マップの隅におけるアウトライア深度値についても同じままであり得、このケースでは、隣接する深度値は、アウトライア深度値に直接隣接していない深度値を含み得る。Nはまた、ユーザにより設定可能な数であり得、アウトライア深度値に最も近い8個の深度値よりも多いまたは少ない深度値を含むように構成され得る。
[0066]別の例として、いくつかの実施形態では、勾配充填が(gradient fill)、アウトライア深度値を補正するために使用され得る。例えば、プロセッサ506は、アウトライア深度値の周囲にある有効な深度値のエリアを考慮し得、有効な深度値に対して、深度値の上昇または下降の傾向を示す方向性の値を割り当て得る(may assign a directional value to the valid depth values indicating a trend of rising or falling depth values)。この傾向に基づいて、プロセッサ506は、アウトライア深度値を置き換えるための深度値を推定するように構成され得る。いくつかの実施形態では、低周波数の深度/視差充填技法(low frequency depth/disparity fill in technique)が使用され得る。例えば、有効なデータを使用して平面d(u,v)=au+bv+cにフィットする(fits)技法が使用され得、ここで、(u,v)は、深度値の座標である。これは、その置換え深度値をau+bv+cに設定することによって、アウトライア深度値(u,v)を補正する。平面以外の他の形状が、いくつかの実施形態では、画素を置き換えるためのモデルとして使用され得ることに留意されたい。画素を補正するための他の方法が、他の実施形態において使用され得る。
[0067]図8は、深度マップ107におけるアウトライア深度値を検出および補正するプロセス800の例を例示するフローチャートである。ブロック802において、プロセス800は、送信機から、投影視野において、複数のコードワードを投影する。いくつかのインプリメンテーションでは、ブロック802の機能は、図1に例示される送信機102または図3中の送信機デバイス302によって実行され得る。ブロック804において、プロセス800は、視野における表面からの投影されたコードワードの反射を受信する。いくつかのインプリメンテーションでは、ブロック804の機能は、図1に例示される受信機108または図4に例示される受信機デバイス402によって実行され得る。ブロック806において、プロセス800は、投影されたコードワードの受信された反射に基づいて、深度マップを生成する。いくつかのインプリメンテーションでは、ブロック806の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。ブロック808において、プロセス800は、深度マップを複数のセグメントに分割する。いくつかのインプリメンテーションでは、ブロック808の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。ブロック810において、プロセス800は、複数のセグメントの各々における下位分位数の深度値および上位分位数の深度値を決定する。いくつかのインプリメンテーションでは、ブロック810の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。ブロック812において、プロセス800は、(i)複数のセグメントの下位分位数の深度値の最小値と、(ii)複数のセグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成する。いくつかのインプリメンテーションでは、ブロック812の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。ブロック814において、プロセス800は、深度マップにおけるアウトライア深度値を識別する。いくつかのインプリメンテーションでは、ブロック814の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。ブロック816において、プロセス800は、アウトライア深度値を補正する。いくつかのインプリメンテーションでは、ブロック816の機能は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。
[0068]図9は、深度マップ107におけるアウトライア深度値を検出および補正するための装置900の例を例示するブロック図である。装置900は、投影視野において、複数のコードワードを投影するための構成要素902を含み得る。いくつかのインプリメンテーションでは、投影するための構成要素902は、図1に例示される送信機102または図3中の送信機デバイス302によって実行され得る。装置900は、投影視野における表面からの投影されたコードワードの反射を受信するための構成要素904を含み得る。いくつかのインプリメンテーションでは、受信するための構成要素904は、図1に例示される受信機108または図4に例示される受信機デバイス402であり得る。装置900は、投影されたコードワードの受信された反射に基づいて、深度マップを生成するための構成要素906を含み得る。いくつかのインプリメンテーションでは、生成するための構成要素906は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。装置900は、深度マップを複数のセグメントに分割するための構成要素908を含み得る。いくつかのインプリメンテーションでは、分割するための構成要素908は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。装置900は、複数のセグメントの各々における下位分位数の深度値および上位分位数の深度値を決定するための構成要素910を含み得る。いくつかのインプリメンテーションでは、決定するための構成要素910は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。装置900は、(i)複数のセグメントの下位分位数の深度値のうちの最小値と、(ii)複数のセグメントの上位分位数の深度値のうちの最大値とに基づいて、グローバル深度範囲を生成するための構成要素912を含み得る。いくつかのインプリメンテーションでは、生成するための構成要素912は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。装置900は、深度マップにおけるアウトライア深度値を識別するための構成要素914を含み得る。いくつかのインプリメンテーションでは、識別するための構成要素914は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。装置900は、深度マップにおける情報に基づいて、アウトライア深度値を補正するための構成要素916を含み得る。いくつかのインプリメンテーションでは、補正するための構成要素916は、図4に例示される処理回路404または図5の深度マッピングデバイス500によって実行され得る。
[0069]図面に例示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能に再構成および/または組み合わされ、あるいはいくつかの構成要素、ステップ、または機能において具現化され得る。追加の要素、構成要素、ステップ、および/または機能もまた、ここで開示される新規の特徴から逸脱することなく追加され得る。図面に例示される装置、デバイス、および/または構成要素は、図面で説明される方法、特徴、またはステップのうちの1つまたは複数を実行するように構成され得る。ここで説明された新規のアルゴリズムはまた、効率的にソフトウェアでインプリメントされ、および/またはハードウェアに埋め込まれ得る。
[0070]また、実施形態は、フローチャート、流れ図、構造図、またはブロック図として図示されるプロセスとして説明され得ることに留意されたい。フローチャートは、逐次プロセスとして動作を説明し得るが、動作の多くは並行してまたは同時並行に実行され得る。加えて、動作の順序は並べ換えられ得る。プロセスは、その動作が完了したときに終了される。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム、等に対応し得る。プロセスが関数に対応するとき、その終了は、この関数が呼び出し関数または主関数に戻ることに対応する。
[0071]さらに、記憶媒体は、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体、プロセッサ可読媒体、および/またはコンピュータ可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表し得る。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、それに限定されるものではないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、および(1つまたは複数の)命令および/またはデータを記憶、包含、または搬送することが可能な様々な他の媒体のような非一時的な媒体を含み得る。したがって、ここで説明された様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」に記憶され、1つまたは複数のプロセッサ、機械、および/またはデバイスによって実行され得る命令および/またはデータによって完全にまたは部分的にインプリメントされ得る。
[0072]さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはこれらの任意の組合せによってインプリメントされ得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードでインプリメントされるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または(1つまたは複数の)他の記憶装置のような機械可読媒体に記憶され得る。プロセッサは、必要なタスクを実行し得る。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラムステートメントの任意の組合せを表し得る。コードセグメントは、情報、データ、引き数、パラメータ、またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引き数、パラメータ、データ、等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、等を含む、任意の適切な手段を介して渡される、転送される、または送信されることができる。
[0073]ここで開示された例に関連して説明された様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理構成要素、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいはここで説明された機能を実行するように設計されたこれらの任意の組合せを用いてインプリメントまたは実行され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシン(state machine)であり得る。プロセッサはまた、コンピューティング構成要素の組合せ、例えば、DSPとマイクロプロセッサの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、またはその他任意のこのような構成としてインプリメントされ得る。
[0074]ここで開示された例に関連して説明された方法またはアルゴリズムは、処理ユニット、プログラミング命令、またはその他の指示の形で、直接ハードウェアにおいて、プロセッサによって実行可能なソフトウェアモジュールにおいて、または両方の組合せにおいて具現化され得、単一のデバイス内に含まれるかまたは複数のデバイスにわたって分散され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROM(登録商標)メモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または当該技術分野において周知であるその他任意の形態の記憶媒体内に存在し得る。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また、記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体は、プロセッサと一体化され得る。
[0075]当業者であれば、ここで開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとしてインプリメントされ得ることを認識するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点から上記で説明されてきた。このような機能が、ハードウェアとしてインプリメントされるか、あるいはソフトウェアとしてインプリメントされるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。
[0076]ここで説明された本発明の様々な特徴は、本発明から逸脱することなく異なるシステムにおいてインプリメントされ得る。前述の実施形態は、単なる例にすぎず、本発明を限定するものとして解釈されるべきではないことに留意されたい。実施形態の説明は、例示的であり、特許請求の範囲を限定しないように意図される。したがって、本教示は、他のタイプの装置に容易に適用され得、多くの代替、修正、および変形が当業者にとって明らかであろう。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1] 深度マップにおけるエラーを補正するための装置であって、前記装置は、
投影視野において、複数のコードワードを投影するように構成された送信機と、
前記投影視野における表面からの前記投影されたコードワードの反射を受信するように構成された受信機と、
前記投影されたコードワードの前記受信された反射に基づいて、前記深度マップを生成することと、
前記深度マップを複数のセグメントに分割することと、
前記セグメントの各々における下位分位数の深度値および上位分位数の深度値を決定することと、
(i)前記セグメントの下位分位数の深度値の最小値と、(ii)前記セグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成することと、
前記深度マップにおけるアウトライア深度値を識別することと、
前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正することと
を行うように構成されたエラー補正回路と
を備える、装置。
[C2] 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、C1に記載の装置。
[C3] 前記範囲深度値の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、C2に記載の装置。
[C4] 前記送信機は、コードマスクを通して光りを伝搬させることを介して、前記複数のコードワードを投影し、前記コードマスクは、複数のシンボルを有する、C1に記載の装置。
[C5] 前記エラー補正回路は、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出することを介して、前記深度マップにおける前記アウトライア深度値を識別する、C1に記載の装置。
[C6] 前記複数のセグメントは、前記深度マップのオーバーラップしている領域を備える、C1に記載の装置。
[C7] 前記エラー補正回路は、
前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
前記複数の深度値に基づいて、第1の深度値を計算することと、
前記アウトライア深度値を前記第1の深度値に置き換えることと
を介して、前記アウトライア深度値を補正する、C1に記載の装置。
[C8] 前記第1の深度値は、前記複数の深度値の平均である、C7に記載の装置。
[C9] 前記エラー補正回路は、
前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、
前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算することと、
前記アウトライア深度値を前記第1の深度値に置き換えることと
を介して、前記アウトライア深度値を補正する、C1に記載の装置。
[C10] 前記複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である、C1に記載の装置。
[C11] 深度マップにおけるエラーを補正するための、深度マッピングシステムによって動作可能な方法であって、
送信機を介して、投影視野において、複数のコードワードを投影することと、
受信機において、前記投影視野における表面からの前記投影されたコードワードの反射を受信することと、
エラー補正回路を介して、前記投影されたコードワードの前記受信された反射に基づいて、前記深度マップを生成することと、
前記エラー補正回路を介して、前記深度マップを複数のセグメントに分割することと、
前記エラー補正回路を介して、前記セグメントの各々における下位分位数の深度値および上位分位数の深度値を決定することと、
前記エラー補正回路を介して、(i)前記セグメントの下位分位数の深度値の最小値と、(ii)前記セグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成することと、
前記エラー補正回路を介して、前記深度マップにおけるアウトライア深度値を識別することと、
前記エラー補正回路を介して、前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正することと
を備える方法。
[C12] 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、C11に記載の方法。
[C13] 前記範囲深度値の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、C12に記載の方法。
[C14] 前記複数のコードワードを投影することは、コードマスクを通して光りを伝搬させることを備え、前記コードマスクは、複数のシンボルを有する、C11に記載の方法。
[C15] 前記深度マップにおける前記アウトライア深度値を識別することは、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出することを備える、C11に記載の方法。
[C16] 前記複数のセグメントは、前記深度マップのオーバーラップしている領域を備える、C11に記載の方法。
[C17] 前記アウトライア深度値を補正することは、
前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
前記複数の深度値に基づいて、第1の深度値を計算することと、
前記アウトライア深度値を前記第1の深度値に置き換えることと
を備える、C11に記載の方法。
[C18] 前記第1の深度値は、前記複数の深度値の平均である、C17に記載の方法。
[C19] 前記アウトライア深度値を補正することは、
前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、
前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算することと、
前記アウトライア深度値を前記第1の深度値に置き換えることと
を備える、C11に記載の方法。
[C20] 前記複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である、C11に記載の方法。
[C21] 深度マップにおけるエラーを補正するための装置であって、
投影視野において、複数のコードワードを投影するための手段と、
前記投影視野における表面からの前記投影されたコードワードの反射を受信するための手段と、
前記投影されたコードワードの前記受信された反射に基づいて、前記深度マップを生成するための手段と、
前記深度マップを複数のセグメントに分割するための手段と、
前記セグメントの各々における下位分位数の深度値および上位分位数の深度値を決定するための手段と、
(i)前記セグメントの下位分位数の深度値の最小値と、(ii)前記セグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成するための手段と、
前記深度マップにおけるアウトライア深度値を識別するための手段と、
前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正するための手段と
を備える装置。
[C22] 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、C21に記載の装置。
[C23] 前記範囲深度値の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、C22に記載の装置。
[C24] 前記複数のコードワードを投影するための前記手段は、コードマスクを通して光りを伝搬させるための手段を備え、前記コードマスクは、複数のシンボルを有する、C21に記載の装置。
[C25] 前記深度マップにおける前記アウトライア深度値を識別するための前記手段は、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出するための手段を備える、C21に記載の装置。
[C26] 前記アウトライア深度値を補正するための手段は、
前記アウトライア深度値に隣接する複数の深度値を決定するための手段と、前記複数の深度値は、前記グローバル深度範囲内にある、
前記複数の深度値に基づいて、第1の深度値を計算するための手段と、
前記アウトライア深度値を前記第1の深度値に置き換えるための手段と
を備える、C21に記載の装置。
[C27] 前記アウトライア深度値を補正するための手段は、
前記アウトライア深度値に隣接する複数の深度値を決定するための手段と、前記複数の深度値は、前記グローバル深度範囲内にある、
前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算するための手段と、
前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算するための手段と、
前記アウトライア深度値を前記第1の深度値に置き換えるための手段と
を備える、C21に記載の装置。
[C28] デバイスによって実行されたとき、前記デバイスに、
送信機を介して、投影視野において、複数のコードワードを投影することと、
受信機において、前記投影視野における表面からの前記投影されたコードワードの反射を受信することと、
エラー補正システムを介して、前記投影されたコードワードの前記受信された反射に基づいて、深度マップを生成することと、
前記エラー補正システムを介して、前記深度マップを複数のセグメントに分割することと、
前記エラー補正システムを介して、前記セグメントの各々における下位分位数の深度値および上位分位数の深度値を決定することと、
前記エラー補正システムを介して、(i)前記セグメントの下位分位数の深度値の最小値と、(ii)前記セグメントの上位分位数の深度値の最大値とに基づいて、グローバル深度範囲を生成することと、
前記エラー補正システムを介して、前記深度マップにおけるアウトライア深度値を識別することと、
前記エラー補正システムを介して、前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正することと
を行わせる命令を備えた非一時的なコンピュータ可読媒体。
[C29] 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、C28に記載の非一時的なコンピュータ可読媒体。
[C30] 前記範囲深度値の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、C29に記載の非一時的なコンピュータ可読媒体。

Claims (39)

  1. 視野において、複数のコードワードを投影するように構成された送信機と、
    前記視野における表面からの前記投影されたコードワードの各々の反射を受信するように構成された受信機と、
    前記受信された反射に基づいて、深度マップを生成することと、各反射は、対応する深度値を有する、
    前記深度マップの複数のセグメントを決定することと、各セグメントは、いくつかの前記反射を備える、
    各セグメントにおける下位分位数の深度値および上位分位数の深度値を決定することと、
    各セグメントにおける前記下位分位数の深度値と前記上位分位数の深度値とに基づいて、前記深度マップのためのグローバル深度範囲を生成することと
    を行うように構成されたプロセッサと
    を備える装置。
  2. 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、請求項1に記載の装置。
  3. 前記深度値の範囲の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、請求項2に記載の装置。
  4. 前記送信機は、コードマスクを通して光りを伝搬させることを介して、前記複数のコードワードを投影し、前記コードマスクは、複数のシンボルを有する、請求項1に記載の装置。
  5. 前記プロセッサは、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出することを介して、前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定する、請求項1に記載の装置。
  6. 前記複数のセグメントは、前記深度マップのオーバーラップしている領域を備える、請求項1に記載の装置。
  7. 前記複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である、請求項1に記載の装置。
  8. 前記プロセッサは、前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定するようにさらに構成される、請求項1に記載の装置。
  9. 前記プロセッサは、
    前記深度マップにおけるアウトライア深度値を識別することと、
    前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正することと
    を行うようにさらに構成される、請求項8に記載の装置。
  10. 前記プロセッサは、
    前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記複数の深度値に基づいて、第1の深度値を計算することと、
    前記アウトライア深度値を前記第1の深度値に置き換えることと
    を介して、前記アウトライア深度値を補正する、請求項9に記載の装置。
  11. 前記第1の深度値は、前記複数の深度値の平均である、請求項10に記載の装置。
  12. 前記プロセッサは、
    前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、
    前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算することと、
    前記アウトライア深度値を前記第1の深度値に置き換えることと
    を介して、前記アウトライア深度値を補正する、請求項に記載の装置。
  13. 前記グローバル深度範囲は、前記セグメントの最低の分位数の深度値に基づく最小値と、前記セグメントの前記上位分位数の深度値に基づく最大値とを有する、請求項1に記載の装置。
  14. 送信機を介して、視野において、複数のコードワードを投影することと、
    受信機において、前記視野における表面からの前記投影されたコードワードの各々の反射を受信することと、
    プロセッサを介して、前記受信された反射に基づいて、深度マップを生成することと、各反射は、対応する深度値を有する、
    前記プロセッサを介して、前記深度マップの複数のセグメントを決定することと、各セグメントは、いくつかの前記反射を備える、
    前記プロセッサを介して、各セグメントにおける下位分位数の深度値および上位分位数の深度値を決定することと、
    前記プロセッサを介して、各セグメントにおける前記下位分位数の深度値と前記上位分位数の深度値とに基づいて、前記深度マップのためのグローバル深度範囲を生成することと
    を備える方法。
  15. 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、請求項14に記載の方法。
  16. 前記深度値の範囲の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、請求項15に記載の方法。
  17. 前記複数のコードワードを投影することは、コードマスクを通して光りを伝搬させることを備え、前記コードマスクは、複数のシンボルを有する、請求項14に記載の方法。
  18. 前記複数のセグメントは、前記深度マップのオーバーラップしている領域を備える、請求項14に記載の方法。
  19. 前記複数のセグメントにおける各セグメントのサイズは、ユーザにより設定可能である、請求項14に記載の方法。
  20. 前記プロセッサを介して、前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定することをさらに備える、請求項14に記載の方法。
  21. 前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定することは、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出することを備える、請求項20に記載の方法。
  22. 前記プロセッサを介して、前記深度マップにおけるアウトライア深度値を識別することと、前記深度マップにおける情報に基づいて、アウトライア深度値を補正することとをさらに備える、請求項20に記載の方法。
  23. 前記アウトライア深度値を補正することは、
    前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記複数の深度値に基づいて、第1の深度値を計算することと、
    前記アウトライア深度値を前記第1の深度値に置き換えることと
    を備える、請求項22に記載の方法。
  24. 前記第1の深度値は、前記複数の深度値の平均である、請求項23に記載の方法。
  25. 前記アウトライア深度値を補正することは、
    前記アウトライア深度値に隣接する複数の深度値を決定することと、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算することと、
    前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算することと、
    前記アウトライア深度値を前記第1の深度値に置き換えることと
    を備える、請求項22に記載の方法。
  26. 前記グローバル深度範囲は、前記セグメントの最低の分位数の深度値に基づく最小値と、前記セグメントの前記上位分位数の深度値に基づく最大値とを有する、請求項14に記載の方法。
  27. 視野において、複数のコードワードを投影するための手段と、
    前記視野における表面からの前記投影されたコードワードの各々の反射を受信するための手段と、
    前記受信された反射に基づいて、深度マップを生成するための手段と、各反射は、対応する深度値を有する、
    前記深度マップの複数のセグメントを決定するための手段と、各セグメントは、いくつかの前記反射を備える、
    各セグメントにおける下位分位数の深度値および上位分位数の深度値を決定するための手段と、
    各セグメントにおける前記下位分位数の深度値と前記上位分位数の深度値とに基づいて、前記深度マップのためのグローバル深度範囲を生成するための手段と
    を備える装置。
  28. 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、請求項27に記載の装置。
  29. 前記深度値の範囲の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、請求項28に記載の装置。
  30. 前記複数のコードワードを投影するための前記手段は、コードマスクを通して光りを伝搬させるための手段を備え、前記コードマスクは、複数のシンボルを有する、請求項27に記載の装置。
  31. 前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定するための手段をさらに備える、請求項27に記載の装置。
  32. 前記グローバル深度範囲外にある所与の深度値が、前記深度マップにおいて存在するかどうかを決定するための前記手段は、前記グローバル深度範囲外にある、前記深度マップにおける深度値を検出するための手段を備える、請求項31に記載の装置。
  33. 前記深度マップにおけるアウトライア深度値を識別するための手段と、前記深度マップにおける情報に基づいて、前記アウトライア深度値を補正するための手段とをさらに備える、請求項31に記載の装置。
  34. 前記アウトライア深度値を補正するための前記手段は、
    前記アウトライア深度値に隣接する複数の深度値を決定するための手段と、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記複数の深度値に基づいて、第1の深度値を計算するための手段と、
    前記アウトライア深度値を前記第1の深度値に置き換えるための手段と
    を備える、請求項33に記載の装置。
  35. 前記アウトライア深度値を補正するための前記手段は、
    前記アウトライア深度値に隣接する複数の深度値を決定するための手段と、前記複数の深度値は、前記グローバル深度範囲内にある、
    前記隣接する深度値の水平勾配および垂直勾配のうちの少なくとも1つを計算するための手段と、
    前記水平勾配および前記垂直勾配のうちの前記少なくとも1つに基づいて、第1の深度値を計算するための手段と、
    前記アウトライア深度値を前記第1の深度値に置き換えるための手段と
    を備える、請求項33に記載の装置。
  36. 前記グローバル深度範囲は、前記セグメントの最低の分位数の深度値に基づく最小値と、前記セグメントの前記上位分位数の深度値に基づく最大値とを有する、請求項27に記載の装置。
  37. デバイスによって実行されたとき、前記デバイスに、
    送信機を介して、視野において、複数のコードワードを投影することと、
    受信機において、前記視野における表面からの前記投影されたコードワードの各々の反射を受信することと、
    エラー補正システムを介して、前記受信された反射に基づいて、深度マップを生成することと、各反射は、対応する深度値を有する、
    前記エラー補正システムを介して、前記深度マップの複数のセグメントを決定することと、各セグメントは、いくつかの前記反射を備える、
    前記エラー補正システムを介して、各セグメントにおける下位分位数の深度値および上位分位数の深度値を決定することと、
    前記エラー補正システムを介して、各セグメントにおける前記下位分位数の深度値と前記上位分位数の深度値とに基づいて、前記深度マップのためのグローバル深度範囲を生成することと
    を行わせる命令を備えた非一時的なコンピュータ可読媒体。
  38. 前記上位分位数の深度値および前記下位分位数の深度値は、(i)ヒストグラム分位数計算と、(ii)平均および分散計算と、のうちの少なくとも1つに基づいて決定され、前記計算の各々は、各セグメントにおける深度値の範囲と、前記深度値の範囲の連続したサブセットとに基づき、前記連続したサブセットは、前記セグメントにおける深度値の密度を表す、請求項37に記載の非一時的なコンピュータ可読媒体。
  39. 前記深度値の範囲の前記連続したサブセットは、前記下位分位数の深度値および前記上位分位数の深度値を備え、前記下位分位数の深度値は、前記連続したサブセット内の最低の深度値であり、前記上位分位数は、前記連続したサブセットにおける最高の深度値である、請求項38に記載の非一時的なコンピュータ可読媒体。
JP2018532358A 2015-12-22 2016-11-30 構造化光深度マップのアウトライアの検出および補正のための方法および装置 Active JP6513887B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562387377P 2015-12-22 2015-12-22
US62/387,377 2015-12-22
US15/069,751 2016-03-14
US15/069,751 US9996933B2 (en) 2015-12-22 2016-03-14 Methods and apparatus for outlier detection and correction of structured light depth maps
PCT/US2016/064119 WO2017112375A1 (en) 2015-12-22 2016-11-30 Methods and apparatus for outlier detection and correction of structured light depth maps

Publications (2)

Publication Number Publication Date
JP2019501390A JP2019501390A (ja) 2019-01-17
JP6513887B2 true JP6513887B2 (ja) 2019-05-15

Family

ID=59066269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018532358A Active JP6513887B2 (ja) 2015-12-22 2016-11-30 構造化光深度マップのアウトライアの検出および補正のための方法および装置

Country Status (7)

Country Link
US (1) US9996933B2 (ja)
EP (1) EP3394827A1 (ja)
JP (1) JP6513887B2 (ja)
KR (1) KR101950658B1 (ja)
CN (1) CN108369729B (ja)
BR (1) BR112018012574A2 (ja)
WO (1) WO2017112375A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069725B2 (en) 2011-08-19 2015-06-30 Hartford Steam Boiler Inspection & Insurance Company Dynamic outlier bias reduction system and method
CA3116974A1 (en) 2014-04-11 2015-10-15 Hartford Steam Boiler Inspection And Insurance Company Improving future reliability prediction based on system operational and performance data modelling
US10445861B2 (en) * 2017-02-14 2019-10-15 Qualcomm Incorporated Refinement of structured light depth maps using RGB color data
US10552970B2 (en) 2018-01-12 2020-02-04 Qualcomm Incorporated Efficient guide filter for depth refinement
CN109118533B (zh) * 2018-08-30 2021-03-02 歌尔光学科技有限公司 深度信息处理方法、装置和设备
US11636292B2 (en) 2018-09-28 2023-04-25 Hartford Steam Boiler Inspection And Insurance Company Dynamic outlier bias reduction system and method
CN109756662B (zh) * 2018-11-14 2023-06-13 深圳大学 基于dll延迟锁相环的深度信息校正方法以及深度信息校正装置
CN111448591B (zh) * 2018-11-16 2021-05-18 北京嘀嘀无限科技发展有限公司 不良光照条件下用于定位车辆的***和方法
US10510155B1 (en) * 2019-06-11 2019-12-17 Mujin, Inc. Method and processing system for updating a first image generated by a first camera based on a second image generated by a second camera
US11416998B2 (en) 2019-07-30 2022-08-16 Microsoft Technology Licensing, Llc Pixel classification to reduce depth-estimation error
US11615348B2 (en) 2019-09-18 2023-03-28 Hartford Steam Boiler Inspection And Insurance Company Computer-based systems, computing components and computing objects configured to implement dynamic outlier bias reduction in machine learning models
WO2021055847A1 (en) 2019-09-18 2021-03-25 Hartford Steam Boiler Inspection And Insurance Company Computer-based systems, computing components and computing objects configured to implement dynamic outlier bias reduction in machine learning models
US11328177B2 (en) 2019-09-18 2022-05-10 Hartford Steam Boiler Inspection And Insurance Company Computer-based systems, computing components and computing objects configured to implement dynamic outlier bias reduction in machine learning models

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2184713A1 (en) * 2008-11-04 2010-05-12 Koninklijke Philips Electronics N.V. Method and device for generating a depth map
US20110032341A1 (en) * 2009-08-04 2011-02-10 Ignatov Artem Konstantinovich Method and system to transform stereo content
US8970672B2 (en) * 2010-05-28 2015-03-03 Qualcomm Incorporated Three-dimensional image processing
US8933927B2 (en) * 2010-09-02 2015-01-13 Samsung Electronics Co., Ltd. Display system with image conversion mechanism and method of operation thereof
US8711206B2 (en) 2011-01-31 2014-04-29 Microsoft Corporation Mobile camera localization using depth maps
EP2757789A4 (en) * 2011-09-16 2016-01-20 Konica Minolta Inc IMAGE PROCESSING SYSTEM, IMAGE PROCESSING METHOD AND PICTURE PROCESSING PROGRAM
US8873835B2 (en) 2011-11-30 2014-10-28 Adobe Systems Incorporated Methods and apparatus for correcting disparity maps using statistical analysis on local neighborhoods
US9207070B2 (en) * 2012-05-24 2015-12-08 Qualcomm Incorporated Transmission of affine-invariant spatial mask for active depth sensing
US10368053B2 (en) * 2012-11-14 2019-07-30 Qualcomm Incorporated Structured light active depth sensing systems combining multiple images to compensate for differences in reflectivity and/or absorption
US10230934B2 (en) 2013-06-14 2019-03-12 Microsoft Tehcnology Licensing, Llc Depth map correction using lookup tables
WO2014209268A1 (en) 2013-06-24 2014-12-31 Intel Corporation Error detecting and correcting structured light patterns
CN103400366B (zh) 2013-07-03 2016-04-13 西安电子科技大学 基于条纹结构光的动态场景深度获取方法
CN104424649B (zh) * 2013-08-21 2017-09-26 株式会社理光 检测运动物体的方法和***
CN104574342B (zh) * 2013-10-14 2017-06-23 株式会社理光 视差深度图像的噪声识别方法和噪声识别装置
KR102130123B1 (ko) * 2013-10-31 2020-07-03 삼성전자주식회사 다시점 영상 디스플레이 장치 및 그 제어 방법
JP6660313B2 (ja) * 2014-06-30 2020-03-11 ベンタナ メディカル システムズ, インコーポレイテッド 画像解析を用いた核のエッジの検出
AU2014280872A1 (en) * 2014-12-22 2016-07-07 Canon Kabushiki Kaisha Multiscale depth estimation using depth from defocus
KR101690645B1 (ko) * 2015-09-21 2016-12-29 경북대학교 산학협력단 다단계 시차영상 분할이 적용된 시차탐색범위 추정 방법 및 이를 이용한 스테레오 영상 정합장치
US10554956B2 (en) * 2015-10-29 2020-02-04 Dell Products, Lp Depth masks for image segmentation for depth-based computational photography
US10659766B2 (en) * 2015-10-30 2020-05-19 Canon Kabushiki Kaisha Confidence generation apparatus, confidence generation method, and imaging apparatus

Also Published As

Publication number Publication date
BR112018012574A2 (pt) 2018-12-04
WO2017112375A1 (en) 2017-06-29
US20170178332A1 (en) 2017-06-22
CN108369729B (zh) 2019-11-12
KR101950658B1 (ko) 2019-02-20
JP2019501390A (ja) 2019-01-17
KR20180098260A (ko) 2018-09-03
CN108369729A (zh) 2018-08-03
EP3394827A1 (en) 2018-10-31
US9996933B2 (en) 2018-06-12

Similar Documents

Publication Publication Date Title
JP6513887B2 (ja) 構造化光深度マップのアウトライアの検出および補正のための方法および装置
JP6419988B2 (ja) 構造化光における誤り訂正のためのシステムおよび方法
US10417786B2 (en) Markers in 3D data capture
CN103069250B (zh) 三维测量设备、三维测量方法
US9635339B2 (en) Memory-efficient coded light error correction
US10223801B2 (en) Code domain power control for structured light
CN107408306B (zh) 一种产生对象的深度图信息的方法、设备及可读介质
US10021372B2 (en) Systems and methods for improved depth sensing
US10574947B2 (en) Object reconstruction in disparity maps using displaced shadow outlines
US11099009B2 (en) Imaging apparatus and imaging method
CN107301366B (zh) 一种嵌码视频中图形码的解码方法及装置
JP7136721B2 (ja) 演算装置、視差算出方法
CN107515844A (zh) 字体设置方法、装置及移动设备

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190410

R150 Certificate of patent or registration of utility model

Ref document number: 6513887

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250