« 生理研研究会 最終回「認知神経科学の先端 宣言的記憶の脳内メカニズム」無事終了しました | 最新のページに戻る | 国際シンポジウム「哲学と経済学における意識と意図」でトークしてきた! »

■ Eye Tribe + Processingで視線位置のデータ収集してみた

以前のブログ記事でも書いたことがあるけど、Eye Tribeをいじってる。Eye TribeというのはUSB3で接続するポータブルなアイトラッカーのことで、アイトラッカーってのは人の視線がどこを向いているかを計測する機械。

たとえばこのアイトラッカーをパソコンの画面の下にくっつけておけば、使用者が画面上のどこを見ているかを調べることができる。だから広告業界とかにとっては重要なツールになる。もしくはマウスの代わりの入力デバイスとして使うこともできる。たとえばこの映像とか見るとゲームでの応用とかもできるのがわかるかと思う。

入力デバイスとしてのアイトラッカーのもう一つの重要な用途は、筋萎縮性側索硬化症(ALS)などで発話、キーボード入力などが出来ないような状況でも眼球運動は可能であるような場合で、この場合アイトラッカーが唯一可能なコミュニケーションデバイスとなる。しかしアイトラッカーというのは市販のもので数百万円するようなものなのでなかなか個人用で利用できるものでもなかった。

そこで廉価なデバイスとオープンソフトウェアとの組み合わせでアイトラッカーを自作しようというムーブメントが起きた。たとえばEYEWRITERではALSを発症したグラフィティアーティストTony Quanのために、プレーステーション用のカメラPlayStation EyeとC++用オープンソフトウェアopenframeworksを組み合わせることによって、視線入力によって再びグラフィティを作成することに成功している。入力デバイスとしての使用に関しては、日本語での資料としてはこちらがまとまっている:視線入力装置は自作できます。

このような状況に大きく風穴を開けたのがThe Eye Tribeというわけ。The Eye Tribeはこれまでの市販のアイトラッカーが数百万円という状況で、99ドルつまり1万円程度という廉価なアイトラッカーを出してきた。これまでのアイトラッカー(Tobiiとか)が専用のPCを使って計算をした結果をイーサネットなどで通信してデータ取得していたのに対して、The Eye TribeではUSB3接続で直で使用者のラップトップに接続できる。ゆえにポータブルにはなるけれども、多分あんまり複雑な計算はできていないはず。さてそれではどのくらいの精度が出るものか調べてみようというわけです。ということでやっと本題きた。(<-いつもよりちょっと丁寧な執筆をしております)

(私の研究での真の目的は、廉価なアイトラッカーを複数様々な位置に設置することでヘッドフリーでの広い視野角でのアイトラッキングが実現できるのではないか、というところ。今回はそのへんには立ち入らない。)


まあ論より証拠で、実際に計測した映像をアップロードしてみた。

この映像でやっているのはサッカード課題というもので、赤い丸が画面の中央に点灯して、それが左に移動して、真ん中に戻ってきて、右に移動して、また真ん中に戻ってくる。被験者の課題はこの赤い丸を追っかけてみるというもので、白い点がEye Tribeで計測した被験者の視線位置を表している。視線計測のフレームレートは30fpsで獲得して、実際の課題中にリアルタイムで自分がどこを見ているかモニターすることができている。

20151128190851163edit3s.png

このときの計測データを横軸を時間にしてplotしたものがこちら。上からgaze(視線位置=眼球の動き)の(1)横方向の位置、(2)縦方向の位置、eye(眼球位置=頭部の動き)の(3)横方向の位置、(4)縦方向の位置、そして(5)瞳孔のサイズ。マゼンタが左眼、緑が右眼のデータ。Youtubeの動画では視線だけを動かしている10sec-22secあたりを切り出している。

眼球位置(3)(4)は安定して記録できてる。(3)を見ると左右の眼の間隔は一定なので20-23secあたりで左右に頭を動かしているときにこの間隔が変わらないことがわかる。(4)を見ると23-25secあたりに上下に頭を動かしているのがわかる。左右の眼は同じように動いている。

視線位置(1)(2)を見ると、横方向(1)に視線を移動させているのがわかる。縦線のある部分が赤点が移動したタイミング。こういう速い視線の動きのことをサッカードと呼ぶ。(<-やけに説明が親切) いっぽうで縦方向(2)には眼を動かしていないので変化はほとんど見られない。縦方向(2)のほうがノイジーなのがわかる。それでもばらつきは視野角にして1度くらいか。(真正面から真上までの視野角が90度だから、それの1/90、画面上だと27pixelに相当(測定時の画面からの距離に依存))

データ取得は30fpsなので眼球運動速度を計算するのはキビしいけど、それでもサッカードは検出できてる。マイクロサッカード(~0.5度くらいの小さいサッカード)を検出するのは無理そう。(The Eye Tribeは最大で60fpsで記録できるけど、ここでは安定性のため30fpsにしている。)


さてどうやって記録したかだけど、The Eye Tribe (99ドル)で記録したデータをオープンソフトウェアであるProcessingで表示している。Processingで視覚刺激の提示とThe EyeTribeから入力したデータの表示、記録を行っている。MacBook Air 11inchを使っているけど、Windows, Linuxでも同様な運用は可能。

The Eye Tribeが提供しているサーバプログラムを走らせると、JSON型式でのデータが30fpsで入ってくるので、それを扱えれば基本的にどんなプログラム言語でも処理可能。といいつつわたしはmatlabとpythonしか使えないので手をこまねいていたのだけど、processingでThe Eye Tribeのデータを読み込めるライブラリを作成してくれた人がいた:Processing用のEyeTribeライブラリをやっつけで作った

(ちなみに今ではほかにもProcessing3用のThe Eye TribeライブラリとしてEyeTribeProcessingというものある。こちらを使うとキャリブレーションのプログラムもProcessing上から動かすことが可能。)

このライブラリを使わせてもらって、この映像を作るためのprocessingのプログラムを書いた。ソースはgithubから入手可能なのでご自由に。(元のファイルを作成した方も「動作の保証もクレーム対応もしませんが、もしそれでもよければ使ってみてください」と書いてますので、それに準拠します。)


お勧めエントリ


月別過去ログ