説明

自動追尾装置

【課題】追尾対象をより精度良く追尾して撮像する。
【解決手段】処理部2は、カメラ1により撮像された画像に基づいて追尾対象を追跡する追跡処理を行う追跡処理手段と、その追跡処理の結果に応じてカメラ1が追尾対象を追尾するように、カメラ1のパン、チルト及びズームを制御する制御手段と、を含む。前記追跡処理手段は、カメラ1により撮像された画像に基づいて、画素の位置を状態とした複数のパーティクルによるパーティクルフィルタによって、前記追尾対象の位置を推定する位置推定手段を含む。前記パーティクルフィルタは、前記各パーティクルに関して、画素に関する1つ以上の特徴量に基づいて当該画素が追尾対象画素であるか背景画素であるかを識別するように構築されたAdaBoost識別器の応答値であって、当該パーティクルの位置の画素に関する前記特徴量による応答値から、算出した尤度を用いる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パン、チルト及びズームの制御が可能なカメラを用いて、追尾対象を自動追尾して撮像する自動追尾装置に関するものである。
【背景技術】
【0002】
従来から、このような自動追尾装置として、例えば、下記特許文献1に開示されている自動追尾装置が提案されている。この自動追尾装置は、テレビジョンカメラからの映像信号を入力すると共に映像信号を表示部に出力する画像入出力部と、画像入出力部よりの映像信号の前処理を行う画像処理部と、画像処理部を介し入力される参照画像データ及び探索画像データの相関値を求め探索画像上で最も相関性の高い位置を検出する相関演算部と、相関演算部よりの信号に基づいて前記テレビジョンカメラの旋回装置及びズームレンズを駆動制御すると共に前記各部を制御する中央演算処理部とからなるものである。
【特許文献1】特開平11−187387号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、前記従来の自動追尾装置では、相関演算を用いて追尾対象の位置を求めているので、追尾対象の大きさや形状の変化に弱く、オクルージョン(隠蔽)の影響やカメラ制御による画像変動の影響も受け易く、このため、追尾対象を精度良く追尾することができなかった。
【0004】
本発明は、このような事情に鑑みてなされたもので、追尾対象をより精度良く追尾して撮像することができる自動追尾装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
前記課題を解決するための手段として、以下の各態様を提示する。第1の態様による自動追尾装置は、パン、チルト及びズームの制御が可能なカメラと、前記カメラにより撮像された画像に基づいて、追尾対象を追跡する追跡処理を行う追跡処理手段と、前記追跡処理手段による前記追跡処理の結果に応じて前記カメラが前記追尾対象を追尾して撮像するように、前記カメラのパン、チルト及びズームを制御する制御手段と、を備えたものである。前記追跡処理手段は、前記カメラにより撮像された画像に基づいて、画素の位置を状態とした複数のパーティクルによるパーティクルフィルタによって、追跡結果の一部として前記追尾対象の位置を推定する位置推定手段を含む。そして、前記パーティクルフィルタは、前記各パーティクルに関して、画素に関する1つ以上の特徴量に基づいて当該画素が追尾対象画素であるか背景画素であるかを識別するように構築されたAdaBoost識別器の応答値であって、当該パーティクルの位置の画素に関する前記1つ以上の特徴量による応答値から、算出した尤度を用いるものである。
【0006】
この第1の態様によれば、前記パーティクルフィルタにより追尾対象の位置を推定するので、相関演算とは異なり、複数の解の候補(複数のパーティクル)を持つので追跡失敗から回復する可能性が高くなり、オクルージョンや複雑な背景などに対して強く、より精度良く追跡処理を行うことができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。なお、決定論的手法(例えば、テンプレートマッチングなど)では、解を一意に決定するため追跡失敗から回復できない。また、前記第1の態様によれば、AdaBoost識別器により追尾対象画素と背景画素とが識別され、前記パーティクルフィルタがAdaBoost識別器の応答値から算出した尤度を用いるものであるため、追尾対象以外の背景の形状や大きさや色や明暗変化などの背景の変化の影響を受け難くなり、この点からも、より一層精度良く追跡処理を行うことができ、ひいては、追尾対象をより一層精度良く追尾して撮像することができる。
【0007】
第2の態様による自動追尾装置は、前記第1の態様において、前記位置推定手段は、前記追尾対象の位置を、前記複数のパーティクルの状態である画素位置の、前記尤度を用いた重み付け平均値として推定するものである。この第2の態様は、追尾対象の位置の推定の具体的な手法の例を挙げたものである。
【0008】
第3の態様による自動追尾装置は、前記第1又は第2の態様において、前記追跡処理手段は、前記複数のパーティクルのうち前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルに基づいて、追跡結果の他の一部として前記追尾対象の大きさを推定する大きさ推定手段を含むものである。
【0009】
この第3の態様によれば、前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルに基づいて追尾対象の大きさを推定するので、追尾対象の大きさについても、オクルージョンや複雑な背景などに対して強く、より精度良く追跡処理を行うことができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。
【0010】
第4の態様による自動追尾装置は、前記第1乃至第3のいずれかの態様において、前記追跡処理手段は、前記複数のパーティクルのうち前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルのうちの、前記位置推定手段により推定された前記追尾対象の位置に対する当該パーティクルの前記尤度によって重み付けされた共分散行列を用いたマハラノビス距離が所定値以下であるパーティクルの分布状況に基づいて、前記追尾対象の大きさを推定する大きさ推定手段を、含むものである。この第4の態様は、追尾対象の大きさの推定の具体的な手法の例を挙げたものである。
【0011】
第5の態様による自動追尾装置は、前記第1乃至第4のいずれかの態様において、前記1つ以上の特徴量は、(i)当該画素を含む局所領域の画素の所定色空間の第1乃至第3の値のうちの前記第1の値の平均値、(ii)当該画素を含む局所領域の画素の前記第1の値の分散値、(iii)当該画素を含む局所領域の画素の前記第2の値の平均値、(iv)当該画素を含む局所領域の画素の前記第2の値の分散値、(v)当該画素を含む局所領域の画素の前記第3の値の平均値、(vi)当該画素を含む局所領域の画素の前記第3の値の分散値、(vii)当該画素を含む局所領域におけるエッジ方向ヒストグラム、及び、(viii)当該画素を含む局所領域におけるローカルバイナリーパターンのヒストグラム、のうちの少なくとも1つを含むものである。なお、前記所定色空間としては、CIE1976L色空間を挙げることができるが、必ずしもこれに限定されるものではない。
【0012】
この第5の態様は、特徴量の具体例を挙げたものである。例えば、前記1つ以上の特徴量として、(i)〜(vi)のみを採用してもよいが、その場合に比べて、(i)〜(vii)のみを採用する場合や、(i)〜(vi),(viii)のみを採用する場合や、(i)〜(viii)を採用する場合の方が、追跡性能が高まるので、好ましい。特に、それらの場合のうち、前記1つ以上の特徴量として(i)〜(viii)を採用する場合には、最も追跡性能が高まることが実験的に確認された。
【0013】
第6の態様による自動追尾装置は、前記第1乃至第5のいずれかの態様において、前記複数のパーティクルのうちの所定のパーティクルを追尾対象画素用の学習サンプルとするとともに、前記複数のパーティクルのうちの他の所定のパーティクルを背景画素用の学習サンプルとして、前記AdaBoost識別器を更新させる更新手段を備えたものである。
【0014】
この第6の態様によれば、AdaBoost識別器を更新させるので、追尾対象の見え方の変化や環境(照明及び日照条件など)の変化に対応することができ、これにより、AdaBoost識別器による追尾対象画素であるか背景画素であるかの識別の精度が高まる。したがって、この第6の態様によれば、より一層精度良く追跡処理を行うことができ、ひいては、追尾対象をより一層精度良く追尾して撮像することができる。
【0015】
第7の態様による自動追尾装置は、前記第1乃至第6のいずれかの態様において、前記複数のパーティクルの前記尤度の空間的な重み付け平均値を算出する算出手段と、前記空間的な重み付け平均値が所定値以上であるか否かを判定する判定手段とを備えたものである。
【0016】
前記空間的な重み付け平均値は、追跡結果の信頼度を示すものとなり得る。前記空間的な重み付け平均値が大きければ、追跡結果の信頼度が高い一方、追跡結果の信頼度が低いと考えられる。前記第7の態様によれば、前記空間的な重み付け平均値を算出し、その値が所定値以上であるか否かを判定しているので、結局、追跡が成功しているか失敗したかを判定することができる。したがって、その判定結果を利用することで、追跡に失敗しているのにその誤った追跡結果に基づいてカメラの制御が継続されてしまうような事態を、回避することができる。
【0017】
第8の態様による自動追尾装置は、前記第1乃至第7のいずれかの態様において、前記制御手段は、前記追跡処理手段による前記追跡処理の結果に基づいて現在から所定時間経過後の追尾対象の位置及び大きさを予測する予測手段を含み、前記制御手段は、前記予測手段による予測結果に応じて、前記カメラに対する現在のパン、チルト及びズームの制御状態を修正して前記カメラのパン、チルト及びズームを制御するものである。
【0018】
この第8の態様によれば、予測制御が導入されているので、例えば、カメラが制御指令に対して応答してその指令状態になるまでの動作時間が画像処理時間に比べて長い場合であっても、追尾対象の急な動きの変化などにも対応することができ、追尾対象をより精度良く追尾して撮像することができる。なお、カメラのパン、チルト、ズームの制御速度があまりに速過ぎると、追尾対象を監視者が目で追う際に、カメラのパン、チルト、ズームの変化があまりに急激になってしまい、監視者に不快感を与えてしまい監視に適さなくなってしまうが、カメラとして制御速度が比較的遅いものを使用することができるので、カメラのパン、チルト、ズームの変化をスムーズにして監視により適した追尾を実現することができる。
【0019】
第9の態様による自動追尾装置は、前記第8の態様において、前記予測手段は、カルマンフィルタにより、現在から所定時間経過後の追尾対象の位置及び大きさを予測するものである。この第9の態様では、カルマンフィルタが用いられているので、追尾対象の位置及び大きさを精度良く予測することができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。もっとも、前記第8の態様では、予測手段はカルマンフィルタを用いたものに限定されるものではない。
【発明の効果】
【0020】
本発明によれば、追尾対象をより精度良く追尾して撮像することができる自動追尾装置を提供することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明による自動追尾装置について、図面を参照して説明する。
【0022】
図1は、本発明の一実施の形態による自動追尾装置を模式的に示すブロック図である。本実施の形態による自動追尾装置は、図1に示すように、パン、チルト及びズームの制御が可能なカメラ1と、処理部2と、分配器3と、表示・記録制御部4と、液晶パネル等の表示部5と、記録部6とを備えている。
【0023】
カメラ1は、カメラ本体1aと、カメラ本体1aに装着され処理部2からのズームを制御する制御信号に応じて倍率を設定するズームレンズ1bと、カメラ本体1aが搭載され処理部2からのパン及びチルトを制御する制御信号に応じてカメラ本体1aのパン及びチルトを設定する回転台1cとを有している。
【0024】
分配器3は、カメラ1からの画像信号を、処理部2と表示・記録制御部4とに分配して供給する。画像処理部2は、分配器3を介して供給されたカメラからの画像信号に基づいて、カメラ1により撮像された画像を処理して、カメラ1が侵入者又は侵入物体等の追尾対象10(後述する図2参照)を自動追尾して撮像するように、カメラ1のパン、チルト及びズームを制御する。表示・記録制御部4は、分配器3を介して供給されたカメラからの画像信号が示す画像を、表示部5に表示させたり記録部6に記録させたりする。監視者は、表示部5に表示された画像を監視することができる。なお、監視者が画像を監視しないような場合は、分配器3を設けずに、カメラ1からの画像信号を処理部2に直接入力させてもよい。
【0025】
図2は、カメラ1による追尾対象10の追尾の様子の例を模式的に示す図である。図2では、侵入者等の追尾対象10を追尾して、カメラ1の視野が変化している様子を示している。なお、実際には、追尾対象10の移動に伴い、回転台1cのパン及びチルトが変化することでカメラ1の視野の向きが変化するとともにズームレンズ1bが作動することでカメラ1の視野が拡大・縮小するが、図2では、カメラ1の各部の図示は省略しカメラ1の視野のみを模式的に示している。
【0026】
次に、本実施の形態による自動追尾装置の処理部2の動作の一例について、図3乃至図15を参照して説明する。図3は、処理部2の動作の一例を示す概略フローチャートである。図4は、図3中の追尾対象検知処理(ステップS2)を詳細に示すフローチャートである。図8は、図3中の追跡処理(ステップS5)を詳細に示すフローチャートである。図11は、図8中の識別器の更新処理(ステップS218)を詳細に示すフローチャートである。図12乃至図15は、図3中のカメラ制御処理(ステップ7)を詳細に示すフローチャートである。なお、図5乃至図7、図9及び図10については、後に説明する。
【0027】
図3に示すように、処理部2は、動作を開始すると、まず、カメラ1をプリセット状態にする(ステップS1)。すなわち、処理部2は、カメラ1のパン、チルト及びズームを予め定められたパン、チルト及びズームにする。
【0028】
次に、処理部2は、プリセットされた状態、つまり、カメラ1のパン、チルト、ズームが固定の状態で、追尾対象を検知(動体検知)する追尾対象検知処理を行う(ステップS2)。この検知は、一般的に用いられている手法(図4中のS101〜S112)を適用する他に、レーザーレーダなどの他のセンシングデバイスによって行ってもよいし、画面上に表示された人物を監視者が指定手段としてのマウス等のポインティングデバイスによって指定することによって行ってもよい。
【0029】
ここで、図4を参照して、追尾対象検知処理(ステップS2)の一例について説明する。なお、図3中の追尾対象検知処理(ステップS2)は、図4に示す例に限定されるものではない。
【0030】
追尾対象検知処理(ステップS2)を開始すると、図4に示すように、処理部2は、まず、カメラ1が撮像した2枚の連続する画像をサンプリングし(ステップS101,S102)、それらの画像の差分画像(フレーム間差分画像)を生成する(ステップS103)。
【0031】
次いで、処理部2は、ステップS103で生成した差分画像を2値化する(ステップS104)。この2値化に用いる閾値は、固定閾値でもよいし、判別分析法に代表されるような可変閾値でもよい。
【0032】
引き続いて、処理部2は、ステップS104で2値化された画像をラベリングする(ステップS105)。そして、処理部2は、ラベリングされたものがあるか否かを判定し(ステップS106)、ラベリングされたものがなければステップS112へ移行する一方、ラベリングされたものがあれば、ステップS107へ移行する。
【0033】
ステップS107において、処理部2は、ラベリングされたもの全てについてそれぞれ特徴量を取得する(ステップS107,S108)。ここでいう特徴量は、例えば面積や円形度など、追尾対象10を正確に検出するために必要なものである。
【0034】
その後、処理部2は、ステップS107で取得した全てのラベルの特徴量から、追尾対象10の候補となるものが存在するか否かを判定する(ステップS109)。存在しなければステップS112へ移行する一方、存在すればステップS110へ移行する。
【0035】
ステップS110において、処理部2は、追尾対象10の候補のうちから追尾対象10を決定する。このとき、追尾対象10の候補が1つであればそれを追尾対象10として決定し、追尾対象10の候補が複数存在すれば、所定の判断基準によって1つに絞り込んで、それを追尾対象10として決定する。
【0036】
ステップS111の後に、処理部2は、追尾対象10が検知されたか否かを示す追尾対象検知フラグを1(1は、追尾対象10が検知されたこと示す。)にセットし(ステップS111)、追尾対象検知処理(ステップS2)を終了して、図3中のステップS3へ移行する。
【0037】
ステップS112において、処理部2は、追尾対象検知フラグを0(0は、追尾対象10が検知されなかったこと示す。)にセットする。その後、追尾対象検知処理(ステップS2)を終了して、図3中のステップS3へ移行する。
【0038】
再び図3を参照すると、ステップS3において、処理部2は、ステップS2で追尾対象10が検知されたか否かを判定する。この判定は、前記追尾対象検知フラグが1であるか0であるかによって行う。追尾対象10が検知された場合(追尾対象検知フラグが1の場合)は、ステップS4へ移行する一方、追尾対象10が検知されなかった場合(追尾対象検知フラグが0の場合)は、ステップS2へ戻り、追尾対象検知処理(ステップS2)を繰り返す。
【0039】
図5は、カメラ1により撮像された画像、その画像から追尾対象検知処理(ステップS2)により検出された(あるいは、監視者がポインティングデバイスによって指定された)追尾対象領域(追尾対象10の領域)、及び、その追尾対象領域に応じて設定された背景領域の例を、示す図である。図5に示す例では、人物の全身をちょうど囲む内側の矩形の領域が追尾対象領域となっている。内側の矩形と外側の矩形との間の領域が後述するステップS4で着目する背景領域である。背景領域の外形(外側の矩形)は、例えば、追尾対象領域の外形(内側の矩形)と同心でかつ追尾対象領域の外形(内側の矩形)を横方向(x方向)及び縦方向(y方向)にそれぞれ所定倍率で拡大したものとして、設定される。
【0040】
ステップS4において、処理部2は、AdaBoost識別器を構築する処理(初期学習)を、初期化処理として行う。この初期化処理では、処理部2は、追尾対象検知処理(ステップS2)により検出された図5に示すような追尾対象領域及び背景領域に基づいて、AdaBoost識別器を、画素に関する1つ以上の特徴量としての特徴ベクトルvに基づいて当該画素が追尾対象画素であるか背景画素であるかを識別するように構築する処理を行う。以下の説明では、追尾対象領域の符号をRtargetとし、背景領域の符号をRbackとする。
【0041】
この初期化処理(ステップS4)では、追尾対象領域Rtargetと背景領域Rbackから、追尾対象を表すポジティブサンプル及び背景を表すネガティブサンプルを以下のように取得する。
【0042】
【数1】

