OpenBCIとEyeLogicを使った脳波・視線同期測定入門
OpenBCI集録デバイスとEyeLogic視線入力デバイスを組み合わせることで、脳波とアイトラッキング(視線)データを同時に集録できます。このチュートリアルでは、OpenBCI Cytonボード(16チャンネル)とEyeLogic LogicOne視線入力デバイスを使用し、EEG(脳波)とアイトラッキング(視線)データを同時に測定する方法を解説します。
チュートリアルを開始する前に、以下の各生体信号の測定入門をまだお読みでない方は、まず以下のリンクをご確認いただくことをお勧めします。
目次
必要なもの
ハードウェア
- OpenBCI Cytonボード + Daisyモジュール(このチュートリアルではOpenBCI Cytonボード(16チャンネル)を使用します)
2. EEGヘッドセット(例: Ultracortex Mark IV、EEGキャップ、EEGヘッドバンド等。 このチュートリアルではEEGキャップを使用します)
- ピンヘッダ/タッチプルーフコネクタ変換ケーブル 2個
- イヤークリップ電極 2個
- 電極用ジェル
- EyeLogic視線入力デバイス(このチュートリアルではEyeLogic LogicOne視線入力デバイスを使用します)
ソフトウェア
- OpenBCI GUI
- EyeLogic Server
- EyeLogic LSL client
- Lab Recorder
- XDFファイル用ライブラリ (PythonやMatlabなどが必要)
注意: このチュートリアルでは、LSLストリームを使用してデータを同期集録し、XDFファイルとして保存します。LSLストリームとXDFファイルを読み取るには、PythonやMATLAB用のライブラリを使用する必要があるため、PythonやMATLABのプログラミングスキルが必要です。
視線測定のセットアップ(ハードウェア)
初めて使用する場合はディスプレイ下端の中央に金属プレートを取り付けます。プレートには両面粘着テープがあらかじめ貼り付けられています。透明な保護フィルムを剥がし、モニターの下の枠(フレームk部分)に取り付けてください(※モニター画面自体には取り付けないでください。画面を傷付ける恐れがあります)。
EyeLogic視線入力デバイスを金属プレートに取り付けます。デバイスのセンサー部分(ガラスのような光沢のある部分)をユーザー側に向け、USBケーブルがユーザーから見て右側に来る向きにしてから、デバイス背面のくぼみを金属プレートにはめ込みます。内蔵されている磁石により、デバイスは金属プレートにしっかりと固定されます。

視線測定のセットアップ(ソフトウェア)
EyeLogic社のホームページよりEyeLogic ServerのWindowsインストーラーをダウンロードし、「EyeLogic.msi」を起動してください。管理者権限を要求するメッセージが表示される場合がありますが、「OK」をクリックしてインストールを進めてください。ライセンス条項を確認したうえで同意すると、インストールが開始されます。
インストールが完了すると、スタートメニューまたはデスクトップに「EyeLogic Server」のアイコンが表示されます。アイコンからEyeLogic Serverを起動すると、タスクバーにEyeLogicのトレイアイコンが表示されます。EyeLogic Serverの画面を開く場合は、EyeLogicのトレイアイコンを左クリックしてください。
注意: Windowsの透過効果が有効になっていると、EyeLogic Serverの動作が遅くなる場合があります。その場合は、Windowsの透過効果を無効にしてからEyeLogic Serverをご使用ください。
アイトラッキングを開始するには、EyeLogic Server画面左上の「Tracking」スイッチをONに切り替えます。視線入力デバイスが動作を開始し、センサー部分の赤外線LEDが点灯します。ユーザーがデバイスの前に座ると、EyeLogic Server画面右上の追跡モニターで瞳孔の位置情報を確認できます。

