(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-02-28
(45)【発行日】2022-03-08
(54)【発明の名称】オプティカルフロー計算方法及びコンピューティング機器
(51)【国際特許分類】
G06T 7/269 20170101AFI20220301BHJP
【FI】
G06T7/269
(21)【出願番号】P 2020561021
(86)(22)【出願日】2018-05-22
(86)【国際出願番号】 CN2018087835
(87)【国際公開番号】W WO2019222911
(87)【国際公開日】2019-11-28
【審査請求日】2020-11-13
(73)【特許権者】
【識別番号】520363281
【氏名又は名称】オムニビジョン センサー ソリューション (シャンハイ) カンパニー リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ション、ウェンチャン
(72)【発明者】
【氏名】チェン、ショウシュン
【審査官】新井 則和
(56)【参考文献】
【文献】米国特許出願公開第2016/0187990(US,A1)
【文献】特表2018-522348(JP,A)
【文献】JUN Haeng Lee et al.,REAL-TIME MOTION ESTIMATION BASED ON EVENT-BASED VISION SENSOR,2014 IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING(ICIP),IEEE,2014年10月27日,pp. 204-208
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
コンピューティング機器で実行されるオプティカルフロー計算方法であって、
ダイナミックビジョンセンサーから、被トリガーイベントの座標位置及びタイムスタンプを含む所定の期間におけるイベントデータストリームを取得するステップと、
被トリガーイベントの座標位置及びタイムスタンプに応じてタイムスタンプ行列を生成するステップと、
所定の走査方向に従って前記タイムスタンプ行列中の要素を走査し、各要素の前記走査方向に沿った値及び勾配に応じて前記要素中の少なくとも1つの中継点を決定するステップと、
隣接する中継点の距離及び勾配方向を計算し、算出した結果に応じてオプティカルフロー行列を生成するステップと、を含む方法。
【請求項2】
前記被トリガーイベントの座標位置及びタイムスタンプに応じてタイムスタンプ行列を生成するステップは、
前記ダイナミックビジョンセンサーの画素ユニットアレイのサイズに応じて決定される所定のサイズのタイムスタンプ行列を1つ構築するステップと、
ゼロ値を用いて前記タイムスタンプ行列を初期化し、初期化タイムスタンプ行列を得るステップと、
初期化タイムスタンプ行列中で被トリガーイベントの座標位置を検索するステップと、
検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込み、タイムスタンプ行列を得るステップと、を含む請求項1に記載のオプティカルフロー計算方法。
【請求項3】
前記所定の走査方向は視野内の物体の移動方向に応じて決定され、
前記所定の走査方向は水平走査方向、垂直走査方向、透視走査方向及び回転走査方向を含む請求項1又は2に記載のオプティカルフロー計算方法。
【請求項4】
各要素の走査方向に沿った値及び勾配に応じて前記要素中の少なくとも1つの中継点を決定するステップは、
被走査要素の値に応じて走査方向に沿って被走査要素の勾配を点ごとに計算するステップと、
被走査要素の値及び/又は勾配が所定の条件を満たすと、該被走査要素を中継点として決定するステップと、を含む請求項1から3のいずれか一項に記載のオプティカルフロー計算方法。
【請求項5】
前記算出した結果に応じてオプティカルフロー行列を生成するステップは、
1つの前記所定のサイズのオプティカルフロー行列を構築するステップと、
ゼロ値を用いて前記オプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得るステップと、
初期化オプティカルフロー行列中で中継点の座標位置を検索するステップと、
検索した座標位置に、対応する中継点の値を書き込み、オプティカルフロー行列を生成するステップと、を含む請求項1から4のいずれか一項に記載のオプティカルフロー計算方法。
【請求項6】
前記被走査要素の値及び/又は勾配が所定の条件を満たすと、該被走査要素を中継点として決定するステップは、
被走査要素の勾配とその隣接する要素の勾配との積がゼロよりも小さい場合、該被走査要素を第1中継点と決定するステップと、
被走査要素の値が0ではなく且つその隣接する要素の値が0である場合、該被走査要素を第2中継点と決定するステップと、
前記第1中継点及び第2中継点の両方を中継点としてマークするステップと、を含む請求項4に記載のオプティカルフロー計算方法。
【請求項7】
前記隣接する中継点の距離及び勾配方向を計算するステップは、
中間にゼロ点が含まない2つの隣接する中継点を順番に選択して中継点ペアとするステップと、
各中継点ペアに対して、2つの中継点の座標位置に応じて前記中継点ペアの距離を計算するステップと、
前記中継点ペアの勾配方向を計算し、前記勾配方向に応じて勾配シンボル値を決定するステップと、
前記中継点ペアの距離と勾配シンボル値との積の値を前記中継点ペア中の2つの中継点の値とするステップと、を含む請求項6に記載のオプティカルフロー計算方法。
【請求項8】
前記算出した結果に応じてオプティカルフロー行列を生成するステップは、
1つの前記所定のサイズのオプティカルフロー行列を構築するステップと、
ゼロ値を用いて前記オプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得るステップと、
初期化オプティカルフロー行列中で中継点ペアの2つの中継点の座標位置を検索するステップと、
検索した2つの中継点の座標位置及びこれら2つの中継点の間の座標位置に、対応する2つの中継点の値を書き込むステップと、をさらに含む請求項7に記載のオプティカルフロー計算方法。
【請求項9】
検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込むステップは、
イベントデータストリームでは、1つの座標位置が複数のタイムスタンプに対応する場合、前記複数のタイムスタンプから値が最も大きいタイムスタンプを選択して該座標位置に書き込むステップを含む請求項2から8のいずれか一項に記載のオプティカルフロー計算方法。
【請求項10】
検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込むステップは、
イベントデータストリームでは、1つの座標位置が複数のタイムスタンプに対応する場合、前記複数のタイムスタンプから値が最も小さいタイムスタンプを選択して該座標位置に書き込むステップを含む請求項2から8のいずれか一項に記載のオプティカルフロー計算方法。
【請求項11】
勾配方向に応じて勾配シンボル値を決定するステップは、
前記勾配方向がゼロよりも大きい場合、勾配シンボル値を+1と決定するステップと、
前記勾配方向がゼロよりも小さい場合、勾配シンボル値を-1と決定するステップと、を含む請求項7から10のいずれか一項に記載のオプティカルフロー計算方法。
【請求項12】
コンピューティング機器であって、
1つ又は複数のプロセッサと、
メモリと、
1つ又は複数のプログラムと、を備え、前記1つ又は複数のプログラムは前記メモリに記憶され、前記1つ又は複数のプロセッサにより実行されるように構成され、前記1つ又は複数のプログラムは請求項1から11のいずれか一項に記載のオプティカルフロー計算方法のいずれかを実行するための命令を含むコンピューティング機器。
【請求項13】
命令を含み、前記命令がコンピューティング機器により実行されると、前記コンピューティング機器に請求項1から11のいずれか一項に記載のオプティカルフロー計算方法のいずれかを実行させる1または複数のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ処理の技術分野に関し、特にオプティカルフロー計算方法及びコンピューティング機器に関する。
【背景技術】
【0002】
ダイナミックビジョンセンサー(Dynamic Vision Sensor、DVS)は、パルストリガー式ニューロンに基づく人間の網膜をシミュレーションする生体模倣ビジョンセンサーである。該センサー内に画素ユニットアレイを有し、各画素ユニットは個別に自動で応答し、光強度が迅速に変化する領域を記録し、イベントトリガーの処理メカニズムを採用して、記録されたデータを出力するため、その出力は画像フレームではなく、非同期デジタルイベントストリームである。このようにして、ダイナミックビジョンセンサーの速度は従来の露光時間及びフレームレートに制限されず、数万フレーム/秒と高い速度で移動する高速物体を検出できるとともに、演算量を大幅に低減させ、将来性が期待できる。
【0003】
現在、ダイナミックビジョンセンサーにより出力されるイベントデータストリームについて様々なオプティカルフロー計算方法が提案されており、これらの方法はイベントデータストリームにより時空座標空間内で形成される超平面をフィッティングすることによって、画素点の移動の大きさ及び方向を計算する。各画素点に対してその空間近傍及び時間近傍を探索し、且つ局所超平面のフィッティングを行う必要があり、現在のダイナミックビジョンセンサーのオプティカルフロー計算方法は計算の複雑度が高く、時間のオーバーヘッドが大きい課題を抱えており、リアルタイム性の応用ニーズを満たすことが困難である。
【0004】
上記事情に鑑みて、リアルタイム性のニーズを満たすために、効果的なオプティカルフロー計算方法が望まれている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、以上の少なくとも1つの課題を解決又は少なくとも軽減するために、オプティカルフロー計算方法及びコンピューティング機器を提供する。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、コンピューティング機器で実行されるオプティカルフロー計算方法を提供し、ダイナミックビジョンセンサーから、被トリガーイベントの座標位置及びタイムスタンプを含む所定の期間におけるイベントデータストリームを取得するステップと、被トリガーイベントの座標位置及びタイムスタンプに応じてタイムスタンプ行列を生成するステップと、所定の走査方向に従ってタイムスタンプ行列中の要素を走査し、各要素の前記走査方向に沿った値及び勾配に応じて要素中の少なくとも1つの中継点を決定するステップと、隣接する中継点の距離及び勾配方向を計算し、算出した結果に応じてオプティカルフロー行列を生成するステップと、を含む。
【0007】
好ましくは、本発明に係るオプティカルフロー計算方法では、被トリガーイベントの座標位置及びタイムスタンプに応じてタイムスタンプ行列を生成するステップは、ダイナミックビジョンセンサーの画素ユニットアレイのサイズに応じて決定される所定のサイズのタイムスタンプ行列を1つ構築するステップと、ゼロ値を用いてタイムスタンプ行列を初期化し、初期化タイムスタンプ行列を得るステップと、初期化タイムスタンプ行列中で被トリガーイベントの座標位置を検索するステップと、検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込み、タイムスタンプ行列を得るステップと、を含む。
【0008】
好ましくは、本発明に係るオプティカルフロー計算方法では、所定の走査方向は視野内の物体の移動方向に応じて決定され、所定の走査方向は水平走査方向、垂直走査方向、透視走査方向及び回転走査方向を含む。
【0009】
好ましくは、本発明に係るオプティカルフロー計算方法では、各要素の走査方向に沿った値及び勾配に応じて要素中の少なくとも1つの中継点を決定するステップは、被走査要素の値に応じて走査方向に沿って被走査要素の勾配を点ごとに計算するステップと、被走査要素の値及び/又は勾配が所定の条件を満たすと、該被走査要素を中継点として決定するステップと、を含む。
【0010】
好ましくは、本発明に係るオプティカルフロー計算方法では、算出した結果に応じてオプティカルフロー行列を生成するステップは、1つの所定のサイズのオプティカルフロー行列を構築するステップと、ゼロ値を用いてオプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得るステップと、初期化オプティカルフロー行列中で中継点の座標位置を検索するステップと、検索した座標位置に、対応する中継点の値を書き込み、オプティカルフロー行列を生成するステップと、を含む。
【0011】
好ましくは、本発明に係るオプティカルフロー計算方法では、被走査要素の値及び/又は勾配が所定の条件を満たすと、該被走査要素を中継点として決定するステップは、被走査要素の勾配とその隣接する要素の勾配との積がゼロよりも小さい場合、該被走査要素を第1中継点と決定するステップと、被走査要素の値が0ではなく且つその隣接する要素の値が0である場合、該被走査要素を第2中継点と決定するステップと、第1中継点及び第2中継点の両方を中継点としてマークするステップと、を含む。
【0012】
好ましくは、本発明に係るオプティカルフロー計算方法では、隣接する中継点の距離及び勾配方向を計算するステップは、中間にゼロ点が含まない2つの隣接する中継点を順番に選択して中継点ペアとするステップと、各中継点ペアに対して、2つの中継点の座標位置に応じて中継点ペアの距離を計算するステップと、中継点ペアの勾配方向を計算し、勾配方向に応じて勾配シンボル値を決定するステップと、中継点ペアの距離と勾配シンボル値との積の値を中継点ペアの2つの中継点の値とするステップと、を含む。
【0013】
好ましくは、本発明に係るオプティカルフロー計算方法では、算出した結果に応じてオプティカルフロー行列を生成するステップは、1つの所定のサイズのオプティカルフロー行列を構築するステップと、ゼロ値を用いてオプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得るステップと、初期化オプティカルフロー行列中で中継点ペアの2つの中継点の座標位置を検索するステップと、検索した2つの中継点の座標位置及びこれら2つの中継点の間の座標位置に、対応する2つの中継点の値を書き込むステップと、をさらに含む。
【0014】
好ましくは、本発明に係るオプティカルフロー計算方法では、検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込むステップは、イベントデータストリームでは、1つの座標位置が複数のタイムスタンプに対応する場合、複数のタイムスタンプから値が最も大きいタイムスタンプを選択して該座標位置に書き込むステップを含む。
【0015】
好ましくは、本発明に係るオプティカルフロー計算方法では、検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込むステップは、イベントデータストリームでは、1つの座標位置が複数のタイムスタンプに対応する場合、複数のタイムスタンプから値が最も小さいタイムスタンプを選択して該座標位置に書き込むステップを含む。
【0016】
好ましくは、本発明に係るオプティカルフロー計算方法では、勾配方向に応じて勾配シンボル値を決定するステップは、勾配方向がゼロよりも大きい場合、勾配シンボル値を+1と決定するステップと、勾配方向がゼロよりも小さい場合、勾配シンボル値を-1と決定するステップと、を含む。
【0017】
本発明の別の態様によれば、コンピューティング機器を提供し、1つ又は複数のプロセッサと、メモリと、1つ又は複数のプログラムと、を備え、前記1つ又は複数のプログラムは前記メモリに記憶され、前記1つ又は複数のプロセッサにより実行されるように構成され、前記1つ又は複数のプログラムは前記オプティカルフロー計算方法のいずれかを実行するための命令を含む。
【0018】
本発明のさらに別の態様によれば、1つ又は複数のプログラムを記憶するコンピュータ可読記憶媒体を提供し、前記1つ又は複数のプログラムは命令を含み、前記命令がコンピューティング機器により実行されると、コンピューティング機器に前記オプティカルフロー計算方法のいずれかを実行させる。
【発明の効果】
【0019】
本発明のオプティカルフロー計算スキームによれば、まず、イベントデータストリームに応じてタイムスタンプ行列を生成し、所定の走査方向に沿ってタイムスタンプ行列に対してベクトル追跡を行い、その後、隣接する中継点の距離及び勾配方向を算出し、計算結果に応じてオプティカルフロー行列を生成する。つまり、タイムスタンプ行列中の要素に対してトラバーサル操作を行うだけで、オプティカルフロー行列を算出でき、それによって従来方法の画素の局所での高複雑度の平面フィッティング計算プロセスを回避し、より優れた操作性及びリアルタイム性を有する。
【図面の簡単な説明】
【0020】
上記及び関連目的を実現するために、本明細書では、以下の説明及び図面を参照しながらいくつかの例示的な態様を説明し、これらの態様は本明細書に開示されている原理を実施できる様々な形態を示し、且つすべての態様及びその同等態様は請求された主題の範囲に属する。図面を参照しながら以下の詳細説明を読むことにより、本開示の上記及びほかの目的、特徴及び利点がさらに明らかになる。本開示を通して、同一符号は通常、同一部材又は要素を示す。
【0021】
【
図1】
図1は本発明のいくつかの実施例に係るコンピューティング機器100の模式図を示す。
【
図2】
図2は本発明のいくつかの実施例に係るオプティカルフロー計算方法200のフローチャートを示す。
【
図3】
図3は本発明のいくつかの実施例に係るダイナミックビジョンセンサーがイベントデータストリームを出力する模式図を示す。
【
図4A】
図4Aは本発明の一実施例に係るタイムスタンプ行列の模式図を示す。
【
図4B】
図4Bは本発明の別の実施例に係るタイムスタンプ行列の模式図を示す。
【
図5】
図5は本発明の実施例に係るタイムスタンプ行列中のいくつかの所定の走査方向の模式図を示す。
【
図6】
図6は本発明の一実施例に係るタイムスタンプ行列中の中継点の模式図を示す。
【発明を実施するための形態】
【0022】
以下、図面を参照しながら本開示の例示的な実施例をさらに詳細に説明する。図面には本開示の例示的な実施例が示されているが、ここで説明される実施例に限定されることなく、様々な形態で本開示を実施できると理解すべきである。その反面、これらの実施例は本開示をよりよく理解でき、且つ本開示の範囲を当業者に完全に伝えることができるために提供されている。
【0023】
図1は例示的なコンピューティング機器100のブロック図である。基本的な構成102では、コンピューティング機器100は典型的には、システムメモリ106及び1つ又は複数のプロセッサ104を備える。メモリバス108はプロセッサ104とシステムメモリ106との通信に使用できる。
【0024】
所望の構成によって、プロセッサ104は様々なタイプのプロセッサであってもよく、マイクロプロセッサ(μP)、マイクロコントローラ(μC)、デジタル情報プロセッサ(DSP)又はそれらの任意の組み合わせを含むが、これらに限定されない。プロセッサ104は、例えば、一次高速バッファ110及び二次高速バッファ112のような1つ又は複数のレベルの高速バッファ、プロセッサカーネル114及びレジスタ116を備えてもよい。例示的なプロセッサカーネル114は演算論理ユニット(ALU)、浮動小数点ユニット(FPU)、デジタル信号処理カーネル(DSPカーネル)又はそれらの任意の組み合わせを備えてもよい。例示的なメモリコントローラ118はプロセッサ104と組み合わせて使用されてもよく、又は、いくつかの実現では、メモリコントローラ118はプロセッサ104の1つの内部部分であってもよい。
【0025】
所望の構成によって、システムメモリ106は様々なタイプのメモリであってもよく、揮発性メモリ(例えば、RAM)、不揮発性メモリ(例えば、ROM、フラッシュメモリ等)、又はそれらの任意の組み合わせを含むが、これらに限定されない。システムメモリ106はオペレーティングシステム120、1つ又は複数のアプリケーション122、及びプログラムデータ124を備えてもよい。いくつかの実施形態では、アプリケーション122はオペレーティングシステム上でプログラムデータ124を利用して操作を行うように構成されてもよい。いくつかの実施例では、コンピューティング機器100はオプティカルフロー計算方法200を実行するように構成され、プログラムデータ124は方法200を実行するための命令を含む。
【0026】
コンピューティング機器100はさらに、バス/インターフェースコントローラ130を経由する様々なインターフェース機器(例えば、出力機器142、ペリフェラルインターフェース144及び通信機器146)から基本的な構成102への通信に寄与するインターフェースバス140を備えてもよい。例示的な出力機器142はグラフィックス処理ユニット148及びオーディオ処理ユニット150を備える。それらは、1つ又は複数のA/Vポート152を経由して例えば、ディスプレイ又はスピーカーのような様々な外部機器と通信することに寄与するように構成されてもよい。例示的なペリフェラルインターフェース144はシリアルインターフェースコントローラ154及びパラレルインターフェースコントローラ156を備えてもよく、1つ又は複数のI/Oポート158を経由して例えば、入力機器(例えば、キーボード、マウス、ペン、音声入力機器、画像入力機器)又はほかのペリフェラル(例えば、プリンタ、スキャナー等)のような外部機器と通信することに寄与するように構成されてもよい。例示的な通信機器146は、1つ又は複数の通信ポート164を経由してネットワーク通信リンクによって1つ又は複数のほかのコンピューティング機器162と通信することに寄与するように構成されてもよいネットワークコントローラ160を備えてもよい。
【0027】
ネットワーク通信リンクは通信媒体の一例であってもよい。通信媒体は通常、例えば、キャリア又はほかの伝送メカニズムのような変調データ信号中のコンピュータ可読命令、データ構造、プログラムモジュールとして具体化されてもよく、且つ任意の情報伝送媒体を含んでもよい。「変調データ信号」は、そのデータセット中の1つ又は複数又はその変更が信号内で情報を符号化することによって行われるような信号であってもよい。非限定的な例として、通信媒体は、例えば、有線ネットワーク又は専用ネットワークのような有線媒体、及び例えば、音、無線周波数(RF)、マイクロ波、赤外線(IR)又はほかの無線媒体のような様々な無線媒体を含んでもよい。ここで使用される用語のコンピュータ可読媒体は記憶媒体及び通信媒体の両方を含んでもよい。
【0028】
コンピューティング機器100はデスクトップコンピュータ及びノートコンピュータ構成を含むパーソナルコンピュータとして実現されてもよい。勿論、コンピューティング機器100は、小型ポータブル(又は移動)電子機器の一部として実現されてもよく、これらの電子機器は例えば、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント(PDA)、パーソナルメディアプレーヤー機器、無線ネットワークブラウジング機器、パーソナル頭部装着型機器、特定用途向け機器、又は上記の任意の機能を含むハイブリッド機器であってもよい。本発明の実施例ではそれを限定しない。
【0029】
オプティカルフロー計算では、従来の画像センサーの代わりに常にモーションセンサーを採用し、それはモーションセンサーが相対輝度変化を示すイベントに応答できるからであり、従って、モーションセンサーの出力データは従来の画像センサーよりも移動情報をよく記録し表示することができる。一実施形態では、シーン内にダイナミックビジョンセンサーを配置し、シーン内に物体の移動がない場合、ダイナミックビジョンセンサーはなんの内容も表示しない。しかしながら、一旦シーン内に物体の移動が発生したと検出される場合(すなわち、光が変化した)、動的画素(すなわち、輝度が変化した画素)の時系列画素イベントデータストリームを出力する。つまり、該イベントデータストリームはイベントが発生した(すなわち、ダイナミックビジョンセンサー中の画素の輝度が変化した)画素情報を時系列で記録する。
【0030】
本発明の実施形態によれば、ダイナミックビジョンセンサーからのイベントデータストリームを処理し、オプティカルフロー行列を算出する。
図2は本発明の一実施例に係るオプティカルフロー計算方法200のフローチャートを示す。
【0031】
図2に示すように、方法200はステップS210から開始し、ダイナミックビジョンセンサーから、被トリガーイベントの座標位置及びタイムスタンプを含む所定の期間におけるイベントデータストリームを取得する。
図3はダイナミックビジョンセンサーがイベントデータストリームを出力する模式図を示す。
図3に示すように、9×7行列でダイナミックビジョンセンサー中の画素ユニットアレイを示し(当業者であれば、
図3は単に例であり、実際の応用では、ダイナミックビジョンセンサー中の画素アレイは
図3に示すサイズに限らないと理解できる)、アレイ中のある画素ユニットの輝度が変化した場合、トリガーして1つの対応するイベントデータeを生成し、被トリガーイベントの座標位置は該画素ユニットの座標位置であり、e
iで第i回トリガーされたイベント(iは1,2,3,…である)を示し、
図3に示すように、時間の経過とともに、ダイナミックビジョンセンサーはイベントデータe
1,e
2,e
3,e
4,...を順番に連続して出力し、1つの時系列のイベントデータストリームを構成する。各イベントデータe
iは被トリガーイベントの座標位置及び被トリガー時刻のタイムスタンプを含み、すなわち、イベントデータe
iはe
i=(x
i,y
i,t
i)((x
i,y
i)は第i回のトリガーイベントの座標位置、t
iは第i回のトリガーイベントのタイムスタンプである)で示されてもよい。且つ、後のトリガーイベントのタイムスタンプは必ず前のトリガーイベントのタイムスタンプよりも大きく、例えばt
2>t
1である。
【0032】
図3はさらにダイナミックビジョンセンサーから取得される所定の期間におけるイベントデータストリームを示し、e
start及びe
endはそれぞれ取得開始時刻及び取得終了時刻に対応するイベントを示し、
図3では、e
start=e
2、e
end=e
10である。本発明の実施例では、所定の時間ごとに、所定の期間におけるイベントデータストリームを取得してもよいが、本発明の実施例では取得されるイベントデータストリームの期間を限定しない。
【0033】
また、
図3はさらに、ある座標位置で1つ以上のイベントデータ、例えばe
6,e
10が存在することを示し、すなわち、該座標位置はまず、t
6時刻にトリガーされて1つのイベントe
6を生成し、その後、t
10時刻に再びトリガーされて1つのイベントe
10を生成し、この場合、同一の座標位置は2つ又は3つさらに多数のタイムスタンプに対応する。
【0034】
その後、ステップS220では、被トリガーイベントの座標位置及びタイムスタンプに応じてタイムスタンプ行列を生成する。具体的には、取得したイベントデータストリーム中の各イベントデータを、対応する座標位置に従って、被トリガー時間(すなわち、タイムスタンプ値)の順で、順番に充填して1つのタイムスタンプ行列を形成する。
【0035】
以下、本発明の一実施形態に係るタイムスタンプ行列の生成の具体的なプロセスを示し、具体的なステップ1)-3)は以下の通りである。
【0036】
1)まず、1つの所定のサイズのタイムスタンプ行列を構築し、タイムスタンプ行列の所定のサイズはダイナミックビジョンセンサーの画素ユニットアレイのサイズに応じて決定され、好ましくは、タイムスタンプ行列はセンサーのアレイ中のすべての画素ユニットを含むべきである。本発明の一実施例では、タイムスタンプ行列と画素ユニットアレイはサイズが同じであり、画素ユニットアレイのサイズを768×640とすると、構築されたタイムスタンプ行列のサイズは768×640である。
【0037】
2)ゼロ値を用いて前記タイムスタンプ行列を初期化し、初期化タイムスタンプ行列を得る。
【0038】
3)初期化タイムスタンプ行列中で、取得した所定の期間におけるイベントデータストリーム中の被トリガーイベントの座標位置を検索し、その後、検索した座標位置に、対応する被トリガーイベントのタイムスタンプを書き込み、タイムスタンプ行列を得る。簡単に言えば、イベントの被トリガー時間の順で、ステップS210で取得したイベントデータに対応するタイムスタンプ値を、座標位置に対応付けて、初期化タイムスタンプ行列に順番に充填する。
【0039】
上記のように、同一の座標位置の画素ユニットは複数回トリガーされ、それに対応して複数のイベントを生成する。このようなシーンでタイムスタンプ行列を生成する場合、タイムスタンプ行列の同一の座標位置に1つ以上のタイムスタンプ値が対応し、この事情に鑑みて、本発明の実施例は2種のタイムスタンプ書き込み又はタイムスタンプ行列充填の方式を提供する。
【0040】
一実施例では、イベントデータストリームにおいて、1つの座標位置が複数のタイムスタンプに対応する場合、タイムスタンプ書き込み時、これら複数のタイムスタンプから値が最も大きいタイムスタンプを選択して該座標位置に書き込む。すなわち、イベントe
mとイベントe
nに対応する座標位置が同じである場合、タイムスタンプ行列中に最新トリガーされたタイムスタンプ値を保留する。
図4Aは本発明の一実施例に係るタイムスタンプ行列の模式図を示し、対応するイベントデータストリームe
2,e
3,...,e
10は
図3で生成されたイベントデータストリームであり、タイムスタンプ行列のサイズは依然として9×7である。
【0041】
別の実施例では、イベントデータストリームにおいて、1つの座標位置が複数のタイムスタンプに対応する場合、タイムスタンプの書き込み時、これら複数のタイムスタンプから値が最も小さいタイムスタンプを選択して該座標位置書き込む。すなわち、イベントe
mとイベントe
nに対応する座標位置が同じである場合、タイムスタンプ行列中に、最も早くトリガーされたタイムスタンプ値を保留する。
図4Bは本発明の別の実施例に係るタイムスタンプ行列の模式図を示し、対応するイベントデータストリームe
2,e
3,...,e
10は
図3で生成されたイベントデータストリームであり、タイムスタンプ行列のサイズは依然として9×7である。
【0042】
図4Aと
図4Bを比較して、
図4Aで生成されたタイムスタンプ行列では、座標位置(4,1)(すなわち、第5行第2列)で書き込まれるタイムスタンプ値はT
10であり、座標位置(4,5)(すなわち、第5行第6列)で書き込まれるタイムスタンプ値はT
9であり、
図4Bで生成されたタイムスタンプ行列では、座標位置(4,1)で書き込まれるタイムスタンプ値はT
6であり、座標位置(4,5)で書き込まれるタイムスタンプ値はT
4である。
【0043】
以上、いくつかのタイムスタンプ行列生成の例を説明したが、実際の計算では、当業者は任意の方式を選択でき、本発明は、イベントの被トリガー時間順にタイムスタンプ行列を生成することを保護することを目的とし、タイムスタンプ書き込み方式を限定しない。
【0044】
その後、ステップS230では、所定の走査方向に従ってタイムスタンプ行列中の要素を走査し、各要素の該走査方向に沿った値及び勾配に応じて要素中の少なくとも1つの中継点を決定する。
【0045】
本発明の実施形態では、所定の走査方向は視野内の物体の移動方向に応じて決定され、所定の走査方向は水平走査方向、垂直走査方向、透視走査方向及び回転走査方向のうちの1種であってもよい。
図5は本発明の実施例に係るタイムスタンプ行列中のいくつかの所定の走査方向の模式図を示す。
図5中、(1)は透視走査方向、(2)は垂直走査方向、(3)は水平走査方向、(4)は回転走査方向を示す。(1)を例に、各矢印付きの線は1本の走査線を示し、矢印の方向に従って走査し、(1)に示される透視走査方向は中心点から四周へ走査する方向であり、勿論、(1)に示される場合を除き、透視走査方向は四周から中心点へ走査する方向であってもよい。同様に、(2)に示される垂直走査方向は上から下への垂直走査であり、下から上への垂直走査であってもよく、水平走査方向及び回転走査方向は同様であるため、ここでは詳細説明を省略する。
図5に示される所定の走査方向は単にいくつかの例である。所定の走査方向は視野内の物体の略移動方向を推定することによって決定できる。例えば、視野内の物体が目標(目標は例えば、ダイナミックビジョンセンサーである)に接近して又は目標から離間して移動することが既知である場合、所定の走査方向を透視走査方向と決定でき、視野内の物体が水平移動することが既知である場合、所定の走査方向を水平走査方向と決定でき、視野内の物体が垂直方向に移動することが既知である場合、所定の走査方向を垂直走査方向と決定でき、視野内の物体が回転移動することが既知である場合(例えば、回る)、所定の走査方向を回転走査方向として決定する。所定の走査方向はさらに、応用ニーズに応じて決定でき、例えば、セキュリティにおける応用では、一般には水平走査方向を選択し、また例えば、自動運転における応用では、一般には透視走査方向を選択するなどである。
【0046】
走査方向を決定した後、走査線を利用して、決定された所定の走査方向に従ってタイムスタンプ行列中の要素を走査すると同時に、被走査要素の値に応じて走査方向に沿って被走査要素の勾配を点ごとに計算し、被走査要素の値及び/又は勾配が所定の条件を満たすと、該被走査要素を中継点として決定する。本発明の実施例では、各走査線の開始走査要素から点ごとに追跡を開始し、各走査線上の被走査要素の勾配を計算し、被走査要素の勾配とその隣接する要素の勾配との積がゼロよりも小さい場合、該被走査要素を第1中継点と決定し(第1中継点は勾配変化点ともいう)、また、各被走査要素の値をさらに記録してもよく、被走査要素の値が0ではなく且つその隣接する要素の値が0である場合、該被走査要素を第2中継点と決定し(第2中継点は近似ゼロ点ともいう)、被走査要素が該走査線の最後の走査要素であると、走査が終了する。タイムスタンプ行列のすべての走査が完了するまで、すべての走査線に対して上記ステップを実行し、複数の第1中継点及び第2中継点を得て、第1中継点及び第2中継点の両方を中継点としてマークする。
【0047】
上記被走査要素が所定の条件を満たすか否かを判断するプロセスは、以下の1組の式によって示されてもよい。
【0048】
第k個の被走査要素が以下の所定の条件のいずれかを満たすと、第k個の被走査要素が中継点であると決定する。
【0049】
gradientk-1*gradientk<0
Amplitudek-1≡0且Amplitudek≠0
Amplitudek-1≠0且Amplitudek≡0
式中、gradientkは第k個の被走査要素の勾配、gradientk-1は第k-1個の被走査要素の勾配、Amplitudekは第k個の被走査要素の値、Amplitudek-1は第k-1個の被走査要素の値を示す。本発明の一実施例では、被走査要素の勾配は前方差分又は後方差分の式によって算出され、被走査要素の値はタイムスタンプ行列中のタイムスタンプ値であり、勾配計算は当業者の公知技術に属し、本発明の実施例ではそれを限定せず、いずれの勾配計算方法も本発明の実施例と組み合わせて方法200を実現することができる。
【0050】
どのように中継点を決定するかをさらに説明するために、
図6は本発明の一実施例に係るタイムスタンプ行列中の中継点の模式図を示す。
図6は棒グラフの形式で走査線に沿った被走査要素を示し、各棒は1つの被走査要素、棒の高さは被走査要素の値を示し、高さが大きいほど、値が大きいことを示す。
図6はタイムスタンプ行列の一部(1本の走査線上の走査結果)を示し、第1個の被走査要素の値は0であり、第2個の被走査要素は近似ゼロ点、すなわち中継点Aであり、続いて、中継点Bは勾配変化点、中継点C及びDは近似ゼロ点、中継点Eは勾配変化点、中継点Fは近似ゼロ点である。
【0051】
その後、ステップS240では、隣接する中継点の距離及び勾配方向を計算し、算出した結果に応じてオプティカルフロー行列を生成する。
【0052】
まず、隣接する中継点の距離及び勾配方向を計算することによって中継点の値を得る。
【0053】
本発明の実施例では、走査線に沿って、中間にゼロ点(ゼロ点は、タイムスタンプ行列中の要素値が0の点である)が含まない2つの隣接する中継点を順番に選択して中継点ペアとする。その後、各中継点ペアに対して、2つの中継点の座標位置に応じて該中継点ペアの距離を計算し、中継点ペアの勾配方向を計算し、該勾配方向に応じて勾配シンボル値を決定する。本発明の一実施例では、勾配方向がゼロよりも大きい場合、勾配シンボル値を+1と決定し、勾配方向がゼロよりも小さい場合、勾配シンボル値を-1と決定する。2つの座標の距離を計算すること及び勾配値に応じて勾配方向を決定することはいずれも本分野の公知技術に属するため、ここでは詳細説明を省略する。最後に、各中継点ペアの距離と勾配シンボル値との積の値をこの中継点ペア中の2つの第1中継点の値とする。
【0054】
引き続き
図6を例に、中継点Aと中継点Bは1つの中継点ペアであり、該中継点ペアの距離d
ABを計算し、中継点Aの座標を(x
a,y
a)、中継点Bの座標を(x
b,y
b)とし、この場合、
【数1】
であり、
図6の例では、中継点Aから中継点Bへ単調に逓増する傾向を示すため、ここでは簡単に中継点ペアの勾配シンボル値をs
AB=+1とマークし、このようにして、d
AB*s
ABを計算することによって中継点A(中継点B)の値ν
ABを得る。同様に、中継点Bと中継点Cの値、中継点Dと中継点Eの値、中継点Eと中継点Fの値を算出し、中継点Cと中継点Dとの間にゼロ点があるため、中継点Cと中継点Dは1つの中継点ペアではない。
【0055】
その後、算出した中継点の値に応じてオプティカルフロー行列を生成する。
【0056】
本発明の実施例では、ステップS220で生成されたタイムスタンプ行列のサイズに応じて、1つの同一サイズのオプティカルフロー行列を生成し(以上のように、オプティカルフロー行列のサイズは768×640であってもよい)、ゼロ値を用いて該オプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得る。その後、初期化オプティカルフロー行列中で各中継点の座標位置を検索し、検索した座標位置に、対応する中継点の値を書き込み、オプティカルフロー行列を生成する。
【0057】
以下、本発明の一実施形態に係るオプティカルフロー行列の生成の具体的なプロセスを示し、具体的には、ステップ(1)-(3)に示される。
【0058】
(1)1つの所定のサイズのオプティカルフロー行列、及びタイムスタンプ行列を構築し、所定のサイズはダイナミックビジョンセンサーの画素ユニットアレイのサイズに応じて決定される。
【0059】
(2)ゼロ値を用いてオプティカルフロー行列を初期化し、初期化オプティカルフロー行列を得る。
【0060】
(3)初期化オプティカルフロー行列中で中継点ペアの2つの中継点の座標位置を検索し、その後、検索した2つの中継点の座標位置及びこれら2つの中継点の間の座標位置に、対応する2つの中継点の値を書き込む。引き続き
図6中の中継点A及び中継点Bを例に、初期化オプティカルフロー行列中で座標(x
a,y
a)及び(x
b,y
b)を検索し、座標(x
a,y
a)及び座標(x
b,y
b)の値をν
ABにし、また、座標(x
a,y
a)と座標(x
b,y
b)との間の要素の値をすべてν
ABにする。すべての中継点をトラバーサルし、最終的にオプティカルフロー行列を得る。本発明のいくつかの実施形態では、ある中継点は1つ以上の中継点ペアを構成することがあり、この場合、中継点ペアの計算結果に応じてオプティカルフロー行列を生成する時、該中継点に対応する座標位置に値を1回付するだけでよく、どの中継点ペアの計算結果を選択して値を付するかについて、本発明の実施例ではそれを限定しない。
【0061】
タイムスタンプ行列からオプティカルフロー行列を生成するプロセスをより明瞭に説明するために、以下、表1は1つのタイムスタンプ行列の一部の模式図を示す。
【0062】
【0063】
水平走査方向を使用して、左から右への順で表1中のタイムスタンプ行列を走査し、複数の中継点を得て、走査された中継点を、要素値が23、9、27、24、4、6、14、35、33の要素(ここでは、エッジにある非ゼロ要素のすべてを中継点として処理するが、本発明ではそれを限定しない)とし、中継点の距離及び勾配方向を計算し、計算結果に応じてオプティカルフロー行列を生成する。ここでは、計算プロセスを簡素化するために、隣接する中継点の間に含まれる要素数で中継点の距離を示し、例えば、第1行第2個の要素「23」と第3個の要素「9」との距離は2である。隣接する中継点の要素値の変化傾向は中継点の勾配シンボル値を示し(隣接する中継点間の要素の値が大きくなる傾向となると、勾配シンボル値が+1であり、さもないと、-1である)、第1行第2個の要素「23」と第3個の要素「9」の勾配シンボル値は-1である。このようにして、初期オプティカルフロー行列では、第1行第2個の要素と第3個の要素に対応して書き込まれる値はいずれも-2であり、表2に示される。第1行第4個の要素が「0」であるため、第1行第3個の要素「9」と第5個の要素「27」は1つの中継点ペアではなく、従って、距離及び勾配シンボル値の計算が不要であり、そのオプティカルフロー行列中での対応する値も初期値の0に維持され(いくつかの実施例では、近似ゼロ点を区別するために、オプティカルフロー行列では第1行第5個の要素の値を1とし、表3に示すように、本発明ではそれを限定しない)。特に、第3行第3個の要素「35」は、第3行第1個の要素「14」とともに1つの中継点ペアを構成し、さらに第3行第5個の要素「33」とともに1つの中継点ペアを構成し、所定の走査方向に従って、前の中継点ペアの算出された中継点値は3であり、後の中継点ペアの算出された中継点値は-2であり、このとき、前の中継点ペアの算出された値をオプティカルフロー行列中の対応する第3行第3個の要素に付するだけでよい。表2及び表3はそれぞれ最後に算出された2種のオプティカルフロー行列を示す。
【0064】
【0065】
【0066】
なお、ここでは、タイムスタンプ行列中の各中継点の計算結果に応じてオプティカルフロー行列を生成するいくつかの方式を簡単に説明したが、本発明の実施例ではそれを特に限定しない。本発明は、所定の走査方向に沿ってタイムスタンプ行列に対してベクトル追跡を行い、それによってオプティカルフローベクトルを計算する方式を保護することを目的とする。
【0067】
本発明のオプティカルフロー計算スキームによれば、まず、イベントデータストリームに応じてタイムスタンプ行列を生成し、所定の走査方向に沿ってタイムスタンプ行列を走査(ベクトル追跡)し、その後、隣接する中継点の距離及び勾配方向を算出し、計算結果に応じてオプティカルフロー行列を生成し、つまり、タイムスタンプ行列中の要素に対してトラバーサル操作を行うだけで、オプティカルフロー行列を算出でき、それによって従来方法の画素の局所での高複雑度の平面フィッティング計算プロセスを回避し、より優れた操作性及びリアルタイム性を有する。
【0068】
ここで提供される明細書では、大量の詳細が説明されている。それにもかかわらず、本発明の実施例はこれらの詳細なしで実施されてもよいと理解できる。いくつかの例では、本明細書の理解の曖昧さを回避するために、公知の方法、構造及び技術は詳細説明されていない。
【0069】
同様に、本開示を簡略化し各発明の態様の1つ又は複数を理解するのを助けるために、以上の本発明の例示的な実施例についての説明では、本発明の各特徴は単一の実施例、図、又はその説明にグループされてもよいと理解すべきである。それにもかかわらず、該開示されている方法は、主張する本発明は各請求項に明確に記載される特徴よりも多くの特徴を必要とすることを反映するものではないと理解すべきである。より正確には、以下の特許請求の範囲に反映されるように、発明の態様は前に開示された単一の実施例のすべての特徴よりも少ないことにある。従って、具体的な実施形態に準拠する特許請求の範囲は該具体的な実施形態に明確に組み込まれており、各請求項自体は本発明の単独な実施例である。
【0070】
当業者であれば、本明細書に開示されている例における機器のモジュール又はユニット又はアセンブリは該実施例に説明されている機器に配置され、又は該例における機器と異なる1つ又は複数の機器に置換可能に位置決めされるようにしてよいと理解すべきである。上記例におけるモジュールを組み合わせて1つのモジュールを形成してもよく、さらに複数のサブモジュールに分けてもよい。
【0071】
当業者であれば、実施例における機器のモジュールを適応的に変更し、該実施例と異なる1つ又は複数の機器に設置するようにしてもよいと理解できる。実施例におけるモジュール又はユニット又はアセンブリを組み合わせて1つのモジュール又はユニット又はアセンブリを形成してもよく、さらにそれらを複数のサブモジュール又はサブユニット又はサブアセンブリに分けてもよい。このような特徴及び/又はプロセス又はユニットの少なくとも一部が相互に矛盾する以外、本明細書(添付する特許請求の範囲、要約書及び図面を含む)に開示されるすべての特徴及びこのように開示されているいずれかの方法又は機器のすべてのプロセス又はユニットを任意に組み合わせることができる。特に断らない限り、本明細書(添付する特許請求の範囲、要約書及び図面を含む)に開示されている各特徴は同一、同等又は類似目的を提供する代替特徴によって代替されてもよい。
【0072】
また、当業者であれば、ここに記載されるいくつかの実施例はほかの特徴ではなく、ほかの実施例に含まれるいくつかの特徴を含むにもかかわらず、異なる実施例の特徴の組み合わせは本発明の範囲内に属し且つ異なる実施例を形成すると理解できる。例えば、以下の特許請求の範囲では、主張する実施例のいずれかを任意な組み合わせ方式で使用してもよい。
【0073】
また、前記実施例のうちのいくつかは、ここでは、コンピュータシステムのプロセッサ又は前記機能を実行するほかの装置に実施可能な方法又は方法の要素の組み合わせとして説明されている。従って、前記方法又は方法の要素を実施するための必要な命令を有するプロセッサは該方法又は方法の要素を実施するための装置を形成する。また、装置の実施例のここで記載される要素は、該発明の目的を実施するための要素によって実行される機能を実施するための装置の例である。
【0074】
ここで使用されるように、特に断らない限り、「第1」、「第2」、「第3」等の序数詞を使用して普通の対象を説明する場合、単に係る類似対象の異なる例を示し、このように説明される対象が必ず時間、空間、ランキング又はほかの任意の方式での特定の順序を有することを暗示しない。
【0075】
限られた実施例を参照しながら本発明を説明したが、以上の説明からわかるように、当業者は、ここで説明される本発明の範囲を逸脱せずに、ほかの実施例を想到し得ると理解できる。また、なお、本明細書に使用される言語は主に可読性及び教示の目的のために選択され、本発明の主題を説明又は限定するためのものではない。従って、添付特許請求の範囲の範囲及び精神を逸脱せずに、当業者には種々の修正や変更が明らかになる。本発明の範囲について、本発明は制限的ではなく例示的に開示されており、本発明の範囲は添付特許請求の範囲によって定められる。