以下、図面を参照して、本発明の実施形態を詳述する。
なお、以下の記載及び図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略及び簡略化がなされている。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。本発明が実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。本発明は、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は複数でも単数でも構わない。
以下の説明では、「テーブル」、「表」、「リスト」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いるが、これらについてはお互いに置換が可能である。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号又は参照符号における共通番号を使用し、同種の要素を区別して説明する場合は、その要素の参照符号を使用又は参照符号に代えてその要素に割り振られたIDを使用することがある。
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、少なくとも1以上のプロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又はインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノード、ストレージシステム、ストレージ装置、サーバ、管理計算機、クライアント、又は、ホストであってもよい。プログラムを実行して行う処理の主体(例えばプロセッサ)は、処理の一部又は全部を行うハードウェア回路を含んでもよい。例えば、プログラムを実行して行う処理の主体は、暗号化及び復号化、又は圧縮及び伸張を実行するハードウェア回路を含んでもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な非一時的な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサ(例えばCPU)と非一時的な記憶資源とを含み、記憶資源はさらに配布プログラムと配布対象であるプログラムとを記憶してよい。そして、プログラム配布サーバのプロセッサが配布プログラムを実行することで、プログラム配布サーバのプロセッサは配布対象のプログラムを他の計算機に配布してよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
(1)第1の実施形態
(1-1)構成
図1は、本発明の第1の実施形態に係る集団行動分析システム1の構成例を示すブロック図である。集団行動分析システム1は、集団行動における個体間のネットワークを分析して分析結果を利用者に提示するシステムであって、図1に示すように、集団行動分析装置100、無線通信機200、及びウェアラブルデバイス300を備える。
集団行動分析装置100は、例えばパーソナルコンピューター(PC)等の計算機であって、外部通信部110、演算部120、制御部130、メモリ140、及び記憶部150を有する。各部は内部通信線(バス)によって相互に接続されている。
外部通信部110は、集団行動分析装置100と外部(無線通信機200)との通信を実現する機能を有する。外部通信部110は、具体的には例えば、NIC(Network Interface Card)等である。外部通信部110が利用する通信規格は特段に限定されるものではなく、例えば、LTE(Long Term Evolution)、Wi-Fi(登録商標)、またはBluetooth(登録商標)等が挙げられる。
図1の場合、外部通信部110は無線通信機200と接続され、無線通信機200を介してリアルタイムで、ウェアラブルデバイス300で検知されたセンサデータを受信する。なお、リアルタイムな対応が不要な場合は、ウェアラブルデバイス300が検知したセンサデータをフラッシュメモリ330等に格納しておき、格納したセンサデータを所定のタイミングで所定の方法によって集団行動分析装置100に入力する構成としてもよい。
演算部120は、制御部130による制御にしたがって、各種演算を行う機能を有する。また、制御部130は、集団行動分析装置100における通信、入出力、及び演算等の各種処理を制御する機能を有する。演算部120及び制御部130は、CPU(Central Processing Unit)等のプロセッサであり、例えば記憶部150または外部からメモリ140に読み出したプログラムを実行することによって各種の機能を実現する。
メモリ140は、集団行動分析装置100において使用されるプログラム及びデータを一時的に記憶する主記憶装置であって、例えばRAM(Random Access Memory)である。
記憶部150は、集団行動分析装置100において使用されるプログラム及びデータを非一時的に記憶する補助記憶装置であって、例えばSSD(Solid State Drive)またはHDD(Hard Disk Drive)等である。なお、図1において記憶部150に記憶するとして示しているプログラム及びデータの少なくとも一部は、ネットワークを経由して通信可能に接続された外部に保持されて必要に応じてメモリ140に読み出される構成であってもよい。また、以降の説明では、プログラムを処理の主体として記述することがある。
記憶部150には、プログラムとして、データ受信プログラム151、同期計算プログラム152、及びネットワーク表示プログラム153が記憶される。また、記憶部150には、データとして、センサデータ161、ユーザ管理データ162、ゲーム管理データ163、グラフデータ164、認識確度データ165、同期性データ166、及び表示設定データ167が記憶される。これらのプログラム及びデータの詳細は、図面を参照しながら後述される。
無線通信機200は、無線通信が可能な通信機であって、ウェアラブルデバイス300の無線通信部310と集団行動分析装置100の外部通信部110との間の無線通信を中継する役割を果たす。無線通信機200が利用する通信規格は、外部通信部110及び無線通信部310が利用する通信規格に適合していれば、特に限定されない。
ウェアラブルデバイス300は、集団行動分析システム1が分析対象とする集団行動の各個体(具体的には例えば、集団スポーツを行う各選手)に装着されるウェアラブルデバイスである。ウェアラブルデバイス300は、汎用品のウェアラブルデバイスを利用可能であり、例えば、無線通信部310、マイコン320、フラッシュメモリ330、USB通信部340、加速度センサ350、ジャイロセンサ360、地磁気センサ370、及びGNSS受信部380を有する。
無線通信部310は、無線通信機能を有し、ウェアラブルデバイス300で収集したセンサデータ等を無線通信機200に送信する。マイコン320は、ウェアラブルデバイス300における全体的な制御を行う。フラッシュメモリ330は、ウェアラブルデバイス300で収集したセンサデータ及び位置データ等を記憶する。USB通信部340は、USB(Universal Serial Bus)による通信機能を有し、例えば、フラッシュメモリ330に記憶したデータをウェアラブルデバイス300に挿されたUSBメモリに送信する。
加速度センサ350は、ウェアラブルデバイス300を装着した個体の加速度を検知するセンサであり、ジャイロセンサ360は、上記個体の角速度(回転量)を検知するセンサであり、地磁気センサ370は、地磁気の検出によって上記個体の方向(体の向き)を測定するセンサである。また、GNSS受信部380は、GNSS(Global Navigation Satellite System)を利用して上記個体の位置及び速度(あるいは距離)を測位する機器である。上記の各センサ350~370及びGNSS受信部380によって収集された個体の収集データ(センサデータ)は、フラッシュメモリ330に保存される他、無線通信部310から無線通信機200を介して集団行動分析装置100の外部通信部110に送信される。
なお、ウェアラブルデバイス300に搭載されるセンサ類は、集団行動分析装置100におけるネットワーク分析に必要なセンサデータを収集可能であればよく、図1に例示した構成に限定されない。例えば、少なくともGNSS受信部380が搭載されていればよい。また例えば、ジャイロセンサ360は、加速度センサ350及び地磁気センサ370よりも詳細に加速度及び体の向きを知ることができるが、必ずしもウェアラブルデバイス300に搭載されなくてもよい。
図2は、ウェアラブルデバイス300の装着例を示す図である。図2に示したウェアラブルデバイス300は、対象者の背中の中心付近に固定される。
図3は、集団行動分析システム1の設置及び使用方法の一例を説明するイメージ図である。図3及び第1の実施形態における以降の各図では、ネットワーク分析の対象とする集団行動として、コート内で行われる対戦型のスポーツ競技(以下、ゲーム)を想定している。図3に示すように、それぞれの選手は、図2に示したようなウェアラブルデバイス300を装着する。そして、コートの周辺には1台以上の無線通信機200が設置され、それぞれの無線通信機200は集団行動分析装置100と通信可能に接続される。このような設置がなされたなかでゲームが行われると、それぞれの選手に装着されたウェアラブルデバイス300からリアルタイムでセンサデータが送信され、これらのセンサデータは無線通信機200を介して集団行動分析装置100で収集される。
(1-2)データ
以下では、図1に示した集団行動分析装置100の記憶部150に保持される各種データについて、その具体例を示す。
図4は、センサデータ161の一例を示す図である。センサデータ161には、集団行動を行う各個体に装着されたウェアラブルデバイス300から無線通信機200を経由して受信した各個体のセンサデータが、データ受信プログラム151によって随時、蓄積される。
図4に示したセンサデータ161は、1のウェアラブルデバイス300からセンサデータを受信するごとにレコードが生成され、センサID1611、日時1612、加速度1613、角速度1614、地磁気1615、緯度経度1616、及び速度1617の項目から構成される。
センサID1611は、当該センサデータを送信したウェアラブルデバイス300のセンサIDを示す。センサIDは、ウェアラブルデバイス300ごとに予め付与される固有の識別子である。日時1612は、当該センサデータを受信した(または送信した)日時情報を示す。
加速度1613~速度1617までの各項目には、当該センサデータに含まれる各種センサによる検知データが記録される。具体的には、加速度1613は、加速度センサ350による検知データを示す。角速度1614は、ジャイロセンサ360による検知データを示す。地磁気1615は、地磁気センサ370による検知データを示す。緯度経度1616は、GNSS受信部380による位置情報の測位データを示す。速度1617は、GNSS受信部380による速度情報の測定データを示す。
図5は、ユーザ管理データ162の一例を示す図である。ユーザ管理データ162は、集団行動分析装置100によるネットワーク分析の対象個体(本例では、選手)に関する情報を保持する。ユーザ管理データ162で管理されるユーザ(対象個体)は、ウェアラブルデバイス300の使用者でもある。
図5に示したユーザ管理データ162は、対象個体ごとにレコードを有し、ユーザID1621、センサID1622、チームID1623、開始日時1624、及び終了日時1625の項目から構成される。
ユーザID1621は、対象個体に個別に付与された識別子(ユーザID)を示す。センサID1622は、対象個体に装着されたウェアラブルデバイス300のセンサIDを示す。チームID1623は、分析対象の集団行動(本例ではゲーム)において対象個体が属するチームに個別に付与された識別子(チームID)を示す。開始日時1624は、分析対象の集団行動の開始日時を示し、終了日時1625は、分析対象の集団行動の終了日時を示す。
図6は、ゲーム管理データ163の一例を示す図である。ゲーム管理データ163は、集団行動分析装置100によるネットワーク分析の対象の集団行動(本例ではゲーム)に関する情報を保持する。なお、ユーザ管理データ162とゲーム管理データ163とをまとめて「管理データ」と称することがある。
図6に示したゲーム管理データ163は、分析対象の集団行動(ゲーム)ごとにレコードを有し、ゲームID1631、開始日時1632、終了日時1633、参加チームID1634、ゲーム名1635、及び参加チーム名1636の項目から構成される。
ゲームID1631は、当該ゲームに個別に付与された識別子(ゲームID)を示す。開始日時1632は、当該ゲームの開始日時を示し、終了日時1633は、当該ゲームの終了日時を示す。参加チームID1634は、当該ゲームに参加するチームのチームIDを示し、参加チーム名1636は、当該チームのチーム名を示す。ゲーム名1635は、当該ゲームのゲーム名を示す。
図7は、グラフデータ164の一例を示す図である。グラフデータ164は、同期計算プログラム152による同期計算処理のなかで生成されるデータであって、分析対象の集団行動(ゲーム)におけるネットワークを構成し得る全ての個体間の組合せ(本例だと選手同士の総組合せ)を定義する。グラフデータ164は、個体である2者を結ぶエッジ(辺)ごとに、当該エッジの両端のノード(点、すなわち個体)の組合せに関する情報が記録される。
図7に示したグラフデータ164は、グラフID1641、ゲームID1642、始点ユーザID1643、及び終点ユーザID1644の項目から構成される。
グラフID1641は、個体間のネットワークのエッジごとに付与される識別子(グラフID)を示す。ゲームID1642は、分析対象とされるゲームのゲームIDを示す。始点ユーザID1643は、グラフID1641に対応するエッジの始点側の個体(選手)に付与されたユーザIDを示し、終点ユーザID1644は、当該エッジの終点側の個体(選手)に付与されたユーザIDを示す。
図8は、認識確度データ165の一例を示す図である。認識確度データ165は、同期計算プログラム152による同期計算処理のなかで生成されるデータであって、個体の組合せに対応するグラフIDごとに、始点の個体から終点の個体に対する認識確度に関する情報が記録される。
図8に示した認識確度データ165は、グラフID1651、角度1652、2者間距離1653、及び認識確度1654の項目から構成される。
グラフID1651は、グラフデータ164のグラフID1641に対応する。角度1652は、始点の個体(始点ユーザID1643の選手)における視野中心からの、終点の個体(終点ユーザID1644の選手)の角度を示す。2者間距離1653は、始点の個体と終点の個体との距離を示す。認識確度1654は、始点の個体が終点の個体を認識する確度(認識確度)の算出値を示す。
図9は、同期性データ166の一例を示す図である。同期性データ166は、同期計算プログラム152による同期計算処理のなかで生成されるデータであって、個体の組合せに対応するグラフIDごとに、始点の個体から終点の個体への移動エントロピー及び重み付き移動エントロピーが記録される。
図9に示した同期性データ166は、グラフID1661、移動エントロピー1662、及び重み付き移動エントロピー1663の項目から構成される。
グラフID1661は、グラフデータ164のグラフID1641に対応する。移動エントロピー1662は、グラフID1641が示す個体の組合せにおける移動エントロピーを示し、重み付き移動エントロピー1663は、グラフID1641が示す個体の組合せにおける重み付き移動エントロピーを示す。移動エントロピー及び重み付き移動エントロピーについては、図11~図14を参照した説明のなかで後述する。
図10は、表示設定データ167の一例を示す図である。表示設定データ167は、同期計算プログラム152によって分析された集団行動のネットワーク分析の結果を、ネットワーク表示プログラム153が分析結果表示画面に表示する際に、利用されるデータであって、分析結果表示画面の表示設定に関する情報を保持する。
図10に示した表示設定データ167は、ゲームID1671、移動エントロピー閾値1672、認識確度閾値1673、及びネットワーク表示方式1674等の項目から構成される。
ゲームID1671は、ゲーム管理データ163のゲームID1631に対応する。移動エントロピー閾値1672は、ゲームID1671が示すゲームの分析結果表示画面において表示する、移動エントロピーの表示閾値を示し、認識確度閾値1673は、同様に認識確度の表示閾値を示す。後述する図16~図18に示すように、分析結果表示画面は、利用者が移動エントロピー及び認識確度の表示閾値を調整可能なように構成することができる。ネットワーク表示方式1674は、分析結果表示画面におけるネットワークの表示方式を示す。ネットワークの表示方式は特定の方式に限定されるものではない。例えば、後述する図16~図18では、位置に基づくネットワーク表示方式が例示されるが、位置に基づかないネットワーク表示方式が選択されてもよい。
(1-3)処理
以下では、図1~図10に示した構成及びデータ例を利用して、集団行動分析システム1(集団行動分析装置100)が実行する処理について、詳しく説明する。
(1-3-1)同期計算処理
図11は、同期計算処理の処理手順例を示すフローチャートである。同期計算処理は、データ受信プログラム151がウェアラブルデバイス300からのセンサデータを収集した後に、同期計算プログラム152によって実行される。
同期計算処理の開始契機は、利用者からネットワーク分析の実行を指示する操作が行われたときでもよいし、例えば定期的に実行される等であってもよい。また、ゲームの進行中にリアルタイムにネットワーク分析を行う場合には、直近の所定期間分のセンサデータを対象として同期計算処理を行うようにすればよく、ゲーム終了後にネットワーク分析を行う場合には、当該ゲームで収集した全てのセンサデータを対象として同期計算処理を行うようにすればよい。何れの場合であっても、ゲームの開始前に、ユーザ管理データ162及びゲーム管理データ163に、事前に設定すべき所定の項目情報が登録され、その他にも、処理に必要となる所定の条件指定等が行われる。
図11によればまず、同期計算プログラム152は、分析対象とする個体(選手)について、時系列でセンサデータ161を読み込む(ステップS101)。ステップS101において同期計算プログラム152は、管理データ(ユーザ管理データ162、ゲーム管理データ163)を参照することにより、分析対象とする個体のユーザID、及び当該個体が装着しているウェアラブルデバイス300のセンサIDを取得することができる。そして同期計算プログラム152は、取得したユーザIDを用いて2個体の組合せを生成し、これらの生成した各組合せにグラフIDを付与してグラフデータ164に記録する。なお、説明を簡便にするために、以後の説明では、個体を人と仮定して「2個体」を「2者」と称し、ネットワークの始点の個体を「始点ユーザ」、ネットワークの終点の個体を「終点ユーザ」と称する。
次に、同期計算プログラム152は、ステップS101でグラフデータ164に記録した網羅的な個体間の組合せについて、2者間の体の向きを推定し、その推定結果として始点ユーザから終点ユーザに対する体の向きを、認識確度データ165の角度1652に記録する(ステップS102)。
具体的には、ステップS102において同期計算プログラム152は、グラフデータ164のレコードに記録された始点ユーザID1643及び終点ユーザID1644をキーとして、ユーザ管理データ162から、各ユーザに装着されたウェアラブルデバイス300のセンサID1622を取得する。次に、同期計算プログラム152は、取得した始点ユーザ及び終点ユーザのそれぞれのセンサID1622についてセンサデータ161を参照し、各ユーザの位置(緯度経度1616)及び体の向き(角速度1614)を取得する。そして以上の取得情報に基づいて、同期計算プログラム152は、始点ユーザの体の向きを視野中心として、始点ユーザから終点ユーザに対する体の向き(始点ユーザから見た終点ユーザの方向)を推定し、その推定結果を認識確度データ165の角度1652に記録する。
次に、同期計算プログラム152は、ステップS102と同様に、網羅的な2者間の距離を推定し、その推定結果を認識確度データ165の2者間距離1653に記録する(ステップS103)。具体的には、同期計算プログラム152は、始点ユーザの位置と終点ユーザの位置から、2者間の距離を推定することができる。
次に、同期計算プログラム152は、網羅的な2者の組合せ(複数の個体の各組合せ)について、ステップS102で推定した始点ユーザから終点ユーザに対する体の向きと、ステップS103で推定した2者間の距離とに基づいて、始点ユーザの視野を考慮して、始点ユーザによる終点ユーザの認識の確度(認識確度)を算出し、その算出結果を認識確度データ165の認識確度1654に記録する(ステップS104)。
図12は、認識確度の算出イメージを説明するための図である。図12(A)は、始点ユーザと終点ユーザとの位置関係の例を示し、図12(B)は、2者間の距離と認識確度との関係性を示し、図12(C)は、始点ユーザの視野中心からの終点ユーザの確度と認識確度との関係性を示している。
図12(A)に示すように、始点ユーザの視野は、体の向きを中心にした所定の推定視野角の範囲内となる。推定視野角は例えば120度程度を事前に決定しておけばよいが、利用者によって任意に変更可能であってもよい。図12(B)に示すように、2者間の距離が大きくなるほど認識確度が下がる。また、図12(C)に示すように、始点ユーザから終点ユーザへの角度が大きくなるほど(すなわち、始点ユーザの視野中心から終点ユーザが離れるほど)、認識確度は下がる。以上、図12(A)~(C)から分かるように、始点ユーザから見て、終点ユーザが視野中心に近い角度かつ近距離にいれば、始点ユーザの終点ユーザに対する認識確度は高くなり、角度または距離が大きくなるほど認識確度は低くなるものであり、同期計算プログラム152は、このような傾向を数値化した算出式を用いることによって、認識確度を算出することができる。
図11の説明に戻る。ステップS105に次いで、同期計算プログラム152は、網羅的な2者間の移動エントロピーを算出し、その算出結果を同期性データ166の移動エントロピー1662に記録する(ステップS106)。移動エントロピーの計算方法については、図13及び図14を参照しながら詳しく後述する。
次に、同期計算プログラム152は、ステップS106で算出した2者間の移動エントロピーにステップS104で算出した認識確度によって重み付けを行い、重み付けした移動エントロピーの算出結果を同期性データ166の重み付き移動エントロピー1663に記録し(ステップS107)、その後、同期計算処理を終了する。
以上、ステップS101~S107の処理が実行されることにより、個体間の組合せを示すグラフIDをキーとして、グラフデータ164、認識確度データ165、及び同期性データ166が生成される。特に本実施形態では、ステップS106において集団における網羅的な2者間の移動エントロピーを計算して2者間の因果性を推定するだけでなく、ステップS107において2者間の距離及び向きに基づく相互または単方向の認識確度を用いて重み付けすることにより、2者間の同期性(因果性)をより精度よく分析することができる。なお、2者間の距離及び向きを反映する手法であれば、重み付けの具体的な方法は限定されない。
図13は、移動エントロピー計算処理の処理手順例を示すフローチャートである。また、図14は、2つの確率変数から移動エントロピーを算出するイメージを示す図である。移動エントロピー計算処理は、同期計算プログラム152が始点ユーザから終点ユーザへの移動エントロピーを算出する処理であって、図11のステップS105において実行される。本実施形態で算出する移動エントロピーは、網羅的な2個体間を対象とし、センサデータ161の加速度1613から得られる各個体の連続値による加速度データを入力として、個体ごとに正規化及び離散化した確率変数に変換したのち、2個体の確率変数から当該2個体間の移動エントロピーを算出するものである。
図13によればまず、同期計算プログラム152は、読み込んだセンサデータ161(図11のステップS101参照)から、対象個体ごとに単位時間当たりの移動量を集計し、ヒストグラム計算を行う(ステップS201)。図13のグラフ401は、ステップS201における移動量の集計イメージを示したものであり、時間当りの運動量(移動量)の変化を示すグラフを基に、運動量距離当りの頻度の変化を示すグラフが生成されている。
次に、同期計算プログラム152は、例えばスタージェスの公式に基づいて、ステップS201で計算したヒストグラムを所定の階級幅で分割する(ステップS202)。図13のグラフ402は、所定の階級幅で分割されたヒストグラムを示している。なお、本例では「k=log2N+1 (N:サンプルサイズ、k:階級数)」とするスタージェスの公式を用いるが、ヒストグラムの階級幅を決定する他の数式等を利用してもよい。
次に、同期計算プログラム152は、ステップS202で行ったヒストグラムの分割に基づいて、移動量を正規化及び離散化する(ステップS203)。図13のグラフ403は、正規化及び離散化が行われたことによって生成される、時間ステップごとの確率変数を示すグラフである。正規化及び離散化には既知の手法を利用可能である。
次に、同期計算プログラム152は、ステップS203で正規化及び離散化した後の各座標間の移動量の時系列データから、移動エントロピーを計算する(ステップS204)。
詳しくは、図14(A)に、ステップS203で正規化及び離散化した後の各座標間の移動量の時系列データの例として、点I及び点Jのそれぞれについての時系列確率変数が示されている。すなわち、これらの時系列確率変数は、図13のグラフ403における各階級の確率変数の値に相当する。
そして同期計算プログラム152は、上記の2つの時系列確率変数を用いて、図14(B)に示した数式を計算することにより、点Jから点Iへの移動エントロピーを算出することができる。言い換えると、点Jを始点ユーザ、点Iを終点ユーザとすることにより、始点ユーザから終点ユーザへの移動エントロピーを算出することができる。このようにして算出した2者間の移動エントロピーが高い場合、2者間の動きには同期性(因果性)があると推定することができる。
最後に、同期計算プログラム152は、以上のようにして算出した始点ユーザから終点ユーザへの移動エントロピーを同期性データ166の移動エントロピー1662に記録し、移動エントロピー計算処理を終了する。
なお、上記では移動エントロピーを算出する方法について述べたが、本実施形態に係る集団行動分析装置100は、移動エントロピーの代替として、相互相関関数、DTW、または相互情報量等といった、2点間の関係性を数値化する他の解析手法を採用することもできる。但し、これらの解析手法の場合は、移動エントロピーを用いる場合と比べると、方向性を示すことができなかったり、タイミングの違い(時間差)を適切に表現し難かったりする等の制約が生じる可能性がある。
(1-3-2)ネットワーク表示処理
図15は、ネットワーク表示処理の処理手順例を示すフローチャートである。ネットワーク表示処理は、同期計算処理によって分析された集団行動のネットワーク分析の結果を分析結果表示画面に描画することによって集団行動分析装置100の利用者に提示する処理であって、ネットワーク表示プログラム153によって実行される。ネットワーク表示処理の開始前には、分析結果表示画面における表示対象の集団行動(対象ゲーム)が、集団行動分析装置100の利用者によって指定される。より具体的には、対象ゲームのゲームIDが直接指定されてもよいし、対象ゲームの実施日時や参加チーム等が指定されてもよい。
図15によればまず、ネットワーク表示プログラム153は、利用者によって指定された指定条件に基づいて管理データ(ユーザ管理データ162、ゲーム管理データ163)を検索し、対象ゲームのゲームIDを特定する(ステップS301)。
次に、ネットワーク表示プログラム153は、ステップS301で特定したゲームIDをキーとして、表示設定データ167から該当するレコードの表示設定を取得する(ステップS302)。
次に、ネットワーク表示プログラム153は、ステップS301で特定したゲームIDをキーとしてグラフデータ164を検索し、ゲームIDが示す対象ゲームにおける個体間のネットワークのグラフIDを全て特定する。さらにネットワーク表示プログラム153は、特定したそれぞれのグラフIDについて、同期性データ166及び認識確度データ165を参照し、当該グラフIDを有するレコードデータから同期性(因果性)及び認識確度の指標値を取得する(ステップS303)。具体的には、同期性の指標値とは、同期性データ166に保持された移動エントロピー1662または重み付き移動エントロピー1663であり、認識確度の指標値とは、認識確度データ165に保持された認識確度1654である。
次に、ネットワーク表示プログラム153は、ステップS303で取得した同期性及び認識確度の指標値のうち、ステップS302で取得した表示設定における表示閾値(移動エントロピー閾値1672、認識確度閾値1673)を超える指標値を用いて、分析結果表示画面にネットワークグラフを描画する(ステップS304)。なお、分析結果表示画面を描画する際には、上記の指標値の他にも、管理データ等から取得した情報も適宜利用してよい。
そして、ネットワーク表示プログラム153は、以上のようにして描画した分析結果表示画面を利用者端末のディスプレイ(不図示)等に出力することにより、個体間の因果性(本例では移動エントロピー)と認識の確度とに基づく個体のネットワークを利用者に提供することができ、利用者は、指定した集団行動(対象ゲーム)における個体間のネットワークを視覚的に認識することができる。
図16~図18は、分析結果表示画面の表示例(その1~その3)を示す図である。
図16に示した分析結果表示画面410は、利用者による表示閾値の調整が行われていないときの分析結果表示画面の一例である。まず、図16を参照しながら、分析結果表示画面の基本的な画面構成を説明する。後述する図17及び図18では、共通する画面構成の説明は省略する。
分析結果表示画面410において、領域411には、対象ゲームが実施された日付が表示され、領域412には、対象ゲームのゲーム名が表示される。領域411,412の内容は利用者が事前に指定する。前述した通り、ネットワーク表示プログラム153は、図15のステップS301において、指定された日付及び対象ゲームをキーとしてゲーム管理データ163を参照することにより、該当する対象ゲームのゲームIDを特定することができる。
分析結果表示画面410において、領域413には、対象ゲームにおける個体間のネットワークが表示される。ネットワークの表示方法は特に限定されないが、例えば図16の場合、チームAとチームBのそれぞれの選手に番号が付与され、表示閾値を超える指標値が算出された選手間のネットワークが、矢印付きの直線によって単方向で示される。具体的には例えば、チームAの「2」番の選手は、同じチームAの「1」番の選手と相手チームであるチームBの「8」番の選手に対して関連性を持って動いていることが示されているが、一方で、自身は他のどの選手からも関連性を持たれていないことが分かる。
分析結果表示画面410において、領域414には、現在の表示閾値が表示される。図16の場合、移動エントロピー及び認識確度のそれぞれについて、表示閾値を調整可能なスライドバーが用意されている。利用者は、領域414のスライドバーを操作することにより、移動エントロピー及び認識確度のそれぞれの表示閾値を所定範囲内で自由に調整することができる。表示閾値が変更された場合は、変更後の表示閾値に従って図15のネットワーク表示処理が実行されることにより、領域413の表示内容が変化する。
分析結果表示画面410において、領域415には、時系列を調整するためのスライドバーが表示される。利用者は、領域415のスライドバーを操作することにより、領域413に表示する個体間のネットワークのタイミングを指定することができる。タイミングが変更された場合は、表示設定データ167の設定内容が更新され、変更後のタイミングに従って図15のネットワーク表示処理が実行されることにより、領域413の表示内容が変化する。なお、ネットワーク表示プログラム153は、分析結果表示画面410の領域413において、時系列を自動的に進めながら連続的にネットワーク表示を変更する、いわゆる動画表示を実行できるように構成されてもよく、その場合は、領域413における表示進行に応じて、領域415のスライドバーも移動して表示される。
図17に示した分析結果表示画面420は、図16に示した分析結果表示画面410において利用者から表示閾値の調整が行われた後の分析結果表示画面の一例である。具体的には、図16の分析結果表示画面410と比較すると、図17の分析結果表示画面420では、表示閾値を調整可能な領域424において、認識確度の表示閾値が「強」の方に調整されている。認識確度の表示閾値が高められた結果、分析結果表示画面420の領域423に表示されたネットワークは、分析結果表示画面410の領域413に表示されたネットワークがフィルタリングされたものとなっており、より信頼性の高い関連性を有するネットワークだけが表示されている。
図18に示した分析結果表示画面430は、表示閾値を調整可能な領域434の構成が、前述した分析結果表示画面410,420とは異なっている。
分析結果表示画面430において、領域434には、連携強度という指標について表示閾値を調整可能なスライドバーが用意されている。連携強度は、個体間の因果性(例えば移動エントロピー)と認識の確度とを組合せた指標であって、具体的には本例の場合、認識確度で重み付けを行った重み付き移動エントロピーに相当する。利用者は、領域434のスライドバーを操作することにより、連携強度(重み付き移動エントロピー)の表示閾値を所定範囲内で自由に調整することができる。そして、連携強度の表示閾値が変更された場合は、変更後の表示閾値に従って図15のネットワーク表示処理が実行されることにより、領域433の表示内容が変化する。具体的には、領域433には、図15のステップS303で取得された同期性の指標値のうち、連携強度の表示閾値を超える重み付き移動エントロピーを用いて、個体間のネットワークが表示される。
前述した分析結果表示画面410,420が因果性(移動エントロピー)と認識確度の双方をそれぞれ調整可能な専門家向きの構成であったのに対し、分析結果表示画面430は、因果性に認識確度による重み付けを行った「連携強度(重み付き移動エントロピー)」の表示閾値を調整可能な構成とされることで、操作が簡易化されて利便性が向上し、より一般ユーザに好適な表示構成となる。
なお、領域414,424,434で操作可能な表示閾値の種別は、ユーザ等によって切り替え可能に構成されてもよい。あるいは、利用者に予め与えられた権限等に応じて、操作可能な表示閾値の種別が異なるよう、ネットワーク表示プログラム153は、表示設定を変更するようにしてもよい。また、領域414,412においても、連携強度(重み付き移動エントロピー)に対する調整用のスライドバーが設置されてもよい。
以上のように、本実施形態に係る集団行動分析装置100は、同期計算処理を実行することにより、集団行動を行う複数の個体から、複数種類のセンサデータを取得し、複数の個体の組合せを網羅した2個体間の動きの因果性(同期性)をセンサデータに基づいて推定し(例えば移動エントロピー等)、さらに、2個体の距離または体の向きに基づいて相互または単方向の認識の確度を推定することができる。
そして、集団行動分析装置100は、ネットワーク表示処理によって、同期計算処理の推定結果を用いて個体間のネットワークを表示する際に、利用者の希望に応じて、何度でも表示及びネットワーク分析指標の出力を切り替えることができる。具体的には、図16の分析結果表示画面410でいえば、領域411,412に対する利用者の入力により、個体間のネットワークを表示したい集団行動(対象ゲーム)を指定することができ、領域435のスライドバーの調整により、表示する時系列を指定することができる。また、利用者による領域414の表示閾値の調整により、フィルタリングした因果性及び認識確度に基づいて個体間のネットワークを表示することができる。また、事前設定も可能な推定視野角の値などを変更することにより、認識確度の判定基準を変更することもできる。また、図18の分析結果表示画面430のように、個体間ネットワークを、因果性(移動エントロピー)を認識確度で重み付けした指標値(重み付き移動エントロピー)に基づいて表示することもできる。
かくして、本実施形態に係る集団行動分析装置1(集団行動分析装置100)によれば、集団行動における個体間のネットワークを説明性を持たせて提示することができるため、利用者は、集団行動のネットワークを客観的に理解し易くなり、スポーツ等の効果的な指導が可能となる。
(2)第2の実施形態
第2の実施形態では、集団行動を行う各個体(例えば球技のゲームを行う各選手)にウェアラブルデバイス300を装着せずに、個体間のネットワークにおける因果性及び認識確度を推定し、個体間のネットワークを表示する集団行動分析システムについて説明する。
図19は、本発明の第2の実施形態に係る集団行動分析システム2の構成例を示すブロック図である。集団行動分析システム2は、集団行動における個体間のネットワークを分析して分析結果を利用者に提示するシステムであって、図19に示すように、集団行動分析装置500及びカメラ600を備える。なお、集団行動分析システム2の構成要素のうち、第1の実施形態に係る集団行動分析システム1と同様の構成要素については、共通する符号を付して説明を省略する。また、集団行動分析システム2において集団行動分析装置500が実行する処理(同期計算処理、ネットワーク表示処理)の処理手順は、基本的には第1の実施形態において集団行動分析装置100が実行する処理と同様であり、その詳細な説明を省略する。
図19に示したように、集団行動分析装置500はカメラ600に接続される。カメラ600の撮影可能範囲601は、集団行動(本例では球技のゲーム)が実施されるコート等に向けられており、カメラ600は集団行動の撮影データを、例えばリアルタイムで、集団行動分析装置500の外部通信部110に送信する。集団行動分析装置500の外部通信部110が受信した撮影データは、画像データ561として記憶部550に格納される。
集団行動分析装置500は、例えばパーソナルコンピューター(PC)等の計算機であって、外部通信部110、演算部120、制御部130、メモリ140、及び記憶部550を有する。各部は内部通信線(バス)によって相互に接続されている。
記憶部550は、集団行動分析装置500において使用されるプログラム及びデータを非一時的に記憶する補助記憶装置であって、例えばSSDまたはHDD等である。なお、図19において記憶部550に記憶するとして示しているプログラム及びデータの少なくとも一部は、ネットワークを経由して通信可能に接続された外部に保持されて必要に応じてメモリ140に読み出される構成であってもよい。
記憶部550には、プログラムとして、画像認識プログラム551、同期計算プログラム552、及びネットワーク表示プログラム153が記憶される。また、記憶部550には、第1の実施形態と同様のデータとして、ユーザ管理データ162、ゲーム管理データ163、グラフデータ164、認識確度データ165、同期性データ166、及び表示設定データ167が記憶され、さらに、画像データ561、人座標データ562、及びボール座標データ563が記憶される。
画像認識プログラム551は、カメラ600から収集した画像データ561に対して画像解析処理を行い、画像データ561に映っている人及びボールの座標を時系列で取得し、取得した座標を人座標データ562及びボール座標データ563に記録する。画像認識プログラム551による上記処理は、カメラ600から収集した画像データ561の登録後、かつ、同期計算処理の実行前または開始直後に実行される。
図20は、人座標データ562の一例を示す図である。人座標データ562は、画像データ561を画像解析して得られた人物の位置情報を、時系列で保持する。具体的には、図20に示した人座標データ562は、人物ID5621、日時5622、及び人座標を示す座標5623の項目から構成される。人物ID5621は、画像データ561の画像解析によって識別された人物ごとに付与される識別子(人物ID)であって、所定の方法によって人物IDが示す各個体とユーザ管理データ162が管理するユーザIDとの対応を特定することにより、人物ID5621をユーザID1621として扱うことが可能となる。
図21は、ボール座標データ563の一例を示す図である。ボール座標データ563は、画像データ561を画像解析して得られたボールの位置情報を、時系列で保持する。具体的には、図21に示したボール座標データ563は、ゲームID5631、日時5632、及びボール座標を示す座標5633の項目から構成される。
ここで、上記した人座標データ562からは、集団行動における各個体(選手)の位置を知ることはできるが、選手の体の向きを把握することはできない。また、各個体の視野に関する情報もない。そこで第2の実施形態の同期計算プログラム552は、同時刻における人座標データ562及びボール座標データ563のデータを用いて、以下のように選手の体の向き及び視野範囲を推定する。
図22は、ボール座標を用いた体の向きの推定方法を説明するための図である。図22には、ゲーム中のボール701と複数の選手702との位置関係の一例が示されている。ボール701の座標はボール座標データ563の座標5633から取得することができ、選手702の座標は人座標データ562の座標5623から取得することができる。このとき、同期計算プログラム552は、ボールの位置(方向)に個体の視野の中心があると仮定して、個体の体の向き及び視野の範囲を推定する。具体的に「1」番の選手702について言うと、矢印の方向が視野の中心(すなわち、体の向き)となり、領域703が視野の範囲となる。
上記の推定により、同期計算プログラム552は、集団行動における各個体の位置及び体の向きを算出することができる。これは、図11に示した第1の実施形態における同期計算処理のステップS102の処理と同様の結果を意味する。したがって、第2の実施形態における同期計算プログラム552は、上記の推定結果を利用することにより、第1の実施形態と同様の同期計算処理を実行することができる。また、同期計算処理の結果を用いて実行されるネットワーク表示処理についても、第2の実施形態は第1の実施形態と同様である。
以上のように、第2の実施形態に係る集団行動分析システム2(集団行動分析装置500)は、第1の実施形態のように各個体にウェアラブルデバイス300を装着しなくても、カメラ600による撮影画像を基に、各個体が注目する特定の物体等(本例ではボール)を基準として各個体の向き及び視野を推定することで、第1の実施形態と同様に個体間のネットワークを分析し、説明性を有する分析結果を利用者に表示することができる。
なお、第2の実施形態の変形例として、ボールにウェアラブルデバイス300を搭載してもよく、その場合は、集団行動分析装置500がウェアラブルデバイス300のセンサデータを取得できるように構成することにより、より正確なボール座標を取得することができる。
また、第2の実施形態の別の変形例として、ボールが小さい等の理由から画像データ561からボール座標を取得することが困難であったり、対象ゲームがボールを使わない競技であったりする場合、同期計算プログラム552が、個体(選手)の移動方向を視野の中心と見なして、当該個体の体の向き及び視野の範囲を推定するようにしてもよい。また、ボール座標を取得することができない場合の他の推定方法として、集団行動が実施されているなかでの特定の状況に基づいて、各個体(選手)の視野の中心を推定するようにしてもよい。具体的には例えば、複数の選手の密集の度合いの高さからボール座標を推定して、この推定したボール座標に基づいて個体(選手)の視野の中心を推定するとしてもよいし、ゲーム中の攻守の交代等の状況を示すデータに基づいて、選手の視野の中心方向を推定するとしてもよい。
(3)第3の実施形態
第3の実施形態は、2者で行われる集団行動に特化した実施形態であり、第1及び第2の実施形態よりも精密な分析として、2者の骨格の各部位間におけるネットワークを分析する。
図23は、本発明の第3の実施形態に係る集団行動分析システム3の構成例を示すブロック図である。集団行動分析システム3は、集団行動における個体間のネットワークを分析して分析結果を利用者に提示するシステムであって、図23に示すように、集団行動分析装置800及びカメラ600を備える。カメラ600は、第2の実施形態で説明したカメラ600と同様の構成であることを意味するが、第2の実施形態よりも高い解像度で撮影可能であることが好ましい。また、第3の実施形態の説明において、第1または第2の実施形態と同様のものについてはその説明を省略する。
集団行動分析装置800は、例えばパーソナルコンピューター(PC)等の計算機であって、外部通信部110、演算部120、制御部130、メモリ140、及び記憶部850を有する。各部は内部通信線(バス)によって相互に接続されている。
記憶部850は、集団行動分析装置800において使用されるプログラム及びデータを非一時的に記憶する補助記憶装置であって、例えばSSDまたはHDD等である。なお、図23において記憶部850に記憶するとして示しているプログラム及びデータの少なくとも一部は、ネットワークを経由して通信可能に接続された外部に保持されて必要に応じてメモリ140に読み出される構成であってもよい。
記憶部850には、プログラムとして、画像認識プログラム851、同期計算プログラム852、及びネットワーク表示プログラム153が記憶される。また、記憶部850には、第1の実施形態と同様のデータとして、ゲーム管理データ163、グラフデータ164、認識確度データ165、同期性データ166、及び表示設定データ167が記憶され、第2の実施形態と同様のデータとして画像データ561が記憶され、さらに、骨格座標データ861及びユーザ管理データ862が記憶される。
画像認識プログラム851は、カメラ600から収集した画像データ561に対して画像解析処理を行い、画像データ561に映っている人ごとに、骨格の所定部位の座標を時系列で取得し、取得した各部位の座標を骨格座標データ861に記録する。画像認識プログラム551による上記処理は、カメラ600から収集した画像データ561の登録後、かつ、同期計算処理の実行前または開始直後に実行される。
図24は、画像解析する骨格部位のイメージを示す図である。図24に丸印で示された複数の部位901は、人体の骨格における代表的な部位(例えば関節等)を示している。部位901をどの点にするかは、事前に設定することができる。画像認識プログラム851による画像データ561の画像解析では、人の画像から各部位901の座標を解析し、得られた各部位の座標を骨格座標データ861に記録する。
図25は、骨格座標データ861の一例を示す図である。図25に示した骨格座標データ861は、骨格ID8611、日時8612、及び部位座標8613の項目から構成される。骨格ID8611は、画像認識によって識別された人(1まとまりの骨格)ごとに付与される識別子(骨格ID)を示す。日時8612は、画像認識プログラム851による画像解析の実行日時を示す。部位座標8613は、画像認識によって得られた各部位(図24の部位901)の座標を示す。図25には具体的な部位として、右肩、右肘、及び左足首が示されているが、当然、これらの部位のみに限定されるものではない。
図26は、ユーザ管理データ862の一例を示す図である。図26に示したユーザ管理データ862は、対象個体ごとにレコードを有し、ユーザID8621、骨格ID8622、チームID8623、開始日時8624、及び終了日時8625の項目から構成される。ユーザ管理データ862を第1の実施形態における図5のユーザ管理データ162と比較すると、センサID1622が骨格ID8622に置き換わっている。
骨格ID8622は、ユーザID8621が示す人(選手)の骨格に付与された骨格IDを示すものであり、図25の骨格座標データ861の骨格ID8611と対応する。ユーザ管理データ862におけるその他の項目(ユーザID8621、チームID8623、開始日時8624、終了日時8625)は、図5のユーザ管理データ162における同名の項目と同様であるため説明を省略する。
同期計算プログラム852は、第1の実施形態における同期計算プログラム152及び第2の実施形態における同期計算プログラム552と同様に、記憶部850に保持された各種データを用いて、図4と同様の同期計算処理を実行する。但し、第3の実施形態では、2者の骨格部位同士を対象として個体間ネットワークを分析するため、同期計算プログラム852による同期計算処理では、図4に「網羅的な2者間」と表記されたところを「網羅的な各人の骨格間」と読み替える必要がある。
このような同期計算処理が実行されると、2者の骨格部位の間で網羅的に、骨格の動きの因果性(例えば移動エントロピー)及び認識確度を推定することができる。そしてこれらの推定結果を用いて、ネットワーク表示プログラム153がネットワーク表示処理を実行することにより、骨格部位に基づく2者の個体間ネットワークを分析結果表示画面に表示することができる。
図27は、第3の実施形態における分析結果表示画面の表示例を示す図である。図27に示した分析結果表示画面910は、領域911~915の表示構成を有しているが、これら領域911~915は、図16に示した分析結果表示画面410の領域411~領域415に相当するため、詳細な説明を省略する。
領域911には、対象ゲームが実施された日付が表示され、領域912には、対象ゲームのゲーム名が表示される。
領域913には、対象ゲームにおける個体間のネットワークが表示される。図27の場合、2者の骨格部位間での因果性(同期性)が移動エントロピーに基づいて矢印付きの線で表示されている。なお、領域913において、人Aの骨格部位Xから人Bの骨格部位Yに向けて矢印付きの線が表示されている場合、人Bの骨格部位Yの動きによって人Aの骨格部位Xが動いたことを意味し、人Bの動きが人Aの動きに影響を与えたという因果性(同期性)を表す。
領域914には、利用者によって調整可能な表示閾値が表示される。利用者は、領域914のスライドバーを操作することにより、移動エントロピー及び認識確度のそれぞれの表示閾値を所定範囲内で自由に調整することができる。図27では移動エントロピーと認識確度とが調整可能な項目として表示されているが、第1及び第2の実施形態と同様、重み付き移動エントロピーが表示されてもよい。
領域915には、時系列を調整するためのスライドバーが表示される。利用者は、領域915のスライドバーを操作することにより、領域913に表示する個体間のネットワークのタイミングを指定することができる。
以上のように、第3の実施形態に係る集団行動分析システム3(集団行動分析装置800)は、2者で行われる集団行動に対して、カメラ600の撮影画像から2者の骨格を認識し、骨格の動き及び向きに基づいて、第1及び第2の実施形態よりも精度よく個体間(2者間)のネットワークを分析し、説明性を有する分析結果を利用者に表示することができる。
なお、計算の処理量は増加するが、第3の実施形態に係る集団行動分析システム3は、各人における骨格部位の座標を認識し、それぞれの人同士の骨格の動きの因果性(同期性)を分析することにより、3者以上による集団行動の個体間ネットワークを分析することもできる。
また、上記説明ではカメラ600の撮影画像から骨格座標を取得したが、第3の実施形態の変形例として、集団行動を行う各人の解析対象の骨格部位(図24に示した各部位901)に、第1の実施形態で説明したウェアラブルデバイス300を装着するようにしてもよい。この変形例の場合は、第1の実施形態と同様に、画像認識プログラム851による骨格部位の画像認識は不要となり、精度よく各骨格部位の座標及び動き等を取得することができる。