(57)【特許請求の範囲】
【請求項１】
カメラで撮影した画像を順次入力し、入力した現在画像と過去画像から変化画素を含む領域を抽出する領域抽出処理手段を備えた画像処理装置であって、
前記領域抽出処理手段は、
前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出し、算出した標準偏差を用いて、前記標準偏差を算出した画素の前記変化画素を抽出するための閾値を設定する閾値設定手段と、
前記閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理を前記ブロックのサイズを段階的に拡大させながら実施するステップブロッキング設定処理手段と、
を具備したことを特徴とする画像処理装置。
【請求項２】
ステップブロッキング設定処理手段は、
複数画素を単位に画素数を異にした最小画素ブロックから最大画素ブロックに至る複数種の画素ブロックと、前記各画素ブロック内における前記ブロック内巡回シフト処理の循環回数を指定するステップ数とを閾値算出処理パラメータとして、前記最小画素ブロックから前記最大画素ブロックに至る各ブロックのブロック内巡回シフトの循環処理により前記閾値の算出対象となる注目画素を抽出し、前記最大画素ブロックのブロック内巡回シフトによる前記閾値の算出対象となる注目画素抽出状態に至るまで、前記画像の更新に伴う１フレーム当たりの前記閾値の算出対象となる画素数を漸減してゆくことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記領域抽出処理手段は、
前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出する標準偏差算出手段と、
前記標準偏差を算出した画素について、前記算出した標準偏差と前記複数の過去画像の対応する各画素の閾値の加重移動平均とをもとに閾値を算出する閾値算出手段とを有して、
前記閾値算出手段で算出した閾値を前記標準偏差を算出した画素の前記変化画素を抽出するための閾値として設定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記領域抽出処理手段は、
前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出する標準偏差算出手段と、
前記標準偏差を算出した画素について、前記算出した標準偏差と前記複数の過去画像の対応する各画素の閾値の加重移動平均とをもとに閾値を算出する閾値算出手段と、
前記標準偏差算出手段で算出した標準偏差を前記変化画素を抽出するための閾値として設定するか、または前記閾値算出手段で算出した閾値を前記変化画素を抽出するための閾値として設定するかを設定する外部設定手段と、
前記外部設定手段の設定に従い、前記標準偏差算出手段で算出した標準偏差、または前記閾値算出手段で算出した閾値を、前記標準偏差を算出した画素の前記変化画素を抽出するための閾値として設定する閾値設定手段と、
を具備したことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記ステップブロッキング設定処理手段は、前記最小画素ブロックを１×１画素として、前記閾値の算出対象となる全画素領域の各画素を対象に前記閾値の算出対象となる注目画素を抽出し、前記最大画素ブロックのブロック内巡回シフトによる前記閾値の算出対象画素抽出状態に至った時点で、前記領域抽出処理以外の処理負荷を伴う、特定の動きを検知する画像処理動作を可能にしたことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記ステップブロッキング設定処理手段は、設定されたブロックサイズでブロック内巡回シフト処理を繰り返す、ブロックサイズの段階的ステップ更新を行わない処理モードと、ブロックサイズを動的に可変してブロック内巡回シフト処理を実施する、ブロックサイズの段階的ステップ更新を行う処理モードとを選択するブロッキングモードの選択機能を有する請求項１または２または５に記載の画像処理装置。
【請求項７】
前記カメラは、パン、チルト、ズームの各機能のうち少なくともいずれかの機能を有し、前記いずれかの機能により撮像条件が切り替わったとき、前記ステップブロッキング設定処理手段による処理が実施されることを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記閾値算出手段は、前記標準偏差（σ）を３倍した仮閾値（３σ）の加重移動平均から仮閾値（３σ）の加重移動標準偏差を減じて前記変化画素を抽出するための閾値を算出することを特徴とする請求項４に記載の画像処理装置。
【請求項９】
カメラで撮影した画像を順次入力し、入力した現在画像と過去画像から変化画素を含む矩形の領域を抽出する領域抽出処理機能を備えた画像処理装置としてコンピュータを機能させるための、前記変化画素の抽出に用いる閾値を画素毎に設定する閾値設定処理プログラムであって、
前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出し、当該標準偏差を算出した画素について、前記算出した標準偏差を用いて閾値を算出し、当該算出した閾値を前記標準偏差を算出した画素の前記変化画素を抽出するための閾値として設定する閾値設定機能と、
前記閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理を前記ブロックのサイズを段階的に拡大させながら実施するステップブロッキング設定処理機能と、
を前記コンピュータに実現させるための閾値設定処理プログラム。
【請求項１０】
前記ステップブロッキング設定処理機能は、
複数画素を単位に画素数を異にした最小画素ブロックから最大画素ブロックに至る複数種の画素ブロックと、前記各画素ブロック内における各画素の循環回数を指定するステップ数とを閾値算出処理パラメータとして、前記最小画素ブロックから前記最大画素ブロックに至る各ブロックのブロック内巡回シフトにより前記閾値の算出対象となる注目画素を抽出し、１フレーム当たりの前記閾値の算出対象となる画素数を漸減してゆく処理機能を有する請求項９に記載の閾値設定処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラで撮影した時系列の複数の画像から変化画素を含む領域を抽出する領域抽出処理機能を有する画像処理装置、および領域抽出処理機能を実現する閾値設定処理プログラムに関する。
【背景技術】
【０００２】
単眼カメラ（一つのカメラ）で撮影した時系列の複数の画像から変化画素を含む矩形の領域を抽出する領域抽出処理機能を有する画像処理装置において、閾値を自動的に設定するための技術として、従来では、カレントフレームの更新毎にリファレンスフレームとカレントフレームとの画像情報の差分に応じてマスク抽出用閾値を決定する手段を有した監視システムが存在する（例えば、特許文献１参照）。この特許文献１のシステムでは、フレーム差分のヒストグラムを作成し、その累積頻度を、移動物体領域として抽出するための指標である固定の閾値でフィルタリング処理して、マスク抽出用閾値を得ている。また、入力画像と設定された背景画像との間で輝度の絶対差分値を求め、この輝度の絶対差分値に対して閾値処理を行い、この閾値を超える画素を２５５、超えない画素を０とする二値化処理技術が存在する（例えば、特許文献２参照）。また、画像のノイズ除去に関して、２枚の画像の差分をとり、その差画像から求めた標準偏差の値を参照して、画質改善のための閾値を算出する技術が存在する（例えば、特許文献３参照）。
【０００３】
これらの技術に対して、本願発明者は、一定期間の連続画像を利用して、画素当りの輝度変動（平均値と標準偏差）を求め、その標準偏差を、変化画素を抽出するための画素辺りの閾値に設定する自動閾値の設定処理技術を確立した（特許文献４参照）。しかしながら、この標準偏差を利用した閾値設定においては、波の揺らぎや、波に反射する西日の影響、木の激しい揺れ、木の影の揺れ等に対しても、これらの対応画素を変化画素として判定（抽出）してしまう過剰検知が見受けられた。
【０００４】
そこで本願発明者は、さらにこの問題を解消すべく、入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出し、算出した画素について、算出した標準偏差と複数の過去画像の対応する各画素の閾値の加重移動平均とをもとに閾値を算出し、ここで算出した閾値を上記標準偏差を算出した画素の上記変化画素を抽出するための閾値として設定する自動閾値の設定処理技術を確立した（特許文献５参照）。この技術により、より安定した変化画素領域の抽出が可能な閾値の自動設定機能を実現することができたが、この技術は、画像が更新される度に、検出対象となる画像領域の全画素について煩雑な演算処理を繰り返し実施することから、システム全体の処理負荷に対して閾値算出に係る処理負荷の割合が大きく、かつその高負荷状態が定常的に継続される。従って、多くのカメラ映像を同時に処理する場合、上記の閾値算出手段を適用した場合、閾値算出以外の動き検出を伴う画像処理において、処理能力、処理性能に制約を受ける可能性を有していた。また、上記特許文献５における自動閾値設定手段は、波の揺らぎや波への西日の反射、木の揺れなど、細かな速い動きに反応する性能をもつが、実際に活用される監視システムとしては、それ以外にも人や車両などの動物体における特定の移動や挙動、自然災害の監視などを対象とした、過剰反応を抑制したシステム性能やパン、チルト、ズームやプリセット（予め決められたポジション）で監視映像を切替えて動作する性能が求められる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−３２５６７２号公報
【特許文献２】特開２００１−１６０１４６号公報
【特許文献３】特開平１１−１８７２８８号公報
【特許文献４】特許第４５７１６５６号公報
【特許文献５】特許第４７１９８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、入力した一定期間内の複数の画像を対象に、画素当たりの閾値を算出し、算出した閾値を用いて変化画素を含む領域を抽出する領域抽出処理において、閾値算出に係る処理負荷を軽減した画像処理装置および閾値設定処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、カメラで撮影した画像を順次入力し、入力した現在画像と過去画像から変化画素を含む領域を抽出する領域抽出処理手段を備えた画像処理装置であって、前記領域抽出処理手段は、前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出し、算出した標準偏差を用いて、前記標準偏差を算出した画素の前記変化画素を抽出するための閾値を設定する閾値設定手段と、前記閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理を前記ブロックのサイズを段階的に拡大させながら実施するステップブロッキング設定処理手段と、を具備したことを特徴とする。
【０００８】
また本発明の実施形態は、カメラで撮影した画像を順次入力し、入力した現在画像と過去画像から変化画素を含む矩形の領域を抽出する領域抽出処理機能を備えた画像処理装置としてコンピュータを機能させるための、前記変化画素の抽出に用いる閾値を画素毎に設定する閾値設定処理プログラムであって、前記入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差を算出し、当該標準偏差を算出した画素について、前記算出した標準偏差を用いて閾値を算出し、当該算出した閾値を前記標準偏差を算出した画素の前記変化画素を抽出するための閾値として設定する閾値設定機能と、前記閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理を前記ブロックのサイズを段階的に拡大させながら実施するステップブロッキング設定処理機能と、を前記コンピュータに実現させることを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態における画像処理装置の構成を示すブロック図。
【図２】上記実施形態における画像処理記憶部に格納された自動閾値設定処理機能を実現する構成要素を示す図。
【図３】上記実施形態における標準偏差を用いた閾値の設定概念を示す図。
【図４】上記実施形態におけるステップブロッキング設定処理手段の動作概念を示す図。
【図５】上記ステップブロッキング設定処理手段の処理手順を示すフローチャート。
【図６】上記ステップブロッキング設定処理における注目画素のブロック（２×２ブロック）内シフト例を示す図。
【図７】上記ステップブロッキング設定処理における注目画素のブロック（４×２ブロック）内シフト例を示す図。
【図８】上記ステップブロッキング設定処理における注目画素のブロック（４×３ブロック）内シフト例を示す図。
【図９】上記ステップブロッキング設定処理における注目画素のブロック（４×４ブロック）内シフト例を示す図。
【図１０】上記実施形態における処理の手順を示すフローチャート。
【図１１】上記実施形態における処理の手順を示すフローチャート。
【図１２】上記実施形態における処理の手順を示すフローチャート。
【図１３】上記実施形態における処理の手順を示すフローチャート。
【図１４】上記実施形態における処理の手順を示すフローチャート。
【図１５】上記実施形態における処理の手順を示すフローチャート。
【図１６】上記実施形態における処理の手順を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下図面を参照して本発明の実施形態を説明する。  
本発明の実施形態を説明するに際し、本発明の実施形態に係る画像処理装置における自動閾値の算出処理について、その動作概念を図３を参照して説明する。
【００１１】
本発明の実施形態に係る画像処理装置に入力される映像は、単眼カメラ（単一のカメラ）で撮影したカメラ映像であり、周囲の明るさや撮像されている構造物、映像条件（ノイズの重畳状況、自動絞りの動作等）に応じて画面全体の輝度変動が発生する。固定閾値での設定のみとした場合には、昼間と夜間の明るさが変動する中で対象物のみを正確に抽出することは困難であり、閾値の決定は人間系によるものとなり、経験と勘など不確定要素によるところが大きくなる。そこで、本願発明者は、図３に示すように、ＱＶＧＡ（３２０×２４０画素）の全画素について、１画素当りで、ｎフレーム（例；３０フレーム）の輝度（エッジ強度）集合の平均（μ：輝度平均）と、標準偏差（σ）を求め、この標準偏差（σ）を閾値に設定する自動閾値設定技術を確立した。この自動閾値設定手段は、上述したように、波の揺らぎや、波に反射する西日の影響、木の激しい揺れ、木の影の揺れ等に対して変化画素として判定してしまう過剰検知が見受けられた。
【００１２】
揺らぎのある画素とそうでない画素の特徴を調査した結果、揺らぎのある画素は、自動閾値の設定で利用する輝度の分散が大きく、そうでない画素は分散が極端に小さいことが分かった。
【００１３】
そこで、輝度の標準偏差（σ）を利用して閾値を設定する場合、上記の特徴から、輝度の標準偏差の２以上の整数倍を閾値として設定することを考えた。例えば輝度の標準偏差の３倍（３σ）を閾値として設定することを考えた。これにより、変動の大きい画素の閾値がより大きく（変動の小さな画素の閾値がより小さな値で安定して）設定されるように変更した。
【００１４】
この３σを閾値に利用した場合、時間軸で一定して、この閾値（３σ）が連続的に大きい画素を、揺らぎ画素と判断することができるため、移動平均にて最終閾値を決定することとした。なお、移動平均を利用した場合、閾値への反映にタイムラグを伴う（過去のデータから現在を予測するため）。そこで、その影響を極力少なくするために、重みを付けた移動平均（加重移動平均）を利用し、直近（最新）の算出結果の影響が大きい結果を得られるようにした。また、常時、揺らいでいる画素のみならず、動体が存在した画素も一時的にではあるが、輝度の標準偏差が増大する。そこで、下式のように、閾値（３σ）を仮の閾値として加重移動平均から閾値（３σ）の加重移動標準偏差を減算することで、その影響を極力少なくする工夫を実施した。なお、ここでは最小輝度値を０、最大輝度値を２５５としている。
【００１５】
輝度分散V＝１／Ｎ×Σ（輝度）２  −  （１／Ｎ×Σ輝度）２
仮閾値（３σ）＝３＊sqrt（Ｖ）、ただし、２５５超過の場合は、２５５とする  sqrt：平方根
閾値＝ΣＷｎ×（３σ）／ΣＷｉ  −  Sqrt（１／Ｎ×Σ（３σ）２  −１／Ｎ×Σ（３σ））２）
：（３σの加重移動平均）−（３σの標準偏差）
この結果、波の揺らぎや波への西日の反射、木の揺れに順応した揺らぎがない安定した画素での安定的対象物の検知が可能になった。またダイナミックに変化する周囲の明るさに追従することが可能になった。この閾値の自動設定は、差分をとる対象画像が原画像、エッジ画像（空間微分画像、輪郭画像）のいずれにおいても適用できる。
【００１６】
上記した自動閾値の算出処理を毎フレーム全画素を対象に実施する技術は、波の揺らぎや波への西日の反射、木の揺れに順応する動き検出性能を持つが、画像が更新される度に、検出対象となる画像領域の全画素について煩雑な演算処理を繰り返し実施することから、システム全体の処理負荷に対して閾値算出に係る処理負荷の割合が大きく、かつその高負荷状態が定常的に継続される。
【００１７】
この問題を解消する手段として、画像上の閾値算出対象にある全画素領域について、画像上の複数画素単位のブロック（画素ブロック）を与え、ブロック毎に自動閾値算出対象となる注目画素をブロック内で順次一定のシフト方向に可変し巡回する処理を導入する。このブロック内で注目画素を順次一定のシフト方向に可変し巡回シフトする処理を、この実施形態では、説明内容に応じて、ブロック自動算出処理、もしくはブロック内巡回シフト処理、もしくは単に注目画素シフトと称している。
【００１８】
このブロック自動算出処理（ブロック内巡回シフト処理）の導入により、各画素の自動閾値更新処理がブロックサイズの画素数で決まるｎフレームに一度の割合となり、フレーム当たり（画像更新時）の閾値算出に係る処理負荷を軽減することができる。
【００１９】
しかし、単に、ブロックサイズを固定値として決め、ブロック毎に自動閾値算出対象となる注目画素をブロック内で順次一定のシフト方向に可変するブロック自動算出処理を実施した場合、ブロック内のある注目画素について、閾値が更新されるまでに、ブロックサイズの画素数分の画像（フレーム）更新を待つことになり、ブロック内の注目画素に対する閾値更新のサンプリング周期がブロックサイズの画素数分、長くなり、ブロック内の全ての画素が更新されるまでに多くの時間（フレーム数）を要する。例えば、ブロックサイズを８×８画素とした場合、注目画素は６４フレームの画像更新毎に抽出されることになり、３０フレームの画像を用いて自動閾値を求めるとすると、３０×６４フレームの画像更新に対する画素当たりの輝度値変動をチェックした自動閾値の設定をすることになり、映像入力開始直後は自動閾値の算出がされていない固定閾値にて差分処理が動作するため、自動閾値の算出が全画素分終了するまでの間、過剰検知が発生するなどの不具合が生じる虞がある。このため、パン、チルト、ズームの制御が可能なカメラで定周期にプリセット（予め設定されているポジション）への変更をする監視形態などにより、入力画像が短期に切り替わる（環境変動の高い）条件下では適用範囲が制限される。
【００２０】
そこで、この実施形態においては、上記した注目画素のブロック内巡回シフト機能をもつブロック自動算出処理において、ブロックサイズを所定のサイズまで段階的に大きくして、各画素における注目画素のサンプリング周期を、漸次、長くすることによって、自動閾値更新処理に係る処理負荷を軽減するとともに環境変動に対して一定の監視性能を保有する。
【００２１】
このブロック内巡回シフト処理を実施するブロックサイズを動的に可変する処理の導入により、自動閾値算出処理に係る処理負荷（算出対象画素）を、例えば１／４〜１／６４程度に、漸次、軽減することができる。このブロック内巡回シフト処理を実施するブロックサイズを動的に可変する処理を、この実施形態ではブロックサイズ動的可変処理と称している。
【００２２】
このブロックサイズ動的可変処理の具体的な処理イメージを図４に例示している。ここでは、１フレーム３２０×２４０画素の全領域（マスク領域なし）を自動閾値算出対象画素領域としており、ブロックサイズを所定のサイズまで段階的に可変（拡大）する場合、第１ステージ（初段）は、全画素の閾値を毎フレーム更新した、最小画素ブロック（１×１画素ブロック）となる、３２０×２４０＝７６８００回分の演算量、第２ステージ（画素ブロック＝２×２画素）は、第１ステージの１／４にあたる、１６０×１２０＝１９２００回分の演算量、第３ステージ（画素ブロック＝４×２画素）は、第１ステージの１／８にあたる、８０×１２０＝９６００回分の演算量、第４ステージ（画素ブロック＝４×４画素）は、第１ステージの１／１６に当たる、８０×６０＝４８００回分の演算量、と、ステージの更新（ブロックサイズの段階的ステップ更新）毎に、演算量が漸減してゆく。この実施形態では、最終ステージ（終段）の最大画素ブロックを８×８ブロックとして、第１ステージの１／６４にあたる４０×３０＝１２００回分の演算量まで漸減する。
【００２３】
ブロック内巡回シフトは、例えば、第２ステージ（画素ブロック＝２×２画素）の場合、ブロック内において、自動閾値の算出対象となる注目画素が、ハッチで示す［左上→右上→左下→右下］の順に巡回（シフト）する。従って、例えば左上の画素を注目画素とすると、当該注目画素は４フレームの画像更新毎に抽出されることになる。最終ステージ（最大画素ブロック＝８×８画素）の場合、注目画素は６４フレームの画像更新毎に抽出されることになる。
【００２４】
さらに、この実施形態では、上記したブロック内巡回シフト処理を複数回繰り返し行う処理を実施する。この処理をこの実施形態ではブロック内巡回シフトの循環処理と称している。
【００２５】
上記各ステージの処理において、上記ブロック指定とともに外部パラメータとして、ブロック内における各画素の循環回数を指定するステップ数が与えられ、このステップ数により、上記各ステージのブロック内循環回数（ブロック内巡回シフトの循環回数）が指定される。例えば、各ステージにステップ数［２］が外部パラメータとして与えられると、各ステージにおいて、ブロック内巡回シフトが２巡、繰り返し実施される。
【００２６】
上記図３に示した閾値設定手段に拠る自動閾値算出処理を基に、図４に示した、閾値算出対象となる全画素領域を複数のブロックに分割して分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフトの循環処理をブロックのサイズを段階的に拡大させながら実施することにより、初段回（第１ステージ）の全画素による閾値の算出によって速やかに入力映像の短期的映像変動に追従した閾値を設定するとともに、以降、段階毎に閾値設定に係る処理負荷を軽減して、パン、チルト、ズームなどにより撮像条件が切り替わった際の環境変動への追従が可能となる。このブロック内巡回シフトの循環処理をブロックのサイズを段階的に拡大させながら実施する処理を、この実施形態では、ステップブロッキング設定処理と称している。
【００２７】
以下、図１乃至図１６を参照して本発明の実施形態を説明する。  
本発明の実施形態に係る画像処理装置全体の構成を図１に示す。なお、この実施形態では、カメラ（単眼カメラ）から取り込んだ１フレーム（１画面）分の画像データを、単に画像若しくは画面上の画像若しくは一画面分の画像と称している。
【００２８】
本発明の実施形態に係る画像処理装置は、図１に示すように、カメラ１１と、キャプチャ部１２と、画像処理記憶部１３と、画像処理部１４と、表示部１５とを具備して構成される。
【００２９】
カメラ１１は、レンズユニットとレンズユニットの結像位置に設けられた撮像素子（例えばＣＣＤ固体撮像素子、若しくはＣＭＯＳイメージセンサ）とを具備して、屋外若しくは屋内の動きを伴う被写体（動物体）を対象に、撮像した一画面分の画像を所定の画素単位（例えば１フレーム３２０×２４０画素＝ＱＶＧＡ）で出力する。
【００３０】
キャプチャ部１２は、カメラ１１が撮像したフレーム単位の画像を画像処理部１４の処理対象画像（入力画像）として取り込み、画像処理記憶部１３内の画像バッファに保持する処理機能をもつ。この画像バッファに取り込む画面上の入力画像は、ここでは原画像とするが、エッジ画像であってもよい。
【００３１】
画像処理記憶部１３は、キャプチャ部１２が取り込んだ入力画像および画像処理部１４によって画像処理される途中／結果の各画像を含む各種画像データを記憶する。この画像処理記憶部１３には、画像処理部１４の制御の下で、キャプチャ部１２が取り込んだフレーム単位の画像のうち、今回取り込んだ一画面分の画像（現在画像）と、前回取り込んだ複数画面分の画像（過去画像）をそれぞれ処理対象画像として保持する画像バッファ（リングバッファ）を構成する領域が確保されるとともに、画像処理部１４の処理に用いられる画像領域が確保される。ここでは、１フレーム（１画像）を２４０×３２０画素（高さ方向の画素数（IMG HEIGHT）×幅方向の画素数（IMG WIDTH））とした３０フレーム分の画像バッファ（リングバッファ）領域が確保される。さらに画像処理記憶部１３には、画像処理部１４の処理に供される各種のパラメータおよび制御データを記憶する記憶領域、確定および未確定オブジェクトの登録、並びに追跡処理に於いて生成若しくは取得される各種情報の記憶領域等も確保される。この画像処理記憶部１３における、変化画素を抽出するための閾値の自動設定機能を実現するデータ要素については、図２を参照して後述する。
【００３２】
画像処理部１４は、画像処理記憶部１３の画像バッファに保持された過去画像と現在画像を差分処理して二値化した差分二値化画像を生成し、この差分二値化画像に含まれるノイズを除去して、このノイズが除去された差分二値化画像から変化画素を含む矩形の領域を抽出し、この抽出した矩形の領域を処理対象に領域を追跡する、一連の画像処理を行う。この画像処理部１４は、前処理部１４１、差分処理部１４２、二値化処理部１４３、ノイズ除去フィルタ１４４、領域化処理部１４５、領域追跡処理部１４６等を具備して構成される。
【００３３】
上記した画像処理部１４の各構成要素のうち、前処理部１４１は、画像処理記憶部１３の画像バッファに貯えた過去画像と現在画像との比較（変化画素領域を抽出するための差分処理）に際し、キャプチャ部１２が取り込んだ一画面分の入力画像に対して予め定められた前処理（平滑化処理、エッジ処理等）を実行する。
【００３４】
差分処理部１４２は、前処理部１４１を介した過去画像と現在画像とを画素単位で比較して差分領域を抽出するもので、差分画像を生成する。この差分画像は、画像処理記憶部１３に予め確保した領域（差分画像領域）に記憶される。この変化画素の抽出に、本発明の実施形態に係る閾値の自動算出処理機能が適用される。
【００３５】
この閾値の自動算出処理機能を実現する処理手段として、この実施形態では、環境適応型自動閾値算出処理部２０Ａと、標準偏差設定型自動閾値算出処理部２０Ｂを用意し、そのいずれか一方の自動閾値算出処理部を外部からの指示（設定）により選択的に用いる構成としている。これら環境適応型自動閾値算出処理部２０Ａ、および標準偏差設定型自動閾値算出処理部２０Ｂの処理の概要を図３に示している。
【００３６】
標準偏差設定型自動閾値算出処理部２０Ｂによる標準偏差設定型自動閾値算出処理では、図３に示すように、入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差σを算出し、この標準偏差σを、変化画素を抽出するための、対応する画素（注目画素）の閾値として設定する。この閾値算出処理の詳細は同一出願人により既に出願された特開２００８−２５０８９２号公報に記載されている。環境適応型自動閾値算出処理部２０Ａによる環境適応型自動閾値算出処理では、図３に示すように、上記算出した現在の注目画素の標準偏差σと上記一定期間内の最古画像を最も軽く最新画像を最も重く重み付けした上記注目画素の移動平均（加重移動平均）をもとに（３σの加重移動平均）−（３σの標準偏差）の値を算出し、この値を、変化画素を抽出するための、対応する画素（注目画素）の閾値として設定する。この環境適応型自動閾値算出処理部２０Ａの処理手順については図１０乃至図１６のフローチャートを参照して後述する。
【００３７】
この各自動閾値算出処理部２０Ａ，２０Ｂに対して、ステップブロッキング設定処理部３０により、閾値算出対象となる注目画素の抽出処理が実施される。ステップブロッキング設定処理部３０は自動閾値算出処理部２０Ａ，２０Ｂに対して、図４を用いて動作概要を説明した、ブロック内巡回シフトの循環処理をブロックのサイズを段階的に拡大させながら実施する、ステップブロッキング設定処理を実施する。このステップブロッキング設定処理部３０におけるステップブロッキング設定処理については、図５乃至図９を参照して後述する。
【００３８】
二値化処理部１４３は、差分処理部１４２で差分処理した画像を二値化処理して、差分二値化画像を生成する。この差分二値化画像は、画像処理記憶部１３に予め確保した領域（差分二値化画像領域）に記憶される。この差分二値化画像の作成に、上述した閾値の自動算出処理機能が適用される。
【００３９】
ノイズ除去フィルタ１４４は、拡散フィルタと収縮フィルタとを有して構成され、上記差分二値化画像から動物体領域の抽出に不要なノイズ（ごま塩状の変化画素）を除去する。このうち拡散フィルタは、上記差分二値化画像の最外周を除く各画素に対して注目画素を順次設定し、設定した注目画素に隣接する斜め方向の画素中（４画素中）に変化画素が存在するとき、その注目画素を変化画素とする拡散フィルタリング処理を行う。また収縮フィルタは、上記拡散フィルタで処理した画像に対して、上記注目画素に隣接する周囲８画素、若しくは４画素をもとに収縮フィルタリング処理を行う。このノイズ除去フィルタ１４４でノイズ除去したフレーム（画面）毎の差分二値化画像は、画像処理記憶部１３の画像領域に記憶される。
【００４０】
領域化処理部１４５は、上記ノイズ除去フィルタ１４４でノイズ除去した差分二値化画像を画面上の矩形の領域に領域化する処理を行う。この領域化処理では、差分二値化画像として抽出された変化画素領域を矩形で囲い、画面上からこの矩形の領域を抽出することによって、差分二値化画像を画面上の矩形の領域に領域化する。領域化処理部１４５は、この矩形の画面上の位置及び大きさを現す左上（ｘ０，ｙ０）および右下（ｘ１，ｙ１）の座標データを、矩形の領域情報として領域追跡処理部１４６に送出する。
【００４１】
領域追跡処理部１４６は、領域化処理部１４５から受けた矩形の領域情報をもとに、矩形の領域を追跡する処理を行う。領域追跡処理部１４６は、領域化処理部１４５が矩形の領域を抽出する都度、抽出した矩形の領域を追跡処理対象オブジェクトとして追跡処理する。
【００４２】
表示部１５は、上記画像処理部１４で画像処理された動物体領域を表示出力する。
【００４３】
画像処理記憶部１３には、図２に示すような、変化画素を抽出するための閾値の自動設定機能を実現する構成要素並びにデータ要素が格納される。画像処理記憶部１３には、図２に示すように、画像処理部１４の制御を司る画像処理プログラム内に、変化画素を抽出するための閾値の自動設定機能を実現する構成要素として、環境適応型自動閾値算出処理部２０Ａおよび標準偏差設定型自動閾値算出処理部２０Ｂを実現する自動閾値設定処理プログラムが格納される。この自動閾値設定処理プログラムには、図４を参照して動作概要を説明した、閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理を前記ブロックのサイズを段階的に拡大させながら実施するステップブロッキング設定処理（ＳＢ設定処理）プログラムが付随して設けられている。このステップブロッキング設定処理プログラムによる処理手順については、図５乃至図９を参照して後述する。また、自動閾値設定処理プログラムの処理手順については、図１０乃至図１６を参照して後述する。さらに画像処理記憶部１３には、自動閾値設定処理を実現するための情報として、２組の画像バッファ１３１，１３２、閾値バッファ１３３、閾値統計量バッファ１３４、外部パラメータ設定ファイル１３５等が格納される。
【００４４】
２組の画像バッファ１３１，１３２は、それぞれ、リングバッファにより構成され、カメラ１１で撮影した、現在画像を含む、例えば最大３０フレーム分の時系列画像を貯える領域を有している。このうち、画像バッファ１３１には、カメラ１１で撮影した３０フレーム分の原画像（空間微分画像）が時系列に順次貯えられる。また画像バッファ１３２には、同じく３０フレーム分のエッジ画像（輪郭画像）が時系列に順次貯えられる。
【００４５】
さらに画像バッファ１３１，１３２は、上記した画像の他に、画像サイズ、バッファの現在の要素番号、バッファ識別情報等の記憶領域を有している。画像バッファ１３１は、アクセス時において入力画像バッファポインタ（図示せず）により先頭アドレスが指定される。画像バッファ１３２は、アクセス時においてエッジ画像バッファポインタ（図示せず）により先頭アドレスが指定される。
【００４６】
閾値バッファ１３３は、リングバッファにより構成され、上記画像バッファ１３１（または画像バッファ１３２）が記憶可能なフレーム数以内の所定数を最大値として、設定された複数枚分の時系列のフレームを閾値演算の処理対象として貯える領域と、取り込んだ画像全体の画素当たりの標準偏差（σ）を閾値として貯える領域とを有して構成される。さらに、取り込んだ画像の輝度値、輝度値の二乗、輝度値二乗の総和、固定閾値、閾値上下限値、バッファの現在の要素番号、画像バッファ識別情報等の記憶領域を有して構成される。閾値バッファ１３３は、上記画像バッファ１３１（または画像バッファ１３２）に貯えられた画像から、設定したフレーム数の画像を取り込み、取り込んだ画像すべての画素（ピクセル）当たりの閾値の算出並びに設定後に、１画像単位で先入先出法による画像の更新（最古の画像を棄て最新の画像を取り込む画像の差し替え処理）、並びに、この画像の更新に伴う、加重移動平均を算出するための重み付けの更新処理等が実施される。
【００４７】
この閾値バッファ１３３上に展開されたｎ画像に対する画素当たりの閾値の算出処理概念を図３に示している。ここでは、３０フレーム分の画像を貯えるバッファ構成（ｎ＝３０）を例に示している。
【００４８】
閾値統計量バッファ１３４は環境適応型自動閾値算出処理に用いられる加重移動平均算出用のバッファであり、図３に示した加重移動平均の演算処理に適用されるもので、画像バッファ（リングバッファ）に貯えられた画像の画素当たりの閾値情報を記憶している。
【００４９】
外部パラメータ設定ファイル１３５には、差分処理の画像タイプ（例えば、１；原画像（ORIGINAL）、２；エッジ画像（EDGE））、自動閾値を計算するための参照フレーム数（ｎ；図３に示す例は、ｎ＝３０）、原画像用の最低閾値上下限値、エッジ画像用の最低閾値上下限値等、各種の設定情報が記憶される。なお、この実施形態では、１画面分の画像（１画像）について、動物体の追跡処理を行わない領域を任意の矩形領域で指定可能であり、この指定されたマスク領域についても外部パラメータとしてパラメータ設定ファイル１３５に記憶される。
【００５０】
上記画像処理記憶部１３に格納された、環境適応型自動閾値算出処理部２０Ａを実現する自動閾値設定処理プログラムの処理手順を図１０乃至図１６に示している。なお、標準偏差設定型自動閾値算出処理部２０Ｂの処理については、その処理手順の詳細を割愛している。
【００５１】
ここで、上記図４を参照して動作概要を説明したステップブロッキング設定処理（ブロック内巡回シフトの循環処理）について説明する。
【００５２】
上記した各自動閾値算出処理部２０Ａ，２０Ｂは、それぞれステップブロッキング設定処理部３０によりフレーム当たりの閾値算出量が制御される。
【００５３】
ステップブロッキング設定処理部３０は、フレーム内の閾値の算出対象となる全画素領域を複数のブロックに分割し、分割した各ブロック内で閾値の算出対象となる注目画素を順次シフトするブロック内巡回シフト処理機能と、このブロック内巡回シフト処理をブロックのサイズを段階的に拡大させながら実施するステップブロッキング処理機能を実現する。
【００５４】
ステップブロッキング設定処理部３０は、ブロックサイズを一定とした、ブロックサイズの段階的ステップ更新を行わないブロック自動算出処理（固定ブロック内シフト処理）モードで実施するか、ブロックサイズを動的に可変する、ブロックサイズの段階的ステップ更新を行うステップブロッキング設定処理モードで実施するかを選択するブロッキングモードの選択機能を有する。
【００５５】
ステップブロッキング設定処理部３０は、ステップブロッキング設定処理において、最小画素ブロックから最大画素ブロックに至る複数種の画素ブロックと、上記各画素ブロック内における各画素の循環回数を指定するステップ数とを外部パラメータ（閾値算出処理パラメータ）として、最小画素ブロックから最大画素ブロックに至る各ブロックのブロック内巡回シフトにより自動閾値の算出対象となる注目画素を抽出し、最大画素ブロックのブロック内巡回シフトによる閾値の算出対象画素抽出状態に至るまで、画像の更新に伴い１フレーム当たりの自動閾値の算出対象となる画素数を、各段階（ステージ）毎に漸減してゆく。
【００５６】
このステップブロッキング設定処理の処理手順を図５に示し、図５の処理で実施される注目画素のブロック内巡回シフトの具体例を図６乃至図９に示している。
【００５７】
図５に示す処理の実施に際して、自動閾値の算出対象となる注目画素抽出処理を実施するための外部パラメータが設定される。ここではブロックサイズを動的に可変する（ブロックサイズの段階的ステップ更新を行う）ステップブロッキング設定処理を実施する場合、ステップブロッキング設定処理部３０に、外部パラメータとして、最小画素ブロックから最大画素ブロックまで構成画素数が漸増する複数段の画素ブロックのうちの最終段となる最大画素ブロックと、画素ブロック内における各画素の循環回数を指定するステップ数が設定される。また、ブロックサイズを一定（固定）とした（ブロックサイズの段階的ステップ更新を行わない）ブロック自動算出処理（固定ブロック内シフト処理）を実施する場合、ステップブロッキング設定処理部３０に、任意のブロックサイズによる一種の画素ブロックと、上記ステップ数を０（Null値）とした外部パラメータが設定される。
【００５８】
画素ブロックとしては、例えば、前述のステージ０で実施したフレーム内の自動閾値算出対象にある全画素を注目画素（自動閾値算出対象画素）とする、最小画素ブロック（１×１画素ブロック）構成の自動閾値ブロッキングタイプ０（m_ThresholdBlockingType=0）、２×２画素ブロック（４画素ブロック）構成の自動閾値ブロッキングタイプ１（m_ThresholdBlockingType=1）、４×２画素ブロック（８画素ブロック）構成の自動閾値ブロッキングタイプ２（m_ThresholdBlockingType=2）、４×３画素ブロック（１２画素ブロック）構成の自動閾値ブロッキングタイプ３（m_ThresholdBlockingType=3）、４×４画素ブロック（１６画素ブロック）構成の自動閾値ブロッキングタイプ４（m_ThresholdBlockingType=4）、８×４画素ブロック（３２画素ブロック）構成の自動閾値ブロッキングタイプ５（m_ThresholdBlockingType=5）、最大画素ブロックとなる８×８画素ブロック（６４画素ブロック）構成の自動閾値ブロッキングタイプ６（m_ThresholdBlockingType=6）がそれぞれ定義される。以下、自動閾値ブロッキングタイプを単にブロッキングタイプと呼称する。
【００５９】
ブロッキングタイプ１（m_ThresholdBlockingType=1）の２×２画素ブロック内巡回シフト例（ハッチ部分がサンプリング抽出画素）を図６に示し、ブロッキングタイプ２（m_ThresholdBlockingType=2）の４×２画素ブロック内巡回シフト例（ハッチ部分がサンプリング抽出画素）を図７に示し、ブロッキングタイプ３（m_ThresholdBlockingType=3）の４×３画素ブロック内巡回シフト例（ハッチ部分がサンプリング抽出画素）を図８に示し、ブロッキングタイプ４（m_ThresholdBlockingType=4）の４×４画素ブロック内巡回シフト例（ハッチ部分がサンプリング抽出画素）を図９に示している。なお、ブロッキングタイプ５（m_ThresholdBlockingType=5）およびブロッキングタイプ６（m_ThresholdBlockingType=6）のブロック内巡回シフトについては図６乃至図９から容易に類推できるので図の表記を割愛している。
【００６０】
これらのブロッキングタイプにおけるブロック内の注目画素のシフト処理に係るパラメータとして、ブロッキングタイプ（m_ThresholdBlockingType）別に、Δｉ（ｘ方向のシフト量；m_ThresholdBlockingShift_x）とΔｊ（ｙ方向のシフト量；m_ThresholdBlockingShift_y）が外部パラメータ読込み時点で与えられる（画像ループのシフト量として利用する）。さらに、ThresholdBlockingCurNum=m_ThresholdBlockingType×4（ここで示す４は、ブロッキング単位の最小値、THRESHOLD_BLOCKING_UNITとしてDefine.hで定義する）を超えない循環整数を準備し、循環整数に基づき注目画素のシフトを更に与える。
【００６１】
Δｘ＝ThresholdBlockingCurNum % Δi  …  Δｉの剰余
Δｙ＝(int)(ThresholdBlockingCurNum / Δi)  …Δｉの商
注目画素＝p_InputImgData[curNum].image[i]+Δx+(J+Δy)*IMG_HEIGHT
上記注目画素シフト量の算出には、閾値ブロック参照番号（m_ThresholdBlockingCurNum  初期値＝０）、注目画素シフト量（offset_x  ，offset_y）などのデータが用いられる。
【００６２】
ここで、図５に示すフローチャートを参照してステップブロッキング設定処理部３０の処理動作を説明する。
【００６３】
ステップブロッキング設定処理部３０は、外部パラメータとして設定されたステップ数が、１以上の自然数であるか、０（またはNull値）であるかを判断し（図５ステップＡ１）、設定されたステップ数が１以上の値であれば、ステップブロッキング設定処理による自動閾値算出対象画素抽出処理を実施し（図５ステップＡ２ａ〜Ａ９，Ａ４〜）、ステップ数が０（またはNull値）であれば、ブロックサイズを一定（固定）としたブロック自動算出処理を実施する（図５ステップＡ２ｂ〜Ａ８，Ａ４〜）。
【００６４】
例えば、設定されたステップ数の値が２である場合（図５ステップＡ１  Ｙｅｓ）、処理に用いる現在ブロッキングサイズとして、ブロッキングタイプ０（m_ThresholdBlockingType=0）を設定し（図５ステップＡ２ａ）、現在ステップ数を０（＝初期値）にして（図５ステップＡ３）、ブロッキングタイプ０（m_ThresholdBlockingType=0）による全画素を自動閾値の算出対象（注目画素）とした１ステップ分（１巡目）の自動閾値算出処理を実施する（図５ステップＡ４）。
【００６５】
１ステップ分（１巡目）の自動閾値算出処理が終了すると、現在ステップ数を０から１に更新（現在ステップ数をインクリメント）し（図５ステップＡ５）、更新した現在ステップ数が設定ステップ数に達しているか否かを判断する（図５ステップＡ６）。
【００６６】
ここでは、現在ステップ数が設定ステップ数に達していないので（図５ステップＡ６  Ｎｏ）、現在ステップ数を１から２に更新し（図５ステップＡ７ｂ）、再び、ブロッキングタイプ０（m_ThresholdBlockingType=0）による全画素を自動閾値算出対象となる注目画素とした１ステップ分（２巡目）の自動閾値算出処理を実施する（図５ステップＡ４）。
【００６７】
１ステップ分（２巡目）の自動閾値算出処理が終了すると、現在ステップ数を１から２に更新し（図５ステップＡ５）、更新した現在ステップ数が設定ステップ数に達しているか否かを判定する（図５ステップＡ６）。
【００６８】
ここでは、現在ステップ数が設定ステップ数に達したので（図５ステップＡ６  Ｙｅｓ）、現在ステップ数を０に初期化し（図５ステップＡ７ａ）、現在ブロッキングサイズが設定ブロッキングサイズより小さいサイズであるか否かを判断する（図５ステップＡ８）。
【００６９】
例えば、設定された最大ブロッキングサイズがブロッキングタイプ６（m_ThresholdBlockingType=6）（＝８×８画素ブロック）であるとすると、ここでは、現在ブロッキングサイズが設定ブロッキングサイズより小さいサイズなので（図５ステップＡ８  Ｙｅｓ）、現在ブロッキングサイズをブロッキングタイプ０（m_ThresholdBlockingType=0）（１×１画素ブロック＝全画素）からブロッキングタイプ１（m_ThresholdBlockingType=1）（＝２×２画素ブロック）に拡大し（図５ステップＡ９）、更新したブロッキングタイプ１（m_ThresholdBlockingType=1）による自動閾値算出処理を実施する（図５ステップＡ４）。
【００７０】
上記した処理を更新したブロッキングサイズ毎に２巡ずつ繰り返し実施し、現在ブロッキングサイズがブロッキングタイプ６（m_ThresholdBlockingType=6）（＝８×８画素ブロック）となって、現在ブロッキングサイズが設定ブロッキングサイズまで拡大すると（図５ステップＡ８  Ｎｏ）、以降、ブロッキングタイプ６（m_ThresholdBlockingType=6）（＝８×８画素ブロック）による自動閾値算出処理を繰り返し実施する（図５ステップＡ４〜Ａ８，Ａ４〜Ａ８，…）。このようにして、ステップブロッキング設定処理が実施される。
【００７１】
また、設定されたステップ数の値が０である場合（図５ステップＡ１  Ｎｏ）、外部パラメータとして与えられた、例えばブロッキングタイプ６（m_ThresholdBlockingType=6）（＝８×８画素ブロック）を処理に用いる現在ブロッキングサイズとして設定し（図５ステップＡ２ｂ）、現在ステップ数を０に初期化して（図５ステップＡ３）、ブロッキングタイプ６（m_ThresholdBlockingType=6）による自動閾値算出処理を実施する（図５ステップＡ４）。
【００７２】
この自動閾値算出処理が終了すると、現在ステップ数を０から１に更新し（図５ステップＡ５）、更新した現在ステップ数が設定ステップ数に達しているか否かを判断する（図５ステップＡ６）。
【００７３】
ここでは、現在ステップ数が設定ステップ数に達しているので（図５ステップＡ６  Ｙｅｓ）、現在ステップ数を０に初期化し（図５ステップＡ７ａ）、現在ブロッキングサイズが設定ブロッキングサイズより小さいサイズであるか否かを判断する（図５ステップＡ８）。ここではサイズが等しいことから（図５ステップＡ８  Ｎｏ）、再びブロッキングタイプ６（m_ThresholdBlockingType=6）（＝８×８画素ブロック）による自動閾値算出処理を繰り返し実施する（図５ステップＡ４〜Ａ８，Ａ４〜Ａ８，…）。このようにして、ブロック自動算出処理が実施される。
【００７４】
ここで、上記したステップブロッキング設定処理を実施する環境適応型自動閾値算出処理部２０Ａの処理手順を図１０乃至図１６に示すフローチャートを参照して説明する。なお、このフローチャートでは乗算記号を＊で表している。
【００７５】
この実施形態は、カメラで撮影した画像を順次入力し、入力した現在画像と過去画像から変化画素を含む領域を抽出する領域抽出処理手段を備えた画像処理装置において、領域抽出処理手段で適用する閾値の設定処理について、標準偏差設定型自動閾値算出処理と、環境適応型自動閾値算出処理とを選択対象に、そのいずれかの閾値算出処理手段を選択可能にしている（図１０ステップＳ１）。
【００７６】
ここで標準偏差設定型自動閾値算出処理が選択（設定）されているときは、標準偏差設定型自動閾値算出処理部２０Ｂにより、注目画素に対して変化画素領域を抽出するための閾値が算出され設定される。この標準偏差設定型自動閾値算出処理部２０Ｂによる標準偏差設定型自動閾値算出処理では、図３に示すように、入力した一定期間内の複数の画像を対象に、画素当たりの輝度平均値と標準偏差σを算出し、この標準偏差σを、変化画素を抽出するための、対応する画素（注目画素）の閾値として設定する（図１０ステップＳ２）。
【００７７】
また、環境適応型自動閾値算出処理が選択（設定）されているときは、環境適応型自動閾値算出処理部２０Ａにより、注目画素に対して変化画素領域を抽出するための閾値が算出され設定される。この環境適応型自動閾値算出処理部２０Ａによる環境適応型自動閾値算出処理では、図３に示すように、上記算出した現在の注目画素の標準偏差σと上記一定期間内の最古画像を最も軽く最新画像を最も重く重み付けした上記注目画素の移動平均（加重移動平均）をもとに（３σの加重移動平均）−（３σの標準偏差）の値を算出し、この値を、変化画素を抽出するための、対応する画素（注目画素）の閾値として設定する。
【００７８】
この環境適応型自動閾値算出処理部２０Ａによる自動閾値算出処理手順を図１０ステップＳ１１乃至図１６ステップＳ７７に示している。この処理動作は、画像バッファにｎ枚フレーム分の画像が貯えられていることを前提とする。また、環境適応型自動閾値算出処理部２０Ａによる自動閾値算出処理に際しては、外部パラメータの設定時において、ブロッキングタイプにおけるブロック内の注目画素のシフト処理に係るパラメータとして、ブロッキングタイプ（m_ThresholdBlockingType）別に、画像ループのシフト量として利用する、ブロック内シフトのための、Δｉ（ｘ方向のシフト量；m_ThresholdBlockingShift_x）とΔｊ（ｙ方向のシフト量；m_ThresholdBlockingShift_y）が設定される。
【００７９】
この環境適応型自動閾値算出処理では、先ず、画像要素番号や閾値バッファ要素番号等のメンバ変数を初期化し（図１０ステップＳ１１）、画像バッファ１３１（または１３２）内の処理対象となる現在の画像要素番号を取得し（図１０ステップＳ１２）、閾値バッファ１３３内の処理対象となる現在の閾値バッファ要素番号を取得した（図１０ステップＳ１３）後、差分処理の対象となる画像が、原画像（ORIGINAL）であるかエッジ画像（EDGE）であるかを判断する（図１０ステップＳ１４）。
【００８０】
ここで、処理対象画像が「原画像」であると判定したき（図１０ステップＳ１４  原画像）、原画像バッファポインタに従い画像バッファ１３１をアクセスし、外部パラメータで与えられる原画像用の最低閾値上下限値を閾値バッファ１３３に設定する（図１０ステップＳ１５，Ｓ１６）。また処理対象画像が「エッジ画像」であると判定したき（図１０ステップＳ１４  エッジ画像）、エッジ画像バッファポインタに従い画像バッファ１３２をアクセスし、外部パラメータで与えられるエッジ画像用の最低閾値上下限値を閾値バッファ１３３に設定する（図１０ステップＳ１７、Ｓ１８）。
【００８１】
さらに、処理対象となる入力画像のうち、処理の対象から外されたマスク領域を除くの各画素（ピクセル）について、処理に用いる現在ブロッキングタイプ（m_ThresholdBlockingType）の注目画素シフト量（offset_x  ，offset_y）を算出する（図１０ステップＳ１９）。
【００８２】
次に、処理対象となる入力画像のうち、処理の対象から外されたマスク領域を除くの各画素（ピクセル）について、ステップブロッキング設定処理部３０で抽出された注目画素を対象に、変化画素を抽出するための閾値の算出処理、次画面の閾値を取得するための各種算出処理を実施する（図１１Ｓ２０〜図１３ステップＳ５０，Ｓ５１）。
【００８３】
ここでは入力された１画面分の画像について各画素を一定の方向に順次走査し（高さ方向のｊループ（０〜IMG HEIGHT）と幅方向のｋループ（０〜IMG WIDTH）とによる画像サイズ分（２４０×３２０画素）のループ処理により各画素を走査し）、処理の対象から外されたマスク領域を除く各画素（ピクセル）について、変化画素を抽出するための閾値の算出処理、次画面の閾値算出のための画像の更新（最古の画像を棄て最新の画像を取り込む画像の差し替え）に伴う加重閾値総和の更新、並びにこの更新に伴う各種値（標準偏差、二乗標準偏差、輝度値、輝度値二乗等）の算出処理等を実施する。
【００８４】
この処理では、現在ブロッキングタイプ（m_ThresholdBlockingType）の注目画素シフト量（offset_x  ，offset_y）を用いて現在注目画素番号を算出し、その注目画素がマスク画素であるか否か（予め設定されたマスク領域の画素であるか否か）をチェックする（図１１ステップＳ２１，Ｓ２２）。
【００８５】
ここで、注目画素がマスク画素であるときは、以降の図１１ステップＳ２３乃至図１３ステップＳ４９の処理をスキップする。また、注目画素がマスク画素でない（自動閾値の算出対象となる注目画素である）場合は、画像バッファの画像要素番号をインクリメント（＋１）して（図１１ステップＳ２３）、入力画像の輝度値と、輝度値の二乗を算出した結果をそれぞれ所定のバッファ（閾値バッファ１３３内の輝度値バッファ、輝度値二乗バッファ）に格納する（図１１ステップＳ２４）。
【００８６】
次に、注目画素の輝度値二乗の総和を求め、その総和から輝度値二乗の平均値を算出する（図１１ステップＳ２５）。同じく、注目画素の輝度値の総和を求め、その総和から輝度値の平均値を算出する（図１１ステップＳ２６）。そして、この２つの平均値をもとに、注目画素の標準偏差を求める（図１１ステップＳ２７）。
【００８７】
上記注目画素の閾値バッファ番号（画像バッファの画像要素番号）を取得し（図１２ステップＳ２８）、既に求めた閾値の加重総和、閾値の総和、閾値２乗の総和を用いて、設定する閾値を算出する（図１２ステップＳ２９〜Ｓ３２）。ここでは、既に算出している閾値2乗総和を利用して、閾値2乗平均値（thresholdSqMean）を算出し（図１２ステップＳ２９）、既に算出している閾値総和を利用して、閾値平均値（thresholdMean）を算出し、既に算出している加重閾値総和を利用して、加重閾値平均値（weightThresholdMean）を算出し、この閾値2乗平均値（thresholdSqMean）と閾値平均値（thresholdMean）と加重閾値平均値（weightThresholdMean）とを用いて設定する閾値（tempThreshold）を算出する。
【００８８】
次に算出した設定閾値の最小、最大チェックを行い、適正な値にする（図１２ステップＳ３３〜Ｓ３７）。ここでは算出した閾値が輝度最小値（輝度値０）より小さいとき（Tempthreshold＜BRIGHTNESS_MIN）、算出した閾値を輝度最小値に置換し（m_ThreBufSet.threshold[i]＝BRIGHTNESS_MIN）、算出した閾値が輝度最大値（輝度値２５５）より大きいとき（Tempthreshold＞BRIGHTNESS_MAX）、算出した閾値を輝度最大値に置換して（m_ThreBufSet.threshold[i]＝BRIGHTNESS_MAX）、算出した閾値を輝度値０〜２５５の範囲内に収めて設定し、それ以外のときは、算出した閾値をそのまま設定する（m_ThreBufSet.threshold[i]＝tempThreshold）。
【００８９】
次に、輝度の標準偏差（σ）から３σを求め、次の画像の閾値を算出するための処理を行う。
【００９０】
この処理では、上記標準偏差（σ）を３倍した値（３σ）を現在閾値（calcThreshold）として求め、求めた現在閾値が最大輝度以上の場合は、最大輝度に変更して（図１３ステップＳ４１）、求めた現在閾値の２乗を求める（図１３ステップＳ４２）。
【００９１】
次に、画像の更新（最古の画像を棄て最新の画像を取り込む画像の差し替え）に伴う処理として、過去加重閾値データの合計から過去閾値合計を減算し、現在閾値に重みを乗じた値を加算して、総和を求め（図１３ステップＳ４３）、注目画素の閾値合計を求め、注目画素の閾値の２乗合計を求める（図１３ステップＳ４４）。算出した現在閾値をバッファに格納し、算出した現在閾値２乗をバッファに格納して（図１３ステップＳ４５）、算出閾値格納先バッファを更新する（図１３ステップＳ４６）。
【００９２】
次に、自動閾値を算出した画像サイズ分の標準偏差の総和と二乗標準偏差の総和を求め（図１３ステップＳ４７）、既にある総和に対して、バッファに存在する最も古い（現在の要素番号にある）輝度値、輝度値二乗を減算し、図１１ステップＳ２う算出した輝度値、輝度値二乗の値を加算（総和の計算）して（図１３ステップＳ４８）、この輝度値、輝度値二乗をバッファへ格納する（図１３ステップＳ４９）。
【００９３】
上記した処理が１画面分の画像について実施される（図１３ステップＳ５０，Ｓ５１）。
【００９４】
上記処理の後、自動閾値算出画素が０に達したか否かを調べ、自動閾値算出画素が０より大きい場合は、以下の図１４ステップＳ５３乃至図１５ステップＳ７１の処理を実行し、自動閾値算出画素が０に達した場合は、図１４ステップＳ５３乃至図１５ステップＳ７１の処理を実行しない（図１４ステップＳ５２）。
【００９５】
自動閾値算出画素が０より大きい場合、自動閾値算出画素分の標準偏差を算出していることから、標準偏差の平均値と二乗標準偏差の平均値を求め、自動閾値算出画素分の標準偏差の標準偏差を求め（図１４ステップＳ５３）、ここで求めたデータを用いて、平均値＋３σを求め、仮の最低閾値Ａとして格納する。（tempLowerLimitByStdev）（図１４ステップＳ５４）。さらに、ここで求めた最低閾値が輝度階調内に入っているかをチェックし、入っていない場合は、輝度階調内の値に置換する。すなわち、最低閾値が輝度最小値より小さいときは輝度最小値に置換し、最低閾値が輝度最大値より大きいときは輝度最大値に置換する（図１４ステップＳ５５）。標準偏差の平均値に感度を乗じた値を仮の最低閾値Ｂとして格納する。（tempLowerLimitByMean）（図１４ステップＳ５６）。ここで求めた最低閾値が輝度階調内に入っているかをチェックし、入っていない場合は、上記した図１４ステップＳ５５と同様に輝度階調内の値（輝度最小値、輝度最大値）に置換する（図１４ステップＳ５７）。
【００９６】
上記の最低閾値Ａ、Ｂを比較し、大きい方を最低閾値（LowerLimit）として採用する（図１４ステップＳ５８，Ｓ５９，Ｓ６０）。セットした最低閾値が、下限閾値より小さい場合は、下限閾値をセットし、上限閾値より大きい場合は上限閾値をセットする（図１５ステップＳ６１〜Ｓ６４）。
【００９７】
次に画像サイズ分ループし（図１５ステップＳ６５〜Ｓ７１）、当該画素の閾値が最低閾値を下回った閾値設定となっている場合は、最低閾値で置換する（図１５ステップＳ６７〜Ｓ６９）。
【００９８】
その後、閾値ブロック内現在参照番号に１加算し（図１６ステップＳ７２）、閾値ブロック内参照番号最大値に達したか否かをチェックして（図１６ステップＳ７３）、達している場合は０で初期化し（図１６ステップＳ７４）、現在要素番号に１加算し（図１６ステップＳ７５）、その要素番号が最大値を超えたか否かをチェックして（図１６ステップＳ７６）、超えた場合は０で初期化する（図１６ステップＳ７７）。
【００９９】
上記した一連の処理により、単眼カメラで撮影した画像から変化画素を含む矩形の領域を抽出する領域抽出処理機能を有する画像処理装置において、波の揺らぎや波への西日の反射、木の揺れに順応し、揺らぎがない安定した画素での安定的対象物の検知が可能な閾値の自動設定機能を実現できる。これにより、カメラの設置条件、使用条件、撮影条件等の諸条件に対して安定した精度の高い変化画素領域の抽出を可能にした画像処理装置が提供できる。
【０１００】
上述した図５および図１０乃至図１６に示す処理手順を有する自動閾値設定処理プログラムは、画像処理装置に常駐する形で固定的に組み込まれる構成であってもよいし、プログラム単体で必要に応じて取り扱われる構成であってもよい。
【０１０１】
また、上記した実施形態では、ステップブロッキング設定処理（ブロック内巡回シフトの循環処理）に用いる自動閾値ブロッキングタイプ（m_ThresholdBlockingType）を７例、示したが、これに限らず、また、ブロック内巡回シフトの方向、抽出順位なども任意に変更可能である。
【符号の説明】
【０１０２】
１１…カメラ、１２…キャプチャ部、１３…画像処理記憶部、１４…画像処理部、１５…表示部、２０Ａ…環境適応型自動閾値算出処理部、２０Ｂ…標準偏差設定型自動閾値算出処理部、３０…ステップブロッキング設定処理部、１３１，１３２…画像バッファ、１３３…閾値バッファ、１３４…閾値統計量バッファ、１３５…外部パラメータ設定ファイル、１４１…前処理部、１４２…差分処理部、１４３…二値化処理部、１４４…ノイズ除去フィルタ、１４５…領域化処理部、１４６…領域追跡処理部。
【図１】
0005616989.tif 000002
【図２】
0005616989.tif 000003
【図３】
0005616989.tif 000004
【図４】
0005616989.tif 000005
【図５】
0005616989.tif 000006
【図６】
0005616989.tif 000007
【図７】
0005616989.tif 000008
【図８】
0005616989.tif 000009
【図９】
0005616989.tif 000010
【図１０】
0005616989.tif 000011
【図１１】
0005616989.tif 000012
【図１２】
0005616989.tif 000013
【図１３】
0005616989.tif 000014
【図１４】
0005616989.tif 000015
【図１５】
0005616989.tif 000016
【図１６】
0005616989.tif 000017