次にアイトラッキングを停止し、「Settings」タブを開きます。ここではディスプレイ(モニターの選択やサイズなど)およびジオメトリ(高さ、奥行き、角度)の設定を確認できます。通常、これらの設定は自動的に調整されます。
続いて「Calibration」タブを開き、希望するキャリブレーション方法(1点、2点、5点、9点)を選択します。追跡モニターを確認しながら、ユーザーの瞳孔が追跡ボックスの中央に位置するよう頭の位置を調整してください。キャリブレーション中は、表示されるターゲットを注視するようユーザーに指示します。「Calibrate」ボタンをクリックすると、キャリブレーションが開始されます。
キャリブレーション結果を確認するには、「Gaze Cursor」スイッチをONにし、カーソルの位置がユーザーの視線位置と一致していることを確認します。カーソルの表示が不安定な場合は、頭の位置や座る位置を調整し、瞳孔が安定してトラッキングされる状態にしてから再度キャリブレーションを行ってください。
これで視線入力デバイスのセットアップは完了です。視線入力デバイスを使用する準備が整いました。
続いて、脳波測定のセットアップを行います。
脳波測定のセットアップ(ハードウェア)
以下の画像のように、Cytonボード(16チャンネル)に付属のY字ケーブルを、CytonボードおよびDaisyモジュールのSRB下段のピンに接続します。

Y字ケーブルにリファレンス用電極を接続します。本製品では、リファレンスの接続方法として2種類の方法があります。1つ目はイヤークリップ電極ケーブルを使用する方法、2つ目はEEGキャップのリファレンス電極を使用する方法です(この場合、REF電極の位置は10-10法のAFzになります)。当社では、脳波測定時にリファレンス電極を確実に接触させるため、イヤークリップ電極ケーブルの使用を推奨しています。
l イヤークリップ電極ケーブルを使用する場合、1つ目のイヤークリップ電極ケーブルを、Y字ケーブルのオス端子に接続します。
l EEGキャップのリファレンス電極を使用する場合、ピンヘッダ/タッチプルーフコネクタ変換ケーブルをY字ケーブルのオス端子に接続します。続いて、変換ケーブルのタッチプルーフコネクタを、「REF」とラベルが貼られたEEGキャップのケーブル端子に接続します(下の画像を参照)。

CytonボードのN1P~N8Pの下段ピンにピンヘッダ/タッチプルーフコネクタ変換ケーブルを接続し、EEGキャップの電極ケーブルに接続します。これらの電極は、OpenBCI GUIのチャンネル1~8に対応します。

同様に、DaisyモジュールのN1P~N8Pの下段ピンにピンヘッダ/タッチプルーフコネクタ変換ケーブルを接続し、EEGキャップの電極ケーブルに接続します。これらの電極は、OpenBCI GUIのチャンネル9~16に対応します。

続いて、CytonボードのBIAS下段のピンにケーブルを接続します。BIASピンは、Cytonボードと身体の間に共通のアースを確立するGNDピンとしての役割を持つと同時に、信号中のノイズを低減する役割も果たします。こちらもリファレンス電極と同様に、2種類の接続方法があります。
l イヤークリップ電極ケーブルを使用する場合、2つ目のイヤークリップ電極ケーブルをCytonボードのBIAS下段のピンに接続します。
l EEGキャップのGND電極を使用する場合、 ピンヘッダ/タッチプルーフコネクタ変換ケーブルをCytonボードのBIAS下段のピンに接続します。続いて、変換ケーブルのタッチプルーフコネクタを、「GND」とラベルが貼られたEEGキャップのケーブル端子に接続します(下の画像を参照)。

以上のようにEEGキャップへすべてのケーブルを接続したら、被験者の頭にキャップを装着します。Cz電極が頭部の正中線上の適切な位置に配置されていることを確認してください。

