(57)【要約】【課題】実時間性を保証しつつ複数のトラッキング対象を確実にトラッキングし得るトラッキング装置及び方法並びにロボット装置がなかった。【解決手段】トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うようにした。【選択図】　　　　図１０
2004054610.tif 000002
【特許請求の範囲】
【請求項１】
供給される第１の画像情報に基づき画像内に存在するトラッキング対象を当該画像内において追従するトラッキング処理を行うトラッキング装置において、
上記トラッキング対象のうち、一部の上記トラッキング対象については、所定の頻度で行う第１のループによる上記トラッキング処理を行い、他の上記トラッキング対象については、上記第１のループとは処理頻度が異なる第２のループによる上記トラッキング処理を行うトラッキング処理手段
を具えることを特徴とするトラッキング装置。
【請求項２】
上記第１のループは、速いループであって、上記第２のループは上記第１のループよりも遅いループである
ことを特徴とする請求項１に記載のトラッキング装置。
【請求項３】
上記一部のトラッキング対象は、
第１の外部モジュールにより指定された上記トラッキング対象である
ことを特徴とする請求項１に記載のトラッキング装置。
【請求項４】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成するフィルタ手段
を具え、
上記トラッキング処理手段は、
上記第１の外部モジュールにより指定された上記トラッキング対象については、当該第１の外部モジュールにより当該トラッキング対象について指定された上記解像度の上記第２の画像情報を用いて、当該第１の外部モジュールにより当該トラッキング対象について指定された頻度で、上記トラッキング処理を実行する
ことを特徴とする請求項３に記載のトラッキング装置。
【請求項５】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成するフィルタ手段
を具え、
上記トラッキング処理手段は、
上記第１の外部モジュールにより指定されていない上記他のトラッキング対象については、最も上記解像度が低い上記第２の画像情報を用いて、頻度を抑えて上記トラッキング処理を実行する
ことを特徴とする請求項３に記載のトラッキング装置。
【請求項６】
上記トラッキング処理手段は、
上記画像内の各上記トラッキング対象にそれぞれ対応させて設けられた当該トラッキング対象の属性情報を記述した第１のリストを有し、当該第１のリストに基づいて対応する上記トラッキング対象に対する上記トラッキング処理を実行すると共に、
上記トラッキング処理時に得られる各上記トラッキング対象の現在の上記属性情報に基づいて、対応する上記第１のリストの上記属性情報を順次更新する
ことを特徴とする請求項１に記載のトラッキング装置。
【請求項７】
上記トラッキング処理手段は、
上記トラッキング処理に関する各種パラメータが記述された第２のリストを有し、当該第２リストに基づいて上記トラッキング処理を実行すると共に、
上記トラッキング対象に関する所定情報を検出する第２の外部モジュールから与えられる上記情報に基づいて、上記第１及び又は第２のリストを更新する
ことを特徴とする請求項６に記載のトラッキング装置。
【請求項８】
供給される第１の画像情報に基づき画像内に存在するトラッキング対象を当該画像内において追従するトラッキング処理を行うトラッキング方法において、
上記トラッキング対象のうち、一部の上記トラッキング対象については、所定の頻度で行う第１のループによる上記トラッキング処理を行い、他の上記トラッキング対象については、上記第１のループとは処理頻度が異なる第２のループによる上記トラッキング処理を行うトラッキング処理ステップ
を具えることを特徴とするトラッキング方法。
【請求項９】
上記第１のループは、速いループであって、上記第２のループは上記第１のループよりも遅いループである
ことを特徴とする請求項８に記載のトラッキング方法。
【請求項１０】
上記一部のトラッキング対象は、
第１の外部モジュールにより指定された上記トラッキング対象である
ことを特徴とする請求項８に記載のトラッキング方法。
【請求項１１】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成する画像情報生成ステップ
を具え、
上記トラッキング処理ステップでは、
上記第１の外部モジュールにより指定された上記トラッキング対象については、当該第１の外部モジュールにより当該トラッキング対象について指定された上記解像度の上記第２の画像情報を用いて、当該第１の外部モジュールにより当該トラッキング対象について指定された頻度で、上記トラッキング処理を実行する
ことを特徴とする請求項１０に記載のトラッキング方法。
【請求項１２】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成する画像情報生成ステップ
を具え、
上記トラッキング処理ステップでは、
上記第１の外部モジュールにより指定されていない上記他のトラッキング対象については、最も上記解像度が低い上記第２の画像情報を用いて、頻度を抑えて上記トラッキング処理を実行する
ことを特徴とする請求項１０に記載のトラッキング方法。
【請求項１３】
上記トラッキング処理ステップでは、
上記画像内の各上記トラッキング対象にそれぞれ対応させて設けられた当該トラッキング対象の属性情報を記述した第１のリストに基づいて対応する上記トラッキング対象に対する上記トラッキング処理を実行すると共に、
上記トラッキング処理時に得られる各上記トラッキング対象の現在の上記属性情報に基づいて、対応する上記第１のリストの上記属性情報を順次更新する
ことを特徴とする請求項８に記載のトラッキング方法。
【請求項１４】
上記トラッキング処理ステップでは、
上記トラッキング処理に関する各種パラメータが記述された第２のリストに基づいて上記トラッキング処理を実行すると共に、
上記トラッキング対象に関する所定情報を検出する第２の外部モジュールから与えられる上記情報に基づいて、上記第１及び又は第２のリストを更新する
ことを特徴とする請求項１３に記載のトラッキング方法。
【請求項１５】
外部を撮像する撮像手段と、
上記撮像手段から出力される第１の画像情報に基づき画像内に存在するトラッキング対象を当該画像内において追従するトラッキング処理を行うトラッキング処理手段と
を具え、
上記トラッキング処理手段は、
上記トラッキング対象のうち、一部の上記トラッキング対象については、所定の頻度で行う第１のループによる上記トラッキング処理を行い、他の上記トラッキング対象については、上記第１のループとは処理頻度が異なる第２のループによる上記トラッキング処理を行う
ことを特徴とするロボット装置。
【請求項１６】
上記第１のループは、速いループであって、上記第２のループは上記第１のループよりも遅いループである
ことを特徴とする請求項１５に記載のロボット装置。
【請求項１７】
上記一部のトラッキング対象は、
上記トラッキング処理手段とは異なる第１の内部モジュールにより指定された上記トラッキング対象である
ことを特徴とする請求項１５に記載のロボット装置。
【請求項１８】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成するフィルタ手段
を具え、
上記トラッキング処理手段は、
上記第１の内部モジュールにより指定された上記トラッキング対象については、当該第１の内部モジュールにより当該トラッキング対象について指定された上記解像度の上記第２の画像情報を用いて、当該第１の内部モジュールにより当該トラッキング対象について指定された頻度で、上記トラッキング処理を実行する
ことを特徴とする請求項１７に記載のロボット装置。
【請求項１９】
上記第１の画像情報に基づいて、それぞれ解像度の異なる複数の第２の画像情報を生成するフィルタ手段
を具え、
上記トラッキング処理手段は、
上記第１の内部モジュールにより指定されていない上記他のトラッキング対象については、最も上記解像度が低い上記第２の画像情報を用いて、頻度を抑えて上記トラッキング処理を実行する
ことを特徴とする請求項１７に記載のロボット装置。
【請求項２０】
上記トラッキング処理手段は、
上記画像内の各上記トラッキング対象にそれぞれ対応させて設けられた当該トラッキング対象の属性情報を記述した第１のリストを有し、当該第１のリストに基づいて対応する上記トラッキング対象に対する上記トラッキング処理を実行すると共に、
上記トラッキング処理時に得られる各上記トラッキング対象の現在の上記属性情報に基づいて、対応する上記第１のリストの上記属性情報を順次更新する
ことを特徴とする請求項１５に記載のロボット装置。
【請求項２１】
上記トラッキング処理手段は、
上記トラッキング処理に関する各種パラメータが記述された第２のリストを有し、当該第２リストに基づいて上記トラッキング処理を実行すると共に、
上記トラッキング処理手段とは異なる上記トラッキング対象に関する所定情報を検出する第２の内部モジュールから与えられる上記情報に基づいて、上記第１及び又は第２のリストを更新する
ことを特徴とする請求項２０に記載のロボット装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はトラッキング装置及び方法並びにロボット装置に関し、例えばエンターテインメントロボットに適用して好適なものである。
【０００２】
【従来の技術】
近年、エンターテインメントロボットの開発及び商品化が盛んに行われている。そして、このようなエンターテインメントロボットとして、ＣＣＤカメラ、マイクロホン及びタッチセンサ等の各種センサが搭載され、これらセンサの出力に基づいて外部環境やユーザからの働きかけの有無を判断し、当該判断結果に基づいて自律的に行動し得るようになされたものが本願出願人により商品化されている。
【０００３】
【発明が解決しようとする課題】
ところで、かかるエンターテインメントロボットのように、外部環境等に応じて行動するロボットにおいて、最も多くの情報を与える外部センサは、通常、ＣＣＤカメラ等の視覚センサであり、中でも色情報の利用は、その低い計算コストからこれまでも盛んに行われてきた。
【０００４】
実際上、エンターテインメントロボットにおいては、インタラクションのためにユーザ（人）を発見できることが決定的に重要であり、そのようなタスクにおけるキューとして「色」が広く利用されている。これは、かかるタスクのキューとして「視差」や「テクスチャ（模様、構造）」等の情報を利用する場合に比べて計算コスト的に有利であり、また例えば「動き」情報に比べてノイズが少なく安定した処理を行えるという理由によるものである。
【０００５】
しかし、その一方で、色情報には対象依存の面が強く、例えば動き情報を用いた場合の「一定以上の速さをもつ物体を抽出する」などのような、対象に依存しない指定が難しい。このため色情報を利用したユーザの発見及び追従（トラッキング）のタスクでは、動作環境、特に照明条件の影響を非常に受け易いという欠点を抱えていた。
【０００６】
かかる欠点を補うため、環境の変化を補償できるだけの処理を組み込むことも考えられるが、この方法によると、処理速度が犠牲となる問題があり、また、そもそも太陽光から室内光までの幅広い照明環境のいずれにおいても特定対象を確実にトラッキングするためには「色の恒常性」という未だに解かれていない問題に対処する技術が必要となる。
【０００７】
このため現状では、ある特定範囲の環境条件でのみ動作を保証するか、逆に精度を犠牲にして広い範囲の条件で概ね動作するようにコントロールするのが精一杯であった。
【０００８】
またカラートラッキングは、処理コストが低いとはいえ、同時に多数のターゲットを追跡しようとした場合、トータルでの処理コストが線形に増加し、実時間内に処理が完了しないことも十分あり得る。
【０００９】
このため従来は、同時にトラッキングできるターゲット数を制限するなどの方法によって実時間性を保ってきたが、この視覚処理モジュール外の処理負荷によってトラッキングの性能が左右される危険があり、根本的な解決方法とは言い得ない問題があった。
【００１０】
本発明は以上の点を考慮してなされたもので、実時間性を保証しつつ複数のトラッキング対象を確実にトラッキングし得るトラッキング装置及び方法並びにロボット装置を提案しようとするものである。
【００１１】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、トラッキング装置において、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うトラッキング処理手段を設けるようにした。
【００１２】
この結果このトラッキング装置では、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができる。
【００１３】
また本発明においては、トラッキング方法において、トラッキング対象のうち、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うトラッキング処理ステップを設けるようにした。
【００１４】
この結果このトラッキング方法によれば、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができる。
【００１５】
さらに本発明においては、ロボット装置において、外部を撮像する撮像手段から出力される第１の画像情報に基づく画像内に存在するトラッキング対象を当該画像内において追従するトラッキング処理を行うトラッキング処理手段を設け、トラッキング処理手段が、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うようにした。
【００１６】
この結果このロボット装置では、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができる。
【００１７】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【００１８】
（１）本実施の形態によるロボットの構成
（１−１）ロボットの構成
図１において、１は全体として本実施の形態によるロボットを示し、胴体部ユニット２の前後左右にそれぞれ脚部ユニット３Ａ〜３Ｄが連結されると共に、胴体部ユニット２の前端部及び後端部にそれぞれ頭部ユニット４及び尻尾部ユニット５が連結されることにより構成されている。
【００１９】
胴体部ユニット２には、図２に示すように、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０、ＤＲＡＭ（Ｄｙｎａｍｉｃ　Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１１、フラッシュＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）１２、ＰＣ（Ｐｅｒｓｏｎａｌ　Ｃｏｍｐｕｔｅｒ）カードインターフェース１３及び信号処理回路１４が内部バス１５を介して相互に接続されることにより形成されたコントロール部１６と、このロボット１の動力源としてのバッテリ１７とが収納されている。また胴体部ユニット２には、ロボット１の向きや動きの加速度を検出するための角加速度センサ１８及び加速度センサ１９なども収納されている。
【００２０】
また頭部ユニット４には、このロボット１の「耳」に相当するマイクロホン１６、「目」に相当するＣＣＤ（Ｃｈａｒｇｅ　Ｃｏｕｐｌｅｄ　Ｄｅｖｉｃｅ　）カメラ１７、距離センサ１８、フェイスタッチセンサ１９及びヘッドタッチセンサ２０などの各種センサと、「口」に相当するスピーカ２１となどがそれぞれ所定位置に配置されると共に、頂上部にリトラクタブルヘッドライト２２が飛出し及び収納自在に配置され、かつ中段部の周囲に沿って一定間隔で複数のＬＥＤ２３が配設されている。
【００２１】
さらに各脚部ユニット３Ａ〜３Ｄの膝関節や、各脚部ユニット３Ａ〜３Ｄ及び胴体部ユニット２をそれぞれ連結する各肩関節、頭部ユニット４及び胴体部ユニット２を連結する首関節、並びにリトラクタブルヘッドライト２２の開閉駆動部（図示せず）などには、それぞれ自由度数分や必要数のアクチュエータ２４１〜２４ｎ及びこれらアクチュエータ２４１〜２４ｎとそれぞれ対をなすポテンショメータ２５１〜２５ｎが配設されている。
【００２２】
そしてこれら角速度センサ１８、加速度センサ１９、タッチセンサ２１、距離センサ２２、マイクロホン２３、スピーカ２４、ＬＥＤ、各アクチュエータ２５（２５１、２５２、２５３……）及び各ポテンショメータ２６（２６１、２６２、２６３……）は、それぞれハブ２７（２７１〜２７ｎ）を介してコントロール部１６の信号処理回路１４にツリー状に接続されている。またＣＣＤカメラ２０及びバッテリ１７は、それぞれ信号処理回路１４と直接接続されている。
【００２３】
このとき信号処理回路１４は、角速度センサ１８、加速度センサ１９、タッチセンサ２１、距離センサ２２及び各ポテンショメータ２６（２６１、２６２、２６３……）等の各種センサからそれぞれハブ２７（２７１〜２７ｎ）を介して供給されるセンサデータや、ＣＣＤカメラ２０から供給される画像データ及びマイクロホン２３から与えられる音声データを順次取り込み、これらをそれぞれ内部バス１５を介してＤＲＡＭ１１内の所定位置に順次格納する。また信号処理回路１４は、バッテリ１７から供給されるバッテリ残量を表すバッテリ残量データを順次取り込み、これをＤＲＡＭ１１内の所定位置に格納する。
【００２４】
そしてこのようにＤＲＡＭ１１に格納された各センサデータ、画像データ、音声データ及びバッテリ残量データは、この後ＣＰＵ１０がこのロボット１の動作制御を行う際に利用される。
【００２５】
実際上ＣＰＵ１０は、ロボット１の電源が投入された初期時、胴体部ユニット２の図示しないＰＣカードスロットに装填されたメモリカード２８又はフラッシュＲＯＭ１２に格納された制御プログラムをＰＣカードインターフェース１３を介して直接読み出し、これをＤＲＡＭ１１に展開する。
【００２６】
またＣＰＵ１０は、この後上述のように信号処理回路１４よりＤＲＡＭ１１に順次格納される各種センサデータ、画像データ、音声データ及びバッテリ残量データに基づいて自己及び周囲の状況や、ユーザからの指示及び働きかけの有無などを判断する。
【００２７】
さらにＣＰＵ１０は、この判断結果及びＤＲＡＭ１１に展開した制御プログラムに基づいて続く行動を決定すると共に、当該決定結果に応じた第１の駆動信号を生成してこれを必要なアクチュエータ２５（２５１、２５２、２５３……）に送出することにより、頭部ユニット４を上下左右に振らせたり、尻尾部ユニット５の尻尾５Ａを動かせたり、各脚部ユニット３Ａ〜３Ｄを駆動させて歩行させるなどの行動を行わせる。
【００２８】
またこの際ＣＰＵ１０は、必要に応じて音声信号や第２の駆動信号を生成し、これらを信号処理回路１４を介してスピーカ２４や「目」のＬＥＤに与えることにより、当該音声信号に基づく音声を外部に出力させたり、第２の駆動信号に基づいて当該ＬＥＤを所定パターンで点滅させる。
【００２９】
このようにしてこのロボット１においては、自己及び周囲の状況や、ユーザからの指示及び働きかけ等に応じて自律的に行動し得るようになされている。
【００３０】
なお信号処理回路１４の具体構成を図３に示す。この図３からも明らかなように、信号処理回路１４は、ＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ３０、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）３１、ペリフェラルインターフェース３２、タイマ３３、ＦＢＫ／ＣＤＴ（Ｆｉｌｔｅｒ　Ｂａｎｋ／Ｃｏｌｏｒ　Ｄｅｔｅｃｔｉｏｎ）３４、ＩＰＥ（Ｉｎｎｅｒ　Ｐｒｏｄｕｃｔ　Ｅｎｇｉｎｅ）３５、シリアルバスホストコントローラ３６及びシリアルバス３７がバス３８及び当該バス３８の使用権の調停を行うバスアービタ３９を順次介してバス４０に接続されると共に、当該バス４０がそれぞれＤＲＡＭインターフェース４１、ホストインターフェース４２及びＲＯＭインターフェース４３を介してＤＲＡＭ１１（図２）、ＣＰＵ１０（図２）及びフラッシュＲＯＭ１２（図２）と接続され、かつペリフェラルインターフェース３２にパラレルポート４４、バッテリマネージャ４５及びシリアルポート４６が接続されることにより構成されている。
【００３１】
この場合図２について上述した角速度センサ１８、加速度センサ１９、タッチセンサ２１、距離センサ２２、マイクロホン２３、スピーカ２４、各アクチュエータ２５（２５１、２５２、２５３……）及び各ポテンショメータ２６（２６１、２６２、２６３……）等のデバイスは、それぞれハブ２７（２７１〜２７ｎ）を介してシリアルホストコントローラ３６と接続されると共に、ＣＣＤカメラ２０（図２）はＦＢＫ／ＣＤＴ３４と接続され、かつバッテリ１７（図２）はバッテリマネージャ４５と接続されている。
【００３２】
そしてシリアルホストコントローラ３６は、接続された各デバイスのうち、角速度センサ１８、加速度センサ１９、タッチセンサ２１、距離センサ２２及び各ポテンショメータ２６（２６１、２６２、２６３……）等の各センサからそれぞれ与えられるセンサデータを順次取り込み、データの転送を司るバスマスタとして機能するＤＭＡコントローラ３０の制御のもとに、これらセンサデータをバス３８、バスアービタ３９、バス４０及びＤＲＡＭインターフェース４１を順次介してＤＲＡＭ１１に与えて記憶させる。
【００３３】
またシリアルホストコントローラ３６は、マイクロホン２３から与えられる音声データをＤＳＰ３１に送出すると共に、ＤＳＰ３１は、この音声データに対して所定の信号処理を施し、その処理結果でなる音声データを、ＤＭＡコントローラ３０の制御のもとに、バス３８、バスアービタ３９、バス４０及びＤＲＡＭインターフェース４１を順次介してＤＲＡＭ１１に転送し、これを当該ＤＲＡＭ１１内の所定の記憶領域に格納する。
【００３４】
さらにＦＢＫ／ＣＤＴ３４は、ＣＣＤカメラ２０から供給される画像データに基づいて、解像度の異なる複数の画像データを生成すると共に、これら画像データに基づく各画像について予め設定された色の抽出処理を行い、当該処理結果及び各解像度の画像データを、ＤＭＡコントローラ３０の制御のもとに、バス３８、バスアービタ３９、バス４０及びＤＲＡＭインターフェース４１を順次介してＤＲＡＭ１１（図２）に転送し、これを後述のように当該ＤＲＡＭ１１内の指定された記憶領域に格納する。
【００３５】
さらにバッテリマネージャ４５は、バッテリ１７から通知されるエネルギ残量を表すバッテリ残量データを、ＤＭＡコントローラ３０の制御のもとに、ペリフェラルインターフェース３２、バス３８、バスアービタ３９、バス４０及びＤＲＡＭインターフェース４１を順次介してＤＲＡＭ１１に転送し、これを当該ＤＲＡＭ１１内の所定の記憶領域に格納する。
【００３６】
一方、信号処理回路１４は、上述のようにＣＰＵ１０（図２）からバス１５（図２）を介して与えられる各アクチュエータ２５（２５１、２５２、２５３……）を駆動するための第１の駆動信号や、音声信号及びＬＥＤを駆動するための第２の駆動信号をホストインターフェース４２を介して入力する。
【００３７】
そして信号処理回路１４は、これらをバス４０、バスアービタ３９、バス３８及びシリアルバスホストコントローラ３７並びに対応するハブ２７（２７１〜２７ｎ）（図２）を順次介して対応するアクチュエータ２５（２５１、２５２、２５３……）（図２）や、スピーカ２４（図２）又はＬＥＤに送出する。
【００３８】
このようにして信号処理回路１４においては、各センサ、ＣＣＤカメラ２０、マイクロホン２３、スピーカ２４、各アクチュエータ２５（２５１、２５２、２５３……）などの各デバイスと、ＣＰＵ１０との間において、ＣＰＵ１０がロボット１の行動を制御するために必要な各種信号処理を行い得るようになされている。
【００３９】
（１−２）制御プログラムのソフトウェア構成
次に、このロボット１における制御プログラムのソフトウェア構成について説明する。
【００４０】
図４は、ロボット１における上述の制御プログラムのソフトウェア構成を示すものである。この図４において、デバイス・ドライバ・レイヤ５０は、この制御プログラムの最下位層に位置し、複数のデバイス・ドライバからなるデバイス・ドライバ・セット５１から構成されている。この場合各デバイス・ドライバは、ＣＣＤカメラ２０（図２）やタイマ等の通常のコンピュータで用いられるハードウェアに直接アクセスすることを許されたオブジェクトであり、対応するハードウェアからの割り込みを受けて処理を行う。
【００４１】
またロボティック・サーバ・オブジェクト５２は、デバイス・ドライバ・レイヤ５０の上位層に位置し、例えば上述の各種センサやアクチュエータ２５（２５１〜２５ｎ等のハードウェアにアクセスするためのインターフェースを提供するソフトウェア群でなるバーチャル・ロボット５３と、電源の切換えなどを管理するソフトウェア群でなるパワーマネージャ５４と、他の種々のデバイス・ドライバを管理するソフトウェア群でなるデバイス・ドライバ・マネージャ５５と、ロボット１の機構を管理するソフトウェア群でなるデザインド・ロボット５６とから構成されている。
【００４２】
マネージャ・オブジェクト５７は、オブジェクト・マネージャ５８及びサービス・マネージャ５９から構成されている。この場合オブジェクト・マネージャ５８は、ロボティック・サーバ・オブジェクト５２、ミドル・ウェア・レイヤ６０、及びアプリケーション・レイヤ６１に含まれる各ソフトウェア群の起動や終了を管理するソフトウェア群であり、サービス・マネージャ５９は、メモリカード２８（図２）に格納されたコネクションファイルに記述されている各オブジェクト間の接続情報に基づいて各オブジェクトの接続を管理するソフトウェア群である。
【００４３】
ミドル・ウェア・レイヤ６０は、ロボティック・サーバ・オブジェクト５２の上位層に位置し、画像処理や音声処理などのこのロボット１の基本的な機能を提供するソフトウェア群から構成されている。またアプリケーション・レイヤ６１は、ミドル・ウェア・レイヤ６０の上位層に位置し、当該ミドル・ウェア・レイヤ４０を構成する各ソフトウェア群によって処理された処理結果に基づいてロボット１の行動を決定するためのソフトウェア群から構成されている。
【００４４】
なおミドル・ウェア・レイヤ６０及びアプリケーション・レイヤ６１の具体なソフトウェア構成をそれぞれ図５及び図６に示す。
【００４５】
ミドル・ウェア・レイヤ６０においては、図５からも明らかなように、音階認識用、距離検出用、姿勢検出用、タッチセンサ用、動き検出用及び色認識用の各信号処理モジュール７０〜７５並びに入力セマンティクスコンバータモジュール７６などを有する認識系７７と、出力セマンティクスコンバータモジュール７７並びに姿勢管理用、トラッキング用、モーション再生用、歩行用、転倒復帰、ＬＥＤ点灯用及び音再生用の各信号処理モジュール７８〜８４などを有する出力系８５とから構成されている。
【００４６】
この場合認識系７７の各信号処理モジュール７０〜７５は、ロボティック・サーバ・オブジェクト５２のバーチャル・ロボット５３によりＤＲＡＭ１１（図２）から読み出される各センサデータや画像データ及び音声データのうちの対応するデータを取り込み、当該データに基づいて所定の処理を施して、処理結果を入力セマンティクスコンバータモジュール７６に与える。
【００４７】
入力セマンティクスコンバータモジュール７６は、これら各信号処理モジュール７０〜７５から与えられる処理結果に基づいて、「ボールを検出した」、「転倒を検出した」、「撫でられた」、「叩かれた」、「ドミソの音階が聞こえた」、「動く物体を検出した」又は「障害物を検出した」などの自己及び周囲の状況や、ユーザからの指令及び働きかけを認識し、認識結果をアプリケーション・レイヤ６１（図４）に出力する。
【００４８】
アプリケーション・レイヤ６１においては、図６に示すように、行動モデルライブラリ９０、行動切換えモジュール９１、学習モジュール９２、感情モデル９３及び本能モデル９４の５つのモジュールから構成されている。
【００４９】
この場合行動モデルライブラリ９０には、図７に示すように、「バッテリ残量が少なくなった場合」、「転倒復帰する場合」、「障害物を回避する場合」、「感情を表現する場合」、「ボールを検出した場合」などの予め選択されたいくつかの条件項目にそれぞれ対応させて、それぞれ独立した行動モデル９０１〜９０ｎが設けられている。
【００５０】
そしてこれら行動モデル９０１〜９０ｎは、それぞれ入力セマンティクスコンバータモジュール７６から認識結果が与えられたときや、最後の認識結果が与えられてから一定時間が経過したときなどに、必要に応じて後述のように感情モデル９３に保持されている対応する情動のパラメータ値や、本能モデル９４に保持されている対応する欲求のパラメータ値を参照しながら続く行動をそれぞれ決定し、決定結果を行動切換えモジュール９１に出力する。
【００５１】
なおこの実施の形態の場合、各行動モデル９０１〜９０ｎは、次の行動を決定する手法として、図８に示すような１つのノード（状態）ＮＯＤＥ０〜ＮＯＤＥｎから他のどのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移するかを各ノードＮＯＤＥ０〜ＮＯＤＥｎ間を接続するアークＡＲＣ１〜ＡＲＣｎ＋１に対してそれぞれ設定された遷移確率Ｐ１〜Ｐｎ＋１に基づいて確率的に決定する確率オートマトンと呼ばれるアルゴリズムを用いる。
【００５２】
具体的に、各行動モデル９０１〜９０ｎは、それぞれ自己の行動モデル９０１〜９０ｎを形成する各ノードＮＯＤＥ０〜ＮＯＤＥｎにそれぞれ対応させて、これらノードＮＯＤＥ０〜ＮＯＤＥｎごとの図９に示すような状態遷移表１００を有している。
【００５３】
この状態遷移表１００では、そのノードＮＯＤＥ０〜ＮＯＤＥｎにおいて遷移条件とする入力イベント（認識結果）が「入力イベント名」の行に優先順に列記され、その遷移条件についてのさらなる条件が「データ名」及び「データ範囲」の行における対応する列に記述されている。
【００５４】
従って図９の状態遷移表１００で表されるノードＮＯＤＥ１００では、「ボールを検出（ＢＡＬＬ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるそのボールの「大きさ（ＳＩＺＥ）」が「０から１０００」の範囲であることや、「障害物を検出（ＯＢＳＴＡＣＬＥ）」という認識結果が与えられた場合に、当該認識結果と共に与えられるその障害物までの「距離（ＤＩＳＴＡＮＣＥ）」が「０から１００　」の範囲であることが他のノードに遷移するための条件となっている。
【００５５】
またこのノードＮＯＤＥ１００では、認識結果の入力がない場合においても、行動モデル９０１〜９０ｎが周期的に参照する感情モデル９３及び本能モデル９４にそれそれ保持された各情動及び各欲求のパラメータ値のうち、感情モデル９３に保持された「喜び（ＪＯＹ）」、「驚き（ＳＵＲＰＲＩＳＥ）」若しくは「悲しみ（ＳＵＤＮＥＳＳ）」のいずれかのパラメータ値が「５０から１００　」の範囲であるときには他のノードに遷移することができるようになっている。
【００５６】
また状態遷移表１００では、「他のノードへの遷移確率」の欄における「遷移先ノード」の列にそのノードＮＯＤＥ０〜ＮＯＤＥｎから遷移できるノード名が列記されると共に、「入力イベント名」、「データ値」及び「データの範囲」の行に記述された全ての条件が揃ったときに遷移できる他の各ノードＮＯＤＥ０〜ＮＯＤＥｎへの遷移確率が「他のノードへの遷移確率」の欄内の対応する箇所にそれぞれ記述され、そのノードＮＯＤＥ０〜ＮＯＤＥｎに遷移する際に出力すべき行動が「他のノードへの遷移確率」の欄における「出力行動」の行に記述されている。なお「他のノードへの遷移確率」の欄における各行の確率の和は１００　〔％〕となっている。
【００５７】
従って図９の状態遷移表１００で表されるノードＮＯＤＥ１００では、例えば「ボールを検出（ＢＡＬＬ）」し、そのボールの「ＳＩＺＥ（大きさ）」が「０から１０００」の範囲であるという認識結果が与えられた場合には、「３０〔％〕」の確率で「ノードＮＯＤＥ１２０（ｎｏｄｅ　１２０）」に遷移でき、そのとき「ＡＣＴＩＯＮ１」の行動が出力されることとなる。
【００５８】
そして各行動モデル９０１〜９０ｎは、それぞれこのような状態遷移表１００として記述されたノードＮＯＤＥ０〜ＮＯＤＥｎがいくつも繋がるようにして構成されており、入力セマンティクスコンバータモジュール７６から認識結果が与えられたときなどに、対応するノードＮＯＤＥ０〜ＮＯＤＥｎの状態遷移表１００を利用して確率的に次の行動を決定し、決定結果を行動切換えモジュール９１に出力するようになされている。
【００５９】
行動切換えモジュール９１は、行動モデルライブラリ９０の各行動モデル９０１〜９０ｎからそれぞれ出力される行動のうち、予め定められた優先順位の高い行動モデル９０１〜９０ｎから出力された行動を選択し、当該行動を実行すべき旨のコマンド（以下、これを行動コマンドと呼ぶ）をミドル・ウェア・レイヤ６０の出力セマンティクスコンバータ７７に送出する。なおこの実施の形態においては、図７において下側に表記された行動モデル９０１〜９０ｎほど優先順位が高く設定されている。
【００６０】
また行動切換えモジュール９１は、行動完了後に出力セマンティクスコンバータ７７から与えられる行動完了情報に基づいて、その行動が完了したことを学習モジュール９２、感情モデル９３及び本能モデル９４に通知する。
【００６１】
一方、学習モジュール９２は、入力セマンティクスコンバータ７６から与えられる認識結果のうち、「叩かれた」や「撫でられた」など、ユーザからの働きかけとして受けた教示の認識結果を入力する。
【００６２】
そして学習モジュール９２は、この認識結果及び行動切換えモジュール９１からの通知に基づいて、「叩かれた（叱られた）」ときにはその行動の発現確率を低下させ、「撫でられた（誉められた）」ときにはその行動の発現確率を増加させるように、行動モデルライブラリ７０における対応する行動モデル９０１〜９０ｎの対応する遷移確率を変更する。
【００６３】
他方、感情モデル９３は、「喜び（ｊｏｙ　）」、「悲しみ（ｓａｄｎｅｓｓ　）」、「怒り（ａｎｇｅｒ　）」、「驚き（ｓｕｒｐｒｉｓｅ）」、「嫌悪（ｄｉｓｇｕｓｔ　）」及び「恐れ（ｆｅａｒ）」の合計６つの情動について、情動ごとにその情動の強さを表すパラメータを保持している。そして感情モデル９３は、これら各情動のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７６から与えられる「叩かれた」及び「撫でられた」などの特定の認識結果と、経過時間及び行動切換えモジュール９１からの通知となどに基づいて順次更新するようになされている。
【００６４】
具体的に感情モデル９３は、入力セマンティクスコンバータ７６からの認識結果及びそのときのロボット１の行動がその情動に対して作用する度合い（予め設定されている）と、本能モデル９４が保持している各欲求のパラメータ値及びそのときのロボット１の行動がその情動に対して作用する度合い（予め設定されている）と、他の情動から受ける抑制及び刺激の度合いと、経過時間となどに基づいて所定の演算式により算出されるその情動の変動量をΔＥ〔ｔ〕、現在のその情動のパラメータ値をＥ〔ｔ〕、認識結果等に応じてその情動を変化させる割合（以下、これを感度と呼ぶ）を表す係数をｋｅとして、所定周期で次式
【００６５】
【数１】
2004054610.tif 000003
【００６６】
を用いて次の周期におけるその情動のパラメータ値Ｅ〔ｔ＋１〕を算出する。
【００６７】
そして感情モデル９３は、この演算結果を現在のその情動のパラメータ値Ｅ〔ｔ〕と置き換えるようにしてその情動のパラメータ値を更新する。なお各認識結果や行動切換えモジュール９１からの通知に対してどの情動のパラメータ値を更新するかは予め決められており、例えば「叩かれた」といった認識結果が与えられた場合には「怒り」の情動のパラメータ値が上がり、「撫でられた」といった認識結果が与えられた場合には「喜び」の情動のパラメータ値が上がる。
【００６８】
これに対して本能モデル７４は、「運動欲（ｅｘｅｒｃｉｓｅ）」、「愛情欲（ａｆｆｅｃｔｉｏｎ）」、「食欲（ａｐｐｅｔｉｔｅ）」及び「好奇心（ｃｕｒｉｏｓｉｔｙ　）」の互いに独立した４つの欲求について、これら欲求ごとにその欲求の強さを表すパラメータを保持している。そして本能モデル９４は、これら欲求のパラメータ値を、それぞれ入力セマンティクスコンバータモジュール７６から与えられる認識結果や、経過時間及び行動切換えモジュール９１からの通知などに基づいて順次更新するようになされている。
【００６９】
具体的に本能モデル９４は、「運動欲」、「愛情欲」及び「好奇心」については、ロボット１の行動出力、経過時間及び認識結果などに基づいて所定の演算式により算出されるその欲求の変動量をΔＩ〔ｋ〕、現在のその欲求のパラメータ値をＩ〔ｋ〕、その欲求の感度を表す係数をｋｉとして、所定周期で次式
【００７０】
【数２】
2004054610.tif 000004
【００７１】
を用いて次の周期におけるその欲求のパラメータ値Ｉ〔ｋ＋１〕を算出し、この演算結果を現在のその欲求のパラメータ値Ｉ〔ｋ〕と置き換えるようにしてその欲求のパラメータ値を更新する。なお行動出力や認識結果等に対してどの欲求のパラメータ値を変化させるかは予め決められており、例えば行動切換えモジュール７１からの通知（行動を行ったとの通知）があったときには「運動欲」のパラメータ値が下がる。
【００７２】
また本能モデル９４は、「食欲」については、入力セマンティクスコンバータモジュール７６を介して与えられるバッテリ残量データに基づいて、バッテリ残量をＢＬとして、所定周期で次式
【００７３】
【数３】
2004054610.tif 000005
【００７４】
により「食欲」のパラメータ値Ｉ〔ｋ〕を算出し、この演算結果を現在の食欲のパラメータ値Ｉ〔ｋ〕と置き換えるようにして当該「食欲」のパラメータ値を更新する。
【００７５】
なお本実施の形態においては、各情動及び各欲求のパラメータ値がそれぞれ０から１００　までの範囲で変動するように規制されており、また係数ｋｅ、ｋｉの値も情動ごと及び欲求ごとにそれぞれ個別に設定されている。
【００７６】
一方、ミドル・ウェア・レイヤ４０の出力セマンティクスコンバータモジュール７７は、図５に示すように、上述のようにしてアプリケーション・レイヤ６１の行動切換えモジュール９１から与えられる「前進」、「喜ぶ」、「鳴く」又は「トラッキング」といった抽象的な行動コマンドを出力系８５の対応する信号処理モジュール７８〜８４に与える。
【００７７】
そしてこれら信号処理モジュール７８〜８４は、行動コマンドが与えられると当該行動コマンドに基づいて、その行動を行うために対応するアクチュエータ２５１〜２５ｎ（図２）に与えるべきサーボ指令値や、スピーカ２４（図２）から出力する音の音声データ及び又は「目」のＬＥＤに与える駆動データを生成し、これらのデータをロボティック・サーバ・オブジェクト５２のバーチャル・ロボット５３及び信号処理回路１４（図２）を順次介して対応するアクチュエータ２５１〜２５ｎ、スピーカ２４又はＬＥＤに順次送出する。
【００７８】
このようにしてこのロボット１においては、制御プログラムに基づいて、自己及び周囲の状況や、ユーザからの指示及び働きかけに応じた自律的な行動を行うことができるようになされている。
【００７９】
（２）ロボット１におけるトラッキングシステム１１０の構成
（２−１）トラッキングシステム１１０の全体構成
次に、このロボット１におけるトラッキングシステム１１０の構成について説明する。
【００８０】
図１０は、このロボット１におけるトラッキングシステム１１０を示すものである。この図１０からも明らかなように、ロボット１においては、ＣＣＤカメラ２０（図２）から与えられる画像データをＦＢＫ３４Ａにおいてフィルタリングすることにより解像度の異なる複数種類の画像の画像データＤ１Ａ〜Ｄ１Ｃをそれぞれ生成し、これら画像データＤ１Ａ〜Ｄ１ＣをＭＣＴ（Ｍｕｌｔｉ−ｃｏｌｏｒ　Ｔｒａｃｋｅｒ）モジュール１１１に供給すると共に、このうち所定解像度の画像データＤ１ＢをＣＤＴ３４Ｂに供給するようになされている。
【００８１】
ＣＤＴ３４Ｂは、カラートラッキングに必要な色抽出処理の一部を行うために設けられた色抽出専用のハードウェアであり、供給される画像データＤ１Ｂに基づく画像から予めＭＣＴモジュール１１１により設定された８色を高速に抽出し、当該抽出結果を色抽出画像データＤ２としてＭＣＴモジュール１１１に送出する。
【００８２】
ＭＣＴモジュール１１１は、予めメモリカード２８に格納された制御プログラムに基づき、ＣＰＵ１０（図２）によって実行されるソフトウェアモジュールであり、図１０に示すように、パラメータリスト１１２及びターゲットリスト１１３を有している。
【００８３】
ここで、パラメータリスト１１２は、他のモジュールによって設定及び更新される当該ＭＣＴモジュール１１１のトラッキング処理に関する各種パラメータが記述されたリストであり、例えば図１１に示すように、当該ＭＣＴモジュール１１１が抽出すべき色のＩＤを表す「色ＩＤ（Ｃｏｌｏｒ−ＩＤ）」や、注目すべきターゲットに対するトラッキングの優先度を表す「プライオリティ」、優先度の高いターゲット等をトラッキング処理する際にどの解像度の画像データを使用すべきか、またそのトラッキング処理をどのぐらいの頻度で行うかをそれぞれ表す「希望処理レイヤ」及び「希望処理頻度」等のパラメータが他のモジュールからの要求に応じて順次登録される。またパラメータリスト１１２には、ＭＣＴモジュール１１１が抽出できる各色の色モデルパラメータの初期値を表す「色空間パラメータ」等も予め登録されている。
【００８４】
これに対してターゲットリスト１１３は、そのときＦＢＫ３４Ａから供給される画像データＤ１Ａ〜Ｄ１Ｃに基づく画像内に存在している各ターゲットにそれぞれ対応させて設けられるリストであり、当該ターゲットの色や画像内における位置及び当該ターゲットに付与されたＩＤ等の属性情報が記述される。
【００８５】
そしてＭＣＴモジュール１１１は、これらパラメータリスト１１２に記述された各種パラメータ設定及び各ターゲットリスト１１３に記述された属性情報等に基づいて、当該ターゲットリスト１１３が作成された各ターゲットに対するトラッキング処理を実行する。
【００８６】
具体的に、ＭＣＴモジュール１１１は、これらターゲットリスト１１３が作成されたターゲットのうち、他のモジュールによりパラメータリスト１１２において「プライオリティ」、「希望処理レイヤ」及び「希望処理頻度」等が設定された注目すべき色（以下、これを注目色と呼ぶ）や注目すべきターゲット（以下、これを注目ターゲットと呼ぶ）については、トラッキングの探索範囲を制限した速いループで高速にトラッキング処理し、それ以外のターゲットについては画像全体を探索範囲とする全画面探索による遅いループでのトラッキング処理を実行する。
【００８７】
ただし、遅いループによるトラッキング処理では、最も解像度が低い画像の画像データを用い、さらにトラッキング処理の頻度をも抑えて行うようになされ、これによりトラッキングすべきターゲットが複数ある場合のＣＰＵの処理負荷を軽減し得るようになされている。
【００８８】
またＭＣＴモジュール１１１は、各ターゲットリスト１１３にそれぞれ記述されたそのターゲットの色の色モデルパラメータを過去の色モデルパラメータの観測結果に基づいて順次更新するようになされ、これによりターゲットの姿勢や位置関係の変化・照明条件の穏やかな変化などによる色の変動にも実用上十分に対応し得るようになされている。
【００８９】
ところが、照明条件等が急激に変化した場合、かかる枠組みだけでは対処しきれない。そこで、このトラッキングシステム１１０では、外部モジュールとの連帯により、特に肌色について、この問題に対処し得るようになされている。
【００９０】
具体的に、このトラッキングシステム１１０においては、照明条件の変動に伴うカラー画像の変化に影響を受け難い輝度情報にのみ依存して顔を検出する顔検出モジュール（図示せず）による顔検出結果が比較的低い頻度で定期的にＭＣＴモジュール１１１に与えられる。
【００９１】
そしてＭＣＴモジュール１１１は、この顔検出モジュールの顔検出結果を肌色領域の信頼すべき教師入力として、当該顔検出モジュールにより検出された領域の色分布を解析し、当該解析結果に基づいて現在の自己の肌色の色モデルパラメータを更新するようになされている。
【００９２】
このようにしてこのトラッキングシステム１１０においては、環境条件の急激な変化にも十分に対応でき、かくしてより一層と精度良くトラッキングを行い得るようになされている。
【００９３】
（２−２）ＭＣＴモジュール１１１の具体的処理
ここで、実際上、ＭＣＴモジュール１１１は、ロボット１の電源が投入された初期時、ＣＤＴ３４Ｂが予め定められた８色の色抽出処理を行うように当該ＣＤＴ３４Ｂを設定すると共に、上述の遅いループによるトラッキング処理の際の「希望処理レイヤ」、「希望処理頻度」及び「注目色」等として、それぞれ予め定められた初期設定値をパラメータリスト１１２に登録する。
【００９４】
なお、この実施の形態においては、遅いループでのトラッキング処理の「希望処理レイヤ」としては、最も低い解像度が設定され、「希望処理頻度」としては、３〜１０フレーム程度の頻度が設定される。またこの遅いループによるトラッキング処理は、画像内に現れる新たなターゲットを検出するための意味合いもあることから、遅いループでのトラッキング処理時の「注目色」として、顔検出のための肌色、ピンク色のボール検出のためのピンク色等が設定される。
【００９５】
そしてＭＣＴモジュール１１１は、この後他のモジュールからの要求に応じて、指定されたターゲット（注目ターゲット）の「プライオリティ」、「希望処理レイヤ」及び「希望処理頻度」など、指定された状態でのトラッキング処理を行うための各種パラメータを順次パラメータリスト１１２に登録する。
【００９６】
またＭＣＴモジュール１１１は、遅いループによるトラッキング処理時等に新たなターゲットを検出すると、そのターゲットに対するターゲットリスト１１３を作成して、当該ターゲットリスト１１３にそのときのそのターゲットの位置や大きさ及びそのターゲットの色の色モデルパラメータ（パラメータリスト１１２に記述された対応する色モデルパラメータの初期値）等を当該ターゲットの属性情報として記述すると共に、これらターゲットリスト１１３に記述された属性情報をその後のトラッキング処理結果に応じて順次更新する。
【００９７】
そしてＭＣＴモジュール１１１は、このようにして作成され、順次更新されるこれらパラメータリスト１１２及びターゲットリスト１１３に基づき、図に示すトラッキング処理手順ＲＴ１に従って、遅いループによるトラッキング処理及び速いループによるトラッキング処理を平行して実行する。
【００９８】
実際上、ＭＣＴモジュール１１１は、遅いループによるトラッキング処理時には、このトラッキング処理手順ＲＴ１をステップＳＰ０において開始後、続くステップＳＰ１において、パラメータリスト１１２に登録された遅いループに対する「希望処理レイヤ」及び「希望処理頻度」に従って、解像度の最も低い画像データＤ１Ｂを用い、全画面を探索範囲として、指定された色の抽出処理を行う。なお、指定された色がＣＤＴ３４Ｂにより抽出される色である場合には、ＭＣＴモジュール１１１は、このステップＳＰ１を省略して直ちにステップＳＰ２に進む。
【００９９】
そして、ＭＣＴモジュール１１１は、続くステップＳＰ２において、ステップＳＰ１における色抽出処理により抽出したその色の領域を分布に応じて一塊の領域ごとに分ける領域セグメント処理を実行する。
【０１００】
具体的には、ステップＳＰ１において抽出された一塊の領域ごとに、その領域を最も適合した状態で取り囲む楕円を、その大きさ、位置及び傾き等を変化させながら求める。なお、このように楕円の大きさ、位置及び傾きを変化させるのは、例えば、ターゲットまでの距離が変化したり、ターゲットが移動したり、ターゲットが傾いたりすること等に対応するためである。
【０１０１】
そしてＭＣＴモジュール１１１は、この後ステップＳＰ３に進んで、このようにして得られた各楕円と、そのときターゲットリスト１１２が作成されているターゲット（以下、適宜、これを既知のターゲットと呼ぶ）との対応付けを行う。なお、初期段階や新たなターゲットについては、ターゲットリスト１１２がないので、この場合には既知のターゲットとの対応付けは行われない。
【０１０２】
続いてＭＣＴモジュール１１１は、ステップＳＰ４に進んで、各楕円の大きさ及び位置等を、それぞれステップＳＰ３において対応付けられた各ターゲットの大きさ及び位置等として計算し、当該計算結果に基づいて対応するターゲットリスト１１２をそれぞれ更新する。なお、この際、既知のターゲットとの対応付けが行われなかった楕円については新たなターゲットとしてターゲットリスト１１２が作成されることとなる。
【０１０３】
またＭＣＴモジュール１１１は、かかるターゲットリスト１１３の更新の際には、そのターゲットリスト１１３に記述された対応するターゲットの色の色モデルパラメータについても、最大尤度適合法（ｍａｘｉｍｕｍ　ｌｉｋｅｌｉｈｏｏｄ　ａｄａｐｔａｔｉｏｎ）を利用して更新する。
【０１０４】
すなわちＭＣＴモジュール１１１は、そのターゲットに対する過去ｎステップの観測結果（色モデルパラメータ）の履歴から、次のステップにおける色モデルのパラメータを過去の既知パラメータの線形和との制約条件のもとに推定し、推定された結果を用いてその色の色領域の抽出を行い、そのサンプルによって今回の観測結果（色モデルパラメータ）を確定し、これをもとの色モデルパラメータと置き換えるようにしてターゲットリスト１１３の色モデルパラメータを更新する。モデル推定には、過去の観測結果の履歴（サンプルセット）から予測される最大尤度をもつパラメータを採用する。
【０１０５】
具体的には、次のステップにおける色モデルパラメータを、次式
【０１０６】
【数４】
2004054610.tif 000006
【０１０７】
及び次式
【０１０８】
【数５】
2004054610.tif 000007
【０１０９】
として表現し、重み係数αｎ，βｎの更新規則を最尤推定により導出する。なお、（４）式は平均であり、（５）式は分散である。またｍｎ，ｓｎはそれぞれ過去ｎステップ前の平均値と分散値であり、ｒは最大履歴数である。
【０１１０】
そして、このようにターゲットリスト１１３に記述されている色モデルパラメータを順次更新することによって、注目ターゲットの姿勢や位置変化及び照明条件の緩やかな変化などによる色の変動に実用上十分に対応することができる。
【０１１１】
次いでＭＣＴモジュール１１１は、ステップＳＰ１に戻り、この後はパラメータリスト１１２に登録された頻度でステップＳＰ１〜ステップＳＰ４を上述と同様にして繰り返す。このようにしてＭＣＴモジュール１１１は、遅いループによるトラッキング処理を実行する。
【０１１２】
一方、ＭＣＴモジュール１１１は、速いループによるトラッキング処理時、このトラッキング処理手順ＲＴ１をステップＳＰ０において開始後、続くステップＳＰ１において、他のモジュールによりパラメータリスト１１２において指定された注目色や注目ターゲットのうち、まず最も「プライオリティ」の高い注目ターゲットを選択し、その色のパラメータ（色モデルパラメータ）を対応するターゲットリスト１１３から読み出し、当該読み出した色モデルパラメータに基づいて、パラメータリスト１１２において指定されている対応する解像度の画像データＤ１Ａ〜Ｄ１Ｃを用いてその色の抽出処理を実行する。
【０１１３】
この際ＭＣＴモジュール１１１は、かかる色抽出処理を、対応するターゲットリスト１１３に登録されている当該注目ターゲットの直前の位置の周囲近傍、例えば直前の位置から上下左右に５〜１０画素分だけ広げた領域にのみ範囲（探索範囲）を限定して実行する。
【０１１４】
なお、速いループによるトラッキング処理の場合にも、抽出すべき色がＣＤＴ３４Ｂにより抽出される色である場合には、ＭＣＴモジュール１１１は、ステップＳＰ１を省略して直ちにステップＳＰ２に進む。
【０１１５】
そしてＭＣＴモジュール１１１は、続くステップＳＰ２において、ステップＳＰ１における色抽出処理の処理結果に対して上述した領域セグメント処理を実行し、この後ステップＳＰ３に進んで、当該領域セグメント処理により検出された楕円と、かかる注目ターゲットとの対応付けを行う。
【０１１６】
さらにＭＣＴモジュール１１１は、ステップＳＰ４に進んで、上述のようにステップＳＰ２において得られた楕円の大きさや位置等を計算し、当該計算結果に基づいて、対応するターゲットリスト１１３に記述されているその注目ターゲットの位置や大きさ等を更新する。またＭＣＴモジュール１１１は、当該ターゲットリスト１１３に記述されているその注目ターゲットの色の色モデルパラメータについても、上述と同様にして最大尤度適合法（ｍａｘｉｍｕｍ　ｌｉｋｅｌｉｈｏｏｄ　ａｄａｐｔａｔｉｏｎ）方式による更新を行う。
【０１１７】
そしてＭＣＴモジュール１１１は、このようにして対応するターゲットリスト１１３の更新を行うと、この後そのターゲットのトラッキングを依頼してきた他のモジュールに対してそのターゲットの現在の位置や色等の属性情報をターゲット情報として出力する。かくしてかかる他のモジュールは、このターゲット情報に基づいて、そのターゲットの動きに合わせてロボット１の頭部ユニット４を動かす等の各種処理を実行できる。
【０１１８】
さらにＭＣＴモジュール１１１は、この後この注目ターゲットについて、パラメータリスト１１２に登録された対応する「希望処理頻度」に応じた頻度で同様の処理を繰り返す。このようにしてＭＣＴモジュール１１１は、この注目ターゲットについて、指定された「希望処理レイヤ」及び「希望処理頻度」でトラッキング処理を実行する。
【０１１９】
またＭＣＴモジュール１１１は、これと平行してパラメータリスト１１２において指定された他の注目色及び注目ターゲットについても、そのときのＣＰＵ１０（図２）の処理能力に応じた数だけ「プライオリティ」の高いものから順番に、探索範囲（対応する色の抽出範囲）を制限しながら、上述と同様にしてその注目ターゲットについて指定された「希望処理レイヤ」に応じた解像度の画像データを用い、当該注目ターゲットについて指定された「希望処理頻度」に応じた頻度でトラッキング処理を実行する。
【０１２０】
このようにしてＭＣＴモジュール１１１は、他のモジュールにより指定されたターゲットについては探索範囲を制限した速いループでのトラッキング処理を行い、他のターゲットについては全画面探索による遅いループでのトラッキング処理を行い得るようになされている。
【０１２１】
一方、ＭＣＴモジュール１１１には、上述のように顔検出モジュール（図示せず）による顔検出結果が比較的低い頻度で定期的に与えられる。
【０１２２】
このときＭＣＴモジュール１１１は、この顔検出モジュールの顔検出結果に基づいて、当該顔検出モジュールにより顔領域として検出された画像平面上の領域部分の色をヒストグラム解析することにより、その領域部分の色の色モデルパラメータを取得する。
【０１２３】
そしてＭＣＴモジュール１１１は、このようにして取得した色モデルパラメータを、そのときパラメータリスト１１２に登録されている肌色の色モデルパラメータと置き換えるようにして肌色の色モデルパラメータを更新する。
【０１２４】
このようにしてＭＣＴモジュール１１１は、顔検出モジュールによる顔検出結果に基づき肌色の色モデルパラメータを順次更新するようになされ、これにより環境条件の急激な変化にも実用上十分に対応して、より一層と精度良くトラッキングを行い得るようになされている。
【０１２５】
（３）本実施の形態の動作及び効果
以上の構成において、トラッキングシステム１１０では、ＭＣＴモジュール１１１が、他のモジュールにより指定されたターゲットについては、探索範囲が制限された速いループによりトラッキング処理し、これ以外のターゲットについては全画面探索による遅いループによりトラッキング処理する。
【０１２６】
従って、このトラッキングシステム１１０においては、他のモジュールにより指定されたターゲットについては実時間を保証した精度の良いトラッキングを行いつつ、他のターゲットについても確実にトラッキングを行うことができる。
【０１２７】
またこのトラッキングシステム１１０では、顔検出モジュールによる顔検出結果を定期的にＭＣＴモジュール１１１に与えられ、ＭＣＴモジュール１１１が、この顔検出モジュールの顔検出結果に基づいてパラメータリスト１１２に記述された肌色の色モデルパラメータを修正するようにしているため、環境条件の急激な変化にも十分に対応でき、その分より一層と精度良くトラッキングを行うことができる。
【０１２８】
さらにこのトラッキングシステム１１０では、ＭＣＴモジュール１１１におけるトラッキング処理に必要な一部の色の抽出処理を専用のハードウェアであるＣＤＴ３４Ｂに任せているため、全ての色抽出処理をＭＣＴモジュール１１１において行う場合に比べてカラートラッキング処理をより高速に行うことができ、その分注目ターゲットに対するトラッキング処理の実時間性をより確実に保証できるという利点をも有している。
【０１２９】
以上の構成によれば、ＭＣＴモジュール１１１が、他のモジュールにより指定されたターゲットについては、探索範囲が制限された速いループによりトラッキング処理し、これ以外のターゲットについては全画面探索による遅いループによりトラッキング処理するようにしたことにより、他のモジュールにより指定されたターゲットについては実時間を保証した精度の良いトラッキングを行いつつ、他のターゲットについても確実にトラッキングを行うことができ、かくして実時間性を保証しつつ複数の対象を確実にトラッキングし得る。
【０１３０】
（４）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成された４脚歩行型のロボット１に適用するようにした場合について述べたが、本発明はこれに限らず、例えばヒューマノイド型のロボット装置等、この他種種の形態のロボット装置に広く適用することができ、またロボット装置以外のこの他種々の装置にも広く適用することができる。
【０１３１】
また上述の実施の形態においては、ＣＣＤカメラ２０からの画像データに基づいてそれぞれ解像度の異なる複数の画像データＤ１Ａ〜Ｄ１Ｃを生成するフィルタ手段としてのＦＢＫ３４Ａ（図１０）が３種類の解像度の画像データＤ１Ａ〜Ｄ１Ｃを生成するようにした場合について述べたが、本発明はこれに限らず、ＦＢＫ３４Ａが３種類以上の解像度の画像データＤ１Ａ〜Ｄ１Ｃを生成するようにしても良く、このようにすることによって他のモジュールがそのターゲットの重要度に応じてトラッキング処理精度をより細かく設定できるようにすることができる。
【０１３２】
さらに上述の実施の形態においては、ＭＣＴモジュール１１１が顔検出モジュールと連携して、パラメータリスト１１２に記述された肌色の色モデルパラメータを修正することで、環境条件の急激な変化にも十分に対応し得るようにした場合について述べたが、本発明はこれに限らず、ＭＣＴモジュール１１１が例えば動き検出モジュールの検出結果を利用してすばやく動くものの動きに追従できるようにしたり、視差やテクスチャを分析して物体をセグメントするモジュールの出力を利用して任意の対象物体をトラッキングできるようにしても良く、要は、ＭＣＴモジュール１１１とは異なるトラッキング対象に関する所定情報を検出する他のモジュールから与えられる当該情報に基づいて、トラッキング処理動作を規定するパラメータリスト１１２やターゲットリスト１１３を更新するようにすることによって、色以外の他の環境条件の急激な変化にも実用上十分に対応し得るトラッキングシステムを構築することができる。
【０１３３】
さらに上述の実施の形態においては、トラッキング対象のうち、一部のトラッキング対象については、探索範囲を制限した速いループによるトラッキング処理を行い、他のトラッキング対象については、画像全体を探索範囲とした遅いループによるトラッキング処理を行うトラッキング処理手段としてのＭＣＴモジュール１１１を、このロボット１全体の動作制御を司るＣＰＵ１０（図２）によって実行されるソフトウェアモジュールとして構成するようにした場合について述べたが、本発明はこれに限らず、当該ＣＰＵ１０以外の演算手段を設け、当該演算手段により実行されるソフトウェアモジュールとして構成するようにしても良い。
【０１３４】
さらに上述の実施の形態においては、速いループによるトラッキング処理時における探索範囲の制限として、探索範囲をそのターゲットの直前の位置から上下左右に５〜１０画素分だけ広げた範囲とするようにした場合について述べたが、本発明はこれに限らず、探索範囲の制限としてはこの他種々の範囲を設定することができる。
【０１３５】
【発明の効果】
以上のように本発明によれば、トラッキング装置において、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うトラッキング処理手段を設けるようにしたことにより、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができ、かくして実時間性を保証しつつ複数の対象を確実にトラッキングし得るトラッキング装置を実現できる。
【０１３６】
また本発明によれば、トラッキング方法において、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うトラッキング処理ステップを設けるようにしたことにより、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができ、かくして実時間性を保証しつつ複数の対象を確実にトラッキングし得るトラッキング方法を実現できる。
【０１３７】
さらに本発明においては、ロボット装置において、外部を撮像する撮像手段から出力される第１の画像情報に基づく画像内に存在するトラッキング対象を当該画像内において追従するトラッキング処理を行うトラッキング処理手段を設け、トラッキング処理手段が、トラッキング対象のうち、一部のトラッキング対象については、所定の頻度で行う第１のループによるトラッキング処理を行い、他のトラッキング対象については、第１のループとは処理頻度が異なる第２のループによるトラッキング処理を行うようにしたことにより、必要なトラッキング対象については実時間を保証した精度の良いトラッキングを行うことができ、またそれ以外のトラッキング対象についても確実にトラッキングを行うことができ、かくして実時間性を保証しつつ複数の対象を確実にトラッキングし得るロボット装置を実現できる。
【図面の簡単な説明】
【図１】本実施の形態によるロボットの構成を示す斜視図である。
【図２】ロボットの回路構成を示すブロック図である。
【図３】信号処理回路の構成を示すブロック図である。
【図４】制御プログラムのソフトウェア構成を示すブロック図である。
【図５】ミドル・ウェア・レイヤのソフトウェア構成を示すブロック図である。
【図６】アプリケーション・レイヤのソフトウェア構成を示すブロック図である。
【図７】行動モデルライブラリの構成を示す概念図である。
【図８】確率オートマトンの説明に供する概念図である。
【図９】状態遷移表の説明に供する概念図である。
【図１０】本実施の形態によるトラッキングシステムの構成を示すブロック図である。
【図１１】パラメータリストにおける設定パラメータの説明に供する略線図である。
【図１２】トラッキング処理手順を示すフローチャートである。
【符号の説明】
１……ロボット、１０……ＣＰＵ、２０……ＣＣＤカメラ、３４Ａ……ＦＢＫ、３４Ｂ……ＣＤＴ、１１１……ＭＣＴモジュール、１１２……パラメータリスト、１１３……ターゲットリスト、Ｄ１Ａ〜Ｄ１Ｃ……画像データ、ＲＴ１……トラッキング処理手順。
【図１】
2004054610.tif 000008
【図２】
2004054610.tif 000009
【図３】
2004054610.tif 000010
【図４】
2004054610.tif 000011
【図５】
2004054610.tif 000012
【図６】
2004054610.tif 000013
【図７】
2004054610.tif 000014
【図８】
2004054610.tif 000015
【図９】
2004054610.tif 000016
【図１０】
2004054610.tif 000017
【図１１】
2004054610.tif 000018
【図１２】
2004054610.tif 000019