今回の作品では、鉄道ユーザのスマートフォンを利用して、ユーザの乗車した列車の特定を目的とします。また、アプリケーションのアイデアの概要も最後に記述させて頂きます。
首都圏の地下鉄駅を調査した所、2 路線以上ある大部分の駅では路線が階ごとに分かれている事が分かりました。例として、図 1 に 1 駅 2 路線の場合の分類を示します。今回の場
合では、プラットフォームが全て地下にある駅を地下鉄駅として数えています。また、仲御徒町駅、上野広小路駅のように同じ施設内で繋がっている駅は除いています。

路線 1路線 2

図 1 1 駅 2 路線の駅の分類
図 1 に示すように、1 駅 2 路線の地下鉄駅は 21 駅あり、異なる階に路線がある駅が 18 駅、同じ階に路線がある駅が 3 駅あります。異なる階では路線が階によって完全に分かれている駅と同じ路線でも上下線によって階が分かれているものがあります。具体的な駅を以下に挙げます。
・異なる階に 2 路線
⇒蔵前駅、清澄白河駅、月島駅、三田駅、巣鴨駅、八丁堀駅、中野坂上駅、麻布十番駅、本郷三丁目駅、森下駅、門前仲町駅、東銀座駅、大門駅、茅場町駅、住吉駅、東新宿駅、六本木駅、新御徒町駅
・同じ階に 2 路線
⇒白金台駅、白金高輪駅、御茶ノ水駅

今回は路線が階ごとに分かれている地下鉄駅に着目しますが、以降に記述する【上下線推定】の方法を用いることで同一階に複数路線がある場合でも正しくユーザの乗車した列車の特定が行なえると考えます。今回提案する手法では主に以下の流れでユーザの乗車した列車を特定します。
①利用駅推定②利用路線推定③上下線推定【利用駅推定】利用駅推定では、地下鉄駅の入り口が地上にある事を利用します。地上では GPS を正確に使用することができるため、GPS の精度が落ち現在位置を取得できなくなる直前にいた場所に最も近い駅を利用駅とします。
【利用路線推定】
前述の通り、路線は階ごとに分かれているため、ユーザが列車に乗車したと判定される直前にいた階を推定することで利用路線を推定することが可能です。以下に、利用路線推定（階推定）について記述します。
・利用路線推定（階推定）
利用路線推定は階推定から行ないます。階推定は階段、エスカレータ、エレベータの特徴を用いて行ないます。駅利用時には、歩行、静止、階段降下、エスカレータ利用、エレベータ利用の主に 5 つの行動が想定されますが、これらの状態の区別については後述します。
a）階段
階段降下状態では鉛直方向の加速度に閾値を設けることで降りた階段の段数を推定することができます。図 2 に階段降下時の加速度のグラフを示します。

図 2 階段降下時の加速度のグラフ

図 2 は 11 段の階段を降りた時の加速度のグラフであり、図 2 より降りた階段の段数が正しく推定されてることが分かります。ここで、この手法の評価として実際の駅の階段を降りた際の鉛直方向の加速度の時系列データを計測し、段数推定を行ないました。評価は東京メトロ茅場町駅で行ないました。評価を行なった階段を図 3 に示します。また、各階段の実測段数を表 1 に、評価結果を表 2～表 7 に示します。

★

図 3 茅場町駅において評価を行なった階段
表 1 各階段の実測段数
階段

実測段数

階段①41 段

階段②

46 段

階段③

43 段

階段④38 段

階段⑤40 段

階段⑥45 段

表 2 階段①の評価結果
推定段数

実測段数との差

1 回目

44 段+3 段

2 回目

43 段+2 段

3 回目

43 段+2 段

4 回目

41 段

±0 段

5 回目

44 段+3 段

表 3 階段②の評価結果
推定段数

実測段数との差

1 回目

46 段

±0 段

2 回目

48 段+2 段

3 回目

46 段

±0 段

4 回目

48 段+2 段

5 回目

46 段

±0 段

表 4 階段③の評価結果
推定段数

実測段数との差

1 回目

45 段+2 段

2 回目

46 段+3 段

3 回目45 段+2 段

4 回目

46 段+3 段

5 回目

46 段+3 段

表 5 階段④の評価結果
推定段数

実測段数との差

1 回目

40 段+2 段

2 回目

40 段+2 段

3 回目

38 段

±0 段

4 回目

40 段+2 段

