(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-29
(45)【発行日】2023-04-06
(54)【発明の名称】動的視覚センサ用ブロックマッチングオプティカルフローとステレオ視
(51)【国際特許分類】
G06T 7/223 20170101AFI20230330BHJP
G06T 7/593 20170101ALI20230330BHJP
【FI】
G06T7/223
G06T7/593
(21)【出願番号】P 2019565502
(86)(22)【出願日】2018-05-29
(86)【国際出願番号】 EP2018064041
(87)【国際公開番号】W WO2018219931
(87)【国際公開日】2018-12-06
【審査請求日】2021-04-26
(32)【優先日】2017-05-29
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】519154128
【氏名又は名称】ユニベアズィテート チューリッヒ
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】デルブリュック、トバイアス
(72)【発明者】
【氏名】リュー、ミン
【審査官】新井 則和
(56)【参考文献】
【文献】特開2014-002744(JP,A)
【文献】特表2015-507261(JP,A)
【文献】米国特許出願公開第2016/0109955(US,A1)
【文献】Min Liu, Tobi Delbruck,Block-matching optical flow for dynamic vision sensors: Algorithm and FPGA implementation,2017 IEEE International Symposium on Circuits and Systems (ISCAS),IEEE,2017年05月28日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8050295
【文献】Jun Haeng Lee et al.,Real-Time Gesture Interface Based on Event-Driven Processing from Stereo Silicon Retinas,IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,IEEE,2014年03月17日,VOL. 25, NO. 12,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6774446
【文献】Kyoobin Lee et al.,Four DoF Gesture Recognition with an Event-based Image Sensor,The 1st IEEE Global Conference on Consumer Electronics 2012,IEEE,2012年10月02日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6379606
【文献】Ryad Benosman et al.,Event-Based Visual Flow,IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,IEEE,2013年09月05日,VOL. 25, NO. 2,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6589170
【文献】美濃導彦,東海彰吾,能動カメラ群による動的シーンの映像化,日本ロボット学会誌 第19巻 第4号,2001年05月15日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
複数のピクセルを含み、変更イベントストリームを出力するよう構成されたイベントベースの視覚センサによってキャプチャされたシーンのオプティカルフローを計算する方法であって、各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、タイムスタンプと、輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータとを含み、
変更イベントは、少なくとも3つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレーム、時刻t-dから始まる第2のタイムスライスフレーム、時刻t-2*dから始まる第3のタイムスライスフレーム(t-2*d)に蓄積され、dは、それぞれのタイムスライスフレームの持続時間であり、
変更イベントは、前記持続時間dにわたって現在の第1のタイムスライスフレームに蓄積され、
第2のタイムスライスフレーム(t-d)の参照ブロックであって、現在の第1のタイムスライスフレーム(t)の最新の変更イベントのピクセルを中心とするピクセルを含む参照ブロックを、第3のタイムスライスフレーム(t-2*d)の検索ブロックと比較して、距離メトリックを使用してその参照ブロックに最も類似した検索ブロックを見つけ、そして
現在の第1のタイムスライスフレーム(t)が第2のタイムスライスフレーム(t-d)になり、第2のタイムスライスフレーム(t-d)が第3のタイムスライスフレーム(t-2*d)になり、第3のタイムスライスフレーム(t-2*d)がクリアされて現在の第1のタイムスライスフレーム(t)になるよう3つのタイムスライスフレームの交換を周期的に行
い、
前記イベントベースの視覚センサの元のアドレス空間をサブサンプリングする複数のタイムスライスフレーム群が使用される、ことを特徴とする方法。
【請求項2】
前記距離メトリックは、参照ブロックピクセルと検索ブロックピクセルとの絶対差の合計である、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記タイムスライスフレームの交換は、一定の時間間隔で行われる、ことを特徴とする請求項1~
2のいずれか一項に記載の方法。
【請求項4】
前記タイムスライスフレームの交換は、前記第1のタイムスライスフレーム(t)に蓄積された特定の、特に一定の合計イベントカウントで行われる、ことを特徴とする請求項1~
2のいずれか一項に記載の方法。
【請求項5】
前記タイムスライスフレームの交換は、現在の第1のタイムスライス(t)のサブエリアが特定数の変更イベントを蓄積する場合に行われる、ことを特徴とする請求項1~
2のいずれか一項に記載の方法。
【請求項6】
前記タイムスライスフレームの交換は、タイムスライスフレームの最後の交換から統合された全運動が閾値を超える場合に行われる、ことを特徴とする請求項1~
2のいずれか一項に記載の方法。
【請求項7】
前記タイムスライスフレームの交換後の持続時間dは、参照ブロックと各最も類似した検索ブロックとの平均一致距離(D)に応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される、ことを特徴とする請求項1~
2のいずれか一項に記載の方法。
【請求項8】
前記総イベントカウントは、参照ブロックと各最も類似する検索ブロックとの平均一致距離(D)に応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される、ことを特徴とする請求項
4に記載の方法。
【請求項9】
前記特定数は、参照ブロックと各最も類似する検索ブロックとの平均一致距離(D)に応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される、ことを特徴とする請求項
5に記載の方法。
【請求項10】
前記第1、第2、第3のタイムスライスフレームは、それぞれ、バイナリビットマップのタイムスライスフレームを形成する、ことを特徴とする請求項1~
9のいずれか一項に記載の方法。
【請求項11】
前記第1、第2、第3のタイムスライスフレームは、それぞれ、マルチビットピクセルのタイムスライスフレームを形成する、ことを特徴とする請求項1~
9のいずれか一項に記載の方法。
【請求項12】
各第3のタイムスライスフレームの徹底的な検索を行って、最も類似する検索ブロックを見つける、ことを特徴とする請求項1~
11のいずれか一項に記載の方法。
【請求項13】
ダイアモンド検索により前記最も類似した検索ブロックを見つける、ことを特徴とする請求項1~
11のいずれか一項に記載の方法。
【請求項14】
外れ値を棄却するために十分な所定数の有効ピクセルを含む参照ブロック及び検索ブロックのみが比較され、有効ピクセルは、変更イベントが蓄積されたピクセルである、ことを特徴とする請求項1~
13のいずれか一項に記載の方法。
【請求項15】
前記参照ブロックと前記最も類似する検索ブロックとの間の距離が距離閾値を超える場合、最も類似する検索ブロックは外れ値として棄却される、ことを特徴とする請求項1~
14のいずれか一項に記載の方法。
【請求項16】
前記最新の変更イベントのいくつかは現在の第1のタイムスライスに蓄積されるが、スキップされることによってリアルタイムな性能を改善するための参照ブロックのセンタリングには使用されない、ことを特徴とする請求項1~
15のいずれか一項に記載の方法。
【請求項17】
前記方法の実施に用いられる装置がまだ前の変更イベントからのオプティカルフローの処理でビジー状態である場合、前記スキップが行われる、ことを特徴とする請求項
16に記載の方法。
【請求項18】
ピクセル位置(x,y)、速度ベクトル(vx,vy)、特に、速度ベクトルの方向の速度を含むオプティカルフローイベントは、各参照ブロック及び最も類似する検索ブロックから計算される、ことを特徴とする請求項1~
17のいずれか一項に記載の方法。
【請求項19】
前記オプティカルフローイベントは、規則的に間隔を空けて、必要に応じて、サブサンプリングされたモーションフィールドに蓄積される、ことを特徴とする請求項
18に記載の方法。
【請求項20】
基準ブロックと探索ブロックとの間の絶対距離の合計が並行して計算される、ことを特徴とする請求項1~
19のいずれか一項に記載の、特に請求項2及び請求項
3に記載の方法。
【請求項21】
絶対距離の最小合計が並行して計算される、ことを特徴とする請求項1~
20のいずれか一項に記載の、特に請求項2及び
3に記載の方法。
【請求項22】
イベントベースの視覚センサによってキャプチャされたシーンのオプティカルフローを計算する装置であって、複数のピクセルを含み、変更イベントストリームを出力するよう構成されたイベントベースの視覚センサを備え、各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、タイムスタンプと、前記輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータとを含み、
前記装置は、少なくとも3つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレーム(t)と、時刻t-dから始まる第2のタイムスライスフレーム(t-d)と、時刻t-2*dから始まる第3のタイムスライスフレーム(t-2
*d)とに変更イベントを蓄積するよう構成され、dは、各タイムスライスフレームの持続時間であり、
前記装置は、前記持続時間dにわたって現在の第1のタイムスライスフレームに変更イベントを蓄積するようさらに構成され、
前記装置は、第2のタイムスライスフレーム(t-d)の参照ブロックであって、現在の第1のタイムスライスフレーム(t)の最新の変更イベントのピクセルを中心とするピクセルを含む参照ブロックを、第3のタイムスライスフレーム(t-2
*d)の検索ブロックと比較して、距離メトリックによりその参照ブロックに最も類似した検索ブロックを見つけるようさらに構成され、
前記装置は、現在の第1のタイムスライスフレーム(t)が第2のタイムスライスフレーム(t-d)になり、第2のタイムスライスフレーム(t-d)が第3のタイムスライスフレーム(t-2
*d)になり、第3のタイムスライスフレーム(t-2
*d)がクリアされて現在の第1のタイムスライスフレーム(t)になるよう3つのタイムスライスフレーム(t、t-d、(t-2
*d))の交換を周期的に行うようさらに構成さ
れ、
前記イベントベースの視覚センサの元のアドレス空間をサブサンプリングする複数のタイムスライスフレーム群が使用される、ことを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動的視覚センサ(DVS)(例えば、特許文献1)などのイベントベースの視覚センサを使用してオプティカルフローを計算する方法及び装置に関するものである。特に、本発明は、FPGAでOFを計算するイベントベースのブロックマッチングアルゴリズムに関するものである。
【背景技術】
【0002】
以下では、このようなイベントベースの視覚センサは、イベントベースのカメラ又はDVSとも呼ばれる。
【0003】
オプティカルフロー(OF)の計算を高速かつ低電力で行うことは、ロボット工学において有用となり得る。イベントベースの視覚センサは、高速でまばらな出力を生成し、高いダイナミックレンジを備えているが、従来のOFアルゴリズムはフレームベースであり、そのようなイベントベースのカメラで直接使用することはできない。
【0004】
以前のDVSのOF法は、高密度のテクスチャ入力ではうまく機能せず、論理回路での実装用には設計されていない。
【0005】
オプティカルフロー(OF)の推定は、コンピュータ・ビジョンにおいて常に中心的なトピックであり、セグメンテーション、3D再構築、ナビゲーションで広く使用されている。昆虫や哺乳類の運動知覚を理解するために、神経科学の分野において最初に研究が行われた。コンピュータ・ビジョンにおいて、OFは、カメラ/視覚センサの空間内の動きによって生じるモーションフィールドを表している。
【0006】
特に、オブジェクト及び/又は視覚センサ/カメラが動いている(例えば、3D)シーンの画像シーケンスでは、(カメラ又は視覚センサ中心の座標系での)シーンの各点は、画像平面に投影された場合、速度dr(t)/dtを有する2Dパス、r(t)=(x(t),y(t))を生成する3Dパスに沿って移動する。目に見えるすべての表面点の2D速度は、モーションフィールドと呼ばれる。オプティカルフロー計算の目的は、モーションフィールドの近似値を計算することである。
【0007】
2つの周知の安価なオプティカルフローアルゴリズムとしては、Lucas-Kanade法[1]と、Horn-Schunck法[2]がある。多くのOF法の中核は、可能性のあるフローを検索して、各画像又は特徴の位置で最も可能性の高いフローを選択することである。この高密度な画像ブロックによる検索には費用がかかり、埋め込みプラットフォームでリアルタイムに計算を行うのは困難である。
【0008】
イベントベースの視覚センサは、通常のサンプル駆動ではなくデータ駆動である。通常サンプル駆動は、カメラが固定間隔で出力データを送信することを意味するため、一般にフレームベースのカメラとして示される。ただし、イベントベースの視覚センサ/カメラの出力は、固定サンプル間隔ではなく、輝度(又は光強度)の変化によって駆動される。従って、新しいOF法の設計が必要とされている。
【0009】
Benosman他[3]により、2Dイベントとタイムスタンプを3D空間に結合し、OFがローカル平面フィッティングによって得られる時間曲面法が提案された。[4]では、イベントの短い2Dヒストグラムを収集し、それらの輝度の恒常性制約を解決するLucas-Kanade勾配ベース法が提案された。2015年には、Conradt[5]によって、ARM7マイクロコントローラでのリアルタイムDVSオプティカルフローアルゴリズムの実装が提案された。Barranco[6]は、高周波テクスチャ領域に対してより高価な位相ベースの方法を提案した。[7]では、これらの方法のいくつかをJava(登録商標)フレームワークjAER[8]に再実装し、指向エッジの飛行時間に基づいて最も初期のjAER法と比較した。その結論は、いずれの方法でも、シャープでまばらなエッジに対して同等の精度が得られたが、基礎となる仮定(例えば、滑らかな勾配や孤立したエッジ)に違反しているため、テクスチャ化された入力や低空間周波数の入力ではすべて失敗するというものであった。また、カメラの回転からグラウンドトゥルースのグローバルオプティカルフローを取得する統合カメラ慣性計測ユニット(IMU)の使用を紹介し、ここで使用する240×180ピクセルDVSカメラから標準データセットを公開した。既存の作業のほとんどは、PCソフトウェアアルゴリズム[3]、[4]、[6]、[7]に基づいている。[5]は埋め込みシステムに基づいており、リアルタイムで動作するが、空間を介したカメラの並進ではなく、カメラの回転のみを特徴としており、イベントの直接の飛行時間を使用すると、テクスチャ化されたシーンとうまく機能し難くなり、またエッジの開口部の問題に悩まされることになる。
【0010】
ビデオ技術では、OFは動き推定(ME)と呼ばれ、MPEG-4やH.263[9]などのビデオ圧縮標準のビデオシーケンスの時間的冗長性を活用するのに広く使用されている。MEのパイプラインにはブロックマッチングが含まれる。ブロックマッチングとは、フレーム間でピクセルの長方形ブロックを一致させて、最適な一致を見つけることである。ブロックマッチングは計算コストが高くなる。それが現在、専用ロジック回路に広く実装されている理由である。この問題に対処するため、ブロックマッチングに基づくロジックME実装の例をShahrukh[9]に示す。
【先行技術文献】
【特許文献】
【0011】
【発明の概要】
【0012】
上記に基づき、本発明が解決する問題は、動的視覚センサを使用してオプティカルフローを計算するための、特に、ステレオ視(ステレオビジョン)を計算するための効率的な方法及び装置を提供することである。
【0013】
本発明のこれらの態様の好ましい実施形態は、従属請求項に記載され、及び/又は以下に説明される。
【0014】
請求項1によれば、複数のピクセルを含み、変更イベントストリームを出力するよう構成されたイベントベースの視覚センサによってキャプチャされたシーンのオプティカルフローを計算する方法が開示され、各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、(例えば、マイクロ秒の)タイムスタンプ(すなわち、変更イベントが発生した時間)と、輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータ(例えば、バイナリ極性)とを含み、
変更イベントは、少なくとも3つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレーム、時刻t-dから始まる第2のタイムスライスフレーム、時刻t-2*dから始まる第3のタイムスライスフレームに蓄積され、dは、スライス交換(例えば、回転)法に従って、特に異なる時間を含むそれぞれのタイムスライスフレームの持続時間であり、
変更イベントは、前記持続時間dにわたって現在の第1のタイムスライスフレームに蓄積され(現在のタイムスライスフレームは、変更イベントが発生する対応ピクセルでそれぞれの変化イベントを蓄積する)、第2のタイムスライスフレームの参照ブロック、現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む参照ブロックを、第3のタイムスライスフレームの検索ブロックと比較して、距離メトリックによりその参照ブロックに最も類似した検索ブロックを見つけ(特に、最新の変更イベントのピクセルに対する最も類似した検索ブロックの中心ピクセルの相対位置は、最新の変更イベントのピクセルの位置でのオプティカルフローを示し、特に、オプティカルフローの方向は、最新の変更イベントのピクセルから最も類似した検索ブロックの中心ピクセルを指す速度ベクトルによって与えられ、速度は、速度ベクトルの長さを第3のタイムスライスフレーム(t-2*d)の終わりから第2のタイムスライスフレーム(t-d)までの持続時間dで割った値によって与えられる)、
現在の第1のタイムスライスフレーム(t)が第2のタイムスライスフレーム(t-d)になり、第2のタイムスライスフレーム(t-d)が第3のタイムスライスフレーム(t-2*d)になり、第3のタイムスライスフレーム(t-2*d)がクリアされて現在の第1のタイムスライスフレーム(t)になるよう3つのタイムスライスフレームの交換(例えば、回転)を周期的に行う。
【0015】
特に、本発明は、新しいブロックマッチングに基づくイベントベースの視覚センサのOFアルゴリズムを提案する。このアルゴリズムは、ソフトウェアとFPGAの両方に実装されている。特に、一実施形態によれば、各イベントについて、9つの方向のうちの1つとして運動方向を計算する。特に、運動速度はサンプル間隔によって設定される。その結果、平均角誤差が以前の方法と比較して30%改善できることが分かる。OFは、イベントごとに0.2μ8の50MHzクロック(11クロックサイクル)のFPGAで計算でき、これはデスクトップPCで実行されるJava(登録商標)ソフトウェア実装より20倍速い。サンプルデータは、この方法がエッジ、まばらな特徴、及び密集したテクスチャで占められたシーンで機能することを示す。特に、イベントベースの視覚センサの各ピクセルは、ピクセルが生成する光電流に(例えば、単調に)関連する信号を生成する。この光電流は、各ピクセルに入射する光の強度に比例し、各ピクセルは、それぞれのピクセルに入射する光による各信号が、各ピクセルからの最後の変更イベント以降、第1の閾値よりも大きい量だけ増加するか、第2の閾値よりも大きい量だけ減少する場合にのみ変更イベントを出力する。
【0016】
例えば、ピクセル(例えば、ピクセル回路)は、光電流を、各ピクセルの光電流の(例えば、自然な)対数である信号に変換するよう設計されている。しかしながら、ピクセル(又はピクセル回路)は、例えば、別の単調に変化する関数、例えば、平方根関数を光電流に適用する、又は、時間とともにゆっくり変化して応答を最適化する(例えば、応答の感度範囲を時間平均入力値を中心に最適に制御する)他の関数を適用することにより、光電流を信号に変換するよう設計されていてもよい。特に、各ピクセルの本質的な特徴は、光電流の変化を検出し、これらの変化に応じて変更イベントを放出することである。特に、そのすべてのピクセルから一定レートで信号を出力する標準的な視覚センサとは対照的に、これらの変更イベントは非同期イベントである。
【0017】
本発明に係る方法の一実施形態によれば、上記距離メトリックは、参照ブロックピクセルと検索ブロックピクセルとの絶対差の合計である。
【0018】
さらに、本発明に係る方法の一実施形態によれば、イベントベースの視覚センサの元のアドレス空間をサブサンプリングする複数のタイムスライスフレーム群が使用される。
【0019】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、第3のタイムスライスフレームの交換(例えば、回転)は、一定の時間間隔で行われる。
【0020】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、第3のタイムスライスフレームの交換(例えば、回転)は、各第1のタイムスライスフレームに蓄積された特定の、特に一定の合計イベントカウントで行われる。
【0021】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、第3のタイムスライスフレームの交換は、現在の第1のタイムスライスのサブエリアが特定数の変更イベントを蓄積する場合に行われる。
【0022】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、第3のタイムスライスフレームの交換(例えば、回転)は、最後のタイムスライスフレームの交換から統合された全運動が閾値を超える場合に行われる。特に、この統合された全運動は、累積測定オプティカルフローの要約統計量、例えば、測定ローカルオプティカルフローのベクトル和の長さ、又は、オプティカルフロー(速度)ベクトルの大きさの合計である。
【0023】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、及び第3のタイムスライスフレームの交換(例えば、回転)後の持続時間dは、参照ブロックと各最も類似した検索ブロックとの平均一致距離Dに応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される。
【0024】
さらに、本発明に係る方法の一実施形態によれば、上記総イベントカウントは、参照ブロックと各最も類似する検索ブロックとの平均一致距離Dに応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される。
【0025】
さらに、本発明に係る方法の一実施形態によれば、上記特定数は、参照ブロックと各最も類似する検索ブロックとの平均一致距離Dに応じて制御され、この平均一致距離は、計算されたオプティカルフロー分布のヒストグラムにより決定される。
【0026】
さらに、本発明に係る方法の一実施形態によれば、上記第1、第2、第3のタイムスライスフレームは、それぞれ、バイナリビットマップのタイムスライスフレームを形成する。
【0027】
さらに、本発明に係る方法の代替実施形態によれば、上記第1、第2、第3のタイムスライスフレームは、それぞれ、マルチビットピクセルのタイムスライスフレームを形成する。
【0028】
さらに、本発明に係る方法の一実施形態によれば、各第3のタイムスライスフレームの徹底的な検索を行って、上記最も類似する検索ブロックを見つける。
【0029】
さらに、本発明に係る方法の一実施形態によれば、ダイアモンド検索により上記最も類似した検索ブロックを見つける。
【0030】
さらに、本発明に係る方法の一実施形態によれば、外れ値を棄却するために十分な所定数の有効ピクセルを含む参照ブロック及び検索ブロックのみが比較され、有効ピクセルは、変更イベントが蓄積されたピクセルである。
【0031】
さらに、本発明に係る方法の一実施形態によれば、参照ブロックと上記最も類似する検索ブロックとの間の(例えば、距離メトリックによる)距離が距離閾値を超える場合、最も類似する検索ブロックは外れ値として棄却される。ここで、概念距離はブロックの非類似性に関係している、つまり、ブロックの非類似性の尺度である。特に、最も一致する参照ブロックと検索ブロックがあまりにも類似していない場合、一致は棄却され、フローイベントは出力されない。
【0032】
さらに、本発明に係る方法の一実施形態によれば、上記最新の変更イベントのいくつかは現在の第1のタイムスライスに蓄積されるが、スキップされることによって本発明に係る方法のリアルタイムな性能を改善するための参照ブロックのセンタリングには使用されない。
【0033】
さらに、本発明に係る方法の一実施形態によれば、本発明に係る方法の実施に用いられるハードウェア/装置がまだ前の変更イベントからのオプティカルフローの処理でビジー状態である場合、上記スキップが行われる。
【0034】
さらに、本発明に係る方法の一実施形態によれば、ピクセル位置、速度ベクトル、特に、速度ベクトルの方向の速度を含むオプティカルフローイベントは、各参照ブロック及び最も類似する検索ブロックから計算され、特に、速度に関して、持続時間dからも計算される(上記も参照)。
【0035】
さらに、本発明に係る方法の一実施形態によれば、上記オプティカルフローイベントは、規則的に間隔を空けて、必要に応じて、サブサンプリングされたモーションフィールドに蓄積される。
【0036】
さらに、本発明に係る方法の一実施形態によれば、基準ブロックと探索ブロックとの間の絶対距離の合計が並行して計算される。
【0037】
さらに、本発明に係る方法の一実施形態によれば、絶対距離の最小合計が並行して計算される。
【0038】
本発明のさらなる態様によれば、左右のイベントベースの視覚センサからステレオ視を計算する方法が開示され、各イベントベースの視覚センサは複数のピクセルを含み、変更イベントストリームを出力するよう構成されている。各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、(例えば、マイクロ秒の)タイムスタンプ(すなわち、変更イベントが発生した時間)と、輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータ(例えば、バイナリ極性)とを含み、
各視覚センサについて、変更イベントは、少なくとも2つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレームと、時刻t-dから始まる第2のタイムスライスフレームに蓄積され、
左視覚センサの変更イベントは、上記持続時間dにわたって、左視覚センサの現在の第1のタイムスライスフレームに蓄積され、右視覚センサの変更イベントは、上記持続時間dにわたって、右視覚センサの現在の第1のタイムスライスフレームに蓄積される(現在のタイムスライスフレームは、それぞれ、変更イベントが発生する対応ピクセルで各変更イベントを蓄積する)、
右視覚センサの第2のタイムスライスフレームの参照ブロック、右視覚センサの現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む参照ブロックを、左視覚センサの第2のタイムスライスフレームの検索ブロックと比較して、距離メトリックによりその参照ブロックに最も類似した検索ブロックを見つけ、左視覚センサの第2のタイムスライスフレームの追加参照ブロック、左視覚センサの現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む追加参照ブロックを、右視覚センサの第2のタイムスライスフレームの追加検索ブロックと比較して、距離メトリックによりその追加参照ブロックに最も類似した追加検索ブロックを見つけ、
左視覚センサの現在の第1のタイムスライスフレームが左視覚センサの第2のタイムスライスフレームになり、右視覚センサの第1のタイムスライスフレームが右視覚センサの第2のタイムスライスフレームになり、左右の視覚センサの第1のタイムスライスフレームがクリアされるよう4つのタイムスライスフレームの交換(例えば、回転)を周期的かつ同時に行う。
【0039】
特に、ステレオ視を計算する方法は、オプティカルフローの計算を行うための本発明に係る方法に関連して説明された従属請求項の特徴/主題によってさらに特徴付けられ得る。
【0040】
本発明のさらに別の態様によれば、オプティカルフローを計算する装置が開示されている。
【0041】
イベントベースの視覚センサによってキャプチャされたシーンのオプティカルフローを計算する装置は、複数のピクセルを含み、変更イベントストリームを出力するよう構成されたイベントベースの視覚センサを備え、各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、(例えば、マイクロ秒の)タイムスタンプ(すなわち、変更イベントが発生した時間)と、輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータ(例えば、バイナリ極性)とを含み、
上記装置は、少なくとも3つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレームと、時刻t-dから始まる第2のタイムスライスフレームと、時刻t-2*dから始まる第3のタイムスライスフレームとに変更イベントを蓄積するよう構成され、dは、各タイムスライスフレームの持続時間であり、上記装置は、この持続時間にわたって現在の第1のタイムスライスフレームに変更イベントを蓄積するようさらに構成され(現在のタイムスライスフレームは、変更イベントが発生する対応ピクセルでそれぞれの変化イベントを蓄積する)、
上記装置は、第2のタイムスライスフレームの参照ブロック、現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む参照ブロックを、第3のタイムスライスフレームの検索ブロックと比較して、距離メトリックによりその参照ブロックに最も類似した検索ブロックを見つけるようさらに構成され、
上記装置は、現在の第1のタイムスライスフレームが第2のタイムスライスフレームになり、第2のタイムスライスフレームが第3のタイムスライスフレームになり、第3のタイムスライスフレームがクリアされて現在の第1のタイムスライスフレームになるよう3つのタイムスライスフレームの交換(例えば、回転)を周期的に行うようさらに構成されている。
【0042】
対応する実施形態では、本発明に係る装置は、本発明に係る方法の工程を実施するようさらに構成することができる。特に、本発明に係るオプティカルフロー計算方法に関する従属請求項/実施形態の主題は、本発明に係る装置をさらに特徴付けるのに使用可能である。以下に説明するステレオ視用の装置にも同じことが言える。
【0043】
本発明のさらに別の態様によれば、シーンをキャプチャする左右のイベントベースの視覚センサを備えた、ステレオ視を計算する装置であって、各イベントベースの視覚センサは、複数のピクセルを含み、変更イベントストリームを出力するよう構成され、各変更イベントは、ピクセルの1つによって検出された輝度の変化に対応し、(例えば、マイクロ秒の)タイムスタンプ(すなわち、変更イベントが発生した時間)と、輝度の変化を検出したピクセルのピクセルアドレスと、その輝度変化の兆候を示すパラメータ(例えば、バイナリ極性)とを含み、
上記装置は、各視覚センサについて、少なくとも2つのタイムスライスフレーム、つまり、時刻tから始まる第1の現タイムスライスフレームと、時刻t-dから始まる第2のタイムスライスフレームに変更イベントを蓄積するよう構成され、
上記装置は、上記持続時間dにわたって、左視覚センサの変更イベントを左視覚センサの現在の第1のタイムスライスフレームに蓄積するようさらに構成され、上記持続時間dにわたって、右視覚センサの変更イベントを右視覚センサの現在の第1のタイムスライスフレームに蓄積するようさらに構成され、
上記装置は、右視覚センサの第2のタイムスライスフレームの参照ブロック、右視覚センサの現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む参照ブロックを、左視覚センサの第2のタイムスライスフレームの検索ブロックと比較して、距離メトリックによりその参照ブロックに最も類似した検索ブロックを見つけるようさらに構成され、左視覚センサの第2のタイムスライスフレームの追加参照ブロック、左視覚センサの現在の第1のタイムスライスフレームの最新の変更イベントのピクセルを中心とするピクセル(例えば、ピクセルの平方)を含む追加参照ブロックを、右視覚センサの第2のタイムスライスフレームの追加検索ブロックと比較して、距離メトリックによりその追加参照ブロックに最も類似した追加検索ブロックを見つけるようさらに構成され、
上記装置は、左視覚センサの現在の第1のタイムスライスフレームが左視覚センサの第2のタイムスライスフレームになり、右視覚センサの第1のタイムスライスフレームが右視覚センサの第2のタイムスライスフレームになり、左右の視覚センサの第1のタイムスライスフレームがクリアされるよう4つのタイムスライスフレームの交換(例えば、回転)を周期的かつ同時に行うようさらに構成されている。
【図面の簡単な説明】
【0044】
【
図1】本発明に係る方法の実施に使用可能な装置/システム(OFアーキテクチャ)を示す図である。
【
図2】
図1に示す装置の有限状態機械を示す図である。
【
図3】特に1つの9×9ブロックマッチのハミング距離の実装に対するハミング距離計算回路を示す図であり、特に、9つの流れ方向に対して回路が9つある場合を示す。
【
図4】最小距離計算回路、特に、9つではなく5つの入力に対して簡略化された、HDOのソートアルゴリズム実装ブロックを示す図であり、特に、ブロックが9つある場合を示す。
【
図5】OF計算の結果を示す図であって、矢印はフローベクトルであり、その長さは速度(スライス期間dによって決定される)を表す。イベントベースの視覚センサのオンイベントは緑で、オフイベントは赤である。カラーホイールは、フローベクトルの方向の色を示す。各カラーホイール上の2Dグレースケールヒストグラムは、タイムスライス内のフローイベントの方向(ここでは9つの方向ビンを使用)の分布を示す。最も明るいビンは、グローバルモーションの可能性の高い方向を決定する。(A)は、d=40msの[7]のボックスシーンを示し、(B)は、d=10msの下向きのイベントベースの視覚センサによって記録された舗装を示し、(C)は、d=3msの砂利エリアを示す。明確にするために、ダウンサンプリングによって100個の変更イベントごとに1つのフローイベントを計算した。
【
図6】ブロック半径とAAEの関係を示す図である。
【
図7】複数のスケールとイベントスキップによるイベント蓄積とOF処理の実装を示す図である。
【
図8】スライス回転のイベント蓄積をカウントするための画像空間のAreaEventCount分割を示す図である。
【
図10】confidenceThresholdとvalidPixOccupancyによる外れ値棄却の例を示す図であり、(A)は外れ値棄却を行わない場合を示し、(B)は外れ値棄却を行う場合を示す。
【
図11】さまざまな画像特徴のブロックマッチングの例を示す図であり、赤は参照ブロックのスライスピクセル、緑は検索領域のスライスピクセル、青いピクセルは、一致したブロックピクセルを示す。(A)はエッジ、(B)はコーナー、(C)は孤立した特徴、(D)はテクスチャをそれぞれ示す。
【
図12】イベントスキップによって得られたマルチスケール・マルチビットフロー結果の例を示す図であり、シーンは、屋外シーンを歩行中にキャプチャされたものである。Ns=3スケールを使用し、各スケールの検索距離はr=4で、最大スライス値は+1-1符号付き変更イベントであった。面積法を使用して、32×32ピクセルの面積を有するスライスを回転させ、カウントNR=4000イベントの回転を行なった。この時点での最後のタイムスライス間隔は21msであった。
【
図13】
図12のオプティカルフロー(OF)ヒストグラムの詳細と、
図12に表示された10ミリ秒イベントパケットの各スケールでのフローイベントのカウントを示す図である。赤い丸及び青いボックスの中心にあるOFヒストグラムの中心はゼロモーションに対応する。青いボックス内の領域が灰色の場合、これらの方向には一致するフローイベントブロックはない。白い点は、ほとんどの一致が下と右にあることを示し、これは、
図12の右下を指すフローベクトルの優位性に対応している。赤い丸は、OFブロックマッチの平均半径を示す。上記のアルゴリズムでは、スライス持続時間を制御するのに使用される。「スケールカウント:」の横の数字244 71 105は、フル解像度(s=0)から4解像度(s=2)でサブサンプリングされた解像度までの各スケールでのフローイベントのカウントである。このパケットの場合、3つのスケールすべてに最適なマッチがほぼ均等に分布している。この時点では、スライス蓄積ではなく、フロー処理のために112イベントがスキップされる。最新のスライス間隔は21.4msであった。
【
図14】モーションフィールド(MF)出力の
図12のシーンの後半部分の例を示す図である。OFイベントは、16×16ピクセル領域でMFにサブサンプリングされる。144msの時間間隔の各ローパスフィルタ時定数が経過した後に、拡散工程が適用される。下向きのフローベクトルが優勢であることから、画像の上部にある建物に向かって地面をカメラが移動していることがわかる。
【
図15】さらなるシーンを示す図である。(A)は屋外で砂利の上を回転しているシーンを示し、(B)は屋内の廊下を歩いているシーンを示し、(C)は屋外で海岸沿いの砂の上を歩いているシーンを示し、(D)は電車の窓からのシーンを示す。すべてのシーンは、同一の3スケール、11ピクセルのブロックサイズ、ダイアモンド検索、3ピクセルの検索距離を使用してキャプチャされたものである。スライスの最大値は、+1-1である。AreaEventNumber法により、フィードバック制御下でスライスイベント数を設定した。
【発明を実施するための形態】
【0045】
本発明のさらなる特徴、利点及び実施形態について、図面を参照して以下に説明する。
【0046】
イベントベースの視覚センサ又はDVSの出力は、輝度変化イベントのストリームである。各変更イベントには、例えば、マイクロ秒のタイムスタンプと、(変更イベントを検出したピクセルの)ピクセルアドレスと、輝度変化の兆候を示すパラメータ(例えば、バイナリの極性)とが含まれる。各イベントは、ピクセルからの最後のイベントから約15%の輝度変化を表す。FPGA実装の結果が利用できる最も単純な実装では、最小のロジックとメモリサイズを実現するために、イベントは、特に上記のパラメーター(イベント極性)を無視して、バイナリイメージとしてタイムスライスフレーム(又はタイムスライスメモリ)に蓄積される。ここでは、これらのビットマップフレームをスライスと呼ぶ。ブロックは、到着したイベントの場所を中心とした正方形である。マッチングは、距離メトリックに基づいている。特に、一実施形態によれば、距離メトリックとしてハミング距離(HD)が使用される。HDは、異なるビット数のカウントである。ビットマップの場合、HDはよく知られている絶対差の和(SAD)と同じである。
【0047】
ハードウェア評価システム/装置は2つの部分に分かれている。1つはデータのシーケンスと監視用で、もう1つはアルゴリズムの実装用である。一方では、セビリア大学が設計したモニターシーケンサーボード[13]が使用される。このシーケンサは、イベントベースの標準データセット[7]をOFのFPGAに送信されるリアルタイムのハードウェアイベントに変換する。OF計算中に、モニターはOFイベントを収集し、USB経由でjAERに送信してレンダリングと分析を行う。このようにして、OFアルゴリズムのソフトウェア処理とハードウェア処理を比較できる。本明細書で説明する実施例/実施形態のフレームワークでは、事前に記録されたデータを使用することで、ソフトウェア実装とハードウェア実装の体系的な比較が可能となる。
【0048】
本発明に係る装置/OFアーキテクチャの実施形態を
図1に示す。これには、有限状態機械(FSM)、ランダムアクセスメモリブロックメモリ(RAM)、回転制御ロジックの3つの主要なモジュールが含まれている。FSMのアーキテクチャを
図2に示す。このFSMは、データ受信モジュール、OF計算モジュール、データ送信モジュールの3つの部分から構成されている。データ送信モジュールとデータ受信モジュールは、モニターシーケンサーと通信を行う。OFモジュールについては、以下でさらに詳しく説明する。
【0049】
3つの240×180ピクセルの変更イベントビットマップスライスがRAMに保存される。これらのスライスは、タイムスライスメモリとも呼ばれ、従来のカメラのバイナリイメージフレームに似ているが、イベントベースの視覚センサ(DVSなど)の場合、スライス間隔を任意に選択できる。1つは時刻tから始まる現在の収集タイムスライスであり、他の2つは時刻t-d(若いタイムスライスメモリ)とt-2*d(古いタイムスライスメモリ)から始まる過去2つのスライスである。時間間隔dはスライス持続時間、例えば、10msである。特に、一例によれば、データセットのスローモーションに合わせてd=100msが使用された。t-dの間隔で、回転制御ロジックは3つのスライスを回転(又は交換)する。tスライスは新しいデータを蓄積する。空で始まり、徐々にイベントを蓄積するため、過去のスライスとのマッチングには使用できない。2つの過去のスライスt-d及びt-2*dはOFに使用されるが、OF計算はtスライスに格納された各イベントの場所で実行されるため、これらのイベントによって駆動される。スライスはFPGAのブロックRAMに保存される。このRAMの合計サイズは240×180×3で、イベントベースの視覚センサのピクセル配列サイズに一致し、ザイリンクスのIPコアによって生成される。
【0050】
一実施形態によれば、本発明に係るオプティカルフローアルゴリズム/オプティカルフロー法をまとめると以下のようになる。
【0051】
イベントが到着すると、タイムスライスt-dからの単一の参照ブロックとタイムスライスt-2*dからの9つのブロックがHDモジュールに送信されて、距離が計算される。この参照ブロックと検索領域は、変更イベントのx、y位置(すなわち、最新の変更イベントが検出されたピクセル位置)を中心としている。現在のFPGA実装では、一実施形態によれば、ブロックは9×9個のピクセルを含む。t-dタイムスライスの場合、一実施形態によれば、1つの中央ブロックのみが基準として使用される。本発明に係るアルゴリズム/方法は、t-2*dタイムスライス上の最も類似したブロックを見つける。OFの輝度恒常性の仮定によると、実際のOFに最もよく一致するブロックのt-2*dタイムスライスに同様のブロックが表示されるはずである。特に、このアルゴリズムは、現在のイベントアドレスの8つの近傍を中心とする8つのブロックと参照を中心とする1つのブロックを検索し、最小距離のブロックを選択する。
【0052】
1.ハミング距離:1つのハミング距離(HD)ブロックの実装を
図3に示す。合計81個のXOR論理ゲートが、スライス上の対応するピクセルから入力を受け取る。XOR出力を合計してHDを計算する。絶対差の合計(SAD)は、後でアルゴリズムのより一般的な形式で使用される。
【0053】
2.最小距離の計算:アルゴリズムの最後のステップは、最小距離の候補を見つけることである。新規の最小回路の一部を
図3に示す。最小距離方向のインデックスを出力する並列実装である。例えば、5つのデータから最小値を見つける必要がある場合、つまり、HDO-4(
図4からの出力)の場合、回路は5つの部分に分割できる。
図3の最初の部分は、HD0を他のすべてのデータと比較し、データOがHD1-4よりも大きくなる回数のカウントを出力する。他の4つの部分は同じように実装され、それらの部分はすべて同時に計算される。最後に、合計がゼロの部分が最小候補である。従って、最小距離候補は1クロックサイクルで決定される。
【実施例】
【0054】
ザイリンクスのSpartan6ファミリチップxc6slx150tを使用して、本発明に係るアルゴリズム/方法を実装した。184304個のフリップフロップと92152個のLUT、4MBのブロックメモリを備えている。実装されたOFデザインは、フリップフロップの0.9%、LUTの5%、ブロックRAMの5%を占有する。テストデータセットには、[7]のイベントベースのオプティカルフロー標準データセットが使用され、評価方法とグラウンドトゥルースも得られた。さらに、粗いテクスチャと密なテクスチャの例には、追加の自然のシーンデータも使用された。
【0055】
3つのサンプルデータセットのテストが行われた。それらはすべて実際のDVSデータである(
図5参照)であって、エッジ、まばらな点、高密度テクスチャにそれぞれ対応するボックスの平行移動(A)、舗装(B)、砂利(C)である。ボックスのシーンには、前景にボックスがあり、背景にクラッタがあり、カメラは左にパンし、主に拡張エッジが全体的に右方向へ平行移動する。舗装データセットでは、カメラは下向きで、手で運ばれ、フローは右下を指す。舗装の欠陥によって、まばらな特徴が生じる。砂利のデータセットは外部に記録され、密度の高いテクスチャを有し、東向きの移動である。
【0056】
ブロックマッチングのOF結果を
図5に示す。各シーンでは、ほとんどのベクトルが、ボックスの平行移動の場合は東を、舗装シーンの場合は南東を、砂利シーンの場合には東を正しく指していることがわかる。エラーは、主に、イベントベースの視覚センサのノイズや拡張エッジの開口の曖昧さが原因である。
【0057】
精度分析に関して、[7]では、従来のOFに使用される同様のメトリクスに基づいて、イベントベースのOF精度を計算する2つの方法を提案した。1つは平均終点誤差(AEE)と呼ばれ、もう1つは平均角度誤差(AAE)である。AAEでは、推定フローの方向の誤差を測定し、AEEには速度誤差が含まれる。これらの2つの方法はすでにjAER[8]で実装されている。純粋なカメラ回転からのIMUデータとレンズ焦点距離を使用して、各変更イベントのグラウンドトゥルースOFを計算する。シーケンサの出力データにはIMUデータがないため、OF精度はPC実装によって測定された。FPGAとPC間のアルゴリズムパイプラインは同一であるため、精度には影響を与えない。その結果も[7]と比較され、イベントベースのLucas-Kanade及び局所面アルゴリズムの2つの変形例が選択された。すべてのアルゴリズムのエラーを以下の表Iに示す。PM
hdは、HDメトリックによるブロックマッチングアルゴリズムを表す。ブロック半径とAAEの関係を
図6に示す。
【0058】
【0059】
さらに、ソフトウェアの時間計算量は、ブロックサイズに応じて二次的に増加するのに対し、FPGAでは直線的にしか増加しない。アルゴリズムの処理時間には、3つのスライスからのデータの読み取り、HD計算、最小値の検索の3つの部分が含まれる。複数のデータを1つのRAMから同時に読み取ることはできないため、PC上のFPGA実装とソフトウェア実装の両方で、RAMからのデータの読み取りに線形時間がかかる。ただし、後者の2つの部分はFPGAで一定の時間(2クロックサイクル)を要し、PCでは2次時間を要する。要約すると、FPGAでの処理時間は(ブロック次元+2)サイクルである。例によれば、FPGAは50MHzの周波数で動作し、ブロック次元は9である。従って、アルゴリズム全体では、変更イベントごとに220ns、つまり0.22μ8しかかからない。PCでは、Java(登録商標)実装がアルゴリズムを実行するのには、イベントごとに4.5μ8かかる。FPGAでの実装は、PCでの実装より20倍高速である。例によれば、実装では単一ポートRAMを使用するが、複数のバンクを使用することでさらなる高速化が可能である。
【0060】
本発明によれば、特にFPGA上でリアルタイムにイベントベースのオプティカルフローを推定する新しい方法が提供される。ハミング距離のソフトウェア計算コストは、ブロックサイズが増加するにつれて二次的に増加するが、FPGAでは、ブロック内のすべてのビットを同時に計算できるため、すべてのブロックサイズで一定の時間がかかる。これにより、FPGA実装の全体的な計算時間が大幅に短縮され、ソフトウェア実装よりも20倍高速になる。現在の実装では、すべての到着イベントが処理される(わずか50MHzのごく平均的なFPGAクロックを使用して、最大5Mepsの入力イベントレートの処理を可能にする)。ただし、
図5(C)に示すように、すべての変更イベントを処理する必要はない。OF計算のダウンサンプリングが行われるが、イベントベースの視覚センサ(DVSなど)の変更イベントは、依然としてフローを推定する場所を示す。
【0061】
上述の本発明の一般的な実施形態には、さらなる変更を加えることができる。対応する実施形態を以下に説明する。特に、3つの改善点がある。現在の実装では、フローの方向のみを推定し、速度は推定しない。速度の測定にはさらなる検索距離が必要となり、効率的な検索を行うための周知のアルゴリズムが存在する[14]。次に、スライスに収集されたイベントシーケンスは通常、ノイズのために異なる長さを有し、HDがやや曖昧であるため、他の距離メトリックも使用できる[15]。最後に、所望のサンプルレートで処理可能なイベントベースの視覚センサ(DVS)のイベント出力のユニークな機能をより活用するために、スライス期間にフィードフォワード及びフィードバック制御を実行することができる。この機能は、サンプルレートと処理速度が密接に結びついているフレームベースのビジョンとは異なる重要な特徴である。イベントベースの視覚センサ(DVSなど)のブロックマッチング法が可能になり、検索距離が小さく、適度なハードウェアリソースのみでも高いOF精度を実現する。
【0062】
さらなる実施形態によれば、マルチビットタイムスライスを使用することができる。
【0063】
バイナリビットマップタイムスライスを使用する場合の制限は、ビットマップピクセル位置に最初のイベントが蓄積された後にピクセル値が飽和することである。また、イベントベースのセンサのイベント極性(ON/OFF)を無視するため、逆極性のエッジを誤って一致させてしまう可能性がある。
【0064】
改善点としては、マルチビット符号付きタイムスライスを使用することである。イベントは前述のようにピクセルメモリに蓄積されるが、ピクセル値は(必要に応じて)符号付きで、値の範囲を取るnビット表現を有する、つまり、n=2ビットの場合、符号なし範囲は0、1、2、3となる。符号付き2ビットバージョンの場合、2の補数バイナリ表現によるn=2の範囲は、バイナリ値11、10、00、01でエンコードされた2、1、0、1である。n=2ビットの場合、1つのONイベントと3つのOFFイベントがピクセルごとに蓄積されると、結果として得られるスライスピクセルの値は符号なしの場合は3、符号付きの場合は-2になる。オーバーフローによってカウントが最低値に戻ったりせず、最大絶対値のままとなるよう、マルチビット値の更新には、飽和演算を使用することが好ましい。
【0065】
マルチビットタイムスライスのメモリコストは、nに正比例する。XORゲートが全加算器に置き換えられ、参照ブロックと検索ブロック領域間の絶対差の合計(SAD)が計算されるため、演算コストもnに比例する。
【0066】
本発明に係る方法/システムのさらなる実施形態によれば、拡張され最適化された検索を使用することができる。
【0067】
前述の実装では、ターゲットブロックとその8つの最近傍のみで検索が行われた。検索範囲をより大きな距離範囲rに拡張することで改善される。上記の実装では、r=1である。rを大きくすると、より細かい範囲の動きベクトルの角度と速度を計算できる。(2r+1)2の検索位置を徹底的に検索することは可能であるが、2ステップ検索(TSS)やダイアモンド検索(DS)などの周知の方法によって必要な労力が大幅に削減される。DSアルゴリズムのソフトウェア実装では、r=12、ブロック寸法が9(r=5)の場合、DSを使用することで、フル検索の場合の377μ8/βνβηiからDSを使用した場合の13μ8/βνβηiへとイベント処理時間が29倍短縮される。
【0068】
本発明に係る方法/システムのさらなる実施形態によれば、マルチスケール空間タイムスライスを使用することができる。
【0069】
これまでに説明した方法の制限は、マッチングでは基準位置の周りの平方半径rの空間範囲しかカバーできないため、方法の動的速度範囲が制限されることである。検索時間を直線的に増やすだけで検索範囲を広げる方法の1つとしては、マルチスケールピラミッドを使用することである。この方法では、変更イベントがタイムスライスのスタックに蓄積される。スタック内の各スライスは、x及びy方向の元のイベントアドレスを、前のスケールよりも2倍だけサブサンプリングする。つまりスケールsがタイムスライスの空間スケールであり、s=0が元のフル解像度スケールである場合、まずはイベントx及びyアドレスをsビットだけ右にシフトし、結果のイベントをスケールsスライスに蓄積することにより、イベントがスケールsに蓄積される。例えば、s=1スケールスライスでは、各ピクセルは、フル解像度の元のピクセルアドレス空間の2×2ピクセル領域からイベントを蓄積する。従って、各イベントを蓄積する特定の動作は、現在のリファレンス実装から取られた次のJava(登録商標)コードスニペットによって行われる。
【0070】
private void accumulateEvent(PolarityEvent e) {// e is the DVS event
for (int s = 0; s < numScales; s++) { //iterate over all scales
final int xx = e.x ≫ s; // subsample the x address
final int yy = e.y ≫ s; // subsample the y address
int cv = currentSlice[s][xx][yy]; //find current value of slice at scale s
cv += rectifyPolarties ? 1 : (e. polarity == PolarityEvent.Polarity.On ? 1 : -1); // optionally, rectify the polarity
if (cv > sliceMaxValue) { // apply saturating math to limit range of result slice value to maximum allowed
cv = sliceMaxValue;
} else if (cv < -sliceMaxValue) {
cv = -sliceMaxValue;
}
currentSlice[s][xx][yy] = (byte) cv; //store the new slice value in the slice
}
}
【0071】
図7に、これらの複数のスケールを使用して、各スケールでサブサンプリングされたスライスを使用して範囲rまで検索を実行する方法を示す。そして、最終結果は、すべてのスケールで最も一致するブロックから選択することができる。検索範囲全体が半径まで拡張される。
【0072】
複数の空間スケールを使用する代償としては、スライスを保存するためのメモリの増加と、これらのスケールに対するさらなる検索が挙げられる。並列ハードウェアユニットは、個別のメモリブロックを使用するため、すべてのスケールを同時に検索できる。この利点としては、スケールsでの検索が2Usrの画像空間の半径をカバーすることである。総コストは、ロジック又は時間の1ファクター(ns+1)だけ増加する。例えば、ns=3を使用すると、検索の線形範囲は8倍になり、検索領域は64倍になるが、面積又は時間のコストはたった3倍である。
【0073】
複数のスケールを使用すると、動きが遅い場合により細かい速度と角度分解能が得られるという利点もある。従って、速度が低い場合、フロー推定の精度が維持される。
【0074】
サブサンプリングされたタイムスライスは、元のフルスケールスライスよりも1ピクセルにつきより多くのイベントを収集するため、マルチビット技術とマルチスケール技術を組み合わせることが好ましい。これにより、より簡単に飽和が可能となる。実際には、
図11及び
図12のデータ例に示すように、3つのスケールを使用する場合、飽和の防止には、最大16個のイベントを蓄積できるマルチビットビット解像度n=4の適度な値で十分であることがわかった。
【0075】
さらに、適応スライス持続時間に関して、ビットマップスライスを蓄積するための3つのソフトウェア法が実装されている。これらの方法は、ConstantDuration、ConstantEventNumber、AreaEventNumberと示されている。現在のハードウェアFPGAデザインでは、ConstantDuration法しか実装されていないが、その他の方法もハードウェアへの実装が容易である。
【0076】
ConstantDuration:ここでは、スライスは期間dのタイムスライスに均一に蓄積される。この方法は、従来のフレームベースの方法に最も密接に対応している。シーンの動きが速すぎる場合、スライス間の移動が大きすぎて、指定された検索距離を使用できない可能性があるという欠点がある。動きが遅すぎると、特徴がスライス間で十分に移動せず、フロー速度と角度分解能が低下する場合がある。
【0077】
ConstantEventNumber:ここでは、変更イベントKの合計総数が固定されるまでスライスが蓄積される。Kが大きい場合、スライスのdは大きくなる傾向がある。しかし、シーンがより速く移動すると、変更イベントの割合も増加し、固定Kの場合はdが減少する。従って、ConstantEventNumber法は、dをシーン全体の平均的なダイナミクスに自動的に適合させる。
【0078】
AreaEventNumber:ConstantEventNumber法の欠点は、その全体的な性質である。均一に高いテクスチャを持つシーンに対してKが適切に設定されている場合、孤立した特徴を持つシーンで同じKを使用すると、全体的な変更イベントレートが低くなるため、dがはるかに長くなる。従って、すべてのシーンで最適なマッチングを行うのに適切なdが維持されない。
【0079】
この問題に対処する実用的な方法は、AreaEventNumberと呼ばれる。ここでは、センサーピクセルアレイ全体が粗いブロックに細分される。2DメモリアレイAは、ブロックごとのイベントカウントをトラックする。Aは、スライスの回転後にゼロになる。Aの任意の要素がK個のイベントを蓄積すると、スライスが回転し、回転時間dが記録されて速度の計算が可能になる。このエリアブロック配置の例を
図8に示す。ここで、画像領域は、2
6×2
6=64×64ピクセル領域を意味するareaEventNumberSubsampling6で配列Aに分割されている。任意のサブエリア(Aの要素)が(sliceEventCount(スライスイベントカウント)プロパティのソフトウェアGUIに示されているように)1432個のイベントを蓄積すると、スライスは回転/交換される。この方法で計算された最後のスライス間隔は、この例では、d=21msであった。
【0080】
AreaEventNumber法を使用すると、スライスの回転/交換は変更イベントの蓄積によってデータ駆動されるが、この方法では、シーンの最速移動領域に一致するようにスライスの持続時間を調整する。これにより、スライス間で一致するには動きが大きすぎるアンダーサンプリングが防止される。
【0081】
AreaEventNumberのハードウェアコストは、通常のスライスの蓄積に類似している。粗いサブサンプリングされたスライスへの蓄積とほぼ同じであるが、イベントの極性は無視でき、エリアメモリレジスタは、通常、実際には1k~1Ok個のイベントの値をとる非常に大きな最大イベントカウントKに対応できる幅でなければならない。ただし、これらの幅の広いレジスタは、要素の数がはるかに少ないためオフセットよりもはるかに多くなる。例えば、
図8では、4ビットのマルチビットスライス値を使用するフル解像度スライスメモリの346×260×4=360kビットと比較して、たった5×5×16=400ビットでAが形成される。従って、Aはスライスメモリの90分の1のメモリしか必要としない。
【0082】
スライス持続時間のフィードバック制御:異なるシーンに応じてスライス時間又はイベント数を自動的に調整する別の方法は、フィードバック制御によって実行可能である。本実施形態では、オプティカルフロー分布ヒストグラムを作成して、現在のスライスパラメータの精度を測定する。ヒストグラムの加重平均一致距離Dが計算される。Dがr/2よりも大きい場合、タイムスライスが長すぎるため、スライス持続時間又はイベント数が減少していることを意味する。それ以外の場合、平均一致距離がr/2より小さい場合、スライス持続時間が短すぎることを示し、スライスの継続時間又はイベント数が増加する。このフィードバック制御法は、さらなるポリシーステップを用いて安定性を確保することで改善できる。さもなければ、非常に長いスライス持続時間は、ゼロモーション(小さな一致距離)への検索アルゴリズムのバイアスの結果である非常に短い一致距離のOF結果をもたらす可能性がある。実際には、アプリケーション特有の制限内であるスライス持続時間の範囲を制限することにより、安定性を確保することができる。
【0083】
以下のJava(登録商標)コードスニペットは、このアルゴリズムの1つの実装の特定のステップを示す。
【0084】
private void adaptSliceDuration() {
{
// measure last hist to get control signal on slice duration
// measures avg match distance.
float radiusSum = 0;
int countSum = 0;
final int totSD = search Distance ≪ (numScales - 1 );
for (int xx = -totSD; xx <= totSD; xx++) {
for (int yy = -totSD; yy <= totSD; yy++) {
int count = resultHistogram[xx + totSD][yy + totSD];
if (count > 0) {
final float radius = (float) Math.sqrt((xx *xx) + (yy * yy));
countSum += count;
radiusSum += radius * count;
}
}
}
if (countSum > 0) {
avgMatchDistance = radiusSum / (countSum); // compute average match distance from reference block
}
switch (sliceMethod) {
case ConstantDuration:
int durChange = (int) (errSign *adapativeSliceDurationProportionalErrorGain * sliceDurationUs);
setSliceDurationUs(sliceDurationUs + durChange);
break;
case ConstantEventNumber:
case AreaEventNumber:
setSliceEventCount(Math.round(sliceEventCount * (1 + adapativeSliceDurationProportionalErrorGain *errSign)));
} }
}
【0085】
図9のデータは、64×64ピクセルの領域を使用するAreaEventNumberフィードバック制御法によるイベント数制御の例を示す。シーンには、時間の経過とともにあらゆる速度が見られた。青いトレースは、平均OF一致距離を示す。イベント数のフィードバック制御によって、約0.5の(正規化された)平均値で平均一致距離が保持された。オレンジ色のトレースはイベント数を示す。イベント数の定常状態(正規化)値は約0.23である。パケット1800前後では、イベント数は手動で大きな値に摂動され、結果として平均一致距離が減少した。イベント数は、ただちに定常状態の値に戻る。パケット1900付近では、イベント数が手動で小さな値に減らされ、一致距離が非常に小さくなり、再び定常状態の値に戻る。このデータは、平均速度に大きなばらつきがあるデータのイベント数制御の安定性を示す。
【0086】
精度を改善するために、本発明のさらなる実施形態によれば、外れ値棄却を採用することで、マッチング品質が低いイベントを除外する。特に、外れ値の棄却には2つのパラメータが用いられる。
【0087】
1つのパラメータはvalidPixOccupancyと呼ばれ、比較する2つのブロック内の有効ピクセルの割合を決定する。有効ピクセルとは、変更イベントが蓄積されたピクセルを指す。このパラメータを設定する理由は、ブロックがあまりにもまばらであり、距離メトリックが無意味な結果になることがあるためである。十分な有効ピクセルで満たされたブロックを計算するだけで、誤解を招く結果を排除することができる。参照ブロック又は検索ブロックの占有率が不十分な場合、OF一致距離の結果は最大値に設定される。
【0088】
もう1つの外れ値棄却パラメータは、confidenceThresholdと呼ばれる。参照ブロックと候補ブロックとの間の最小距離(類似度)は、confidenceThresholdよりも小さく(大きく)する必要があり、そうでない場合、OFイベントは外れ値と見なされて棄却される。従って、最適な一致検索ブロックは実際には不十分な一致である可能性があり、confidenceThresholdによって一致距離が大きすぎる場合に最適な一致を棄却することができる。
【0089】
これらのパラメータの効果を、
図10のデータ例において、黒のバーが右上に移動する単純な例で示す。フローの結果は、これらの外れ値の棄却基準により、明らかにはっきりとした結果となる。
【0090】
いずれの外れ値棄却メカニズムも、ハードウェアで簡単に実装できる。例えば、一実施形態によれば、有効ピクセル占有率は、両方のオペランドがゼロの場合に大きな値を出力するピクセル減算ユニットによって実現することができる。信頼閾値は、長すぎる距離にフラグを立てる最終的なベストマッチ出力結果のコンパレータによって実現できる。
【0091】
さらに、オプティカルフローのすべての到着変更イベントを処理する必要はない。現在のタイムスライスで収集された変更イベントは、新しい視覚データがある場所の指標である。参照ブロックの中心位置を設定する場合を除いて、実際にはマッチングの計算には使用されない。従って、これらのイベントを現在のタイムスライスに蓄積できるが、ハードウェア又はソフトウェアが前のイベントの処理でビジー状態であるか、イベントパケットを処理するためのタイムバジェットを超過した場合、これらのイベントの処理フローをスキップすることができる。
【0092】
従って、一実施形態によれば、適応型イベントスキップが実行される。ここでは、skipProcessingEventCountと呼ばれるパラメータにより、スキップされたイベント数を保存する。この数は適応的に変更される。イベントスキップアルゴリズムは以下のように設計されている。
【0093】
1.平均フレーム/秒(FPS)は、アプリケーションから計算される。
2.得られたFPSが低すぎる場合、skipProcessingEventCountが増加する。そうでなければ、得られたFPSが十分に高い場合、skipProcessingEventCountが増加する。
3.また、skipProcessingEventCountの最大値は、多くのイベントと情報を見逃さないように設定されている。
【0094】
このイベントスキップアルゴリズムにより、イベント処理時間が劇的に短縮されるため、比較的非効率なソフトウェア実装でもソフトウェアの実時間性能が可能になる。
【0095】
ハードウェアでは、イベントスキップの一実装例を
図7に示す。変更イベントは、OFソフトウェア又はハードウェアブロックが利用可能な場合に処理される。OFユニットが作業中のイベントを処理している間、変更イベントは常にタイムスライスメモリに蓄積される(この例では、3つのスケールを使用するため、そのうち3つ)。現在の変更イベントは現在のスライスtに蓄積されるので、メモリアービターは必要ないが、OFブロックは、最新の変更イベントアドレス(どこが検索の中心かを知るため)と過去のt-d及びt-2
*dタイムスライスにしかアクセスしない。
【0096】
本発明のさらなる実施形態によれば、オプティカルフローモーションフィールドのフィルタリングを行うことができる。
【0097】
ここで、上記方法から出力される生のOFイベントは、規則的に間隔を空けて、必要に応じてサブサンプリングされたモーションフィールド(MF)に蓄積することができる。このMFは、空間と時間にわたって複数のOFイベントをフィルタリングしてノイズを削減し、MFの滑らかさなどの制約を課す。このようなMFを正規化する方法としては、多数の方法がある。ここでは、本発明の一実施形態に係る基本的な実装を説明する。それによれば、OF出力のノイズは削減されるが、(一時的なローパスフィルタリングによる)時間遅延の増加と、(サブサンプリングと拡散による)空間分解能の低下が生じてしまう。従来の処理の利点は、一定間隔のMFグリッドとして表現されることである
【0098】
次のJava(登録商標)コードスニペットは、MF処理を示す。この方法は、位置x、y、速度ベクトルvx、vy、(事前計算済み)速度のOFイベントを用いて。モーションフィールド配列値を更新する。任意のアルゴリズムフラグにより以下が可能となる。
【0099】
1.ゼロフローに向けたMF値の任意の周期的減衰、
2.既存のMF値と一致する場合にのみOFイベントを追加する任意の一貫性チェック(例えば、OFベクトルとMFベクトルのドット積が正であるかどうかをチェックし、同じ方向を指していることを示す)
3.調整可能な時定数でMF値をOF値に向けて更新するローパスフィルタリング工程、
4.そして、MF値とその近傍を平均化する任意の拡散工程。
【0100】
/**
* updates motion field
*
* @param timestamp in us
* @param x1 location pixel x before subsampling
* @param y1
* @param vx flow vx, pps
* @param vy
*/
synchronized public void update(int timestamp, int x, int y, float vx, float vy, float speed) {
int dtDecay = timestamp - lastDecayTimestamp;
if (decayTowardsZeroPendiclly && dtDecay > motionFieldTimeConstantMs * 1000 II dtDecay < 0) {
decayAIITowardsZero(timestamp);
lastDecayTimestamp = timestamp;
}
int x1 = x ≫ motionFieldSubsamplingShift, y1 = y ≫ motionFieldSubsamplingShift;
if (x1 < 0 II x1 >= velocities. length || y1 < 0 || y1 >= velocities[0]. length) { return;
}
if (checkConsistent(timestamp, x1 , y1 , vx, vy)) {
velocities[x1 ][y1 ].filter(vx, vy, speed, timestamp);
if (motionFieldDiffusionEnabled) {
// diffuse by average of neighbors and ourselves
int n = 0;
float dvx = 0, dvy = 0, dvs = 0;
for (int dx = -1 ; dx <= 1 ; dx++) {
int x2 = x1 + dx;
if (x2 >= 0 && x2 < velocities. length) {
for (int dy = -1 ; dy <= 1 ; dy++) {
int y2 = y1 + dy;
if (dx == 0 && dy == 0) {
continue; //don't count ourselves
}
if (y2 >= 0 && y2 < velocities[0]. length) {
n++;
Point3D p = velocities[x2][y2].getValue3D();
dvx += p.x;
dvy += p.y;
dvs += p.z;
}
}
}
}
float r = 1 f / n ; // recip of sum to compute average
LowpassFilter3D v = velocities[x1][y1 ];
Point3D c = v.getValue3D();
v.setlnternalValue3D(.5f * (c.x + r * dvx), .5f * (c.y + r * dvy), .5f *(c.z + r * dvs));
}
}
lastTs[x1 ][y1] = ts;
}
【0101】
本発明のさらなる実施形態によれば、ブロックマッチングによってステレオ視マッチングを行う。
【0102】
オプティカルフローについて説明した装置と方法は、ステレオ立体視の密接に関連する問題に非常に簡単に適用できる。オプティカルフローでは、参照ブロックは検索領域で過去のタイムスライスと照合される。ステレオ視では、片方の目からの参照ブロックが、いわゆるエピポーラ線によって定義された検索曲線上で、もう一方の目からの同じタイムスライスに一致する。
【0103】
ステレオ視の場合、本発明に係るアルゴリズム/方法の最も単純な実施形態は、前述のスライス回転/交換方法の1つ(例えば、ConstantDuration、ConstantEventNumber、AreaEventNumber)により、両目からスライスを同時に回転させる。イベント数法の1つを用いる場合、回転/交換はどちらかの目での蓄積によってトリガできる。
【0104】
オプティカルフロー法とステレオ法は、蓄積タイムスライスとブロックマッチングのみに依存するため、組み合わせることができる。ステレオマッチングとオプティカルフローの計算は、どちらかの目から現在のタイムスライスに蓄積されたイベントによってトリガできる。
【0105】
本発明に係る強化されたオプティカルフローアルゴリズム/方法の例
【0106】
図11は、さまざまなタイプの画像特徴に対するブロックマッチングの実際のDVSデータの例を示す。ここで、赤は参照ブロックスライスピクセル、緑は検索領域スライスピクセル、青のピクセルは一致したブロックピクセルを示す。(A)はエッジ、(B)はコーナー、(C)は孤立した特徴、(D)はテクスチャをそれぞれ示す。
【0107】
【0108】
以下において、本発明のさらなる態様及び実施形態を項目として述べるが、本発明の請求項として定式化されてもよい。
【0109】
項目1:イベントベースの視覚センサーからオプティカルフローを計算するための装置又は方法
a.タイムスライス蓄積イベントカウント2D画像メモリt、t-d、t-2*d
b.現在のタイムスライスイベントカウントメモリtへのイベントカウントの累積。
c.最小ブロック画像距離一致基準によって、過去のタイムスライスt-dのスライスtにおける最新のイベント位置を中心とする参照ブロックをタイムスライスt-2*dの検索領域に一致させる。
d.現在のスライスtがスライスt-dに、スライスt-dがスライスt-2*dに、スライスt-2*dがクリアされてスライスtになるように、タイムスライスメモリを定期的に回転させる。
【0110】
項目2:項目1に加えて、参照ブロックピクセルと検索ブロックピクセル間の絶対差の合計であるブロックマッチング距離マッチングメトリック。
【0111】
項目3:項目1に加えて、センサの元のアドレス空間をサブサンプリングする複数のタイムスライスメモリ群を使用する。
【0112】
項目4:項目1に加えて、一定の時間間隔でタイムスライスを回転させる方法。
【0113】
項目5:項目1に加えて、スライスtに蓄積された一定の合計イベント数でタイムスライスを回転させる方法。
【0114】
項目6:項目1に加えて、スライスtのサブ領域に特定数のイベントが蓄積される場合にタイムスライスを回転させる方法。
【0115】
項目7:項目1に加えて、最後のスライス回転以降に統合されたモーションの合計が閾値を超えた場合にタイムスライスを回転させる方法。
【0116】
項目8:項目1に加えて、平均一致距離からのフィードバック制御に基づいてスライス回転間隔の持続時間を制御する方法。
【0117】
項目9:項目1に加えて、平均一致距離からのフィードバック制御に基づいてスライスの合計イベント数を制御する方法。
【0118】
項目10:項目1に加えて、スライスtのサブブロックに特定数のイベントが蓄積される場合に平均一致距離からのフィードバック制御に基づいてスライスを制御する方法。
【0119】
項目11:項目1に加えて、イベントカウント2D画像をバイナリマップに蓄積する方法。
【0120】
項目12:項目1に加えて、イベントカウント2D画像をマルチビットマップに蓄積する方法。
【0121】
項目13:項目1に加えて、全領域を徹底的に検索する方法。
【0122】
項目14:項目1に加えて、ダイアモンド検索の方法。
【0123】
項目15:項目1に加えて、ブロックの有効ピクセルの割合により外れ値を棄却する。
【0124】
項目16:項目1に加えて、距離閾値により外れ値を棄却する。
【0125】
項目17:項目1に加えて、一部のイベントの完全な処理をスキップするイベントダウンサンプリングを行う一方、現在のタイムスライスにそれらを蓄積して、実時間性能を改善する。
【0126】
項目18:項目17に加えて、平均フレーム/秒からのフィードバック制御に基づいてスキップイベント数を制御する方法。
【0127】
項目19:項目1に加えて、定期的な間隔を空けて、必要に応じてサブサンプリングされたモーションフィールドにイベントを蓄積する方法。
【0128】
項目20:項目2と項目4に加えて、ブロックの絶対距離の合計を並列に計算する論理回路の実装
【0129】
項目21:項目2と項目4に加えて、絶対距離の最小合計を並列に計算する論理回路の実装
【0130】
項目22:イベントベースの視覚センサからステレオを計算するための装置又は方法は、以下を用いる。
a.右(r)及び左(l)の目からのタイムスライスの蓄積イベントカウント2D画像メモリt(r)、(t-d)(r)、t(l)、(t-d)(l)
b.イベントカウントの現在のタイムスライスイベントカウントメモリt(r)、t(l)への蓄積。
c.左右の目からのイベントについて、最小ブロック画像距離マッチング基準により、スライス(td)(r)のスライスt(r)の最新のイベント位置を中心とする参照ブロックを、タイムスライス(td)(l)の検索領域に一致させる、その逆も同様。
d.現在のスライスt(r)がスライス(td)(r)になり、スライスt(l)がスライス(td)(l)になり、スライスt(r)とt(l)が クリアされるよう、タイムスライスメモリの回転を周期的かつ同時に行う。
【0131】
項目23:項目22に加えて、項目1~21のいずれか1つ又は複数の特徴。
【0132】
引用文献
[1]Baker S, Matthews I. Lucas-Kanade 20年:統合フレームワーク[J]。コンピュータ・ビジョンの国際ジャーナル、2004年、56(3):221-255.
[2]Horn B K P、Schunck B G.オプティカルフローの決定[J].人工知能、1981、17(1-3):185-203.
[3]Benosman R、Clercq C、Lagorce X他 イベントベースの視覚的フロー[J]。ニューラルネットワーク及び学習システムでのIEEEトランザクション、2014年、25(2):407-417。
[4]R.Benosman、S.-H.leng、C.Clercq、C.Bartolozzi、M.Srinivasan、非同期フレームレスイベントベースのオプティカルフロー、Neural Networks、vol.27、pp.32-37、2012。
[5]Conradt J.イベントベースの小型視覚センサ用のオンボードリアルタイムオプティカルフロー。//2015 IEEE International Conference on Robotics and Biomimetics(ROBIO)。IEEE、2015:1858-1863。
[6]Barranco F、Fermuller C、Aloimonos Y.イベント駆動型センサーを使用したバイオにヒントを得たモーション推定[C]。人工神経回路網に関する国際作業会議。Springer International Publishing、2015:309-321。
[7]Rueckauer B、Delbruck T.慣性測定センサからのグラウンドトゥルースを伴うオプティカルフローのイベントベースのアルゴリズムの評価[J]。神経科学のフロンティア、2016、10。
[8]「jAERオープンソースプロジェクト」、jAERオープンソースプロジェクト。[オンライン]。利用可能:http://jaerproject.org。
[9] Agha S、Dwayer V M. MPEG-4動き推定のためのアルゴリズムとVLSIアーキテクチャ[J]。電子システム及び制御部門の研究、2003:24-27。
[10] https://sourceforge.net/p/jaer/codeHEAD/tree/jAER/trunk/src/ch/unizh/ini/jaer/projects/minliu/PatchMatchFlow.java。
[11]Wong S、Vassiliadis S、CotofanaS FPGAハードウェアの絶対差合計の実装[C]、Euromicro Conference、2002。第28号会報。IEEE、2002:183-188。
[12] Lichtsteiner P、Posch C、Delbruck T.A 128×128 120 dB 15 us レイテンシー非同期時間コントラスト視覚センサ[J]。IEEEジャーナルオブソリッドステートサーキット、2008、43(2):566-576。
[13] Berner R、Delbruck T、Civit-Balcells A他 5 Meps ¥$100 USB2.0アドレスイベントモニタ・シーケンサーインタフェース[C]。//2007IEEE 回路とシステムに関する国際シンポジウム。IEEE、2007年:2451-2454。
[14] Barjatya A.動き推定のためのブロックマッチングアルゴリズム[J]。IEEE Transactions Evolution Computation、2004、8(3):225-239。
[15] Zhang L、Zhang Y、Tang J他 重み付きハミング距離を使用したバイナリコードのランキング[C] //コンピュータ・ビジョンとパターン認識に関するIEEE会議の議事録。2013:1586-1593。