店舗内の歩行者行動分析のための 3 次元時系列可視化岡田佳也

1(指導教員：伊藤貴之)

はじめに

店舗内における顧客分析や売上分析で得られる情報はマーケティングの分野で非常に役に立つ．顔認識技術の進歩により，店舗に設置したカメラの映像から顧客のいる場所と時間だけでなく，性別や年齢などの特徴も得られるようになった．このような顧客の行動や属性と，POS などを通して従来から蓄積している購買情報を組み合わせることで，顧客情報を複合的に分析できると考えられる．しかし分析手段は開発途上であり，特に店内での歩行行動まで含めた分析にはその可視化が重要であると考えられる.
本手法では，顧客の位置情報，時間情報，性別，年齢をもとに顧客の歩行行動を分析するための時系列可視化手法を提案する．歩行行動分析において店舗内の空間情報は非常に重要である．我々は店舗のフロアマッ
プを平面上に，時間を奥行き方向にとる 3 次元可視化を開発した．フロアマップは棚と通路に沿って多数の多角形ブロックに区切られていることを前提とし，ブロックごと，時間帯ごとに人数を集計する．この値によってブロックの色と透明度を設定して表示することで，重要でないブロックを割愛し，人が集中する場所などの注目すべき部分が強調される．さらに各時刻のフロアマップの状態を表す色を選択しツールバーに並べて表示することで，ユーザの操作によって見たい時刻のフロアマップを詳細に見ることができる.

2

図 1: 処理手順

3.1

店内に設置したカメラから，{ 時刻 t，座標値 (x,y)，
年齢，性別 } を取得する．本手法では 1 日分のデータを JSON 形式のファイルにまとめたものを用いる．

3.2

ブロックごとの集計と計算

店舗内の商品棚をブロックに分け，ブロックごとに人数を集計し数値を算出する．本手法では分析対象を3 つに分類し，以下にその一例と算出方法を述べる．
時刻を i，ブロック番号を j ，各ブロックの人数を nij ，算出結果を vij とする．
1. 実数値や割合の相対値
e.g. 特定の時刻において人が集まる場所
nij − nmin
vij =nmax − nmin2. 数値の変化量e.g. 特定のブロックの 1 日の中で人の集まる時間帯，いない時間帯
nij − nminnj − nmin
vij =−
nmax − nmin
nmax − nmin
3. その他
e.g. 相関の高いブロックどうし例は他にも多様に考えられる．

関連研究

数値によってセルの色付けを行う研究として，熊谷ら [1] の研究がある．商品売上データに対し相関や異常値を算出し，値によってヒートマップ色付けることでデータ分析を行っている．この手法では売上データを扱っており，本研究のような空間情報を含んでいない.
時空間情報の両立が可能な 3 次元可視化においては．
特に平面地図と垂直に時間軸をとる時空間パスや Geo
Time が人の移動の可視化によく用いられる. 深田ら[2] は観光行動の移動速度を可視化することで歩行ルートや滞留位置を示す手法を考案し，時空間パスによる表現と比較している．この手法では GPS データを取得しているため広範囲の観測に適しているが，室内での行動分析への適用は難しい．またブロック単位で数値を表現する 3 次元時空間可視化方法として Bach らの Cubix[3] がある．これは動的なネットワークデータの頂点群をキューブとして空間を平面上，他の 1 軸を時間軸とした 3 次元空間上に配置している．時空間情報の概観を見ることができるが，データの密集部分の読み通りが難しく，2 次元への分解表示が欠かせない．

3

顧客データ

3.3

カラーマップの設定

求めた各ブロックの数値に対し色を自動的に設定するため，全体のカラーマップを定める. [4] によるデー
タの種類とカラーマップの対応付けに従い，カラーマップを分類した結果を図 2 と以下に示す.
1. 色相のみ変化するカラーマップ

2. 1 方向に彩度が変化するカラーマップ
3. 両端方向に彩度が変化するカラーマップ
3.4

提案手法

透明度の設定次に透明度を算出する伝達関数を設定する．3 次元
空間における可視化では，視点によって物体間の画面上での重なり合いが発生する．この重なり合いによるデータの可読性の低下を防ぐため，数値の突出した重要な部分の透明度を低くし，その他の重要でない部分の透明度を高くする．透明度はブロックの数値に対する指数関数である．

