イベントカメラによる輝度復元のまとめ
始めに
こんにちは.@j_ngt_です. 今回は一つの論文の紹介というよりもテーマ別サーベイのような感じでいきたいと思います. テーマはイベントカメラによる輝度復元です.
間違っていたら優しく教えて頂けると幸いです.
イベントカメラ
まず,イベントカメラについて簡単に説明します.
イベントカメラは一定の時間間隔で画像を得るのではなく,輝度に閾値以上の変化があった場合のみ, その時のタイムスタンプ,画素の座標,極性(明暗のどちらに変化したかを示すバイナリ値)を出力します.
特徴は,
タイムスタンプがμs単位であり,非常に高速に動く
130dBくらいのハイダイナミックレンジで高コントラストな環境でもデータを得られる
無駄なデータが少ない
低消費電力
のようなことが挙げられます.
最近では輝度画像を同時に得ることができるイベントカメラが主流ですが, 照明条件が悪い,もしくは高速な運動を伴う時などで輝度が得られないときに,イベントデータから輝度画像を得ることが必要になります.
イベントデータからの輝度復元のアプローチの基本
イベントデータは主に輝度の時間変化分,つまり,を表します. そこから輝度を復元するとき,の関係式を用いて輝度勾配を求めることが多いです. しかし,移動ベクトルは与えられていないので左辺はどちらも未知で不良設定問題となります. そこがイベントデータの難しいところです. (通常のカメラではが与えられることで,とが既知になる)
そこに,運動に対して制限を与えたり,正則化が加えられたり,よりイベントデータに適したコスト関数を考えたりします.
イベントを溜め込んで一枚の画像のようにを作るのではなく,preciseなタイムスタンプをもつひとつひとつのイベントを輝度変化として利用することもできます.
ではざっと紹介します.
Interacting maps for fast visual interpretation [Cook 2011]
この論文は下図のように,輝度Iと輝度勾配G,輝度勾配Gと輝度変化V(イベント)とオプティカルフローF,オプティカルフローFとカメラパラメータCとカメラの回転運動Rといったように,それぞれのmapの関係を定義し,勾配法やらで最適化する.
入力はイベントとして与えられた輝度の時間変化Vの情報のみであり,そこからの関係で勾配とオプティカルフローを求めるのは拘束が弱すぎる.
他の拘束として今回はオプティカルフローFをカメラの回転運動Rのみによって発生するとした. また,輝度勾配Gは輝度Iから計算する.
Simultaneous Mosaicing and Tracking with an Event Camera [Kim 2014]
BMVC2014でBest Industry Paperを取っている.
イベントのみの入力からparticle filterを用いたカメラの回転運動のトラッキングとEKFを用いた輝度復元を同時に行う手法.
カメラの回転運動のトラッキング
はカメラの座標, はカメラの内部パラメータ,は投影.はmozaic. カメラの回転運動Rが求まると,カメラの内部パラメータからmozaic上の位置が求まり,その輝度が求まる. そのピクセルでの一つ前のイベントは前ので,現在とその時の輝度との差分がイベントの閾値となるようにする.
勾配の推定
勾配を,移動ベクトルを,をイベントの発生の閾値とするとイベント一つの発生モデルは以下の式で表される.
はカメラの回転運動のトラッキングができていれば,そこから以下の式で計算が可能.
観測とモデルは以下の式,event rateで表される.
結果の画像です.
この手法のすごいところは,イベント一つの発生モデルを用いて高精度な輝度復元ができるところと,event-by-eventで,イベントが入ってくる度に処理する形になっているところ. 逆に良くないところは,静止しているシーンに対してカメラの回転運動のみを仮定している点.
Simultaneous Optical Flow and Intensity Estimation from an Event Camera [Bardow 2016]
CVPR2016の論文.
イベントデータのみからオプティカルフローと輝度復元を同時に行う手法.
K=128のセルを持つタイムウィンドウを設けてそのセルの前後の輝度とオプティカルフローを推定する.
イベントと輝度の整合性を評価するデータ項,オプティカルフローの拘束式,時空間の滑らかさの正則化項を合わせたコスト関数を主双対法を用いて最適化する.
カメラの動きの制限がないのが大きな利点. 欠点としては,結局何枚もの画像とオプティカルフローを保持していないといけないということ,滑らかさの正則化だけなのでのっぺりとした印象がある.
Real-Time Intensity-Image Reconstruction for Event Cameras Using Manifold Regularisation [Reinbacher 2016]
BMVC2016の論文.
前のイベントからの経過時間で定義したEvent Manifold上での正則化を用いた最適化を行なっている.
,はイベント発生の閾値,は輝度画像,はノイズが乗った観測.
輝度の初期値が既知で,ノイズがなかったら,ただイベントによる輝度変化分を足していけば良いが,は未知でノイズがあるのでそうはいかない(これは「差分を取っているだけなら足していけばいいだけなんじゃないの」と良く言われる..).
なので,以下のようにデータ項Dに何かしらの正則化Rをつけて最適化する.
Event Manifoldの定義
画像ドメインからsurface へのmapping を定義する.
は単にその画素での前のイベントからの経過時間を表す. また,は上の点を表す.
このEvent Manifold上の点での接空間において,の局所的な微分が定義できて,それを使ってManifold上の滑らかな関数の微分を計算してノルムを取ることで正則化項にしている.
つまり,のっぺりとしたsurfaceで滑らかさの正則化をかけるよりもイベントに適したmanifold上で滑らかさを定義した方が良いということだろうか.
結果とEvent Manifoldが下の図. manifold regularizationがあるなしでの比較.なしにする場合はをconstにしてあげればいい. この正則化を加えることでよりテクスチャが少ないところでもコントラストが大きくなっている.
この手法のすごいところは,運動に関して何も推定しないで輝度を復元できているところ. また,その輝度はコントラストがはっきりしているところ.
確かに,Bardowらの正則化は多少無理があるということは議論していたので,この方法はすごいと思った. こんなん提案できたら強いなあ. 主双対法の最適化の更新式やデータ項など細かいところを追えていないので頑張りたい. また,多様体やらの数学の勉強もできたらしたい.. この論文を読もうとしたことは何度もあったが今回で雰囲気が理解できたのでブログのおかげと思いたい. 本当はこの論文だけでちゃんと書いた方がよかった..
Photorealistic Image Reconstruction from Hybrid Intensity and Event based Sensor [Shedligeri 2018]
BMVC2018の論文.
輝度画像とイベントを組み合わせてよりリアルで高フレームレートのビデオを生成する研究.
標準カメラで撮れるテクスチャリッチな情報と,イベントカメラで撮れる時間方向に密な情報を組み合わせる.
イベントの積算画像の複数からpseudo輝度画像をオートエンコーダーで推定しそれらをPoseNetに入力し6dofのポーズを推定. 低フレームレートの2枚の画像からDepthNetで推定したDepthと6dofを合わせることで輝度画像を推定.
まとめ
イベントデータからの輝度復元が何で難しいのかということや基本的なアプローチなど改めて考えることができた. イベントカメラは画像のようなリッチな情報はないけれども,その分高速に重要な情報をとれる. そのスパースなデータに対して,どういう制約,正則化,モデルがいいのかというのを考えがいがあるトピックだなと感じた.
文字打って説明するのが大変で省いてしまったところが多々ある.
こう見るとBMVC多めだなあ.
次回も気が向いたらやります.