(57)【特許請求の範囲】
【請求項１】
カメラにより撮像される画像を処理することで、移動物体の有無を検知する移動物体検知装置において、
動きのある画像領域を検出する第１の検出手段と、
前記第１の検出手段の検出した画像領域を処理対象として、規定時間の間、該画像領域の動きの検出に用いるマトリックス値を算出して、該マトリックス値に従って、該画像領域の動きを追跡するとともに、該マトリックス値を累積加算する実行手段と、
前記実行手段の累積加算したマトリックス値から、前記実行手段の追跡した動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する第２の検出手段とを備えることを、
特徴とする移動物体検知装置。
【請求項２】
請求項１に記載の移動物体検知装置において、
前記第１の検出手段は、画像全体の並進的な動きを検出することでカメラの動きを検出して、それによる画像の動きを考慮しつつ、動きのある画像領域を検出し、
前記実行手段は、画像全体の並進的な動きを検出することでカメラの動きを検出して、それによる画像の動きを考慮しつつ、画像領域の動きを追跡することを、
特徴とする移動物体検知装置。
【請求項３】
請求項１に記載の移動物体検知装置において、
前記第１の検出手段は、画像全体の並進的及び放射状的な動きを検出することで、カメラの動きとカメラのレンズズームとを検出して、それによる画像の動きを考慮しつつ、動きのある画像領域を検出し、
前記実行手段は、画像全体の並進的及び放射状的な動きを検出することで、カメラの動きとカメラのレンズズームとを検出して、それによる画像の動きを考慮しつつ、画像領域の動きを追跡することを、
特徴とする移動物体検知装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、カメラにより撮像される画像を処理することで、移動物体の有無を検知する移動物体検知装置に関し、特に、自然界に存在する外乱に影響されることなく、移動物体の有無を正確に検知できるようにする移動物体検知装置に関する。
【０００２】
ビルなどでの侵入者監視システムのように、カメラにより撮像される画像を処理することで移動物体の有無を検知する検知システムが広く使用されつつある。この検知システムを実用的なものとするためには、自然界に存在する外乱に影響されることなく、移動物体の有無を正確に検知できるようにする技術を構築していく必要がある。
【０００３】
【従来の技術】
カメラにより撮像される画像を処理することで移動物体の有無を検知する方法として、（１）背景差分法、（２）動き差分法、（３）動きベクトル法、（４）相関値判定法がある。
【０００４】
（１）背景差分法は、移動物体のない画像を予め保存しておき、それとの差分を画素毎に求め、差が一定値以上であれば移動物体があるとするという方法である。
【０００５】
（２）動き差分法は、ある時刻の画像と次の時刻の画像に対して画素毎の差分を求め、それが一定値以上であれば移動物体があるとするという方法である。
【０００６】
（３）動きベクトル法は、相関演算によって動きベクトルを求め、その大きさが例えば１以上である場合に動きがあると判定する方法である。
【０００７】
動きベクトルの計測は、図１３に示すように、あるフレームｆにおける局所画像（参照ブロック）と、次のフレーム（ｆ＋１）における局所画像（候補ブロック）との間の相関演算を、候補ブロックの位置を変えながら繰り返すもので、相関が最大となる候補ブロックの位置から、両フレーム間での物体の動きベクトルを求めることができる。
【０００８】
相関演算は、具体的には、
Ｄ（h,v)＝Σx=1 m Σy=1 n ｜Ｉf (x,y) −Ｉf+1(h+x,v+y)｜
但し、−ｐ≦ｈ，ｖ≦ｑ
の式で表される。
【０００９】
ここで、Ｉf はフレームｆの画像、Ｉf+1 はフレーム（ｆ＋１）の画像であり、参照ブロックのサイズをｍ×ｎ画素、動きベクトルの探索範囲（探索ブロック）を水平垂直方向共に−ｐ〜＋ｑ画素としている。また、便宜上、参照ブロックの左上を座標原点としている。
【００１０】
この式に基づく演算の結果、図１４に示すような２次元の相関値配列Ｄ（h,v)が得られ、相関値Ｄ（h,v)が最小となる（ｈ，ｖ）が動きベクトルとなる。
【００１１】
（４）相関値判定法は、最小相関値Ｄ（h,v)と、動きベクトル０の場合の相関値Ｄ（0,0)とを比較し、適当な閾値Ｔを使って、「Ｄ（0,0)−Ｄ（h,v)＞Ｔ」の場合に動きがあると判定する方法である。
【００１２】
この方法は、参照ブロック内の画像に顕著なパターンがない場合（例えば真っ白な場合）に、動きベクトルが不安定となる問題点を回避すべく考案されたものである。
【００１３】
すなわち、顕著なパターンがない場合、相関値Ｄ（h,v)は一様に小さな値となることから、動きベクトルを一意に定めることができない。従って、最小相関値Ｄ（h,v)から単純に求めた動きベクトルは、実際の物体の移動に対応しない。これに対して、相関値判定法では、一様な相関値Ｄ（h,v)に対しては、「Ｄ（0,0)−Ｄ（h,v)」は必ず小さな値になるので、閾値Ｔを越えることはない。従って、顕著なパターンがない場合には、動きなしと検知され、誤った動きベクトルを出力することがないという効果を生む。
【００１４】
【発明が解決しようとする課題】
しかしながら、背景差分法、動き差分法、動きベクトル法、相関値判定法といういずれの従来技術も、瞬間的な動きを検知するものであることから、自然界に存在する木々や波などの揺れなどについても、動きがあると検知してしまうという問題点がある。
【００１５】
これから、従来技術に従っていると、自然界に存在する木々や波などの揺れなどにより、移動物体が存在しないにもかかわらず、移動物体が存在すると誤検知してしまうという問題点がある。
【００１６】
本発明はかかる事情に鑑みてなされたものであって、自然界に存在する外乱に影響されることなく、移動物体の有無を正確に検知できるようにする新たな移動物体検知装置の提供を目的とする。
【００１７】
【課題を解決するための手段】
この目的を達成するために、本発明に関連する第１の関連発明では、カメラにより撮像される画像を処理することで、移動物体の有無を検知する移動物体検知方法において、動きのある画像領域を検出する第１の処理過程と、第１の処理過程で検出された画像領域を処理対象として、規定時間の間、その画像領域の動きを追跡する第２の処理過程と、第２の処理過程で追跡した動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する第３の処理過程とを備える構成を採る。
【００１８】
このように構成される本発明に関連する第１の関連発明では、第１の処理過程で、動きのある画像領域を検出すると、第２の処理過程で、規定時間の間、その画像領域の動きを追跡し、これを受けて、第３の処理過程で、その追跡された動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する。
【００１９】
本発明の検知対象となる人や車両などの移動物体は、短い時間で見ると、一定方向に０でない速度で動くのに対して、自然界に存在する木々や波などの揺れは、振動的な動きを示し、短い周期で動きの方向や大きさが変化するという特徴がある。
【００２０】
そこで、本発明に関連する第１の関連発明では、一旦動きを検知した後、しばらくその動きを追跡して、その動きが振動的でない場合に、初めて移動物体であると判断することで、自然界に存在する外乱に影響されずに、移動物体を検知することを実現している。
【００２１】
一方、本発明に関連する第２の関連発明では、カメラにより撮像される画像を処理することで、移動物体の有無を検知する移動物体検知方法において、動きのある画像領域を検出する第１の処理過程と、第１の処理過程で検出された画像領域を処理対象として、規定時間の間、その画像領域の動きを追跡するとともに、その画像領域の動きの検出の信頼性を評価して、その評価が低いときには、それまで追跡してきた画像領域に動きがないことを判断してその追跡を中止する第２の処理過程と、第２の処理過程で追跡した動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する第３の処理過程とを備える構成を採る。
【００２２】
このように構成される本発明に関連する第２の関連発明では、第１の処理過程で、動きのある画像領域を検出すると、第２の処理過程で、規定時間の間、その画像領域の動きを追跡するとともに、その画像領域の動きの検出の信頼性を評価して、その評価が低いときには、それまで追跡してきた画像領域に動きがないことを判断してその追跡を中止していき、これを受けて、第３の処理過程で、その追跡された動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する。
【００２３】
自然界に存在する木々や波などの揺れは、本発明の検知対象となる人や車両などの移動物体と異なって、振動的な動きを示し、短い周期で動きの方向や大きさが変化するという特徴があることに加えて、常時画像パターンが変化するという特徴がある。例えば波は、光の反射が光ったり消えたりすることによって、ちらちらと動いて見える性質を持ち、画像パターンとしてみれば、光る点がある状態と何もない状態とを繰り返している。
【００２４】
そこで、本発明に関連する第２の関連発明では、一旦動きを検知した後、しばらくその動きを追跡して、その動きが振動的でない場合に、初めて移動物体であると判断するという構成を採るときにあって、画像領域の動きの検出の信頼性を評価して、画像パターンが変化することでその評価が低くなるときには、一旦移動物体として検知したものを直ちに移動物体ではないと判断していくことで、自然界に存在する外乱に影響されずに、移動物体を検知することを実現している。
【００２５】
一方、本発明の移動物体検知装置では、カメラにより撮像される画像を処理することで、移動物体の有無を検知するときにあって、動きのある画像領域を検出する第１の検出手段と、第１の検出手段の検出した画像領域を処理対象として、規定時間の間、その画像領域の動きの検出に用いるマトリックス値を算出して、そのマトリックス値に従って、その画像領域の動きを追跡するとともに、そのマトリックス値を累積加算する実行手段と、実行手段の累積加算したマトリックス値から、実行手段の追跡した動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する第２の検出手段とを備える構成を採る。
【００２６】
このように構成される本発明の移動物体検知装置では、第１の検出手段が、動きのある画像領域を検出すると、実行手段が、規定時間の間、その画像領域の動きの検出に用いるマトリックス値を算出して、そのマトリックス値に従って、その画像領域の動きを追跡するとともに、そのマトリックス値を累積加算し、これを受けて、第２の検出手段が、その累積加算されたマトリックス値から、その追跡された動きが移動物体の動きを示すのか否かを判断することで、移動物体の有無を検知する。
【００２７】
本発明に関連する第２の関連発明では、例えば、画像領域の動きの検出に用いるマトリックス値に従って、画像領域の動きの検出の信頼性を評価して、画像パターンが変化することでその評価が低くなるときには、直ちに移動物体ではないと判断する構成を採るのに対して、本発明では、そのマトリックス値を累積加算して、最後に信頼性評価を行うことで、平均的な信頼性を評価する構成を採っている。従って、瞬間的には信頼性が低くても、平均的には信頼性が高い場合には、動きがあると判定できるようになる。
【００２８】
例えば、移動物体のコントラストが低い場合には、画像パターンがはっきりせず、瞬間的にその動きの検出の信頼性が低くなることが起こる。また、歩いている人を検出する場合に、人の歩く速度はわずかながら周期的に変動するので、瞬間的には速度０となる場合も起こり、瞬間的にその動きの検出の信頼性が低くなることが起こる。このような場合にも、本発明では、移動物体を正確に検知できるようになる。
【００２９】
このような構成を採るときにあって、本発明では、カメラの振動やパンチルト移動による画像の動きを考慮して、第１の検出手段が、画像全体の並進的な動きを検出することでカメラの動きを検出して、それによる画像の動きを考慮しつつ、動きのある画像領域を検出し、実行手段が、画像全体の並進的な動きを検出することでカメラの動きを検出して、それによる画像の動きを考慮しつつ、画像領域の動きを追跡する構成を採ることで、カメラの振動やパンチルト移動の影響を受けることなく移動物体を検知できるようにすることを実現している。
【００３０】
また、本発明では、カメラの振動やパンチルト移動による画像の動きと、カメラのレンズズームによる画像の動きを考慮して、第１の検出手段が、画像全体の並進的及び放射状的な動きを検出することで、カメラの動きとカメラのレンズズームとを検出して、それによる画像の動きを考慮しつつ、動きのある画像領域を検出し、実行手段が、画像全体の並進的及び放射状的な動きを検出することで、カメラの動きとカメラのレンズズームとを検出して、それによる画像の動きを考慮しつつ、画像領域の動きを追跡する構成を採ることで、カメラの振動やパンチルト移動やレンズズームの影響を受けることなく移動物体を検知できるようにすることを実現している。
【００３１】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００３２】
図１に、本発明を具備する移動物体検知装置１の一実施例を図示する。
【００３３】
この図に示すように、本発明の移動物体検知装置１は、カメラ２の撮像する画像を入力として、その入力画像を処理することで、移動物体の有無を検知するものであって、第１の画像メモリ１０と、第２の画像メモリ１１と、デマルチプレクサ１２と、相関演算器１３と、移動物体検知プログラム１４とを備える。
【００３４】
この第１の画像メモリ１０は、「フレーム１→フレーム３→フレーム５→・・・」という順番に従ってカメラ２の撮像する画像を格納していく。第２の画像メモリ１１は、「フレーム２→フレーム４→フレーム６→・・・」という順番に従ってカメラ２の撮像する画像を格納していく。デマルチプレクサ１２は、カメラ２の撮像する画像を入力として、それを第１の画像メモリ１０と第２の画像メモリ１１とに振り分けていく。
【００３５】
相関演算器１３は、ハードウェアで構成され、第１の画像メモリ１０に格納される画像と第２の画像メモリ１１に格納される画像とを処理対象として、移動物体検知プログラム１４の指示する画像領域に対して相関演算を実行して、図１４に示したような相関値配列と、その相関値配列に含まれる最小相関値とを求めて、移動物体検知プログラム１４に渡す。
【００３６】
移動物体検知プログラム１４は、相関演算器１３を使って規定の検知処理を実行することで、カメラ２の撮像する画像の中に移動物体が含まれているのか否かを検知する。
【００３７】
図２及び図３に、移動物体検知プログラム１４の実行する処理フローの一例を図示する。次に、この処理フローに従って、本発明に関連する発明について詳細に説明する。
【００３８】
移動物体検知プログラム１４は、規定の検知周期に到達することで起動されると、図２及び図３の処理フローに示すように、先ず最初に、ステップ１で、画像全体を複数の矩形ブロックに分割する。続いて、ステップ２で、未処理の矩形ブロックの中から矩形ブロックを１つ選択し、続くステップ３で、全ての矩形ブロックの選択を終了したのか否かを判断する。
【００３９】
この判断処理により、全ての矩形ブロックの選択を終了していないことを判断するとき、すなわち、ステップ２で矩形ブロックを選択できたことを判断するときには、ステップ４に進んで、選択した矩形ブロックを指定して、相関演算器１３に演算を指示する。
【００４０】
この演算指示を受け取ると、相関演算器１３は、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレームｆの画像から、指定された矩形ブロックの画像部分を参照ブロック（図１３に示したもの）として切り出すとともに、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレーム（ｆ＋１）の画像から、それに対応する候補ブロック／探索ブロック（図１３に示したもの）の画像部分を切り出して相関演算を実行し、その演算結果となる相関値配列／最小相関値を出力する。
【００４１】
これから、このステップ４では、相関演算器１３に演算を指示した後、その演算指示に応答して相関演算器１３から出力される相関値配列／最小相関値を受け取る。
【００４２】
続いて、ステップ５で、相関演算器１３から受け取った最小相関値Ｄ(h0,v0) と、相関演算器１３から受け取った相関値配列の持つ動きがない場合の相関値Ｄ(0,0) とから、「Ｄ(0,0) −Ｄ(h0,v0) 」を算出して、その値が規定の閾値Ｔ以上を示すときには、選択した矩形ブロックに動きがあることを判断して、それを移動領域として設定してから、ステップ２に戻っていく。
【００４３】
このようにして、ステップ２ないしステップ５の処理（以下、このステップ１〜ステップ５の処理を初期動き検知処理と称することがある）を繰り返していくことで、移動領域を検知することになるが、これらの移動領域の中には、自然界の外乱が含まれている可能性があるので、続いて、これらの移動領域が本来の移動物体であるのか否かの検知処理に入る。
【００４４】
すなわち、続いて、ステップ６で、時間経過を示す変数ｔに０をセットする。続いて、ステップ７で、未処理の移動領域の中から移動領域を１つ選択し、続くステップ８で、全ての移動領域の選択を終了したのか否かを判断する。
【００４５】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ７で移動領域を選択できたことを判断するときには、ステップ９に進んで、選択した移動領域を指定して、相関演算器１３に演算を指示する。
【００４６】
この演算指示を受け取ると、相関演算器１３は、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレームｆ（この時点では未だフレームｆである）の画像から、指定された移動領域の画像部分を参照ブロックとして切り出すとともに、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレーム（ｆ＋１）（この時点では未だフレーム（ｆ＋１）である）の画像から、それに対応する候補ブロック／探索ブロックの画像部分を切り出して相関演算を実行し、その演算結果となる相関値配列／最小相関値を出力する。
【００４７】
これから、このステップ９では、相関演算器１３に演算を指示した後、その演算指示に応答して相関演算器１３から出力される相関値配列／最小相関値を受け取り、その最小相関値Ｄ(h0,v0) で規定される動きベクトル（ｈ0,ｖ0 ）を特定してから、ステップ７に戻っていく。
【００４８】
このようにして、ステップ７ないしステップ９の処理を繰り返していくことで、初期動き検知処理により検知された移動領域の動きベクトルを算出することになるが、この時点で求める動きベクトルは、ステップ４で受け取った最小相関値Ｄ(h0,v0) で規定されるものと同じものであるので、この関連発明のように相関演算を使って初期動き検知処理を実行する構成を採る場合には、ステップ４で受け取った最小相関値Ｄ(h0,v0) で規定される動きベクトルをそのまま使用することでもよい。
【００４９】
一方、ステップ８で、全ての移動領域の選択を終了したことを判断するときには、ステップ１０（図３の処理フロー）に進んで、変数ｔの値が規定の最大値ｔmax を越えたのか否かを判断する。ここで、この最大値ｔmax は、検知エリアに含まれる木々や波などの動きに合わせて設定される。例えば、木々の揺れが１秒周期程度であれば、その１／２である０.5秒以上に設定されることになる。
【００５０】
この判断処理により、変数ｔの値が最大値ｔmax を越えていないことを判断するときには、ステップ１１に進んで、各移動領域をステップ９で特定した動きベクトル分移動させることで各移動領域を追跡し、続くステップ１２で、変数ｔの値を１つインクリメントしてから、ステップ７に戻っていく。
【００５１】
このようにして、ステップ１２を経由してステップ７に戻ると、上述したステップ７ないしステップ９の処理を繰り返していくことで、前回がフレームｆの画像とフレーム（ｆ＋１）の画像とを使って移動領域の動きベクトルを求めた場合には、今回はフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の動きベクトルを求め、前回がフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の動きベクトルを求めた場合には、今回はフレーム（ｆ＋２）の画像とフレーム（ｆ＋３）の画像とを使って移動領域の動きベクトルを求めるという形態に従って、初期動き検知処理により検知された移動領域の動きベクトルを求めていくことになる。
【００５２】
一方、ステップ１０で、変数ｔの値が最大値ｔmax を越えたことを判断するときには、ステップ１３に進んで、未処理の移動領域の中から移動領域を１つ選択し、続くステップ１４で、全ての移動領域の選択を終了したのか否かを判断する。
【００５３】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ１３で移動領域を選択できたことを判断するときには、ステップ１５に進んで、選択した移動領域の動きベクトル（ｈ0,ｖ0 ）の時系列データから、選択した移動領域の動きベクトルは一定方向で、かつ０でないのかを判断（設定される許容値を使って判断する）して、そのような状態にあることを判断するときには、ステップ１６に進んで、その選択した移動領域を移動物体であると検知し、そのような状態にないことを判断するときには、ステップ１７に進んで、その選択した移動領域を移動物体でなくて自然界に存在する外乱であると検知する。
【００５４】
すなわち、動きベクトルの追跡対象が移動物体である場合には、時間ｔmax の間は、常に、相関演算器１３から受け取る最小相関値Ｄ(h0,v0) の位置（ｈ0,ｖ0 ）は概略同一の値を示すことになるのに対して、動きベクトルの追跡対象が自然界に存在する外乱である場合には、この最小相関値Ｄ(h0,v0) の位置（ｈ0,ｖ0 ）は揺らぎにより振動的に変動するので、その違いを使って、移動物体であるのか、自然界に存在する外乱であるのかを判断するのである。
【００５５】
そして、ステップ１４で、全ての移動領域の選択を終了したことを判断するときには、ステップ１８に進んで、ステップ１６で検知した移動物体の位置を出力して、処理を終了する。
【００５６】
このようにして、移動物体検知プログラム１４は、図２及び図３の処理フローに従う場合には、一旦動きを検知した後、しばらくその動きを追跡して、その動きが振動的でない場合に、初めて移動物体であると判断することで、自然界に存在する外乱に影響されずに移動物体を検知するように処理している。
【００５７】
このように、移動物体検知プログラム１４は、図２及び図３の処理フローに従う場合には、動きの周期性を調べることで、自然界に存在する外乱に影響されずに移動物体を検知するように処理しているが、これから説明する図４及び図５の処理フローに従う場合には、動きの周期性と画像パターンの定常性とを調べることで、自然界に存在する外乱に影響されずに移動物体を検知するように処理している。
【００５８】
次に、図４及び図５に示す処理フローに従って、本発明に関連する他の発明について詳細に説明する。
【００５９】
移動物体検知プログラム１４は、図４及び図５の処理フローに従う場合には、先ず最初に、ステップ１で、初期動き検知処理（図２の処理フローのステップ１〜ステップ５で説明した移動領域の検知処理）を実行することで、移動領域を抽出する。
【００６０】
続いて、ステップ２で、時間経過を示す変数ｔに０をセットする。続いて、ステップ３で、未処理の移動領域の中から移動領域を１つ選択し、続くステップ４で、全ての移動領域の選択を終了したのか否かを判断する。
【００６１】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ３で移動領域を選択できたことを判断するときには、ステップ５に進んで、選択した移動領域を指定して、相関演算器１３に演算を指示する。
【００６２】
この演算指示を受け取ると、相関演算器１３は、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレームｆの画像から、指定された移動領域の画像部分を参照ブロックとして切り出すとともに、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレーム（ｆ＋１）の画像から、それに対応する候補ブロック／探索ブロックの画像部分を切り出して相関演算を実行し、その演算結果となる相関値配列／最小相関値を出力する。
【００６３】
これから、このステップ５では、相関演算器１３に演算を指示した後、その演算指示に応答して相関演算器１３から出力される相関値配列／最小相関値を受け取る。なお、この時点で受け取る相関値配列／最小相関値は、初期動き検知処理で受け取るものと同じものであるので、それを使用することでもよい。
【００６４】
続いて、ステップ６で、受け取った相関値配列の信頼性を評価する。この信頼性の評価処理は、例えば、最小相関値Ｄ(h0,v0) の近傍（例えば、(h0,v0) の周囲±ｗ）を除いた配列部分が持つ最も小さな相関値Ｄ(h1,v1) を求めて、「Ｄ(h1,v1) −Ｄ(h0,v0) 」の値が閾値Ｔ１よりも大きいときには、信頼性が高いと評価し、閾値Ｔ１よりも小さいときには、信頼性が低いと評価することで行う。
【００６５】
この評価処理は、相関演算器１３から受け取った相関値配列が図６（ａ）に示すように深い凹部を持つとき、すなわち、局所的に高い相関を示すときには信頼性が高いと判断し、図６（ｂ）に示すように平坦に近いとき、すなわち、局所的に高い相関を示さないときには信頼性が低いと判断することを意味している。
【００６６】
その他に、相関演算器１３から受け取った最小相関値Ｄ(h0,v0) と、相関演算器１３から受け取った相関値配列の持つ動きがない場合の相関値Ｄ(0,0) とから、「Ｄ(0,0) −Ｄ(h0,v0) 」を算出して、その値が規定の閾値Ｔ以上を示すときには、信頼性が高いと評価し、閾値Ｔよりも小さいときには、信頼性が低いと評価することで行うことも可能である。
【００６７】
ステップ６で相関値配列の信頼性を評価すると、続いて、ステップ７で、信頼性が低いという評価が得られたのか否かを判断して、信頼性が低いという評価が得られたことを判断するときには、ステップ８に進んで、ステップ３で選択した移動領域を移動領域から除外し、信頼性が高いという評価が得られたことを判断するときには、ステップ９に進んで、受け取った相関値配列の持つ最小相関値Ｄ(h0,v0) で規定される移動領域の動きベクトル（ｈ0,ｖ0 ）を特定してから、ステップ３に戻っていく。
【００６８】
このようにして、ステップ３ないしステップ９の処理を繰り返していくことで、初期動き検知処理により検知された移動領域の信頼性を評価して、信頼性が低いときには、移動領域から除外しつつ、移動領域の動きベクトルを特定していくことになる。
【００６９】
一方、ステップ４で、全ての移動領域の選択を終了したことを判断するときには、ステップ１０に進んで、移動領域があるのか否かを判断して、移動領域がないことを判断するときには、ステップ１１に進んで、直ちに、移動物体が存在しない旨を示す検知結果を出力して、処理を終了する。
【００７０】
一方、ステップ１０で移動領域があることを判断するときには、ステップ１２（図５の処理フロー）に進んで、変数ｔの値が規定の最大値ｔmax を越えたのか否かを判断する。
【００７１】
この判断処理により、変数ｔの値が最大値ｔmax を越えていないことを判断するときには、ステップ１３に進んで、各移動領域をステップ９で特定した動きベクトル分移動させることで各移動領域を追跡し、続くステップ１４で、変数ｔの値を１つインクリメントしてから、ステップ３に戻っていく。
【００７２】
このようにして、ステップ１４を経由してステップ３に戻ると、上述したステップ３ないしステップ９の処理を繰り返していくことで、信頼性の低い移動領域については除外しつつ、前回がフレームｆの画像とフレーム（ｆ＋１）の画像とを使って移動領域の動きベクトルを求めた場合には、今回はフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の動きベクトルを求め、前回がフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の動きベクトルを求めた場合には、今回はフレーム（ｆ＋２）の画像とフレーム（ｆ＋３）の画像とを使って移動領域の動きベクトルを求めるという形態に従って、初期動き検知処理により検知された移動領域の動きベクトルを求めていくことになる。
【００７３】
一方、ステップ１２で、変数ｔの値が最大値ｔmax を越えたことを判断するときには、ステップ１５に進んで、未処理の移動領域の中から移動領域を１つ選択し、続くステップ１６で、全ての移動領域の選択を終了したのか否かを判断する。
【００７４】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ１５で移動領域を選択できたことを判断するときには、ステップ１７に進んで、選択した移動領域の動きベクトル（ｈ0,ｖ0 ）の時系列データから、選択した移動領域の動きベクトルは一定方向で、かつ０でないのかを判断して、そのような状態にあることを判断するときには、ステップ１８に進んで、その選択した移動領域を移動物体であると検知し、そのような状態にないことを判断するときには、ステップ１９に進んで、その選択した移動領域を移動物体でなくて自然界に存在する外乱であると検知する。
【００７５】
すなわち、動きベクトルの追跡対象が移動物体である場合には、時間ｔmax の間は、常に、相関演算器１３から受け取る最小相関値Ｄ(h0,v0) の位置（ｈ0,ｖ0 ）は概略同一の値を示すことになるのに対して、動きベクトルの追跡対象が自然界に存在する外乱である場合には、この最小相関値Ｄ(h0,v0) の位置（ｈ0,ｖ0 ）は揺らぎにより振動的に変動するので、その違いを使って、移動物体であるのか、自然界に存在する外乱であるのかを判断するのである。
【００７６】
そして、ステップ１６で、全ての移動領域の選択を終了したことを判断するときには、ステップ２０に進んで、ステップ１８で検知した移動物体の位置を出力して、処理を終了する。
【００７７】
このようにして、移動物体検知プログラム１４は、図４及び図５の処理フローに従う場合には、一旦動きを検知した後、しばらくその動きを追跡して、その追跡中に、画像パターンの定常性がないことで高い信頼性をもって動きを検出できない場合には、直ちに移動物体ではないと判断しつつ、その動きが振動的でない場合に、初めて移動物体であると判断することで、自然界に存在する外乱に影響されずに移動物体を検知するように処理している。
【００７８】
このように、移動物体検知プログラム１４は、図４及び図５の処理フローに従う場合には、動きの周期性と画像パターンの定常性とを同時に調べることで、自然界に存在する外乱に影響されずに移動物体を検知するように処理している。
【００７９】
図７及び図８に、本発明を実現すべく移動物体検知プログラム１４が実行する処理フローの一実施例を図示する。次に、この処理フローに従って、本発明の実施例について詳細に説明する。
【００８０】
移動物体検知プログラム１４は、図７及び図８の処理フローに従う場合には、先ず最初に、ステップ１で、初期動き検知処理（図２の処理フローのステップ１ないしステップ５で説明した移動領域の検知処理）を実行することで、移動領域を抽出する。
【００８１】
続いて、ステップ２で、抽出した移動領域に合わせて相関値バッファを作成して、それらをクリアする。続いて、ステップ３で、時間経過を示す変数ｔに０をセットする。続いて、ステップ４で、未処理の移動領域の中から移動領域を１つ選択し、続くステップ５で、全ての移動領域の選択を終了したのか否かを判断する。
【００８２】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ４で移動領域を選択できたことを判断するときには、ステップ６に進んで、選択した移動領域を指定して、相関演算器１３に演算を指示する。
【００８３】
この演算指示を受け取ると、相関演算器１３は、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレームｆの画像から、指定された移動領域の画像部分を参照ブロックとして切り出すとともに、第１の画像メモリ１０ｏｒ第２の画像メモリ１１に格納されるフレーム（ｆ＋１）の画像から、それに対応する候補ブロック／探索ブロックの画像部分を切り出して相関演算を実行し、その演算結果となる相関値配列／最小相関値を出力する。
【００８４】
これから、このステップ６では、相関演算器１３に演算を指示した後、その演算指示に応答して相関演算器１３から出力される相関値配列／最小相関値を受け取り、その最小相関値Ｄ(h0,v0) で規定される動きベクトル（ｈ0,ｖ0 ）を特定する。なお、この時点で受け取る相関値配列／最小相関値は、初期動き検知処理で受け取るものと同じものであるので、それを使用することでもよい。
【００８５】
続いて、ステップ７で、受け取った相関値配列を、割り付けられる相関値バッファに累積加算（配列要素毎に累積加算する）してから、ステップ４に戻っていく。
【００８６】
このようにして、ステップ４ないしステップ７の処理を繰り返していくことで、初期動き検知処理により検知された移動領域の持つ相関値配列を取得して、それを相関値バッファに格納していくことになる。
【００８７】
一方、ステップ５で、全ての移動領域の選択を終了したことを判断するときには、ステップ８に進んで、変数ｔの値が規定の最大値ｔmax を越えたのか否かを判断する。
【００８８】
この判断処理により、変数ｔの値が最大値ｔmax を越えていないことを判断するときには、ステップ９に進んで、各移動領域をステップ６で特定した動きベクトル分移動させることで各移動領域を追跡し、続くステップ１０で、変数ｔの値を１つインクリメントしてから、ステップ４に戻っていく。
【００８９】
このようにして、ステップ１０を経由してステップ４に戻ると、上述したステップ４ないしステップ７の処理を繰り返していくことで、前回がフレームｆの画像とフレーム（ｆ＋１）の画像とを使って移動領域の相関値配列／動きベクトルを求めた場合には、今回はフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の相関値配列／動きベクトルを求めて、相関値配列を累積加算し、前回がフレーム（ｆ＋１）の画像とフレーム（ｆ＋２）の画像とを使って移動領域の相関値配列／動きベクトルを求めた場合には、今回はフレーム（ｆ＋２）の画像とフレーム（ｆ＋３）の画像とを使って移動領域の相関値配列／動きベクトルを求めて、相関値配列を累積加算動するという形態に従って、初期動き検知処理により検知された移動領域の動きベクトルを求めていくとともに、相関値配列を累積加算していくことになる。
【００９０】
一方、ステップ８で、変数ｔの値が最大値ｔmax を越えたことを判断するときには、ステップ１１（図８の処理フロー）に進んで、未処理の移動領域の中から移動領域を１つ選択し、続くステップ１２で、全ての移動領域の選択を終了したのか否かを判断する。
【００９１】
この判断処理により、全ての移動領域の選択を終了していないことを判断するとき、すなわち、ステップ１１で移動領域を選択できたことを判断するときには、ステップ１３に進んで、その選択した移動領域に割り付けられる相関値バッファに累積加算した相関値配列の信頼性を評価する。
【００９２】
この信頼性の評価処理は、例えば、最小相関値Ｄ(h0,v0) の近傍（例えば、(h0,v0) の周囲±ｗ）を除いた配列部分が持つ最も小さな相関値Ｄ(h1,v1) を求めて、「Ｄ(h1,v1) −Ｄ(h0,v0) 」の値が閾値Ｔ１よりも大きいときには、信頼性が高いと評価し、閾値Ｔ１よりも小さいときには、信頼性が低いと評価することで行ったり、最小相関値Ｄ(h0,v0) と動きがない場合の相関値Ｄ(0,0) とから、「Ｄ(0,0) −Ｄ(h0,v0) 」を算出して、その値が規定の閾値Ｔ以上を示すときには、信頼性が高いと評価し、閾値Ｔよりも小さいときには、信頼性が低いと評価することなどにより行う。
【００９３】
動きベクトルの追跡対象が移動物体である場合には、時間ｔmax の間は、常に、相関演算器１３から受け取る最小相関値Ｄ(h0,v0) の位置（ｈ0,ｖ0 ）は概略同一の値を示すことになり、これから、相関値バッファに累積加算した相関値配列は、最小相関値Ｄ(h0,v0) の位置の所の一箇所に深い凹部を形成するので、そのような形態を示すのか否かを判断することで、移動領域の動きの追跡の信頼性を評価するのである。
【００９４】
続いて、ステップ１４で、その信頼性の評価処理により、累積加算した相関値配列が、高い信頼性をもって、選択した移動領域の動きベクトルが一定方向で、かつ０でないことを示しているのか否かを判断して、そのような状態にあることを判断するときには、ステップ１５に進んで、その選択した移動領域を移動物体であると検知し、そのような状態にないことを判断するときには、ステップ１６に進んで、その選択した移動領域を移動物体でなくて自然界に存在する外乱であると検知する。
【００９５】
すなわち、選択した移動領域の動きベクトルが一定方向で、かつ０でないときには、累積加算した相関値配列が一箇所に深い凹部を持ち、一方、動きベクトルが揺らいでいるときには、累積加算した相関値配列がランダムな位置に複数の浅い凹部を持つので、累積加算した相関値配列が、高い信頼性をもって、選択した移動領域の動きベクトルが一定方向で、かつ０でないことを示しているのか否かを判断して、そのような状態にあることを判断するときには、その選択した移動領域を移動物体であると判断していくのである。
【００９６】
そして、ステップ１２で、全ての移動領域の選択を終了したことを判断するときには、ステップ１７に進んで、ステップ１５で検知した移動物体の位置を出力して、処理を終了する。
【００９７】
このようにして、移動物体検知プログラム１４は、図７及び図８の処理フローに従う場合には、図４及び図５の処理フローと異なって、瞬間的には信頼性が低くても、平均的に信頼性が高い場合には、動き有りと判断することで移動物体をより確実に捕らえるように処理している。
【００９８】
例えば、図４及び図５の処理フローに従う場合には、移動物体のコントラストが低い場合に、パターンがはっきりせず、瞬間的に信頼性が低いとみなされることで移動物体ではない判断されることが起こるのに対して、図７及び図８の処理フローに従う場合には、そのようなものでも移動物体であると正確に検知できるようになる。
【００９９】
また、歩いている人を検知したい場合に、人が歩く速度はわずかながら周期的に変動しているので、瞬間的には速度が０となることがある。これから、図４及び図５の処理フローに従う場合には、一瞬でも速度が０となると、移動物体ではないと判断されることが起こるのに対して、図７及び図８の処理フローに従う場合には、そのような場合にも移動物体であると正確に検知できるようになる。
【０１００】
これまでに説明した実施例などでは、カメラ２の動きを考慮していなかった。カメラ２は、固定されていても風などの影響により振動することがあるし、また、旋回台によりパンチルト移動することがある。
【０１０１】
カメラ２が動くと、上述した初期動き検知処理で実行する移動領域の検知に誤りがでるとともに、初期動き検知処理に続いて実行する上述した移動領域の追跡に誤りがでる。
【０１０２】
そこで、移動物体検知プログラム１４は、初期動き検知処理を実行する際と、初期動き検知処理に続いて実行する移動領域の追跡処理を実行する際に、カメラ２の動きに相当する画像全体の動きベクトル（ｈg,ｖg ）を求めて、
Ｄ（h,v)＝Σx=1 m Σy=1 n ｜Ｉf (x,y) −Ｉf+1(hg+h+x,vg+v+y)｜
但し、−ｐ≦ｈ，ｖ≦ｑ
という式に従って相関演算を実行していくことで、図９に示すように、カメラ２の動きを差し引いて、その動きに影響を受けない形で、移動領域の検知と移動領域の追跡とを実行するように処理する。
【０１０３】
カメラ２の動きは、図１０（ａ）の処理フローに示すように、相関演算器１３に対して、外枠部分を取り除いたフレームｆの画像全体と、フレーム（ｆ＋１）の画像全体との相関演算を指示することで、相関値配列を受け取り、その相関値配列の持つ最小相関値Ｄ(h0,v0) の規定する動きベクトルを特定することで行う。すなわち、図１０（ｂ）に示すような外枠部分を取り除いた画像全体を参照ブロックとして指定して相関演算を行うことで、画像全体の動きベクトルを求めて、それをカメラ２の動きとして特定することで行うのである。
【０１０４】
ここで、外枠部分を取り除いた画像全体を参照ブロックとするのではなくて、画像全体を参照ブロックとしてもカメラ２の動きを求めることは可能であり、また、画像の四隅などを参照ブロックとしてもカメラ２の動きを求めることは可能である。
【０１０５】
カメラ２にはレンズズームがあり、このレンズズームにより画像全体が放射状に動く。これから、カメラ２のレンズズームが発生すると、上述した初期動き検知処理で実行する移動領域の検知に誤りがでるとともに、初期動き検知処理に続いて実行する上述した移動領域の追跡に誤りがでる。
【０１０６】
レンズズームも考慮する場合には、移動物体検知プログラム１４は、初期動き検知処理を実行する際と、初期動き検知処理に続いて実行する移動領域の追跡処理を実行する際に、図１１の処理フローを実行することで、レンズズーム量Ｃと画像全体の動きベクトル（ｈg,ｖg ）とを求めて、それに従って、移動領域の検知と移動領域の追跡とを実行する。
【０１０７】
すなわち、移動物体検知プログラム１４は、図１１の処理フローに示すように、先ず最初に、ステップ１で、レンズズーム量Ｃを設定する。
【０１０８】
このレンズズーム量Ｃは、図１２に示すように、ズーム中心Ｏ(xo,yo) と矩形ブロックＲ(xr,yr) との距離ｚ
ｚ＝（（ｘo −ｘr ）2 ＋（ｙo −ｙr ）2 ）1/2 
と、ズーム中心から放射状に変位するオフセット量ｄｚとの間を、「ｄｚ＝Ｃ×ｚ」という関係式に従って定義付けるものである。
【０１０９】
続いて、ステップ２で、予め用意される全てのレンズズーム量Ｃの設定を終了したのか否かを判断して、全てのレンズズーム量Ｃの設定を終了していないことを判断するとき、すなわち、ステップ１でレンズズーム量を設定できたことを判断するときには、ステップ３に進んで、未処理の矩形ブロック（画像全体を分割することで設定されている）の中から矩形ブロックを１つ選択し、続くステップ４で、全ての矩形ブロックの選択を終了したのか否かを判断する。
【０１１０】
この判断処理により、全ての矩形ブロックの選択を終了していないことを判断するとき、すなわち、ステップ３で矩形ブロックを選択できたことを判断するときには、ステップ５に進んで、相関演算器１３に対して、その選択した矩形ブロックを参照ブロック（フレームｆの画像）とし、その選択した矩形ブロックをオフセット量移動した矩形ブロックを候補ブロック（フレーム（ｆ＋１）の画像）として指定して相関演算を指示することで、相関値配列を受け取る。
【０１１１】
続いて、ステップ６で、予め用意する相関値バッファ（設定されるレンズズーム量に合わせて用意する）に、その受け取った相関値配列を累積加算してから、ステップ３に戻っていく。
【０１１２】
このようにして、ステップ３ないしステップ６の処理を繰り返していくことで、設定されたレンズズーム量における画像全体の相関値配列を累積加算していくことで、ステップ４で、全ての矩形ブロックの選択の終了を判断すると、ステップ７に進んで、その累積加算した相関値配列を保存してから、ステップ１に戻っていくことで、次のレンズズーム量における画像全体の相関値配列の累積加算値を求めていく。
【０１１３】
そして、ステップ２で、全てのレンズズーム量Ｃの設定の終了を判断すると、ステップ８に進んで、レンズズーム量Ｃに対応付けて保存した複数の累積加算の相関値配列を検索することで、最小の相関値を示すレンズズーム量Ｃを求めるとともに、そのときの動きベクトル（ｈg,ｖg ）を求める。
【０１１４】
このようにして求まるレンズズーム量Ｃがカメラ２のレンズズーム量（Ｃ＝０ならばズームしていないことを表し、Ｃ＞０ならばズームアップしていることを表す）を表しており、動きベクトル（ｈg,ｖg ）がカメラ２の動きを表している。
【０１１５】
これから、移動領域の検知と移動領域の追跡とを実行するときの相関演算を実行する際に、参照ブロックが与えられると、ズーム中心を中心として放射状に、この求めたレンズズーム量Ｃの規定するオフセット量ｄｚ（＝Ｃ×ｚ）だけずらし、次に、動きベクトル（ｈg,ｖg ）だけずらした位置に、候補ブロックを設定するとともに、その周囲に探索ブロックを設定することで、カメラ２の動きやレンズズームに影響されずに、移動領域の検知と移動領域の追跡とを実行できるようになる。
【０１１６】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施例では、初期動き検知処理で実行する移動領域の検知方法として、相関演算を用いる方法を採ったが、背景差分法や動き差分法などといった別の方法を用いることでもよい。また、実施例では、初期動き検知処理で検知された移動領域の追跡方法として、相関演算を用いるという方法を採ったが、それ以外の方法を用いることでもよい。
【０１１７】
また、実施例では、フレームｆの画像とフレーム（ｆ＋１）の画像とを処理することで、移動領域の検知や追跡を実行する構成を採ったが、フレームｆの画像とフレーム（ｆ＋Δ)(但し、Δ＞１）の画像とを処理することで、移動領域の検知や追跡を実行する構成を採ってもよい。
【０１１８】
また、実施例では、ハードウェア構成の相関演算器１３を用いる構成を採ったが、ソフトウェア構成の相関演算器を用いることも可能である。
【０１１９】
【発明の効果】
以上説明したように、本発明によれば、カメラにより撮像される画像を処理することで、移動物体の有無を検知する構成を採るときにあって、自然界に存在する外乱に影響されることなく、移動物体があるのか否かを正確に検知できるようになる。
【０１２０】
そして、本発明によれば、カメラの動きやレンズズームに影響されることなく、移動物体があるのか否かを正確に検知できるようになる。
【図面の簡単な説明】
【図１】本発明の一実施例図である。
【図２】移動物体検知プログラムの処理フローである。
【図３】移動物体検知プログラムの処理フローである。
【図４】移動物体検知プログラムの処理フローである。
【図５】移動物体検知プログラムの処理フローである。
【図６】相関値配列の信頼性評価処理の説明図である。
【図７】移動物体検知プログラムの処理フローである。
【図８】移動物体検知プログラムの処理フローである。
【図９】移動物体検知プログラムの処理の説明図である。
【図１０】移動物体検知プログラムの処理の説明図である。
【図１１】移動物体検知プログラムの処理フローである。
【図１２】移動物体検知プログラムの処理の説明図である。
【図１３】相関演算の説明図である。
【図１４】相関値配列の説明図である。
【符号の説明】
１    移動物体検知装置
２    カメラ
１０  第１の画像メモリ
１１  第２の画像メモリ
１２  デマルチプレクサ
１３  相関演算器
１４  移動物体検知プログラム
【図１】
0004343325.tif 000002
【図２】
0004343325.tif 000003
【図３】
0004343325.tif 000004
【図４】
0004343325.tif 000005
【図５】
0004343325.tif 000006
【図６】
0004343325.tif 000007
【図７】
0004343325.tif 000008
【図８】
0004343325.tif 000009
【図９】
0004343325.tif 000010
【図１０】
0004343325.tif 000011
【図１１】
0004343325.tif 000012
【図１２】
0004343325.tif 000013
【図１３】
0004343325.tif 000014
【図１４】
0004343325.tif 000015