続いて、イヤークリップ電極ケーブルを使用している場合は、2つのイヤークリップを左右それぞれの耳たぶに取り付けます(EEGキャップのREF電極およびGND電極を使用している場合、この手順は不要です)。
通常の脳波測定では、この時点で付属のシリンジ(注射筒)を使用して電極用ジェルをEEGキャップの各電極に注入し、脳波測定を開始します。本チュートリアルでは、先に脳波測定のためのソフトウェア環境のセットアップを行います。
脳波測定のセットアップ(ソフトウェア)
初めてCyton集録ボードを使用するには、ドライバソフトウェアおよびアプリケーションのダウンロードとインストールが必要です。初めてCyton集録ボードを使用する方は、まずOpenBCI Cytonスタートアップガイドをご覧ください。
OpenBCI GUIが動作する環境の準備ができたら、OpenBCI GUIを起動し、ウィンドウ左上にある「START DATA STREAM」ボタンをクリックしてデータ集録を開始してください。
「Time Series」ウィジェット内の波形チャートで、OpenBCI集録ボードとEEGキャップから取得された脳波を確認できます。ただし、電解ジェルを使用していない状態では脳波に多くのノイズが混入するため、EEGキャップの各電極に電解ジェルを注入し、頭皮と電極の接触状態の改善をおこないます。
注意: OpenBCI GUIの各ウィジェットについては、「OpenBCI GUIウィジェットガイド」をご参照ください。

「STOP DATA STREAM」ボタンをクリックして集録を一旦停止し、ウィジェット選択メニューから「Cyton Signal」を選択します。このウィジェットでは、頭皮と電極の接触状態に伴う 電極の信号品質を確認できます。

Cyton Signalウィジェット右上の「Mode」ドロップダウンメニューが「Impedance」に設定されていることを確認してください。
続いて、各チャンネルの「N Status」をクリックし、数秒待つとインピーダンス値が表示されます。この値が小さいほど、その電極の信号品質が良好であることを示します。
適切なインピーダンス値は使用する電極の種類(ウェット電極、ドライ電極など)によって異なりますが、EEGキャップを使用する場合は、一般的に10~20 kΩ以下となるよう電解ジェルを注入するなどして 頭皮と電極の接触状態の改善を試してください。
注意: 頭皮の状態やEEGキャップの装着状態によっては、インピーダンスが十分に低下しない場合があります。その場合は、可能な範囲でインピーダンスを下げたうえで測定を進めてください。
すべての電極のインピーダンスを確認したら、脳波測定のセットアップは完了です。
Lab Streaming Layer同期ツールのセットアップ
Lab Recorderのセットアップ
それぞれ別のデバイスで集録される脳波データと視線データを同期する方法として、本チュートリアルではLab Streaming Layer(LSL)を利用します。
LSLは、複数のストリーミングデータを同期する際によく使用される通信プロトコルであり、生体信号の同期測定システムを構築するための標準的な手法の一つです。
LSLのAPIを使用してPythonやMATLABからプログラミングを行うことも可能ですが、本チュートリアルではPythonベースで開発されたLab Recorderを使用して、LSLストリームの同期集録を行います。
Lab Recorderを利用するための準備は、以下のとおりです。
l Lab Recorderのリポジトリを Github からダウンロードします。
l Python(バージョン2または3)をダウンロードしてインストールします。すでにコンピュータにインストールされている場合は、Pythonのバージョン(2または3)を確認してください
また、Lab Recorderを使用するには、以下のPythonパッケージが必要です。コマンドプロンプトからpipを使用してインストールしてください
l pylsl(バージョン 1.10.5 以上)
l pyserial(バージョン 3.1.1 以上)
l numpy(バージョン 1.11.1 以上)
l brainflow(バージョン 5.10.0 以上)
すべてのダウンロードおよびインストールが完了したら、GitHubからダウンロードしたLab Recorderのファイルを解凍し、その中に「Lab Recorder.exe」が含まれていることを確認してください。
続いて、「Lab Recorder.exe」を起動し、以下の画像のようなウィンドウが表示されることを確認します。表示を確認したら、ウィンドウを閉じてください。

脳波データと視線データの同期集録
視線データのLSLストリーミング
EyeLogic視線入力デバイスで集録した視線データをLSLでストリーミングするには、まずEyeLogic社のホームページのダウンロードページから、EyeLogic LSL Client(EyeLogic視線入力デバイス用LSLツール)をダウンロードしてください。