5 回目

39 段+1 段

表 6 階段⑤の評価結果
推定段数

実測段数との差

1 回目

40 段

±0 段

2 回目

42 段+2 段

3 回目

42 段+2 段

4 回目

41 段+1 段

5 回目

42 段+2 段

表 7 階段⑥の評価結果
推定段数

実測段数との差

1 回目

46 段+1 段

2 回目

45 段

±0 段

3 回目

45 段

±0 段

4 回目

44 段

-1 段

5 回目

44 段

-1 段

表 2～表 7 より実測段数との差は 3 段が最大であり、段数による階推定にこの手法が利用可能であると考えます。降りた階段の段数を用いた階推定の方法をつくばエクスプレス線
新御徒町駅を例に取り、以下に記述します。例として用いる階段（①、②）を図 4 に示します。また、各階段の実測段数を表 8 に示します。

①②

図 4 新御徒町駅で例として用いる階段

表 8 新御徒町駅の各階段の実測段数
階段実測段数階段①（B1F⇒B3F）

85 段

階段②（B3F⇒B4F）

33 段

階段降下状態における鉛直方向の加速度から推定された階段の段数を N 段とします。階段降下時における降りた段数推定は、列車に乗車したと判定されるまで計測された鉛直方向の加速度の時系列データを用いて最終的な段数から階推定を行ないます。列車に乗車したと判定する方法は後述します。
①|𝑁 − 0| < |𝑁 − 33| かつ |𝑁 − 0| < |𝑁 − 85| かつ |𝑁 − 0| < |𝑁 − 118|
⇒階段を利用していない②|𝑁 − 33| < |𝑁 − 0| かつ |𝑁 − 33| < |𝑁 − 85| かつ |𝑁 − 33| < |𝑁 − 118|
⇒階段によって 1 階降りた③|𝑁 − 85| < |𝑁 − 0| かつ |𝑁 − 85| < |𝑁 − 33| かつ |𝑁 − 85| < |𝑁 − 118|
⇒階段によって 2 階降りた④|𝑁 − 118| < |𝑁 − 0| かつ |𝑁 − 118| < |𝑁 − 33| かつ |𝑁 − 118| < |𝑁 − 85|⇒階段によって 3 階降りた
上記の様に、推定された階段の段数と階段を利用していない段数（0 段）、1 階分降りた段数（33 段）、2 階分降りた段数（85 段）、3 階分降りた段数（118 段）の絶対値の差を取り、最も値が小さいものを採用し、階段によって降りた階数を推定します。

b）エスカレータ
前提としてエスカレータ乗車時は歩行をしないものとします。図 4 の階段①、②には下りエスカレータもついています。図 4 の①、②の階段横にあるエスカレータをエスカレー
タ①、エスカレータ②とします。エスカレータの実測乗車時間を表 9 に示します。
表 9 エスカレータの実測乗車時間
エスカレータ

乗車時間 [s]エスカレータ①（B1F⇒B3F）

60.96

エスカレータ②（B3F⇒B4F）

26.39

表 9 より乗車秒数から降りた階数を推定することが可能です。以下に乗車秒数を用いた階推定の方法を記述します。
推定されたエスカレータ乗車時間を T [s]とします。
①|𝑇 − 0| < |𝑇 − 26| かつ |𝑇 − 0| < |𝑇 − 61|⇒エスカレータを利用していない②|𝑇 − 26| < |𝑇 − 0| かつ |𝑇 − 26| < |𝑇 − 61|⇒B3F⇒B4F でエスカレータを利用③|𝑇 − 61| < |𝑇 − 0| かつ |𝑇 − 61| < |𝑇 − 26|⇒B1F⇒B3F でエスカレータを利用
上記の様に、推定されたエスカレータの乗車秒数とエスカレータを利用していない秒数（0 秒）、1 階分降りた秒数（26 秒）、2 階分降りた秒数（61 秒）の絶対値の差を取り、最も値が小さいものを採用し、エスカレータによって降りた階数を推定します。

c）エレベータ
エレベータにおいてもエスカレータ同様、基本的にはエレベータに乗車している秒数から階推定を行ないます。しかし、エレベータでは乗客の乗降により乗車時間が一定でないことや 2 階分以上の移動では各階で止まるか否かで乗車時間が異なるという問題があります。ここで、図 3★のエレベータ乗車時の鉛直方向の加速度のグラフを図 5 に示します。