本章では提案手法が前提とするデータ構造と，全体像の特徴把握を目的とした 3 次元時系列可視化手法の処理手順 (図 1)，詳細表示のための 3 次元可視化画面と連携した時系列可視化パネルについて説明する．

91

図 2: カラーマップ

3.5

可視化画面のデザイン

ブロックごとに集計，色設定，透明度設定したものを奥側に 0 時，手前側に 23 時を割り当て，時刻ごとに一定の厚みを持たせて並べる．ブロック値の計算方
法はツールバー下部のラジオボタンで選択できる (図3)．このとき時刻の補助表示として時間軸に目盛を付与する．さらに，ツールバーの time スライダーを動かすことで半透明な板状のフロアマップが時間軸方向に動き，時刻とともに場所の補助表示として有効である．このようにデータ全体を俯瞰できるようになっている (図 3)．一方でユーザがある特定の時刻のフロアマップのみを見たい時には，time スライダーで時間を指定するとその時刻のみのフロアマップとブロックが表示される．これを応用し，手動で time スライダーを操作し正面から可視化画面を見ることで，アニメーションとしてブロックの時間変化を観察することも可能である.

3.6

図 3: 実行結果

time パネルとの連携可視化

time スライダーの下の time パネルについて説明する．time パネルには時間ごとのフロアマップにおいて一番特徴的な色を選択して並べる．これにより一目でどの時刻に重要な現象があるのかを発見できる．さらに 3.5 節の方法を用いてその時刻のフロアマップのみを表示することで，フロアのどのブロックでその現象が起きたのかを特定できる．パネルに最低限の色情報のみを載せることで，従来の連携可視化の視線移動や画面サイズの問題を解消している.

4

図 4: time スライダー
系列可視化手法を提案した．またこの手法に time パネルとスライダーによる小規模連携可視化手法を組み合わせた．これにより，顧客の 1 日の動きの特徴を全体として把握するとともに，より重要な時刻とブロックに絞って観察できるようになった.
今後の課題として，より長期のデータへの適用がある．現状では奥行き方向が非常に長くなってしまい，これに伴い time スライダーも伸びてしまう．この問題について 1 ブロックの集計期間を月，日，時間と柔軟にするなどの対応を考えている. また 3 次元可視化
画面の可読性を高め新しい知見を得るため，数値の大小や変化量だけでなく異常度の算出も検討中である.
これに伴い，色と透明度の設定も多様にしていきたい.

ビデオ店における分析結果

あるビデオ店における歩行者行動を可視化した．データは閉店している 8 時間を含む 24 時間分である.
この分析例では，歩行者の集まる場所を調査した. カラーマップは色相のみ変化するカラーマップで，青い部分は歩行者が少なく，赤い部分が歩行者の多い場所となっている．伝達関数は人が多い部分の不透明が高くなる指数関数を用いた．全体俯瞰図 (図 3) からは，入口に近い左側に人が集中していることがわかる.
このとき time パネル (図 4) では，人が特に集まった赤い部分が 4 箇所に絞られて表示されている. ここ
か ら最初に人が集中しているブロックが 5 時に存在することがわかる. 実際に 5 時のみのフロアマップを表示してみると，一番左の下から 4 番目のブロックが赤くなっている．
このように重要部分のみを表示することで，全体としての特徴を概略的に把握することができた. またその中でも突出した時刻とブロックの特定と観察ができた．

5

参考文献

[1] 熊谷，伊藤, ”ヒートマップによる時系列データ可視化の一手法 非類似度と異常値観察を目的として ”,お茶の水女子大学修士論文, 2017.
[2] 深田, 奥野, 大津, 橋本, ”観光歩行行動データに対する GIS を用いた 3 次元可視化手法の提案”, 観光と情報, Vol. 8, No. 1, pp. 51-66, 2013.
[3] B. Bach, E. Pietriga, and J. -D. Fekete, ”Visualizing dynamic networks with matrix cubes.” In
Proceedings of the 32nd annual ACM conferenceon Human factors in computing systems. ACM,
2014.
[4] D. Borland and R. M. Taylor II, ”Rainbow Color
Map (Still) Considered Harmful”, IEEE Computer Graphics and Applications, vol. 27, no. 2,
2007, pp. 14-17.

まとめ

本報告では， 2 次元フロアマップと時間軸からなる
3 次元空間において，店舗内の顧客人数を集計し色と透明度を設定することで顧客の歩行行動を表現する時

92