Skip to content

Main JP

Akinobu Fukuzaki edited this page Nov 13, 2019 · 6 revisions

概要

TTPPとは人流や物流など時系列によって場所やそのステータスが変わる事象を扱うためのデータ形式とその処理の仕組みである。

ある場所にいたという点の情報ではなく、「ある場所からある場所へ移動した」あるいは「ある場所にいた」というベクトルデータにすることで様々なセンシング・データ解析に用いることができるようになる。

本ドキュメントではTTPPおよびその関連のデータ形式の定義とその背景を説明し、利用方法などを紹介する。

TTP (Track, TimeWindow, Place)

Fig.1

Fig.1 TTPに含まれる属性

あるモノがある場所にある時点であったという事実は1つのエントリーとして表現される。これをTTP(Track, TimeWindow, Place)と呼ぶ。TTPはトラッキングを行うための個体の識別子やその種別を含むTrack、時間軸での範囲や点、一定周期のタイミングを示すTimeWindow、場所の位置や名称、識別子を示すPlaceとともに、その他の付随情報を含むValueによって構成される。(Fig.1)このTTPのTrack、TimeWindow、Place、Valueは属性値の大分類であり、さらにこの中に色々な詳細属性値を含むことができる。例えばTrackの中には対象のIDや対象のType、TimeWindowにはdatetime(時刻値 unix epoc time in milliseconds)や時間帯分類ラベル、曜日、Placeにはそのaddress(住所)、geo location(緯度経度値)、path(区間)が、ValueにはセンサーのRSSI値などが入る。(Fig.2)

Fig.2

Fig.2 TTPに含まれる詳細属性例

センサーなどからの情報によりTTPエントリーは情報発生に伴って逐次時間順に蓄積されてエントリーのセットが作られる。これをTTP collectionと呼ぶ。

TTPP (TTP Pair)

Fig.3

Fig.3 TTPPに含まれる詳細属性例

TTP collectionには同じTrack IDのエントリーが複数含まれている。この同じTrack IDのエントリーを順番に並べ、前後をペアにすることでベクトル化し、TTPP(TTP Pair)を作ることができる。TTPPにおいてはTimeWindow、Place属性カテゴリの中にfrom、to中分類を入れ、個々のエントリーの内容を入れることで表現される。またベクトル化することで場所や時間の距離、速度を算出しValue配下に追加することができる。(Fig.3)TTPPエントリーを時間順に蓄積したセットをTTPP collectionと呼ぶ。

TTPPの具体例

Fig.4

Fig.4 センサーが設置されているフィールド

今、place Aからplace Eまでの5つのエリアにそれぞれ人を識別子付きで検知する何らかのセンサーが設置されており、それぞれが図のようにつながって移動が可能とする。(Fig.4)

Fig.5

Fig.5 ID #01が検知された例

ID #01として認識される人物がplace A、place B、place Eでそれぞれ図(Fig.5)に示す時刻に検知された時、それぞれのTTPエントリーは表(Table.6)のようになる。

Table.6 TTPエントリー例

Table.6

これらのこのID #01の移動はベクトル化できる。(Fig.7)

Fig.7

Fig.7 移動のベクトル化

そしてこれらTTPエントリーから2つのTTPPエントリーが作られる。(Table.8)この時、移動の所用時間を秒で算出してValue配下に付加する。

Table.8 TTPPエントリー例

Table.8

さらにID #02やID #03の人物が検知され(Fig.9)、

Fig.9

Fig.9 複数の人物の検知例

それぞれTTPPエントリーが作られるとする。(Table.10)

Table.10 三人の人物の検知データのTTPP

Table.10

TTPPを用いた情報取得の例

これらTTPPエントリーはDBなどに格納され、属性値をインデックスとした絞り込みなどの処理が行えると様々な情報を算出することが可能となる。例えばplace Bを通過した人数はPlace.from.nameとPlace.to.nameをORで絞ってTrack.IDのユニーク数を算出することで得られ、2であることが分かる。(Fig.11)

Fig.11

Fig.11 特定の場所を通過した人数

また、時刻 01:03:00の瞬間に何処に何人いたかを求めるにはTimeWindow.from.timeとTimeWindow.to.timeの間に01:03:00が含まれるエントリーを抽出し、Place.from.nameとPlace.to.nameの組み合わせで示した場所毎のTrack.iDのユニーク数を算出することで得られ、"place A -> place B"の区間に2人、"place A -> place C"の区間に1人いた事が分かる。(Fig.12)

Fig.12

Fig.12 特定の時刻に人物が居た場所とその人数

Valueに所要時間が保存されているため、ある区間の所要時間の平均や最大最小など統計的な処理を行うこともできる。"place A -> place B"区間の平均、最大、最小所要時間はそれぞれ180.5秒、188秒、173秒となる。(Fig.13)

Fig.13

Fig.13 ある区間の所要時間の統計処理

TTPPの種別 (移動と滞在)

Fig.14

Fig.14 特定の場所を通過した人数

よりリアルなケースとしては一定周期(例として1秒)毎に検知を行い15秒周期で検知されたIDを集約し記録するセンサーユニットの例があげられる。このユニットは各場所の範囲内に人物が入場し退出するまでの間継続的に検知し続け、15秒に丸められた時刻で記録を行う。ID #01の人物が以下の図(Fig.14)に示すような入場と退出を行った時、TTPPは次の表(Table.15)に示すような内容となる。

Table.15 一定間隔センシングでのTTPP(stay集約前)

Table.15

ここでは属性Place.typeが追加されている。Place.typeはfromとtoの場所が同じと見なされる時stay、異なる場所と見なされる時moveとなる。こうすることである場所に滞在しているTTPPと場所間を移動しているTTPPとが区別できるようになる。さらに連続したstayは都度集約処理をしてTTPPを作るようにすると(Table.16)滞在時間の算出がより容易になる。

Table.16 一定間隔センシングでのTTPP(stay集約後)

Table.16