(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-07
(45)【発行日】2024-11-15
(54)【発明の名称】イベントベース光センサのピクセル配列から非同期的に受信された一連のイベントを処理する方法
(51)【国際特許分類】
G06T 1/60 20060101AFI20241108BHJP
G06T 7/593 20170101ALI20241108BHJP
H04N 23/54 20230101ALI20241108BHJP
H04N 23/60 20230101ALI20241108BHJP
【FI】
G06T1/60 450D
G06T7/593
H04N23/54
H04N23/60 500
(21)【出願番号】P 2021546751
(86)(22)【出願日】2020-02-10
(86)【国際出願番号】 EP2020053366
(87)【国際公開番号】W WO2020165106
(87)【国際公開日】2020-08-20
【審査請求日】2022-10-05
(32)【優先日】2019-02-11
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】516077769
【氏名又は名称】プロフジー
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ダニエル・ペッローネ
(72)【発明者】
【氏名】グザヴィエ・ラゴルス
(72)【発明者】
【氏名】ヴィトール・シャンバッハ・コスタ
(72)【発明者】
【氏名】ルドヴィク・ショタール
(72)【発明者】
【氏名】シルヴァン・ブローアン
【審査官】▲徳▼田 賢二
(56)【参考文献】
【文献】特開2017-130185(JP,A)
【文献】特表2017-530467(JP,A)
【文献】特表2018-501675(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/60
G06T 7/593
H04N 23/54
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
イベントベース光センサ(10)のピクセル配列から非同期的に受信された一連のイベントを処理する方法であって、
前記一連の各イベントが、前記イベントがそこから受信される前記配列のピクセルのアドレスと、前記ピクセルによって感知される入射光に依存する極性とを含み、
前記方法が、
前記配列の前記ピクセルの少なくとも一部に対するイベントデータを含むデータ構造を
第1のメモリ(16)内に記憶するステップであって、ピクセルに対する前記イベントデータが、前記ピクセルから直近に受信された少なくとも1つのイベントのタイムスタンプと前記極性を含む、ステップと、
タイムスロットの間に、前記一連の前記イベントが受信されるときに
、前記第1のメモリ(16)より速いアクセスを有する第2のメモリ(18)を用いて、前記配列の前記ピクセルに対するマップを構築するステップであって、前記マップが、前記配列の各ピクセルに対する情報要素を含み、前記情報要素が、前記タイムスロットの間に受信された
対応するイベントの前記極性、もしくは、前記タイムスロットの間に受信された対応するイベントの不在においてはゼロ値を含む、ステップと、
前記マップのゼロではない前記情報要素を使用して前記タイムスロットの後に前記データ構造を更新するステップとを含む、方法。
【請求項2】
前記データ構造が、グローバルメモリ(16)内に記憶され、前記マップが、ローカルメモリ(18)
を用いて構築される、請求項1に記載の方法。
【請求項3】
前記グローバルメモリ(16)が、ランダムアクセスメモリRAMメモリである一方で、前記ローカルメモリ(18)が、キャッシュメモリである、
請求項2に記載の方法。
【請求項4】
前記マップを使用して前記タイムスロットの後に前記データ構造を更新するステップが、ラスタースキャン順に前記記憶されたデータ構造にアクセスするステップを含む、請求項1に記載の方法。
【請求項5】
前記タイムスロットが、たかだか2ミリ秒の長さである、請求項1に記載の方法。
【請求項6】
前記タイムスロットが、ピクセル配列から受信されたイベントに基づいて適応される持続時間を有する、請求項1に記載の方法。
【請求項7】
前記マップを使用して前記タイムスロットの後に前記データ構造を更新するステップが、前記マップがゼロではない前記情報要素をそれに対して有する各ピクセルに対して前記イベントデータを変更するステップを含む、請求項1に記載の方法。
【請求項8】
ピクセルに対する前記イベントデータを変更するステップが、前記タイムスロットに対して規定されたタイムスタンプを参照することによって、前記ピクセルに対するイベントデータを設定するステップを含む、
請求項7に記載の方法。
【請求項9】
タイムスロットの間に前記マップを構築するステップが、
前記配列のすべての前記ピクセルに対して、ゼロ値の前記情報要素で前記マップを初期化するステップと、
前記マップ内の前記情報要素がそれに対して前記ゼロ値を有するピクセルから、前記タイムスロットの間にイベントを受信すると、前記受信されたイベントの前記極性に、前記ピクセルについての前記情報要素を設定するステップと、
前記タイムスロットが終了するときに前記マップを出力するステップとを含む、請求項1に記載の方法。
【請求項10】
タイムスロットの間に前記マップを構築するステップが、前記マップ内のゼロではない情報要素に対応するピクセルから、前記タイムスロットの間にイベントを受信すると、前記受信されたイベントの前記極性に前記情報要素を設定するステップをさらに含む、
請求項9に記載の方法。
【請求項11】
イベントの前記極性が、前記対応するピクセルによって感知された光が増加するときに第1の値を有し、前記対応するピクセルによって感知された光が減少するときに第2の値を有する、請求項1に記載の方法。
【請求項12】
前記配列のピクセルから受信されたイベントの前記イベントデータが、前記ピクセルによって感知された光強度の測度を含み、
前記タイムスロットの間にイベントがそこから受信されたピクセルに対する前記マップ内に含まれる前記情報要素が、前記イベントの光強度の前記測度に依存する値を含む、
請求項1に記載の方法。
【請求項13】
イベントベース光センサのピクセル配列に結合するためのプロセッサであって、前記プロセッサ(12)が、前記ピクセル配列から非同期的に受信された一連のイベントを処理するために、
請求項1から12のいずれか一項に記載の方法を実装するように構成される、プロセッサ。
【請求項14】
シーンの3D復元の方法であって、
空間的に分離されたロケーションにおいて前記シーンの前に少なくとも第1および第2のイベントベース光センサ(10)を置くステップであって、前記第1のイベントベース光センサが、第1の一連のイベントをもたらすピクセル配列を有し、前記第2のイベントベース光センサが、第2の一連のイベントをもたらすピクセル配列を有する、ステップと、
第1および第2のデータ構造をそれぞれ取得するために、
請求項1から12のいずれか一項に記載の方法によって前記第1および第2の一連のイベントの各々を処理するステップと、
前記第1および第2のデータ構造を使用して前記第1および前記第2のイベントベース光センサからそれぞれ受信されたイベントのペアをステレオマッチングするステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はマシンビジョンに関し、特に、イベントベース光センサのピクセル配列から非同期的に受信された一連のイベントを処理する方法に関する。
【背景技術】
【0002】
マシンビジョンは、たとえば、セキュリティアプリケーション(たとえば、監視、侵入検出、対象物検出、顔認識など)、環境に資する使用アプリケーション(たとえば、ライティング制御)、対象物検出および追跡アプリケーション、自動検査、プロセス制御、およびロボット誘導などの、多くのタイプのアプリケーションにおいて使用するために、画像を収集、処理、分析および理解するための方法を含む分野である。それゆえ、マシンビジョンは、多くの異なるシステムとともに統合され得る。
【0003】
技術的には、上記のアプリケーションは、フレームベース画像センサを使用することによって達成され、フレームベース画像センサは、各センサ素子(ピクセル)もしくは各ピクセルの行/列に対して逐次的に、または様々なパターン、ピクセル並列で、しかし常に何らかの制限されたフレームレートにおいて時間サンプリングされて、シーンからビジュアル情報を収集する。それゆえ、フレームベース画像センサは、速い運動のレンダリングおよびステレオマッチングなどにおいて、多くのアプリケーションにおいて限界を有する。
【0004】
イベントベースセンサは、フレームベース画像センサの限界を克服するために開発された。すべてのピクセルを有する画像を同時に捕捉し、アーチファクトを補償して情報を抑制しようとする代わりに、イベントベース画像センサは、センサから見えるシーンから各ピクセルによって感知された時間的な輝度プロフィルを収集する。イベントベースセンサは、ピクセルによって個別に収集される情報の高い時間分解能に起因して、ビジュアルシーン内で速く変化する情報を捕捉することができる。より詳細なそのようなイベントベースマシンビジョン技術は、Posch, C.、Serrano-Gotarredona, T.、Linares-Barranco, B.、およびDelbruck, T.ら、(2014)、「Retinomorphic event-based vision sensors: bioinspired cameras with spiking output」、Proceedings of the IEEE、102(10)、1470-1484の文献において説明されている。
【0005】
イベントベースセンサは非同期的なイベントを出力するので、イベントのストリームのいくつかの表現が、様々なアプリケーションを可能にするために必要である。そのような表現は、従来のカメラ内で使用される「フレーム」と同じではあり得ない。
【0006】
一般に、センサの各ピクセルに対して、いくつかのデータは、時間窓の間にピクセルから受信された1つまたは複数のイベントについて記憶される。そのようなデータは、ヒストグラムデータ、すなわちどれほど多くのイベントが、時間窓の間にピクセルから受信されたか、ピクセルから受信された直近のイベントのタイムスタンプ、などを含むことができる。データは、正または負の極性のイベントを区別するため、すなわちピクセルによって感知された光強度を増加させるかまたは減少させるかを示すために、2つのチャネル内に記憶され得る。「EV-SegNet: Semantic Segmentation for Event-based Cameras」、I. AlonsoおよびA. C. Murillo、arXiv:1811.12039v1、2018年11月29日に開示されるデータタイプなど、より精緻なデータタイプが記憶され得る。
【0007】
イベントのストリームからそのように導出されるデータ構造は、ピクセルアドレスを使用してアクセスされ得るので、イベント間の空間的関係を符号化することができる。それは、一般的に、到来するイベントのストリームを処理するプロセッサに関連付けられたRAM(ランダムアクセスメモリ)内に記憶される。プロセッサは、空間的に相関しない配列のピクセルから発生順にイベントを受信する。これは、RAMへのアクセスが、イベントが受信されるごとに発生することを意味し、それは多くの処理リソースを消費する。キャッシングなどのローカルメモリ構想を都合よく使用することはできない。
【先行技術文献】
【特許文献】
【0008】
【文献】米国特許出願公開第2008/0135731号明細書
【文献】欧州特許出願第18305063.2号
【文献】国際公開第2013/093378号
【文献】米国特許第9,628,777号明細書
【文献】国際公開第2016/146938号
【文献】欧州特許出願第19154401.4号
【非特許文献】
【0009】
【文献】Posch, C.、Serrano-Gotarredona, T.、Linares-Barranco, B.、およびDelbruck, T.ら、(2014)、「Retinomorphic event-based vision sensors: bioinspired cameras with spiking output」、Proceedings of the IEEE、102(10)、1470-1484
【文献】「EV-SegNet: Semantic Segmentation for Event-based Cameras」、I. AlonsoおよびA. C. Murillo、arXiv:1811.12039v1、2018年11月29日
【文献】「A 128×128 120 dB 15 μs Latency Asynchronous Temporal Contrast Vision Sensor」、P. Lichtsteinerら、IEEE Journal of Solid-State Circuits、Vol. 43、No. 2、2008年2月、566~576ページ
【文献】「A QVGA 143 dB Dynamic Range Frame-Free PWM Image Sensor With Lossless Pixel-Level Video Compression and Time-Domain CDS」、C. Poschら、IEEE Journal of Solid-State Circuits、Vol. 46、No. 1、2011年1月、259~275ページ
【発明の概要】
【発明が解決しようとする課題】
【0010】
イベントベースデータの処理に対して、コンピューティングリソースの、特にメモリアクセスに関する使用における効率を改善するために、新しい手法が必要である。
【課題を解決するための手段】
【0011】
イベントベース光センサのピクセル配列から非同期的に受信された一連のイベントを処理する方法を提案する。上記一連の各イベントは、イベントがそこから受信される配列のピクセルのアドレスと、前記ピクセルによって感知される入射光に依存する属性値とを含む。方法は、
配列のピクセルの少なくとも一部に対するイベントデータを含むデータ構造を記憶するステップであって、ピクセルに対するイベントデータは、前記ピクセルから直近に受信された少なくとも1つのイベントに関連する、ステップと、
タイムスロットの間に、上記一連のイベントが受信されるときに配列のピクセルに対するマップを構築するステップであって、マップは、配列の各ピクセルに対する情報要素を含み、情報要素は、タイムスロットの間にイベントの不在を示すゼロ値を含む複数の値のうちの1つを有する、ステップと、
マップを使用してタイムスロットの後にデータ構造を更新するステップとを含む。
【0012】
タイムスロット内のイベントをグループ化することは、グループ内の発生順を除去することの基本的な便益を有する。それゆえ、それは、計算上およびアーキテクチャ上の必要性に対して、より便利な順序付の使用を可能にする。
【0013】
一般的に、タイムスロットは比較的短く、たとえば、2ミリ秒未満である。タイムスロットが終了すると、マップが、データ構造を更新するために使用される。マップとデータ構造の両方に対するアドレス方式は、(イベントの発生順ではなく)ピクセルロケーションに基づくので、更新は、方法の遂行を管理しているプロセッサに関連する適切なメモリアーキテクチャを使用して効率的に行うことができる。データ構造が記憶されるメモリ領域は、バッチで更新されるようにアクセスされる。メモリアクセスの数は、タイムスロットが短い場合でも、劇的に低減される。
【0014】
一般的に、データ構造は、第1のメモリ内に記憶され、マップは、第1のメモリより速いアクセスを有する第2のメモリ内に構築される。
【0015】
たとえば、マップが構築されるメモリは、ローカルメモリであってよく、一方で、データ構造は、グローバルメモリ内に記憶される。ローカルメモリは、レベル1(L1)メモリまたはオンチップメモリと呼ばれることもある。1つの可能な実施形態では、グローバルメモリはランダムアクセスメモリRAMメモリであり、ローカルメモリはキャッシュメモリである。
【0016】
限定されることなく、マップを使用してタイムスロットの後にデータ構造を更新することは、ラスタースキャン順に記憶されたデータ構造にアクセスすることを含み得る。
【0017】
タイムスロットは、ピクセル配列から受信されたイベントに基づいて適応されるその持続時間を有し得る。
【0018】
一実施形態では、マップを使用してタイムスロットの後にデータ構造を更新することは、マップが、ゼロ値以外の値を有する情報要素をそれに対して有する各ピクセルに対してイベントデータを変更することを含む。
【0019】
たとえば、ピクセルに対するイベントデータを変更することは、タイムスロットに対して規定されたタイムスタンプを参照することによって、ピクセルに対するイベントデータを設定することを含み得る。この場合、タイムスロット内のイベントタイミング変化は無視されるために、いくつかの時間的正確さは失われる。しかしながら、タイムスロット持続時間が適切に選択される場合、それは、アプリケーションにとって有害ではない。タイムスロットに対して規定されたタイムスタンプを参照することは、イベントのタイムスタンプ上の雑音を低減するという有利な効果を有する。
【0020】
一実施形態では、タイムスロットの間にマップを構築することは、
配列のすべてのピクセルに対する情報要素のゼロ値でマップを初期化することと、
マップ内に含まれる情報要素がそれに対してゼロ値を有するピクセルから、タイムスロットの間にイベントを受信すると、受信されたイベントの属性値に基づいて前記ピクセルに対してマップ内に含まれる情報要素の値を設定することと、
タイムスロットが終了したときにマップを出力することとを含む。
【0021】
タイムスロットの間にマップを構築することは、マップ内に含まれる情報要素がそれに対してゼロ値以外の値を有するピクセルから、タイムスロットの間にイベントを受信すると、受信されたイベントの属性値に基づいて前記ピクセルに対してマップ内に含まれる情報要素の値を設定することをさらに含み得る。
【0022】
配列のピクセルから受信されたイベントの属性値が、前記ピクセルによって感知された光が増加するときに+1などの第1の値、前記ピクセルによって感知された光が減少するときに-1などの第2の値を有するイベントの極性を含む場合、タイムスロットの間にイベントがそこから受信されたピクセルに対してマップ内に含まれる情報要素は、そのイベントの極性を含み得る。
【0023】
配列のピクセルから受信されたイベントの属性値が、前記ピクセルによって感知された光強度の測度を含む場合、タイムスロットの間にイベントがそこから受信されるピクセルに対するマップ内に含まれる情報要素は、そのイベントの光強度の測度に依存する要素を含み得る。
【0024】
本発明の別の態様は、イベントベース光センサのピクセル配列に結合するためのプロセッサに関する。プロセッサは、ピクセル配列から非同期的に受信された一連のイベントを処理するために、上記で規定された方法を実装するように構成される。
【0025】
本発明の別の態様は、シーンの3D復元の方法に関する。方法は、
空間的に分離されたロケーションにおいてシーンの前に少なくとも第1および第2のイベントベース光センサを置くステップであって、第1のイベントベース光センサは第1の一連のイベントをもたらすピクセル配列を有し、第2のイベントベース光センサは第2の一連のイベントをもたらすピクセル配列を有する、ステップと、
第1および第2のデータ構造をそれぞれ取得するために、上記で規定された方法によって第1および第2の一連のイベントの各々を処理するステップと、
第1および第2のデータ構造を使用して第1および第2のイベントベース光センサからそれぞれ受信されたイベントのペアをステレオマッチングするステップとを含む。
【0026】
本発明の他の特徴および利点は、添付の図面を参照する以下の説明の中で明らかになろう。
【図面の簡単な説明】
【0027】
【
図1】本発明の実装形態に適応されるデバイスのブロック図である。
【
図2】本発明による例示的な方法のフローチャートである。
【
図3】本発明によるステレオ処理方法のフローチャートである。
【発明を実施するための形態】
【0028】
図1に示す装置は、シーンに面して設置され、1つまたは複数のレンズを含む収集用光学機器15を通してシーンから光を受信する、イベントベースの非同期的ビジョンセンサ10を含む。センサ10は、収集用光学機器15の像平面内に設置される。それは、ピクセルのマトリックスに構成された感光性素子などのセンシング素子の配列を含む。ピクセルに対応する各センシング素子は、シーン内の光の変動に応じて連続するイベントを作成する。
【0029】
プロセッサ12は、センサ10から生じる情報、すなわち、たとえば様々なピクセルから非同期的に受信されたイベントのシーケンスを処理する。それは、好適なプログラミング言語を使用してプログラミングによって実装され得る。専用の論理回路(ASIC、FPGA、...)を使用するプロセッサ12のハードウェア実装形態も可能である。
【0030】
装置は、少なくとも第1および第2のメモリ16、18をさらに含み、それらはそれぞれ、
図1に示す例示的な例では、バスを介してプロセッサチップに結合されたRAM16、およびプロセッサ12によってキャッシュ方式に従って管理されるオンチップメモリエリア18である。2つのメモリ16、18は、プロセッサ12の中央処理装置(CPU)によって異なる速度でアクセスされ得、すなわち、第2のメモリ18へのアクセスは、第1のメモリ16へのアクセスより速い。他のメモリアーキテクチャおよび技術が、本発明の文脈の中で可能であることは、諒解されよう。たとえば、2つのメモリ16、18は、プロセッサチップの外にあってもよい。代替的に、それらはともに、同じプロセッサチップの一部であってもよい。
【0031】
以後、無制限にRAMと呼ばれる第1のメモリ16は、プロセッサ12によって書き込みおよび/または読み出しを行われる比較的大量のデータを記憶するために使用される。以後、無制限にキャッシュメモリと呼ばれる第2のメモリ18は、プロセッサ12によって、それへのより速いアクセスが必要な、より限定された量のデータを一時的に記憶する。それは、一般的に、その性能およびコストに起因して、RAM16より小さい記憶サイズを有する。
【0032】
図1に示すプロセッサ12およびメモリは、イベントベースセンサ10から離れて統合される。代替アーキテクチャが可能である。特に、
図2に示す処理の一部または全部は、オンチップアーキテクチャにおいて、イベントベースセンサ10と同じ構成要素内で実行され得る。逐次的にまたは並列に動作する2つ以上のプロセッサの間でタスクを分割することも可能である。
【0033】
各センシング素子、すなわちピクセルに対して、センサ10は、センサの視野内に現れるシーンからピクセルによって受信された光の変動に応じてイベントベースの信号シーケンスを生成する。
【0034】
非同期センサ10は、各ピクセルに対して、活性化しきい値Qが到達される一連の瞬間tk(k=0、1、2、...)の形態であり得る信号を出力するために収集を遂行する。時間tkにおける輝度から開始して、活性化しきい値Qに等しい量だけこの輝度が増加するごとに、新しい瞬間tk+1が識別され、スパイクがこの瞬間tk+1に放射される。対称的に、ピクセルによって観測される輝度が、時間tkにおける輝度から開始して、量Qだけ減少するごとに、新しい瞬間tk+1が識別され、スパイクがこの瞬間tk+1に放射される。ピクセルに対する信号シーケンスは、ピクセルに対する光プロファイルに応じて瞬間tkにおける時間にわたって置かれる一連のスパイクを含む。限定されることなく、センサ10の出力は、その結果、アドレスイベント表現(AER)の形態にある。加えて、信号シーケンスは、一般的に、入射光の変動に対応する輝度属性を含む。
【0035】
活性化しきい値Qは、固定されてもよく、または輝度の関数として適応されてもよい。たとえば、しきい値は、超えたときにイベントを生成するために輝度の対数における変動と比較され得る。
【0036】
例として、センサ10は、「A 128×128 120 dB 15 μs Latency Asynchronous Temporal Contrast Vision Sensor」、P. Lichtsteinerら、IEEE Journal of Solid-State Circuits、Vol. 43、No. 2、2008年2月、566~576ページ、または特許出願US 2008/0135731 A1において説明されているタイプのダイナミックビジョンセンサ(DVS)であり得る。ヒトの網膜のダイナミックス(活動電位間の最小持続時間)は、このタイプのDVSを用いて取り組むことができる。その動的挙動は、制限されたサンプリング周波数を有する従来のビデオカメラの動的挙動をしのぐ。DVSがイベントベースセンサ10として使用されるとき、ピクセルから生じるイベントに関連するデータは、ピクセルのアドレスと、イベントの発生時間と、イベントの極性、たとえば輝度が増加する場合は+1および輝度が減少する場合は-1に対応する輝度属性とを含む。
【0037】
本発明の文脈において有利に使用され得る非同期センサ10の別の例は、「A QVGA 143 dB Dynamic Range Frame-Free PWM Image Sensor With Lossless Pixel-Level Video Compression and Time-Domain CDS」、C. Poschら、IEEE Journal of Solid-State Circuits、Vol. 46、No. 1、2011年1月、259~275ページの文献内で説明が与えられる、非同期的時間ベース画像センサ(ATIS)である。ATISがイベントベースセンサ10として使用されるとき、ピクセルから生じるイベントに関連するデータは、ピクセルのアドレスと、イベントの発生時間と、絶対輝度の推定値に対応する輝度属性とを含む。各イベントの極性は、ATISによっても出力され得る。
【0038】
本明細書で開示する処理方法は、センサ10の配列のピクセルの一部または全部に対するイベントデータを含む、第1のメモリもしくはRAM16内に記憶されたデータ構造を利用する。
【0039】
所与のピクセルに対して、イベントデータは、直近のイベントに関連する。それらは、そのピクセルから直近に受信されたイベントの数にも関連する。たとえば、イベントデータは、ピクセルからのN個の直近のイベントに関連し得、ここでNは固定された正の整数である。イベントデータは、現在の時間において終了する固定の持続時間Tの窓の中のピクセルから受信された任意のイベントに関連し得る。パラメータTは、固定されてもよく(たとえば、例としてT=10ミリ秒)、または配列によって生成されるイベントの関数として、ローカルにもしくはグローバルに適応可能であってもよい。パラメータTは、配列にわたってピクセルによって感知される到来する光の関数として可変であるように、ピクセル配列の異なる領域に対して異なることができる。
【0040】
したがって、任意の時点において、データ構造は、信号処理アプリケーションがイベントベースセンサを利用するのに有用であり得る最近のイベントの経過を追う(keep track)。
【0041】
例として、データ構造は、インデックスiとして表現されるアドレスと、配列内の座標(xi、yi)とを有するピクセルに対するイベントデータを形成する以下の項目のうちの1つまたは複数を含み得る。
- 配列内のアドレスiから受信された各直近のイベントev(i、ti)のタイムスタンプti。
- アドレスiにおいてピクセルに関連付けられた輝度値Li、ATISタイプのセンサなどの場合、輝度値Liは、センサから来る信号フロー内の直近のイベントev(i、ti)によって利用可能である。
- アドレスiにおいてピクセルから生じる各直近のイベントev(i、ti)の極性pi、極性piは、一般に、センサから来る信号フロー内のイベントev(i、ti)によって利用可能である。
- そのピクセルから最近受信されたイベントev(i、ti)を使用してアドレスiにおけるピクセルに対して推定されたフリッカリング周波数、そのような周波数情報は、たとえば、欧州特許出願第18305063.2号において開示される方法を使用して推定され得る。
- そのピクセルおよびその近隣から最近受信されたイベントev(i、ti)を使用してアドレスiにおけるピクセルに対する位置(xi、yi)において推定されたビジュアルフローデータ、そのようなビジュアルフローデータは、たとえば、WO 2013/093378 A1において開示される方法を使用して推定され得る。
- アドレスiにおけるピクセルから生じる各直近のイベントev(i、ti)に対して推定された深さ値、深さ値は、ステレオ視差値としても表現され得る。それは、異なる角度からシーンを見る2つ以上のイベントベースセンサからの信号フローから取得され得る。
- アドレスiにおけるピクセルから生じる直近のイベントev(i、ti)が属すると見なされるイベントのクラスタに関連付けられたクラスタID。
- パラメータTが配列の1つのピクセルから別のピクセルまで変化することができる場合、上記の時間窓の持続時間を表す上記のパラメータT。
【0042】
配列内でアドレスiから受信されたイベントev(i、ti)のタイムスタンプtiを直接記憶する代わりに、σ(i)=f(ti、tcur)など、tiの関数をイベントデータ内に含めることが可能であり、
ここでfは関数であり、tcurは現在の時間である。関数fは、パラメータτを有する指数関数的減衰であり得、上記の式は、その結果、
σ(i)=exp[-(tcur-ti)/τ]
になる。
【0043】
代替的に、関数fは、
σ(i)=ti if tcur≦ti+τ、および
σ(i)=(tcur-τ) if tcur>ti+τ(ピクセルiからの最近のイベントがないことを意味する)
であり得る。
【0044】
イベントデータのいくつかの項目は、タイムスタンプti、極性pi、輝度値Li(イベントで利用可能な場合)、深さ値、クラスタIDなど、1つのイベントに直接リンクされる。他のオプションの項目は、フリッカリング周波数、ビジュアルフローデータなど、ピクセル位置iに関連付けられるべき最近のイベントに基づいて計算される。一般に、これらの他の項目の計算は、イベントベースセンサ10によって可能にされる時間ダイナミックスほど速くなくてよい。それらの更新頻度は、アプリケーションによって決まる。
【0045】
他の種類の情報が、イベントベースセンサ自体によってもたらされる機能、および/またはイベントベース信号フロー上で実行された処理の機能に応じて、データ構造内に含まれ得ることが諒解されよう。データ構造の内容はまた、本方法を利用してアプリケーションに応じて適応され得る。
【0046】
その上、データ構造は、2つのチャネルに編成され、1つは、タイムスタンプtiが正極性の直近のイベントに対して記憶される正極性に対するものであり、1つは、タイムスタンプtiが負極性の直近のイベントに対して記憶される負極性に対するものである。
【0047】
一例では、
図2は、イベントベース光センサ10のピクセル配列から非同期的に受信された一連のイベントを処理するために、プロセッサ12によって遂行され得る方法のフローチャートを示す。
【0048】
この方法では、固定の持続時間Δtを有する連続するタイムスロットを参照する。タイムスロットは、整数のインデックスk(k=1、2、3、...)によって示される。各タイムスロットにおいて、マップが、データ構造内に記憶されたイベントデータを更新することを考慮して構築される。
【0049】
図2の例では、マップは、2つのチャネルから成り、2つのそれぞれのビットマップとして生成され、1つは、正極性のイベントに対する{M+(i)}であり、1つは、負極性のイベントに対する{M-(i)}である。タイムスロットの終了において、正極性のイベントが、タイムスロットの間にアドレスiにおけるピクセルから受信されなかった場合にM+(i)=0であり、そうでなければM+(i)=1であり、負極性のイベントが、タイムスロットの間にアドレスiにおけるピクセルから受信されなかった場合にM-(i)=0であり、そうでなければM-(i)=1である。その結果、マップ{(M+(i)、M-(i))}は、タイムスロットの後にイベントデータを更新するために使用され得る。タイムスロットの間にイベントを有しないピクセル位置iにおけるマップの情報要素(M+(i)、M-(i))は、ゼロ値(M+(i)、M-(i))=(0、0)を有する。
【0050】
タイムスロットの持続時間Δtは、制限なしに、間隔内に同じピクセルにおいて生じる2つのイベントが、計算の観点から区別できないような、最大の時間間隔として見られ得る。その結果、持続時間Δtは、センサの特性(ジッタ、雑音など)に依存するが、データ構造を利用する後続のアプリケーションに対するアルゴリズムを処理する信号の特性にも依存する。Δtの増大は、時間的正確さの何らかの損失を生じるが、より少ない計算リソースを使用し、その逆も真である。Δtに対する一般的な範囲は、250μsと2msとの間である。
【0051】
Δtの値について興味深いオプションは、それを適応可能にすること、すなわち、過去に受信されたデータ上の何らかの機能によって処理の間にそれを変更することである。これは、ブール関数f(E)=真/偽を使用して記述され得、ここでEは、現在のタイムスロット内でこれまでに受信されたイベントのセットであり、真/偽は、現在のタイムスロットが終了して新しいタイムスロットが開始されるべきかどうかを示す。持続時間Δtの固定されたタイムスロットの場合、f(E)は、f(E)=last_event_time-prev_timeslot_last_time>Δtとして定義され得る。適応可能な場合の例では、関数f(E)は、固定されたイベントの数Nの観点からタイムスロットを定義し、すなわち、f(E)=number_of_events_received_since_start_timeslot≧Nである。他の実施形態では、関数f(E)は、ピクセル配列のいくつかの領域(たとえば、中心)に対してより重要性を与えるいくつかの重みを有するイベントをカウントし得る。それは、同じく、機械学習アルゴリズムを使用することによって学習され得る。
【0052】
マップ{(M+(i)、M-(i))}は適度なサイズであり、それゆえ、それは、RAM16にアクセスしないが、キャッシュメモリ18(または何らかの他のよりローカルなおよび/またはより速いタイプのメモリ)を利用することによって、プロセッサ12によって生成され得る。
【0053】
図2において、ステップ20は、マップ{(M+(i)、M-(i))}が、すべてのピクセルiに対して(M+(i)、M-(i))=(0、0)として初期化される、タイムスロットkの開始に対応する。一実施形態では、タイムスロットkの開始は、時間k×Δtにおけるものであり、すなわち、タイムスロットは、途切れることなく互いに続く。代替的に、タイムスロットkの開始は、タイムスロットk-1が終了した後にピクセル配列から第1のイベントを受信することによってトリガされ得る。
【0054】
進行中のタイムスロットk(ステップ20以来Δtが経過したかどうかが、
図2の例における試験21においてチェックされる)において、ステップ22においてピクセル位置iから受信された各イベントは、試験23においてチェックされるイベントの極性に応じて、値1をM-(i)に(負極性、ステップ24)、またはM+(i)に(正極性、ステップ25)設定することを生じる。タイムスロットの終了がステップ21において検出されたとき、タイムスロットkに対するマップ{(M+(i)、M-(i))}が出力され、すなわち、それは、次のステップ26に対するキャッシュメモリ18において利用可能になる。
【0055】
ステップ24または25において、M±(i)の値が前に0であった場合のみ、書き込み動作M±(i)=1を行うことが可能である。これは、結果として生じるマップを変えない。なぜならば、方法は、タイムスロット内で受信された同じ極性の2つのイベントの間に差を生じないからである。
【0056】
タイムスロットが終了した後、プロセッサ12は、マップの情報要素がゼロ値を有しない、すなわち(M+(i)、M-(i))≠(0、0)である場合に、ピクセル位置iにおいてデータ構造のイベントデータを更新するために進む。M+(i)=1またはM-(i)=1である場合に、各ピクセル位置iに関連付けられた新しいタイムスタンプtiとしてタイムスロットインデックスkを使用することによって、更新がステップ26において行われる。
【0057】
タイムスタンプとしてタイムスロットインデックスkを使用することで、イベントの受信における時間分解能が低減される。しかしながら、タイムスロット持続時間Δtが、RAM16内に記憶されるデータ構造を利用するアプリケーションを考慮して十分に小さく選択されるならば、低減された時間分解能に不利な点はない。雑音およびジッタを生じる、ピクセル配列の動作における固有の変動は、タイムスタンプとして離散タイムスロットインデックスkを使用することを介して補償され得る。
【0058】
更新26は、RAM16からデータ構造の空間領域に連続的にアクセスすること、各領域のイベントデータをキャッシュメモリ18に読み出すこと、タイムスタンプti=kをM-(i)=1ならば負極性チャネルにM+(i)=1ならば正極性チャネルに書き込むこと、および領域の更新されたイベントデータをRAM16に戻して書き込むことによって、バッチで実行され得る。これは、イベントが受信されるたびに、RAM16にアクセスすることよりはるかに効率的である。
【0059】
各極性の直近のイベントのタイムスタンプだけがピクセルiに対するイベントデータとして記憶されている単純な場合には、更新26は、単に、関連する極性チャネル内にti=kを書き込むことで構成される。2つ以上のイベントが、ピクセルiおよび所与の極性に対してデータ構造内に記憶される場合、新しいタイムスタンプti=kが書き込まれ、同じピクセルに対する任意の前のタイムスタンプが、FIFO方式でシフトされる。
【0060】
上記の実施形態では、ピクセルiに対するイベントデータは、2つのビットM+(i)、M-(i)から成る。ピクセル当たり3ビット以上がキャッシュに記憶されたマップ内で利用可能である場合、イベントを受信する時点において、より多くの情報を符号化することが可能である。
【0061】
たとえば、各イベントとともに輝度値Liを提供するATIS光センサの場合、輝度値またはそのサブサンプルバージョンが、ステップ24または25においてマップ内に記憶され得る。これは、イベントデータが各ピクセルに対する輝度の現在の値を保持することを可能にする。
【0062】
いくつかのアプリケーションに対して、イベントの極性にかかわらず、タイムスロットの間に所与のピクセルからイベントが受信されたか否かを示す1ビットだけを、所与のピクセルに対するマップの情報要素内に有することで十分であり得る。
【0063】
キャッシュメモリ18内に記憶されたマップを使用してRAM16内にイベントデータを保持する上記の方法のアプリケーションが多く存在する。
【0064】
図3は、2つのイベントベースセンサに基づく3Dステレオ処理に対するアプリケーションの例を示す。このアプリケーションは、空間的に分離されたロケーションにおいてシーンの前に設置された少なくとも2つのイベントベース光センサ10を利用する。ここで、イベントベース光センサ10のうちの一方は左カメラと呼ばれ、他方は右カメラと呼ばれる。
【0065】
左カメラは、
図2を参照しながら説明した方法などの方法に従って処理される第1の一連のイベントを作成する。同じ方法が、右カメラによって作成される第2の一連のイベントに適用される。時間軸が、タイムスロットkに分割され、各タイムスロットに対して、それぞれのマップが、
図2に示すステップ20~25に対応し得る段階31および32において、一連のイベントの第1および第2のストリームの各々から生成される。次いで、2つのマップが、左カメラに対する第1のデータ構造および右カメラに対する第2のデータ構造を取得するために、ステップ33および34(
図2のステップ26に対応する)において使用される。
【0066】
次いで、ステップ35において、プロセッサ12は、ステップ33、34において更新された第1および第2のデータ構造を使用して、2つのカメラからのイベントのペアのステレオマッチングを実行する。
【0067】
米国特許第9,628,777(B2)号およびWO 2016/146938 A1において開示されるステレオマッチング方法が、ステップ35において使用され得る。これらの方法では、2つのカメラのうちの一方からのイベントが考慮され、所与のピクセルからのこれらのイベントの各々に対して、候補イベントが、他方のカメラの配列内のピクセルに対応するエピポーラ線に沿ってチェックされる。各候補イベントに対して、メトリックが計算され、基準が満足される(たとえば、しきい値内のメトリック)場合、マッチングが、メトリックに従って最良の候補で確認される。
【0068】
連続するタイムスロットに対して計算されたマップを使用することで、ステレオマッチングステップ35の実施における利点も提供される。各タイムスロットの後、それらの情報要素がゼロ値を有しないピクセルだけが、両カメラに対して考慮される必要がある。なぜならば、合致したイベントは、同時に存在することが期待されるからである。同期雑音、ジッタ、およびシーンダイナミックスのような要因を考慮すると、2つのセンサからの「同時」イベントの概念は、同じタイムスロットの中、または必要なメモリアクセスの数を制限する、制限された数の連続するタイムスロットの中で受信されるイベントによってカバーされる。ステレオマッチングに使用されるメトリックがデータ構造から復元されるべきイベントデータを必要とする場合、イベントデータは、エピポーラ線周りに配置されたピクセルのグループによってRAM16から回収され得、マッチングは、RAMメモリアクセスを制限しながらバッチで実行され得る。
【0069】
ステレオマッチングが行われると、深さ値が、イベントが最後のタイムスロット内で受信されたピクセルに割り当てられ得、そのような深さ値は、イベントの3D位置決めを提供するために、RAM16内のデータ構造内に記憶され得る。
【0070】
アプリケーションの別の可能な例は、イベントベースセンサを使用して接続された構成要素にラベルを付けることである。本発明によって取得されたデータ構造は、対象物検出および追跡のために画像またはシーン内の関心のある対象物を抽出して分割するために、イベントを接続された構成要素にクラスタ化するために使用され得る。そのようなアプリケーションに対する例示的な例は、欧州特許出願EP 19154401.4において説明されている。
【0071】
上記の方法は、コンピュータによって実行され得る様々な動作を実装するために、非一時的コンピュータ可読媒体内に記録されたプログラム命令を使用して実装され得る。媒体は、同じく、単独で、またはプログラム命令、データファイル、データ構造などとの組合せで含み得る。媒体上に記録されたプログラム命令は、例示的な実施形態の目的に対して特別に設計されて構築されたものであってもよく、または、それらは、コンピュータソフトウェアの分野においてよく知られている種類のもので、当業者に利用可能であるものであってもよい。非一時的コンピュータ可読媒体の例は、ハードディスク、フロッピーディスクおよび磁気テープなどの磁気媒体、CD ROMディスクおよびDVDなどの光媒体、光ディスクなどの光磁気記録媒体、およびリードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリなど、プログラム命令を記憶して実行するために特別に構成されたハードウェアデバイスを含む。プログラム命令の例は、コンパイラによって作成されるコードなどの機械コードと、インタープリタを使用してコンピュータによって実行され得るより高いレベルのコードを含むファイルの両方を含む。説明するハードウェアデバイスは、1つとして働くように構成され得る。
【0072】
本発明の実装形態は、コンピュータとヒトの相互作用(たとえば、ジェスチャー、音声、姿勢、顔、および/または他のアプリケーションの認識)、プロセスを制御すること(たとえば、産業ロボット、自律車両および他の車両)、ビジュアルシーン内で像平面に関して関心のある点または対象物(たとえば、車両またはヒト)のセットの運動を追跡すること、拡張現実アプリケーション、仮想現実アプリケーション、アクセス制御(たとえば、ジェスチャーに基づいてドアを開けること、権限保持者の検出に基づいて進入路を開くこと)、イベントを検出すること(たとえば、視覚監視またはヒトまたは動物に対して)、カウントすること、追跡することなどを含む、多くのアプリケーションにおいて使用され得る。本開示を与えられる当業者によって認識される多数の他のアプリケーションが存在する。
【0073】
上記で説明した実施形態は、本発明の例である。様々な修正形態が、添付の特許請求の範囲から生じる本発明の範囲を逸脱することなく、それらに対して作成され得る。
【符号の説明】
【0074】
10 イベントベースの非同期的ビジョンセンサ
12 プロセッサ
15 収集用光学機器
16 第1のメモリ、ランダムアクセスメモリ(RAM)
18 第2のメモリ、キャッシュメモリ
21 試験
23 試験
26 更新