(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】追跡装置及びプログラム
(51)【国際特許分類】
G06T 7/254 20170101AFI20241126BHJP
【FI】
G06T7/254 A
(21)【出願番号】P 2022019776
(22)【出願日】2022-02-10
【審査請求日】2024-02-07
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】徐 建鋒
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2019-204390(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20- 7/292
(57)【特許請求の範囲】
【請求項1】
イベントカメラデータから動体追跡を行う追跡装置であって、
前記イベントカメラデータを正負の極性の区別に応じて2つのチャネルに分離するチャネル分離部と、
前記チャネル分離されたデータの各々について、各画素位置の近傍範囲でイベントカメラデータの発生が蓄積した場合に当該画素位置での信号発生をトリガ出力することにより、チャネル毎の特徴を抽出する特徴抽出部と、
前記チャネル毎の特徴を、チャネル方向に結合し、各時刻に対応する時間範囲ウィンドウ内で加算することにより、各時刻のフレームを構築する逐次フレーム構築部と、
前記構築された各時刻のフレームに対して動体追跡を行う追跡部と、を備えることを特徴とする追跡装置。
【請求項2】
前記追跡部ではパーティクルフィルタを用いることで追跡を行い、当該パーティクルフィルタによる処理として、
前時刻の状態から現時刻の状態を予測する予測処理と、
前記予測した現時刻の状態の各々について尤度を算出する尤度算出処理と、
前記現時刻の状態の各々について、前記算出した尤度に基づいて後時刻で生存させるか消滅させるかを決めるリサンプリング処理と、を各時刻において繰り返すことを特徴とする請求項1に記載の追跡装置。
【請求項3】
前記尤度算出処理では、前記予測した現時刻の状態の各々について、前記構築された現時刻のフレームにおいて対応する空間範囲を参照して、尤度を算出することを特徴とする請求項2に記載の追跡装置。
【請求項4】
前記尤度算出処理では、前記予測した現時刻(T)の各々の状態(i)について、前記構築された現時刻(T)のフレーム(F(T))において対応する空間範囲(PR(i,T))における特徴の信号分布(hist(i,T))と、当該予測するために前記予測処理で用いた前時刻(T-1)の状態(i)について、前記構築された前時刻(T-1)のフレーム(F(T-1))において対応する空間範囲(PR(i,T-1))における特徴の信号分布(hist(i,T-1))との類似度に基づいて、前記予測した現時刻(T)の各々の状態(i)の尤度を算出することを特徴とする請求項2に記載の追跡装置。
【請求項5】
前記特徴の信号分布(hist(i,T),hist(i,T-1))をヒストグラムによって評価することを特徴とする請求項4に記載の追跡装置。
【請求項6】
前記特徴の信号分布を前記分離したチャネル毎に評価することで、前記類似度を当該チャネル毎の評価の合計を用いて算出することを特徴とする請求項4または5に記載の追跡装置。
【請求項7】
前記逐次フレーム構築部では、各時刻に対応する時間範囲ウィンドウ内で、各画素位置において前記トリガ出力された信号の回数を加算することを特徴とする請求項1ないし6のいずれかに記載の追跡装置。
【請求項8】
前記特徴抽出部では、積分発火モデルによるスパイキングフィルタを用いて、前記チャネル毎の特徴を抽出することを特徴とする請求項1ないし7のいずれかに記載の追跡装置。
【請求項9】
前記逐次フレーム構築部では、前記各時刻に対応する時刻範囲ウィンドウとして、隣接時刻でのウィンドウの時間範囲が重複するものを用いることを特徴とする請求項1ないし8のいずれかに記載の追跡装置。
【請求項10】
コンピュータを請求項1ないし9のいずれかに記載の追跡装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イベントカメラデータに対して動体追跡を行う追跡装置及びプログラムに関する。
【背景技術】
【0002】
<イベントカメラについて>
近年、より高速に計測対象物の視覚信号を生成する技術として、非特許文献1に開示されるイベントカメラが知られている。イベントカメラは生物の網膜構造にヒントを得て開発された。
図1に模式例を示す通り、イベントカメラの出力は、輝度が所定の閾値TH以上に変化した場合の時刻、画素の位置、極性(輝度が小さくなったか大きくなったか)を表す非同期のデータ列である。
【0003】
図1では、ある1つの画素位置(x,y)に固定して、この画素(x,y)でセンシングされている輝度値のグラフ例より、この画素(x,y)からイベントカメラの出力として、グラフ上の時刻t1,t2,…,t8にあるそれぞれのデータ点d1,d2,…,d8が非同期な形で離散的に出力される例が示されている。これらデータ点d1,d2,…,d8は、
図1のグラフ中に輝度値を等間隔(前述の閾値THの幅での等間隔)に区切って示す横線(点線で描く)をグラフが横切った時刻t1,t2,…,t8で出力されるものである。
【0004】
すなわち、ある1つの画素位置(x,y)において、イベントカメラ出力が発生する時刻系列をtk(k=1,2,…)とし、当該時刻tkでの輝度値をdk(k=1,2,…)とすると、イベントカメラ出力される時系列における隣接時刻tk, tk+1での輝度値dk及びdk+1の関係は以下の通りである。
「dk+1=dk+TH」または「dk+1=dk-TH」
【0005】
換言すれば、イベントカメラにおけるある画素位置(x,y)において、時刻tkにおいて輝度値dkを有するものとしてイベントカメラデータ出力が発生したものとし、時刻tk以降での同位置(x,y)での輝度値の時間変化の挙動をモニタし、初めて輝度値dkからの変化が閾値THを超えた時刻が、次の時刻tk+1として、次のイベントカメラデータ出力が発生するものとなる。
【0006】
そして、イベントカメラ出力においては前述の通り、離散的に出力された各時刻のデータにおいて、当該時刻での輝度値が、前の時刻での輝度値から閾値THだけ増加したか、または逆に閾値THだけ減少したか、の2値情報も極性として出力される。
図1の例では例えば、時刻t1のデータd1は、前時刻t0のデータd0よりも輝度値が閾値THだけ増加したことをトリガとして出力されたものであるため、増加する方向の極性であり、その次の時刻t2のデータd2は、前時刻t1よりも輝度値が閾値THだけ減少したことをトリガとして出力されたものであるため、減少する方向の極性である。
図1では増減の極性に関して増加を上矢印(↑)、減少を下矢印(↓)で模式的に示している。
【0007】
以上の
図1の例は、ある1つの画素(x,y)を固定してイベントカメラ出力を観察したものであるが、画像範囲内の全ての画素(x,y)について同様の出力が得られることにより、イベントカメラ出力は一般に、以下のような形式のデータとなる。
【0008】
【0009】
上記データにおいてtk≦tk+1であり、イベントカメラ出力データはすなわち、時間軸上でk番目の時刻tkにおいて、画素位置(xk,yk)において極性pk(増加↑または減少↓)の輝度値変化があったことを意味するものとなる。なお、Nは一定期間に渡ってイベントカメラの撮影を行って得られたデータの総数である。(撮影状況に全く変化がなく、ノイズ影響等もなかった場合は、N=0となってイベントカメラ出力が空データとなる場合もありうる。)
【0010】
なお、tk≦tk+1≦tk+2≦…であることから、同一時刻で2つ以上の異なる画素位置においてイベントカメラ出力が発生した場合も、不等号「≦」において等号「=」に該当する場合として、2つ以上の異なる連続したインデクスk,k+1,…が同一時刻(tk=tk+1=…)、異なる画素位置及び当該異なる画素位置での極性に紐づくことで、イベントカメラデータ上に記録することができる。例えば、同一時刻t=1秒においてある画素位置(0,0)で増加「↑」極性のイベントカメラデータが発生し、且つ、別の画素位置(1,1)で減少「↓」のイベントカメラデータが発生した場合、これら2個の同時時刻データに例えばk=1,2のインデクスが割り当てられたうえで、(t1=t2=1秒として)以下のように記録することができる。
(x1,y1,t1,p1)=(0, 0, 1秒, ↑)
(x2,y2,t2,p2)=(1, 1, 1秒, ↓)
【0011】
このような構成により、イベントカメラは、従来のカメラのように輝度変化のない画素情報、つまり冗長なデータは出力しないといった特徴があるため、データ通信量の軽減や画像処理の軽量化等が実現されることで、より高速に計測対象物の画像を生成することができる。
【0012】
よって、イベントカメラの出力(xk,yk,tk,pk)は、従来のカメラが映像として得る各時刻t(t=1,2,…)での出力画像P(x,y)(0≦x≦W-1, 0≦y≦H-1, ここでW,Hは画像の横幅、縦幅の画素数、P(x,y)は画素値)と比較して、空間的に非常にスパース(疎)であり、データ量が非常に少ない。また、イベントカメラは、従来のカメラと比較して、時間解像度が非常に高く(例えば、マイクロミリ秒オーダ)、ダイナミックレンジが高いという特性がある。すなわち、イベントカメラは、従来のカメラと比較して、少データ量、高時間解像度、ハイダイナミックレンジ(HDR)という特性を有している。これらの特性は、瞬時ないしリアルタイムに画像処理をして移動体を検知することにとって非常に重要である。
【0013】
<映像の追跡技術について>
映像を入力し、第1フレームで追跡対象の物体を指定することで、各フレームで物体を追跡する技術が提案された。近年、深層学習の進化により、検出技術の精度が大幅に向上されたので、非特許文献2のようなTracking by Detection(検出による追跡)というアプローチが広く使われている。Tracking by Detectionという手法では、まず映像の各フレームから追跡対象の物体を検出(Detection)し、次にフレーム間で同じ物体に対して同一のIDを割り振っていくことで追跡(Tracking)の結果とする。
【0014】
しかしながら、映像に映っている動物体が映像上でのサイズの小さい極小動体である場合には、検出の精度が悪化する傾向がある。この場合、特許文献1のように対象物体を検出することに代えて、パーティクルフィルタ(Particle Filter)を用いるフレームワークを採用することが望ましい。パーティクルフィルタでは、現状態から起こりうる多数の次状態を、多数のパーティクル(粒子)で表現し、全パーティクルの尤度(Likelihood)に従って算出された重みつき平均を現状態であると推測して追跡を行う。
【0015】
パーティクルフィルタを利用する際には、パーティクル(粒子)を現状態から起こりうる多数の次状態にどのように遷移させるかを決めるための遷移モデルと、パーティクル(粒子)の状態と観察した値(例えば、画素値)の類似度をどのように算出するかを決めるための尤度(Likelihood)とを、タスクによって定義する必要がある。
【0016】
例えば、非特許文献3では、追跡開始時刻に追跡対象になる動体の場所が既知であり、動体を楕円で近似し、前記楕円の位置と向き、大きさが既知であるとの前提を設け、追跡する対象を各時刻Tにおける前記動体を近似した楕円の状態として設定する。具体的に各時刻Tの楕円の状態STは式(1)で示す通りであり、非特許文献3ではこの追跡対象となる状態STに関して、以下の式(2),(3)の遷移モデルと、式(4),(5)の尤度を採用した。
【0017】
【0018】
式(1)において、{x(T),y(T)}は楕円の中心の座標であり、{x'(T),y'(T)}(数式中の上ドットをアポストロフィ'で表す)は楕円の中心{x(T),y(T)}の移動速度(座標の一次微分)であり、Hx(T)は長軸の長さ(長径)の半分であり、Hx(T)は短軸の長さ(短径)の半分であり、a'(T)は長軸と水平線(座標のx軸)とがなす角度である。式(1)のこれらの値は全て時刻Tにおける値として、楕円の状態STをその位置{x(T),y(T)}、速度{x'(T),y'(T)}、サイズ及び形状{Hx(T),Hy(T)}、向きa'(T)として与えている。
【0019】
楕円の状態STの遷移モデルを与える式(2),(3)について、δは事前に決めたパラメータであり、Wは多変量正規分布に従った乱数行列である。多変量正規分布のパラメータは事前に決める。
【0020】
尤度を与える式(4),(5)に関して、式(4)で定義されるバタチャリヤ距離d[p,q]を用いる。すなわち、追跡開始時刻(例えばT=1)のフレームにおける追跡対象となる対象カラーヒストグラムq(target histogramと呼ぶ)と、現時刻tのフレームにおいて各パーティクル(粒子)の状態に対応する画像領域の候補カラーヒストグラムp(candidate histogramと呼ぶ)の間のバタチャリヤ距離d[p,q]を式(4),(5)のように求める。式(4),(5)の各ヒストグラムp,qは以下の通り、ヒストグラムの各ビンに現れる頻度をベクトルの要素として列挙するものであり、mはヒストグラムのビン数である。(両ヒストグラムp,qが同一であるとき、式(5)のρ=1となり、式(4)のバタチャリヤ距離d=0(最小値)となって、両ヒストグラムp,qが最も類似していることを意味する。逆に両ヒストグラムp,qが非類似である程度が高いほど、バタチャリヤ距離dの値は大きくなる。)
候補カラーヒストグラムp={p(u)}u=1,2,…,m
対象カラーヒストグラムq={q(u)}u=1,2,…,m
【0021】
<イベントカメラデータにおけるパーティクルフィルタ利用について>
パーティクルフィルタをイベントカメラに適用する場合は、上記の遷移モデルと尤度以外に、更新時刻も定義する必要がある。すなわち、映像では、フレームの時刻が自然な更新時刻となるが、イベントカメラデータは、各ピクセル間において信号・データが非同期的に発生するものであるため、更新時刻の定義が明白ではない。
【0022】
また、イベントカメラデータにパーティクルフィルタを適用することを試みた非特許文献4では、単一のイベントカメラデータを用いて尤度の計算が困難であると報告されている。非特許文献4では追跡対象としてボールを追跡しており、各パーティクル(粒子)の状態に対応するイベントカメラデータの領域を用いて、イベントカメラデータを時間順で蓄積し、尤度を算出し、最大尤度を足した際に、更新時刻としている。
【先行技術文献】
【特許文献】
【0023】
【非特許文献】
【0024】
【文献】Lichtsteiner, P.; Posch, C.; Delbruck, T. (February 2008). "A 128×128 120 dB 15μs Latency Asynchronous Temporal Contrast Vision Sensor". IEEE Journal of Solid-State Circuits. 43 (2): 566‐576.
【文献】Bergmann, Philipp, Tim Meinhardt, and Laura Leal-Taixe. "Tracking without bells and whistles." Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.
【文献】Nummiaro, Katja, Esther Koller-Meier, and Luc Van Gool. "An adaptive color-based particle filter." Image and vision computing 21.1 (2003): 99-110.
【文献】Glover, Arren, and Chiara Bartolozzi. "Robust visual tracking with a freely-moving event camera." 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2017.
【文献】Lee, Chankyu, et al. "Spike-flownet: event-based optical flow estimation with energy-efficient hybrid neural networks." European Conference on Computer Vision (ECCV). Springer, Cham, 2020.
【文献】酒見悠介, 森野佳生. "スパイキングニューラルネットワークにおける深層学習." 生産研究 71.2 (2019): 159-167.
【発明の概要】
【発明が解決しようとする課題】
【0025】
しかしながら、従来技術では、イベントカメラデータにおいて極小動体の追跡を行うことに関して、必ずしも十分な精度を確保できなかった。
【0026】
すなわち、従来技術において、ボールの形や追跡対象のカラーヒストグラムを用いて尤度を算出すると、極小動体検知の精度が低下することを本発明者らは確認した。極小動体を撮ったイベントカメラデータがスパースであり(イベントカメラのデータ量は輝度が変化するピクセルの数と比例することから、サイズの小さい極小動体ではスパースであり)、形(非特許文献4)や色(非特許文献3)、テクスチャの識別能力を著しく低下させることが原因と考えられる。ここで、ノイズがある中で、極小動体の信号とノイズとを区別しにくいという課題がある。結局のところ、追跡対象が一定サイズ以下になると、パーティクルフィルタを用いた追跡が困難である。
【0027】
図2に、追跡対象のサイズが小さくなると追跡が困難になることを確認した本発明者らによる実験例として、非特許文献3のカラーヒストグラムによる尤度の手法を用いて回転皿CG(コンピュータグラフィックス)映像からボールを追跡した結果を示す。上段側の例EX1~EX4にそれぞれ示すように、追跡対象が含まれるCG映像として、回転する円盤(皿)の円周に、半径Rが8,4,2,1ピクセルのサイズの円ドット(円ドットでボールを表現したもの)を設けて、円盤の中心を回転軸として回転させるCG映像を用意する。このCG映像の円盤の回転に伴って回転することで円軌道を描くこれら半径R=8,4,2,1ピクセルの円ドットを追跡した結果がそれぞれ、下段側の例EX11~EX14に示されている。例EX11,EX12にそれぞれ示されるように、円ドットが半径R=8,4ピクセルのL(大)サイズ及びM(中)サイズの場合では円軌道の形で追跡に成功しているが、例EX13,EX14にそれぞれ示されるように、円ドットが半径R=2,1ピクセルのS(小)サイズ及びSS(極小)サイズの場合では追跡に失敗しており、円軌道は描かずに初期位置付近に留まったままの結果となっている。(なお、例EX13のSサイズの場合は、初期時刻以降のわずかな間隔は円弧状の軌道となり追跡に成功しているが、その後は円を描かなくなって追跡に失敗している。なお、
図2の各例EX11~EX14では、追跡に成功/失敗した軌道に加えて、点状のプロットとして、前述した各時刻Tの楕円の状態S
Tも同時にプロットしている。)
【0028】
上記従来技術の課題に鑑み、本発明は、イベントカメラデータにおいて極小動体の場合でも精度を確保して追跡を行うことのできる追跡装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0029】
上記目的を達成するため、本発明は、イベントカメラデータから動体追跡を行う追跡装置であって、前記イベントカメラデータを正負の極性の区別に応じて2つのチャネルに分離するチャネル分離部と、前記チャネル分離されたデータの各々について、各画素位置の近傍範囲でイベントカメラデータの発生が蓄積した場合に当該画素位置での信号発生をトリガ出力することにより、チャネル毎の特徴を抽出する特徴抽出部と、前記チャネル毎の特徴を、チャネル方向に結合し、各時刻に対応する時間範囲ウィンドウ内で加算することにより、各時刻のフレームを構築する逐次フレーム構築部と、前記構築された各時刻のフレームに対して動体追跡を行う追跡部と、を備えることを特徴とする。また、コンピュータを前記追跡装置として機能させるプログラムであることを特徴とする。
【発明の効果】
【0030】
本発明によれば、イベントカメラデータを正負極性に応じて2つのチャネルに分離し、チャネル毎に各画素位置での近傍の信号蓄積をトリガとした特徴を抽出し、この特徴から動体追跡の対象となるフレームを構築して追跡を行うので、動体のサイズが小さい極小動体についても精度を確保して追跡を行うことが可能となる。
【図面の簡単な説明】
【0031】
【
図1】イベントカメラの出力の模式例を示す図である。
【
図2】追跡対象のサイズが小さくなると追跡が困難になることを確認した実験例を示す図である。
【
図3】一実施形態に係る追跡装置の機能ブロック図である。
【
図4】説明例の撮影状況と得られるデータを模式的に示す図である。
【
図5】
図4の撮影例における実際のデータ例を示す図である。
【
図6】フレーム構築部の処理内容を示す模式図である。
【
図7】積分発火モデルのスパイキングフィルタの模式図を示す図である。
【
図8】
図4の撮影例における実際のデータ例を示す図である。
【
図9】追跡部においてパーティクルフィルタを用いた追跡を行う処理の模式図である。
【
図10】本実施形態において尤度計算が行われる対象を模式的に示すための図である。
【
図11】一般的なコンピュータにおけるハードウェア構成を示す図である。
【発明を実施するための形態】
【0032】
図3は、一実施形態に係る追跡装置10の機能ブロック図である。追跡装置10は、撮影部1、フレーム構築部2及び追跡部3を備え、フレーム構築部2はさらにチャネル分離部21、特徴抽出部22及び逐次フレーム構築部23を備え、追跡部3はさらに予測部31、尤度計算部32およびリサンプリング部33を備える。
【0033】
追跡装置10の全体的な動作は次の通りである。撮影部1はハードウェアとしてはイベントカメラで構成されており、撮影を行うことでリアルタイムのイベントカメラデータ(x,y,t,p)を取得し、フレーム構築部2へ出力する。フレーム構築部2ではこのリアルタイムに入力されるイベントカメラデータ(x,y,t,p)から、追跡処理の対象となるフレームF(T)を構築し、追跡部3へと出力する。追跡部3では、このリアルタイムの各時刻T(T=1,2,…)について入力されるフレームF(T)に対して物体追跡処理を適用し、各時刻Tでの物体追跡結果を出力する。
【0034】
なお、時刻に関して上記の通り、イベントカメラデータで記録されている時刻(不定期で発生しうる時刻)を時刻tとし、追跡対象のフレームを時刻TのフレームF(T)とすることで、表記を区別するものとする。一般に、ある程度の時刻範囲(後述するスライディングウィンドウの範囲)に渡る複数の時刻t=t1,t2,…,tnでのイベントカメラデータ集合{(x,y,t,p)|t=t1,t2,…,tn}を用いて、フレーム構築部3では対応する1つの時刻TのフレームF(T)を構築することとなる。
【0035】
上記の通りの全体的な動作を前提として、以下では、追跡装置10におけるフレーム構築部2及び追跡部3の処理の詳細に関して説明する。なお、リアルタイムの各時刻(イベントカメラデータの時刻t及びフレームの時刻T)において、フレーム構築部2及び追跡部3の処理内容は共通であるため、以下ではこのようなリアルタイムの各時刻で共通の処理内容に関して説明する。
【0036】
また以下では、撮影部1のイベントカメラより撮影する極小動体が、前述した
図2の実験例で示したのと同様の円運動をするボール(円ドット)であり、追跡部3においてこの円ドットを追跡する場合を説明のための例として用いることとする。
図4にこの説明例の撮影状況と得られるデータを模式的に示す。撮影環境Eではイベントカメラである撮影部1が、撮影対象OBとして、矢印方向Aに回転する円盤(円周上に円ドットの模様あり)を撮影している。この結果、得られるイベントカメラデータDにおいては、画素座標(x,y)と時間座標tとで構成される3次元空間(x,y,t)において、円ドットの回転の結果として時間座標t方向に螺旋状となるデータ群が得られることとなる。(実際には本来の信号である螺旋状のデータ群のみならず、ノイズも発生しうる。)この説明例において、追跡部3ではこの回転運動を適切に追跡することが課される。
【0037】
ここで、極小動体は写っている動体の面積が小さいものであり、例えば、面積が1ピクセル(1x1)以上から100ピクセル(10x10)以下までであるものが該当する。また、典型例として3msに1ピクセル以上動く状態を想定する。ただし、典型例に限らず本実施形態は適用できる。
【0038】
図5及び
図8は、
図4の撮影例における実際のデータ例D1~D3及びExa,EXbを示す図であり、以下の説明において適宜、参照する。なお、
図5及び
図8の各例のうちイベントカメラデータに関するもの(フレーム例を示す
図8の例EXb以外)では、濃色の点がイベントカメラデータ(x,y,t,p)における極性p=↑(増加)、淡色の点がイベントカメラデータにおける(x,y,t,p)における極性p=↓(減少)を表している。
【0039】
<フレーム構築部2>
フレーム構築部2では、イベントカメラを用いて極小動体を撮影したイベントカメラデータ(x,y,t,p)から特徴量を算出し、イベントフレームとしてのフレームF(T)を構築する。識別能力が強い特徴量とイベントカメラの時間分解能を維持するフレーム構築が望ましい。
【0040】
図5のデータ例D1は、Lサイズ(R=8ピクセル)の回転皿を撮影したイベントカメラデータを示す。
図4の例Dのように本来の信号は螺旋状のデータ群となるはずであるが、実際にはこの
図5のデータ例D1及びこの一部の時間を拡大したデータ例D2のように、ノイズがある中で極小動体の信号とノイズを区別するため、ノイズと信号の特性を活用する必要がある。データ例D1,D2から見て取ることができるように、信号の時間連続性(螺旋状の部分)がノイズより明らかに強い。ただし、この例ではLサイズであり、ボールのサイズが小さくなる(例えば、
図2の例におけるSサイズやSSサイズになる)と、信号がスパースとなる。
【0041】
以上の
図5のデータ例D1,D2での考察に基づき、フレーム構築部2では具体的に各部21,22,23で以下のような処理を行い、フレームF(t)を構築する。
図6はフレーム構築部2の処理内容を示す模式図であり、以下の説明において適宜、参照する。
【0042】
本実施形態のフレーム構築部2では、時間連続性を利用するため、非特許文献6のようなスパイキングニューロンを用いてスパイキングフィルタ(Spiking filter)を構築し、当該スパイキングフィルタからの出力をスパイキング特徴(Spiking feature)として算出する。さらに、スパースな信号に対処するため、時間軸上で蓄積する逐次フレームとしてフレームF(T)を構築する。具体的な手順は以下の通りである。
【0043】
<チャンネル分離部21>
チャネル分離部21では、イベントカメラデータ(x,y,t,p)をその極性によってチャネル分離し、チャネル毎(極性p=↑(増加、正、Positive)の第1チャネルと、極性p=↓(減少、負、Negative)の第2チャネル)に分離されたデータ(x,y,t,↑),(x,y,t,↓)を特徴抽出部22へと出力する。このようなチャネル分離を行うことは、次の考察による。
【0044】
イベントカメラから出力された非同期のイベントカメラデータは(x,y,t,p)である。追跡対象が動いているため、イベントカメラデータの発生場所が単一のピクセルに限らず、隣接するピクセル(近接するピクセル)まで広げることが考えられる。そこで、極小動体の場合、
図5のデータ例D3(データ例D2よりさらに短い時間範囲のデータ例がD3である)のように隣接するピクセルにおいて正負がペアになるので、仮に、チャネル分離を行わずに正負が混在する形で隣接するピクセルからスパイキングフィルタに入力させたとすると、正負が混在する値の加算でスパイキングフィルタの内部状態を相殺させ、スパイキングフィルタが発火できない可能性がある。
【0045】
そこで、スパイキングフィルタが適切に発火することを可能とすべく、本実施形態ではチャネル分離部21により、
図6の処理P1のように極性の正負に応じて分離することで、それぞれ独立のチャンネルCH1,CH2に分離し、それぞれを処理P2のスパイキングフィルタFL1,FL2へと入力させる。(この処理P2は次の特徴抽出部22による処理となる。)
【0046】
なお、チャネル分離の役割として、上記の通りスパイキングフィルタを適切に発火させること以外にも、イベントカメラデータにおける極性の正負の違いは、
図5のデータ例D3にその様子を見て取ることができるように、極小動体がピクセル位置を通過する際の態様の違い(例えば、ある位置(x,y)に極小動体が現れる場合と、消える場合の違い)も反映しているため、この違いを適切に特徴量として抽出し、追跡精度を高めるようにすることがある。
【0047】
<特徴抽出部22>
特徴抽出部22は、チャネル分離された各データ(x,y,t,↑),(x,y,t,↓)についてそれぞれ同様に、スパイキングフィルタを適用することで、スパイキング特徴(x,y,t,↑),(x,y,t,↓)を得て、逐次フレーム構築部23へと出力する。
【0048】
すなわち、特徴抽出部22では、
図6中に処理P2として模式的に示されるように、Positiveの第1チャネルの各位置a=(x,y)においてその空間的近傍範囲Naでの信号発生の蓄積を監視することで、一定量の蓄積があった時刻tにおいて当該位置a=(x,y)での発火イベント(x,y,t,↑)を出力し、且つ、当該位置a=(x,y)での信号蓄積をゼロにリセットすることで、第1チャネルのスパイキング特徴F1を出力する。全く同様にして、特徴抽出部22ではNegativeの第2チャネルの各位置b=(x,y)においてその空間的近傍範囲Nbでの信号発生の蓄積を監視することで、一定量の蓄積があった時刻tにおいて当該位置b=(x,y)での発火イベント(x,y,t,↑)を出力し、且つ、当該位置b=(x,y)での信号蓄積をゼロにリセットすることで、第2チャネルのスパイキング特徴F2を出力する。
【0049】
なお、上記の通りスパイキング特徴F1,F2も非同期のデータであって、形式上はイベントカメラデータと同様の形データ(x,y,t,p)として表現できるものである。
【0050】
特徴抽出部22で分離チャネル毎に適用するスパイキングフィルタは、非特許文献5等に開示される積分発火ニューロンモデル(Integrate and Fire neuronモデル)を用いればよい。
図7に、積分発火モデルのスパイキングフィルタの模式図を示す。ここでは位置p3の近傍N3として、位置p3に加えてその上下左右の4点p1,p2,p4,p5(4近傍)を用いることで、位置p3での発火F3発生の判定をその近傍N3でのイベントカメラデータの蓄積監視によって行う例が示されている。発火F3の例では時刻t
A,t
B,t
Cに蓄積が閾値THに到達して発火が発生し、蓄積(及び位置p3の発火判定を行うための近傍N3の各点における発火カウント数)がゼロにリセットされている。
【0051】
スパイキングフィルタを適用する際の設定として、本実施形態では例えば、対象ピクセルを中心に隣接する3x3のピクセルウィンドウを近傍とし、ストライドを1として
図7に例示されるような2層構造とする。(個別ピクセルp1~p5の側が低次の層であり、p3近傍のN3に集約した側が高次の層であり、2層構造となる。)なお、ストライドを2,3…と増やした設定で3層、4層…とスパイキングフィルタの層を高次の側に増やしてもよいが、層数が少ない方が予め行っておく学習を簡素に済ませることができる。また、一つの重み(w1,w2,w3,…)に対して、一つのチャンネルを出力する。重みに関して例えば、
図7の例であればピクセルp3の発火判定を行うための蓄積量Accum(p3)を、近傍N3の各ピクセルp1,p2,p3,p4,p5でイベントカメラデータが発生した回数n1,n2,n3,n4,n5をそれぞれ、重みw1,w2,w3,w4,w5で加重和して以下のように計算する。
Accum(p3)=Σ
i=1
5 wi*pi=w1*n1+w2*n2+w3*n3+w4*n4+w5*n5
【0052】
本実施形態では、Kセットの重み(Kは事前に設定したハイパーパラメータであり、重みは事前に設定するか学習させるかどちらでも良い)を用意することで、正負の各チャネルにつきKチャネルのスパイキング特徴F1,F2を得る。そして、次の逐次フレーム構築部23において
図6の処理P3のように、正の第1チャネルCH1のスパイキング特徴F1(Kチャネル)と負の第2チャネルCH2のスパイキング特徴F2(Kチャネル)とをチャネル方向で結合(Concatenate)することで、合計2Kチャネルとする。
【0053】
なお、特徴抽出部22ではスパイキングフィルタを用いるものとして説明したが、各画素位置(x,y)の近傍範囲においてイベントカメラデータの発生の蓄積があったと判定された時点で、当該画素位置(x,y)において信号をトリガ出力できるような任意のフィルタを用いてよい。例えば、スパイキングフィルタでは
図7の例のように、各画素位置p3の近傍N3において信号発生があれば常に加算し、閾値THに到達しない限り蓄積量が減算されることはないが、一定時間ごとに一定量で減算する、あるいは一定割合r(0<r<1)を乗じることで減算することで、ノイズ影響と考えられるものを定期的に減算しながら、蓄積量を監視するようにしてもよい。また、蓄積量の時間変化の挙動(増加率が大きいと判定されるか否か等)も考慮して、監視するようにしてもよい。
【0054】
<逐次フレーム構築部23>
逐次フレーム構築部23は、
図6に処理P3として示されるように、正負の各チャネルのスパイキング特徴F1,F2の時刻Tに至るまでの一定時間範囲に渡る値をチャネル方向で結合して、フレームF(T)を構築する。
【0055】
すなわち、極小動体の場合、データがスパースであるため、一定の時間蓄積が必要である。対比例として、非特許文献5では時間軸上でオーバーラップがないため、元のイベントカメラデータの時間分解能を一定程度だけ下げて犠牲にしている。本実施形態では、時間分解能を維持するため、逐次フレームを構築する。つまり、
図6の処理P3の例や
図8のデータ例Exaのように、時間軸上でオーバーラップしたスライディングウィンドウを用いて時間帯を分割し、スライディングウィンドウの時間範囲内で各ピクセルにおいてスパイキング特徴の総数を数え、このスパイキング特徴の総数を各画素の値にして、画素位置毎のスパイキング特徴の数を(合計2Kチャネルのうちの各チャネルとして)1チャネルのフレームとして出力する。
【0056】
図6の処理P3や
図8のデータ例Exaでは、隣接時刻T-1,T,T+1での逐次フレームF(T-1),F(T),F(T+1)を構築するためにそれぞれ、時間軸上でオーバーラップしたスライディングウィンドウW(T-1),W(T),W(T+1)を利用している。
図8のデータ例EXbは、このようにオーバーラップするウィンドウを用いて構築した、ある1つのチャネルのフレーム例である。この例では各画素位置のスパイキング特徴の数が10程度であるが、本実施形態では各画素を例えば8ビットの範囲[0,255]の多値信号とする。(この際、各時刻TのウィンドウW(T)内で各画素位置(x,y)についてカウントしたスパイキング特徴の数が255を超えた場合は、(通常の画像における白飛び状態に相当するものとして、)255で頭打ちとしてよい。なお、255を超えることが多発する場合は、ウィンドウW(T)の幅を狭く設定するか、計算リソース上で可能であれば8ビットより広い範囲を用いるようにしてもよい。)なお、スライディングウィンドウの時間幅やオーバーラップの時間幅は事前に設定しておけばよい。
【0057】
逐次フレーム構築部23では、以上の操作を各チャンネルで実施し、一つのスライディングウィンドウW(T)から時刻Tのフレーム(サイズW×H×Cのテンソル)として第TフレームF(T)=FT(W,H,C)を追跡部3(尤度計算部32)へと出力する。WxHはイベントカメラの解像度(Wが横方向の画素数、Hが縦方向の画素数)であり、Cはチャネル数であり、チャネル方向で結合することからC=2Kとなる。
【0058】
<追跡部3>
追跡部3は、パーティクルフィルタを用いてフレームF(T)における極小動体を追跡することをリアルタイムの各時刻Tにおいて繰り返す。このため、具体的に各部31~33で以下の処理を行う。
図9は追跡部3においてパーティクルフィルタを用いた追跡を行う処理の模式図であり、以下の説明において適宜、参照する。
【0059】
<予測部31>
予測部3は遷移モデルを使ってパーティクル毎に前フレームF(T-1)の状態S
T-1から現フレームF(T)の状態S
Tを予測して、尤度計算部32へと出力する。この前フレームF(T-1)の状態S
T-1は前時刻T-1においてリサンプリング部33で出力されたものを用いることで、
図3に示されるように、各時刻Tについて予測部31、尤度計算部32及びリサンプリング部33は繰り返し処理を行うことができる。
【0060】
図9に予測部3の予測処理P31が模式的に示されるように、パーティクルフィルタの手法に従って、状態空間における前フレームの状態S
T-1(この状態は複数のパーティクルで構成され、
図9では説明例として3個とする)から現時刻Tの状態S
Tを予測する。(当該予測された複数の状態S
Tから、尤度算出と重み更新処理P32及びリサンプリング処理P33により、最終的な追跡部3での追跡結果としての状態S
Tが定まることとなる。)
【0061】
本実施形態では説明例として追跡する極小動体が円運動をするボール(円ドット)であるため、このボールをモデル化するものとして、パーティクルの状態を表現するために非特許文献3と同様の前述の式(1)を用いる。また、遷移モデルも非特許文献3と同じく前述の式(2),(3)を用いる。ただし、イベントカメラのフレームにあたる時間は非特許文献3の映像より短いため、移動速度の影響が少ない。よって、式(3)のδの値として非特許文献3で設定されている値よりも小さい値を設定すればよい。なお、前述の式(2),(3)を成分ごとに記載すると以下の通りである。(なお、wT-1は多変量正規分布Wにおける成分ごとの値となるが、以下では表記簡素化の観点から全ての成分において同じ表記としている。)
位置 x(T)=x(T-1)+δ*x'(T-1)+wT-1, y(T)=y(T-1)+δ*y'(T-1)+ wT-1
速度 x'(T)=x'(T-1)+wT-1, y'(T)=y'(T-1)+wT-1
サイズ・形状 Hx(T)=Hx (T-1)+wT-1, Hy(T)=Hy(T-1)+wT-1
向き a(T)=a(T-1)+wT-1
【0062】
なお、追跡を開始する初期時刻T=1における状態S1については、手動指定等でボール初期位置の状態を与えることで、以降の時刻T≧2に対してパーティクルフィルタの手法を適用可能とすればよい。
【0063】
<尤度計算部32>
尤度計算部32は現フレームF(T)=F
T(W,H,C)に対して上記の予測部31で予測した各パーティクル(状態S
T)の尤度を計算し、前記尤度に従って各パーティクルの重みを更新する。
図9では処理P32として、3つの状態から3つの候補として予測された各パーティクルに対する尤度計算による重み更新が模式的に示される。主な手順は以下1~3の通りである。手順2,3については既存のパーティクルフィルタ手法と同様である。
【0064】
(第1手順…尤度計算)
尤度は、基本的には非特許文献3と同様にして前述の式(4)でターゲットヒストグラム(target histogram)qと各パーティクルの候補ヒストグラム(candidate histogram)p間のバタチャリヤ距離d[p,q]による尤度として算出すればよい。ただし、本実施形態では、正チャネル(C=2Kチャネルのうち前半のKチャネル分)と負チャネル(C=2Kチャネルのうち後半のKチャネル分)を含めて各チャンネルで算出した距離を平均する。
【0065】
また、イベントカメラデータは動きの大きさだけでなく、進行方向にも影響される。ボールの進行方向は変化しているため、非特許文献3とは異なる手法として、ターゲットヒストグラムを該当フレームの情報から一定比率で更新したうえで、バタチャリヤ距離を算出すればよい。すなわち、非特許文献3では式(4)の距離d[p,q]を算出するために、現時刻Tの候補ヒストグラムpに対して比較するのに用いるターゲットヒストグラムqとして初期時刻T=1のものを用いたが、本実施形態では当該比較するターゲットヒストグラムqとして前時刻T-1のものを用いることで、初期時刻T=1ではなく直近時刻である前時刻T-1のものとして更新されているものを用いる。
【0066】
図10は、以上の尤度計算が行われる対象を模式的に示すための図であり、時刻について、初期時刻T=1と、当該尤度計算を行う現時刻Tとその前時刻T-1でのフレームF(1),F(T),F(T-1)が、サイズW×H×Cのテンソルとして模式的に示され、これら各時刻における状態S
1,S
T,S
T-1を構成するi番目(i=1,2,…,N)のパーティクルが占めるテンソル内の範囲が、パーティクル範囲PR(i,1),PR(i,T),PR(i,T-1)として示されている。
【0067】
すなわち、現時刻Tのパーティクル範囲PR(i,T)は、直方体範囲として表現されるテンソルであるフレームF(T)内の状態STに対応する楕円柱の範囲として、空間座標(x,y)の範囲内で位置x(T),y(T)とサイズ・形状Hx(T),Hy(T)と向きa(T)とを有する楕円範囲が、チャネル方向にC次元だけ存在するものであり、前時刻T-1や初期時刻T=1のパーティクル範囲PR(i,T-1),PR(i,1)も同様に、前時刻T-1及び初期時刻T=1において状態ST-1,S1に対応する楕円柱の範囲を占めるものである。本実施形態では現時刻Tのパーティクル範囲PR(i,T)からC次元のカラーヒストグラムhist(i,T)を算出してこれを候補ヒストグラムpとし、同様に、前時刻T-1のパーティクル範囲PR(i,T-1)からC次元のカラーヒストグラムhist(i,T-1)を算出し、これを、ターゲットヒストグラムqとする。
候補ヒストグラムp=hist(i,T)
ターゲットヒストグラムq=hist(i,T-1)
【0068】
前述の通り、非特許文献3の手法ではq=hist(i,1)として初期時刻T=1のままで更新しないが、本実施形態ではq=hist(i,T-1)として更新したものを利用する。なお、ここでは非特許文献3に関して、そのパーティクルフィルタの利用の仕方を本実施形態に対する対比例として説明しており、非特許文献3で本実施形態と同一データ内容のヒストグラムが利用されているわけではない。
【0069】
なお、前時刻T-1と現時刻Tのi番目のパーティクル範囲PR(i,T-1),PR(i,T)に関しては、
図9に示される通り、前時刻T-1ではリサンプリング部33の撒き直しの処理P33で生存して時刻更新処理P34が適用されたものを用い、現時刻Tでは当該生存したものから予測部31の予測処理P31で予測されたものを用いればよい。また、初期時刻T=1のパーティクル範囲PR(i,1)は、事前知識として与えておく初期状態S
1に対応するもとして、初期状態S
1を重み付け和で表現する各パーティクルの範囲を用いればよい。各ヒストグラムp,qについては、対応する各範囲PR(i,T),PR(i,T-1)がチャネル方向にC次元であり、各チャネルでは例えば8ビット範囲[0,255]内で値が与えられているので、グレイスケール画像等の通常画像の場合と同様に、各チャネルにおいてヒストグラムを求めることができる。
【0070】
(第2手順…重みの更新)
上記の通り算出した尤度が低いパーティクルは、予測の正しさが低いのでパーティクルの重みを減らし、逆に尤度が高いパーティクルは予測の正しさが高いのでパーティクルの重みを増やすというように、各パーティクルの重み(尤度を基にした重要度)の更新を行う。この更新はパーディクルが合計N個あるものとして、i(i=1,2,…,N)番目のパーティクルの現時刻Tの重みwT
(i)に対して、以下の式(6),(7)を用いればよい。d(i)はi番目のパーティクルに対して上記の通り求めたバタチャリヤ距離平均であり、σ(i)は分散であり、式(6)で算出した後に、式(7)で規格化した値を用いればよい。(すなわち、i番目のパーティクルについて求めた、k次元(1≦k≦C)目のチャネルのバタチャリヤ距離をd(i)kとすると、これらC個のバタチャリヤ距離{d(i)k|k=1,2,…,C}の平均がd(i)であり、分散がσ(i)である。)
【0071】
【0072】
上記の式(6),(7)の通り、バタチャリヤ距離分散σ(i)によって規格化されたバタチャリヤ距離平均d(i)が小さいほど、ヒストグラムがより類似しているものとして重みを大きく算出することで、パーティクルiが生存する可能性を高めることができる。
【0073】
(第3手順…現フレームの状態推定)
上記の通り算出した重みを用いて、全パーティクルの状態を以下の式(8)で重みつき平均して、現フレームF(T)において追跡対象の状態として出力する。(なお、次のリサンプリング部33の結果を式(8)と同様に重み付け平均したものを現フレームF(T)の追跡対象の状態として出力してもよいが、リサンプリング処理では重みの小さいものを削除するので、結果としてはほぼ同じとなる。)S(i)
Tはi番目のパーティクルの状態であり、STがこれらの重みつき平均による現フレームF(T)の追跡対象の状態である。
【0074】
【0075】
<リサンプリング部33>
リサンプリング部33は、現フレームF(T)における、上記の尤度計算部32で更新した各パーティクルの重みに従って、パーティクルを撒き直す。
【0076】
尤度計算部32で算出した重みの値が閾値判定等により大きいパーティクルほどその子孫をたくさん生成し、閾値判定等により重みが小さいパーティクルは「その値になる確率が非常に低い」とみなしてパーティクルを消滅させる。これにより、新しいサンプリングされた確率分布が完成する。この分布の中で一番確率が大きくなっている値を最終的な次の時刻T+1のフレームの状態(予測部31で予測を適用する対象)とできる。
【0077】
図9の例ではリサンプリング処理P33として、3つのパーティクルのうち重みが大きい1個のみを生存させ、重みが小さい2個を消滅させることが示され、処理P34として、当該生存した1個のパーティクルを3個に撒き直したうえで次の時刻T+1での予測処理P31の適用対象とすることが示されている。
【0078】
以上、本実施形態によれば、極小動体の信号とノイズが区別しにくいことやイベントデータがスパースであるという課題に対して、イベントカメラデータ向けの特徴量抽出やパーティクルフィルタの改善により対処できる。具体的に、以下の全部または一部によって対処できる。
【0079】
●(特徴量抽出)イベントカメラデータを正負極性に応じて分離したチャネル毎に特徴を抽出する。
●(特徴量抽出)時間情報を入れる特徴量を利用するスパイキング特徴を設計する。
●(特徴量抽出)スパイキング特徴から逐次フレームを構築する。
●(パーティクルフィルタの改善)尤度の定義は、分離した正負の2チャネルを合計する。
●(パーティクルフィルタの改善)初期追跡対象の特徴量を更新する。
【0080】
以下、種々の補足例、追加例、代替例などについて説明する。
【0081】
(1) 本発明の実施形態の応用例の1つとして、遠隔地(例えば工場など)をモニタリングして監視する際に、遠隔地の極小動体をイベントカメラデータで精度よく追跡することが可能である。これにより、遠隔地への実際の移動を必ずしも必須とせずに遠隔地の精密なモニタリング等が可能となり、ユーザ移動に必要となるエネルギー資源を節約することで二酸化炭素排出量を抑制できることから、国連が主導する持続可能な開発目標(SDGs)の目標13「気候変動とその影響に立ち向かうため、緊急対策を取る」に貢献することが可能となる。
【0082】
(2) 追跡部3ではパーティクルフィルタで追跡する場合を例として説明したが、カルマンフィルタ等を用いてもよい。また、追跡部3での追跡対象に関して、典型例として3msに1ピクセル以上、常に動き続ける状態を想定したが、追跡対象が静止すると、イベントカメラデータが検出されなくなり、追跡がロストしてしまう問題がある。解決策として、画面内(画面の端では無いところ)でイベントカメラデータが検出されなくなった場合は、物体が静止していると考えて、直前に検出した位置に存在し続けているとして扱うようにしてよい。
【0083】
(3)
図11は、一般的なコンピュータ装置70におけるハードウェア構成の例を示す図である。追跡装置10は、このような構成を有する1台以上のコンピュータ装置70として実現可能である。なお、2台以上のコンピュータ装置70で追跡装置10を実現する場合、ネットワーク経由で処理に必要な情報の送受を行うようにしてよい。コンピュータ装置70は、所定命令を実行するCPU(中央演算装置)71、CPU71の実行命令の一部又は全部をCPU71に代わって又はCPU71と連携して実行する専用プロセッサとしてのGPU(グラフィックス演算装置)72、CPU71(及びGPU72)にワークエリアを提供する主記憶装置としてのRAM73、補助記憶装置としてのROM74、通信インタフェース75、ディスプレイ76、マウス、キーボード、タッチパネル等によりユーザ入力を受け付ける入力インタフェース77、カメラ78と、これらの間でデータを授受するためのバスBSと、を備える。
【0084】
追跡装置10の各機能部は、各部の機能に対応する所定のプログラムをROM74から読み込んで実行するCPU71及び/又はGPU72によって実現することができる。なお、CPU71及びGPU72は共に、演算装置(プロセッサ)の一種である。ここで、表示関連の処理が行われる場合にはさらに、ディスプレイ76が連動して動作し、データ送受信に関する通信関連の処理が行われる場合にはさらに通信インタフェース75が連動して動作する。カメラ78は、撮影部1を実現するイベントカメラとして実装すればよいが、監視や確認の用途等に供するべく、通常のカメラ(RGB画像等の通常映像を取得するカメラ)を併用するようにしてもよい。
【符号の説明】
【0085】
10…追跡装置、1…撮影部、2…フレーム構築部、3…追跡部
21…チャネル分離部、22…特徴抽出部、23…逐次フレーム構築部
31…予測部、32…尤度計算部、33…リサンプリング部