図 5 エレベータ乗車時の鉛直方向の加速度

図 5 よりエレベータ発車時と停車時の鉛直方向の加速度の時系列データには特徴があることが分かります。そのため、エレベータの発車時と停車時の鉛直方向の加速度のデータベースを用意し、照合することで乗降時間等に影響されないエレベータの乗車時間を推定することができると考えます。今回、データベースとの照合には正規化相互相関関数を用います。相互相関関数は 2 つの時系列のデータの類似性を時間のずれに関係なく判定することができます。図 6 に相互相関関数の概要図を示します。

時系列データ 1

時系列データ 2

図 6 相互相関関数の概要図
図 6 より、時系列データを 1 つずつずらしていき、各々の場合について相関係数を導出します。それらの集まりが相互相関関数となり、特に正規化されているものを正規化相互相関関数と呼びます。図 7 にエレベータの実測加速度とデータベースとの照合方法について示します。

41 s

図 7 エレベータの実測加速度とデータベースとの照合方法
図 7 のように実測のエレベータの鉛直方向の加速度の時系列データとデータベース間で正規化相互相関を行ない、相関係数に閾値を設けてることでエレベータの終始時刻を推定します。推定時刻からエレベータの乗車時間推定を行なうことで乗降時間等に影響を受けないエレベータ乗車時間推定が可能になります。例として、図 8 にエレベータ乗車時の実測鉛直方向加速度とデータベースの正規化相互相関関数を示します。

図 8 エレベータ乗車時の実測鉛直方向加速度とデータベースの正規化相互相関関数

図 8 における加速度のデータベースはエレベータ発車時のものとしています。エレベータ発車時と停止時の加速度の方向は逆であるため、停止時では負の相関を持つことが図 8 から分かります。今回の場合、相関係数の絶対値で閾値を設ける事でエレベータの終始時刻を推定することができます。また、図 8 の横軸はいくつデータをずらしたのかを示すシフト数であり、データは 100 ms 毎に計測しています。そのため、図 8 より、相関係数の絶対値が 0.6 を閾値とした場合、2000 ms ずらしたときと 43000 ms ずらしたときで相関係数が閾値を越える事からエレベータ乗車時間は 41000 ms、つまり 41 秒であることが推定できます。また、図 7 より正しく推定が行なえていることも分かります。ここで、図 3★のエレベータでは B1F⇒B3F の移動しかしないため、説明のために図 4③のエレベータの実測乗車時間を表 10 に示します。
表 10 エレベータの実測乗車時間
エレベータ

実測乗車時間 [s]エレベータ③（B1F⇒B3F）

21.14

エレベータ③（B3F⇒B4F）

9.21

エレベータ③（B1F⇒B4F）

30.35

表 10 よりエスカレータの場合同様、乗車秒数から降りた階数を推定することが可能です。
以下に乗車秒数を用いた階推定の方法を記述します。
推定されたエスカレータ乗車時間を T [s]とします。
①|𝑇 − 0| < |𝑇 − 21| かつ |𝑇 − 0| < |𝑇 − 9|かつ |𝑇 − 0| < |𝑁 − 30|⇒エレベータを利用していない②|𝑇 − 21| < |𝑇 − 0| かつ |𝑇 − 21| < |𝑇 − 9|かつ |𝑇 − 21| < |𝑁 − 30|⇒B1F⇒B3F でエレベータを利用③|𝑇 − 9| < |𝑇 − 0| かつ |𝑇 − 9| < |𝑇 − 21|かつ |𝑇 − 9| < |𝑁 − 30|⇒B3F⇒B4F でエレベータを利用④|𝑇 − 30| < |𝑇 − 0| かつ |𝑇 − 30| < |𝑇 − 21|かつ |𝑇 − 30| < |𝑁 − 9|
⇒B1F⇒B4F でエレベータを利用上記の様に、推定されたエレベータの乗車秒数とエレベータを利用していない秒数（0秒）、1 階分降りた秒数（9 秒）、2 階分降りた秒数（21 秒）、3 階分降りた秒数（30 秒）
絶対値の差を取り、最も値が小さいものを採用し、エレベータによって降りた階数を推定します。
この様に、a）、b）、c）を組み合わせることで列車に乗車する直前にいた階を推定し、利用路線を推定することができます。
【上下線推定】上下線推定ではユーザのスマートフォンのマイクロフォンセンサを用います。列車に乗車したと判定した後、車内音を 30 秒間計測し、各区間のデータベースとの相関をとることで推定します。相関として用いるのはエレベータ同様、正規化相互相関関数を用います。この手法の評価として、東京メトロ日比谷線の南千住駅、三ノ輪駅、入谷駅、上野駅で評価を行ないました（図 9）。各駅の評価結果を表 11~14 に示します。

