【追記】2年前に書いた初学者丸出しの記事にもかかわらず地味にLGTMをいただいているので、参考文献たちを地道に追記していこうと思います(有用なものがあったら是非教えていただきたいです)(2020年7月)
この記事は東京大学航空宇宙工学科/専攻 Advent Calendar2018の9日目の記事として書かれています。
元々は「有人宇宙探査とラリー」というお題で書こうと思っていたのですが,完全にポエムになってしまったので却下してこっちを採用しました。ポエムゆえQiitaにも載せられないのでブログの方で公開するかも。
[](Advent Calendarを書くにあたり,2つほどお題の候補があった(この記事はその片方)のですが,もう片方は完全にポエム()になってしまったのでAdvent Calendarには載せずに本記事のお題を採択しました。読みたい方はこちらどうぞ→有人宇宙探査とラリー)
本記事についてですが,つい最近某所で"イベントカメラ"というカメラの話を聞いて面白いなと思ったので軽くまとめてみたのがこの記事です。カメラについても半導体についてもCVについても詳しいわけではないので悪しからず。
1. 従来のカメラについて
カメラとは「像を結ぶための光学系(レンズ等)を持ち,映像を撮影するための装置」(wiki)です。カメラの発想自体は数百年前から存在していました。カメラにおける撮影画像の記録は主に化学反応を利用していましたが,21世紀に入ったあたりから撮像素子としてCCDイメージセンサやCMOSイメージセンサなどの半導体素子を用いたカメラが主流となっています。
上記のような半導体のイメージセンサは,ざっくりいうと光の明暗に対応して電流を流す性質を持ちます。これらを何らかの方法により計測することによって,レンズに入ってきた撮影画像を復元し,データとして記録するという仕組みです。
2. Event Based Camera
いよいよ本題に入ります。
2.1 Event Based Camera とは
Event Based Camera(以下イベントカメラ)は,生物の網膜から発想を得たセンサです。従来のカメラは,フレームの各点における輝度を何らかの方法で出力するという発想でしたが,イベントカメラでは輝度の変化を検知して出力するという従来とは異なる発想のカメラです。言い換えると,各ピクセルにおける輝度の変化を「イベント」として捉え,その情報を出力するセンサです。
「こんなカメラ誰が使うんだ」と思われる方もいるかもしれませんが,このイベントカメラは女子大生がインスタ映えなパンケーキをSNS上にあげるために使われる(偏見)ことなどは想定されておらず,主にロボットなどのコンピュータビジョン領域における応用が期待されています。
2.2 原理
この動画がとてもわかりやすいのでこれを見ればだいたいイメージをつかめます。
少し数式を用いて説明します。例えばイベントカメラの一つであるDAVIS(Dinamic Active Vision Image Sensor)は以下のイベント$e$を連続的にストリーミングで出力するセンサであると捉えることができます。
\begin{equation}
e = [x,y,p,t]^T
\end{equation}
ここで,$[x,y]$はイベントが発生している座標,$p = +1 ~ {\rm{or}} ~ -1 $はそのピクセルにおける輝度の変化の符号,$t$はイベントが発生した時刻をそれぞれ表します。イベント$e$が発生するとそれを上式の形で出力するということですね。たぶん。
2.3 特徴
- 高フレームレート
- 低消費電力
- 非同期的
あたりが重要な特徴っぽい。
イベントカメラの最大の特徴として,フレームレートが高いことが挙げられます。通常のカメラは高々数十~数百フレーム毎秒だったのに対し,イベントカメラのフレームレートは数μsオーダーです。めちゃくちゃ短い。
あと,消費電力が少ないです。バッテリーのサイズが限られてくるようなロボットに搭載する際には相性が良さそうです。
上記のような特徴は,おそらくですがイベントカメラで取得されるデータの軽さに起因するものだと思います。従来のカメラのように各ピクセルにおける輝度情報をすべて記録するのではなく,2.2節で登場したような$e$という単純なデータを出力する形式なので,従来のカメラよりも低消費電力で,かつストリーミングにより近い出力を実現できているのだと思います。
3. 応用例
イベントカメラはそのフレームレートの高さによる遅延の少なさなどから,特にリアルタイム性が要求されるような場面でのコンピュータビジョン領域での活用が期待されています。とはいってもイベントカメラはまだ発展途上段階といった印象で,実用的な応用についてはまだ研究段階のものがほとんどです。折角の航空宇宙advent calendarということで,それ関連の研究をいくつか紹介します。
3.1 イベントカメラ × SLAM
VR/ARのような文脈でも用いられることの多いSLAMへの応用例。イベントカメラは従来のカメラとは全く異なる枠組みで捉えるべき対象であり,SLAMについてもイベントカメラでは全く異なるアルゴリズムを必要とします。
例えばこの論文とかで説明されていますが,ちょっとまだ手法については難しくて読めていません。。。
3.2 イベントカメラ × ドローン
スイスのETHZとかUZHとかでは,このイベントカメラをUAV(Unmanned Aerial Vehicle,ドローンのこと)に搭載した実験を行なっているグループがあるようです。
この研究では,イベントカメラを搭載したUAVに投げつけられる物体を避けていくという実験を行なっています。具体的には,イベントカメラからの出力を元にEKFで物体の軌道を予測し,UAVに接近しそうな場合は避けるという仕組みです。高フレームレートで低レイテンシなイベントカメラの応用先としては「なるほど!」という感じの実験です。
3.3 イベントカメラ × 宇宙
宇宙関連とイベントカメラを結びつける論文もいくつかあります。https://amostech.com/TechnicalPapers/2017/Optical-Systems/Cohen.pdf では,イベントカメラを用いた宇宙状況把握(Space Situational Awareness, SSA)システムについて論じられています。ちょいちょい話題にのぼるスペースデブリ問題ですが,SSAシステムはこのスペースデブリを監視し,その情報を人々に提供するシステムです。地球周回軌道などに入っている人工衛星の運用者にとっては必需品とも言えます。
上記の研究では,イベントカメラを用いてLEOおよびGEO付近の宇宙空間に存在する物体を観測しています。イベントカメラは,従来のカメラとは異なり昼夜による調整などを行う必要がないので,その点でも優秀とのこと。ただ残念ながらこれは宇宙機に搭載したわけではなく,あくまで地上から観測した実験です。
4. まとめ
いろいろ調べてみたのですが,イベントカメラ自体に可能性があるかどうかはいまいちピンとこない感じでした。そもそもイベントカメラの開発もまだまだ発展途上で,どの程度の性能を実現できるのかとかもよくわからない部分がある印象です。あと,日本語の資料がほとんどありません。おそらくこれから色々と研究が進んでくるのだと思いますが。
個人的には,消費電力が少なかったり,疎なデータが得られるあたり,探査機などの宇宙機に向いていると何となく妄想しています。ただ高フレームレートが要求される場面というのがあまり思いつかず,うーんという感じでもあります。
【追記】現在カメラベースの自己位置推定手法を研究しているのですが、レイテンシ(カメラ処理はせいぜい数十Hz程度が限界)やmotion blurなどが精度向上のボトルネックになっていると感じます。Event-based cameraはこれらの課題を解決しうる能力を持っているという点で、特にRobotics用Computer Vision領域で活躍していく公算は高いと感じます。
5. 【追記】参考文献など
- UZH-RPGのEvent Camera関連研究一覧 here
- Event Camera研究サーベイ here
- DVS用ROS wrapper https://github.com/uzh-rpg/rpg_dvs_ros