本開示の実施形態は、上述した欠点に対処するコンピュータ実装システムおよび方法を提供する。本開示において、たとえば計算効率が良いこと、ならびに動的シーンに対応することなどの利点を有する3次元画像感知のためのシステムおよび方法が提供される。本実施形態の場合、生成されたデータは、深さ情報を含み、たとえば点群として、シーンの3次元再構成を可能にし得る。加えて、本開示の実施形態は、他の高電力ソリューションに匹敵する、またはそれよりも高い品質のデータを提供しながらも、たとえば拡張現実、ロボット工学などの低電力アプリケーションにおいて用いられ得る。
本開示の実施形態は、電磁パルスのパターンを備えるラインを投影し、画像センサにおけるそれらのパターンの反射を受信し得る。いくつかの実施形態において、プロジェクタ(たとえばレーザプロジェクタ)は、投影ラインを曲線に変形させ得る。したがって、全体を通して用いられる場合、「ライン」は、幾何学線または曲線を指してよい。また、ラインは、ラインが点線などを備え得るように、変化する強度を有する複数のドットを備えてよい。パターンは、プロジェクタの空間座標にインデックスを付けてよく、画像センサは、反射を受信する画素(複数も可)の位置(複数も可)で、受信された反射にインデックスを付けてよい。したがって、本開示の実施形態は、プロジェクタおよび画素(複数も可)の空間座標に基づいて深さを三角測量し得る。
ラインを用いることによって、本開示の実施形態は、ドットベースのアプローチに比べて高速かつ高い密度であり得る。また、ラインは、ドットと比べてプロジェクタのために必要な制御信号が少なく、電力消費を低減し得る。
動的シーンを考慮するために、本開示の実施形態は、ステートマシンを用いて、投影ラインに対応する反射曲線を識別してよい。加えて、いくつかの実施形態において、ステートマシンは更に、画像センサの画素にわたり移動する受信パターンを時間的に追跡してよい。よって、異なる画素がパターンの異なる部分を受信する場合でも、深さが計算され得る。したがって、本開示の実施形態は、上述したように現在存在する技術によって示された技術的問題を解決し得る。
本開示の実施形態は、より高い時間分解能も提供し得る。たとえば、捕捉画像における一致点ではなく既知のパターン(たとえば、格納されたパターンおよび/またはパターンのプロジェクタから三角測量を行うプロセッサに提供されたパターン)の三角測量を用いることによって、レイテンシが低く維持される。また、ステートマシンの使用は、レイテンシを犠牲にすることなく精度を高めることができる。生のレーザラインスイープと比べて、本開示の実施形態は、レイテンシおよびジッタへの感度を低減し得る。また、本開示の実施形態は、環境光と投影ラインからの反射との区別における精度を高め得る。
いくつかの実施形態において、時間分解能は、イベントベースの画像センサを用いることによって、更に高められ得る。そのようなセンサは、閾値を超過する画素における照明の変化に基づいてシーン内のイベントを捕捉し得る。非同期センサは、生成されるデータの量を低減しながら、シーン内に投影されたパターンを検出し得る。したがって、時間分解能が高められ得る。
また、いくつかの実施形態において、イベントベースの画像センサの使用によるデータの低減は、各画素における光サンプリングレートを、たとえば毎秒30回または毎秒60回(すなわち、一般的なCMOS画像センサのフレームレート)から、たとえば毎秒1,000回、毎秒10,000回、それ以上などのより高いレートに高めることを可能にし得る。より高い光サンプリングレートは、現在存在する技術と比べて、パターン検出の精度を高める。
1つの実施形態において、3次元画像を検出するためのシステムは、電磁パルスを備える複数のラインをシーンに投影するように構成されたプロジェクタと、複数の画素を備え、投影された複数のラインによって生じるシーン内の反射を検出するように構成された画像センサと、少なくとも1つのプロセッサとを備えてよい。少なくとも1つのプロセッサは、検出された反射に基づき、かつ画像センサの1または複数の第1の画素に対応する、画像センサからの1または複数の第1のイベントを検出し、検出された反射に基づき、かつ画像センサの1または複数の第2の画素に対応する、画像センサからの1または複数の第2のイベントを検出し、1または複数の第2のイベントおよび1または複数の第1のイベントに対応する投影ラインを識別するように構成され得る。また、いくつかの実施形態において、少なくとも1つのプロセッサは、識別されたラインに基づいて3次元像点を計算するように構成され得る。また更に、少なくとも1つのプロセッサは、識別されたラインに基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元光線を計算し、3次元光線および識別されたラインに関連付けられた平面方程式に基づいて、3次元像点を計算するように構成され得る。追加または代替として、3次元像点は、曲面方程式を用いて計算され得る。
そのような実施形態において、少なくとも1つのプロセッサは更に、複数のラインに関連付けられた複数のパターンを決定するように構成され得る。また、1または複数の第1のイベントは、複数のラインに関連付けられた複数のパターンの始まりに対応してよい。また、1または複数の第2のイベントは、複数のラインに関連付けられた複数のパターンの終わりに対応してよい。
これらの実施形態のいずれにおいても、プロジェクタは、各ラインの1または複数のドットを同時に投影するように構成され得る。あるいは、プロジェクタは、各ラインの1または複数のドットを連続的に投影するように構成され得る。
これらの実施形態のいずれにおいても、複数のパターンは、時間の長さで区切られた少なくとも2つの異なるパルス長を備えてよい。追加または代替として、複数のパターンは、異なる時間の長さで区切られた複数のパルスを備えてよい。追加または代替として、複数のパターンは、シンボルを符号化するために用いられる選択された周波数、位相シフト、またはデューティサイクルの少なくとも1つを有するパルスを備えてよい。
これらの実施形態のいずれにおいても、プロジェクタは、複数のラインをシーン内の複数の空間位置に投影するように構成され得る。また、空間位置の少なくとも1つは、第1のパターンに対応してよく、空間位置の他の少なくとも1つは、第2のパターンに対応してよい。
これらの実施形態のいずれにおいても、プロジェクタは、複数のラインの1または複数のドットを複数の異なる投影時間に投影するように構成され得る。また、投影時間の少なくとも1つは、1または複数の第1のイベントの少なくとも1つに対応してよく、投影時間の他の少なくとも1つは、1または複数の第2のイベントの少なくとも1つに対応してよい。
これらの実施形態のいずれにおいても、画像センサの各画素は、少なくとも1つの第1の感光性要素に電気接続され、少なくとも1つの第1の感光性要素に衝突する光の輝度の関数であるアナログ信号が条件に一致するとトリガ信号を生成するように構成された検出器を備えてよい。いくつかの実施形態において、トリガ信号に応答して少なくとも1つの第2の感光性要素に衝突する光の輝度の関数である信号を出力するように構成された少なくとも1つの第2の感光性要素が提供され得る。また更に、少なくとも1つの第1の感光性要素は、少なくとも1つの第2の感光性要素を備えてよい。これらの実施形態のいずれかにおいて、少なくとも1つのプロセッサは、第1の感光性要素および第2の感光性要素の少なくとも1つから1または複数の第1の信号を受信してよく、1または複数の第1の信号は、条件が増加条件である場合、正極性を有し、条件が減少条件である場合、負極性を有してよい。したがって、少なくとも1つのプロセッサは更に、1または複数の第1のイベントまたは1または複数の第2のイベントを取得するために、1または複数の第1の信号の極性を復号するように構成され得る。追加または代替として、少なくとも1つのプロセッサは更に、閾値を超過する時間量離れた1または複数の第1の信号のいずれをも、または所定の範囲内にない光帯域幅を伴う前記1または複数の第1の信号のいずれをも破棄するように構成され得る。
これらの実施形態のいずれにおいても、少なくとも1つの第1の感光性要素は、少なくとも1つの第2の感光性要素を備えてよい。いくつかの実施形態と一貫して、条件検出器からのイベントのみが画像センサによって出力されるように、露光測定回路は取り除かれ得る。したがって、第1および第2の感光性要素は、条件検出器によってのみ用いられる単一の要素を備えてよい。
あるいは、少なくとも1つの第1の感光性要素および少なくとも1つの第2の感光性要素は、少なくとも部分的に、個別の要素であってよい。
これらの実施形態のいずれにおいても、システムは更に、所定の範囲内にない波長を伴う任意の反射を遮断するように構成された光学フィルタを備えてよい。
これらの実施形態のいずれにおいても、複数のパターンは、電磁パルスに符号化された固有シンボルのセットを備えてよい。あるいは、複数のパターンは、電磁パルスに符号化された半固有シンボルのセットを備えてよい。たとえば、シンボルは、幾何学的に画定された空間内で固有であってよい。そのような実施形態において、幾何学的に画定された空間は、複数のラインの1つを備えてよい。
これらの実施形態のいずれにおいても、少なくとも1つのプロセッサは、複数のパターンのうちのどのパターンが1または複数の第1のイベントおよび1または複数の第2のイベントによって表されるかに基づいて、平面方程式を決定するように構成され得る。追加または代替として、少なくとも1つのプロセッサは、複数のラインに関連付けられた複数の平面方程式を決定し、複数の平面方程式のうちの関連する平面方程式を決定するために、1または複数の第1のイベントおよび1または複数の第2のイベントに関連付けられた前記ラインを選択するように構成され得る。
これらの実施形態のいずれにおいても、少なくとも1つのプロセッサは、複数の光線と、関連する平面方程式との交点に基づいて、3次元像点を計算するように構成され得る。そのような実施形態において、複数の光線は、センサを起点とし、1または複数の第1の画素および1または複数の第2の画素に対応するシーン内の3次元点のセットを表してよい。
たとえば、3次元(3D)空間への直線の投影は、対応する平面方程式がa’X+b’Y+c’Z+d’=0(式1)を備え得る3D平面に対応し、式中、X、Y、およびZは、3D空間内の平面上に存在する点の座標であり、a’、b’、c’、およびd’は、平面を定める定数である。原点は、位置(0,0,0)におけるカメラの光学中心である。i番目の画素行およびj番目の画素列に位置するセンサ上の画素(i,j)に関して、3D空間内の画素位置は、センサ較正パラメータ(x,y,f)を用いて識別されてよく、ここでfは、ピンホールカメラモデルに準拠する焦点距離である。センサ上の(i,j)に投影する全ての3D点は、(x,y,f)および光学中心(0,0,0)を通過する3D光線上にある。光線上の全ての3D点に関して、次の式(式2)
によって定義されるスカラー定数λが存在する。プロジェクタからの3D平面とカメラからの3D光線との交点において3D点を三角測量するために、
のように式2が式1に挿入されてよく、その結果、
かつ
となる。
いくつかの実施形態において、投影は、3D空間内への曲線である。これはもはや平面ではなく、曲面である。したがって、上述した平面方程式に基づくものではなく、他の三角測量演算が用いられ得る。たとえば、一般方程式
の二次曲面モデルが用いられてよく、式中、Qは3×3の行列であり、Pは3次元行ベクトルであり、Rはスカラー定数である。カメラからの3D光線と3D表面との交点における3D点の三角測量は、式2を二次曲面方程式に挿入し、λを解くことによって可能である。
これらの実施形態のいずれにおいても、少なくとも1つのプロセッサは、1または複数の第1のイベントに基づいて1または複数のステートマシンを初期化するように構成され得る。また更に、少なくとも1つのプロセッサは、記憶デバイスのメモリ内に、1または複数の初期化されたステートマシンおよび1または複数の第1のイベントを1または複数の第2のイベントと連結するための候補を備えるファイナライズされたステートマシンを格納するように構成され得る。したがって、少なくとも1つのプロセッサは更に、後続するイベントに関する候補を決定する際に、格納されたステートマシンを用いるように構成され得る。
これらの実施形態のいずれにおいても、1または複数の第2のイベントを1または複数の第1のイベントと連結するための候補の決定は、複数のパターンおよび1または複数の格納されたステートマシンを用いてよい。追加または代替として、候補が1または複数の第1のイベントを1または複数の第2のイベントと時間的に連結するように、1または複数の第2のイベントは、1または複数の第1のイベントの後にタイムスタンプされ得る。
これらの実施形態のいずれにおいても、1または複数の第1のイベントの検出は、画像センサから1または複数の第1の信号を受信することと、1または複数の第1の信号に基づいて1または複数の第1のイベントを検出することとを備えてよい。追加または代替として、1または複数の第1のイベントの検出は、画像センサから1または複数の第1の信号を受信することを備えてよく、1または複数の第1の信号は、1または複数の第1のイベントを符号化する。
1つの実施形態において、撮像システムは、複数の画素および少なくとも1つのプロセッサを備えてよい。各画素は、第1の感光性要素と、第1の感光性要素に電気接続され、第1の感光性要素に衝突する光の輝度の関数であるアナログ信号が条件に一致する場合、トリガ信号を生成するように構成された検出器とを備えてよい。任意選択的に、1または複数の第2の感光性要素に衝突する光の輝度の関数である信号を出力するように構成された1または複数の第2の感光性要素も提供され得る。いくつかの実施形態において、少なくとも1つのプロセッサは、シーンから検出された反射に基づき、かつ検出器からのトリガ信号に応答し、複数の画素のうちの1または複数の第1の画素に対応する、1または複数の第2の感光性要素からの1または複数の第1のイベントを検出し、1または複数の第1のイベントに基づいて1または複数のステートマシンを初期化し、シーンから検出された反射に基づき、かつ検出器からのトリガ信号に応答し、受信した第2の信号に基づく複数の画素のうちの1または複数の第2の画素に対応する、1または複数の第2の感光性要素からの1または複数の第2のイベントを検出し、1または複数の第2のイベントを1または複数の第1のイベントと連結するための1または複数の候補を決定し、1または複数の候補を用いて、1または複数の第2のイベントおよび1または複数の第1のイベントに対応する投影ラインを識別するように構成され得る。また、いくつかの実施形態において、少なくとも1つのプロセッサは、識別されたラインに基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元光線を計算し、3次元光線に基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元像点を計算するように構成され得る。いくつかの実施形態において、3次元像点は更に、識別されたラインに対応するシーンに投影されたラインに関連付けられた平面方程式に基づいて計算され得る。他の実施形態において、曲線および上述した二次曲面方程式に基づく三角測量演算が用いられ得る。
そのような実施形態において、少なくとも1つのプロセッサは更に、シーンに投影された電磁パルスを備える複数のラインに関連付けられた複数のパターンを決定するように構成されてよく、複数のパターンを決定することは、時間間隔で区切られた振幅を定めるデジタル信号を受信することを備えてよい。たとえば、時間間隔で区切られた振幅を定めるデジタル信号は、複数のパターンに従って複数の電磁パルスを投影するように構成されたプロジェクタに関連付けられたコントローラから受信され得る。追加または代替として、時間間隔で区切られた振幅を定めるデジタル信号は、パターンを格納している少なくとも1つの非一時的メモリから取得され得る。
上述した実施形態のいずれにおいても、第1の感光性要素は、1または複数の第2の感光性要素を備えてよい。また、いくつかの実施形態において、第2の感光性要素は存在しない。
1つの実施形態において、3次元画像を検出するための方法は、プロジェクタによってシーンに放出された電磁パルスを備える複数のラインに対応する複数のパターンを決定することと、画像センサから、複数の電磁パルスによって生じる反射に基づき、かつ画像センサの1または複数の第1の画素に対応する1または複数の第1のイベントを検出することと、1または複数の第1のイベントに基づいて1または複数のステートマシンを初期化することと、画像センサから、反射に基づき、かつ画像センサの1または複数の第2の画素に対応する1または複数の第2のイベントを検出することと、1または複数の第2のイベントを1または複数の第1のイベントと連結するための1または複数の候補を決定することと、1または複数の候補を用いて、1または複数の第2のイベントおよび1または複数の第1のイベントに対応する投影ラインを識別することと、識別されたラインに基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元光線を計算することと、3次元光線、および識別されたラインに対応する複数のラインの1つに関連付けられた平面方程式に基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元像点を計算することと、を備えてよい。
1つの実施形態において、3次元画像を検出するためのシステムは、電磁パルスを備える複数のラインをシーンに投影するように構成されたプロジェクタと、複数の画素を備え、投影された複数のラインによって生じるシーン内の反射を検出するように構成された画像センサと、少なくとも1つのプロセッサとを備えてよい。少なくとも1つのプロセッサは、複数のラインの少なくとも1つの空間特性に関連する複数のシンボルを、複数のラインに関連付けられた複数のパターンに符号化し、複数のパターンをシーンに投影するようにプロジェクタに指示し、検出された反射に基づき、かつ画像センサの1または複数の第1の画素に対応する1または複数の第1のイベントを検出し、1または複数の第1のイベントに基づいて、1または複数のステートマシンを初期化し、検出された反射に基づき、かつ画像センサの1または複数の第2の画素に対応する1または複数の第2のイベントを検出し、1または複数の第2のイベントを1または複数の第1のイベントに連結するための1または複数の候補を決定し、1または複数の候補および1または複数のステートマシンを用いて、少なくとも1つの空間特性を取得するために1または複数の第1のイベントおよび1または複数の第2のイベントを復号し、センサにおける1または複数の第1のイベントおよび1または複数の第2のイベントの位置および少なくとも1つの空間特性に基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元像点を計算するように構成され得る。
本開示の追加の目的および利点は、以下の詳細な説明において部分的に記載され、説明から部分的に明らかになり、または本開示の実施によって習得され得る。本開示の目的および利点は、特許請求の範囲において具体的に指示された要素および組み合わせによって実現および達成される。
上記概要および以下の詳細な説明は、典型的かつ説明的なものにすぎず、開示される実施形態を限定するものではないことが理解される。
本明細書の一部を備える添付図面は、様々な実施形態を例示し、説明と共に、開示される実施形態の原理および特徴を解説する役割を果たすものである。
開示される実施形態は、たとえば1または複数の直線パターンなどの投影された光パターンの反射を感知することによって3次元画像を捕捉するためのシステムおよび方法に関する。また開示される実施形態は、3次元撮像のために、たとえば同期または非同期画像センサなどの画像センサを用いるための技術にも関する。有利な点として、典型的な実施形態は、高速かつ高効率の3次元画像感知を提供し得る。本開示の実施形態は、たとえば自律車両、ロボット工学、拡張現実、および高速かつ高効率の3次元画像検出による利益を得る他のシステムなどの様々なアプリケーションおよび視覚システムにおいて実施および使用され得る。
本開示の実施形態は、ハードウェア、ソフトウェア、および/またはファームウェアの任意の適当な組み合わせによって実装され得る。本開示の構成要素および特徴は、ハードウェアプロセッサによって実行されるプログラマブル命令で実現され得る。いくつかの実施形態において、命令を含む非一時的コンピュータ可読記憶媒体も提供され、命令は、本明細書に開示される動作および方法を行うために少なくとも1つのプロセッサによって実行され得る。非一時的媒体の共通形態は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光学データ記憶媒体、ホールパターンを有する任意の物理媒体、RAM、PROM、EPROM、FLASH-EPROMまたは他の任意のフラッシュメモリ、NVRAM、キャッシュ、レジスタ、他の任意のメモリチップまたはカートリッジ、およびそれらのネットワーク化バージョンを含む。いくつかの実施形態において、本開示と合致するシステムは、1または複数のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース、および/またはメモリを含んでよい。ネットワーク化構成において、システムと通信している1または複数のサーバおよび/またはデータベースが提供され得る。
本開示の実施形態は、一般に画像センサを参照して本明細書で説明されるが、そのようなシステムは、カメラ、LIDAR、または他の撮像システムの一部であってよいことが理解される。また、いくつかの実施形態は、(たとえばレーザプロジェクタなどの)プロジェクタと組み合わせて説明されるが、そのような構成要素は、本明細書で説明される画像センサおよび/またはプロセッサから独立してよいことが理解される。
本開示の実施形態は、シーンに投影されたラインに対応する曲線に沿って反射を連結するためにステートマシンを用いてよい。追加または代替として、本開示の実施形態は、画像センサの1または複数の画素にわたる反射を追跡するためにステートマシンを用いてよい。したがって、ステートマシンは、投影された光パターンラインの、追跡された反射への変換を記述することにより、シーンの任意の動的部分ならびに静的部分の再生を可能にし得る。本開示と合致するステートマシンは、ハードウェア、ソフトウェア、および/またはファームウェアの任意の適当な組み合わせによって実装され得る。
本明細書で用いられる場合、「パターン」は、1または複数の特性を有する光パルスの任意の組み合わせを指してよい。たとえば、パターンは、時間の長さで区切られた少なくとも2つの異なる振幅、時間の長さで区切られた少なくとも2つの異なる波長、時間の長さで区切られた少なくとも2つの異なるパルス長、様々な時間の長さで区切られた複数のパルスなどを備えてよい。また、パターンは、(たとえば、図7の実施形態例に関して後述するように)シンボルを符号化するために用いられる周波数、位相シフト、またはデューティサイクルの少なくとも1つを有してよい。したがって、「パターン」は規則的である必要はなく、パターンを形成するパルスの不規則な組み合わせを備えてよい。
図1Aは、本開示の実施形態と合致する、典型的なムーアステートマシン100の概略図である。図1Aの例において、入力(たとえば入力101aおよび101b)が特定の条件(たとえば条件105aおよび105b)を満たすかに依存して、1または複数の状態(たとえば状態103aおよび103b)が異なる状態(たとえば状態107aおよび107b)に変わってよい。追加の状態は、新たな条件に対して過去の状態からの出力を試験してよく、または、異なる出力(たとえば出力109aおよび109b)を生成してよい。
図1Bは、本開示の実施形態と合致する、典型的なミーリーステートマシン150の概略図である。図1Bのミーリーステートマシン150は、図1Aのムーアステートマシン100と同等である。ミーリーステートマシン150は、ムーアステートマシン100と異なり、状態への入力に直接基づいて状態を変更してよい。したがって、図1Aの状態103aおよび103bは、図1Bの状態153に置き換えられ得る。
たとえば図1Aおよび図1Bに示すようなステートマシンは、1つの状態から他の状態への任意の条件ベースの変換を説明するために用いられ得る。したがって、本開示の実施形態は、たとえばラインなどの投影された光パターンを、たとえば画像センサの画素上に形成された予想曲線などの、投影された光パターンからの反射によって生じる画像センサの1または複数の状態に変換するステートマシンを探索し得る。したがって、これらのステートマシンは、投影パターンを再構成(および復号)するために、画素にわたり反射の様々な部分を連結する。また、ステートマシンは、反射が時間内に動く場合、画素にわたり反射の一部を連結してよい。したがって、ステートマシンは、時間的ならびに空間的にイベントを連結してよい。その結果、本開示の実施形態は、シーン内に物理的動態(たとえば、シーン内の1または複数の物体による並進運動、シーン内の1または複数の物体による回転運動、シーン内の1または複数の物体の照度または反射率の増加など)が存在する場合にも投影パターンを識別し得る。
図2Aは、本開示の実施形態と合致する、3次元撮像システムにおいて用いるための画像センサ画素200の概略図である。画素200は、アレイ(たとえば、配列された画素によって形成された正方形、円形、または他の任意の長方形または不規則形)内の複数の画素の1つであってよい。
本明細書で用いられる場合、「画素」は、画素に衝突する光に基づいてデータを出力する画像センサの最小要素を指す。いくつかの実施形態において、画素は、たとえば後述する図2Bに示すように、2つ以上の感光性要素、他の回路などを含み得るので、より大きく、またはより多い数の構成要素を含んでよい。
本開示は、単一の画素において受信されている投影パターンによって生じる反射を参照するが、投影パターンは、複数の画素をカバーし、複数の画素によって受信されるために、十分な数の光子を含んでよい。したがって、本明細書で説明される三角測量は、複数の画素の平均位置に基づいてよく、および/または、複数の画素の各々の位置を含む複数の三角測量を備えてよい。
図2Aに示すように、感光性要素201は、要素201に衝突する光の輝度に基づいて電気信号(たとえば電圧、電流など)を生成してよい。本明細書で用いられる場合、感光性要素は、フォトダイオード(たとえばp-n接合またはPIN構造)、または光を電気信号に変換するように構成された他の任意の要素を備えてよい。フォトダイオードは、フォトダイオードに衝突する光の強度に比例して、またはその関数として電流(たとえばlph)を生成してよい。
更に図2Aに示すように、測定回路205は、要素201からの電流を、読出しのためのアナログ信号に変換してよい。測定回路205は、外部制御信号(たとえば外部クロックサイクル)に応答してアクティブ化してよい。追加または代替として、測定回路205は、要素201からの信号を、外部制御信号が受信されるまで(たとえば、画素200によってアクセスされるオンチップおよび/またはオフチップメモリ(不図示)に)格納されるアナログ信号に変換してよい。外部制御信号に応答して、測定回路205は、格納されたアナログ信号(図2Aにおける「dig pixデータ」)を読出しシステムへ送信してよい。
図2Aには示されないが、画素200を用いる画像センサは、上述したように、クロックサイクルに従って画素のアレイがトリガされるように、行および列アービタまたは他のタイミング回路を含んでよい。また、タイミング回路は、衝突が回避されるように、上述したような読出しシステムへのアナログ信号の送信を管理してよい。読出しシステムは、画素アレイからのアナログ信号を、3次元撮像において用いるためのデジタル信号に変換してよい。
図2Bは、3次元撮像システムにおいて用いるための画像センサ画素250の概略図である。画素250は、アレイ(たとえば、配列された画素によって形成された正方形、円形、または他の任意の長方形または不規則形)内の複数の画素の1つであってよい。
図2Bに示すように、感光性要素251は、要素251に衝突する光の輝度に基づいて電気信号を生成してよい。画素250は、条件検出器255(CD)を更に含んでよい。図2Bの例において、検出器255は、感光性要素251(PDCD)に電気接続され、感光性要素251に衝突する光の輝度の関数であるアナログ信号が条件に一致すると、(図2Bの例において「トリガ」と付記された)トリガ信号を生成するように構成される。たとえば、条件は、アナログ信号が閾値(たとえば電圧または電流レベル)を超過するかを備えてよい。アナログ信号は、電圧信号または電流信号を備えてよい。
図2Bの例において、感光性要素253は、要素253に衝突する光の輝度に基づいて電気信号を生成してよい。画素250は、露光測定回路257を更に含んでよい。図2Bの例において、露光測定回路257は、感光性要素253(PDEM)に衝突する光の輝度の関数である測定値を生成するように構成され得る。露光測定回路257は、図2Bに示すように、トリガ信号に応答して測定値を生成してよい。図2Bにおいて、露光測定回路257を用いるものとして説明されるが、いくつかの実施形態は、感光性要素253から直接(たとえば制御および読出しシステム259を用いて)測定値を読み取り、露光測定回路257を省いてよい。
いくつかの実施形態において、露光測定回路257は、アナログデジタル変換器を含んでよい。そのような実施形態の例は、2018年6月27日に出願された、“Image Sensor with a Plurality of Super-Pixels”と題された米国仮特許出願第62/690,948号、および2018年12月17日に出願された、“Image Sensor with a Plurality of Super-Pixels”と題された米国仮特許出願第62/780,913号において開示される。これらの出願の開示は、参照によって本明細書に完全に組み込まれる。そのような実施形態において、露光測定回路257は、測定が完了し、および/または外部読出しシステムへ送信されると、(たとえば、図2Bには示されない「クリア」信号を用いて)条件検出器255をリセットしてよい。
いくつかの実施形態において、露光測定回路257は、測定値を読出しおよび制御システム259へ非同期的に出力してよい。これは、たとえば、非同期イベント読出し(AER)通信プロトコルまたは他の適当なプロトコルを用いて行われ得る。他の実施形態において、露光測定回路257からの読出しは、(たとえば図2Bにおいて「制御」と付記された)外部制御信号を用いて計時され得る。また、図2Bに示すように、いくつかの実施形態において、検出器259からのトリガもまた、たとえば非同期イベント読出し(AER)通信プロトコルまたは他の適当なプロトコルを用いて読出しおよび制御システム259へ出力され得る。
図2Bに示される画素250の例は、米国特許第8,780,240号および米国特許第9,967,479号において開示される。これらの特許は、参照によって本明細書に組み込まれる。
感光性要素251および253は、異なる感光性要素として示されるが、いくつかの実施形態において、条件検出器255と露光測定回路257との間で共有される単一の要素を備えてよい。そのような実施形態の例は、2018年4月30日に出願された、“Systems and Methods for Asynchronous, Time-Based Image Sensing”と題された欧州特許出願第18170201.0号において開示される。この出願の開示は、参照によって本明細書に組み込まれる。
また、1つの条件検出器および1つの露光測定回路で示されるが、いくつかの実施形態は、トリガ信号によって複数の測定値が捕捉されるように、条件検出器を共有する複数の露光測定回路を含んでよい。そのような実施形態の例は、2018年6月27日に出願された、“Image Sensor with a Plurality of Super-Pixels”と題された米国仮特許出願第62/690,948号、および2018年12月17日に出願された、“Image Sensor with a Plurality of Super-Pixels”と題された米国仮特許出願第62/780,913号において開示される。これらの出願の開示は、参照によって本明細書に組み込まれる。
他の実施形態において、条件検出器からのイベントのみが画像センサによって出力されるように、露光測定回路は取り除かれ得る。したがって、感光性要素251および253は、条件検出器255のみによって用いられる単一の要素を備えてよい。
図2Bには示されないが、画素250を用いる画像センサは、画素250によって生成されたイベントが画像センサから読み取られ得るように、行および列ラインまたは他の読出し回路を含んでよい。また、タイミング回路は、衝突が回避されるように、読出しシステムへのアナログ信号の転送を管理してよい。これらの実施形態のいずれにおいても、読出しシステムは、画素アレイからのアナログ信号を、3次元撮像において用いるためのデジタル信号に変換してよい。
図3Aは、3次元撮像のためのシステム300の概略図である。図3Aに示すように、プロジェクタ301は、1または複数のパターン(たとえば図3Aにおけるパターン303a、303b、および303c)に従って電磁パルスのラインを送信してよい。3つのパターンを用いるものとして示されるが、任意の数のパターンが用いられ得る。各パターンが、3次元シーン305の小部分に対応し得るので、多数の(たとえば何千または場合によっては何十万もの)パターンが用いられ得る。
プロジェクタ301は、1または複数のパターンに従って電磁パルスのラインを投影するように構成された1または複数のレーザ発生器または他の任意のデバイスを備えてよい。いくつかの実施形態において、プロジェクタ301は、ドットプロジェクタであってよい。したがって、プロジェクタ301は、ラインを3Dシーン305内に投影するためにドットを投影しながらラインに沿ってスイープするように構成され得る。あるいは、プロジェクタ301は、ラインの一部または全ての部分に沿って同時にラインを形成する光を投影するように構成されたレーザプロジェクタを備えてよい。
追加または代替として、プロジェクタ301は、プロジェクタ301からライン内への光をフィルタするように構成されたスクリーンまたは他のフィルタを含んでよい。図3Aには示されないが、プロジェクタ301は、コマンドを受信し、またはラインの生成およびシーン305内への投影を規定する格納パターンを取得するように構成されたコントローラを備えてよい。
いくつかの実施形態において、プロジェクタ301は、シーン305内の複数の空間位置に複数のラインを投影するように構成され得る。空間位置は、更に後述される、画像センサ309の様々な画素(または画素グループ)に対応してよい。追加または代替として、プロジェクタ301は、複数の異なる投影時間に複数のラインを投影するように構成され得る。
いくつかの実施形態において、プロジェクタ301は、たとえばパターン内の多様性を高めるために、複数の周波数を投影するように構成され得る。他の実施形態において、プロジェクタ301は、たとえばパターンによって生じる反射をシーン305内のノイズと区別するために、単一の周波数(または周波数範囲)を用いるように構成され得る。例として、周波数は、50Hz~数kHz(たとえば1kHz、2kHz、3kHzなど)であってよい。
投影されたラインまたは他のパターンは、シーン305からの反射をもたらし得る。図3Aの例において、パターン303a、303b、および303cは、それぞれ反射307a、307b、および307cをもたらした。時間において一定であるように示されるが、反射は、シーン305内の動態によって時間と共に角度を変え得る。これらの動態は、後に更に説明するように、ステートマシン探索を用いて再構成され得る。
反射は、画像センサ309によって捕捉され得る。いくつかの実施形態において、画像センサ309は、イベントベースのセンサであってよい。上述したように、画像センサ309は、読出しシステムに結合された、図2Aの画素200のアレイ、図2Bの画素250のアレイ、または他の任意の画素のアレイを備えてよい。画像センサ309によって生成された信号は、少なくとも1つのプロセッサ(不図示)を含むシステムによって処理され得る。後述するように、システムは、シーン305内の任意の動態を再構成し、および/またはシーン305に関する3次元像点を計算してよい。
反射307a、307b、および307cは、(図3Aに示すように)パターン303a、303b、および303cが直線に沿って配置される場合でも、画像センサ309の画素において曲線を形成してよい。たとえば、変化する深さ、ならびにシーン305内の動態が、パターン303a、303b、および303cを歪ませ、曲線を形成してよい。また、変化する深さ、ならびにシーン305内の動態は、画像センサ309の画素における不連続性および/または変曲点を含むように曲線を更に歪ませてよい。システム300は、後に更に説明するように、ステートマシン探索を用いて、投影ライン(たとえば符号化パターン303a、303b、および303c)に対応する、(たとえば反射307a、307b、および307cによって形成された)画像センサ309において捕捉された曲線を識別してよい。
図3Bは、受信したイベントからの3次元光線および関連するラインの平面方程式を用いる3次元撮像300のグラフィック表現である。図3Bに示すように、プロジェクタ301からの各ラインは、対応する平面方程式311に関連付けられ得る。たとえば、平面方程式311は、a’X+b’Y+c’Z+d’=0を備えてよく、式中、a’、b’、c’、およびd’は、平面を定める定数であり、X、Y、およびZは、シーン305(図3Bには不図示)を含む3次元空間内の座標である。有限として示されるが、平面方程式311は、無限平面を定めてよい。上述したように、いくつかの実施形態において、プロジェクタ301(たとえばレーザプロジェクタ)は、投影ラインを曲線に変形させ得る。したがって、「ライン」は、幾何学線または曲線を指してよい。ラインが曲線である実施形態において、平面方程式311は、真っ直ぐな平面ではなくラインの曲率に対応して歪曲した3次元表面を表し得る。したがって、本明細書で用いられる場合、「平面方程式」は、幾何学平面または歪曲した3次元表面に関する方程式を指し得る。
図3Aに関して上述したように、画像センサ309によって受信した対応するイベントは、プロジェクタ301からの対応するラインによって生じる反射の曲線に一致してよい。たとえば、画像センサ309と通信しているプロセッサ(不図示)は、時間にわたりイベントを連結して曲線を決定するためにステートマシンを用いてよい。また、いくつかの実施形態において、連結されたイベントは、画像センサ309の画素にわたり拡散してよい。曲線は、図3Bを参照して上述したように対応する平面方程式313も有してよいが、プロセッサは、シーン305(図3Bには不図示)に関する3次元点を計算するために平面方程式313を計算する必要はない。また、例として、プロセッサは、識別された曲線に沿った各点に関して、画像センサ309を起点とする複数の光線を計算してよい。
たとえば、3次元(3D)空間への直線の投影は、3D平面に対応し、その対応する平面方程式は、a’X+b’Y+c’Z+d’=0(式1)を備えてよく、式中、X、Y、およびZは、3D空間内の平面上にある点の座標であり、a’、b’、c’、およびd’は、平面を定める定数である。原点は、位置(0,0,0)における、カメラ光学中心である。i番目の画素行およびj番目の画素列に位置するセンサ上の画素(i,j)に関して、3D空間内の画素位置は、センサ較正パラメータ(x,y,f)を用いて識別されてよく、ここでfは、ピンホールカメラモデルに準拠する焦点距離である。センサ上の(i,j)に投影する全ての3D点は、(x,y,f)および光学中心(0,0,0)を通過する3D光線上にある。光線上の全ての3D点に関して、以下の式(式2)、
によって定義されるようなスカラー定数λが存在する。プロジェクタからの3D平面とカメラからの3D光線との交点における3D点を三角測量するために、
のように、式2が式1に挿入されてよく、ここから、
および
が求められる。
いくつかの実施形態において、投影は、3D空間内への曲線である。そのような例において、これはもはや平面ではなく、湾曲表面である。したがって、上で参照した平面方程式に基づくものではなく、他の三角測量演算が用いられ得る。たとえば、一般式
の二次曲面モデルが用いられてよく、式中、Qは3×3の行列であり、Pは3次元行ベクトルであり、Rはスカラー定数である。カメラからの3D光線と3D表面との交点における3D点の三角測量は、式2を二次曲面式に挿入し、λを解くことによって可能である。
いくつかの実施形態と一貫して、プロセッサは更に、平面方程式311と交差する光線(図3Bの例における光線315)を選択してよい。たとえば、プロセッサは、後に更に説明するように、画像センサ309によって受信した反射におけるパターン(または符号化シンボル)を、平面方程式311に対応するラインに関連付けられたパターンにマッピングすることによって、平面方程式311と交差する光線を選択してよい。
図4Aは、本開示と合致する、シーン内のジオメトリによって変換された電磁パターンの概略図である。図1Aおよび図1Bの例を参照して上述したように、ステートマシンは、電磁パターンの任意の時間歪みまたは任意の空間歪みを記述し得る。時間歪みは、たとえば、パターンの特徴に符号化されたシンボルの復号を妨げ得る。空間歪みは、たとえば、パターンを受信する画像センサの複数の画素にわたりシンボルを拡散させ得る。
図4Aは、シーン内のジオメトリによって異なる時間パターンに変換されたパターン例を示す。たとえば、ジオメトリ400は、描写されたパターンを、遅延させることによって変換する。他の例(不図示)において、ジオメトリは、パルスを時間内に近くに移動することによって、描写されたパターンを変換してよい。投影と反射との間のそのような歪みにもかかわらずイベントを連結するためにステートマシンを用いることによって、本開示の実施形態は、パターンの正確な復号を妨げ得る変換にもかかわらず、受信曲線を投影ラインにマッピングし得る。
図4Aには示されないが、シーンのジオメトリは、追加または代替として、パターンの異なる部分が画像センサ(たとえば画像センサ309)の異なる画素において受信されるように、空間にわたりパターンを変換してよい。したがって、任意の検出パターンは、少なくとも1つのプロセッサを用いて計算されるか、既知のステートマシンのデータベースを探索して計算されるかなどにかかわらず、1または複数のステートマシンを用いて、投影パターンにマッピングし戻され得る。
他の例において、図4Bは、ステートマシンを用いて、反射曲線の投影ラインへのマッピングのグラフィック表現を示す。たとえば、図4Bに示すように、投影ラインは、複数の曲線(いくつかの実施形態において、場合によっては無限の可能な曲線)に一致してよい。したがって、画像センサ(たとえば画像センサ309)に関連付けられたプロセッサが、画像センサで受信された(たとえば投影ラインによって生じる)反射によって生成された信号に対応するイベントを受信する場合、プロセッサは、投影ラインに関連付けられたパターンを復号するために、画素にわたりイベントを連結するためにステートマシン候補を決定してよい。いくつかの実施形態において、プロセッサは、画素にわたるイベントを曲線内に連結してもよい。したがって、プロセッサは、複数の曲線のうちどの曲線が投影ラインに対応するかを識別するために、決定された候補を用いてよい。
図5Aは、本開示の実施形態と合致する、3次元画像を検出するための典型的な方法500のフローチャートである。図5Aの方法500は、少なくとも1つのプロセッサを用いて行われ得る。少なくとも1つのプロセッサは、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)と同じチップ上にマイクロプロセッサとして統合され、または処理システムの一部として個別に提供され得る。少なくとも1つのプロセッサは、本明細書で更に開示されるように、信号を送受信する目的で、システムのプロジェクタおよび画像センサと電気通信状態であってよい。
ステップ501において、少なくとも1つのプロセッサは、プロジェクタ(たとえば図3のプロジェクタ301)によってシーン(たとえば図3のシーン305)に放出された電磁パルスを備える複数のラインに関連付けられた複数のパターンを決定してよい。たとえば、上述したように、複数のパターンの決定は、時間間隔で区切られた振幅を定めるデジタル信号を(たとえば、少なくとも1つのネットワークを介して、少なくとも1つのメモリへなどで通信するように構成された少なくとも1つの送信器に接続されたオンチップバスを用いて)受信することを備えてよい。そのような実施形態において、時間間隔で区切られた振幅を定めるデジタル信号は、複数のパターンに従って複数の電磁パルスを投影するように構成されたプロジェクタに関連付けられたコントローラから受信され得る。追加または代替として、時間間隔で区切られた振幅を定めるデジタル信号は、パターンを格納している少なくとも1つの非一時的メモリから取得され得る。
いくつかの実施形態において、少なくとも1つのプロセッサは、パターンに従ってプロジェクタが複数の電磁パルスを送信するように、複数の電磁パルスをシーンに投影するように構成されたプロジェクタにコマンドを送信してもよい。たとえば、少なくとも1つのプロセッサは、オンチップバス、ワイヤまたは他のオフチップバス、少なくとも1つのバス、ワイヤ、またはネットワークを介して通信するように構成された少なくとも1つの送信器、またはそれらの任意の組み合わせを用いて、プロジェクタにコマンドを送信してよい。
更に上述したように、パターンは、期間にわたる任意の一連の電磁放射パルスを備えてよい。たとえば、パターンは、パターンの期間に沿った振幅および/または時間の長さによって1または複数のパルスを定めてよい。したがって、複数のパターンは、時間の長さで区切られた少なくとも2つの異なる振幅、時間の長さで区切られた少なくとも2つの異なる波長、時間の長さで区切られた少なくとも2つの異なるパルス長、時間の長さで区切られた複数のパルスなどを備えてよい。また、上述したように、パターンは、シンボルを符号化するために用いられる少なくとも1つの選択された周波数、位相シフト、またはデューティサイクルの少なくとも1つを有してよい(たとえば、図7に関する後述を参照)。
いくつかの実施形態において、少なくとも1つのプロセッサは、複数のシンボルを複数のパターンに符号化してよい。上述したように、複数のパターンは、複数のラインに関連付けられ得る。シンボルは、電磁パターンに符号化された文字、数字、または他の任意の通信可能コンテンツを備えてよい。いくつかの実施形態において、複数のシンボルは、複数のラインの少なくとも1つの空間特性に関連する。たとえば、複数のシンボルは、電磁パルスの予想周波数または輝度、電磁パルスに関連付けられた(たとえばパルスを投影するプロジェクタの空間座標などの)空間位置などを符号化してよい。
再び図5Aを参照すると、ステップ503において、少なくとも1つのプロセッサは、画像センサから、複数の電磁パルスによって生じた反射に基づく1または複数の第1の信号を受信してよい。たとえば、上述したように、測定回路205は、感光性要素201からの信号を、感光性要素201に衝突する光の輝度の関数であるアナログ信号に変換してよい。少なくとも1つのプロセッサは、測定回路205から、1または複数の第1の信号としてアナログ信号を受信してよく、または、測定回路205と通信しているアナログデジタル変換器から、アナログ信号に基づくデジタル信号を受信してよい。追加または代替として、上述したように、条件検出器255(CD)は、感光性要素251に衝突する光に基づく第1のアナログ信号が所定の閾値を超過する場合、トリガ信号(たとえば図2Bの例における「セット」信号)を生成してよく、露光測定回路257は、感光性要素253からの信号を、トリガ信号に応答して感光性要素253に衝突する光の輝度の関数である第2のアナログ信号に変換してよい。少なくとも1つのプロセッサは、露光測定回路257から、1または複数の第1の信号として第2のアナログ信号を受信してよく、または、露光測定回路257と通信している(またはその一部を形成する)アナログデジタル変換器から、第2のアナログ信号に基づくデジタル信号を受信してよい。
ステップ505において、少なくとも1つのプロセッサは、受信した第1の信号に基づいて画像センサの1または複数の第1の画素に対応する1または複数の第1のイベントを検出してよい。たとえば、イベントは、1または複数の第1の信号のうちの2つの信号間の極性変化、1または複数の閾値を超過する大きさを有する1または複数の第1の信号のうちの2つの信号間の振幅の変化などに基づいて検出され得る。本明細書で用いられる場合、「極性変化」は、増加または減少にかかわらず、1または複数の第1の信号において検出された振幅の変化を指し得る。たとえば図2Bの画像センサ250などのイベントベースの画像センサを用いる実施形態において、1または複数の第1の信号は、それら自体が、1または複数の第1のイベントを符号化してよい。したがって、少なくとも1つのプロセッサは、1または複数の第1の信号を区別することによって、1または複数の第1のイベントを検出してよい。
いくつかの実施形態において、少なくとも1つのプロセッサは、画像センサによって1または複数の信号で符号化されたアドレスに基づいて、1または複数の第1のイベントを1または複数の第1の画素に関連付けてよい。たとえば、画像センサ(または画像センサと通信している読出しシステム)は、1または複数の第1の信号の起点である画素(複数も可)のアドレスを符号化してよい。したがって、少なくとも1つのプロセッサは、1または複数の第1の信号で符号化されたアドレスに基づいて、1または複数の第1のイベントを1または複数の第1の画素に関連付けてよい。そのような実施形態において、少なくとも1つのプロセッサは、1または複数の第1の信号からアドレスを復号および取得するように適合される。
ステップ507において、少なくとも1つのプロセッサは、1または複数の第1のイベントに基づいて、1または複数のステートマシンを初期化してよい。たとえば、少なくとも1つのプロセッサは、1または複数の第1の画素に関してステートマシンを初期化してよい。加えて、いくつかの実施形態において、少なくとも1つのプロセッサは、近隣画素に関してステートマシンを初期化してよい。図6に関して後述するように、初期化は、1または複数の第1のイベントの一部をもたらした、予想される反射に対応する複数のパターンの部分を識別することを含んでよい。
ステップ509において、少なくとも1つのプロセッサは、画像センサを用いて、反射に基づく1または複数の第2の信号を受信してよい。たとえば、少なくとも1つのプロセッサは、図2Aの画像センサ200、図2Bの画像センサ250などから、1または複数の第2の信号を受信してよい。同期画像センサを用いる実施形態において、1または複数の第2の信号は、異なるクロックサイクルで捕捉されたものであってよい。非同期画像センサを用いる実施形態において、1または複数の第2の信号は、1または複数の第1の信号より後の任意の時間に捕捉されたものであってよい。非同期画像センサを用いる実施形態において、読出しは、少なくとも1つのプロセッサが、1または複数の第1の信号を受信したのと異なるクロックサイクルで1または複数の第2の信号を受信するように計時され得る。
ステップ511において、少なくとも1つのプロセッサは、受信した第2の信号に基づいて、画像センサの1または複数の第2の画素に対応する1または複数の第2のイベントを検出してよい。たとえば、少なくとも1つのプロセッサは、1または複数の第2の信号のうちの2つの信号間の極性変化、1または複数の閾値を超過する大きさを有する1または複数の第2の信号のうちの2つの信号間の振幅の変化などに基づいて、1または複数の第2のイベントを検出してよい。たとえば図2Bの画像センサ250などのイベントベースの画像センサを用いる実施形態において、1または複数の第1の信号は、それら自体が、1または複数の第2のイベントを符号化してよい。
ステップ513において、少なくとも1つのプロセッサは、1または複数の第2のイベントを1または複数の第1のイベントと連結するための候補を決定してよい。たとえば、図6に関して後述するように、候補は、1または複数の第1の画素に対する1または複数の第2の画素の位置に基づいてよい。追加または代替として、複数のパターンに基づいて予想されるものと異なる振幅、極性などの任意の変化は、候補にカプセル化されなくてはならない。いくつかの実施形態において、少なくとも1つのプロセッサは、候補を決定するために、複数のパターンおよび1または複数のステートマシンを用いてよい。
図4Bに示すように、候補は、画像センサにおける曲線を識別するために、1または複数の第2のイベントと1または複数の第1のイベントとを連結してよい。追加または代替として、候補は、1または複数の第1の画素から1または複数の第2の画素への反射のドリフトを補正するために、1または複数の第2のイベントと1または複数の第1のイベントとを連結してよい。たとえば、候補が、1または複数の第1のイベントを1または複数の第2のイベントに時間的に連結するように、1または複数の第2のイベントは、1または複数の第1のイベントより後にタイムスタンプされ得る。そのような時間的マッピングの一例は、上述した図4Aに示される。
再び図5Aを参照すると、方法500は、再帰的であってよい。たとえば、少なくとも1つのプロセッサは、(たとえば、次のクロックサイクルで生成および/または受信された)画像センサからの新たな信号セットごとにステップ509、511、および513を反復してよい。画素にわたる信号における任意の変化は、その後、ステップ513におけるステートマシン探索をトリガしてよい。これは、所定の期間にわたり、または複数のパターンの最後に対応する1または複数の最終イベントが検出されるまで、反復され得る。
ステップ515において、少なくとも1つのプロセッサは、1または複数の第2のイベントおよび1または複数の第1のイベントによって形成された曲線を識別するために候補を用いてよい。たとえば、図4Bに関して上述したように、少なくとも1つのプロセッサは、画像センサの画素上に曲線を形成し、投影ラインと一致する可能性のある他の(場合によっては無限の)曲線を排除するために、1または複数の第1のイベントと1または複数の第2のイベントとを連結してよい。
ステップ515は更に、識別された曲線に基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元光線を計算することを含んでよい。たとえば、図3Bに示すように、少なくとも1つのプロセッサは、識別された曲線内の点に関して画像センサを起点とする光線を計算してよい。
ステップ515の一部として、少なくとも1つのプロセッサは、3次元光線、および識別された曲線に対応するラインの1つに関連付けられた平面方程式に基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元像点を計算してもよい。たとえば、図3Bに示すように、3次元点は、画像センサを起点とする光線と、関連付けられた平面方程式との交点を備えてよい。上述したように、識別された曲線に連結された1または複数の第1のイベントおよび1または複数の第2のイベントをもたらす受信された反射におけるパターン(または符号化シンボル)は、関連付けられた平面方程式に一致してよい。たとえば、少なくとも1つのプロセッサは、関連付けられた平面方程式をマッピングするために、プロジェクタに関するコントローラ、1または複数の平面方程式を格納している非一時的メモリなどにアクセスしてよい。
たとえば、画素が、(たとえば既知のステートマシンを介して)複数のパターンのうちのパターンに一致するイベントを有する一連の信号を生成した場合、その画素からの3次元光線は、パターンを用いて決定された平面方程式に投影され得る。いくつかの実施形態において、パターンは、インデックスを付けられた1または複数のシンボルを符号化し、または他の方法でパターンに関連付けられた平面方程式を示してよい。その結果、少なくとも1つのプロセッサは、平面方程式を取得し、画像センサからの信号に符号化されたアドレスに基づいて、そこからの反射を受信した(たとえば3次元光線の起点である)画素の位置を抽出してよい。
いくつかの実施形態において、パターンは、イベント受信ごとに識別または予測され得るので、コードに関連付けられたレイテンシを維持しながら、時間密度を増加させる。この識別は、コードがループ化または関連付けされている場合、1つのコード送信から次のコード送信へ搬送されてよく、これにより、受信中に復号されているコードの予測が可能になり得る(すなわち、コードは、受信ビットがそれとコヒーレントである限り、過去に取得されたものと同じであると予測され得る)。
複数のパターンのうちのパターンが、(たとえばシーン内の動的運動によって)複数の画素にわたり拡散する反射をもたらした場合、最終画素(たとえば、複数のパターンのうちのパターンの最後に対応する最終信号を生成する画素)における3次元点は、最終画素を起点とする3次元光線を用いて、かつパターンに関連付けられた平面方程式に基づいて決定され得る。少なくとも1つのプロセッサは、その後、反射を受信する複数の画素における他の画素に関してステートマシンをファイナライズするために、最終信号から(時間的に)逆に進行してよい。たとえば、画像センサは、少なくとも1つのプロセッサが、過去の画素に関する過去のタイムスタンプならびに新しい画素に関するタイムスタンプを有するように、画素からの各測定におけるタイムスタンプを符号化してよい。したがって、これらの他の画素における3次元点は、他の画素を起点とする3次元光線を用いて、かつパターンに関連付けられた平面方程式に基づいて決定されてよく、これらの点は、過去のタイムスタンプに関連付けられ得る。
ステップ515に加えて、またはその代わりに、方法500は、1または複数の第1のイベントおよび1または複数の第2のイベントを復号して少なくとも1つの空間特性を取得するために、候補および1または複数のステートマシンを用いることを含んでよい。たとえば、少なくとも1つのプロセッサが、復号された平面方程式を用いて3次元点を決定し得るように、少なくとも1つの空間特性は、パターンに関連付けられた平面方程式を備えてよい。追加または代替として、少なくとも1つのプロセッサが、1または複数の第1のイベントおよび1または複数の第2のイベントを対応するパターンにマッピングする際、復号された少なくとも1つの空間特性を用い得るように、少なくとも1つの空間特性は、周波数、輝度などを備えてよい。
図5Bは、本開示の実施形態と合致する、3次元画像を検出するための他の典型的な方法550のフローチャートである。図5Bの方法550は、少なくとも1つのプロセッサを用いて行われ得る。少なくとも1つのプロセッサは、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)と同じチップ上にマイクロプロセッサとして統合され、または処理システムの一部として個別に提供され得る。少なくとも1つのプロセッサは、本明細書に更に開示されるように、信号を送受信する目的で、システムのプロジェクタおよび画像センサと電気通信状態であってよい。また、本明細書に開示されるように、画像センサは、複数の画素を含んでよく、投影パターンによって生じるシーン内の反射を検出するように構成され得る。
ステップ551において、少なくとも1つのプロセッサは、反射に基づいて画像センサの1または複数の第1の画素に対応する1または複数の第1のイベントを検出してよい。本明細書に開示されるように、反射は、プロジェクタ(たとえば図3のプロジェクタ301)によってシーン(たとえば図3のシーン305)に放出された複数の電磁パルスによってもたらされ得る。例として、イベントは、1または複数の第1の信号のうちの2つの信号間の極性変化、1または複数の閾値を超過する大きさを有する1または複数の第1の信号のうちの2つの信号間の振幅の変化などに基づいて検出され得る。本明細書で用いられる場合、「極性変化」は、増加または減少にかかわらず、1または複数の第1の信号において検出された振幅の変化を指してよい。たとえば図2Bの画像センサ250などのイベントベースの画像センサを用いる実施形態において、反射に基づいて生成された1または複数の第1の信号は、それら自体が、1または複数の第1のイベントを符号化してよい。したがって、少なくとも1つのプロセッサは、1または複数の第1の信号を区別することによって、1または複数の第1のイベントを検出してよい。
いくつかの実施形態において、少なくとも1つのプロセッサは、画像センサによって1または複数の第1の信号で符号化されたアドレスに基づいて、1または複数の第1のイベントを1または複数の第1の画素に関連付けてよい。たとえば、画像センサ(または画像センサと通信している読出しシステム)は、1または複数の第1の信号の起点である画素(複数も可)のアドレスを符号化してよい。したがって、少なくとも1つのプロセッサは、1または複数の第1の信号で符号化されたアドレスに基づいて、1または複数の第1のイベントを1または複数の第1の画素に関連付けてよい。そのような実施形態において、少なくとも1つのプロセッサは、1または複数の第1の信号からアドレスを復号および取得するように適合される。
反射は、プロジェクタ(たとえば図3のプロジェクタ301)によってシーン(たとえば図3のシーン305)に放出された複数の電磁パルスによってもたらされ得る。上述したように、投影パルスは、複数のラインにわたって投影された複数のパターンを備えてよい。
ステップ553において、少なくとも1つのプロセッサは、1または複数の第1のイベントに基づいて、1または複数のステートマシンを初期化してよい。たとえば、少なくとも1つのプロセッサは、1または複数の第1の画素に関してステートマシンを初期化してよい。加えて、いくつかの実施形態において、少なくとも1つのプロセッサは、近隣の画素に関してステートマシンを初期化してよい。図6に関して後述するように、初期化は、1または複数の第1のイベントの一部をもたらしたと予想される反射に対応する複数のパターンの一部を識別することを含んでよい。
ステップ555において、少なくとも1つのプロセッサは、反射に基づいて画像センサの1または複数の第2の画素に対応する1または複数の第2のイベントを検出してよい。たとえば、少なくとも1つのプロセッサは、1または複数の第2の信号のうちの2つの信号間の極性変化、1または複数の閾値を超過する大きさを有する1または複数の第2の信号のうちの2つの信号間の振幅の変化などに基づいて、1または複数の第2のイベントを検出してよい。たとえば図2Bの画像センサ250などのイベントベースの画像センサを用いる実施形態において、1または複数の第2の信号は、それら自体が、1または複数の第2のイベントを符号化してよい。また、ステップ551に関して上述したように、反射は、プロジェクタ(たとえば図3のプロジェクタ301)によってシーン(たとえば図3のシーン305)に放出された複数の電磁パルスによってもたらされ得る。
ステップ557において、少なくとも1つのプロセッサは、1または複数の第2のイベントを1または複数の第1のイベントに連結するための1または複数の候補を決定してよい。たとえば、図6に関して後述するように、候補は、1または複数の第1の画素に対する1または複数の第2の画素の位置に基づいてよい。追加または代替として、複数のパターンに基づいて予想されたものと異なる振幅、極性などにおける任意の変化が、候補にカプセル化されなくてはならない。いくつかの実施形態において、少なくとも1つのプロセッサは、候補を決定するために、複数のパターンおよび1または複数のステートマシンを用いてよい。
図4Bに示すように、候補は、画像センサにおける曲線を識別するために、1または複数の第2のイベントと1または複数の第1のイベントとを連結してよい。追加または代替として、候補は、1または複数の第1の画素から1または複数の第2の画素への反射のドリフトを補正するために、1または複数の第2のイベントと1または複数の第1のイベントとを連結してよい。たとえば、候補が、1または複数の第1のイベントを1または複数の第2のイベントに時間的に連結するように、1または複数の第2のイベントは、1または複数の第1のイベントの後にタイムスタンプされ得る。そのような時間的マッピングの一例は、上で説明した図4Aに示される。
図5Bの例を再び参照すると、方法550は、再帰的であってよい。たとえば、少なくとも1つのプロセッサは、(たとえば次のクロックサイクルで生成および/または受信された)画像センサからの各新たな信号セットでステップ555および557を反復してよい。画素にわたる信号における任意の変化は、その後、ステップ557において、ステートマシン探索をトリガしてよい。これは、所定の期間にわたり、または複数のパターンの最後に対応する1または複数の最終イベントが検出されるまで反復してよい。
ステップ559において、少なくとも1つのプロセッサは、1または複数の第2のイベントおよび1または複数の第1のイベントに対応する投影ラインを識別するために、1または複数の候補を用いてよい。たとえば、図4Bに関して上述したように、少なくとも1つのプロセッサは、画像センサの画素に曲線を形成するために1または複数の第1のイベントと1または複数の第2のイベントとを連結し、たとえば投影ラインに関連付けられたパターンを有するプロジェクタ、投影ラインパターンの格納データベースなどからの信号に基づいて、曲線を投影ラインにマッピングしてよい。
ステップ561において、少なくとも1つのプロセッサは、識別されたラインに基づいて、1または複数の第1の画素および1または複数の第2の画素に関する3次元光線を計算してよい。たとえば、図3Bに示すように、少なくとも1つのプロセッサは、識別された曲線内の点に関して、画像センサを起点とする光線を計算してよい。
ステップ563において、少なくとも1つのプロセッサは、3次元光線、および識別されたラインに対応するラインの1つに関連付けられた平面方程式に基づいて、1または複数の第1の画素および1または複数の第2の画素に関して3次元像点を計算してよい。たとえば、図3Bに示すように、3次元点は、画像センサを起点とする光線と、関連する平面方程式との交点を備えてよい。上述したように、識別された曲線に連結された1または複数の第1のイベントおよび1または複数の第2のイベントをもたらす受信された反射内のパターン(または符号化シンボル)は、関連する平面方程式と一致してよい。たとえば、少なくとも1つのプロセッサは、関連する平面方程式にパターンをマッピングするために、プロジェクタのためのコントローラ、1または複数の平面方程式を格納している非一時的メモリなどにアクセスしてよい。
たとえば、画素が、(たとえば既知のステートマシンを介して)複数のパターンのうちのパターンと一致するイベントを有する一連の信号を生成した場合、その画素からの3次元光線は、パターンを用いて決定された平面方程式に投影され得る。いくつかの実施形態において、パターンは、インデックスを付けられた1または複数のシンボルを符号化し、またはパターンに関連付けられた平面方程式を他の方法で示してよい。したがって、少なくとも1つのプロセッサは、平面方程式を取得し、画像センサからの信号に符号化されたアドレスに基づいて、そこからの反射を受信した(たとえば3次元光線の起点となるための)画素の位置を抽出してよい。
複数のパターンのうちのパターンが、(たとえばシーン内の動的運動によって)複数の画素にわたり広がる反射をもたらした場合、最終画素(たとえば、複数のパターンのうちのパターンの終わりに対応する最終信号を生成する画素)における3次元点は、最終画素を起点とする3次元光線を用いて、かつパターンに関連付けられた平面方程式に基づいて決定され得る。少なくとも1つのプロセッサは、その後、反射を受信する複数の画素内の他の画素に関してステートマシンをファイナライズするために、最終信号から(時間的に)逆に進行してよい。たとえば、画像センサは、少なくとも1つのプロセッサが過去の画素に関するタイムスタンプならびに最新の画素に関するタイムスタンプを有するように、画素からの各測定におけるタイムスタンプを符号化してよい。したがって、これらの他の画素における3次元点は、他の画素を起点とする3次元光線を用いて、かつパターンに関連付けられた平面方程式に基づいて決定されてよく、これらの点は、過去のタイムスタンプに関連付けられ得る。
ステップ559に加えて、またはその代わりに、方法500は、1または複数の第1のイベントおよび1または複数の第2のイベントを復号し、少なくとも1つの空間特性を取得するために、候補および1または複数のステートマシンを用いることを含んでよい。たとえば、少なくとも1つのプロセッサが、3次元点を決定するために復号された平面方程式を用い得るように、少なくとも1つの空間特性は、パターンに関連付けられた平面方程式を備えてよい。追加または代替として、少なくとも1つのプロセッサが、1または複数の第1のイベントおよび1または複数の第2のイベントを対応するパターンにマッピングする際、復号された少なくとも1つの空間特性を用い得るように、少なくとも1つの空間特性は、周波数、輝度などを備えてよい。
本開示と一貫して、(たとえば図3のプロジェクタ301からの)投影パターンは、パターンが投影された位置にインデックスされた1または複数のシンボルを符号化してよい。図6は、複数の画素にわたるそのようなシンボルの復号を可能にするための(たとえば図5Aのステップ507およびステップ513の再帰的実行に基づく、または図5Bのステップ553およびステップ557の再帰的実行に基づく)ステートマシン探索の例を示す図である。図6に示すように、(たとえば、図5Aのステップ507または図5Bのステップ553に対応し得る)ステップ610は、第1の画素において検出された(たとえば、ステップ610においてシンボル「1」を符号化するものとして示される)1または複数の初期イベントに基づいて、ステートマシンを初期化することを含んでよい。初期イベント(複数も可)は、第1の画素から受信された1または複数の信号に基づいてよい。(たとえば、ステップ620においてシンボル「0」を符号化するものとして示された)1または複数の後続イベントもまた、第1の画素において検出され得る。これらの後続イベントは、既知のステートマシンを介して初期イベント(複数も可)にリンクする。したがって、シンボル「1」およびシンボル「0」は連結され、対応するパターンが投影された位置にインデックスされたシンボルセットの始まりを形成する。
動的シーンの場合、たとえばステップ630においてシンボル「0」を符号化するものとして示された1または複数の後続イベントは、ステートマシンから予想されるように、第1の画素とは異なる画素で受信され得る。したがって、図6に示されるように、少なくとも1つのプロセッサは、これらの後続イベントを過去のイベント(複数も可)(図6の例においてステップ610および620に示されたシンボルを符号化するイベント)に連結するために、(影付きのエリアで表された)近隣画素を探索してよい。したがって、過去のイベント(複数も可)のステートマシンは、未完成のまま残されてよく(たとえば、ステートマシンは「0」が後続した状態の「1」のままであり)、(「0」が後続した状態の「1」を記述し、その後再び「0」を記述する)新たな候補ステートマシンが異なる画素に追加される。
ステップ640において、たとえばシンボル「1」を符号化するものとして示された1または複数の後続イベントは、ステートマシンから予想されるように、ステップ630とは異なる画素で受信され得る。したがって、図6に示すように、少なくとも1つのプロセッサは、これらの後続イベントを過去のイベント(複数も可)(図6の例においてステップ630に示されるシンボルを符号化するイベント)に連結するために(影付きエリアで表された)近隣画素を再び探索してよい。したがって、過去のイベント(複数も可)のステートマシンは、未完成のまま残されてよく(たとえば、ステートマシンは2つの「0」が後続した状態の「1」のままであり)、(2つの「0」が後続し、その後「1」が後続した状態の「1」を記述する)新たな候補ステートマシンが異なる画素に追加される。
本開示と一貫して、1または複数のイベントが、(たとえば、対応するパターンが投射された位置にインデックスされたシンボルシーケンスの終わりであるシンボルを符号化する)複数のパターンの1または複数の最後に対応して検出される場合、少なくとも1つのプロセッサは、現在の画素に関してステートマシンを完成させ、その後、過去のイベント(複数も可)に関する画素のステートマシンを完成させるために時間的に逆に進行してよい。追加または代替として、少なくとも1つのプロセッサは、少なくとも1つのプロセッサが複数の投射パターンを区別し得るように、十分な数のイベント(たとえば第1のイベント、第2のイベントなど)が受信された時にステートマシンを完成させてよい。
図6の復号プロセスへの追加または代替として、本開示の実施形態は、三角測量のための未完成ステートマシンならびにファイナライズされたステートマシンを用いてよい。たとえば、各復号されたシンボルは、その画素に関連付けられた現在のステートマシンを用いて、最も可能性の高いパターンにマッピングされ、その画素の位置での三角測量のために最も可能性の高いパターンにインデックスされたプロジェクタの位置を用いてよい。したがって、パターンの終わりがまだ検出されていないことによりステートマシンが未完成であっても、(現在の画素または1または複数の過去の画素において)いくつのシンボルが既に復号されたかに依存して変化する精度で、三角測量が起こり得る。追加または代替として、少なくとも1つのプロセッサは、現在復号中のパターンが、同じ画素または付近の画素で過去に受信されたものと同じパターンであると仮定してよい。たとえば、少なくとも1つのプロセッサは、プロジェクタが、シーン内の同じ位置に向かって連続して反復的に同じパターンを送信すると、この仮定を行ってよい。
いくつかの実施形態において、1または複数のエラー訂正がシンボルに符号化され得る。たとえば、パターンの最後にある1または複数の追加のシンボルは、たとえば(チェックビット、パリティビットなどの)チェックサムまたは他のブロック補正コードなどのエラー訂正シンボルを備えてよい。追加または代替として、1または複数の追加のシンボルは、畳込みコードまたは他の連続訂正コードを形成するためにパターンの中で追加され得る。加えて、そのようなエラー訂正と共に、またはその代わりに、プロジェクタは、システムが同じパターンを何度も受信することを除外するように、パターンを時間ループで投影するように構成されてもよい。したがって、1つの失われたパターンの結果、1つの失われた深さ計算が生じるが、単一フレーム損失を除いて、一連の3次元画像の全体に影響を及ぼすことはない。また、この失われたフレームは、近隣フレームからの外挿を用いて復元され得る。
「0」および「1」を用いて示されたが、電磁パルスの特性(たとえば、特定のシンボルに関連するパルスの格納特性)に対応するシンボルの辞書に基づいて、任意の数のシンボルが用いられ得る。より大きな辞書を有することにより、長さが短い固有パターンのセットを生成することが可能であり得る。
また、単純な近傍探索を用いて説明されたが、ステートマシン探索は、エピポーラ線または探索のための他の任意の適当な画素エリアに沿って行われ得る。たとえば、図4Bに関して上述したように、ステートマシン探索は、投影ラインに対応する曲線を識別するために、1または複数の予想曲線に沿って行われ得る。また、図7は、たとえば図2Aの画像センサ200、図2Bの画像センサ250などの画像センサを用いて検出されたイベントをクラスタに連結するための方法例700を示す。
図7は、本開示の実施形態と合致する、画像センサからのイベントをクラスタに連結するための典型的な方法700のフローチャートである。図7の方法700は、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)と同じチップ上にマイクロプロセッサとして統合されるか、処理システムの一部として個別に提供されるかにかかわらず、少なくとも1つのプロセッサを用いて行われ得る。少なくとも1つのプロセッサは、本明細書で更に開示されるように、信号を送受信する目的で、画像センサと電気通信状態であってよい。
ステップ701において、少なくとも1つのプロセッサは、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)からイベントを受信してよい。方法500のステップ505に関して上述したように、イベントは、イベントベースの画像センサからの信号、または(たとえばクロック回路を用いる)連続画像センサの信号から抽出されたイベントを備えてよい。
ステップ703において、少なくとも1つのプロセッサは、少なくとも1つの連結性基準が満たされると、受信したイベントを、最も新しいイベントに連結してよい。たとえば、少なくとも1つのプロセッサは、受信したイベントと最も新しいイベントとの間の時間的距離を決定し、時間的距離が閾値を満たす場合、それらを連結してよい。追加または代替として、少なくとも1つのプロセッサは、受信したイベントと最も新しいイベントとの間の空間的距離を決定し、空間的距離が閾値を満たす場合、それらを連結してよい。したがって、少なくとも1つの連結性基準は、時間閾値、空間閾値、またはそれらの任意の組み合わせを備えてよい。組み合わせに関する1つの例において、空間閾値は、複数の時間閾値のどれが満たされたかに基づいて調整され得る。そのような例において、時間的に近いイベントは、空間的に近いと予想され得る。組み合わせに関する他の例において、時間閾値は、複数の空間閾値のどれが満たされたかに基づいて調整され得る。そのような例において、空間的に近いイベントは、時間的に近いと予想され得る。
ステップ705において、少なくとも1つのプロセッサは、他の新しいイベントに関して少なくとも1つの連結性基準が満たされたかを決定してよい。たとえば、少なくとも1つのプロセッサは、受信したイベントに関連する他の全ての新しいイベントを発見するために、少なくとも1つの連結性基準を用いてよい。
ステップ707において、少なくとも1つのプロセッサは、少なくとも1つの連結性基準が満たされた全ての新しいイベントに関連付けられたクラスタ識別子を合併してよい。したがって、少なくとも1つの連結性基準を満たすステップ703および705からの全ての新しいイベントは、ステップ701において受信されたイベントと同じクラスタ識別子を割り当てられる。
ステップ709において、少なくとも1つのプロセッサは、関連イベントのセットとしてクラスタを出力してよい。たとえば、同じクラスタ識別子を有する全てのイベントが出力され得る。
方法700に関して用いられ得る典型的な実施形態および特徴は、2019年1月30日に出願された、“Method of Processing Information from an Event-Based Sensor”と題された欧州特許第19154401.4号において説明される。この出願の開示は、参照によって本明細書に組み込まれる。
方法700のクラスタアルゴリズムは、近隣画素の探索ではなく図6の探索を行うために用いられ得る。たとえば、ステップ703および705の連結性基準は、どの画素が探索されるべきかを識別するために用いられ得る。また、既に同じクラスタ識別子を有する任意の画素も探索に含まれ得る。
追加または代替として、方法700は、その後各クラスタが復号され、そのクラスタの復号されたシンボルがステートマシンを介して連結されるように、画像センサから受信した生のイベントをクラスタ化するために用いられ得る。したがって、各シンボルを復号することおよびシンボルを順次連結することではなく、雑音を低減するためにクラスタ化の後に復号および連結が行われ得る。
図8は、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)の信号から検出されたイベントに基づくシンボル符号化のための2つの技術を示す図である。図8の例800に示すように、検出されたイベントは、画像センサの信号から検出された投影パルスの始まりおよび終わりを合図してよい。たとえば、図2Aの画像センサ200における光の輝度は、時間およびそこから検出された振幅の増加または減少にわたり追跡されてよく、増加は、投影パルスの始まりを示し、対応する減少は、投影パルスの終わりを示してよい。他の例において、図2Bの画像センサ250は、イベントベースであるため、そこからの任意の信号は、トリガ信号をもたらした振幅の増加または減少を表してよい。検出された変化を用いて可能なパターンが復号され、どのパターンが受信されたかの識別を可能にし得る。例800には示されないが、異なるパルスは異なるシンボルを符号化してよく、たとえばパルス1、3、および4は、シンボル「1」を符号化し、パルス2は、シンボル「0」を符号化してよい。したがって、例800は、「1011」として復号され得る。
図8の例850において、検出されたパルス間で決定された時間が、復号のために用いられる。たとえば、図2Aの画像センサ200における光の輝度は、時間およびそこから検出された振幅の変化にわたり追跡され得る。他の例において、図2Bの画像センサ250は、イベントベースであるため、そこからの任意の信号は、トリガ信号をもたらした振幅の変化を表してよい。パルス間の時間的空間を用いて可能なパターンが復号され、どのパターンが受信されたかの識別を可能にし得る。例850には示されないが、異なる時間的空間は異なるシンボルを符号化してよい。たとえば、例850において、パルス1と2、パルス3と4、およびパルス4とパターンの終わりとの間の空間は、シンボル「1」を符号化してよく、一方、パルス2と3との間の空間は、シンボル「0」を符号化してよい。したがって、例800と同様、例850は、「1011」として復号され得る。
マッチングに関する他の技術(図8には不図示)は、複数の時間に検出された光の振幅を追跡すること、およびそれに基づいてどのパターンが受信されたかを識別することを含んでよい。たとえば、図2Aの画像センサ200における光の輝度は、時間にわたり追跡され、そこから振幅の変化が検出され得る。他の例において、図2Bの画像センサ250は、イベントベースであるため、そこからの任意の信号は、トリガ信号をもたらした振幅の変化を表し得る。特定の振幅に対応するシンボルおよび/または特定の振幅の時間的長さに対応するシンボルを用いて可能なパターンが復号され、どのパターンが受信されたかの識別を可能にし得る。
他の例において、図2Aの画像センサ200における光の周波数は、時間にわたり追跡され、そこから周波数の変化が検出され得る。特定の周波数に対応するシンボルおよび/または特定の周波数の時間的長さに対応するシンボルを用いて可能なパターンが復号され、どのパターンが受信されたかの識別を可能にし得る。
図8には示されないが、いくつかの検出されたイベントは破棄され得る。たとえば、3次元撮像を行う少なくとも1つのプロセッサは、閾値を超過する時間量および/または閾値未満の時間量離れたデジタル信号のいずれを破棄してもよい。ソフトウェアまたは論理ベースのローバンドパスフィルタおよび/またはハイバンドパスフィルタをそれぞれ用いることによって、システムは、パターン検出の精度を更に高め、雑音を低減させ得る。ローバンドパスフィルタおよび/またはハイバンドパスフィルタは、ソフトウェアにおいて実装されてよく、または、たとえば図2Aの測定回路205、図2Bの露光測定回路257、画像センサに接続された読出しシステムなどへの統合によって、ファームウェアまたはハードウェアにおいて実装され得る。たとえば、バンドパスフィルタのハードウェア実装は、センサのアナログ設定を変更することを含んでよい。
同様に、3次元撮像を行う少なくとも1つのプロセッサは、追加または代替として、所定の閾値範囲内にない帯域幅を伴うデジタル信号のいずれを破棄してもよい。たとえば、シーンに複数のパターンを放出するプロジェクタは、特定の周波数(およびそれに伴う帯域幅)範囲内の電磁パルスを投影するように構成され得る。したがって、システムは、雑音をフィルタし、プロジェクタによって放出されたものに対応する周波数のみを捕捉するために、(ハードウェアおよび/またはソフトウェアにおける)帯域幅フィルタを用いてよい。追加または代替として、システムは、雑音を低減するために、(ハードウェアおよび/またはソフトウェアにおける)帯域幅フィルタを用いて高周波数および/または低周波数の光をフィルタしてよい。
上述したソフトウェアおよび/またはハードウェアバンドパスおよび/または周波数フィルタに加えて、またはその代わりに、システムは、画像センサに衝突するシーンからの光をフィルタするために用いられる1または複数の光学フィルタを含んでよい。たとえば、図2Aおよび図2Bに関して、光学フィルタ(複数も可)は、所定の範囲内にない波長を伴う任意の反射を遮断するように構成され得る。
いくつかの実施形態において、例800に示すような単一のイベントまたは例850に示すような単一のイベント間のタイミングを用いるのではなく、本開示の実施形態は、イベントバーストを用いてシンボルを符号化してよい。たとえば、図9は、たとえば図2Aの画像センサ200、図2Bの画像センサ250などの画像センサを用いてイベントバーストを検出するための方法例900を示す。
図9は、本開示の実施形態と合致する、イベントバーストを検出するための典型的な方法900のフローチャートである。図9の方法900は、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)と同じチップ上にマイクロプロセッサとして統合されるか、処理システムの一部として個別に提供されるかにかかわらず、少なくとも1つのプロセッサを用いて行われ得る。少なくとも1つのプロセッサは、本明細書で更に開示されるように、信号を送受信する目的で、画像センサと電気通信状態であってよい。
ステップ901において、少なくとも1つのプロセッサは、画像センサ(たとえば図2Aの画像センサ200、図2Bの画像センサ250など)からイベントを受信してよい。方法500のステップ505に関して上述したように、イベントは、イベントベースの画像センサからの信号、または(たとえばクロック回路を用いる)連続画像センサの信号から抽出されたイベントを備えてよい。
ステップ903において、少なくとも1つのプロセッサは、イベントの極性を確認してよい。たとえば、少なくとも1つのプロセッサは、極性がイベントに関して予想される極性と一致するか、複数の増加または減少が予想される場合に過去のイベントと同じであるか、または極性変化が予想される場合に過去のイベントと異なるかを決定してよい。たとえば、投影パターンは、増加信号または減少信号を合図するために、複数の(たとえば2つ、3つなどの)イベントを生成するように構成され得る。そのような複数は、ステップ903における雑音のフィルタリングを可能にし得る。極性が有効でない場合、少なくとも1つのプロセッサは、図9に示すように、イベントを破棄し、新たなイベントでステップ901からやり直してよい。追加または代替として、極性が有効でない場合、少なくとも1つのプロセッサは、現在のバーストを破棄し、見込みのある新たなバーストの始まりとしてステップ901からのイベントを用いてよい。
ステップ905において、少なくとも1つのプロセッサは、過去のイベントから時間的に過度に離れている場合(たとえば時間差が閾値を超過する場合)、受信したイベントを破棄してよい。したがって、少なくとも1つのプロセッサは、単一のバーストの一部を形成するためには時間的に過度に離れているイベントを連結することを回避してよい。イベントが過度に離れている場合、少なくとも1つのプロセッサは、図9に示すように、イベントを破棄し、新たなイベントでステップ901からやり直してよい。追加または代替として、イベントが過度に離れている場合、少なくとも1つのプロセッサは、現在のバーストを破棄し、見込みのある新たなバーストの始まりとしてステップ901からのイベントを用いてよい。
ステップ907において、少なくとも1つのプロセッサは、関連画素のイベントカウンタを増分してよい。たとえば、関連画素は、ステップ901のイベントが受信された画素を備えてよい。イベントカウンタは、ステップ903および905の下で、同じバースト内としての資格を得る、ステップ901の回帰的実行で受信された整数カウントのイベントを備えてよい。
ステップ909において、少なくとも1つのプロセッサは、イベントカウンタがイベント閾値を超過すると、バーストを抽出してよい。たとえば、イベント閾値は、2~10のイベントを備えてよい。他の実施形態において、より大きなイベント閾値が用いられ得る。バーストが抽出される場合、少なくとも1つのプロセッサは、イベントカウンタをリセットしてよい。イベントカウンタがイベント閾値を超過しない場合、少なくとも1つのプロセッサは、イベントカウンタをリセットすることなくステップ901へ戻ってよい。したがって、ステップ903および905の下で、同じバースト内としての資格を得る追加のバーストが検出され、ステップ907においてイベントカウンタに追加され得る。
いくつかの実施形態において、方法900は更に、現在のバーストの第1のイベントから時間的に過度に離れている場合、受信されたイベントを破棄することを含んでよい。したがって、方法900は、雑音によりバーストが意図せず閾値を超過して延長されることを防止し得る。
追加または代替として、方法900は、バーストが、単一の画素または画像センサ全体にわたるのではなく領域内のみで検出されるように、領域ごとにイベントの数を追跡してよい。したがって、方法900は、画像センサの様々な部分における同時バーストの検出を可能にし得る。
イベントが破棄されると常に、少なくとも1つのプロセッサは、イベントカウンタをリセットしてよい。あるいは、いくつかの実施形態において、少なくとも1つのプロセッサは、イベントが破棄された場合でも、対応するイベントカウンタを格納してよい。いくつかの実施形態は、保存および破棄の組み合わせを用いてよい。たとえば、イベントカウンタは、ステップ903においてイベントが破棄された場合、保存され得るが、ステップ905においてイベントが破棄された場合、リセットされ得る。
方法900の典型的な実施形態の詳細な説明は、2019年1月30日に出願された、“Method and Apparatus of Processing a Signal from an Event-Based Sensor”と題された国際特許出願第PCT/EP2019/051919号において説明される。この出願の開示は、参照によって本明細書に組み込まれる。
方法900から抽出されたバーストは、(たとえば符号化パターンの一部として用いられる)シンボルを備えてよい。たとえば、シンボルを符号化するために単一のイベントではなくバーストを用いることによって、システムは、精度を高め、雑音を低減させ得る。追加または代替として、方法900から抽出されたバーストは、符号化パターンを形成するシンボルセットを備えてよい。たとえば、パターンを符号化するためにバーストを用いることによって、システムは、より高い精度かつ低減された雑音で、時間において異なるパターンを区別し得る。
図2Aまたは図2Bのアーキテクチャを用いて説明されたが、1または複数の感光性要素(たとえばフォトダイオード)に衝突する光の輝度に基づく信号を捕捉するように適合された任意の画像センサが用いられ得る。したがって、トランジスタ、キャパシタ、スイッチ、および/またはそのような捕捉を行うように配置された他の回路部品の任意の組み合わせが、本開示のシステムにおいて用いられ得る。また、本開示のシステムは、(たとえば図2Aの画像センサ200などの)任意の同期画像センサまたは(たとえば図2Bの画像センサ250などの)任意のイベントベースの画像センサを用いてよい。
特定の実施形態が、3次元光線および3次元像点の計算を参照して説明されたが、本開示と合致するシステムは、他の動作を行ってよく、および/または他のアプリケーションで用いられてよい。たとえば、いくつかの実施形態において、反射が抽出される画素の位置は、3次元シーンを再構成するため、または(たとえば人物または他の物体などの)3次元物体を検出するために用いられ得る。そのような実施形態において、画素位置は、システムの較正の結果として3次元位置に対応し得る。
本開示の実施形態は、たとえばルックアップテーブルまたは機械学習を用いることによって、三角測量演算を行う必要なく3次元点を計算し得る。いくつかの実施形態において、特定の画素位置i、jにおいて識別されたラインから3次元点を決定するために、格納されたルックアップテーブルが少なくとも1つのプロセッサによって用いられ得る。追加または代替として、機械学習は、較正されたシステムに関する画素位置から3次元点を決定するために用いられ得る。
また更なる実施形態において、分析の目的で画素差が用いられ得る。たとえば、視差(「d」)は、センサ上で投影ラインが観測された場所(「x」)と、プロジェクタ上の相当する画素としてそれが放出された場所(「x_L」)との間の画素差を指し、d=x-x_Lとして表されるものとする。いくつかの実施形態において、位置「x」は、たとえばそれが機械学習を介して抽出され得るアプリケーションにおいて、「x_L」を直接知ることなく、直接用いられてもよい。そのようなアプリケーションにおいて、3次元点は、背景と前景とを区分するために、「x」画素座標および関連する視差から計算され得る。たとえば、少なくとも1つのプロセッサは、深さを再構成することなく、視差測定値を閾値付けてよい(たとえば、d≦閾値は背景となり、d≧閾値は前景となる)。自動車または監視アプリケーションにおいて、たとえば、地上対物体上の点から点を除去することが望ましい。更なる例として、顔面、物体、および/またはジェスチャ認識は、視差から直接受信し、行われ得る。
物体の深さまたはセンサの関心領域(ROI)内の深さの推定は、物体バウンディングボックスまたはROI内の視差の(平均化のような)統合の後に行われ得る。また、いくつかの実施形態において、逆深さモデルを用いる同時ランドスケーピングおよびマッピング(SLAM)アプリケーションは、比例置換として視差を用いてよい。
上記説明は、例示を目的として提示された。上記説明は、網羅的ではなく、開示される形態または実施形態そのものに限定されるものではない。実施形態の変更および適合は、本明細書の考察および開示される実施形態の実施により明らかになる。たとえば、説明された実装は、ハードウェアを含むが、本開示と合致するシステムおよび方法は、ハードウェアおよびソフトウェアで実施され得る。加えて、特定の構成要素が互いに結合されるものとして説明されたが、そのような構成要素は、互いに統合されてよく、または任意の適当な形式で分散してよい。
また、本明細書において典型的な実施形態が説明されたが、その範囲は、本開示に基づく同等の要素、変更、省略、(たとえば様々な実施形態にわたる態様の)組み合わせ、適合、および/または代替を有する任意のかつ全ての実施形態を含む。特許請求の範囲における要素は、特許請求の範囲において用いられる言語に基づいて幅広く解釈されなければならず、本明細書において、または本出願の審査中に説明される例に限定されるべきではなく、この例は、非排他的なものとされる。また、開示される方法のステップは、ステップの並べ替えおよび/またはステップの挿入または削除を含む任意の方法で変更され得る。
上記で参照した特許および特許出願に加えて、2019年2月22日に出願された、Systems and Methods for Three-Dimensional Imaging and Sensingと題された米国特許第62/809,557号、2019年2月26日に出願された、Systems and Methods for Three-Dimensional Imaging and Sensingと題された米国特許第62/810,926号、および、2020年1月23日に出願された、Systems and Methods for Three-Dimensional Imaging and Sensingと題された米国特許第62/965,149号の各々の全体が、参照によって本明細書に組み込まれるものである。
本開示の特徴および利点は、本明細書から明らかであり、よって、添付の特許請求の範囲は、本開示の適切な主旨および範囲内に収まる全てのシステムおよび方法を包括することが意図される。本明細書で用いられる場合、不定冠詞「a」および「an」は、「1または複数の」を意味する。同様に、複数形の用語の使用は、所与の文脈において明確にされない限り、必ずしも複数を意味するわけではない。特に明記されない限り、たとえば「および」または「または」などの言葉は、「および/または」を意味する。また、本開示を研究することにより数々の変更例および変形例に容易に思い至ることから、本開示を、例示および説明された構成および動作そのものに限定することは所望されず、したがって、全ての適当な変更例および均等物は、本開示の範囲内に収まることが訴えられ得る。
他の実施形態は、本明細書の考察および本明細書に開示された実施形態の実施により理解される。本明細書および例は、単なる例とみなされることが意図されており、開示される実施形態の適切な範囲および主旨は、以下の特許請求の範囲によって示されるものである。