こんにちは、プロダクト開発部の吉田仁です。
先日、EVS(イベント ベース ビジョン センサー)の実用化を目的とした社内ハッカソンが開催されました。(プレスリリース)
今回は、ハッカソンにおける私たちのチーム(全 3 チーム中の一つ)の取り組みについて紹介します。

EVS とは?
EVS(Event-based Vision Sensor)は、輝度変化のみを記録するセンサーです。従来のカメラとは原理もコンセプトも全く異なっていて、「動き」を捉えることに特化しているといえます。従来のカメラだと、動画はあくまでも静止画の連続に過ぎないため、「動き」を知るためには静止画同士を比較する等、それなりの画像処理が必要でした(例えば、弊社製品 Motion Sensor のような)。しかし、EVS カメラを使えば「動き」のデータが直接的に取得できます。しかも、飛び散る火花を粒子として写し止めるほど、高速に「動き」を捉えることができます。
出典:ソニー セミコンダクタ ソリューションズ グループ
私たちのチームの取り組み
私たちは「EVS による光無線通信」を開発テーマに掲げ、まずはその基礎技術として「QR コード 3次元化」の開発に取り組みました。

既存の QR コードは 2次元。そこに時間軸の次元を追加して 3次元化。
平面上の各ドットが、特定の動作周波数で明滅する。
デジタルデータを明滅パターンに符号化して、その明滅を EVS カメラで捉えて、デジタルデータに復号化する。
メリット:送信できるデータ量を大幅に増やせる。

ブレインストーミングから開発テーマの決定まで
ブレインストーミングでは、EVS の特徴を最大限に生かせるのは何か? という観点で様々なアイデアを出しました。EVS の特徴の中から特に、私たちのチームは、1万 ~ 2万 fps に相当するという高時間分解能に注目しました。EVS で通信はできるであろう、しかも、高時間分解能ゆえにハイスピードな通信が可能ではないかと考えました。
そこで私たちはまず、光無線通信について一般的に考えてみました。
既存の光通信
有線方式と無線方式があります。
| 方式 | 通信 |
|---|---|
| 有線 | 光ファイバー通信 (Fiber-Optic Communication) |
| 無線 | 光無線通信 (Optical Wireless Communication) |
光ファイバー通信の弱点
レーザー光が必要。
光ケーブルで物理的につなげる必要がある。
モバイルルーターのように持ち運びができない。
水中での無線通信
電波による水中無線通信
水中での減衰が激しいため、ほとんど行われていない。
音響による水中無線通信
長距離通信が可能。しかし、データ量が小さい。(数 kbps)
可視光による水中無線通信
音響通信ほどの長距離は無理なようだが、それでも海中 IoT を構築するには充分な距離は出せる。島津製作所、海洋研究開発機構、KDDI 総合研究所などが海洋開発の分野で研究開発に取り組んでいる模様。
開発テーマの決定
このような現状を踏まえて、私たちのチームでは、EVS による光無線通信は、
高速・大容量の通信が期待できる。
海中 IoT の実現に一翼を担う可能性がある。
と考えました。
そこで、まずはシンプルな「通信するだけの機能」を実装してみよう、というのが今回の開発テーマ「QR コード 3次元化」になります。「EVS による光無線通信」に向けての第一歩という位置付けであり、その応用の一つでもあります。
QR コード 3次元化の処理概要
3次元化した QR コード(のようなもの)を液晶モニターに表示(動画を再生)して、それを EVS カメラで撮影します。
想定している状況としては、街中のデジタルサイネージに表示されている QR コード動画を 1、2メートルほどの距離から読み取る、という状況です。
機能
文字列の送受信
送信側
液晶モニター
受信側
EVS カメラ
送信側
送信メッセージを ASCII コードに変換
送信メッセージ(任意)
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ ...ASCII コード 0x21 から 0x7D までを順番に並べました。
ASCII コード
0010 0001 , 0010 0010 , 0010 0011 , 0010 0100 , 0010 0101 ...
ASCII コードを白黒パターンとして画像化
や
が 1 ビット分のデータを表します。横 8 ビット × 縦 8 ビット


