【受付時間】 10:00〜18:00(土日祝日を除く)

本記事では、iniVation社が開発しているイベントカメラのStereo Kitについて解説していきます。
イベントカメラは、通常のカメラと異なり、物体の動きや景色の変化を写すカメラです。また、Stereoはカメラを2台並べて撮影することで、奥行きの情報を取得する撮影方法のことを言います。
今回はまず初めにイベントカメラとは?Stereoとは?といったところを詳しく解説し、キットを用いて実際にデータ取得を行ってみます。

1. イベントカメラとは?

普段私たちが使っているカメラは、一定の間隔(たとえば30fpsなら1秒間に30回)で「画面全体」を丸ごと撮影します。動いているものも、まったく動いていない背景も、関係なくすべて毎回記録します。

これに対してイベントカメラは、画素(ピクセル)ごとに「明るさが変化した瞬間」だけを記録するカメラです。人間の網膜の仕組みをヒントにした「ニューロモルフィック(神経模倣型)」のセンサーで、変化のあった画素だけが、それぞれ独立して「いつ・どこで・明るくなったか暗くなったか」というデータを吐き出します。この1つ1つのデータを「イベント」と呼びます。

イベントカメラの強み

この仕組みのおかげで、イベントカメラには通常のカメラにない特長があります。

  • 圧倒的に速い(高い時間分解能) — イベントカメラは、明るさの変化をおよそ1マイクロ秒(100万分の1秒)という時間精度で捉えられます。普通のカメラのフレーム間隔と比べると桁違いに細かく、高速で動くものでもブレずに追えます。たとえば回転するプロペラや、勢いよく振り回されるバーコードの細部まで、つぶれずに記録できます。
  • 明暗の差に強い(高ダイナミックレンジ) — 広いダイナミックレンジを持ち、明るい屋外から暗いトンネルまで白飛び・黒つぶれしにくいという特長があります。
  • 低遅延・低消費電力 — 変化のあった画素のデータだけを扱うため、データ量が少なく、処理が速く、消費電力も抑えられます。

こうした特性から、イベントカメラは高速ロボティクス、自動運転、VR/ARの視線追跡、人物トラッキングなど、「速さ」と「効率」が求められる場面で注目されています。

2. ステレオとは?

ステレオ(Stereo)とは、カメラを2台横に並べて、同じ対象を少し違う角度から同時に撮影する手法のことです。これは人間が「両目」でものを見て距離を感じ取るのとまったく同じ原理です。

なぜ2台で奥行きがわかるのか

近くにあるものは、左の目(左カメラ)と右の目(右カメラ)で見える位置が大きくズレます。逆に、遠くにあるものはほとんどズレません。この「左右の見え方のズレ(視差)」の大きさを計算することで、対象までの距離を割り出せます。これがステレオ計測(ステレオビジョン)の基本原理です。

1台のカメラだけでは画像に奥行きの情報が含まれないため、こうして2台のカメラのズレを使って3次元的な距離を復元します。これにより、平面的な映像だけでなく、空間としての「深度マップ」を得ることができます。

ステレオで重要なポイント:同期

2台のカメラで「同じ瞬間」を撮ることが、ステレオ計測の前提になります。タイミングがずれると、動いている対象の左右の位置がそもそも別の瞬間のものになってしまい、正しく距離を計算できません。そのため、2台のカメラを電気的に同期(シンクロ)させる仕組みが欠かせません。

3. iniVation イベントカメラ Stereo Kitの特徴

iniVation社のStereo Kitは、イベントカメラを用いたステレオビジョンを行いたい人向けに、必要なものをひととおりまとめたキットです。イベントカメラを2台買って自分で並べる手間や、同期・固定の工夫を、最初から解決してくれるパッケージになっています。

Stereo Kitには、カメラ本体だけでなくステレオ撮影に必要な周辺機材が含まれており、以下の写真のようにステレオカメラを構築することができます。

ポイントは、カメラを2台設置するためのステレオプレートや同期ケーブルが含まれているので、前章で触れた「2台を正確に並べる」「同じ瞬間を撮る(同期)」という、ステレオで重要な点をカバーして、すぐに実験が始められるようになっていることです。

4. イベントカメラStereo Kitを動かしてみる

それでは、イベントカメラStereo Kitを実際に動かしてみたいと思います。
イベントカメラStereo Kitを動かすためのソフトは以下のものを使用します。
https://github.com/nanoxeed/dv-stereo-python-quickstart
これらのソフトを動かすためにPython3が必要になります。
まずは、2台のカメラのそれぞれの画像を表示させてみます。ターミナル上で以下を実行します。

・pip install -e .
 python stereo_camera_capture.py
・実行すると以下のような画面が表示されます。

この状態で、カメラの前で手を振ったり、止めたりしてみてください。手を動かしたときだけ、カメラが反応し、映像が写ることが確認できます。

次に、イベントカメラの瞬間ごとのイベントを積算することで止まっているときも一定画像として残るようにして映してみます。
以下を実行することでこの積算バージョンのカメラ表示を行うことができます。

・python accumulate_stereo_preview.py
・実行すると以下のような画面が表示されます。

手を動かすと、先程は動いた瞬間のみの表示でしたが、止まった後も少し画像が残るようになっているのが分かります。

最後にステレオ画像の結果を表示します。ステレオ画像を取得するにはカメラのキャリブレーションが必要になりますが、ここでは詳細は割愛します。詳しくはクイックスタートのREADMEをご確認ください。
キャリブレーションが完了したら、以下のコマンドでステレオ画像を取得してみます。

・python stereo_pointcloud_rerun.py –calibration
 calibration/stereo_calibration.json –sgbm-num-disparities 128 –max-depth-m 5.0 –pointcloud-interval 1 –stats-interval 1
・UIが立ち上がり以下のような画面が表示されます。

UIは左上が3D点群描画、右上がステレオの視差画像、下の画像が左右の画像になっています。イベントカメラでは通常のカメラよりも特徴が少ないため、綺麗な奥行きは取得できませんが、手を動かすと動きに反応して、3D上に動きが表示されるのが分かります。

5. まとめ

イベントカメラとステレオの仕組みを説明し、iniVationのイベントカメラStereo Kitの特徴について述べ、実際にクイックスタートの内容に沿って動かしてみました。
イベントカメラは通常のカメラとは異なり、明るさの変化を捉えることで、高速に動くものや暗い環境でも動作することができ、ドローンや自動運転、人検出といったところでの活用が期待できます。
この記事を読んで、このカメラ面白いなと感じていただけた方はぜひ下記リンクよりお問い合わせ下さい。

最後までお読み頂きありがとうございました。

お客様用ご相談/お問い合わせ

製品に関するご相談、デモ機器、お見積・納期などに関して お気軽に問い合わせ下さい

※は入力必須項目となります。

下記フォームにてお客様情報・問い合わせ内容をご記入の上、確認ボタンをお願いします

お問い合わせ内容必須
会社/団体名必須
所属/担当
お名前(漢字)必須
お名前(フリガナ)
電話番号必須

- -

〒 郵便番号(ハイフン無し)必須
住所(建物名まで記入)必須
メールアドレス(個人アドレス、フリーアドレス不可)必須
お問い合わせの製品名

ナノシード製品を知ったきっかけ (いくつでも可)

どういったジャンルの製品に関心がありますか(いくつでも可)

気になる海外メーカー/製品はありますか (自由記入)

お問い合わせの内容必須
個人情報の取り扱いに同意する