LSLツールを使用するには、EyeLogic Serverが起動している必要があります。まず、EyeLogic視線入力デバイスをPCに接続し、EyeLogic Serverを起動してください。
その後、ダウンロードしたEyeLogic LSL Clientを解凍し、EyeLogic_LSLフォルダ内のbinフォルダにある「eyelogiclsl.exe」をダブルクリックします。すると、以下の画像のようにEyeLogic-LSLのウィンドウが表示されます。
注意: 起動したウィンドウに「cannot connect to server – is the server running?」というメッセージが表示された場合は、EyeLogic Serverが正常に起動していることを再度確認してください。

EyeLogic視線入力デバイス用のLSLツールには、いくつかのコマンドが用意されています。これらのコマンドを実行することで、LSLストリームを利用できます。使用可能なコマンドの一覧を表示するには、「help」コマンドを入力してください。

LSLのストリーミングを開始するには、「startstream」コマンドを入力します。その後、以下の画像のように「Tracking mode」で使用するサンプリングレートの入力を求められるため、使用するサンプリングレートの数値を入力してください。これにより、視線入力デバイスのLSLストリームが開始されます。

正確な視線データを取得するためには、キャリブレーションも実施する必要があります。以下の画像のように「calibrate」コマンドを入力し、視線入力デバイスのキャリブレーションを実行してください。「calibration mode」で注視点の数を指定すると、キャリブレーションが開始されます。キャリブレーションが完了すれば、視線入力デバイス側のLSLストリームのセットアップは完了です。

脳波データのLSLストリーミング
OpenBCI集録デバイスの脳波データをストリーミングするには、OpenBCI GUIを使用します。
まず、OpenBCI GUIを起動し、「Networking」ウィジェットを開きます。NetworkingウィジェットでLSLプロトコルを選択するとLSLストリームを3個利用できることが分かります。
例えばLSLストリームを2つ利用する場合、Stream 1の「Data Type」項目では、フィルタ処理済みの時系列EEGデータ「TimeSeriesFilt」を選択し、Stream2では別の「Data Type:」を指定します。 下の画像では Steam2にフィルタ処理を行っていない生の時系列EEGデータ「TimeSeriesRaw」を指定しています。
「Name」項目には、LSLデータストリームの名称を任意で入力してください。続いて、「Type」項目には脳波データの場合「EEG」と入力します。
すべての設定が完了したら、「Start LSL Stream」ボタンをクリックしてください。

続いて、OpenBCI GUI左上の「Start Data Stream」ボタンをクリックすると、データ集録の開始と同時にLSLストリームも開始されます。

Lab Recorderによる同期集録
視線データと脳波データのLSLストリームが開始された状態で、Lab Recorderを起動します。
LSLストリームが正常に動作している場合は、以下の画像のように、Lab Recorderの「Record from Streams」欄に脳波データ(例:obci_eeg1)および視線データ(例:Eyelogic)が表示されます。
「Record from Streams」欄に何も表示されない場合は、「Update」ボタンをクリックしてください。それでも表示されない場合は、各LSLストリームの設定を再度確認してください。

LSLストリームのデータを保存するには、「Record from Streams」欄に表示された各ストリームのチェックボックスを選択し、「Start」ボタンをクリックしてください。
これにより、「Save to...」に表示されている保存先へ、同期データがXDFファイルとして保存されます。
XDF(Extensible Data Format)は、生体信号データの保存形式として広く利用されているファイルフォーマットです。このXDFファイルには脳波や視線の数値データが格納されていますが、残念ながらMicrosoft Excelで直接開くことはできません。
XDFファイルを読み込むためのツールやライブラリはいくつか存在しますが、以下のXDFライブラリを利用することで、PythonやMATLABからXDFファイルを読み込むことができます。
l SCCN XDF Library: https://github.com/sccn/xdf
各LSLストリームには、データとともにタイムスタンプが記録されています。このタイムスタンプを基にリサンプリングやアライメントを行うことで、複数のストリームデータを同一の時系列上で解析・表示することができます。
以下の画像は、PythonとLabVIEWを使用して、視線データと脳波データのLSLストリームを単一のグラフ上に表示した例です。