図 9 上下線推定方法の評価駅
表 11 南千住駅における上下線推定結果
南三 1
南三 1

南三 2

南北 1

南北 2

0.25220.03200.02470.02730.0385南三 20.2522

南北 10.032000273

南北 20.02470.0385※南三：南千住駅⇒三ノ輪駅
南北：南千住駅⇒北千住駅（以降同様）

0.32370.3237

表 12 三ノ輪駅における上下線推定結果
三入 1
三入 1

三入 2

三南 1

三南 2

0.27020.01880.01760.02490.0306三入 2

0.2702三南 10.01880.0249三南 20.01760.0306

0.31850.3185

表 13 入谷駅における上下線推定結果
入上 1
入上 1

入上 2

入三 1

入三 2

0.20270.01450.01800.01870.0351入上 20.2027

入三 1

0.01450.0187入三 2

0.01800.03510.3342
0.3342

表 14 上野駅における上下線推定結果
上仲 1
上仲 1

上仲 2

上入 1

上入 2

0.40790.02120.01760.0243

0.0236上仲 20.4079

上入 10.02120.0243

上入 20.0176

0.0236

0.29480.2948

表 11～表 14 では最も高い相関係数を記載しており、各表から正しく上下線の推定が行なえていることが分かります。また、今回は試していませんが、車内音の周波数帯からアナウンス音とそれ以外の音を抜き出し、各々について相関をとることでより相関係数が大きくなること等も考えられます。

【状態区別】
上記の通り、利用駅推定、利用路線推定、上下線推定については正しく行うことができました。しかし、上記の手法を行なうためには現在の自分の状態がどの状態に当てはまっているのか分かっていることが前提となります。ここでは、駅利用時の各状態の区別の方法について記載します。各状態の区別のために、2 つの時系列データの類似度を計算する DTW（Dynamic Time Warping）を用います。以下に DTW の説明を記します。
①パターンの長さが同じとき（図 10）
時系列データの N 番目同士の距離を DTW 距離と定義します。
Ex1）パターン 1 = [𝑥1 𝑥2 𝑥3 ]パターン 2 = [𝑦1 𝑦2 𝑦3] とすると、
𝑑𝑖𝑠𝑡=√(𝑥1 − 𝑦1 )2 + (𝑥2 − 𝑦2 )2 + (𝑥3 − 𝑦3 )2

図 10 パターン長が同じときの DTW 距離②パターンの長さが異なるとき
各対応パターンで DTW 距離を算出し、最小の DTW 距離を DTW 距離として定義します。
Ex2）パターン 1 = [𝑥1 𝑥2]
パターン 2 = [𝑦1 𝑦2 𝑦3] とすると、
a）𝑥1 が𝑦1 𝑦2と対応する場合（図 11）
パターン 1’ = [𝑥1 𝑥1 𝑥2]
パターン 2 = [𝑦1 𝑦2 𝑦3]
𝑑𝑖𝑠𝑡1=√(𝑥1 − 𝑦1 )2 + (𝑥1 − 𝑦2 )2 + (𝑥2 − 𝑦3 )2

図 11 パターン長が異なるときの DTW 距離（a）

b）𝑥2 が𝑦2 𝑦3と対応する場合（図 12）パターン 1’’ = [𝑥1 𝑥2 𝑥2]
パターン 2 = [𝑦1 𝑦2 𝑦3]
𝑑𝑖𝑠𝑡2=√(𝑥1 − 𝑦1 )2 + (𝑥2 − 𝑦2 )2 + (𝑥2 − 𝑦3 )2

図 12 パターン長が異なるときの DTW 距離（b）a）、b）において𝑑𝑖𝑠𝑡1と𝑑𝑖𝑠𝑡2のうち距離が小さいものが DTW 距離となります。DTW 距離が小さい程、類似度が高くなります。DTW 距離を用いた状態の区別方法を図 13 に示します。結論から述べると、鉛直方向の加速度の時系列データにおいて DTW を適用することで階段降下状態、歩行状態、静止状態を区別することができます。また、静止状態のときには磁力の大きさに DTW を適用することでエスカレータ、エレベータ、静止状態を区別することができます。

