以下、図面を参照しつつ、本発明に係るデータ処理システムおよびデータ処理方法について説明する。ただし、本発明は図面または以下に記載される実施形態には限定されないことを理解されたい。
図1は、本発明の一実施形態に係るデータ処理システム1の全体構成図である。図1に示すように、データ処理システム1は、複数のデータ送信装置10と、データ記憶装置20と、データ処理装置30と、を有する。データ送信装置10とデータ記憶装置20との間およびデータ記憶装置20とデータ処理装置30との間は、一つまたは複数のローカル/広域の有線/無線通信網を有する通信網90を介して接続される。ここでは、データ送信装置10とデータ記憶装置20との間の通信網と、データ記憶装置20とデータ処理装置30との間の通信網と、を概略的に一つの通信網90として示したが、これらの通信網は別個でもよい。なお、複数のデータ送信装置10、データ記憶装置20およびデータ処理装置30の間では、時刻の同期が概ね取れているものとする。
本発明が適用されたデータ処理システム1の一実施形態では、例えば、建物の構内などの監視エリアに監視カメラや、人感センサ、温度センサ、ガスセンサなどの種々のセンサを備えた複数のデータ送信装置10が設置されており、監視エリア内の安全を監視する。例えば、建物の入口などの撮影領域の周辺に複数の監視カメラが設置され、撮影領域を異なる角度から同時に撮影することができる。これらのカメラやセンサが取得した画像、温度、ガス濃度などの監視データは、データ処理装置30によって監視エリア内における異常の発生を検出するために解析される。この際、データ処理装置30は、例えば、複数の監視カメラが同じ撮影領域を異なる角度から略同一時刻に撮影した複数の画像データを用いて人物の姿勢や物体の立体形状などを解析することにより、不審者や不審物を検出することができる。
このため、本実施形態に係るデータ送信装置10は、カメラやセンサが取得した監視データに、自体の識別情報、時刻情報および位置情報を付加して、通信経路上のデータ記憶装置20に送信する。該データ記憶装置20は、データ送信装置10の識別情報、時刻情報および位置情報を用いて、近接する場所で略同一時刻に取得された監視データを統合した統合パケットをデータ処理装置30に送信する。これにより、データ処理装置30は、例えば、複数の監視カメラが同じ撮影領域を異なる角度から略同一時刻に撮影した画像データを、統合パケットによりデータ記憶装置20から同時に受信することができる。このため、データ処理装置30は、画像解析に必要な全ての画像が揃うまで待つ必要がなく、ほぼ遅延なくリアルタイムに画像を解析することができる。
以下、本実施形態に係るデータ処理システム1の各装置の構成について説明する。
データ送信装置10は、周囲の状況を監視して取得した監視データをパケット化し、パケットのヘッダ部に自体の識別情報並びに監視データを取得した時刻および位置に関する時刻情報および位置情報を格納してデータ記憶装置20に送信する。本実施例において、データ送信装置10は、例えば、監視カメラや種々のセンサにマイクロコントローラなどの情報処理ユニットが組み込まれた装置でもよい。また、データ送信装置10は、カメラやセンサを有するスマートフォンやタブレットなどの携帯情報端末でもよい。データ送信装置10は、監視エリアのある地点に固定的に設置されなくてもよく、移動する車両やドローンなどに搭載されてもよく、人が装着するウェアラブルデバイスでもよい。
図1に示すように、データ送信装置10は、記憶部11と、制御部12と、監視部13と位置検出部14と、通信部15と、を有する。
記憶部11は、データ送信装置10において実行される種々のコンピュータプログラムのコードおよびデータを記憶する。例えば、記憶部11は、RAM、ROM、EPROMなどの半導体メモリを有することができる。また、記憶部11は、磁気記憶装置、光学記憶装置などの任意のタイプの記憶装置を有してもよい。
制御部12は、プロセッサおよび周辺回路を有し、該プロセッサは、記憶部11に記憶された種々のコンピュータプログラムを実行することによってデータ送信装置10における種々の処理を実現する。制御部12が実行するコンピュータプログラムは、記憶部11に予め記憶されてもよく、磁気記憶媒体、光学記憶媒体、半導体記憶媒体などのコンピュータ読み取り可能な記憶媒体、または通信部15を介して提供されて記憶部11に記憶されてもよい。制御部12が実現する機能モジュールについては、後で詳述する。
監視部13は、周囲の状況を監視して、監視した周囲の状況に関する監視データを取得して制御部12に渡す。監視部13は、監視データを取得した取得時刻に関する時刻情報を制御部12に渡してもよい。例えば、監視部13は、監視エリアの異なる場所に異なる角度で設置される監視カメラ、赤外線センサ、超音波センサ、温度センサ、雨量センサ、ガスセンサなど、監視する対象や目的に応じた種々のセンサで構成することができる。データ送信装置10は、複数の監視部13を有してもよい。
本実施例において、監視部13は、データ送信装置10に組み込まれて一体の装置を構成する例を示したが、データ送信装置10から独立した別個の監視装置でもよい。この場合、監視装置およびデータ送信装置10は、互いを接続する有線/無線通信回線の通信インターフェイスを有し、この通信インターフェイスを介して監視装置からデータ送信装置10に監視データが送信される。
位置検出部14は、データ送信装置10の位置を検出し、検出した位置に関する情報を制御部12に渡す。位置情報は、緯度経度高度などの絶対位置でもよいし、ある地点からの相対位置でもよい。例えば、位置検出部14は、GPS、無線通信網、加速度センサやジャイロスコープなどを用いた移動量測定などを利用してデータ送信装置10の位置を検出することができる。位置検出部14は、監視部13がデータ送信装置10とは別個の監視装置である場合、該監視装置が有してもよい。この場合、監視装置の位置検出部は、監視装置の位置情報を取得し、取得した位置情報を監視データと同様に有線/無線通信回線を介してデータ送信装置10に送信することができる。
通信部15は、データ記憶装置20に接続される有線/無線通信回線との通信インターフェイスである。通信部15は、データ記憶装置20との間で通信網90を介してデータを送受信する。
図2は、データ送信装置10における制御部12の機能ブロック図である。図2に示すように、制御部12は、記憶部11に記憶されたコンピュータプログラムを実行することにより実現される機能モジュールとして、監視データ取得手段121と、時刻情報取得手段122と、位置情報取得手段123と、パケット生成手段124と、を有する。
監視データ取得手段121は、監視部13から監視データを受け取り、取得した監視データをパケット生成手段124に渡す。監視データ取得手段121は、監視部13が監視データを取得するごとに監視データを受け取ってもよいし、周期的に監視部13から監視データを受け取ってもよい。また、監視データ取得手段121は、要求に応じて監視部13から監視データを取得してもよい。
時刻情報取得手段122は、監視データを取得した時刻に関する時刻情報を取得し、監視データの時刻情報としてパケット生成手段124に渡す。時刻情報は、現地の標準時などの絶対時刻でもよいし、ある時点からの相対時刻でもよい。
例えば、時刻情報取得手段122は、監視部13から監視データを受け取った時点でデータ送信装置10の計時部(図示せず)から読み取った時刻を監視データの時刻情報としてもよい。また、時刻情報取得手段122は、監視部13から監視データを取得した取得時刻を受け取ってもよい。
位置情報取得手段123は、位置検出部14からデータ送信装置10の位置に関する情報を取得し、監視データの位置情報としてパケット生成手段124に渡す。
パケット生成手段124は、監視データ取得手段121から受け取った監視データをパケット化して、該パケットのヘッダ部に、時刻情報取得手段122および位置情報取得手段123から受け取った監視データの時刻情報および位置情報を付加して監視データのパケットを生成する。パケット生成手段124は、生成した監視データパケットを通信部15を介してデータを記憶装置20に送信する。パケット生成手段124が行うパケット生成処理については、後で詳述する。
データ記憶装置20は、複数のデータ送信装置10から通信網90を介して監視データパケットを受信して統合し、統合した統合パケットを通信網90を介してデータ処理装置30に送信する。データ記憶装置20は、例えば、サーバなどの情報処理装置である。
データ記憶装置20は、通信網90上でデータ処理装置30よりデータ送信装置10に近い位置に配置されることが好ましい。例えば、データ記憶装置20は、通信事業者が提供する通信網などの広域通信網内に配置されるネットワークサーバでもよい。
図1に示すように、データ記憶装置20は、記憶部21と、制御部22と、通信部23と、を有する。
記憶部21は、データ記憶装置20において実行される種々のコンピュータプログラムのコードおよびデータを記憶する。例えば、記憶部21は、RAM、ROM、EPROMなどの半導体メモリを有することができる。また、記憶部21は、磁気記憶装置、光学記憶装置などの任意のタイプの記憶装置を有してもよい。
図3は、データ記憶装置20における記憶部21のブロック図である。図3に示すように、データ記憶装置20の記憶部21は、グループ情報記憶部211と、受信パケット記憶部212と、を有する。
グループ情報記憶部211は、監視データを統合するデータ送信装置10のグループを指定するグループ情報を記憶する。
図4は、グループ情報記憶部211に記憶されるグループ情報の例を示す図である。グループ情報は、データ処理装置30が同時に処理する必要がある複数の監視データの送信元であるデータ送信装置10の組み合わせを示す情報である。グループ情報は、グループ情報記憶部211に予め記憶されてもよく、磁気記憶媒体、光学記憶媒体、半導体記憶媒体などのコンピュータ読み取り可能な記憶媒体から読み取られたり、データ記憶装置20の入力部(図示せず)から入力されたり、データ処理装置30などの他の装置から通信網90を介して送信された情報などに基づいてグループ情報記憶部211に記憶されてもよい。
図4に示すように、グループ情報は、「グループメンバ」という項目を有し、データ送信装置10のアドレスなどの識別情報を用いて、グループに属する「データ送信装置A」、「データ送信装置B」および「データ送信装置D」などのデータ送信装置10を指定することができる。また、グループ情報は、「グループ条件」という項目を有し、「北緯35.68°、東経139.56°を中心とした半径1km以内の領域」に存在するという存在領域の条件によって、グループに属するデータ送信装置10を指定してもよい。グループが不変の「グループメンバ」によって固定的に設定される場合、「グループ条件」は省略してもよい。グループが存在領域などの「グループ条件」で指定される場合、データ送信装置10の移動などによりグループ情報の「グループメンバ」は更新されてもよい。固定のグループメンバやグループ条件は、グループ識別情報として用いることができるが、必要に応じて他のグループ識別情報をグループ情報に追加してもよい。
受信パケット記憶部212は、複数のデータ送信装置10から通信部23を介して受信された監視データパケットを記憶する。
制御部22は、プロセッサおよび周辺回路を有し、該プロセッサは、記憶部21に記憶された種々のコンピュータプログラムを実行することによってデータ記憶装置20における種々の処理を実現する。制御部22が実行するコンピュータプログラムは、記憶部21に予め記憶されてもよく、磁気記憶媒体、光学記憶媒体、半導体記憶媒体などのコンピュータ読み取り可能な記憶媒体または通信部23を介して提供されて記憶部21に記憶されてもよい。制御部22が実現する機能モジュールについては、後で詳述する。
通信部23は、データ送信装置10およびデータ処理装置30に接続される有線/無線通信回線との通信インターフェイスである。通信部23は、データ送信装置10との間で通信網90を介してデータを送受信したり、データ処理装置30との間で通信網90を介してデータを送受信したりするための通信インターフェイスである。
図5は、データ記憶装置20の制御部22における機能ブロック図である。図5に示すように、制御部22は、記憶部21に記憶されたコンピュータプログラムを実行することにより実現される機能モジュールとして、パケット受信手段221と、グループ情報更新手段222と、統合パケット生成手段223と、を有する。
パケット受信手段221は、データ送信装置10から送信された監視データパケットを通信部23(受信部)を介して受け取って、受信パケット記憶部212に記憶する。
グループ情報更新手段222は、受信パケット記憶部212に記憶された受信パケットの位置情報に基づいて、グループ情報記憶部211に記憶されたグループ情報を更新する。グループ情報更新手段222が行う処理については、後で詳述する。
統合パケット生成手段223は、グループ情報記憶部211のグループ情報に基づいて、受信パケット記憶部212に記憶された受信パケットの中から、統合パケットに格納する監視データを選定して統合パケットを生成する。統合パケット生成手段223は、生成した統合パケットを通信部23(送信部)を介してデータ処理装置30に送信する。統合パケット生成手段223による統合パケット生成処理については、後で詳述する。
データ処理装置30は、データ記憶装置20から通信網90を介して統合パケットを受信し、受信した統合パケットの監視データを用いて画像解析などのデータ解析を行う情報処理装置である。例えば、データ処理装置30は、複数のデータ送信装置10の監視カメラが同じ撮影領域を異なる角度から略同一時刻に撮影した画像データを、統合パケットによりデータ記憶装置20から同時に受信し、人物の姿勢や物体の立体形状などを解析して不審者や不審物を検出することができる。データ処理装置30は、例えば、ワークステーションなどの高機能情報処理装置でもよい。
図6は、データ送信装置10におけるパケット生成処理を示すフローチャートである。図6に示す処理フローは、記憶部11に記憶されたコンピュータプログラムのコードを制御部12が実行することにより実現される。パケット生成処理は、パケット生成手段124が、監視部13が取得した監視データをパケット化し、ヘッダ部分に時刻情報および位置情報を付加した監視データパケットを生成する処理である。
パケット生成手段124は、監視部13から監視データを受け取ると、監視データの取得ごとに実行するループL601を開始する(ステップS601)。ステップS601において、所定の時間以上監視データが取得されない場合や、データ記憶装置20の入力部(図示せず)またはスケジューラなどからパケット生成処理の終了が指示された場合、パケット生成手段124は処理を終了してもよい。
ループL601に入ると、パケット生成手段124は、監視データの時刻情報および位置情報を時刻情報取得手段122および位置情報取得手段123から取得する(ステップS602)。
次に、パケット生成手段124は、監視データをパケット化するにあたり、監視データを送信するのに必要なパケットの数を決定する。パケット生成手段124は、監視データ取得手段121から取得した監視データのサイズが1つのパケットのペイロードに格納可能なサイズを超える場合、監視データを複数のパケットに分けて送信する必要がある。このため、パケット生成手段124は、例えば、監視データのサイズをパケットのペイロード部に格納可能なデータサイズで除するなどして、監視データを送信するのに必要なパケットの数を決定する。監視データを複数のパケットに分割する際、パケット生成手段124は、例えば、データ処理装置30による解析処理などに必要な最小単位の監視データが複数のパケットに跨らないよう考慮してもよい。
図7は、監視データを2個のパケットに分けて送信する例を示す図である。例えば、図7に示すように、監視データ取得手段121から取得した監視データを送信するのに2個のパケットが必要な場合、パケット生成手段124は、該監視データを2つに分けて、前半の監視データ(1/2)をパケット1のペイロード部に、後半の監視データ(2/2)をパケット2のペイロード部に、格納することができる。監視データが分割された2個のパケットのそれぞれのヘッダ部には、データ送信装置10のアドレス、時刻情報および位置情報が格納される。
図6に戻ると、パケット生成手段124は、決定したパケット数に従って、監視データを送信するのに必要なパケット数分実行するループL602を開始する(ステップS603)。監視データが1つのパケットに格納される場合は、本ループL602は1度だけ実行される。
パケット生成手段124は、処理対象のパケットのヘッダ部に、ステップS602で取得した時刻情報および位置情報を格納してパケットを生成する(ステップS604)。なお、監視データを複数のパケットに分ける場合、ここでは複数のパケットで共通の時刻情報および位置情報を格納する例を示したが、パケット生成手段124は、2番目以降のパケットに、例えば、画像データのフレームレートなどの監視データ送信速度およびフレーム数などの格納済みのデータ量などを用いて、1番目のパケットの監視データの取得時刻からの相対時刻などを算出して格納してもよい。そして、パケット生成手段124は、生成した監視データパケットを通信部15を介してデータ記憶装置20に送信する(ステップS605)。
図8は、監視データパケットの構造を示す図である。図8に示すように、監視データパケットは、該パケットに格納されるデータに関する情報を有するヘッダ部と、データを格納するペイロード部と、を有する。パケット生成手段124が送信する監視データパケットは、ヘッダ部に送信元データ送信装置10のアドレス、時刻情報および位置情報が格納され、ペイロード部に監視データが格納される。データ送信装置10の通信アドレスは、例えば、IPアドレスおよびポート番号が用いられ、通信網90上で一意である場合にはデータ送信装置10の識別情報としても用いることができる。なお、本実施例では、データを送信する単位としてパケットを用いるが、通信部15の通信プロトコルに従って、パケットのヘッダ部およびペイロード部に対応する領域を有するセグメント、フレーム、ユニットなどの他のデータ単位を用いてもよい。
図6に戻ると、パケット生成手段124は、監視データの送信に必要なパケット数分ループL602を実行し終わると(ステップS606)、ループL601を終了し(ステップS607)、ループL601の先頭に戻る。
図9は、データ記憶装置20におけるグループ情報更新処理を示すフローチャートである。図9に示す処理フローは、記憶部21に記憶されたコンピュータプログラムのコードを制御部22が実行することにより実現される。図9におけるグループ情報更新処理は、グループ情報更新手段222が、受信パケットの位置情報を用いてグループ情報のグループメンバを更新する処理である。
例えば、図4に示したグループ情報のグループ条件のように、データ送信装置10のグループがデータ送信装置10の存在する存在領域で指定される場合、人に携帯されたり車両やドローンなどに搭載されたりすることでデータ送信装置10が移動すると、グループ情報のグループメンバが変わることがある。このため、グループ情報更新手段222は、データ送信装置10の位置などの変化に応じて、グループ情報のグループメンバを更新する必要がある。図4のグループ情報の例において、グループを固定的なグループメンバで指定する場合は、本処理は不要である。ここでは、グループが所定の存在領域内に位置することをグループ条件として指定される場合に行われるグループ情報更新処理の例を示す。
グループ情報更新手段222は、所定の時間間隔ごとに実行するループL901を開始する(ステップS901)。ループL901を実行する時間間隔は、データ記憶装置20に監視データを送信するデータ送信装置10が、例えばウェアラブルデバイスのように人が持ち運びする場合には5分、自動車に装着されたセンサのように比較的高速で移動するデバイスの場合には30秒、などのように、データ送信装置10の移動速度に応じて適切に設定されることが好ましい。なお、すべてのデータ送信装置10が監視エリアの所定の位置に固定的に設置される場合、本処理は起動時に1回だけ実行すればよい。
次に、グループ情報更新手段222は、データ送信装置10ごとに実行するループL902を開始する(ステップS902)。そして、グループ情報更新手段222は、受信パケット記憶部212に記憶されている受信パケットのうち処理対象のデータ送信装置10から最後に受信した最新の受信パケットを取り出し、該最新の受信パケットのヘッダ部に書かれている位置情報を取得する(ステップS903)。
グループ情報更新手段222は、取得したデータ送信装置10の最新の位置情報に基づいて各グループのグループ情報を更新するため、グループごとに実行するループL903を開始する(ステップS904)。
グループ情報更新手段222は、ステップS903で取得した最新の位置情報が、処理対象のグループのグループ情報で指定されるグループ条件を満たすか否かを決定する(ステップS905)。例えば、図4のグループ条件の場合、グループ情報更新手段222は、対象のデータ送信装置10の最新の位置情報が「北緯35.68°、東経139.56°を中心とした半径1km以内の領域」の存在領域内を示すか否かを決定する(ステップS905)。
ステップS903で取得した最新の位置情報がグループ条件の存在領域内を示すと決定した場合(ステップS905のYes)、グループの登録条件を満たすので、グループ情報更新手段222は、対象のデータ送信装置10を対象のグループのメンバとなるようグループ情報を更新する(ステップS906)。一方、最新の位置情報が存在領域外を示すと決定した場合(ステップS905のNo)、グループの登録条件を満たさないので、グループ情報更新手段222は、対象のデータ送信装置10を対象のグループのメンバとしないように、グループ情報を更新する(ステップS907)。
対象のデータ送信装置10に関して、すべてのグループのグループ情報を更新し終えると、グループ情報更新手段222は、ループL903を終了する(ステップS908)。
すべてのデータ送信装置10に関してすべてのグループ情報を更新し終えると、グループ情報更新手段222は、ループL902を終了する(ステップS909)。
ループL902を抜けると、グループ情報更新手段222は、データ記憶装置20の入力部(図示せず)やスケジューラなどから処理終了の指示があるか否かを判定する(ステップS910)。処理終了の指示がない場合(ステップS910のNo)、グループ情報更新手段222は、処理を継続するためステップS911に進み、処理終了の指示がある場合(ステップS910のYes)、処理を終了する。
グループ情報更新手段222は、ループL901を所定の時間間隔で実行するため、該所定の時間間隔に達するまでスリープ処理を行って(ステップS911)から、ループL901の先頭(ステップS901)へ戻る(ステップS912)。
図10は、データ記憶装置20における統合パケット生成処理を示すフローチャートである。図10に示す処理フローは、記憶部21に記憶されたコンピュータプログラムのコードを制御部22が実行することにより実現される。統合パケット生成処理は、統合パケット生成手段223が、グループ情報に基づいて選定した受信パケットの監視データを統合して統合パケットを生成する処理である。
図11は、複数の監視データを統合した統合パケットを示す図である。図11の例では、グループ情報にグループメンバとして登録されているデータ送信装置A、B、Dから受信され、監視データの取得時刻と統合基準時刻「2016/12/29 14:33:00」との差が前後「1分」以内であるという統合条件を満たす3個の受信パケットの監視データが統合されて統合パケットが生成される。なお、図11では、統合パケットのペイロード部に、それぞれのデータ送信装置10のアドレスと監視データとを統合しているが、更に当該監視データの取得時刻も含めて統合してもよい。
図12は、図10の統合パケット生成処理における監視データのサイズを示す図である。図12に示すように、図10の統合パケット生成処理では、データ送信装置10から送信された元の監視データのサイズが、1つの受信パケットのペイロード内に収まり、かつ、統合パケットのペイロードにおけるデータ送信装置10一台当たりの収納可能な最大データサイズにも格納できるサイズであると仮定する。元の監視データのサイズが1つの受信パケットに収まらなかったり、1つの統合パケットに格納できないケースについては、後述する。
図10に示すように、統合パケット生成手段223は、所定の時間間隔ごとに実行するループL1001を開始する(ステップS1001)。ループL1001を実行する時間間隔は、データ処理装置30における監視データグループの処理間隔に合わせることが好ましい。例えば、データ処理装置30において100msごとに監視データグループを処理している場合、本ループも100msごとに実行するのが好ましい。
統合パケット生成手段223は、ループL1001に入って、データ送信装置10のグループごとに実行するループL1002を開始する(ステップS1002)と、監視データを統合する期間を指定するための基準となる統合基準時刻を決定する(ステップS1003)。統合基準時刻は、現在時刻としてもよく、データ送信装置10からパケットが遅れて受信されるような場合に備え、例えば、現在時刻から500ms前などのように、所定時間だけ過去の時刻を統合基準時刻としてもよい。また、統合パケット生成手段223は、データ送信装置10やデータ処理装置30などの他の装置から送信された時刻を統合基準時刻としてもよい。
次に、統合パケット生成手段223は、処理対象のグループのグループ情報に含まれているグループメンバとして登録されているデータ送信装置10ごとに実行するループL1003を開始する(ステップS1004)。
統合パケット生成手段223は、受信パケット記憶部212に記憶され処理対象のデータ送信装置10から送信された受信パケットのヘッダ部の時刻情報により監視データの取得時刻を順に確認し、該取得時刻と統合基準時刻との差が所定の閾値(例えば100ms)内である受信パケットが存在するか否かを確認する(ステップS1005)。
監視データの取得時刻と統合基準時刻との差が所定の閾値(例えば100ms)内である受信パケットが存在する場合(ステップS1005のYes)、統合パケット生成手段223は、該受信パケットのペイロード部に格納された監視データを、統合パケットのペイロード部の該当箇所に対象のデータ送信装置10のアドレスとともに格納する(ステップS1006)。
対象のデータ送信装置10の監視データの取得時刻と統合基準時刻との差が所定の閾値内である受信パケットが存在しない場合(ステップS1005のNo)、対象のデータ送信装置10から送信された受信パケットには、統合すべき監視データは存在しない。したがって、統合パケット生成手段223は、統合パケットのペイロードの該当個所に、対象のデータ送信装置10のアドレスとともに、例えば空白(スペース)を意味するASCIIコードである0x20などの監視データが存在しないことを示す値を格納する(ステップS1007)。このように監視データが存在しない旨を示した統合パケットをデータ処理装置30に送信することによって、データ記憶装置20は、グループメンバのデータ送信装置10から統合すべき監視データが送信されなかった場合であっても、統合すべき監視データが送信されるのを待つことなく、データ処理装置30に対して所定の間隔でデータを送信することを保証することができる。必要な監視データがすべて揃ってから統合パケットを送信する必要がある場合、統合パケット生成手段223は、本ステップの代わりに必要な監視データのパケットが受信されるのを待つようにしてもよい。
対象のグループのすべてのグループメンバのデータ送信装置10について、統合すべきすべての監視データを統合パケットに格納して統合パケットが完成すると、統合パケット生成手段223は、ループL1003を抜ける(ステップS1008)。ループL1003を抜けた統合パケット生成手段223は、完成した統合パケットを通信部23を介してデータ処理装置30に送信する(ステップS1009)。
すべてのグループのグループ情報について統合パケットを生成して送信し終えると、統合パケット生成手段223は、ループL1002を抜ける(ステップS1010)。そして、統合パケット生成手段223は、データ記憶装置20の入力部(図示せず)やスケジューラなどから処理終了の指示があるか否かを判定する(ステップS1011)。処理終了の指示がない場合(ステップS1011のNo)、統合パケット生成手段223は、処理を継続するためステップS1012に進み、処理終了の指示がある場合(ステップS1011のYes)、処理を終了する。
統合パケット生成手段223は、ループL1001を所定の時間間隔で実行するため、該所定の時間間隔に達するまでスリープ処理を行って(ステップS1012)から、ループL1001の先頭(ステップS1001)へ戻る(ステップS1013)。
上述の例では、データ送信装置10から送信された元の監視データのサイズが、1つの受信パケットのペイロード内に収まり、かつ、統合パケットのペイロード部の該当箇所にも格納できるサイズであると仮定したが、以下に、監視データが1つの統合パケットに格納できない場合について述べる。
実際には、特に統合パケットに関して、同一グループのデータ送信装置10から送信された監視データが、1つの統合パケットのペイロード部に収まらない場合がある。この場合、複数の統合パケットに分割して送信することになるが、本発明の目的を考慮すると、一部のデータ送信装置10からの監視データだけが先行して送信終了することのないよう、各データ送信装置10からの監視データを同じ数に分割して送ることが好ましい。
より具体的に説明するため、同一グループに指定された3台のデータ送信装置10(A、B、D)からの監視データを統合パケットで一括して送信する場合について述べる。統合パケットのペイロード部にて、データ送信装置10一台当たり400バイトのデータが送れるとし、統合すべき監視データのサイズがデータ送信装置Aのものは1200バイト、データ送信装置Bのものは600バイト、データ送信装置Dのものは300バイトであったとする。このとき、データ送信装置Aの監視データに関しては、3つの統合パケットに分けて送信する必要がある一方、データ送信装置Bについては2つ、データ送信装置Dについては1つの統合パケットで送信することになる。しかしながら、各データ送信装置10の監視データが異なる回数で送信されると、受信側のデータ処理装置30は、データ送信装置D、Bから1回目、2回目の監視データを受信した後も、データ送信装置Aからの3回目の監視データを受信するまで処理を停止して待たなければならない。
そこで、統合パケット生成手段223は、データ送信装置A、BおよびDのそれぞれの監視データを格納するのに必要な統合パケットの数を算出し、必要な統合パケットの数を比較した上で、データ送信装置A、BおよびDのそれぞれの監視データを、同一の統合パケット数で分割して統合パケットのペイロード部に格納する。例えば、統合パケット生成手段223は、データ送信装置A、BおよびDのうち最大の監視データのサイズを、統合パケットのペイロード部にデータ送信装置10一台当たり格納可能な最大データサイズで除して同一の統合パケット数とすることができる。この例では、統合パケット生成手段223は、監視データのサイズが最大であるデータ送信装置Aの必要な統合パケット数(3個)に合わせて、データ送信装置Bのデータは200バイトずつ、データ送信装置Dは100バイトずつに分け、データ送信装置B、Dのデータについても3回の送信で送信が完了するように分割サイズを調整することで、一部のデータ送信装置10からのデータ到着を待つために処理を停止するというような、データ処理装置30の負担を軽減することが可能になる。
また、温度データなどのように、監視データ1つあたりのサイズが非常に小さい場合、1つの監視データごとに統合パケットに格納するのではなく、複数の監視データをまとめて統合パケットに格納して送信することも考えられるが、この場合、一定の時間範囲でまとめることが好ましい。複数のデータ送信装置10からの音声などの波形データを処理する場合において、各装置間でサンプリングレートが異なる場合などには、データの個数やサイズでまとめるのではなく、一定の時間範囲でまとめる方がデータ処理装置30において波形データの処理がしやすいためである。
例えば、2台のデータ送信装置(A、B)があり、データ送信装置Aはサンプリングレート1kHzで1バイトの監視データを取得し、データ送信装置Bはサンプリングレート2kHzで2バイトの監視データを取得し、これらのデータ送信装置AおよびBからの監視データを統合パケットで一括して送る揚合について述べる。統合パケットのペイロードにて、データ送信装置一台当たり400バイトのデータが送信可能であるとした場合、送信可能なデータサイズを考慮して最も効率的にデータを送信しようとすると、データ送信装置Aの監視データについては400ms分(400個)を、データ送信装置Bについては100ms分(100個)を、1つの統合パケットに格納して送信することができる。しかしながら、各データ送信装置10が異なる時間範囲のデータを送信すると、受信側のデータ処理装置30は、同じ時間範囲内のデータを一括で処理したい場合に、データ送信装置Bからの残りの300ms分の監視データの到着を待たなければならない。
そこで、統合パケット生成手段223は、データ送信装置Aのデータも100ms分のみ送信するようにすることで、データ処理装置30において、必ず一定の時間範囲のデータを同時に受信することができ、一部のデータ送信装置10からのデータの到着を待つために処理を停止するというような、データ処理装置30の負担を軽減することが可能になる。
以上説明してきたように、本発明に係るデータ処理システム1は、データ処理装置30が、複数のデータ送信装置10が略同一時刻に取得した監視データを、データ記憶装置20を介して同時に取得することができる。このため、データ処理装置30は、データ処理に必要な全ての監視データが揃うまで待つ必要がないので、ほぼ遅延なく監視データを解析して不審者や放置された不審物などの異常を検出することができる。したがって、本発明によれば、送信される監視データごとの遅延のばらつきの影響を抑制し、各データ送信装置10からのデータの到着を待つことによる解析処理の停止時間の短縮を可能にする。
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。
上述した実施形態において、グループ条件によってグループとみなすデータ送信装置10の存在領域は、一定の位置を中心とした固定の領域であったが、例えば、データ送信装置10が移動可能な場合、この移動に合わせてグループ条件の存在領域の位置や大きさを動的に変更してもよい。例えば、データ送信装置10がスマートフォンである場合、グループ情報更新手段222は、移動しながら画像を撮影するスマートフォンの位置情報に合わせて、同一グループに属するデータ送信装置10の存在領域の位置を更新することができる。例えば、グループ情報のグループ条件として「データ送信装置Cを中心とした半径500m以内の領域」と指定される場合、グループ情報更新手段222は、データ送信装置Cの最新の位置や移動速度に基づいて存在領域を「北緯35.70°、東経139.55°を中心とした半径1km以内の領域」と更新することができる。そして、グループ情報更新手段222は、更新されたグループの存在領域に基づいて、各データ送信装置10が該グループの存在領域内か否かを決定することによって、該データ送信装置10が該グループのメンバであるか否かを決定してもよい。この場合、統合パケット生成手段223は、統合パケットのヘッダ部にグループ識別情報をさらに追加してデータ処理装置30に送信してもよい。これにより、データ処理装置30は、スマートフォン携帯者の近傍に存在する複数のデータ送信装置10が取得する監視データを同時に利用して分析できるようになり、見守りサービスなどをシームレスに提供できるようになる。
また、上述した実施形態において、データ送信装置10のパケット生成手段124は、監視データパケットのパケット部に時刻情報および位置情報を付加する例を示したが、本発明はこれに限定されない。例えば、グループ情報記憶部211のグループ情報においてすべてのグループが固定的なグループメンバで指定される場合など、データ記憶装置20が監視データを統合する際にデータ送信装置10の位置情報を用いる必要がない場合、パケット生成手段124は、監視データパケットに位置情報を付加しなくてもよい。この場合、上述の実施形態で示した位置検出部14、位置情報取得手段123およびグループ情報更新手段222は省略してもよい。