【0043】
ただし、数1において、x(i)は位置(x,y)、l(i)はクラスラベルである。クラスラベルl(i)と特徴ベクトルvで構成される初期学習サンプル(v(x(i)),l(i))を用いて初期のAdaBoost識別器を構築する。ここで、特徴ベクトルvは、後で記すLuv画素値の平均値・分散値、EOH、LBPのヒストグラムをすべて用いた特徴ベクトルとする。また、本実施の形態では、AdaBoost識別器の学習アルゴリズムは、Gentle AdaBoostアルゴリズムを用いる。もっとも、本発明では、AdaBoost識別器の学習アルゴリズムは、Gentle AdaBoostアルゴリズムに限定されるものではない。
【0044】
Gentle AdaBoostアルゴリズムは、文献『J. Friedman, T. Hastie, and R. Tibshirani, “Additive Logistic Regression: a Statistical View of Boosting”, technical report, Department of Statistics, Stanford University, 1998』に記載されているように公知であり、以下の通りである。なお、Nはサンプルの個数、Mは弱識別器の個数である。
【0045】
(1)下記の数2による学習サンプル重みwの初期化、強識別器F(x)の初期化
【数2】

(2)繰り返し処理(m=1,2,…,M)
(a)重み付き学習サンプルを用いて弱識別器f(x)の学習(重み付き最小二乗法)
(b)下記の数3による弱識別器f(x)の値設定
【数3】

