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

前回の記事では、iniVation社のイベントカメラ Stereo Kit をセットアップし、左右2台のカメラで手を撮影して3次元の点群を作るところまでをやってみました。
今回は実際に手の3Dトラッキングを行ってみたいのですが、前回までの3Dデータでは荒さがあるため、改善を行いながらトラッキングの結果を示したいと思います。

1. イベントカメラによるステレオの難しさ

前回の記事で載せたステレオによる視差画像を見ると分かるのですが、イベントカメラを用いて綺麗な視差画像や点群を得るのは難しいです。
(上2つがイベントカメラの左右画像、下が視差画像)

これはイベントカメラによって取得できる画像が一般的なRGBの画像に比べ疎な画像(写っている部分が少ない画像)であるためです。

また、ステレオのマッチングアルゴリズムとしてSGBM(Semi-Global Block Matching)というアルゴリズムを使用しているのですが、これは左右の画像で「同じ模様」を探し、その横ズレ(視差)から距離を計算します。つまり、模様=手がかりのある場所でしか奥行きを出せません。
イベントカメラでは上の画像のように光の変化が大きいところを描画するため、基本的に動いている物体のエッジ部分が描画され、SGBMによるマッチングしずらい状況になっています。

2. ステレオマッチングの改善

このような問題を踏まえ、改善として「マッチングの手がかり(材料)をどう増やすか」という方向性を立てることができます。
具体的には以下の4つの方向性を試していきます。

  • 1枚の画像の中にイベントを溜めていく
  • マッチングの基準を厳しくする
  • 左右の見え方を揃える

詳細および改善による効果をそれぞれ先の章で説明していきます。

なお今回、評価に使用するデータは予めイベントカメラで撮っておき、同じ動画で評価を行います。以下のように8の字にカメラの前で手を動かした動画を用います。

各改善の効果を数値的にも見るために、改善の評価には2つの項目を見ます。

  • 有効視差率:全画素のうち奥行きが得られた画素の割合。点群の密度(穴の少なさ)を表します。
  • フレーム間のばらつき:同じ条件でもフレームごとに点群はちらつきます。
    • 元の状態では、有効視差率は約12%でした。

3. 1枚の画像の中にイベントを溜めていく

ここでは1枚に溜めるイベント数を増やしてみます。
これは通常のカメラでいう露光(シャッター)時間を長くするのに似ています。異なるのは、通常のカメラでは露光時間を長くすることで光を溜めていますが、イベントカメラの場合は一枚の画像を取る時間を長くすることでイベントを溜めるようにしていることです。
これにより、一枚の画像の密度が高くなり、マッチングが行いやすくなると考えられます。
以下の画像は1枚に溜めるイベント数を約8倍にした前(左)と後(右)の画像の比較です。

この設定でマッチングを行ってみた結果、有効視差率は約12%のままで、フレーム間のばらつきはかえって悪化しました。

溜める時間を延ばすと、その間に手が動くため、エッジがブレて太ります(モーションブラー)。左右のカメラはそれぞれ少しずつ違う瞬間・違う位置のエッジを写すので、左右の「見え」がズレてしまい、「光っている画素」は増えても、「左右でマッチできる画素」は増えないという状況が起きていました。

4. マッチングの基準を厳しくする

点群には宙に浮いた誤マッチ(ノイズ点)が散らばっています。SGBMには「曖昧な対応は捨てる」ためのしきい値のパラメータがあるので、これを上げることで誤マッチを減らすことをやってみます。

以下がしきい値を上げる前(左)と後(右)の視差画像の比較です。少し分かりづらいですが、真ん中に写る赤の塊が手に相当しており、しきい値を上げることでむしろマッチングが減っている(赤の領域が少なくなっている)ことが分かります。

このパラメータは、RGB画像で模様が豊富なら有効ですが、イベントのエッジ画像はそもそも疎すぎて、ほとんどの対応が”曖昧な状態です。基準を上げると、ノイズより先に、数少ない本物のマッチまで一緒に捨ててしまうということが分かりました。

5. 左右の見え方を揃える

SGBMは左右の画像が「似ている」前提で対応を探します。ところがイベントカメラは画素ごとに発火のしきい値が微妙に違うため、同じエッジでも左右で太さや濃さが揃いません。さらにノイズイベントがチラチラとスペックル(光の斑点)を作ります。
これに対応するため、ノイズを落として左右のコントラストを揃えることで、左右が似てきて対応が取りやすくなります。
具体的にはヒストグラムを用いた画像内、および左右画像のコントラストの均一化と整形化を行いました。
実際に得られた画像(従来が左、整形化後が右)を以下に示します。

この画像を用いて、結果として有効視差率は約15%に向上(約1.2倍)しました。さらに宙に浮いていた背景のノイズ点が消えて、見た目もクリアになりました。

6. 時間方向の処理の追加と最終結果

ここまでの検証を踏まえて、8の字に手を動かしている動画に対して、以下の3パターンの比較を行います。

  • 1.何もしないでステレオマッチングを行った場合
  • 2.5章の左右の見え方を揃える処理を入れてステレオマッチングを行った場合
  • 3.上記処理+手を追跡するための時間方向の処理

手を追跡するための時間方向の処理としては、トラッキングと時間平均を入れました。それぞれ以下のような処理になっています。

  • トラッキング:前フレームに近い点群のみを見るようにする
  • 時間平均:各時間での手の位置を平均化する

上記の1,2,3での手の軌跡を描画した結果が以下になります。

生のデータ(左端)だと全く軌跡がかなりぶれていますが、マッチングの改善と時間方向の処理(右端)を入れることで、8の字の軌跡が見えるようになっているのが分かります。

7. まとめ

イベントカメラの画像は一般的なカメラと異なりかなり疎であり、そのままステレオマッチングで3次元的な情報をとるのは難しいです。
今回はマッチング自体の改善や、時間的な処理を行うことで、3次元的に手の軌跡を取得することができるようになりました。
これを応用して、ドローンや自動運転での動いている人や物体の検知などに適用することが可能です。

この記事を読んで、このカメラ面白いなと感じていただけた方はぜひ下記リンクよりお問い合わせ下さい。

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

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

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

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

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

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

- -

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

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

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

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

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