(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022169868
(43)【公開日】2022-11-10
(54)【発明の名称】パターン検出装置、パターン検出方法およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20221102BHJP
【FI】
G06T7/00 300D
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021075555
(22)【出願日】2021-04-28
(71)【出願人】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100113549
【弁理士】
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【弁理士】
【氏名又は名称】加藤 真司
(72)【発明者】
【氏名】石川 康太
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA18
5L096CA18
5L096DA02
5L096EA13
5L096FA25
5L096FA67
5L096FA69
5L096GA51
5L096GA55
(57)【要約】 (修正有)
【課題】イベントカメラで取得したイベントデータに基づいて所定のパターンを検出するパターン検出装置、パターン検出方法及びパターン検出プログラムを提供する。
【解決手段】イベントカメラ20で取得したイベントデータから、QRコード(登録商標)の位置検出パターンを検出するパターン検出装置1であって、位置検出パターンを検出するためのフィルタを記憶した記憶部15と、イベントカメラ20からイベントデータを受信するイベントデータ受信部10と、受信したイベントデータに基づいて、検出すべきパターンに応じた階調を有するイベントが発生した画素の値を更新する更新部11と、受信したイベントデータの画素を含む領域に対してフィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて位置検出パターンを検出する演算処理部12と、演算処理部12によるパターン検出結果を出力する出力部13と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出するパターン検出装置であって、
所定のパターンを検出するためのフィルタを記憶した記憶部と、
前記イベントカメラからイベントデータを受信する受信部と、
受信したイベントデータに基づいて、イベントが発生した画素の値を更新する更新部であって、前記画素は検出すべきパターンに応じた階調を有する更新部と、
イベントが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出する演算処理部と、
前記演算処理部によるパターン検出結果を出力する出力部と、
を備えるパターン検出装置。
【請求項2】
前記更新部は、受信したイベントデータの極性を画素の値とする更新を行い、
前記演算処理部は、今回の畳込み結果を前記レスポンスとして求める請求項1に記載のパターン検出装置。
【請求項3】
前記記憶部には、画像変形モデルに対応する異なる複数のフィルタを記憶しており、
前記演算処理部は、畳込み演算結果に対して前記画像変形モデルに応じた正規化を行ってレスポンスを求める請求項1または2に記載のパターン検出装置。
【請求項4】
前記所定のパターンはQRコードの位置検出パターンであり、
前記記憶部には、前記イベントカメラの撮像領域に関して縦方向の1次元パターンと横方向の1次元パターンを記憶しており、
前記演算処理部は、前記縦方向の1次元パターンによる畳込み結果と前記横方向の1次元パターンによる畳込み結果を総合することでレスポンスを求める請求項1から3のいずれかに記載のパターン検出装置。
【請求項5】
前記記憶部には、予め指定された変形後の前記所定のパターンを検出するための複数の基底フィルタと、変形を表すパラメータとその変形に対応する前記複数の基底フィルタの係数との関係を記憶し、
前記演算処理部は、イベントが発生した画素を含む領域に対して前記複数の基底フィルタを畳み込む演算を行い、前記関係を満たす条件の中で前記係数を変更してレスポンスを最大にする前記変形を表すパラメータを求める請求項1から3のいずれかに記載のパターン検出装置。
【請求項6】
イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出するパターン検出方法であって、
前記イベントカメラからイベントデータを受信するステップと、
受信したイベントデータに基づいて、イベントが発生した画素の値を更新するステップであって、前記画素は検出すべきパターンに応じた階調を有するステップと、
記憶部から所定のパターンを検出するためのフィルタを読み出すステップと、
イベントが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出するステップと、
前記所定のパターンの検出結果を出力するステップと、
を備えるパターン検出方法。
【請求項7】
イベントカメラにて撮影した画像から所定のパターンを検出するためのプログラムであって、コンピュータに、
前記イベントカメラからイベントデータを受信するステップと、
受信したイベントデータに基づいて、イベントが発生した画素の値を更新するステップであって、前記画素は検出すべきパターンに応じた階調を有するステップと、
記憶部から所定のパターンを検出するためのフィルタを読み出すステップと、
イベントが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出するステップと、
前記所定のパターンの検出結果を出力するステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出する技術に関する。
【背景技術】
【0002】
従来、高速応答、高ダイナミックレンジという特徴を有するイベントカメラが知られている(非特許文献1)。イベントカメラは、画素に一定以上の輝度の変化が起こった時のみ、その時刻と画素の座標と極性を含むイベントというデータ形式で出力するカメラである。イベントカメラは、「Dynamic and Active-pixel Vision Sensor」とも呼ばれる。イベントカメラを用いると、標準のカメラではブレが生じてしまうような高速なシーンにおいても、適切にデータを取得することができる。
【0003】
また、画像の中から所定のパターンを検出する方法として、空間的フィルタを畳み込んでそのレスポンスを見ることでパターンマッチングを行う方法が知られている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Patrick Lichtsteiner, Christoph Posch, Tobi Delbruck, and Senior Member.「A 128×128 120 dB 15 μs Latency Asynchronous Temporal Contrast Vision Sensor.」Work, 43(2):566-576, 2008.
【発明の概要】
【発明が解決しようとする課題】
【0005】
イベントカメラと畳込みによるパターンマッチングを組み合わせるとすれば、イベントカメラから取得したイベントデータに基づいて画像を復元し、復元された画像に対して空間的フィルタを畳込むことが考えられる。しかし、イベントカメラでは、対数輝度が変化した画素についてのみ極性の変化をイベントデータとして送信してくるので、イベントデータが送信されるたびに画像全体を復元し、畳込みを行うことは難しいと考えられる。
【0006】
本発明は、イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出するパターン検出装置等を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明のパターン検出装置は、イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出するパターン検出装置であって、所定のパターンを検出するためのフィルタを記憶した記憶部と、前記イベントカメラからイベントデータを受信する受信部と、受信したイベントデータに基づいて、イベントが発生した画素の値を更新する更新部であって、前記画素は検出すべきパターンに応じた階調を有する更新部と、イベントが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出する演算処理部と、前記演算処理部によるパターン検出結果を出力する出力部とを備える。
【0008】
このようにイベントが発生した画素を含む領域について畳込みを行うことにより、イベントデータに基づいてパターン検出を行うことができる。この際に、イベントデータに基づいて更新される画素は、検出すべきパターンに応じた階調を有するので、適切にパターン検出を行える。例えば、白黒の2値で表されるパターンを検出する場合には、画素を2値、あるいはデータがないことを表すNULL又は0を含めて3値になるように更新すれば十分である。逆に、検出すべきパターンが多段階の階調を有する場合には、画素の値を多段階の階調で更新する。このように、検出すべき様々なパターンに応じた階調の画素とすることで、検出に必要な計算量を調整することができる。
【0009】
本発明のパターン検出装置において、前記更新部は、受信したイベントデータの極性を画素の値とする更新を行い、前記演算処理部は、今回の畳込み結果を前記レスポンスとして求めてもよい。
【0010】
このように更新部が受信したイベントデータの極性を画素の値として用いる。例えば、イベントデータの極性がプラスの場合には画素の値を「1」、マイナスの場合には「-1」とする。なお、イベントが一度も発生していない画素の復元画像における値を「0」とすると、復元画像は3階調になる。復元画像は、一般に正負の輝度値をとる相対的な明るさの違いによって表現される。したがって、「階調」という用語は、明るさの絶対値を表す用法ではないことに注意されたい。本発明の構成によれば、時間的な減衰を考慮しなくてもよくなるので、今回の畳込み結果をレスポンスとして求めることができ、計算負荷を大幅に削減できる。
【0011】
本発明のパターン検出装置において、前記記憶部には、画像変形モデルに対応する異なる複数のフィルタを記憶しており、前記演算処理部は、畳込み演算結果に対して前記画像変形モデルに応じた正規化を行ってレスポンスを求めてもよい。
【0012】
対象物に付された所定のパターンの大きさや、イベントカメラと対象物との距離やイベントカメラと対象物との相対的な角度によって、イベントデータから復元された画像に含まれるパターンの大きさや見え方が異なる。本発明の構成によれば、画像変形モデルに対応する異なる複数のパターンを用意しておくことにより、所定のパターンの検出を適切に行うことができる。ここで、画像変形モデルとは、例えば、スケールやパースペクティブの違いを吸収する変形モデルであるが、これらに限られるものではない。
【0013】
本発明のパターン検出装置において、前記所定のパターンはQRコード(登録商標)の位置検出パターンであり、前記記憶部には、前記イベントカメラの撮像領域に関して縦方向の1次元パターンと横方向の1次元パターンを記憶しており、前記演算処理部は、縦方向の1次元パターンによる畳込み結果と横方向の1次元パターンによる畳込み結果を総合することでレスポンスを求めてもよい。
【0014】
QRコードの位置検出パターンは、縦横斜めのいずれの方向から走査しても、1:1:3:1:1の白黒のパターンである。このパターンに合う縦方向の1次元パターンと横方向の1次元パターンを用いてそれぞれの畳み込み結果を求めることで、両方のパターンに最もよく合致する位置が位置検出パターンの位置であると分かる。縦方向の1次元パターンによる畳込み結果と横方向の1次元パターンの畳込み結果を総合する方法としては、両者の積を求めてもよいし、和を求めてもよい。なお、イベントカメラの撮像領域に関して縦方向の1次元パターンは、イベントデータから復元される画像の画素の配列に対して垂直方向に延びるパターンであり、横方向の1次元パターンとは水平方向に延びるパターンである。
【0015】
本発明のパターン検出装置において、前記記憶部には、予め指定された変形後の前記所定のパターンを検出するための複数の基底フィルタと、変形を表すパラメータとその変形に対応する前記複数の基底フィルタの係数との関係を記憶し、前記演算処理部は、イベントが発生した画素を含む領域に対して前記複数の基底フィルタを畳み込む演算を行い、前記関係を満たす条件の中で前記係数を変更してレスポンスを最大にする前記変形を表すパラメータを求めてもよい。
【0016】
スケールやパースペクティブは現実には連続的な値を有するが、実際のフィルタを連続かつ無限に用意することはできない。本発明では、スケールやパースペクティブなどの予め指定された変形によって変形された後の所定のパターンを検出するための複数の基底フィルタを用意する。ここで、基底フィルタは、例えば、スケールやパースペクティブによって異なるフィルタ群を固有分解して求めることができる。本発明では、スケールやパースペクティブの変形を表すパラメータとそのときに基底フィルタにかかる係数との関係を記憶しておく。これにより、予め指定された変形がなされた後の所定のパターンを基底フィルタとその係数によって表現することができる。基底フィルタとの畳み込みを1回行えば、その後は係数を変更することでレスポンスを最大にする変形を表すパラメータを求めることができる。
【0017】
本発明のパターン検出方法は、イベントカメラにて取得したイベントデータに基づいて所定のパターンを検出する方法であって、前記イベントカメラからイベントデータを受信するステップと、受信したイベントデータに基づいて、イベントが発生した画素の値を更新するステップであって、前記画素は検出すべきパターンに応じた階調を有するステップと、記憶部から所定のパターンを検出するためのフィルタを読み出すステップと、イベントが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出するステップと、前記所定のパターンの検出結果を出力するステップとを備える。
【0018】
本発明のプログラムは、イベントカメラにて撮影した画像から所定のパターンを検出するためのプログラムであって、コンピュータに、前記イベントカメラからイベントデータを受信するステップと、受信したイベントデータに基づいて、イベントが発生した画素の値を更新するステップであって、前記画素は検出すべきパターンに応じた階調を有するステップと、記憶部から所定のパターンを検出するためのフィルタを読み出すステップと、イベントデータが発生した画素を含む領域に対して前記フィルタを畳み込む演算を行い、畳込み演算結果に基づいて求めたレスポンスを用いて前記所定のパターンを検出するステップと、前記所定のパターンの検出結果を出力するステップとを実行させる。
【発明の効果】
【0019】
本発明によれば、イベントカメラからのイベントデータに基づいてパターン検出を行うことができる。
【図面の簡単な説明】
【0020】
【
図1】第1の実施の形態のパターン検出装置の構成を示す図である。
【
図2】(a)イベントカメラによるイベント検出の原理を示す図である。(b)イベントカメラによってQRコードを撮影したときのデータの例を示す図である。
【
図3】輝度配列データ記憶部に記憶された輝度配列データの例を示す図である。
【
図4】(a)QRコードの位置検出パターンの特徴を示す図である。(b)位置検出パターンを検出するための縦方向フィルタ、横方向フィルタを示す図である。
【
図5】スケールの異なる縦方向フィルタの例を示す図である。
【
図6】(a)イベントワイズの畳み込み演算について説明するための図である。(b)イベントワイズの畳み込み演算について説明するための図である。(c)通常の畳み込み演算処理について説明する図である。
【
図7】第1の実施の形態のパターン検出装置の動作を示す図である。
【
図8】(a)基底フィルタの例を示す図である。(b)スケールと基底フィルタのスケール依存係数との関係を示す図である。
【
図9】第2の実施の形態のパターン検出装置の動作を示す図である。
【発明を実施するための形態】
【0021】
本発明の実施の形態のパターン検出装置について、図面を参照して説明する。以下に説明する実施の形態では、検出すべき所定のパターンとして、QRコードの位置検出パターン(このパターンは「Finding Pattern」とも呼ばれる)を取り上げるが、本発明のパターン検出装置にて検出するパターンは、QRコードの位置検出パターンには限定されない。
【0022】
(第1の実施の形態)
図1は、第1の実施の形態のパターン検出装置1の構成を示す図である。第1の実施の形態のパターン検出装置1は、イベントカメラ20からイベントデータを取得し、QRコードの位置検出パターンを検出して、位置検出パターンの検出結果として位置検出パターンの位置を示すデータを出力する。本実施の形態では、イベントデータから復元される画像は白黒とその中間値からなる画像である。
【0023】
パターン検出装置1は、イベントデータ受信部10と、更新部11と、演算処理部12と、出力部13とを有している。イベントデータ受信部10は、イベントカメラ20にて撮影した画像データであるイベントデータを受信する機能を有する。ここで、イベント検出の原理とイベントデータについて説明する。
【0024】
図2(a)は、イベントカメラ20によるイベント検出の原理を示す図であり、
図2(b)はイベントカメラ20によってQRコードを撮影したときのデータの例を示す図である。イベントカメラ20は、
図2(a)に示すように、ある画素に一定の閾値以上の輝度の変化が起こったときのみに、そのときの時間t
iと画素の座標x
i、極性ρ
i(-1又は+1)を含むイベントe
i={t
i,x
i,ρ
i}というデータ形式で出力するカメラである。データの出力は、画素毎に非同期に行われるため、
図2(b)に示すように点群のような時系列データになっている。
【0025】
イベントカメラ20は、上記したような仕組みによって、μs単位の高時間分解能や130dB程度のハイダイナミックレンジを実現している。イベントカメラ20は、例えば、工場等で高速で移動する対象物に付与されたQRコードを読み取るが、工場内の生産ラインの高速に動くシーンであってもぶれずにデータを取得することが可能である。
【0026】
更新部11は、イベントデータ受信部10にて受信したイベントデータに基づいて、イベントが発生した画素の値を更新する機能を有する。ここで、画素の値を更新するとは、イベントデータから該当の画素の値を復元することである。イベントデータに基づいて画素の値を更新する方法は、様々な方法が考えられる。例えば、イベントデータから輝度画像を復元するように画素の値を更新することも可能であり、その場合には、過去にその画素に発生したイベントデータを累積的に考慮する。
【0027】
本実施の形態では、画素は、+1,0,-1の3値を有する。すなわち、更新部11は、イベントデータに基づいて、3値からなる画像を復元する。更新部11は、イベントを受信すると受信したイベントの極性のデータによって当該画素の値を上書きする。具体的には、更新部11は、極性がプラスのイベントを受信した場合には画素の値を+1とし、極性がマイナスのイベントを受信した場合には画素の値を-1とする。0は、イベントを受信していないことを意味する。なお、後述するように、所定の時間にわたってイベントを受信しない画素の値を0で上書きすることとしてもよい。
【0028】
本実施の形態において、3値からなる画像を復元するのは、QRコードの読み取りには3値で十分であり、また、3値にすることで後段の畳込み処理を簡易に行うことができると共に、現れ得る画像パターンを尽くすモデル(スケールやパースペクティブ等の画像変形やノイズモデル等)を事前に準備することができるからである。更新部11は、更新した画素の値を輝度配列データに記憶する。
【0029】
図3は、輝度配列データ記憶部14に記憶された輝度配列データの例を示す図である。
図3は模式図であり、実際には、輝度配列データは、
図3に示すより多くの画素のデータを有する。輝度配列データは、(x,y)座標で示される各座標について受信したイベントデータに基づいて更新した画素値と、そのイベントが発生した時刻のデータを記憶する配列である。輝度配列データは、最初、中間値(0)によって初期化をしておく。更新部11は、イベントデータを受信すると、該当する座標のデータを受信したイベントデータの極性のデータとそのイベントが発生した時刻データによってデータを更新する。更新部11は、イベント発生時刻から所定の時間が経過したデータを有する画素については極性のデータを中間値に更新することとしてもよい。なお、このように経過時間に応じて画素の値を更新する構成を採用しない場合には、時刻のデータは必ずしも必要ではない。
【0030】
演算処理部12は、輝度配列データに基づいてQRコードの位置検出パターンを検出する機能を有する。フィルタデータ記憶部15には、位置検出パターンを検出するためのフィルタを記憶している。フィルタは、注目画素の近傍にある画素値も利用して出力値を計算する畳込み演算に用いられるフィルタである。このフィルタは、「空間フィルタ」「画像フィルタ」と呼ばれるフィルタである。
【0031】
図4(a)は、QRコードの位置検出パターンの特徴を示す図である。
図4(a)に示すように位置検出パターンは、黒く塗り潰した正方形を黒枠で囲んだ形状を有しており、横方向、縦方向、斜め方向のいずれに走査しても、黒:白:黒:白:黒=1:1:3:1:1のパターンが得られる。
【0032】
図4(b)は、QRコードの位置検出パターンを検出するための縦方向フィルタ、横方向フィルタを示す図である。縦方向フィルタは、縦方向に黒:白:黒:白:黒=1:1:3:1:1の1次元パターンを有するフィルタである。この縦方向フィルタと位置検出パターンとが畳み込まれるとレスポンスの値が大きくなるので、縦方向フィルタによって、画像内に映る位置検出パターンの位置が分かる。横方向フィルタは、横方向に黒:白:黒:白:黒=1:1:3:1:1の1次元パターンを有するフィルタである。この横方向フィルタと位置検出パターンとが畳み込まれるとレスポンスの値が大きくなるので、横方向フィルタによって、画像内に映る位置検出パターンの位置が分かる。
【0033】
演算処理部12は、縦方向フィルタによるレスポンスと横方向フィルタによるレスポンスとを求め、それらのレスポンスを総合することにより、位置検出パターンの位置を求める。本実施の形態では、演算処理部12は、縦方向フィルタのレスポンスと横方向フィルタのレスポンスの積を取ることにより、両フィルタのレスポンスを総合する。縦方向と横方向の両方のフィルタを用いることにより、ノイズに対して頑健になることが期待される。
【0034】
なお、QRコードの位置検出パターンはQRコードがどのように面内回転していたとしても、1:1:3:1:1のパターンとなるように設計されているので、回転角によらず同じフィルタを用いることができる。ただし、位置検出パターンを縦または横方向に切る場合と、対角(斜め)方向に切る場合では、パターンのスケールが多少異なるので、スケールを見え方の変化パラメータとして考慮しなくてはならない。
【0035】
フィルタデータ記憶部15には、縦方向フィルタと横方向フィルタとを記憶している。フィルタデータ記憶部15には、それぞれのフィルタをスケールに応じて複数通り準備をしておく。画像内に映る位置検出パターンの大きさは一定ではなく、QRコード自体の大きさによって、あるいはQRコードとイベントカメラ20との相対距離によって異なる。位置検出パターンと縦方向フィルタまたは横方向フィルタのサイズが対応している場合に、そのレスポンスが大きくなる。本実施の形態では、スケールの異なる縦方向フィルタ及び横方向フィルタを用意する。
【0036】
図5は、スケールの異なる縦方向フィルタの例を示す図である。縦方向フィルタは、例えば、黒(1画素):白(1画素):黒(3画素):白(1画素):黒(1画素)のパターンのフィルタ、黒(2画素):白(2画素):黒(6画素):白(2画素):黒(2画素)のパターンのフィルタ、黒(3画素):白(3画素):黒(9画素):白(3画素):黒(3画素)のパターンのフィルタなどである。演算処理部12は、スケールの異なる複数の縦方向フィルタを用いて畳込みを行うことで、位置検出パターンのサイズの違いにかかわらず、位置検出パターンを適切に検出することができるようにしている。
【0037】
スケールの異なる縦方向フィルタを用いた場合、縦方向フィルタのパターンに合致したときのレスポンスは、スケールによって異なる。レスポンスは、最大でも画素数分のレスポンスにしかならないためである。そこで、演算処理部12は、縦方向フィルタのスケールに応じて演算結果を正規化して、レスポンスの値を求める。
図5では、縦方向フィルタを例として説明したが、横方向フィルタについても同じである。
【0038】
本実施の形態の演算処理部12は、イベントワイズでの(イベント毎の)畳み込み演算を行う。すなわち、演算処理部12は、イベントデータを受信すると、イベントが発生した画素が影響する範囲について畳み込み演算を行う。
【0039】
図6(a)及び
図6(b)は、演算処理部12が行う畳み込み演算について説明するための図である。
図6(c)は、イベントワイズではない通常の畳み込み演算処理について説明する図である。なお、
図6では、イベントワイズでの畳み込み演算を説明する目的で、3×3のフィルタを用いた畳み込み演算について説明している。
図6(a)及び
図6(c)において、5×5のマトリックスは畳込み演算が行われる対象の画像を示し、3×3のマトリックスは、畳込みによって生成される特徴マップを示している。
【0040】
図6(c)に示すように、通常の処理では、まず、画像の左上に3×3のフィルタをおき(網掛け部分)、画像の3×3の領域と3×3のフィルタの領域の各値の積を合算したレスポンスを計算する。計算結果は、特徴マップの左上に入る。次に、フィルタを右に1画素分ずらして、画像の3×3の領域と3×3のフィルタの領域の各値の積を合算したレスポンスを計算する。計算結果は特徴マップの上の行の真ん中に入る。以下、同様にして、左上から右下の領域まで順次フィルタをずらしてレスポンスを計算し、特徴マップを生成する。なお、ここでは、左上から右下の順で走査する例を挙げたが、走査の順番は任意である。
【0041】
これに対し、本実施の形態の演算処理部12は、イベントが発生した画素の影響する範囲についてだけ畳み込み演算を行う。
図6(a)では、一番上の行の左から3列目の画素においてイベントが発生した例を示している。イベントワイズの畳み込み処理では、イベントが発生した画素を含む範囲で3×3のフィルタを走査する。具体的には、
図6(b)に網掛けをして示す領域に対して、3×3のフィルタを走査して畳み込みを行った結果を求める。その結果、
図6(a)に示すように、特徴マップの一番上の行の値が更新される。
【0042】
次式(1)は、イベント(x
i,t
i)が得られたときに、復元画像中のピクセル位置xについて行う書き替え処理を示す。イベントが発生した画素x
iについては、得られたイベントの極性p
iを書き込む。イベントが発生していない画素xについては、何もせず、保持していた値を引き続き保持する。
【数1】
【0043】
演算処理部12は、次式(2)のように畳み込み処理結果に基づいてレスポンスを求める。式(2)は、イベント(x
i,t
i)が得られたときに、レスポンスマップピクセル位置xについて行う書き替え処理を示している。式(1)におけるxは復元画像中のピクセル位置であり、式(2)におけるxはレスポンスマップのピクセル位置である点に注意されたい。
【数2】
【0044】
上記式(2)に示すように、イベント(xi,ti)の位置xiがレスポンスマップの位置xの値を生成するフィルタに包含される場合には、当該フィルタを用いて畳込みを行い、畳込み結果をレスポンスとして求める。イベント(xi,ti)の位置xiがレスポンスマップの位置xの値を生成するフィルタに包含されない場合には、レスポンスは前の時刻ti-1の値を保持する。
【0045】
本実施の形態では、QRコードの検出を目的としており、復元画像として白黒とその中間値からなる画像を生成する。過去のノイズの影響を除去するための指数減衰の処理が不要であるため、畳込み対象の画像は直近のイベントのみで決定することができ、畳込み演算を迅速に行うことができる。
【0046】
なお、更新部11の説明において、イベント発生時刻から所定の時間が経過したデータを有する画素については、輝度配列マトリックスの極性のデータを中間値に更新することとしてもよいことを説明したが、そのような更新を行う場合には、例えば、輝度配列マトリックスの極性のデータを中間値「0」に置き換える処理を特別なイベントとして扱い、上記に説明したイベントが発生した場合と同様に更新処理を行ってもよい。
【0047】
出力部13は、演算処理部12での処理によって求めた位置検出パターンの検出結果のデータを、例えばQRコードデータの解析装置等の外部の装置に出力する機能を有する。外部の装置では、検出された位置検出パターンの位置に基づいてQRコードの位置および向きを特定し、QRコードの解析を行うことができる。
【0048】
図7は、第1の実施の形態のパターン検出装置1の動作を示す図である。パターン検出装置1は、イベントカメラ20からイベントデータを取得すると、取得したイベントデータに基づいて輝度配列リストデータを更新する(S10)。続いて、パターン検出装置1は、スケールの異なる複数の縦方向フィルタを用いて、イベントが発生した画素を含む領域について、イベントワイズの畳み込みを行う(S11)。パターン検出装置1は、各縦方向フィルタを用いて求めた畳み込み結果をスケールに応じて正規化し、各縦方向フィルタによる畳込みのレスポンスを求める(S11)。
【0049】
また、演算処理部12は、スケールの異なる複数の横方向フィルタを用いて、イベントが発生した画素を含む領域について、イベントワイズの畳み込みを行う(S12)。パターン検出装置1は、各横方向フィルタを用いて求めた畳み込み結果をスケールに応じて正規化し、各横方向フィルタによる畳込みのレスポンスを求める(S12)。ここでは縦方向フィルタ、横方向フィルタの順で畳み込みを行う例を挙げたが、この順番は任意である。
【0050】
続いて、演算処理部12は、複数の縦方向フィルタのレスポンスと複数の横方向フィルタのそれぞれのレスポンスの積を求め(S13)、求めたレスポンスの積の中から、閾値以上のレスポンスの積を特定する(S14)。レスポンスの積が閾値以上となる縦方向フィルタ、横方向フィルタの位置から、位置検出パターンの位置を求める。パターン検出装置1は、位置検出パターンの検出結果のデータを出力する(S15)。
【0051】
以上、本実施の形態のパターン検出装置1の構成について説明したが、上記したパターン検出装置1のハードウェアの例は、CPU、RAM、ROM、ハードディスク、ディスプレイ、キーボード、マウス、通信インターフェース等を備えたコンピュータである。上記した各機能を実現するモジュールを有するプログラムをRAMまたはROMに格納しておき、CPUによって当該プログラムを実行することによって、上記したパターン検出装置1が実現される。このようなプログラムも本発明の範囲に含まれる。
以上、第1の実施の形態のパターン検出装置1の構成および動作について説明した。
【0052】
第1の実施の形態のパターン検出装置1は、イベントデータを取得するとイベントワイズの畳込み演算を行うので、高速にパターン検出を行うことができる。
【0053】
上記した実施の形態では、位置検出パターンを検出するためのフィルタとして、画像領域に対して縦方向と横方向のフィルタを用いたが、位置検出パターンの変形やパースペクティブが掛かることを考慮して、様々なパラメータでのアフィン変換やホモグラフィー変換を行ったフィルタを複数準備することとしてもよい。
【0054】
(第2の実施の形態)
次に、本発明の第2の実施の形態に係るパターン検出装置について説明する。第2の実施の形態のパターン検出装置の基本的な構成は、第1の実施の形態のパターン検出装置1と同じである(
図1参照)。第1の実施の形態のパターン検出装置1では、復元された画像内に映る位置検出パターンのサイズの違いに対応するために複数のスケールのフィルタを用意したが、第2の実施の形態では、スケールによって異なるフィルタ群を固有分解し、基底フィルタに対するイベントワイズの畳込みを行う。
【0055】
図8は、第2の実施の形態のフィルタデータ記憶部15に記憶されるデータの例を示す図である。
図8(a)は、基底フィルタの例を示す。
図8(a)では、5個の基底フィルタを示している。
図8(b)は、スケールと5個の基底フィルタのスケール依存係数との関係を示す。
図8(b)に示すように5個のスケール依存係数は別個独立に自由な値をとれるわけではなく、スケールに依存した値をとる。演算処理部は、畳込み結果を最大にするスケール依存係数を求めることにより、スケールを求めることができる。
【0056】
画像Iをスケールsの畳込みフィルタw(s)で畳み込んで得られるレスポンスr(x;s)は次式(3)で表される。式(3)において、xはレスポンスマップのピクセル位置を示し、x´は畳込みの際に掛け合わされるフィルタ内と画像の位置を示すループカウンタである。
【数3】
【0057】
スケールsの畳込みフィルタw(x´;s)を固有分解すると次式(4)のようにスケール依存係数φ
i(s)と基底フィルタw
iの線形結合で表される。
【数4】
したがって、スケールsのレスポンスr(x;s)は、次式(5)で表される。
【数5】
【0058】
この式において、基底フィルタに対する畳み込みの部分は、イベントが発生したときに1回計算すればよい。スケール依存係数φi(s)は、sに対して滑らかな関数であり、以下の説明において二階微分が事前計算可能であるとする。
【0059】
最大レスポンスとなるスケールの1イベント更新による変化は微小であると考えられることを利用すると、スケール空間の再探索を行わないでレスポンス最大となるスケールs
*(式(6))をイベントワイズで直接更新する式を導出することができる。以下に説明する。
【数6】
上式(6)のs
*は、次式(7)のレスポンス最大条件によって求められる。
【数7】
【0060】
イベントによるs
*の更新をs
*+δs、基底フィルタw
iのレスポンス変化をδr
iとすると、次の式変形(8)によって、式(9)に示すようにレスポンス最大となるδsを導出できる。
【数8】
【数9】
【0061】
第2の実施の形態のパターン検出装置は、上記した方法により、レスポンス最大となるスケール依存係数を求め、位置検出パターンの検出を行う。
【0062】
図9は、第2の実施の形態のパターン検出装置の動作を示す図である。以下、第2の実施の形態のパターン検出装置の動作を説明すると共に、演算処理装置の処理内容について説明する。パターン検出装置は、イベントカメラ20からイベントデータを取得すると、取得したイベントデータに基づいて輝度配列リストを更新する(S20)。続いて、パターン検出装置の演算処理部12はフィルタデータ記憶部15から基底フィルタとスケール依存係数のデータを読み出す。演算処理部12は、基底フィルタを用いて、イベントが発生した画素を含む範囲でイベントワイズの畳み込みを行い、基底フィルタの畳込み結果であるレスポンスr
iを求める(S21)。
【0063】
続いて、演算処理装置は、式(8)により、レスポンス最大となるスケール依存係数の更新幅δsを導出し(S22)、レスポンスr(s)を最大化するs*+δsを求め、最大レスポンスr(s)を求める(S23)。演算処理部12は、最大レスポンスが所定の閾値より大きいか否かを判定する(S24)。最大レスポンスが所定の閾値より大きい場合には(S24でYES)、そのイベントデータに係る位置に位置検出パターンが存在すると判断する、すなわち位置検出パターンを検出する。パターン検出装置1は、位置検出パターンの検出結果のデータを出力する(S25)。最大レスポンスが所定の閾値以下である場合には(S24でNO)、位置検出パターンが検出されなかったと判断し、処理を終了する。
【0064】
以上、第2の実施の形態のパターン検出装置について説明した。第2の実施の形態のパターン検出装置は、連続的なスケール値のフィルタを基底フィルタの線形結合(結合係数がスケール値に依存する)で表し、レスポンス値が最大となるスケール依存係数をイベントワイズで求めるので、任意のスケールのレスポンスを計算することができる。これにより、位置検出パターンを精度良く検出することができる。
【0065】
上記した実施の形態では、スケールによって異なるフィルタ群を固有分解し、基底フィルタに対するイベントワイズの畳込みを行う例を挙げたが、例えば、パースペクティブ等、スケール以外のパラメータを考慮する場合にも容易に拡張できる。
【0066】
以上、本発明の実施の形態のパターン検出装置について実施の形態を挙げて詳細に説明したが、本発明は上記した実施の形態に限定されるものではない。
【産業上の利用可能性】
【0067】
本発明は、イベントカメラにて取得したイベントデータからパターンを検出する技術として有用である。
【符号の説明】
【0068】
1 パターン検出装置
10 イベントデータ受信部
11 更新部
12 演算処理部
13 出力部
14 輝度配列データ記憶部
15 フィルタデータ記憶部
20 イベントカメラ