NTTドコモ R&D Advent Calendar 2024 の22日目の記事です。
はじめに
みなさまこんにちは,NTTドコモ クロステック開発部の北出です. 12月恒例の イベント NTTドコモ R&D Advent Calendarをお楽しみいただけておりますでしょうか. 今回は,光の変化という イベント を捉えるカメラ,「イベントカメラ」をテーマにお届けします.
イベントカメラとは?
イベントカメラは,一般的なRGBカメラとは異なり明暗の変化や物体の動きといった「イベント」にのみ反応することができるカメラです.EVS:Event-based Vision SensorやDVS:Dynamic Vision Sensor などとも呼ばれています.まずはどんな映像が撮れるのか,みていきましょう.
左側が一般的なRGBカメラ,右側がイベントカメラの映像です. RGBカメラは全ての画素に色がついていて被写体が止まっている・動いている問わず見えているのがわかります. 一方,イベントカメラでは動いている,つまりイベントが発生している手の部分だけ見えています. これだけだとRGBカメラの方が情報が多くて使いやすいのでは?という声が聞こえてきそうですが,イベントカメラがどのように映像を取得しているか,もう少しだけ見てみましょう.イベントカメラの良いところが見えてくるはずです.
RGBカメラは,
- 全ての画素について
- 一定時間光を集めて
- 一枚の画像(フレーム)として出力する
という特徴のカメラです.一方でイベントカメラは,
- それぞれの画素について
- 光の変化が閾値を超えた時
- その変化方向(光が増えた・減った)を画素ごとに独立して
出力することができます.すなわち,RGBカメラにはあった「フレーム」という概念がありません. 画素の集まりであるCMOSを使っている点は二つのカメラ共通である一方,各画素からの情報取得方法が異なるのです. 以上の特徴から,イベントカメラには
- 高速:画素独立で処理できるためマイクロ秒オーダーで動作する
- 低消費電力:必要な画素のみ出力するためデータが少なくて済む
- 高ダイナミックレンジ:変化のみ捉えるため白飛びや黒潰れが起こりづらい
という特徴があります. よろしければProphesee社の解説ページ*1もご覧ください. 次の章では,イベントカメラの特徴を使ってどんなことができるのか,見ていきます.
どんなことができるのか?
もう少し具体的なユースケースで,イベントカメラの凄さをみていきましょう.
電子部品破損の瞬間
一瞬で起こる変化の一つとして,機器の故障を考えてみます. 電子部品の中でも故障時の威力(物理的な意味で)が大きいのがコンデンサーです. コンデンサーが劣化すると容量抜けや膨張が発生し,安全弁が働いて煙が外へ放出されます.ここでは,試しにコンデンサーに過電圧をかけて破裂させてみました.
お分かりいただけますでしょうか. コンデンサー全体が持ち上がり,そのあと下の方から煙が飛び出しています. このように微細な変化をしっかり捉えるとともに,変化のみをしっかり映し出していることがわかります.水の飛沫
続いて,水が跳ねる様子を捉えてみます.
ここでも,水が流れる部分のみが捉えられているだけでなく,飛沫が飛んでいく様子をしっかり捉えていることがわかります. この例では特に,水飛沫が跳ねている様子がRGBカメラよりもはっきり可視化できているのがわかるのではないでしょうか.
ロボティクスとイベントカメラ
イベントカメラの高速・低消費電力・高ダイナミックレンジという特徴は,一瞬を捉える必要があり,電力的な制約があり,様々な環境で動作させる必要があるロボティクスと相性が良いです. 加えて「変化のみを捉える」という特徴は,ロボットが担うタスクの一つである物体の動きを分析することができるオプティカルフローを推定することを容易にします.
一方で,ロボティクスの分野でカメラを使って行うタスクの一つとして,実空間上に置いた視覚的な目印を認識するという,ビジュアルマーカーの認識があります. しかし,イベントカメラは自身が静止した状態では,静止した物体を撮影することができません.例えば,ARマーカーのような二次元の模様を持ったマーカー,すなわち二次元マーカーをそのままでは認識することができません.
イベントカメラ用マーカーシステムBicode
そこで,イベントカメラにて利用可能なビジュアルマーカーとしてBicodeを開発しました.Bicodeは,マーカー自体が点滅することで情報を伝える点滅マーカーと,マーカーの模様を使って情報を伝える二次元マーカーを組み合わせたハイブリッドマーカーです.
Bicodeは二次元マーカーをバックライトLEDで高速に点滅させることで,二次元マーカーと点滅マーカーの機能を両立しています.これにより,5cm角のマーカーであっても20mを超える距離から点滅マーカーとして見つけることができ,さらに数mの距離では二次元マーカーとしても機能し,マーカー姿勢の認識が可能となります. さらに,Bicodeは高速に被写体の動きを捉えることができるイベントカメラ用のマーカーであるため,点滅マーカーとしても1kHzを超える点滅速度で高速に動作させることが可能となります. なお,Bicodeは二次元マーカーの模様が刻印されたアクリル板とLED,点滅制御用の小型マイコンと電池で構成されており,非常に安価に実装可能です. また,イベントカメラとしてProphesee社製EVK4*2を利用しました.
従来のマーカーとの違い
Bicodeは,カメラを使って認識するビジュアルマーカーという種類のマーカーシステムです. それでは,従来のBicodeとビジュアルマーカーは何が違うのでしょうか.
二次元マーカーとの違い
Bicodeは,二次元マーカーの機能を備えています. 二次元マーカーそのものの原理としてカメラで模様をはっきりと認識する必要があるため,遠くから認識させるためにはマーカーを大きくしたり,カメラを望遠対応にしたりする必要がありました. 一方でBicodeは,二次元マーカーの模様自体を点滅させ点滅マーカーとしても機能させることで,小さなマーカーサイズでも従来の二次元マーカーと比較して遠くから見つけることが可能となりました.
点滅マーカーとの違い
RGBカメラを認識に用いる従来の点滅マーカーは,点滅の読み取り速度がカメラの速度に依存するため,数十からせいぜい数百FPSでの読み取りとなりました.一方でBicodeは読み取りにイベントカメラを用いるため,FPS換算で数百FPS程度の速度で読み取りが可能です.これによりマーカーそのものの読み取り速度向上・ID数の増大を実現しました.
また,点滅マーカーの性質上3点以上のマーカーを組み合わせないと姿勢の認識ができませんでした.しかしながらBicodeは二次元マーカーのパターン自体を点滅させているため,二次元マーカーの機能を用いて姿勢の推定が可能となりました.
Bicodeにおける点滅マーカー符号化の仕組み
冒頭で挙げたイベントカメラの動作例を思い出して欲しいのですが,イベントカメラは「イベント」が発生した部分のみ見ることができます.
図に示すように,イベントカメラはLEDの点灯・消灯の瞬間は高速に検知できても,点灯・消灯し続けるLEDを検知することはできません.そこで,点滅マーカーとして確実にイベントカメラから読み取りができるように,点滅の符号化にマンチェスター符号化を用いました. マンチェスター符号化では,ビットの立ち上がり・立ち下がりに必ず点滅の点灯・消灯状態が切り替わるため,イベントカメラにおいてしっかり検出することができます. 下図では,00100101という点滅パターンをマンチェスター符号化を使って送信する様子を示します.
動作の様子
最後に,Bicodeの動作例を図に示します. 図では,遠くからはBicodeの小さな輝点からマーカーIDを発見し,近づいて姿勢を認識している様子がわかります.
まとめ
この記事では,イベントカメラの特徴とその特徴を生かしたビジュアルマーカーシステムBicodeの仕組みを解説しました.なお,Bicodeについては国際会議ICRA2024にて発表*3しましたので,より詳細にご興味があればぜひ論文をご参照ください. また,ありがたいことに情報処理学会から2023年度山下記念研究賞もいただいております*4. 本取り組みは,X-Lab*5の支援を受けて進めてまいりましたのでよろしければX-Labの記事もご覧ください.
最後までお付き合いいただきありがとうございました. 引き続きNTTドコモ R&D Advent Calendar 2024をお楽しみください!