以下、本発明の実施形態について図面を参照して説明する。
[センサネットワークシステムの概要]
最初に、図1を参照して、本発明の実施形態に係るセンサネットワークシステムの概要について説明する。図1は、本発明の実施形態に係るセンサネットワークシステムの構成例を示す構成図である。
センサネットワークシステムSは、複数のノード装置1間で、観測対象Tの状態を交換して当該観測対象Tの状態を観測するものである。このセンサネットワークシステムSは、少なくとも1台のノード装置1が、センサ3を接続し、観測対象Tの状態を観測する。なお、センサネットワークシステムSは、機能が異なる複数のノード装置1で構成されている。図1では、センサネットワークシステムSを、観測ノード1A、制御ノード1B、状態推定ノード1C、インタフェースノード1D、複合ノード1Eとで構成した例を示している。このセンサネットワークシステムSは、各ノード装置1を通信路(ネットワーク)2に接続し、ノード装置1間で、観測対象Tの状態、ノード装置1の状態等をメッセージ7で交換することで、個々のノード装置1の機能に応じて観測対象Tの状態を観測する。なお、ノード装置1は、設定値を変更されることで、それぞれの機能を有する個別のノード装置1として機能することができる。
観測ノード1Aは、センサ3から入力される観測信号に基づいて、観測対象Tの状態を観測するものである。例えば、センサ3がビデオカメラである場合、観測ノード1Aは、センサ3から入力される映像から、観測対象Tの位置を検出し、その位置情報を観測状態とする。なお、センサ3は、ビデオカメラに限らず、任意の種類、性能のもので構わない。例えば、センサ3は、距離計、レーダ、加速度センサ、ジャイロセンサ、GPS(Global Positioning System)受信機、RFID(Radio Frequency Identification)タグ受信機、温度センサ、湿度センサ、風力計、風向計、気圧センサ、ガス検知センサ等、あらゆるセンサから、観測対象Tを観測する際の用途に応じて必要な種類、性能のものを、必要な数だけ組み合わせて使用することができる。
制御ノード1Bは、センサ3を制御する制御装置4を接続し、通信路2を介して取得した観測対象Tの状態に応じて制御装置4を制御するものである。例えば、制御装置4が、ビデオカメラ(センサ3)の雲台である場合、制御ノード1Bは、現在のパン、チルト等を観測信号として入力し、観測状態である観測対象Tの位置情報に基づいて、観測対象Tを追跡するためのパン、チルト等の制御信号を制御装置4に出力する。なお、制御ノード1Bは、雲台を制御するものに限定されず、センサ3の種類に応じた制御信号を入出力するものとして構成することができる。
状態推定ノード1Cは、通信路2を介して取得した観測対象Tの状態を逐次推定するものである。例えば、状態推定ノード1Cは、時々刻々と変化する観測対象Tの位置情報に基づいて、観測対象Tの現在位置あるいは未来位置を推定する。なお、状態推定ノード1Cは、位置推定に限らず、気圧推定、温度推定等、センサ3の種類に応じた状態を推定するものとして構成することができる。
インタフェースノード1Dは、キーボード等の入力装置5を接続し、操作者が入力する入力信号を観測情報として入力し、観測対象Tの状態を任意に更新、変更するユーザインタフェースの機能を有するものである。また、インタフェースノード1Dは、表示装置等の出力装置6を接続し、観測対象Tの状態を出力装置6に出力し、操作者に観測対象Tの状態を提示するユーザインタフェースの機能を有するものでもある。また、このインタフェースノード1Dは、各ノード装置1の状態(機能)を変更するための設定値を入力するものでもある。
複合ノード1Eは、観測ノード1A、制御ノード1B、状態推定ノード1Cおよびインタフェースノード1Dの機能を複数有するものである。
このようなセンサネットワークシステムSは、種々のノード装置1のうちで、少なくとも1台の観測ノード1Aを含んだ2台以上のノード装置1でシステムを構成することができる。このシステム構成の規模は、観測対象Tに応じて変更することができる。例えば、複数の地点で観測を行う必要がある場合、観測ノード1Aを複数台とすることができる。このように、センサネットワークシステムSは、複数のノード装置1間で、各ノード装置1が保持している状態を、通信路2を介してメッセージ7で交換することで、ノード装置1間で情報を共有しつつ、効率的に観測対象Tの状態を観測することができる。
また、各ノード装置1の機能を設定値によって変更することで、自由にノード装置1の配置を変えたり、増設したり等の設計変更を容易に行うことができる。また、センサネットワークシステムSは、ノード装置1間で、観測対象Tの状態のみならず、自ノード装置あるいは他ノード装置の状態を併せてメッセージ7で交換することで、ノード装置1の負荷や故障等の状態を相互に保有し、お互いの機能を補完したり、システム全体の負荷を平滑化したりすることができる。
[センサネットワークシステムの具体例]
ここで、図2を参照して、センサネットワークシステムSを、ゴルフ場の監視を行うゴルフコース監視システムとして実現した具体例について説明する。図2は、センサネットワークシステムの一例であるゴルフコース監視システムの構成を模式的に示す模式図である。図2に示したゴルフコース監視システムSBは、ゴルフ場を観測対象空間、複数の人物を観測対象として、各人物の位置(例えば、ゴルフ場内における座標)等を人物の状態として観測するものである。
図2の例では、ゴルフコース監視システムSBは、観測ノード1A,1A,…、制御ノード1B,1B,…、状態推定ノード1C、インタフェースノード1Dおよび複合ノード1Eが通信路2によって接続されて構成されている。なお、通信路2は無線の通信路とするが、図2では、各ノード装置1を接続する論理的な経路を点線で視覚化して示している。
また、ここでは、観測ノード1Aは、センサ3としてカメラを接続し、人物を観測対象としてその位置を状態として検出する機能を有する。また、制御ノード1Bは、制御装置(例えば、雲台)が付加されたセンサ3(図中、「制御可能なセンサ」)を接続し、人物の位置に基づいて、カメラのパン、チルト等を制御する機能を有する。また、状態推定ノード1Cは、時間とともに変化する人物の位置を推定することで、制御ノード1Bが行う制御動作をスムーズに動作させる機能を有する。また、インタフェースノード1Dは、入力装置5および出力装置6を接続し、観測対象を特定したり、観測結果を出力したりする機能を有する。なお、複合ノード1Eは、これらの機能を複数有する。
そして、ゴルフコース監視システムSBは、各ノード装置1が、メッセージとして、観測対象の状態を、通信路2を介して交換することで、ゴルフ場内の人物を監視する。このように、センサを観測するノード装置(観測ノード1A)、センサを制御するノード装置(制御ノード1B)、人物の位置を推定するノード装置(状態推定ノード1C)等、各ノード装置1が機能や負荷を分散することで、ゴルフコース監視システムSBは、システム全体として効率的に人物監視を行うことができる。
以下、センサネットワークシステムS(ゴルフコース監視システムSB)を構成するノード装置1について具体的に説明する。
[ノード装置の構成]
まず、図3を参照(適宜図1参照)して、本発明の実施形態に係るノード装置の構成について説明する。図3は、本発明の実施形態に係るノード装置の構成例を示すブロック図である。ここでは、ノード装置1は、状態記憶手段10と、観測手段20と、状態受信手段30と、状態送信手段40と、制御手段50とを備える。
状態記憶手段10は、観測対象Tの状態、自ノード装置の状態および他ノード装置の状態の少なくとも1つ以上を記憶するものであって、ハードディスク、半導体メモリ等の一般的な記憶装置である。この状態記憶手段10に記憶されている状態は、観測手段20、状態受信手段30、状態送信手段40および制御手段50によって参照または更新される。
また、この状態記憶手段10には、木構造によって各種の状態種別の状態値を階層的に記憶することとする。なお、センサネットワークシステムSを、図2に示したシステム(ゴルフコース監視システムSB)として実現した場合、例えば、観測対象空間(例えば、ゴルフ場)に存在し得る複数の観測対象(例えば、人物)について、その識別子(例えば、個人を特定する番号)と、その位置(例えば、ゴルフ場内における座標)と、その色(例えば、服色)とを階層化して状態種別とし、その状態種別に対応する状態を示す状態値を対応付けて記憶することとする。ここで状態(状態種別、状態値)は、数値、数値群、写像、文字列等のいずれであっても構わない。また、状態は、一定の規則や雑音によってその内容(数値、数値群、写像、文字列等)が変化するものである。
以下、N種類(Nは“0”以上の整数)の状態を、種別(以下、状態種別という)と状態値とで特定し、i番目の状態種別をwi、その状態値をxiと記載することとする。すなわち、状態記憶手段10の全内容をX={(wi,xi)}i∈{1,2,…,N}とする。なお、状態記憶手段10に記憶される状態(wi,xi)の状態種別wiは、外部から入力される観測入力によって状態値が変化する状態種別を少なくとも1種類以上含むこととする。また、状態記憶手段10には、観測入力によって状態値が変化する際の変化の度合いを制御するためのパラメータを状態として記憶することとしてもよい。
ここで、図4を参照して、状態記憶手段10に記憶されるデータのデータ構造について説明する。図4は、本発明の実施形態に係るノード装置の状態記憶手段に記憶されるデータのデータ構造を示す模式図である。
図4に示すように、状態記憶手段10には、木構造によって各種の状態種別wiの状態値xiを階層的に記憶することとする。図4において、角丸のブロックは要素名を表し、矩形のブロックは要素の属性(属性名+属性値)を表している。また、各要素には、“0”個以上の要素(子要素)または“0”個以上の属性をとることとする。また、各属性値には、木構造のルートから当該属性値に至る経路上の要素名列および属性名により識別される状態種別の状態値が記憶される。
ここでは、要素名に、“NODE(ノード)”、“SUBJECT(機能)”、“OBJECT(観測対象)”、“ID(識別子)”、“POSITION(位置)”、“COLOR(色)”、“HYPOTHESIS(仮説)”を用い、属性名に、“name(ノード名)”、“type(ノード種別)”、“value(状態値)”、“importance(信頼度)”、“timestamp(更新時刻)”を用いた例を示している。
まず、要素名について説明する。なお、要素名の後ろに大括弧付の数字(例えば、整数、自然数;以下、自然数の場合で説明する。)を付加することで、同一の要素名が複数存在している場合の識別に用いることとする。
“NODE[1]”は、ノード装置1全体を特定するための要素名である。
“SUBJECT[n]”は、自ノード装置1に関する情報(属性、機能)を示す要素名である。ここで、ノード装置1が単一機能である場合、nの値は“1”であり、複合機能である場合、nは2以上の値となる。なお、ここでは、nの値を自然数としたが、整数(“0”以上)を用いてもよい(以下の説明においても同様)。
“OBJECT[n]”は、ある観測対象に関する情報(種々の状態)を示す要素名である。なお、nにより複数の観測対象を区別することができる。
“ID[n]”は、観測対象の識別子を示す要素名である。なお、nにより観測対象内に複数のアイデンティティを許容することができる。例えば、観測対象が人物である場合、その人物の顔、手等のそれぞれに状態を持たせることも可能である。ここでは、nを“1”とする。
“POSITION[n]”は、観測対象の位置を示す要素名である。なお、nにより観測対象が複数位置に同時に存在する可能性を許容することができる。ここでは、nを“1”とする。
“COLOR[n]”は、観測対象の色を示す要素名である。なお、nにより観測対象に複数色が存在する可能性を許容することができる。
“HYPOTHESIS[n]”は、状態値に関する仮説を示す要素名である。nにより複数の仮説を許容することができ、例えば、状態値の確率的な分布をモンテカルロ近似等によって求めることが可能になる。
次に、属性名について説明する。“name”は、ノード装置1に付された固有の名前(ノード名)を示す属性名である。また、“type”は、ノード装置1の機能(ノード種別)を示す属性名である。“value”は、状態値を示す属性名である。なお、この属性名に対応付けられた状態値は、“POSITION”要素の属性である場合は、観測対象空間(ゴルフ場)内における座標であり、“COLOR”要素の属性である場合は、RGB値の値を示すことになる。“importance”は、状態値の信頼度を示す属性名である。また、“timestamp”は、状態値の最終更新時刻を示す属性名である。
この例で示した属性名を用いることで、逐次モンテカルロ(SMC:Sequential Monte Carlo)法やパーティクル(粒子)フィルタ(以下、SMC等という)における個々の仮説あるいは個々のパーティクル(粒子)の持つ状態値と、個々の仮説あるいは個々のパーティクル(粒子)の持つ重み(weightあるいはimportance weight)値と、更新時刻とを、記憶することができる。これによって、SMC等を利用することが可能になり、精度の高い観測対象の観測が可能になる。
以下、状態記憶手段10のデータ構造における階層構造について説明する。例えば、図4の例では、状態の全体集合Xを“NODE”とし、この“NODE”要素には、子要素として“SUBJECT”要素が1つと、“OBJECT”要素が2つ存在する。さらに、“SUBJECT”要素には、“name”属性、“type”属性が各1個対応付けられ、それらの属性値は、それぞれ“AGENT_1(対象物)”、“TRACKER(追跡)”である。これによって、センサネットワークシステムSが、対象物の追跡を行うシステムであることを示している。
また、第1の“OBJECT”要素には、“ID”要素が1つ、“POSITION”要素が1つ、“COLOR”要素が1つ存在する。そして、この第1の“OBJECT”要素の“ID”要素には、“HYPOTHESIS”要素が2つ存在し、各“HYPOTHESIS”要素には、“importance”属性、“value”属性、“timestamp”属性が各1個対応付けられている。他の要素についても同様に、子要素をたどって属性が対応付けられている。
ここでは、木構造のルート(“NODE”要素)から、各属性名に至るまでの要素名を順に連ねたもの(例えばNODE→OBJECT→ID→HYPOTHESIS→value)を状態種別wi、その属性値を当該状態種別wiの状態値xiとする。
なお、図4に示すように、任意の要素は、同一の要素名である子要素を複数有することとしてもよい。これによって、状態記憶手段10には、要素名に対応する状態の候補を複数記憶することができ、複数存在し得る観測対象や状態に関する仮説を表現することができる。例えば、“NODE”要素の下に存在する2つの“OBJECT”要素は、2つの観測対象が存在することを示している。また、第1の“OBJECT”要素の“ID”要素の下に存在する2つの“HYPOTHESIS”要素は、状態に関する2つの仮説が存在することを示している。複数の仮説を許容することで、状態値の確率的な分布をモンテカルロ近似することが可能になる。
このように同一名の要素が複数存在し、それぞれを区別する必要がある場合は、図4に示すように、大括弧付の数字を後置して表現することができる。例えば、“NODE”要素、第2の“OBJECT”要素、“ID”要素、第1の“HYPOTHESIS”要素の順に参照される“value”属性は、NODE[1]→OBJECT[2]→ID[1]→HYPOTHESIS[1]→valueとして表すこととする。
また、複数存在し得る同一名の要素を区別する必要がない場合や、それらの要素群を集合的に表現する場合には、当該要素に後置する大括弧の内側に*(アスタリスク)を表記することとする。例えば、“NODE”要素、第2の“OBJECT”要素、“ID”要素、“HYPOTHESIS”要素群の順に参照される“value”属性は、NODE[1]→OBJECT[2]→ID[1]→HYPOTHESIS[*]→valueと表すこととする。
これによって、SMC等における個々の仮説あるいは個々のパーティクル(粒子)の持つ状態値を“value”属性、それらの持つ重み値を“importance”属性、更新時刻を“timestamp”属性の属性値としてそれぞれ対応付けることで、SMC等における状態推定をセンサネットワークシステムSにより実現することができる。
図3に戻って、ノード装置1の構成について説明を続ける。
観測手段(観測状態更新手段)20は、外部から観測信号を入力し、状態記憶手段10に記憶されている状態を更新するものである。ここでは、観測手段20は、観測信号入力手段21と、第一状態抽出手段22と、第一状態更新手段23と、第一状態書込手段24とを備える。
観測信号入力手段21は、センサ3や入力装置5から入力される観測信号を入力し、デジタル信号に変換するものである。この観測信号入力手段21で入力、変換されたデジタル信号は、観測値として第一状態更新手段23に出力される。
例えば、ノード装置1にセンサ3としてカメラを接続する場合、観測信号入力手段21は、カメラからアナログまたはデジタルの映像信号を入力し、点順次、線順次または面順次の走査によりデジタル信号の画素値列とする。
また、例えば、ノード装置1に入力装置5としてキーボードやマウスを接続する場合、観測信号入力手段21は、キーボードから入力された信号をキーコード等の時系列のデジタル信号に変換して出力したり、マウスから入力される移動量やボタンクリック等の信号に応じて、画面上の座標値やパルス信号を生成し、デジタル信号として出力する。
第一状態抽出手段(センサ関連状態抽出手段)22は、状態記憶手段10から、予め定めた状態種別wiの状態値xiを選択的に読み出すものである。この第一状態抽出手段22で抽出された状態群(状態種別の状態値の集合)は、第一状態更新手段23に出力される。この第一状態抽出手段22が状態記憶手段10から読み出す状態値を示す状態種別は、ノード装置1に接続されたセンサ3からの観測信号により変化を受ける可能性のある状態種別を予め図示を省略した記憶手段に記憶しておくこととする。そして、第一状態抽出手段22は、当該記憶手段に記憶されている状態種別wiに対応する状態値xiを状態記憶手段10から読み出す。
例えば、センサ3からの観測信号が映像信号であって、ノード装置1が、観測対象(人物等)を追跡する機能を実現する場合、第一状態抽出手段22は、観測対象の位置や特徴に関する状態種別の状態値を抽出する。具体的には、状態記憶手段10に図4で説明した状態が記憶されている場合、第一状態抽出手段22は、観測対象の位置の情報であるNODE[1]→OBJECT[i]→POSITION[1]→HYPOTHESIS[m]以下の属性群と、観測対象の特徴(色等)の情報であるNODE[1]→OBJECT[j]→COLOR[1]→HYPOTHESIS[n]以下の属性群とから選択的に抽出する。ここで、iおよびjは異なる観測対象を区別するためのインデックス、mおよびnは異なる仮説を区別するためのインデックスである。
なお、第一状態抽出手段22は、これらのインデックスのすべての組み合わせに関して状態値を抽出することとしてもよいし、一部を抽出することとしてもよい。例えば、一部を抽出する場合、第一状態抽出手段22は、ランダムサンプリングにより、状態値のサンプルを抽出する。
この場合、状態記憶手段10内に予め定めた状態種別の状態値がK個(Kは自然数)存在した状態で、ランダムサンプリングによりN個(Nは自然数)の状態値を抽出するには、第一状態抽出手段22は、以下の〈手順A1〉〜〈手順A3〉により状態値を抽出することができる。
〈手順A1〉1以上K以下の乱数k(例えば、一様乱数)を発生させる。
〈手順A2〉K個の要素値の中からk番目の要素値を状態値として抽出する。
〈手順A3〉前記〈手順A1〉および〈手順A2〉をN回繰り返す。
また、第一状態抽出手段22は、“HYPOTHESIS”要素の“importance”属性の値(状態値)の大小に応じて、状態値を所定値幅で区分し、その区分ごとにサンプリングして出力したり、“importance”属性の値の大小に応じた重み付けによる状態値の期待値を出力したり、“importance”属性の値の大きいものから順に所定個数だけ状態値をサンプル抽出することとしてもよい。
この場合、状態記憶手段10内に予め定めた状態種別の要素値がK個(Kは自然数)存在し、“HYPOTHESIS”要素の“importance”属性の値の大小に応じてN個(Nは自然数)の状態値を抽出するには、第一状態抽出手段22は、以下の〈手順B1〉〜〈手順B6〉により状態値を抽出することができる。
〈手順B1〉K個の要素値の中のk番目の“importance”属性の要素値を状態値(πkとする)として抽出する。
〈手順B2〉以下の(1)式により正規化累積重み(wkとする)を算出する。
〈手順B3〉0以上1未満の実数値の一様乱数rを発生させる。
〈手順B4〉wk−1≦r≦wkを満たすインデックスκを求める。
〈手順B5〉“importance”属性の要素値のκ番目を状態値として抽出する。
〈手順B6〉前記〈手順B1〉〜〈手順B5〉をN回繰り返す。
以上の手順により、“importance”属性の要素値に比例する確率でサンプリングを行うことができる。この手順は、逐次モンテカルロ法やパーティクルフィルタにおける「importance sampling」に相当するものである。なお、前記〈手順B3〉における実数値は、0.5以下の量子化ステップを有する小数値で代用してもよい。例えば、実数値に代えて、IEEE754形式による浮動小数点の値を用いてもよい。
第一状態更新手段(センサ関連状態更新手段)23は、観測信号入力手段21で入力された観測値に基づいて、第一状態抽出手段22で抽出された状態種別の状態値を更新するものである。この第一状態更新手段23で更新された状態値は、第一状態書込手段24に出力される。
ここで、図5を参照(適宜図3参照)して、第一状態更新手段23の構成について詳細に説明する。図5は、本発明の実施形態に係るノード装置の第一状態更新手段の構成例を示すブロック図である。図5に示すように、第一状態更新手段23は、パターン記憶手段231と、パターン認識手段232と、状態変更手段233とを備える。
パターン記憶手段231は、観測信号入力手段21で入力された観測値と、パターン認識を行うためのパターンデータを記憶しておくものであって、ハードディスク、半導体メモリ等の一般的な記憶装置である。
例えば、ノード装置1が人物の顔を検出する機能を有するものである場合、パターン記憶手段231には、予め人物固有の特徴となるパターンデータを人物の識別子とともに記憶しておく。このパターンデータは、画像信号における人物固有の画素パターン(空間的分布や空間周波数パターン)を用いることができる。
なお、パターン記憶手段231は、ノード装置1の機能に応じて種々のパターンデータを記憶しておくことができる。例えば、ノード装置1が特定物体や特定人物を追跡する機能を有する場合、パターン記憶手段231には、追跡対象物体(人物)の色、輝度、テクスチャ、動き、形状等に関する情報をパターンデータとして記憶しておく。
ここで、色に関する情報としては、例えば、追跡対象物体に含まれる各色の頻度を表す色ヒストグラムや平均色を用いることができる。また、テクスチャに関する情報としては、例えば、追跡対象物体の画像の2次元的な輝度や色の分布をテンプレート化したものや、当該輝度や色の分布を線形または非線形に変換した値を用いることができる。この変換には、フーリエ変換や離散コサイン変換等が挙げられる。
また、動きに関する情報としては、例えば、追跡対象物体の画像の2次元的な輝度や色の分布の平均的な動きベクトル、あるいは画像内の部分的な動きベクトルの集合を用いることができる。また、形状に関する情報としては、例えば、追跡対象物体の画像内の2次元的広がり(例えば、高さ、幅等)や、輪郭線の曲がり具合を定量化したフーリエ記述子やアスペクト比、円形度、図形の位相構造を定量化したオイラー数等を用いることができる。
さらに、ノード装置1が音声により話者を特定する機能を有する場合であれば、パターン記憶手段231には、予め人物固有の音声特徴(音声パターン)を人物の識別子とともに記憶しておく。この音声特徴には、例えば、音声信号におけるメルケプストラム、スペクトル包短、基本周波数、フォルマント周波数、あるいは、それらの統計的な分布情報を用いることができる。
パターン認識手段232は、観測信号入力手段21で入力された観測値から、パターン記憶手段231に予め記憶されているパターンデータに基づいて、観測対象の状態を認識するものである。例えば、観測信号入力手段21から映像信号の画素値列を入力された場合、パターン認識手段232は、入力された画素分布(画素値列の空間的分布)と、パターン記憶手段231に記憶されている人物固有の画素パターン(空間パターンや空間周波数パターン)とを比較することで、人物を特定の人物として認識したり、人物の位置を検出したりする。
そして、パターン認識手段232は、検出した人物固有の識別子を状態変更手段233に出力する。このとき、パターン認識手段232は、検出した人物の識別子を1つ出力することとしてもよいし、複数の候補となる人物の識別子群を出力することとしてもよい。さらに、パターン認識手段232は、識別子とともに、画像特徴や認識結果の信頼度を出力することとしてもよい。この信頼度には、例えば、特徴量の類似の度合いを用いることができる。
なお、ここでは、パターン認識手段232を画素パターンによって人物を検出するものとして説明したが、ノード装置1の機能に応じて種々の認識を行うものとして機能させることができる。例えば、パターン認識手段232を、入力される映像信号から、パターン記憶手段231に記憶されている物体(人物)の色、輝度、テクスチャ、動き、形状等に関する情報に基づいて物体(あるいはその物体の位置)を認識するものとして機能させることとしてもよい。また、例えば、パターン認識手段232を、入力される音声信号から、パターン記憶手段231に記憶されている音声特徴(音声パターン)基づいて話者を認識するものとして機能させることとしてもよい。
状態変更手段233は、パターン認識手段232から入力される入力信号(状態値)に基づいて、第一状態抽出手段22から入力される状態群のうちの一部または全部の状態値を変更するものである。なお、この変更された状態群は、第一状態書込手段24に出力される。
例えば、パターン認識手段232が画像特徴や音声特徴によって観測対象の識別子を認識するものである場合、状態変更手段233は、第一状態抽出手段22から入力される入力状態群のうちで、識別子に関する情報のみを書き換えて第一状態書込手段24に出力する。また、例えば、パターン認識手段232が観測対象の位置を検出するものである場合、状態変更手段233は、第一状態抽出手段22から入力される入力状態群のうちで、位置に関する情報のみを書き換えて第一状態書込手段24に出力する。
なお、状態変更手段233は、第一状態抽出手段22から入力される入力状態群を書き換える場合、上書きにより状態値を変更することとしてもよいし、元の状態値と新しい状態値との平均値で変更することとしてもよい。
図3に戻って、ノード装置1の構成の説明を続ける。
第一状態書込手段(センサ関連状態書込手段)24は、第一状態更新手段23で更新された状態種別の状態値を状態記憶手段10に書き込むものである。なお、第一状態書込手段24は、状態記憶手段10にすでに同一の状態種別が記憶されている場合、上書きによって状態値を書き換えるものとする。また、第一状態書込手段24は、同一の状態種別が記憶されていない場合、新たに状態種別を追加して状態値を書き込むこととする。
例えば、状態種別Aの状態値a、状態種別Bの状態値bが状態記憶手段10に記憶されている状態で、第一状態書込手段24に状態種別Aの状態値a′と状態種別Cの状態値cが入力された場合、第一状態書込手段24は、状態種別Aの状態値をaからa′に書き換え、状態種別Bの状態値をbをそのまま保持し、新たに状態種別Cの状態値cを追加して状態記憶手段10に書き込む。これによって、状態記憶手段10には、状態種別A,BおよびCが存在するようになり、それぞれの状態値がa′、bおよびcとして記憶されることになる。
以上のように観測手段20を構成することで、外部から入力される観測信号に基づいて、順次、状態記憶手段10に記憶されている観測対象の状態が更新されることになる。
状態受信手段30は、通信路2を介して、他ノード装置から送信される状態群をメッセージとして受信し、状態記憶手段10に記憶されている状態を更新するものである。ここでは、状態受信手段30は、メッセージ受信手段31と、第二状態抽出手段32と、第二状態更新手段33と、第二状態書込手段34とを備える。
メッセージ受信手段31は、通信路2を介して、他ノード装置から送信される状態群のすべてまたは一部を、通信路2を介してメッセージとして受信するものである。このメッセージ受信手段31で受信された状態(状態群)は、第二状態更新手段33に出力される。なお、メッセージ受信手段31は、状態群を受信するノード装置を限定せずに、すべてのノード装置から受信することとしてもよいし、特定のノード装置、あるいは、不特定のノード装置から受信することとしてもよい。
特定のノード装置から状態群を受信する場合、メッセージ受信手段31は、物理的もしくは論理的な位置に近接する位置に配置されているノード装置を予め設定しておくことで、当該ノード装置からのみ状態群を受信することができる。また、不特定のノード装置から状態群を受信する場合、メッセージ受信手段31は、ある時間間隔で乱数を発生させることで、その乱数に応じて受信対象となるノード装置から状態群を受信することができる。なお、特定あるいは不特定のノード装置の数は、1つであっても複数であってもよいし、その数を時刻とともに変化させることとしてもよい。
また、メッセージ受信手段31は、複数の他のノード装置から送信されるメッセージから、自ノード装置へのメッセージのみを抽出して受信することとしてもよい。この場合、メッセージ受信手段31は、例えば、メッセージ内に記述された宛先のノード名に基づいて、自ノード装置宛のメッセージを判定して受信することができる。なお、受信対象となるノード装置からのメッセージを判定するには、ノード名のみならず、IP(Internet Protocol)アドレスやポート番号、あるいは、周波数分割多重(FDM)における受信周波数、時分割多重(TDM)における受信タイミング、符号分割多重(CDM)における符号系列等の受信チャンネルや受信スロットによって特定することとしてもよい。
また、メッセージ受信手段31が用いる通信プロトコルやメッセージのフォーマットは任意である。例えば、通信路2がイーサネット(登録商標)の場合、通信プロトコルとして、TCP/IPやUDP/IPを用いることができる。また、通信路2が無線通信路である場合、任意の伝送路符号化、変調方式、周波数を用いることができる。
また、メッセージのフォーマットとしては、例えば、SGML、XML等のマークアップ言語によるテキストデータや、当該データを情報源符号化(圧縮)したデータ、あるいは、木構造、リスト構造、入れ子構造で記述したバイナリデータや、当該データを情報源符号化したデータ等、任意のフォーマットを用いることができる。
ここで、図6〜図8を参照して、メッセージのフォーマットの具体例について説明する。図6および図7は、XMLフォーマットにより状態種別と状態値とを階層構造で表した記述例である。なお、図6は、状態種別を構成する要素および属性をXMLの要素として記述した例である。図7は、状態種別を構成する要素と属性とをそれぞれXMLの要素と属性として記述した例である。また、図8は、図6および図7のXMLフォーマットで記述したメッセージの元となる状態群を模式化した階層構造で表した模式図である。以下、図6のXMLフォーマットで記述されたメッセージを例として、ノード装置間で送受信されるメッセージの内容について具体的に説明する。
図6の<MESSAGE>タグ内にメッセージのデータが種々記述される。ここでは、<MESSAGE>タグ内に<SUBJECT>、<OBJECT>、<CONTROL>の各タグを記述した例を示している。
<SUBJECT>タグ内には、自ノード装置に関する情報が記述される。ここでは、<SUBJECT>タグ内に、自ノード装置のノード名(name)が“AGENT_1”であり、ノード種別が“TRACKER”であることが記述されている。さらに、自ノード装置には、レンズ<LENS>が制御対象として存在し、その状態として、絞り(iris)が“11”、ズーム〔焦点距離〕(zoom)が“24”(24mm)、焦点位置〔フォーカス、ピント〕(focus)が“12”(12m)であることが記述されている。
<OBJECT>タグ内には、観測対象に関する情報が記述される。ここでは、<OBJECT>タグ内に<ID>、<POSITION>、<COLOR>の各タグを記述した例を示している。<ID>タグによって観測対象の識別子(推定識別子)が記述され、<POSITION>タグによって観測対象の位置(推定位置)が記述され、<COLOR>タグによって観測対象の色情報が記述される。
さらに、ここでは、推定識別子<ID>および推定位置<POSITION>に関しては、2つの仮説<HYPOTHESIS>が存在し、色<COLOR>に関しては、1つの仮説<HYPOTHESIS>が存在することが記述されている。また、各仮説<HYPOTHESIS>には、仮説の信頼度(importance)、仮説の値(value)、仮説が生成された時刻(timestamp)が記述されている。
<CONTROL>タグ内には、制御対象の制御目標値が記述される。ここでは、制御対象はノード種別(type)が“TRACKER”である全ノード<NODE>であることを示し、その<NODE>群における各レンズ<LENS>の制御目標値が、絞り(iris)が“5.6”(F5.6)、ズーム〔焦点距離〕(zoom)が“28”(28mm)、焦点位置〔フォーカス、ピント〕(focus)が “infinity”(無限遠)であることを示している。
図3に戻って、ノード装置1の構成について説明を続ける。
第二状態抽出手段(ノード間状態更新用状態抽出手段)32は、状態記憶手段10から、予め定めた状態種別の状態値を選択的に読み出すものである。この第二状態抽出手段32で抽出された状態群(状態種別の状態値の集合)は、第二状態更新手段33に出力される。この第二状態抽出手段32は、出力先が第二状態更新手段33であることを除いては、第一状態抽出手段22と同一の機能を有するため、ここでは詳細な説明を省略する。
第二状態更新手段(ノード間状態更新手段)33は、メッセージ受信手段31で受信された状態群に基づいて、第二状態抽出手段32で抽出された状態種別の状態値を更新するものである。この第二状態更新手段33で更新された状態値は、第二状態書込手段34に出力される。
例えば、第二状態更新手段33は、メッセージ受信手段31で受信された状態群の状態種別と、第二状態抽出手段32で抽出された状態種別とを比較し、一致する状態種別について状態値を更新する。なお、第二状態更新手段33は、メッセージ受信手段31で受信された状態値を上書きによって更新することとしてもよいし、元の状態値と新しい状態値と間で演算を行い、その演算結果を用いて状態値を変更することとしてもよい。例えば、第二状態更新手段33は、元の状態値と新しい状態値とを予め定めた一定比率で案分することで、新しい状態値を演算することができる。
また、第二状態更新手段33は、第二状態抽出手段32で抽出された状態種別の状態値と、当該状態種別に対応するメッセージ受信手段31で受信された状態値との両者をともに残すこととしてもよい。このように、同一の状態種別について複数の状態値を存在させる場合、それぞれの状態値に図4に示したように信頼度を付与しておくこととしてもよい。この場合、例えば、メッセージ受信手段31で受信された状態値dの信頼度がα、第二状態抽出手段32で抽出された状態値eの信頼度がβのとき、第二状態更新手段33は、予め定めた“0”以上“1”以下の定数γにより、出力する2つの状態値を[状態値d,信頼度γα]および[状態値e,信頼度(1−γ)β]とする。
また、第二状態更新手段33は、状態記憶手段10に記憶されている時系列の状態値に基づいて、現在または未来の状態値を算出することとしてもよい。例えば、ある時刻tにおいて、時刻“t−2”における人物位置が“p(t−2)”、時刻“t−1”における人物位置が“p(t−1)”として状態記憶手段10に記憶されていた場合、第二状態更新手段33は、現時刻tにおける人物位置“p(t)”を推定する。例えば、第二状態更新手段33は、人物の運動を等速直線運動モデルとして、以下の(2)式により、人物位置“p(t)”を推定する。
p(t)=2p(t−1)−p(t−2) …(2)式
第二状態書込手段(ノード間状態書込手段)34は、第二状態更新手段33で更新された状態種別の状態値を状態記憶手段10に書き込むものである。この第二状態書込手段34は、入力元が第二状態更新手段33であることを除いては、第一状態書込手段24と同一の機能を有するため、ここでは詳細な説明を省略する。
以上のように状態受信手段30を構成することで、通信路2を介して受信されるメッセージに基づいて、順次、状態記憶手段10に記憶されている観測対象の状態が更新されることになる。
状態送信手段40は、通信路2を介して、状態記憶手段10に記憶されている状態群を、他ノード装置にメッセージとして送信するものである。ここでは、状態送信手段40は、第三状態抽出手段41と、メッセージ生成手段42と、メッセージ送信手段43とを備える。
第三状態抽出手段41は、状態記憶手段10から、予め定めた状態種別の状態値を選択的に読み出すものである。この第三状態抽出手段41は、出力先がメッセージ生成手段42であることを除いては、第一状態抽出手段22と同一の機能を有するため、ここでは詳細な説明を省略する。
メッセージ生成手段42は、第三状態抽出手段41で抽出された状態群(状態値)から、他のノード装置に送信するためのメッセージを生成するものである。このメッセージ生成手段42で生成されたメッセージは、メッセージ送信手段43に出力される。なお、メッセージ生成手段42が生成するメッセージのフォーマットは、メッセージ受信手段31で用いたものと同一のものであるため、説明を省略する。
メッセージ送信手段43は、メッセージ生成手段42で生成されたメッセージを、通信路2を介して、他ノード装置に送信するものである。このメッセージ送信手段43が用いる通信プロトコルは、メッセージ受信手段31で用いたものと同一のものであるため、説明を省略する。
なお、メッセージ送信手段43は、状態群を送信するノード装置を限定せずに、すべてのノード装置に送信することとしてもよいし、特定のノード装置、あるいは、不特定のノード装置に送信することとしてもよい。
例えば、特定のノード装置に状態群を送信する場合、メッセージ送信手段43は、物理的もしくは論理的な位置に近接する位置に配置されているノード装置を予め設定しておくことで当該ノード装置のみに状態群を送信することができる。また、不特定のノード装置に状態群を送信する場合、メッセージ送信手段43は、ある時間間隔で乱数を発生させることで、その乱数に応じて送信対象となるノード装置に状態群を送信することができる。この特定あるいは不特定のノード装置の数は、1つであっても複数であってもよく、その数を時刻とともに変化させることとしてもよい。
また、送信先のノード装置を指定するには、例えば、メッセージ内の宛先に送信先のノード装置のノード名を列記することとしてもよいし、送信先のIPアドレスやポート番号、あるいは、周波数分割多重における受信周波数、時分割多重における受信タイミング、符号分割多重における符号系列等の受信チャンネルや受信スロットによって指定することとしてもよい。
また、メッセージ送信手段43は、ノード装置間の物理的距離や論理的距離、ノード装置の能力や負荷、通信路2の帯域、通信遅延、通信経路の故障等のいずれか1以上の状況に応じて、メッセージを送信する宛先や、メッセージの容量を変化させることとしてもよい。
なお、ノード装置間の物理的距離としては、予め状態記憶手段10に各ノード装置の属性として物理位置(例えば、緯度・経度等)を記憶しておき、その距離を用いることができる。また、ノード装置間の論理的距離としては、各ノード装置のネットワークアドレスの差分等を用いることができる。また、ノード装置の能力や負荷は、ノード装置間で適宜その状態を交換し、状態記憶手段10に記憶しておくことで認識することができる。また、通信路2の帯域は、予め状態記憶手段10に記憶しておくことで認識することができる。また、通信路2の通信遅延、通信経路の故障等は、メッセージ送信手段43が、送信先からの応答によって適宜検出し、状態記憶手段10に記憶しておくことで認識することができる。
例えば、ノード装置間の物理的距離や論理的距離でメッセージの容量を変化させる場合、ある状態種別の状態値が複数(M個)の仮説を有する場合、メッセージ送信手段43は、距離dに応じて、全M個の仮説の中からM′個(ただし、M′は0≦M′≦Mなる整数)を選択する。なお、通信路2の負荷分散上、距離dが大きくなるほど、選択するM′個の個数を減少させることが望ましい。また、距離dが予め定めた距離よりも大きい場合は、メッセージを送信しないようにすることとしてもよい。
また、例えば、ノード装置(自ノード装置または他ノード装置)の能力や負荷で、メッセージを送信する宛先やメッセージの容量を変化させる場合、能力値が予め定めた値よりも小さいとき、あるいは、負荷が予め定めた値よりも大きいときに、メッセージ送信手段43は、メッセージの宛先数やメッセージの容量を少なくする。
また、例えば、通信路2の帯域(全帯域あるいは利用可能な帯域)が予め定めた帯域よりも狭いとき、通信遅延が予め定めた時間よりも長いとき、あるいは、通信経路の故障が検出されたとき、メッセージ送信手段43は、メッセージの宛先数やメッセージの容量を少なくしたり、一時的に停止したり等の制御を行う。
以上のように状態送信手段40を構成することで、状態記憶手段10に記憶されている観測対象の状態が、逐次、通信路2を介して他のノード装置に送信されることになる。
制御手段50は、状態記憶手段10に記憶されている状態に基づいて、外部に接続された機器(制御装置4、出力装置6)に対する制御信号を生成して出力するものである。ここでは、制御手段50は、第四状態抽出手段51と、制御情報生成手段52と、制御信号出力手段53とを備える。
第四状態抽出手段(制御関連状態抽出手段)51は、状態記憶手段10から、予め定めた状態種別の状態値を選択的に読み出すものである。この第四状態抽出手段51は、出力先が制御情報生成手段52であることを除いては、第一状態抽出手段22と同一の機能を有するため、ここでは詳細な説明を省略する。
制御情報生成手段52は、第四状態抽出手段51で抽出された状態値に基づいて、外部に接続された機器(制御装置4、出力装置6)に対する制御情報を生成するものである。この制御情報生成手段52で生成された制御情報は、制御信号出力手段53に出力される。
例えば、外部に接続された機器が、制御装置4としてカメラの姿勢やレンズの焦点距離を制御するものである場合、制御情報生成手段52は、第四状態抽出手段51で抽出された観測対象物体の状態値(位置)と、自ノード装置の制御対象であるカメラ、レンズの状態値(位置、姿勢、焦点距離)とから、観測対象物体をカメラの視野内に収めるためのカメラの姿勢、レンズの焦点距離を算出し、これらを制御装置4の制御目標値とする制御情報を生成する。
また、例えば、外部に接続された機器が、出力装置6としてマンマシンインタフェースであるモニタを制御するものである場合、制御情報生成手段52は、第四状態抽出手段51で抽出された観測対象物体の状態値(例えば、位置)を、文字列や図形に変換し、これらを空間的あるいは時間的な輝度や色のパターンとしてモニタ画面上に提示するための制御情報を生成する。
なお、制御情報生成手段52は、外部に接続する機器に応じて種々の制御情報を生成するものとすることができる。例えば、制御情報生成手段52が生成する制御情報として、カメラ、マイク等のセンサ3を搭載する架台(雲台、三脚、ドリー等)の位置や姿勢を変化させるためのアクチュエータに対する制御情報、カメラ等の光学系における焦点位置、焦点距離、絞り、バックフォーカス、あおり機構、シフト機構、シャッタ、光学フィルタ、フローティング機構等を調整したり、切り替えたりするためのアクチュエータに対する制御情報とすることができる。
また、例えば、モニタやスピーカに対する制御情報、観測対象に投光する場合の光強度、色、投光パターン(空間/時間)を制御する制御器に対する制御情報、観測対象に電磁波を照射する場合の強度、周波数(波長)、変調パターン(空間/時間)を制御する制御器に対する制御情報、観測対象に音波や振動を与える場合の強度、周波数(波長)、変調パターン(空間/時間)を制御する制御器に対する制御情報とすることができる。
制御信号出力手段53は、制御情報生成手段52で生成された制御情報を、外部に接続された制御対象の機器(制御装置4、出力装置6)に制御信号として出力するものである。なお、制御信号出力手段53が出力する制御信号のインタフェースおよびプロトコルは、制御対象機器のインタフェースおよびプロトコルと一致するものとする。
例えば、インタフェースとしては、EIA−232、EIA−574等のRS−232Cの規格、EIA−422、EIA−486等の規格、USB、Bluetooth(登録商標)、IrDA、セントロニクスパラレルインタフェース、イーサネット(登録商標;10Base−5、10Base−T、100Base−TX、1000Base−T等)、VGA等の物理的インタフェースを用いることができる。
そして、制御信号出力手段53は、制御情報を、制御対象機器によって予め定められているプロトコル(通信速度、パリティビット等、TCP/IP、UDP/IP等)や、メッセージのフォーマットに応じた制御信号に変換し、物理インタフェースを介して制御対象機器に出力する。
以上のように制御手段50を構成することで、状態記憶手段10に記憶されている観測対象の状態に応じて、制御対象の機器(制御装置4、出力装置6)を制御することが可能になる。
以上、ノード装置1の構成について説明したが、ノード装置1は、必ずしも図3で説明した構成をすべて備える必要はない。すなわち、ノード装置1を、図1で説明した観測ノード1A、制御ノード1B、状態推定ノード1Cとして機能させる場合、それぞれノード装置1から、観測手段20、状態受信手段30、状態送信手段40、制御手段50のいずれかを1つ以上を省略して構成することができる。
例えば、観測ノード1Aは、図9に示すように、ノード装置1から制御手段50を省き、センサ3を接続して構成することができる。また、制御ノード1Bは、図10に示すように、ノード装置1から状態送信手段40を省き、制御対象機器である制御装置4を接続して構成することができる。また、状態推定ノード1Cは、図11に示すように、ノード装置1から観測手段20と、制御手段50とを省いて構成することができる。また、ノード装置1にキーボード等の入力装置5、モニタ等の出力装置6を接続することで、図12に示すようにインタフェースノード1Dとして構成することもできる。
さらに、ノード装置1は、観測手段20、状態受信手段30、状態送信手段40、制御手段50のいずれかを複数備えて、図1で説明した複合ノード1Eを構成することができる。例えば、図13に示すように、ノード装置1の観測手段20、状態受信手段30、状態送信手段40、制御手段50をそれぞれ1つ以上、状態記憶手段10と接続することで、複合ノード1Eを構成する。これによって、1つの複合ノード1Eで複数の観測対象を観測することができ、さらに、複数の制御対象を制御することができる。
また、ノード装置1は、図示を省略したCPUやメモリを搭載した一般的なコンピュータで実現することができる。このとき、ノード装置1は、各ブロック(観測手段20、状態受信手段30、状態送信手段40、制御手段50)をモジュール化し、個々のブロックの機能を省いて構成することで、観測ノード1A、制御ノード1B、状態推定ノード1C、インタフェースノード1Dを実現することができる。あるいは、同一機能のモジュールを複数備えることで、複合ノード1Eを実現することができる。
[センサネットワークシステムの動作]
次に、図14〜図18を参照して、センサネットワークシステムの動作について説明する。ここでは、センサネットワークシステムの動作例として、センサネットワークシステムが、図2に示したゴルフコース監視システムSBであって、人物を観測対象とし、カメラの雲台を制御対象として機能する動作について説明する。なお、以下の説明では、観測ノード1A、制御ノード1B、状態推定ノード1C、インタフェースノード1Dの順番に動作説明を行うが、各ノードは、メッセージ通信を行いながら並列で動作を行う。
(観測ノードの動作)
まず、観測ノード1Aの動作について、図14を参照(構成については適宜図9、図5参照)して説明する。図14は、観測ノードの動作を示すフローチャートである。ここでは、観測ノード1Aは、カメラが撮影した映像信号によって、観測対象である人物の位置を観測する機能を有しているものとする。
観測ノード1Aは、観測手段20の観測信号入力手段21によって、カメラ(センサ3)から映像信号(観測値)を入力する(ステップS11)。
そして、観測ノード1Aは、第一状態抽出手段22によって、状態記憶手段10から、人物の位置や特徴(色等)に関する状態種別の状態値を抽出する(ステップS12)。具体的には、状態記憶手段10に、図4に示した状態が記憶されている場合、第一状態抽出手段22は、人物の位置の情報であるNODE[1]→OBJECT[i]→POSITION[1]→HYPOTHESIS[m]以下の属性群(状態種別の状態値)と、人物の特徴(色等)の情報であるNODE[1]→OBJECT[j]→COLOR[1]→HYPOTHESIS[n]以下の属性群(状態種別の状態値)とを抽出する。
そして、観測ノード1Aは、第一状態更新手段23によって、ステップS11で入力された映像信号から人物の状態(位置、色等)を検出し、ステップS12で抽出された状態値を更新する(ステップS13)。具体的には、第一状態更新手段23は、パターン認識手段232によって、ステップS11で入力された映像信号の画素分布と、パターン記憶手段231に記憶されている人物固有の画素パターンとを比較することで、人物の状態(位置、色等)を検出する。そして、第一状態更新手段23は、状態変更手段233によって、ステップS12で抽出された状態値のうちで、人物の位置、色等に関連する状態値のみを更新する。
さらに、観測ノード1Aは、第一状態書込手段24によって、ステップS13で更新された状態種別の状態値を状態記憶手段10に書き込む(ステップS14)。その後、観測ノード1Aは、第三状態抽出手段41によって、状態記憶手段10から、人物の位置や特徴(色等)に関する状態種別の状態値を読み出す(ステップS15)。そして、観測ノード1Aは、メッセージ生成手段42によって、ステップS15で読み出された状態値(状態群)からメッセージを生成し、メッセージ送信手段43によって、メッセージを他ノード装置に送信する(ステップS16)。
以上の動作によって、観測ノード1Aは、観測対象の状態の変化を他のノード装置に送信することができる。なお、ここでは、図示を省略しているが、観測ノード1Aは、他のノード装置から、状態群をメッセージとして受信した場合、逐次、状態記憶手段10を更新する。
(制御ノードの動作)
次に、制御ノード1Bの動作について、図15を参照(構成については適宜図10参照)して説明する。図15は、制御ノードの動作を示すフローチャートである。ここでは、制御ノード1Bは、パン、チルト等がアクチュエータによって操作が可能な雲台を制御する機能を有しているものとする。
制御ノード1Bは、メッセージ受信手段31によって、他のノード装置(例えば、観測ノード1A)から、通信路2を介して、状態群をメッセージとして受信する(ステップS21)。
また、制御ノード1Bは、第二状態抽出手段32によって、状態記憶手段10から、人物の位置に関する状態種別の状態値を抽出する(ステップS22)。その後、制御ノード1Bは、第二状態更新手段33によって、ステップS21で受信された状態群のうちの人物の位置に関する状態種別の状態値に基づいて、ステップS22で抽出した状態値を更新し、第二状態書込手段34によって、更新された状態値を状態記憶手段10に書き込む(ステップS23)。
さらに、制御ノード1Bは、観測信号入力手段21によって、雲台のパン角およびチルト角の計測結果(αO,δO)を観測値として入力する(ステップS24)。また、制御ノード1Bは、第一状態抽出手段22によって、状態記憶手段10から、雲台の状態(パン角、チルト角)に関する状態種別の状態値を抽出する(ステップS25)。
そして、制御ノード1Bは、第一状態更新手段23によって、ステップS24で入力されたパン角およびチルト角の計測結果(αO,δO)に基づいて、ステップS25で抽出した雲台の状態(パン角、チルト角)に関する状態種別の状態値を更新し、第一状態書込手段24によって、更新された状態値を状態記憶手段10に書き込む(ステップS26)。
その後、制御ノード1Bは、第四状態抽出手段51によって、人物の位置、雲台の状態(パン角、チルト角)に関する状態種別の状態値を抽出する(ステップS27)。そして、制御ノード1Bは、制御情報生成手段52によって、ステップS27で抽出された状態値に基づいて、雲台を制御するための制御情報を生成する(ステップS28)。
ここでは、制御情報生成手段52は、雲台を制御するための制御情報として、パンおよびチルト方向の角速度制御値を生成することとする。具体的には、制御情報生成手段52は、ステップS27で抽出された人物の位置とパン角およびチルト角の計測結果(αO,δO)とに基づいて、カメラにより人物を中心に捉えるパン角およびチルト角の目標値(αT,δT)を算出する。なお、目標値(αT,δT)は、予め較正された雲台の設置位置・姿勢から、人物位置を見た場合の方位角と仰角とを座標変換することで求めることができる。そして、制御情報生成手段52は、パン角およびチルト角の目標値(αT,δT)と、計測結果(αO,δO)とのずれ量に基づいて、パンおよびチルト方向の角速度制御値(ωα,ωδ)を求める。なお、角速度制御値(ωα,ωδ)は、PID(比例積分微分)制御則に基づいて算出することができる。
そして、制御ノード1Bは、制御信号出力手段53によって、ステップS28で生成された制御情報を制御対象である雲台の制御信号に変換し出力する(ステップS29)。例えば、制御信号出力手段53は、雲台の制御が電圧値によるアナログ信号で行う必要がある場合、角速度制御値(ωα,ωδ)をデジタル/アナログ変換(D/A変換)することにより制御信号に変換し、出力する。
以上の動作によって、制御ノード1Bは、観測対象や制御対象の状態に応じて、制御対象を制御することができる。
(状態推定ノードの動作)
次に、状態推定ノード1Cの動作について、図16を参照(適宜図11参照)して説明する。図16は、状態推定ノードの動作を示すフローチャートである。ここでは、状態推定ノード1Cは、観測対象の位置を推定(予測)する機能を有しているものとする。
状態推定ノード1Cは、メッセージ受信手段31によって、他のノード装置(例えば、観測ノード1A)から、通信路2を介して、状態群をメッセージとして受信する(ステップS31)。
そして、状態推定ノード1Cは、第二状態抽出手段32によって、状態記憶手段10から、人物の位置に関する状態種別の状態値を抽出する(ステップS32)。具体的には、状態記憶手段10に、図4に示した状態が記憶されている場合、第二状態抽出手段32は、人物の位置の情報であるNODE[1]→OBJECT[i]→POSITION[1]→HYPOTHESIS[m]以下の属性群(状態種別の状態値)を抽出する。
その後、状態推定ノード1Cは、第二状態更新手段33によって、ステップS31で受信された状態群のうちの人物の位置に関する状態種別の状態値と、ステップS32で抽出された状態値とに基づいて、人物の状態(ここでは位置の状態値)を推定する(ステップS33)。そして、状態推定ノード1Cは、第二状態書込手段34によって、ステップS33で推定された状態値を、状態記憶手段10に書き込む(ステップS34)。
そして、状態推定ノード1Cは、第三状態抽出手段41によって、状態記憶手段10から、人物の位置に関する状態種別の状態値を読み出す(ステップS35)。そして、状態推定ノード1Cは、メッセージ生成手段42によって、ステップS35で読み出された状態値(状態群)からメッセージを生成し、メッセージ送信手段43によって、通信路2を介して、他ノード装置にメッセージを送信する(ステップS36)。
具体的には、例えば、ある時刻tにおいて状態記憶手段10に時刻“t−2”における人物位置“p(t−2)”が記憶されていたとする。このとき、ステップS31において、メッセージ受信手段31が、時刻“t−1”における人物位置“p(t−1)”を受信すると、ステップS32において、第二状態抽出手段32が、状態記憶手段10から時刻“t−2”における人物位置“p(t−2)”を抽出する。
そして、ステップS33において、第二状態更新手段33が、人物位置“p(t−1)”と人物位置“p(t−2)”とに基づいて、現時刻tにおける人物位置“p(t)”を推定する。その後、時刻tにおける人物位置“p(t)”が状態値として状態記憶手段10に追加登録され、さらに、他ノード装置にメッセージとして送信される。
以上の動作によって、状態推定ノード1Cは、観測対象の位置を推定(予測)して、他のノード装置に送信することができる。
(インタフェースノードの動作)
次に、インタフェースノード1Dの動作について、図17および図18を参照して説明する。図17は、インタフェースノードの入力系の動作を示すフローチャートである。図18は、インタフェースノードの出力系の動作を示すフローチャートである。ここでは、インタフェースノード1Dは、ユーザインタフェースとしての機能を有しているものとする。
まず、図17を参照(構成については適宜図12参照)して、インタフェースノード1Dが、ユーザからの指示により状態値を更新する入力系の動作について説明する。
インタフェースノード1Dは、ユーザからの指示により状態値を更新する場合、観測信号入力手段21によって、入力装置5(マウス、ジョイスティック、キーボード、ダイアル等)を介してユーザが入力した任意の状態種別の状態値を観測値として入力する(ステップS41)。
そして、インタフェースノード1Dは、第一状態抽出手段22によって、状態記憶手段10から、少なくともステップS41で入力された状態種別の状態値を抽出する(ステップS42)。
そして、インタフェースノード1Dは、第一状態更新手段23によって、ステップS141で入力された状態値で、ステップS42で抽出された状態値を更新する(ステップS43)。さらに、インタフェースノード1Dは、第一状態書込手段24によって、ステップS43で更新された状態種別の状態値を状態記憶手段10に書き込む(ステップS44)。
その後、インタフェースノード1Dは、第三状態抽出手段41によって、状態記憶手段10から状態値(状態群)を読み出す(ステップS45)。そして、インタフェースノード1Dは、メッセージ生成手段42によって、ステップS45で読み出された状態値からメッセージを生成し、メッセージ送信手段43によって、通信路2を介して、他ノード装置にメッセージを送信する(ステップS46)。
以上の動作によって、インタフェースノード1Dは、特定の状態種別の状態値をユーザの指示により変更することが可能になる。
次に、図18を参照(構成については適宜図12参照)して、インタフェースノード1Dが、ユーザに対して、観測対象等の状態を提示する出力系の動作について説明する。
インタフェースノード1Dは、メッセージ受信手段31によって、他のノード装置(例えば、観測ノード1A)から、通信路2を介して、状態群をメッセージとして受信する(ステップS51)。
そして、インタフェースノード1Dは、第二状態抽出手段32によって、状態記憶手段10から状態群を読み出し(ステップS52)、第二状態更新手段33によって、ステップS51で入力された状態群の状態値で、ステップS52で抽出された状態値を更新する(ステップS53)。そして、インタフェースノード1Dは、第二状態書込手段34によって、ステップS53で更新された状態種別の状態値を状態記憶手段10に書き込む(ステップS54)。
その後、インタフェースノード1Dは、第四状態抽出手段51によって、状態記憶手段10から、予め定めたユーザに提示する状態種別の状態値を抽出する(ステップS55)。そして、インタフェースノード1Dは、制御情報生成手段52によって、ステップS55で抽出された状態値に基づいて、出力装置6に出力するための制御情報を生成する(ステップS56)。例えば、出力装置6がディスプレイやプリンタである場合、制御情報生成手段52は、状態値を文字コードに変換する。そして、インタフェースノード1Dは、制御信号出力手段53によって、ステップS56で生成された制御情報を出力装置6の制御信号に変換し出力する(ステップS57)。
以上の動作によって、インタフェースノード1Dは、特定の状態種別の状態値をユーザの提示することが可能になる。
以上説明したように、各ノード装置1は、それぞれ状態記憶手段10に観測対象、制御対象の状態を保持し、その状態をメッセージ交換することで、各ノード装置1を固有の機能を有するノード装置に特化してシステムを構成することができる。
また、このように、センサネットワークシステムを構成することで、システム構成が大きくなる場合であっても、ノード装置1を通信路2に接続するだけで、機能を拡張することが可能になる。