数3において、^を付したPは学習サンプル重みを利用した重み付き識別率を示す。
(c)下記の数4による識別器の更新
【数4】

(d)下記の数5による学習サンプル重みの更新
【数5】

(3)下記の数6による識別器の構築
【数6】

【0046】
ここで、本実施の形態において、AdaBoost識別器に用いる特徴ベクトルvについて説明する。AdaBoost識別器には、他種類の特徴量を入力することが可能である。本実施の形態では、画素に関する特徴量(特徴ベクトルvの要素)として、Luvの平均値及び分散値、エッジ方向ヒストグラム(EOH、Edge Orientation Histogram)、ローカルバイナリーパターン(LBP、Local Binary Pattern)のヒストグラムを用いる。
【0047】
まず、Luvの平均値及び分散値について説明する。ここでは、画素のCIE1976L色空間の3つの値であるL,u,vを用いる。着目画素の特徴量の1つであるLの平均値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のLの平均値である。着目画素の特徴量の1つであるLの分散値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のLの分散値である。着目画素の特徴量の1つであるuの平均値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のuの平均値である。着目画素の特徴量の1つであるuの分散値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のuの分散値である。着目画素の特徴量の1つであるvの平均値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のvの平均値である。着目画素の特徴量の1つであるvの分散値は、着目画素を中心に含む局所領域W(例えば、5×5画素)のvの分散値である。これらを数式を用いて表現すると、下記の数7及び数8のようになる。数7及び数8において、局所領域W内のLuv画素値をI=(L,u,v)とし、その平均値を ̄I=( ̄L, ̄u, ̄v)、その分散値をσ=(σ,σ,σ)とし、Aを局所領域W内の画素数としている。ここで、 ̄Iは上バー付きのIを示し、 ̄L, ̄u, ̄vも同様に上バー付きのL,u,vをそれぞれ示す。
【0048】
【数7】

【0049】
【数8】

【0050】
次に、エッジ方向ヒストグラム(EOH)について説明する。着目画素の特徴量の1つであるエッジ方向ヒストグラムは、着目画素を中心に含む局所領域(例えば、5×5画素)内のエッジの方向をエッジの強度で重み付けしたヒストグラムである。局所領域内の濃淡画像をIとしたとき、座標(x,y)での勾配(エッジ)画像G,Gは下記の数9及び数10のように表現できる。
【0051】
【数9】

【0052】
【数10】

【0053】
数9及び数10において、SobelとSobelはそれぞれx,y方向のエッジを計算するための演算子である。数9及び数10より、着目している座標(x,y)での勾配(エッジ)強度G(x,y)及びエッジの方向角θ(x,y)は、下記の数11及び数12で示す通りとなる。
【0054】
【数11】

【0055】
【数12】

【0056】
このエッジ強度Gと方向角θを用いて、K個の階級数のヒストグラムを作成する。このヒストグラムがエッジ方向ヒストグラム(EOH)である。図6は、エッジ方向ヒストグラムを示す概略図である。図6(a)は、局所領域(5×5画素)におけるエッジのベクトル(エッジ強度と方向角)の分布を示している。図6(b)は、図6(a)の分布から作成した8階級のエッジ方向ヒストグラムを示している。
【0057】
次に、ローカルバイナリーパターン(LBP)のヒストグラムについて説明する。ローカルバイナリーパターンは、注目画素近傍での画素値の大小関係を2値パターンとしたものである。濃淡画像Iとして、図7のような注目画素(x,y)の4近傍のLBPは、下記の数13のようになる。図7は、ローカルバイナリーパターンの説明図である。
【0058】
【数13】