複数フレームを動画にして再生
動画は以下の 3つのセクションに分かれています。
セクション 内容 フレーム数 Header 特定(1111 1111 0000 0000 等) 特定 Data 送信したいデータそのもの データ量に応じて変動 Footer 特定(0000 0000 1111 1111 等) 特定 受信側では、Header セクションと Footer セクションに挟まれたフレームが Data セクションであると判定します。
Data セクション
各フレームは、左半分と右半分という構成になっています。
左半分
デバッグ用です。
上の数字はフレーム番号で、下はセクションごとのフレーム番号になります。
右半分
データ領域です。
四隅に配置している ArUco マーカーは、台形補正のために使用します。
Data セクションの具体例
ここでは 2フレームだけ抜粋します。この 2種類の繰り返しになります。
24 フレーム目

25 フレーム目

受信側
EVS カメラのデータを取得
液晶モニターに表示している動画を EVS カメラで撮影します。
ノイズ除去
Metavision SDK の TrailFilter を使用しました。
ArUco マーカーを検出
ArUco マーカーは特定の位置、かつ同一周期で点滅しています。Metavision SDK の BlinkingFrameGenerator は、特定の範囲が点滅しているかどうかを検出して、その周期を取得することができるので、これを使いました。
ArUco マーカーを使って台形補正
補正前(カメラの構図はあえて無作為)

補正後

所定の位置の画素値を読み取る
白黒パターンを ASCII コードに変換
通信速度
表現できる情報量は、バイナリデータの場合は 2,953 byte、すなわち 約 24 kbit です。(kbit は見慣れない単位ですが、下記 kbps との比較のために)
今回の実験
以下の計算から、約 3.8 kbps になります。
1フレームあたりのビット数
8 × 8 = 64 bit
リフレッシュレート
60 Hz
通信速度
64 bit × 60 = 3,840 bps
高速化した場合の予想
やや恣意的な仮定に基づく予想になりますが、
・格子サイズを細かくする
・ゲーミングモニターを使う
といった高速化により、以下の計算から、約 1 Mbps くらいになるのではないかと考えています。
1フレームあたりのビット数
50 × 50 = 2,500 bit
QR コード全体の表示サイズは、街中のデジタルサイネージという想定で、15cm × 15cm くらいとします。これはちょうど今回の実験(ノート PC の右半分)と同じ大きさです。今回の実験では、四隅の ArUco マーカーが無事に検出できています。その ArUco マーカーの格子と同じサイズとすると、50 × 50 という格子になります。
リフレッシュレート
360 Hz
通信速度
2,500 bit × 360 = 900 kbps
今後の予想、応用のアイデア等
モバイル端末への搭載
現状の EVS カメラは手のひらサイズですが、センサーは既に充分小型化されているので、将来的にはモバイル端末に搭載できるほど小型化されるのではないかと想像しています。
送信側と受信側が 1 対 多 のケース
送信側
街中のデジタルサイネージ
受信側
EVS カメラ搭載のモバイル端末
デジタルサイネージから発信されている信号を、複数の人々が同時に、モバイル端末を使って読み取ります。送信側は、屋内の LED 照明や、街灯の LED 照明とすることもできそうです。
送信側と受信側が 多 対 1 のケース
送信側
小型 LED
・携帯可能なサイズ
・機器固有のパターンで明滅
受信側
監視カメラ
小型 LED を白杖の先端に取り付けたり、子供のカバンに取り付けたりします。ある場所に設置された監視カメラが、その小型 LED を検出すると、明滅パターンから持ち主を特定することができます。これは「その持ち主が、そこを通った」という証拠になり、視覚障害者や子供、特別支援を必要とする方など、単独行動に不安がある方を見守ることができます。迷子になったら、発見することもできそうです
傍受されない 1 対 1 の通信
レーザー光を必要としないのが EVS による光無線通信の特徴の一つですが、あえてレーザー光を使うことで、通信に秘匿性を担保することもできます。レーザー光は指向性が高い(拡散しない)ため、送信側と受信側が正対していれば、傍受されるリスクは低減されます。
まとめ
今回のハッカソンは作業期間が短く、最終発表日の朝にようやく受信に成功という、慌ただしい状態で終了しました。そのため、当初の予想である、EVS で通信できるであろうことは確認できましたが、どこまで高速化できるのか? というところまでは残念ながら追求できませんでした。
EVS を実際に使ってみて感じたのは、EVS の高時間分解能は本当に凄くて、液晶モニター(60 Hz)のリフレッシュのラスタスキャンをスローモーションのように見ることができてしまいます。ゲーミングモニター(360 Hz)のラスタスキャンをも EVS はスローモーションとして捉えることができるのか(スペック上は余裕で可能なはず)、実際に試してみたくなります。EVS を使っていると、時間方向のミクロな世界に入り込んだようで、ワクワクします。今後も EVS に注目していきたいと思います。