図 13

DTW 距離を用いた状態の区別方法

まず、階段降下状態、歩行状態、静止状態の評価結果を表 15 に示します。各状態 5 秒ずつ、鉛直方向加速度の時系列データを 2 回ずつ計測しました。
表 15 階段降下状態、歩行状態、静止状態の評価結果
静止 1
静止 1

静止 2

歩行 1

歩行 2

階段降下 1

階段降下 22.541025.44021.22381.51771.69324.90321.98581.87271.74315.60663.23048.13763.97649.563

静止 22.5410

歩行 1

25.44024.903歩行 2

21.22321.98515.606

階段降下 181.51781.87263.23063.976

階段降下 271.69371.74348.13749.56338.93138.931

表 15 より、階段降下状態、歩行状態、静止状態が鉛直方向加速度の時系列データに DTWを適用する事で区別可能であることが分かります。また、加速度データを用いた DTW で静止と判定された場合、磁力の大きさに DTW を適用してエスカレータ、エレベータを区別します。エスカレータとエレベータは DTW 距離の大きさで区別し、静止状態は磁力変化の閾値や駅毎のデータベースを用意することで区別することができます。表 16 にエスカレータとエレベータの区別の評価結果を示します。
表 16 エスカレータとエレベータの区別の評価結果
エスカレータ 1
エスカレータ 1

エスカレータ 2

エレベータ 1

エレベータ 28.4773147.6299.922

157.39109.70

エスカレータ 2

8.4773

エレベータ 1147.62

157.39

エレベータ 299.922109.7038.85038.850

表 16 より、エスカレータ利用時とエレベータ利用時が磁力の大きさの時系列データに DTWを適用する事で区別可能であることが分かります。

【列車乗車判定】
列車乗車判定は、階推定、上下線推定の切り替えとなります。ここで、列車発車時の列車の進行方向の加速度の時系列データのグラフを図 14 に示します。

図 14 列車発車時の列車の進行方向の加速度の時系列データのグラフ
図 14 より列車発車時の列車の進行方向の加速度の死系列データには特徴がある事が分かります。そのため、エレベータの場合同様、加速度のデータベースを用意し、正規相互相関関数を用いて、相関係数に閾値を設けることで列車の発車判定を行います。概要図を図 15 に示します。

データベースを用意して、類似度判定

図 15 列車出発判定の概要図

【アプリケーション概要】
上述の内容を踏まえて、アプリケーションのアイデアの概要を記載します。提案するアプ
リケーションは以下の流れで行ないます。図 13 を参考にしてください。
①ユーザの階段降下状態、歩行状態、静止状態推定
階段降下状態、歩行状態、静止状態のデータベースをそれぞれ 5 秒間ずつ用意し、5 秒ずつの実測の鉛直方向加速度と DTW を用いて状態を判定します。5 秒ずつの状態推定を 1 秒ずつずらして行なっていきます。
Ex）0 秒～5 秒⇒歩行
1 秒～6 秒⇒歩行
2 秒～7 秒⇒静止
上記の様に各状態が実測時間のどこに当たるかを分類します。概要を図 16 に示します。

図 16 各状態と実測時間の対応図
図 16 のように各状態が分布している場合、各状態の配列を用意し、始終秒を入れます。
Ex）歩行状態⇒[0,30]
階段降下状態⇒[30,60]
静止状態⇒[60,70]②路線推定（階推定）①における配列から各々の場合について以下の処理をします。
a）歩行状態⇒何もしないb）階段降下状態⇒・降りた階段の段数推定
・何階分降りたか推定c）静止状態⇒静止、エスカレータ、エレベータを区別
c-1）静止⇒何もしないc-2）エスカレータ⇒乗車秒数から何階分降りたか推定c-3）エレベータ⇒・エレベータ乗車時の時刻を推定
・乗車秒数から何階分降りたかを推定a）、b）、c）を合わせて列車が発車判定される前に何階にいたかを判定し、路線特定

③列車発車推定
列車の進行方向の加速度の時系列データから判定④上下線推定・列車の乗車判定がされた後、車内音を記録
・車内音のデータベースと実測車内音に相互相関関数を適用し、上下線区別
・列車発車時刻を時刻表から取得①～④より、利用路線、上下線、列車発車時刻からユーザの乗車している列車を特定