バーチャルリアリティ学 第3章 学習メモ

本記事は、私が [VR 技術者認定試験](https://vrsj.org/events/seminar/) に向けて [バーチャルリアリティ学](https://www.amazon.co.jp/dp/4904490053) を学習するために作成したメモです。
解説を目的とはしておりませんので、書籍を読んでいないとよくわからない点も多々あるかと思います。なにとぞご了承ください。

##### バーチャルリアリティ学 学習メモシリーズ
- [バーチャルリアリティ学 第1章 学習メモ](https://qiita.com/segur/items/ae75540f48d88d82d912)
- [バーチャルリアリティ学 第2章 学習メモ](https://qiita.com/segur/items/310e9e5323491a3c4178)
- バーチャルリアリティ学 第3章 学習メモ ← 本記事
- [バーチャルリアリティ学 第4章 学習メモ](https://qiita.com/segur/items/abd328efcabd230b452a)

# 3.1 バーチャルリアリティ・インターフェースの体系

# 3.2 入力インターフェース

## 3.2.1 物理的特性の計測

```mermaid
flowchart LR
    モーションキャプチャー[モーション\nキャプチャー]
    subgraph 計測対象
        角度
        運動
        位置
    end
    subgraph 計測デバイス
        ゴニオメーター
        ジャイロスコープ
        加速度センサー
        超音波センサー
        磁気センサー
        カメラ
    end

    モーションキャプチャー --- 角度
    モーションキャプチャー --- 運動
    モーションキャプチャー --- 位置
    
    角度 --- ゴニオメーター
    角度 --- ジャイロスコープ

    運動 --- 加速度センサー

    位置 --- 超音波センサー
    位置 --- 磁気センサー
    位置 --- カメラ

    カメラ --- マーカー有
    カメラ --- マーカー無

    マーカー有 --- パッシブ型
    マーカー有 --- アクティブ型
```

### ゴニオメーター式モーションキャプチャー

`ゴニオメーター式モーションキャプチャー` は、人体にフレームを装着し、関節の角度を計測する手法。
フレームの装着が難しく、人体の動きを制約してしまうデメリットがある。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/d8d13ca1-c7bc-4900-5a8f-079a3b56fd0f.png)

※引用: [ResearchGate / Passive electro-goniometer](https://www.researchgate.net/figure/Passive-3-and-powered-4-electro-goniometer-V-A-D-Cai-and-V-L-Nguyen-is-with-the_fig1_269334438)

#### ゴニオメーター

`ゴニオメーター` とは、角度計の一種。分度器と定規を組み合わせたような構造をしている。

<img width="400" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/0dd5d7a0-f266-f66f-2527-7052a4bcb777.png" />

※引用: [Wikipedia / Goniometer](https://en.wikipedia.org/wiki/Goniometer)

### ジャイロスコープ式モーションキャプチャー

`ジャイロスコープ式モーションキャプチャー` は、ジャイロスコープを人体の関節部に設置し、関節の角度を計測する手法。
人体モデルを利用する。
小型でフレームが不要なので、ゴニオメーター式よりは装着が楽。
角速度の積分で角度を算出するため、誤差が蓄積しやすい。

#### ジャイロスコープ

`ジャイロスコープ` は、物体の角速度を検出する計測器の一種。

![Gyroscope_operation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/7f310628-8fbf-ac5d-8ab1-87165da12305.gif)

※引用: [Wikipedia / ジャイロスコープ](https://ja.wikipedia.org/wiki/%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AD%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97)

### 加速度センサー式モーションキャプチャー

`加速度センサー式モーションキャプチャー` は、加速度センサーから得られた `加速度` を積分することで、速度や移動距離を算出し、姿勢情報を導く手法。
カメラの死角のような `隠れ` の問題がないというメリットがある。
ジャイロスコープと同様に、誤差が蓄積しやすいデメリットがある。
他のセンサーと組み合わせて精度を補償する構成が多い。

#### 加速度センサー

加速度センサーには以下のような手法がある。

- 加速度による板バネの変形を計測する手法
- 加速度による光ファイバーの張力変化を計測する手法
- 加速度による静電容量変化を計測する手法

<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/4af19c18-5f02-1a15-0a40-a65cfee24cc4.png" />

※引用: [意外とシンプル？加速度センサの仕組みをざっくりと図解してみる](https://www.yukisako.xyz/entry/acceleration_sensor)

### 超音波センサー式モーションキャプチャー

`超音波センサー式モーションキャプチャー` は、人体に複数の超音波発信器を装着し、周囲に複数の超音波受信器を設置する手法。
人体（発信器）と受信器の距離を計測し、 `人体モデル` を使って関節の角度へ変換する。
カメラの死角のような `隠れ` の問題がある。

#### 超音波センサー

`超音波センサー` は、発信器から超音波を発射し、受信器に到達した時間を計測し、距離を算出する計測器。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/adbec6b8-765e-6acd-26b2-d17e4d8e9401.png)

※引用: [超音波センサとは](https://www.marutsu.co.jp/sv/murata_lp/appli/ultrasonic/)

### 磁気式モーションキャプチャー

`磁気式モーションキャプチャー` は、X・Y・Z 軸に対応した `交流磁場` を作る手法。
エリア内を移動するコイルに発生する `誘電起電力` を計測し、位置・角度に変換する。
建物の鉄骨等、周囲の `金属` の影響を受けるため、スペースの確保が必要。

### 光学式モーションキャプチャー

`光学式モーションキャプチャー` は、大量のカメラで取り囲む。
`隠れ` の問題がある。



### 表情

`表情` は、コミュニケーションに重要な `感性` 情報を含んでいる。
（`言語情報` は含んでいないので、注意が必要。）

### 視線

`視線` 計測には、以下のような手法があるが、いずれも被験者への負担が大きいため、負担を減らすことも重要。

#### 強膜反射法

`強膜反射法` は、目に弱い赤外線を当て、角膜（黒目）と強膜（白目）の反射率の違いにより目の動きを検出する。

#### 角膜反射法

`角膜反射法` は、目に弱い赤外線を当て、反射した光（プルキニエ像）と瞳孔の位置関係から視線を計測する手法。
角膜の曲率中心と眼球の回転中心が異なることを利用している。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/5df31ca2-05eb-2699-0f94-de4d890f0047.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/0931aa43-10c3-9b9e-a0c5-91c67947899f.png)

引用: [目は口ほどに物を言う。「アイトラッキングの原理とアウトプット例」](https://techblog.nhn-techorus.com/archives/3435)

（HTC VIVE Pro のアイトラッキングは角膜反射法を採用しているらしい。）

#### サーチコイル法

`サーチコイル法` は、コイルを埋め込んだコンタクトレンズを目に装着する手法。
コイルの位置を計測する。

#### EOG 法 : Electrooculography（電気眼球図記録、眼電図）

`EOG 法` は、目の周りに電極を貼り、電位差を測定する手法。
角膜側と網膜側の間に電位差がある性質を利用している。
目を閉じても検出できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/1c98dffe-4b1a-9cea-84a8-e251a849949d.png)

引用: [視線入力ってなに？](http://www.se.uec.ac.jp/lab/ita-lab/team_EyeGaze/)

#### サッカード

`サッカード` とは、眼球の高速な回転のこと。

## 3.2.2 生理的特性の計測

### 心電図 ( `ECG`: Electrocardiogram)

`心電図` からは `心拍数` を求められる。
`心拍数` から `運動強度` を求められる。

### 筋電図 ( `EMG`: Electromyogram)

`筋電図` は、筋肉の電気的な活動を計測したもの。

#### 表面筋電図 （ surface EMG ）

`表面筋電図` は、皮膚上に電極を貼り付け、筋肉全体の活動を計測するもの。
ノイズを影響を軽減するために、信号を `差動増幅` する。

##### 差動増幅
`差動増幅` とは、2 つの入力信号の差分を、一定係数で増幅すること。

### 脳磁図 （ `MEG` : Magnetoencephalography）

`脳磁図` は、脳の神経活動によって生じる微小な磁場を計測する。
空間分解能は数 cm 程度。時間分解能は ms 単位。

### 機能的核磁気共鳴画像法 （ `fMRI` : functional Magnetic Resonance Imaging）

`機能的核磁気共鳴画像法` は、BOLD 信号を計測する。
空間分解能は数 mm 程度。時間分解能は数十～数百 ms 単位。

#### BOLD信号

`BOLD信号` とは、脳の神経活動によって現れる血流量の増加に伴って、脳の局所の酸素濃度が変化した時の信号。

### 近赤外分光法 （ `NIRS` : Near-infrared spectroscopy）

`近赤外分光法` は、BOLD 信号を計測する。
空間分解能は数 cm 程度。時間分解能は数十 ms 単位。
fMRIと違って、深部の脳活動の計測はできない。
被験者の姿勢の自由度が、fMRIよりも高い。

### ポジトロン断層法 （ `PET` : Positron Emission Tomography）

`ポジトロン断層法` は、 `トレーサー` を投与し、代謝量や血流量を計測する。
空間分解能は数 cm 程度。時間分解能は数 s 単位。

## 3.2.3 心理的特性の計測

### 侵襲計測

`侵襲計測` とは、脳に針電極等を刺し、神経の電気活動を記録するもの。
ごく一部のニューロン活動だけを選択的に計測できる。

### 非侵襲計測

`非侵襲計測` とは、脳表面に電極を置き、脳に直接ダメージを加えない計測方法のこと。
頭蓋骨等を通して神経活動を計測するため、空間分解能が低い。

### ミュー波

`ミュー波` は、脳はを使ったBMIにおいて、運動に関連した信号が検出できる。
カーソルを動かす方法が提案されている。

# 3.3 出力インターフェース

## 3.3.1 視覚ディスプレイ

`視覚ディスプレイ` は、 `奥行き` `広がり` `個々の物体の色や形、材質感` などを映像として与える。
`周辺視野` を含めた `広い領域` への映像の提示によって、空間への `没入感` が高まる。

### 頭部搭載型プロジェクター（ `HMP` : Head Mounted Projector）

`頭部搭載型プロジェクター` は、 `ピンホール` による絞り付きプロジェクターを、眼球と `共役` な位置にハーフミラーとともに配置する。
`再帰性反射機能` を備えたスクリーンへ投影する。
映像同士の `クロストーク` が発生しない。
`ピンホール` によって光量を絞っているため、手の上に映った像は見えない。
手前の物体との `遮蔽関係` を自然に見せることができる。（画像認識不要）

#### ピンホール

`ピンホール` とは、針穴のこと。
光量を絞ることができる。
レンズのように集光によって像を作るわけではないため、奥行きによらずどこでもピントが合う。

#### 共役（きょうやく）

`共役` とは、互いに入れ替えてもその関係に変化のないこと。
たとえば、レンズにおける物点と像点が共役。

#### 再帰性反射

`再帰性反射` とは、光源の方向へ光を反射すること。

<img width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/9c1f9a92-64fb-48b8-8c5d-dd87ee9027c4.png" />

※引用: [CCS / 第 4 回 再帰（再帰性）反射](https://www.ccs-inc.co.jp/guide/column/light_color_part2/vol04.html)

- 例: 交通標識は再帰性反射材を利用している。夜に光を当てると、とても明るく見える。

#### クロストーク

`クロストーク` とは、混線のこと。
シャッター式メガネを利用した 2 眼式立体視の場合、左右の映像が一瞬だけ同時に表示されてしまう現象を `クロストーク` と呼ぶ。

## 3.3.2 聴覚ディスプレイ

### 立体角分割法

`立体角分割法` は、空間のさまざまな方向にスピーカーを配置し、ある方向からの音波は当該方向のスピーカーにより再生する方法。

### 音像定位伝達関数合成法

`音像定位伝達関数合成法` は、音源から両耳までのすべての物理現象を伝達関数ととらえる、デジタルフィルターによって合成する方法。

頭部運動を計測し、伝達関数を適切に切り替えれば、 `前後誤り` や `頭内定位` が大幅に改善される。

#### バイノーラル再生

`バイノーラル再生` とは、ヘッドホン・イヤホンによる両耳型提示のこと。

```mermaid
flowchart LR
    音源
    処理[反射\n吸収\nHRTF\n等処理]
    subgraph 聴取者
        右耳
        左耳
    end

    音源 --> 処理
    処理 --> 右耳
    処理 --> 左耳
```

#### トランスオーラル再生

`トランスオーラル再生` とは、室内に設置した複数のスピーカーによる提示のこと。

```mermaid
flowchart LR
    音源
    処理[反射\n吸収\nHRTF\n等処理]
    subgraph 聴取者
        右耳
        左耳
    end
    クロストーク処理
    スピーカー1
    スピーカー2

    音源 --> 処理 --> クロストーク処理
    クロストーク処理 --> スピーカー1
    クロストーク処理 --> スピーカー2

    スピーカー1 -->|S1R| 右耳
    スピーカー1 -->|S1L| 左耳

    スピーカー2 -->|S2R| 右耳
    スピーカー2 -->|S2L| 左耳
```

#### 室伝達関数

`室伝達関数` とは、聴取位置や音源位置までの室内の反射や回析等を反映した伝達関数。

#### 頭部伝達関数

`頭部伝達関数` とは、頭部近傍での音現象を表現した伝達関数。
個人ごとに調整が必要。

#### 頭内定位

`頭内定位` とは、頭の中で音が鳴っているように感じること。
不快に感じる人もいる。

## 3.3.3 前庭感覚ディスプレイ

前庭感覚器官は、身体の移動・傾斜を、 `加速度` として感知する。
（`速度` ではない。）

任意の加速度を任意の時間提示するためには、以下が必要になる。

- 外力を持続的に加えるアクチュエーター
- 身体移動のための広大な空間

### 合成加速度

```mermaid
flowchart LR
    subgraph 合成加速度
        過度的成分
        定常的成分
    end
    アクチュエーター -.-> 過度的成分
    身体を傾けて重力の分力成分を利用 -.-> 定常的成分
```

### ウォッシュアウト

`ウォッシュアウト` とは、アクチュエーターの動作限界を超えないように徐々に減速すること。

### ウォッシュバック

`ウォッシュバック` とは、ユーザーに悟られないギリギリの加速度で、アクチュエーターがホームポジションに戻る動作のこと。

## 3.3.4 味覚ディスプレイ

`味覚ディスプレイ` には、以下の2つが必要。

- 味を合成する仕組み
- 舌と味物質との接触を作り出す仕組み

5つの基本味を組み合わせることで、ある程度の種類の味を合成することができる。

ストローを介して味物質を口に運ぶ手法が提案されている。

口の中に入れて使うディスプレイなので、衛生管理は必須。

## 3.3.5 嗅覚ディスプレイ

`嗅覚ディスプレイ` には、以下の2つが必要。

- 匂い物質を気化させ、鼻に届ける仕組み
- 届けた匂い物質を排気する仕組み

以下のような手法がある。

- 例: 鼻の前にチューブを配置し、匂い物質の拡散・排気をする方法
- 例: 空気砲の原理を使って、匂い物質を遠くから鼻に当てる方法

## 3.3.6 体性感覚ディスプレイ

`体性感覚ディスプレイ`は、物体に触った時の `表面の感触` `硬さ` `重さ` 等を提示する。
`物理刺激` が不可欠。

### バーチャル物体をつかむ感覚の生成

- 指先に `反力` を作用
- 指先に `皮膚感覚受容器` を刺激
- 指・手・腕に `深部感覚受容器` を刺激

### 振動子

`振動子` は、おもりがついたモーダー等のアレイによって構成される。
腕や背中等、2 点弁別閾が大きい場所で使う。

### 空気圧アレイ

`空気圧アレイ` は、皮膚を圧迫ではなく吸引によっても圧感提示ができる。
これは、皮膚の圧感が、応力の向きではなくひずみの大きさに比例する性質を利用している。
ノズルの直径によって、選択的に皮膚感覚受容器を刺激することが可能。

### 装着型ディスプレイ

`装着型ディスプレイ` は、人体に多関節マニピュレーターを装着する。
装着に時間がかかったり、骨格に応じた調整が必要。

### 把持型ディスプレイ

`把持型ディスプレイ` は、ペンやボールを握るように使う。
把持は `はじ` と読む。
多くても6自由度のマニピュレーターで済む。

### 対象型ディスプレイ

`対象型ディスプレイ` は、バーチャルな物体を実世界にそのまま出現させる。
点ではなく、VR物体と人体との `面` での接触を表現できる。

主に以下の2種類ある。

- アクチュエータアレイ方式
- 遭遇型

## 3.3.7 他の感覚との複合

複数の感覚ディスプレイを組み合わせることで、VR環境への没入感を増すことができる。

ディスプレイの組み合わせを増やせば、 `本物らしさ` が向上することがわかっている。
しかし、空間的時間的な整合性が取れている必要がある。

- 整合性がうまく取れていると、 `相乗効果` が現れる。
- 整合性がうまく取れていないと、違和感に繋がる。
    - ひどい場合は、 `VR酔い` が発生する。

### 歩行感覚提示装置

歩行動作に応じて地面からの反力等の前庭感覚を提示し、そこに視覚ディスプレイと組み合わせると、 `空間を歩いている感覚` が増す。

## 3.3.8 神経系への直接刺激

電気信号を神経系に与える手法として、以下の 2 つがある。

- 手術で電極を神経に接続し直接刺激する方法
- 皮膚の上に電極を貼り付けて皮下の神経を刺激する方法

### 手術で電極を神経に接続し直接刺激する方法

手術で電極を神経に接続し直接刺激する方法は、 `半永久的` に使用できる。
ただし、使用者への負担が大きい。
具体的には `人工内耳` がある。

#### 人工内耳（じんこうないじ）

`人工内耳` とは、蝸牛に電極を接触させ、聴覚を補助する器具のこと。
音と電気刺激のマッピングを個人ごとチューニングする必要がある。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221845/d38e97fa-69bb-c6e9-e4e2-3c0e0c62db9d.png)

※引用: [Wikipedia / 人工内耳](https://ja.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E5%86%85%E8%80%B3)

### 皮膚の上に電極を貼り付けて皮下の神経を刺激する方法

皮膚の上に電極を貼り付けて皮下の神経を刺激する方法は、電極の大きさと刺激強度にトレードオフがある。

- 電極を小さくすれば、狙った神経だけ刺激しやすい。
- 電極を大きくすれば、大きな電力で深い場所を刺激しやすい。

# 3.4 入力と出力のループ

入力インターフェースが検出した情報を、シミュレーションシステムへ渡し、生成した情報を、出力インターフェースが人間の感覚器官へ提供する。
という `ループ` を `リアルタイム` で回す必要がある。

### アップデート・レート

`アップデート・レート` とは、入力インターフェースと出力インターフェースの更新周波数のこと。

- 例: 10Hz以上で更新される画像を、人は動画として認識するので、レンダリングは1/10秒以内に実施する必要がある。
- 例: 深部感覚の更新速度は1000Hz以上が望ましいため、1/1000秒以内に深部感覚をレンダリングしなければならない。

### ディレイ

`ディレイ` とは、入力から出力までにかかる遅延時間のこと。

人間の反応時間は0.2秒だと知られているので、その時間内にバーチャル世界を更新する必要がある。

# さいごに

本記事作成にあたり以下を参考にさせていただきました。ありがとうございました！

- [VR 技術者認定講習会・試験](https://vrsj.org/events/seminar/)