【0059】
このLBPを局所領域内で計算しヒストグラムとする。4近傍のLBPは0から15の16種類の値をとるため16階級のヒストグラムを作成する。本実施の形態では、着目画素の特徴量の1つであるローカルバイナリーパターンのヒストグラムは、着目画素を中心に含む局所領域内で計算したローカルバイナリーパターンのヒストグラムである。
【0060】
以上、本実施の形態においてAdaBoost識別器で用いる画素に関する特徴量(特徴ベクトルvの要素)について、説明した。しかしながら、本発明で用いる特徴量は、前述した特徴ベクトルvの例に限定されるものではない。
【0061】
再び図3を参照すると、AdaBoost識別器が構築されて初期化処理(ステップS4)が終了すると、ステップS5へ移行する。ステップS5において、処理部2は、カメラ1により撮像された画像に基づいて、追尾対象を追跡する追跡処理を行う。本実施の形態では、追跡処理(ステップS5)において、処理部2は、カメラ1により撮像された画像に基づいて、画素の位置を状態とした複数のパーティクルによるパーティクルフィルタによって、追跡結果の一部として前記追尾対象の位置を推定する。前記パーティクルフィルタは、前記各パーティクルに関して、画素に関する1つ以上の特徴量(特徴ベクトルv)に基づいて当該画素が追尾対象画素であるか背景画素であるかを識別するように構築された前記AdaBoost識別器の応答値であって、当該パーティクルの位置の画素に関する前記1つ以上の特徴量(特徴ベクトルv)による応答値から、算出した尤度を用いるものである。処理部2は、前記複数のパーティクルのうち前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルに基づいて、追跡結果の他の一部として前記追尾対象の大きさを推定する。なお、パーティクルを粒子と呼ぶ場合がある。
【0062】
ここで、図8を参照して、追跡処理(ステップS5)の一例について説明する。なお、図3中の追跡処理(ステップS5)は、図8に示す例に限定されるものではない。
【0063】
追跡処理(ステップS5)を開始すると、図8に示すように、処理部2は、まず、現在の画像をサンプリングする(ステップS201)。
【0064】
次に、処理部2は、パーティクルフィルタの選択・予測(粒子群の選択・予測)を行う(ステップS202)。ここで、ある時刻tの状態xを持つN個の粒子群(パーティクル群)を{s(i)i=1,…,Nとする。ただし、各粒子の状態xは、位置(x,y)(すなわち、画素の位置)とする。また、各粒子の尤度を{π(i)i=1,…,Nとする。
【0065】
ステップS202において、処理部2は、パーティクルフィルタの選択処理として、リサンプリング手法に基づき、前の時刻t−1での(前のフレームでの)粒子群{st−1(i)i=1,…,Nの尤度{πt−1(i)i=1,…,Nを用いて、新たな粒子群{s’t−1(i)i=1,…,Nを選択する。尤度が大きい粒子を増やし(分裂)、尤度の小さい粒子を減らす(消滅)させることにより、追尾対象のいる位置確率分布を限られた粒子数で近似することを可能にする。粒子の消滅のため粒子数が予め設定した個数Nに満たない場合は、対象領域及び背景領域内に新たな粒子を追加する。このステップは、追跡処理開始直後の場合(ステップS4からステップS5へ移行した場合)には、粒子の尤度が得られていないため、このプロセスは省略される。
【0066】
ステップS202において、処理部2は、パーティクルフィルタの予測処理として、運動モデルに従って時刻t−1の各粒子s’t−1(i)を状態遷移させ時刻tの粒子s(i)を予測する。本実施の形態では、運動モデルとしてランダムウォークモデルを用いる。なぜなら、ここでは多くの環境を想定しており、特にパン、チルト及びズームの制御が可能なカメラ1で追尾対象を追跡する際は、追尾対象の動きを等速直線運動などで近似するのは困難なためである。下記の数14に、ランダムウォークモデルの式を示す。
【0067】
【数14】

【0068】
ただし、wt−1は、ガウスノイズである。wt−1は、ガウスイメージに従った乱数イメージとして良い。つまり、時刻t−1の位置に乱数が加わって時刻tの位置が決まることになる。
【0069】
なお、追跡処理開始直後の場合(ステップS4からステップS5へ移行した場合)、ステップS4で学習に使用したデータを数14の時刻t−1のデータとして扱い、状態を遷移させる。
【0070】
ステップS202の後に、処理部2は、パーティクル(粒子)の番号nの値を1に設定する(ステップS203)。
【0071】
次いで、処理部2は、n番目の粒子の位置の画素を着目画素とし、その着目画素に関するLuv画素値の平均値・分散値を算出する(ステップS204)。その算出手法は、前述した通りである。
【0072】
引き続いて、処理部2は、n番目の粒子の位置の画素を着目画素とし、その着目画素に関するエッジ方向ヒストグラム(EOH)を取得する(ステップS205)。その取得手法は、前述した通りである。
【0073】
その後、処理部2は、n番目の粒子の位置の画素を着目画素とし、その着目画素に関するローカルバイナリーパターン(LBP)のヒストグラム取得する(ステップS206)。その取得手法は、前述した通りである。
【0074】
次に、処理部2は、n番目の粒子に関してステップS204〜S206で取得した特徴量を要素とする特徴ベクトルvによる前記AdaBoost識別器の応答値Fを、下記の数15に従って算出する(ステップS207)。応答値Fが正であれば、n番目の粒子の位置の画素が追尾対象画素であると識別されたことを意味し、応答値Fが負であれば、n番目の粒子の位置の画素が背景画素であると識別されたことを意味する。
【0075】
【数15】

【0076】
次いで、処理部2は、ステップS207で算出された応答値Fから、下記の数16に従って、n番目の粒子の尤度π(i)を算出する(ステップS208)。数16において、aは定数である。この処理は、パーティクルフィルタの観測に相当している。
【0077】
【数16】

【0078】
なお、尤度π(i)の算出式は数16に限定されるものではない。その算出式は、応答値Fは−1から+1までの値を取ることから、この区間で単調増加となる関数の式であれば良い。
【0079】
引き続いて、処理部2は、全てのパーティクルについてステップS204〜S208を行って尤度π(i)を算出したか否かを判定する(ステップS209)。全てのパーティクルフィルタについて算出が終了していればS211へ移行する。一方、終了していなければ、粒子の番号nの値を1だけインクリメントした(ステップS210)後に、ステップS204へ戻る。
【0080】
ステップS211において、処理部2は、各粒子の状態である画素位置の、ステップS208で算出した各粒子の尤度π(i)を用いた重み付け平均値E[S]を、下記の数17に従って、状態の推定結果である追尾対象の位置(ここでは、重心位置)の推定結果(追跡結果の一部)として算出する。
【0081】
【数17】

【0082】
次に、処理部2は、各パーティクル(粒子)s(i)について、ステップS211で推定結果として得た追尾対象の重心位置( ̄x, ̄y)に対する当該パーティクルs(i)の前記尤度π(i)によって重み付けされた共分散行列を用いたマハラノビス距離D(i)を、下記の数22に従って算出する(ステップS212)。なお、 ̄xは上バー付きのxを示し、 ̄yは上バー付きのyを示している。
【0083】
下記の数18〜数21に、各粒子s(i)=x(i)=(x(i),y(i))の重み付き共分散行列Σ’を示す。
【0084】
【数18】

【0085】
【数19】

【0086】
【数20】

【0087】
【数21】

【0088】
各粒子s(i)の追尾対象の重心位置( ̄x, ̄y)に対するマハラノビス距離D(i)は、下記の数22のようになる。数22において、 ̄s= ̄x=( ̄x, ̄y)、Σ'-1はΣ’の逆行列である。
【0089】
【数22】

【0090】
マハラノビス距離の等しい点を結ぶと楕円を描く。マハラノビス距離は、あるサンプルが正規分布に従うと仮定した場合,そのサンプルの信頼区間を表わすものと考えることができる.本実施の形態では、例えば、経験的にサンプルつまり重み付き粒子群を約80%含むようにマハラノビス距離D≒1.40とする。このマハラノビス距離を用いて描いた楕円(内側の楕円)を対象楕円として、図9中に示している。図9において、外側の楕円は、全てのすべての粒子部群を含むようにマハラノビス距離D=10として描いたものであり、背景楕円である、図9において、白点はAdaBoost識別器の応答値Fが正(つまり、追尾対象と識別された)の粒子、黒点は応答値Fが負(つまり、背景と識別された)の粒子を表す。
【0091】
ステップS212において各粒子s(i)についてマハラノビス距離D(i)を算出した後、処理部2は、すべてのパーティクルs(i)のうちAdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクル(すなわち、応答値Fが正のパーティクル)に基づいて、追尾対象の大きさを推定する(ステップS213)。本実施の形態では、処理部2は、応答値Fが正のパーティクルのうちの、ステップS212で算出されたマハラノビス距離D(i)が所定値(例えば、1.40)以下であるパーティクルの分布状況に基づいて、追尾対象の大きさを推定する。
【0092】
本実施の形態では、具体的には、ステップS213において、処理部2は、応答値Fが正でかつマハラノビス距離D(i)が所定値(例えば、1.40)以下の粒子に絞り込む。そして、処理部は、その絞り込まれた粒子の位置(当該粒子の状態である画素位置)のx座標及びy座標について、それぞれ最大値と最小値を求める。このとき、x座標の最小値をx、x座標の最大値をx、y座標の最小値をy、y座標の最大値をy、とする。その結果から、処理部2は、追尾対象となる領域の矩形の領域を、始点が(x,y)で終点が(x,y)の矩形領域として、この領域の大きさであるとして追尾対象領域の大きさを推定する。図3中のカメラ制御処理(ステップS7)においてカメラ1のズームを制御する場合には、この矩形領域を示すデータを使用する。
【0093】
次に、処理部2は、追跡結果(ステップS211で推定された追尾対象の位置とステップS213で推定された追尾対象の大きさ)の信頼度cとして、下記の数23及び数24に従って、全粒子の尤度の空間的な重み付け平均値を算出する(ステップS214)。ただし、数25が成立する。数23〜数25において、Nは粒子の数、w(i)は各粒子の空間的な重み、D(i)は各粒子の前記数22のマハラノビス距離である。
【0094】
【数23】

【0095】
【数24】

【0096】
【数25】

【0097】
前述したパーティクルフィルタでは、画像上の位置(x、y)を状態として扱い、その尤度は各粒子が追尾対象か背景かの確率を示すものとなっている。追尾対象は点の集合であることから、各位置の尤度の平均値を追尾対象の信頼度として扱うことも可能ではあるが、より確かな値として扱うために数23で示される信頼度cを算出している。
【0098】
ここでは、追尾対象の粒子は集中していると仮定をし、尤度に対して単なる平均値を算出するのではなく、数23に示すように、空間的な重み付け平均値を算出することで信頼度cとしている。図10はその説明図である。図10(a)は、画像の左上を原点とし粒子の分布を表すものである。図10(b)は各粒子の尤度である。図10(c)は上述した空間的な重み付けであり、数24のw(i)に相当する。この図10(b)の尤度に図10(c)の各粒子の空間的重みを乗算すると、図10(d)のようになり、この積和演算の結果が今回用いている信頼度cとなる。
【0099】
ステップS214の後、処理部2は、ステップS214において算出した信頼度cが、予め設定した閾値よりも高いか否かを判定する(ステップS215)。高ければステップS216へ移行し、高くなければステップS217へ移行する。
【0100】
ステップS216において、処理部2は、信頼度cが閾値よりも高かった場合は、追尾が成功したと判定し、追尾結果フラグを1とする。その後、ステップS218へ移行する。
【0101】
ステップS217において、処理部2は、信頼度cが閾値よりも高くなかった場合は、追尾が失敗したと判定し、追尾結果フラグを0とする。その後、ステップS218へ移行する。
【0102】
ステップS218において、処理部2は、前記AdaBoost識別器を更新させる更新処理を行う。処理部2は、この更新処理において、ステップS202において状態が遷移され予測された時刻tの粒子s(i)のうちの所定のパーティクルを追尾対象画素用の学習サンプルとするとともに、時刻tの粒子s(i)のうちの他の所定のパーティクルを背景画素用の学習サンプルとして、前記AdaBoost識別器を更新させる。
【0103】
ここで、図11を参照して、AdaBoost識別器の更新処理(ステップS218)の一例について説明する。なお、図8中のAdaBoost識別器の更新処理(ステップS218)は、図11に示す例に限定されるものではない。
【0104】
AdaBoost識別器の更新処理(ステップS218)を開始すると、図11に示すように、処理部2は、まず、追尾対象の学習サンプルと背景の学習サンプルの分類を行う(ステップS301)。具体的には、処理部2は、前述した図9に示す対象楕円(内側の楕円、マハラノビス距離D≒1.40とした楕円)内の領域を追跡対象領域Rtargetとし、図9に示す背景楕円(外側の楕円、マハラノビス距離D=10とした楕円)と対象楕円との間の領域を背景領域Rbackとする。そして、処理部2は、追跡対象領域Rtarget中で、AdaBoost識別器の応答値Fが正の粒子を対象の学習に使用するポジティブサンプル、背景領域Rbackの中のすべての粒子を背景の学習に使用するネガティブサンプルとする。これを数式で表現すると、下記の数26の上段がポジティブサンプル、下段がネガティブサンプルとなる。
【0105】
【数26】

【0106】
次に、処理部2は、ステップS301で分類された各サンプルについて、学習サンプルの重みを算出する(ステップS302)。このとき、ポジティブサンプルの重みは下記の数27の上段によって算出し、ネガティブサンプルの重みは下記の数27の下段によって算出する。
【0107】
【数27】

【0108】
数27において、F(v(s(i)))は粒子s(i)に対するAdaBoost識別器の応答値、D(i)は各粒子の前記数22のマハラノビス距離である。
【0109】
引き続いて、処理部2は、全てのサンプルについて重みを算出したかを否かを判定する(ステップS303)。算出されていればステップS304へ移行し、算出されていなければS302へ戻る。
【0110】
ステップS304において、処理部2は、ステップS302で新たに算出された重みを使い、ステップS4と同様の学習(再学習)を行い、識別器を作成する。
【0111】
次に、処理部2は、新たに学習した識別器と既存の識別器とを統合することにより識別器を更新する(ステップS305)。過剰更新を防ぐため、本実施の形態では、初期化時t=1に学習された強識別器F(v)と、t>1において逐次更新により学習された識別器F(v)とを統合する。下記の数28及び数29に、F(v)、F(v)の式を示す。
【0112】
【数28】

【0113】
【数29】

【0114】
ただし、f1,m(v)はt=1における弱識別器、Mは弱識別器の数、f(v)はt>1における弱識別器、Tは更新弱識別器の履歴数、Kは更新する弱識別器の数、cは追尾対象の信頼度である。初期化時の識別器F(v)、追加学習により得られた識別器F(v)を下記の数30のように統合し識別器F(v)を更新する。
【0115】
【数30】

【0116】
ただし、β,βはそれぞれ初期識別器F(v)と、追加学習された識別器F(v)の学習サンプルにおける誤識別率に基づく重みであり、下記の数31〜数33のように定義する。
【0117】
【数31】

【0118】
【数32】

【0119】
【数33】

【0120】
ここで、e,eは、それぞれ初期化時t=1の識別器F(v)とt>1で追加学習された識別器F(v)の学習サンプルに対する重み付き誤識別率である。つまり、eはステップS305で算出された値となる。
【0121】
ステップS305が終了すると、図8中の識別器の更新処理(ステップS218)が終了し、図3中のステップS6へ移行する。
【0122】
再び図3を参照すると、ステップS6において、処理部2は、現在の追跡結果フラグが1であるか否かを判定することで、ステップS5の追跡処理による追跡が成功したか否かを判定する。追跡が成功であれば(追跡結果フラグが1であれば)、ステップS7へ移行する。一方、追跡が失敗であれば(追跡結果フラグが0であれば)、ステップS8へ移行する。ステップS8において、処理部2は、追追跡の失敗の状態が一定時間継続しているか否かを判定する。一定時間継続していない場合は、追跡処理(ステップS5)に戻り、その処理を繰り返す。一定時間継続している場合は、追跡処理が成功する見込みがないものとみなして、ステップS1(プリセット状態)に戻る。
【0123】
ステップS6において追跡が成功である(追跡結果フラグが1である)と判定されると、処理部2は、追跡処理(ステップS5)で得た追跡結果、すなわち、図8中のステップS211で推定された追尾対象の位置及び図8中のステップS213で推定された追尾対象の大きさに応じて、カメラ1が追尾対象を追尾するように、カメラ1のパン、チルト及びズームを制御するカメラ制御処理を行う。このカメラ制御処理において、処理部2は、前記追跡結果に基づいて現在から所定時間経過後(nフレーム後)の追尾対象の位置及び大きさを予測し、その予測結果に応じて、カメラ1に対する現在のパン、チルト及びズームの制御状態を修正してカメラ1のパン、チルト及びズームを制御する。ここで、本実施の形態では、追尾対象の位置及び大きさを予測は、カルマンフィルタにより行う。
【0124】
ここで、図12乃至図15を参照して、カメラ制御処理(ステップS7)の一例について説明する。なお、図3中のカメラ制御処理(ステップS7)は、図12乃至図15に示す例に限定されるものではない。
【0125】
カメラ制御処理(ステップS7)を開始すると、図12に示すように、処理部2は、まず、処理部2は、カメラ制御処理において用いる情報として、追跡結果(図8中のステップS211で推定された追尾対象の位置及び図8中のステップS213で推定された追尾対象の大きさ)を取得する(ステップS501)。なお、この追跡結果は処理部2がそもそも有しているので、本来はその取得動作は不要であるが、ここでは理解を容易にするため、このステップS501を挿入している。
【0126】
次に、処理部2は、現在のカメラ1のパン、チルト、ズームのそれぞれの制御状態を示す情報として、パン制御フラグ、チルト制御フラグ、ズーム制御フラグを取得する(ステップS502)。本実施の形態では、カメラ1は、パン、チルト、ズームのそれぞれについて、処理部2から制御指令受けてからその制御動作を行ってその制御動作が完了すると制御完了信号を処理部2に返すようになっている。処理部2は、カメラ1にパン制御指令を与えるときにパン制御フラグを1にセットし、カメラ1からパン制御完了信号を受けたときに割り込み処理でパン制御フラグを0にリセットする。また、処理部2は、カメラ1にチルト制御指令を与えるときにチルト制御フラグを1にセットし、カメラ1からチルト制御完了信号を受けたときに割り込み処理でチルト制御フラグを0にリセットする。さらに、処理部2は、カメラ1にズーム制御指令を与えるときにズーム制御フラグを1にセットし、カメラ1からズーム制御完了信号を受けたときに割り込み処理でズーム制御フラグを0にリセットする。このように、パン、チルト、ズームのそれぞれの制御フラグは、1であれば対応する動作が制御中であることを示し、0であれば対応する動作が停止中であることを示す。以上の説明からわかるように、パン制御フラグ、チルト制御フラグ、ズーム制御フラグは処理部2がそもそも有しているので、本来はその取得動作は不要であるが、ここでは理解を容易にするため、このステップS502を挿入している。
【0127】
次に、処理部2は、全ての制御フラグ(パン制御フラグ、チルト制御フラグ、ズーム制御フラグ)が0であるか否かを判定し(ステップS503)、全ての制御フラグが0であればステップS519へ移行し、いずれか1つ以上の制御フラグが1であればステップS504へ移行する。
【0128】
ステップS504において、処理部2は、ステップS501で取得した追跡結果(特に、追尾対象の位置)が、前のフレームで取得した追跡結果(特に、追尾対象の位置)に比較して、画像中央から遠ざかっているかどうかを判定する。遠ざかっている場合はステップS506へ移行し、近づいている場合はステップS505へ移行する。
【0129】
画像中央から遠ざかっている場合は、前のフレームからの制御が適していないと判断し、処理部2は、ステップS506においてパン、チルト、ズームいずれの制御フラグも0にリセットし、さらに、カメラ制御を停止させる(ステップS507)。
【0130】
ステップS505において、処理部2は、ステップS501で取得した追跡結果に基づいて、それまでの追尾対象の進行方向や大きさの変化の方向(だんだん拡大していくのか、だんだん縮小していくのか)が変わってしまったかどうかを判定する。進行方向及び大きさの変化共に変化がなければステップS508へ移行し、いずれかが変化している場合はステップS506へ移行する。
【0131】
ステップS508において、処理部2は、ズーム制御フラグが1であるか否かを判定することで、現在、ズーム制御の途中であるか否かを判定する。ズーム制御中であればステップS509へ移行し、ズーム制御中でなければステップS511に移行する。
【0132】
ステップS509において、処理部2は、ステップS501で取得した追跡結果が、既に予め設定しておいた目標とする大きさの範囲に達しているかどうかを判定する。達している場合はS510へ移行し、達していない場合はステップS511へ移行する。
【0133】
ステップS510において、処理部2は、ズームの制御フラグを0にする。これは、予め設定しておいた目標とする大きさの範囲に達しているため、その時点でズーム制御をストップさせることが好ましいためである。
【0134】
ステップS511において、処理部2は、パン制御フラグが1であるか否かを判定することで、現在、パン制御の途中であるか否かを判定する。パン制御中であればステップS512へ移行し、パン制御中でなければステップS514へ移行する。
【0135】
ステップS512において、処理部2は、ステップS501で取得した追跡結果が、既に予め設定しておいた目標とする水平方向の位置の範囲に達しているか否かを判定する。達している場合はステップS513へ移行し、達していない場合はS514へ移行する。
【0136】
ステップS513において、処理部2は、パンの制御フラグを0にする。これは、予め設定しておいた目標とする水平方向の位置の範囲に達しているため、その時点でパン制御をストップさせることが好ましいためである。
【0137】
ステップS514において、チルト制御フラグが1であるか否かを判定することで、現在、チルト制御の途中であるか否かを判定する。チルト制御中であればステップS515へ移行し、チルト制御中でなければS517へ移行する。
【0138】
ステップS515において、処理部2は、S501で取得した追跡結果が、既に予め設定しておいた目標とする垂直方向の位置の範囲に達しているか否かを判定する。達している場合はS516へ移行し、達していない場合はS517へ移行する。
【0139】
ステップS516において、処理部2は、チルトの制御フラグを0にする。これは、予め設定しておいた目標とする垂直方向の位置の範囲に達しているため、その時点でチルト制御をストップさせることが好ましいためである。
【0140】
ステップS517において、処理部2は、パン制御フラグ、チルト制御フラグ、ズーム制御フラグのいずれかに変更があったか否かを判定する。ステップS510、S513、S516のいずれかを行った場合はS518へ移行し、いずれも行わなかった場合はそのまま制御を続行させるためS519へ移行する。
【0141】
ステップS518において、処理部2は、制御を変更する。これは、ステップS518に到達するということは、その前の予測によるカメラ1のパン、チルト、ズームの制御と実際の追尾対象の動きに違いが生じていることを示すことになるためである。
【0142】
ステップS519において、処理部2は、カメラ1から、現在のカメラ1の姿勢(パン、チルト、ズームの位置)を取得する。
【0143】
次に、処理部2は、ステップS501で取得した追跡結果と、その前の追跡処理の結果から、nフレーム後の追尾対象の位置と大きさを予測する(ステップS520)。nフレーム後とは、例えば、NTSCの信号の場合、(n/30)秒後に相当する。
【0144】
ここでは、nフレーム後の追尾対象の位置と大きさを予測するため、カルマンフィルタを用いる。
【0145】
ここでは、追尾対象の位置及び大きさの変化が等速であり、かつその変化が滑らかであると仮定して、カルマンフィルタを構成する。カルマンフィルタでは、追尾対象の状態の変化が設定したモデルに厳密に当てはまらないとしても、誤差項があるので近似的に適用できる場合が多い。
【0146】
時刻kの状態変数ベクトルxを下記の数34のように定義する。
【0147】
【数34】

【0148】
ここで、xと上にドットを付したxは画像における対象矩形の中心の水平座標と速度、yと上にドットを付したyは垂直座標と速度、sと上にドットを付したsは大きさ(矩形の横幅と縦幅の積)とその変化を表す。
【0149】
この状態ベクトルとカメラ1の制御、誤差を考慮したシステム方程式は、下記の数35で定義される。
【0150】
【数35】

【0151】
数35において、Aは下記の数36に示す定数行列である。
【0152】
【数36】

【0153】
入力画像の横幅をWsrc、縦幅をHsrc、時刻kにおける水平画角をθ、垂直画角をφ、カメラのパン角速度を上にドットを付したP、チルト角速度を上のドットを付したTとすると、各時刻でパン・チルト制御による画素の水平・垂直方向の変化量は下記の数37及び数38でそれぞれで表される。
【0154】
【数37】

【0155】
【数38】

【0156】
なお、ズーム操作による画角の変化をλとすると、λは下記の数39で表すことができる。
【0157】
【数39】

【0158】
以上の要素から、制御ベクトルuは下記の数40で与えられる。uはカメラ制御による画像の変動を表す制御ベクトルである。
【0159】
【数40】

【0160】
はシステム誤差であり、下記の数41で示すように、共分散行列Qかつ平均0の正規白色過程に従う。
【0161】
【数41】

【0162】
ここでは、先に述べた追跡処理から得た、追尾対象を囲む矩形の位置と大きさを観測値とし、時刻kの観測ベクトルを下記の数42のように定義する。
【0163】
【数42】

【0164】
観測方程式は、下記の数43で表される。
【0165】
【数43】

【0166】
ここでHは下記の数44に示す定数行列である。また、数45で示すように、観測誤差vは共分散行列Rかつ平均0の正規白色過程に従う。
【0167】
【数44】

【0168】
【数45】

【0169】
カルマンフィルタでは、現在時刻の観測量と1期前の状態量を用いて、現在時刻の推定量を推定する。システムの現在時刻kの状態は下記の数46で示す2つの変数で表される。なお、本明細書において、記号の上に付した符号^は、推定値を意味している。
【0170】
【数46】

【0171】
カルマンフィルタは、時間ステップをひとつ進めるために予測と更新の二つの手続きを行う。予測の手続きでは、前の時刻の推定状態から、現在時刻の推定状態を計算する。更新では、今の時刻の観測を用い、推定値を補正することで、より正確な状態を推定する。
【0172】
予測に関し、現在時刻の推定値は下記の数47で表され、現在時刻の誤差の共分散行列は下記の数48で表される。
【0173】
【数47】

【0174】
【数48】

【0175】
更新に関し、カルマンフィルタは、更新後の誤差の推定値を最小にするカルマンゲインを下記の数49〜数53により計算し、状態を更新していく。
【0176】
【数49】

【0177】
【数50】

【0178】
【数51】

【0179】
【数52】

【0180】
【数53】

【0181】
以上の計算により、誤差を考慮した現在時刻の状態量を推定することができる。
【0182】
ここで、カルマンフィルタの初期条件の設定について説明する。追跡開始の際の追尾対象矩形の中心座標を(x,y)、大きさをsとすると、状態の初期値は下記の数54のようになる。ここで、速度は0としている。
【0183】
【数54】

【0184】
初期条件に誤差があるなら、誤差の共分散行列を下記の数55のように与える。
【0185】
【数55】

【0186】
フィルタの特性はシステム誤差と観測誤差の分散比であり、この分散比が大きいほどフィルタ処理後の推定値は元の観測値に忠実となるが誤差に敏感となり、小さいほど平滑化されるがデータに対する追従性が落ちる。本実施の形態では、対象人物の移動方向の変化、立ち止まりなどに迅速に対応できるが、追跡結果に含まれる誤差には影響を受けにくい程度の分散比を経験的に用いる。
【0187】
以上、図13中のステップS520の処理で用いるカルマンフィルタについて説明した。
【0188】
ステップS520の後に、処理部2は、ステップS520の予測によって得られたnフレーム後の追尾対象の大きさと目標とすべき追尾対象の大きさsから、nフレーム後の水平画角または垂直画角を算出する(ステップS521)。ただし、下記の数56は水平画角を算出するものである。
【0189】
【数56】

【0190】
次に、処理部2は、ステップS521で算出された水平画角がズームの限界に達しているか否かを判定する(ステップS522)。ズームの限界に達している場合はステップS549へ移行する。ただし、ズームアウトで限界に達している場合はステップS523へ移行する。ズームイン、ズームアウトのいずれも限界に達していない場合はステップS523へ移行する。
【0191】
ステップS523において、処理部2は、S521で得られた結果から現在の水平画角と比較し、ズームの制御量は所定値より小さいか否かを判定する。小さければS524へ移行し、大きければS526へ移行する。
【0192】
ステップS524において、処理部2は、ズーム制御速度を0にセットする。引き続いて、処理部2は、ズーム制御フラグを0にセットし(ステップS525)、ステップS530へ移行する。これらにより、ズームの制御を行わない。このように、ズームの制御量が小さい場合は、ズームの制御を行わない。ズームの制御量が小さい場合、ズームの制御を行うと、細かい動きをすることになるので、表示部5を監視する監視者に不快感を与える可能性があるためである。
【0193】
ステップS526において、ズームの制御速度Zspeedを下記の数57により算出する。ここで、fはフレームレート(NTSCの場合はf=30)を示す。また、Zptは水平画角が時刻tのときのズームポジションである。
【0194】
【数57】

【0195】
その後、処理部2は、ステップS526で算出されたズームの制御速度Zspeedと現在制御中の速度との間の差が所定値より大きいか否かを判定する(ステップS527)。差が大きければステップS528へ移行し、差が小さければステップS529へ移行する。ここでも、差が一定値以上大きくなければズームの制御速度の変更を行わないのは、表示部5を目視監視する監視者にとってズームの制御速度が頻繁に変化することは不快感につながる可能性があるので、これを回避するためである。また、追尾対象は画像中の真ん中近くにあればよく、画像中心と全くずれがない状態を維持することが目的ではない。
【0196】
ステップS528において、処理部2は、ステップS526で算出されたズームの制御速度の値に変更する。その後、ステップS529へ移行する。
【0197】
ステップS529において、処理部2は、ズーム制御フラグを1に設定する。その後、ステップS530へ移行する。
【0198】
ステップS530において、処理部2は、ステップS520の予測で得られた結果から、パンの制御量は所定値より小さいか否かを判定する。小さければステップS531へ移行し、大きければステップS533へ移行する。
【0199】
ステップS531において、処理部2は、パンの制御速度を0にセットする。引き続いて、処理部2は、パン制御フラグを0にセットし(ステップS532)、ステップS538へ移行する。これらにより、パンの制御を行わない。このように、パンの制御量が小さい場合は、パンの制御を行わない。パンの制御量が小さい場合、パンの制御を行うと、細かい動きをすることになるので、表示部5を監視する監視者に不快感を与える可能性があるためである。
【0200】
ステップS533において、処理部2は、パンの制御速度Pspeedを下記の数58により算出する。ここでWsrcは入力画像の横幅である。
【0201】
【数58】

【0202】
その後、処理部2は、ステップS533で算出されたパンの制御速度Pspeedでパンを制御した仮定した場合において、nフレーム分時間が経過したとき(n/f秒後)のパンの位置を計算し、その値がパンの限界に達するか又はパンの限界を超えた値となるか否かを判定する(ステップS534)。その値がパンの限界に達するか又はパンの限界を超えた値となる場合は、ステップS549へ移行し、そうではない場合はステップS535へ移行する。
【0203】
ステップS535において、処理部2は、ステップS533で算出されたパンの制御速度Pspeedと現在制御中の速度との差が所定値より大きいか否かを判定する。差が大きければステップS536へ移行し、差が小さければステップS537へ移行する。
【0204】
ステップS536において、処理部2は、ステップS536で算出されたパンの制御速度の値に変更する。その後ステップS537へ移行する。
【0205】
ステップS537において、処理部2は、パン制御フラグを1に設定する。その後、ステップS538へ移行する。
【0206】
ステップS538において、処理部2は、ステップS520の予測で得られた結果から、チルトの制御量は所定値より小さいかどうかを判定する。小さければステップS539へ移行し、大きければステップS541へ移行する。
【0207】
ステップS539において、処理部2は、チルトの制御速度を0にセットする。引き続いて、処理部2は、チルト制御フラグを0にセットし(ステップS540)、ステップS546へ移行する。これらにより、チルトの制御を行わない。このように、チルトの制御量が小さい場合は、チルトの制御を行わない。チルトの制御量が小さい場合、チルトの制御を行うと、細かい動きをすることになるため表示部5を監視する監視者に不快感を与える可能性があるためである。
【0208】
ステップS541において、処理部2は、チルトの制御速度Tspeedを下記の数59により算出する。ここでHsrcは入力画像の高さ(縦方向の長さ)である。
【0209】
【数59】

【0210】
その後、処理部2は、S541で算出されたチルトの制御速度Tspeedでチルトを制御したと仮定した場合において、nフレーム分時間が経過したとき(n/f秒後)のチルトの位置を計算し、その値がチルトの限界に達するか又はチルトの限界を超えた値となる否かを判定する(ステップS542)。その値がチルトの限界に達するか又はチルトの限界を超えた値となる場合は、ステップS549へ移行し、そうではない場合はステップS543へ移行する。
【0211】
ステップS543において、処理部2は、ステップS541で算出されたチルトの制御速度Tspeedと現在制御中の速度との差が所定値より大きいか否かを判定する。差が大きければS544へ移行し、差が小さければS545へ移行する。
【0212】
ステップS544において、処理部2は、ステップS541で算出されたチルトの制御速度の値に変更する。その後ステップS545へ移行する。
【0213】
ステップS545において、処理部2は、チルト制御フラグを1に設定する。その後、ステップS546へ移行する。
【0214】
ステップS546において、処理部2は、全ての制御フラグ(パン制御フラグ、チルト制御フラグ、ズーム制御フラグ)が0であるか否かを判定する。全ての制御フラグが0であれば、制御しないことになるため、ステップS547を経ることなくステップS548へ移行する。いずれか1つ以上の制御フラグが1であれば、ステップS547へ移行する。
【0215】
ステップS547において、処理部2は、1になっている制御フラグ及びこれに対応する制御速度に応じた制御を行うようにカメラ1に制御指令を与える。その制御は、その速度に応じてn/f秒間行うが、このループを出てステップS548へ移行するのは制御が完了するのを待たないでよい。なお、本実施の形態では、制御フラグ自体によって制御指令がカメラ1に与えられるわけではなく、ステップS547のような動作によって制御フラグ及び制御速度に応じた制御指令がカメラ1に与えられるようになっている。
【0216】
ステップS548において、処理部2は、追尾限界フラグを0(0は、パン、チルト、ズームのいずれもが限界に達する可能性がないことを示す)にする。これは、パン、チルト、ズームのいずれもが限界に達する可能性がない場合に、ステップS548に到達するためである。ステップS548の後、カメラ制御処理(ステップS7)を終了して、図3中のステップS9へ移行する。
【0217】
ステップS549において、処理部2は、追尾限界フラグを1(1は、パン、チルト、ズームのいずれかが限界に達する可能性があることを示す)にする。これは、パン、チルト、ズームの少なくともひとつが限界に達する可能性がある場合に、ステップS549に到達するためである。ステップS549の後、ステップS550において、処理部2は、カメラ1の姿勢制御中であれば、その制御を停止する。ステップS550の後、カメラ制御処理(ステップS7)を終了して、図3中のステップS9へ移行する。
【0218】
再び図3を参照すると、ステップS9において、処理部2は、追尾限界フラグが1であるか否かを判定する。追尾限界フラグが1であれば、追尾対象の追尾の継続が困難であると判断し、ステップS1(プリセット状態)に戻る。追尾限界フラグが0であれば、追尾対象の追尾の継続が可能であるので、ステップS5へ戻って、追尾対象の追尾を継続する。
【0219】
本実施の形態によれば、前記パーティクルフィルタにより追尾対象の位置を推定する(図8中のステップS211)ので、相関演算とは異なり、複数の解の候補(複数のパーティクル)を持つので追跡失敗から回復する可能性が高くなり、オクルージョンや複雑な背景などに対して強く、より精度良く追跡処理を行うことができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。また、本実施の形態によれば、AdaBoost識別器により追尾対象画素と背景画素とが識別され、前記パーティクルフィルタがAdaBoost識別器の応答値から算出した尤度を用いるものであるため、追尾対象以外の背景の形状や大きさや色や明暗変化などの背景の変化の影響を受け難くなり、この点からも、より一層精度良く追跡処理を行うことができ、ひいては、追尾対象をより一層精度良く追尾して撮像することができる。
【0220】
また、本実施の形態によれば、前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルに基づいて追尾対象の大きさを推定する(図8中のステップS213)ので、追尾対象の大きさについても、オクルージョンや複雑な背景などに対して強く、より精度良く追跡処理を行うことができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。
【0221】
さらに、本実施の形態によれば、AdaBoost識別器を更新させるので、追尾対象の見え方の変化や環境(照明及び日照条件など)の変化に対応することができ、これにより、AdaBoost識別器による追尾対象画素であるか背景画素であるかの識別の精度が高まる。したがって、本実施の形態によれば、より一層精度良く追跡処理を行うことができ、ひいては、追尾対象をより一層精度良く追尾して撮像することができる。
【0222】
本実施の形態によれば、追尾対象の信頼度信頼度cとして、全粒子の尤度の空間的な重み付け平均値を算出し(ステップS214)、その値が所定値以上であるか否かを判定している(ステップS111,S112,S6)ので、結局、追跡が成功しているか失敗したかを判定することができる。したがって、本実施の形態では、ステップS6でNOでかつステップS8でYESの場合、ステップS1へ戻るので、追跡に失敗しているのにその誤った追跡結果に基づいてカメラの制御が継続されてしまうような事態を、回避することができる。
【0223】
また、本実施の形態によれば、カメラ制御処理において予測制御が導入されているので、例えば、カメラ1が制御指令に対して応答してその指令状態になるまでの動作時間が画像処理時間に比べて長い場合であっても、追尾対象の急な動きの変化などにも対応することができ、追尾対象をより精度良く追尾して撮像することができる。なお、カメラのパン、チルト、ズームの制御速度があまりに速過ぎると、追尾対象を監視者が目で追う際に、カメラのパン、チルト、ズームの変化があまりに急激になってしまい、監視者に不快感を与えてしまい監視に適さなくなってしまうが、カメラ1として制御速度が比較的遅いものを使用することができるので、カメラ1のパン、チルト、ズームの変化をスムーズにして監視により適した追尾を実現することができる。
【0224】
さらに、本実施の形態によれば、このような予測にカルマンフィルタが用いられているので、追尾対象領域の位置及び大きさを精度良く予測することができ、ひいては、追尾対象をより精度良く追尾して撮像することができる。
【0225】
以上、本発明の一実施の形態について説明したが、本発明はこの実施の形態に限定されるものではない。
【図面の簡単な説明】
【0226】
【図1】本発明の一実施の形態による自動追尾装置を模式的に示すブロック図である。
【図2】カメラによる追尾対象の追尾の様子の例を模式的に示す図である。
【図3】図1中の処理部の動作の一例を示す概略フローチャートである。
【図4】図3中の追尾対象検知処理(ステップS2)を詳細に示すフローチャートである。
【図5】カメラにより撮像された画像、追尾対象領域及び背景領域の例を示す図である。
【図6】エッジ方向ヒストグラムを示す概略図である。
【図7】ローカルバイナリーパターンの説明図である。
【図8】図3中の追跡処理(ステップS5)を詳細に示すフローチャートである。
【図9】対象楕円と背景楕円の例を示す図である。
【図10】信頼度の説明図である。
【図11】図8中の識別器の更新処理(ステップS218)を詳細に示すフローチャートである。
【図12】図3中のカメラ制御処理(ステップ7)を詳細に示すフローチャートである。
【図13】図12に引き続くフローチャートである。
【図14】図13に引き続くフローチャートである。
【図15】図14に引き続くフローチャートである。
【符号の説明】
【0227】
1 カメラ
1a カメラ本体
1b ズームレンズ
1c 回転台
2 処理部

【特許請求の範囲】
【請求項1】
パン、チルト及びズームの制御が可能なカメラと、
前記カメラにより撮像された画像に基づいて、追尾対象を追跡する追跡処理を行う追跡処理手段と、
前記追跡処理手段による前記追跡処理の結果に応じて前記カメラが前記追尾対象を追尾して撮像するように、前記カメラのパン、チルト及びズームを制御する制御手段と、
を備え、
前記追跡処理手段は、前記カメラにより撮像された画像に基づいて、画素の位置を状態とした複数のパーティクルによるパーティクルフィルタによって、追跡結果の一部として前記追尾対象の位置を推定する位置推定手段を含み、
前記パーティクルフィルタは、前記各パーティクルに関して、画素に関する1つ以上の特徴量に基づいて当該画素が追尾対象画素であるか背景画素であるかを識別するように構築されたAdaBoost識別器の応答値であって、当該パーティクルの位置の画素に関する前記1つ以上の特徴量による応答値から、算出した尤度を用いるものである、
ことを特徴とする自動追尾装置。
【請求項2】
前記位置推定手段は、前記追尾対象の位置を、前記複数のパーティクルの状態である画素位置の、前記尤度を用いた重み付け平均値として推定することを特徴とする請求項1記載の自動追尾装置。
【請求項3】
前記追跡処理手段は、前記複数のパーティクルのうち前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルに基づいて、追跡結果の他の一部として前記追尾対象の大きさを推定する大きさ推定手段を含む、ことを特徴とする請求項1又は2記載の自動追尾装置。
【請求項4】
前記追跡処理手段は、前記複数のパーティクルのうち前記AdaBoost識別器により追尾対象画素であると識別された画素に応じたパーティクルのうちの、前記位置推定手段により推定された前記追尾対象の位置に対する当該パーティクルの前記尤度によって重み付けされた共分散行列を用いたマハラノビス距離が所定値以下であるパーティクルの分布状況に基づいて、前記追尾対象の大きさを推定する大きさ推定手段を、含む、ことを特徴とする請求項1乃至3のいずれかに記載の自動追尾装置。
【請求項5】
前記1つ以上の特徴量は、当該画素を含む局所領域の画素の所定色空間の第1乃至第3の値のうちの前記第1の値の平均値、当該画素を含む局所領域の画素の前記第1の値の分散値、当該画素を含む局所領域の画素の前記第2の値の平均値、当該画素を含む局所領域の画素の前記第2の値の分散値、当該画素を含む局所領域の画素の前記第3の値の平均値、当該画素を含む局所領域の画素の前記第3の値の分散値、当該画素を含む局所領域におけるエッジ方向ヒストグラム、及び、当該画素を含む局所領域におけるローカルバイナリーパターンのヒストグラム、のうちの少なくとも1つを含むことを特徴とする請求項1乃至4のいずれかに記載の自動追尾装置。
【請求項6】
前記複数のパーティクルのうちの所定のパーティクルを追尾対象画素用の学習サンプルとするとともに、前記複数のパーティクルのうちの他の所定のパーティクルを背景画素用の学習サンプルとして、前記AdaBoost識別器を更新させる更新手段を備えたことを特徴とする請求項1乃至5のいずれかに記載の自動追尾装置。
【請求項7】
前記複数のパーティクルの前記尤度の空間的な重み付け平均値を算出する算出手段と、前記空間的な重み付け平均値が所定値以上であるか否かを判定する判定手段とを備えたことを特徴とする請求項1乃至6のいずれかに記載の自動追尾装置。
【請求項8】
前記制御手段は、前記追跡処理手段による前記追跡処理の結果に基づいて現在から所定時間経過後の追尾対象の位置及び大きさを予測する予測手段を含み、
前記制御手段は、前記予測手段による予測結果に応じて、前記カメラに対する現在のパン、チルト及びズームの制御状態を修正して前記カメラのパン、チルト及びズームを制御する、
ことを特徴とする請求項1乃至7のいずれかに記載の自動追尾装置。
【請求項9】
前記予測手段は、カルマンフィルタにより、現在から所定時間経過後の追尾対象の位置及び大きさを予測することを特徴とする請求項8記載の自動追尾装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図5】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−41526(P2010−41526A)
【公開日】平成22年2月18日(2010.2.18)
【国際特許分類】
【出願番号】特願2008−203659(P2008−203659)
【出願日】平成20年8月7日(2008.8.7)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り (1)研究集会名 電子情報システム専攻 修士論文発表会 主催者名 国立大学法人 千葉大学 開催日 平成20年2月7日 (2)研究集会名 電子情報システム専攻 修士論文発表会 主催者名 国立大学法人 千葉大学 開催日 平成20年2月7日 (3)刊行物名 電子情報通信学会技術研究報告 信学技報Vol.107 No.538 発行日 平成20年3月3日 発行所 社団法人 電子情報通信学会
【出願人】(304021831)国立大学法人 千葉大学 (601)
【出願人】(390010054)小糸工業株式会社 (136)
【Fターム(参考)】