(57)【要約】【課題】入力画像から背景画像を生成する際に、前景を適切に識別して背景画像を生成する。【解決手段】本発明の一実施形態における画像処理装置は、前景に移動体が存在する入力画像に基づいて、入力画像の画素値及び画素の状態変化を蓄積する履歴画像を生成する履歴画像生成手段であって、入力画像と履歴画像の画素値の差分が所定の閾値より大きい領域を、前景として扱う履歴画像生成手段と、前景が識別された履歴画像に蓄積された画素値及び画素の状態変化に基づいて、背景画像を生成する背景画像生成手段とを有することを特徴とする。【選択図】図２
2019086969.tif 000002
【特許請求の範囲】
【請求項１】
前景に移動体が存在する入力画像に基づいて、前記入力画像の画素値及び画素の状態変化を蓄積する履歴画像を生成する履歴画像生成手段であって、前記入力画像と前記履歴画像の画素値の差分が所定の閾値より大きい領域を、前記前景として扱う履歴画像生成手段と、
前記前景が識別された前記履歴画像に蓄積された画素値及び画素の状態変化に基づいて、背景画像を生成する背景画像生成手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記所定の閾値は、環境光による輝度の変化量を示す第１の閾値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の閾値は、環境光による色相または彩度の変化量をさらに含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記所定の閾値は、前記前景の動きによる色相または彩度の変化量を示す第２の閾値であることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記履歴画像生成手段は、前記入力画像と前記履歴画像の画素値の差分が前記所定の閾値より大きく、かつ、前記入力画像と前記履歴画像の画素値の変化方向と、前記入力画像の輝度変化履歴の変化方向とが一致する領域を、前記前景として扱うことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記背景画像生成手段は、前記入力画像の所定のフレーム数を示す更新レートにしたがって、前記背景画像を更新することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記背景画像生成手段は、前記入力画像の輝度変化履歴が変化した場合に、前記更新レートを再設定し、前記背景画像の更新タイミングを変更することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記背景画像を用いて、前記入力画像から前景と背景とを分離する画像分離手段をさらに有することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記背景画像と任意の前景画像とを合成して、合成画像を生成する合成画像生成手段をさらに有することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項１０】
コンピュータを、請求項１乃至８のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項１１】
前景に移動体が存在する入力画像に基づいて、前記入力画像の画素値及び画素の状態変化を蓄積する履歴画像を生成するステップであって、前記入力画像と前記履歴画像の画素値の差分が所定の閾値より大きい領域を、前記前景として扱うステップと、
前記前景が識別された前記履歴画像に蓄積された画素値及び画素の状態変化に基づいて、背景画像を生成するステップと
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、背景画像の生成技術に関する。
【背景技術】
【０００２】
従来、監視カメラや仮想視点映像生成システムでは、映像に含まれる前景と背景のそれぞれに対して適切な画像処理や伝送処理を行うため、映像に含まれる移動体（すなわち、前景）を分離して、背景画像を生成するものがある。生成した背景画像は、例えば、入力画像と比較して、移動体を検出するために用いられる。所謂、背景差分法と呼ばれる手法である。
【０００３】
特許文献１には、入力画像の輝度レベルの変化を用いて、入力画像から抽出した移動体の影を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１５１３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、入力画像全体の明るさが変化したり、背景領域の色が変化したりした場合など、背景領域であっても画素値が変化するような場合に、前景を適切に識別して背景画像を生成することができなかった。
【０００６】
本発明はこのような問題に鑑みてなされたものであり、その目的とするところは、入力画像から背景画像を生成する際に、前景を適切に識別して背景画像を生成することにある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態における画像処理装置は、前景に移動体が存在する入力画像に基づいて、前記入力画像の画素値及び画素の状態変化を蓄積する履歴画像を生成する履歴画像生成手段であって、前記入力画像と前記履歴画像の画素値の差分が所定の閾値より大きい領域を、前記前景として扱う履歴画像生成手段と、前記前景が識別された前記履歴画像に蓄積された画素値及び画素の状態変化に基づいて、背景画像を生成する背景画像生成手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、入力画像から背景画像を生成する際に、前景を適切に識別して背景画像を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置のハードウェア構成図である。
【図２】画像処理装置の機能ブロック図である。
【図３】背景画像生成処理の概念図である。
【図４】履歴バッファ制御部による履歴画像生成処理のフローチャートである。
【図５】背景バッファ制御部による背景画像生成処理のフローチャートである。
【図６】システム制御部による制御処理のフローチャートである。
【図７】背景画像生成処理の概念図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照して詳細に説明する。  
（第１の実施形態）
図１は、本発明の第１の実施形態における画像処理装置のハードウェア構成例を示す。画像処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、記憶装置１０４、出力装置１０５、入力装置１０６、ネットワークＩ／Ｆ（インターフェース）１０７、及び撮像装置１０８を有する。各構成要素は、バス１０９を介して相互に通信可能に接続されている。
【００１１】
ＣＰＵ１０１は、ＲＯＭ１０２及び記憶装置１０４に格納されたプログラムを実行して、画像処理装置１００を統括的に制御する。ＲＯＭ１０２は、画像処理装置１００の制御プログラムを格納する。ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行する際のメインメモリとして機能し、一時記憶領域として用いられる。記憶装置１０４は、ＨＤＤなどの記憶媒体であり、画像データや各種プログラムなどを記憶する。
【００１２】
出力装置１０５は、ディスプレイなどの表示装置であって、各種設定情報や画像データ等を表示する。入力装置１０６は、マウスやキーボード、タッチパネル等であり、ユーザーから各種設定情報の入力や、操作指示を受け付ける。ネットワークＩ／Ｆ１０７は、ネットワークを介して外部装置と通信を行なうためのインターフェースである。撮像装置１０８は、所定のフレームレートで入力画像を撮像し、画像データを生成する。生成された画像データは、記憶装置１０４に格納される。
【００１３】
以上、本実施形態における画像処理装置１００のハードウェア構成を説明したが、画像処理装置１００のハードウェア構成は、上述した構成に限定されるものではない。また、後述する画像処理装置１００の機能は、ＣＰＵ１０１が、ＲＯＭ１０２または記憶装置１０４に格納されたプログラムを読み出して実行することにより、実現される。
【００１４】
図２は、本発明の第１の実施形態における画像処理装置の機能ブロック図である。画像処理装置１００は、撮像部２０１、履歴バッファ２０２、履歴バッファ制御部２０４、背景バッファ２０３、背景バッファ制御部２０５、及びシステム制御部２０６を有する。
【００１５】
撮像部２０１は、撮像装置１０８によって構成され、所定のフレームレートで入力画像を撮像する。履歴バッファ２０２は、入力画像から生成した履歴画像（すなわち、画素値）と、履歴画像の各画素のアトリビュートとを保持する。背景バッファ２０３は、履歴バッファ２０２が保持する履歴画像を所定のタイミングで合成することで生成された背景画像（すなわち、画素値）と、背景画像の各画素のアトリビュートを保持する。
【００１６】
履歴バッファ制御部２０４は、システム制御部２０６の指示により、入力画像の画素値と、履歴バッファ２０２に保持された履歴画像の画素値及び各画素のアトリビュートを参照し、履歴画像の画素値と各画素のアトリビュートを更新する。
【００１７】
背景バッファ制御部２０５は、システム制御部２０６の指示により、履歴バッファ２０２と背景バッファ２０３に保持された画像の画素値及びアトリビュートを参照し、背景バッファ２０３の背景画像の画素値と各画素のアトリビュートを更新する。すなわち、背景バッファ制御部２０５は、履歴バッファ２０２の内容を背景バッファ２０３に反映する。
【００１８】
一実施形態では、背景バッファ２０３に保持された背景画像は、入力画像から前景領域を抽出するために使用することができる。言い換えると、背景バッファ２０３に保持された背景画像は、入力画像を前景領域と背景領域に分離するための前景背景分離処理に用いることができる。すなわち、画像処理装置１００は、背景画像を用いて入力画像を前景と背景とに分離する画像分離部（不図示）を有してもよい。
【００１９】
また、別の実施形態では、背景バッファ２０３に保持された背景画像は、任意の前景画像と合成することで、新たな映像を生成するために使用することができる。すなわち、画像処理装置１００は、背景画像と任意の前景画像とを合成して、合成画像を生成する合成画像生成部（不図示）を有してもよい。
【００２０】
以上、本実施形態における画像処理装置１００の主な機能について説明したが、画像処理装置１００の機能は、上述した機能に限定されるものではない。
【００２１】
図３は、本実施形態における背景画像生成処理の概念図である。本実施形態では、入力画像と履歴バッファ２０２に保持された履歴画像の内容を比較し、画素値及び画素の状態変化の評価結果を履歴バッファ２０２に蓄積して、背景の候補画像を生成する。生成した背景の候補画像は所定の期間ごとに背景バッファ２０３に反映され、背景が更新される。本実施形態では、履歴バッファ２０２に保持された履歴画像のアトリビュートとして、"背景"、"輝度変化"、"前景候補"、"未確定"の４つの値を持つ履歴状態フラグを用いて、前景と影と背景とを識別する。履歴状態フラグは、履歴画像の各画素に付与され、各画素の状態を表す。
【００２２】
"背景"は、画素値が背景であることを示す。
【００２３】
"輝度変化"は、入力画像と履歴画像の画素値が異なるが、画素値の相違が環境光の変化によるものと推定されたことを示す。
【００２４】
"前景候補"は、入力画像と履歴画像の画素値の差異が、環境光の増減によって起き得る変化であるが、画素値の変化と入力画像全体の輝度変化の方向が一致しなかったことを示す。例えば、"前景候補"は、処理中の入力画像が履歴画像と比較して全体的に明るくなっているが、処理中の画素は履歴画像の対応する画素値と比較して暗くなっている状態を示す。"前景候補"は、この他に、背景と似た色の前景が存在する場合や、発光や反射によって色が変わる領域に付与される可能性がある。
【００２５】
"未確定"は、入力画像と履歴画像の画素値の差が輝度変化によるものではないと判断されたことを示す。
【００２６】
また、本実施形態では、背景バッファ２０３に保持された背景画像のアトリビュートとして、"未確定"、"前景候補"、"背景"の３つの値を持つ背景状態フラグ用いる。
【００２７】
"未確定"は、背景画像に有効な画素値がない状態を示す。
【００２８】
"前景候補"は、背景色と推測される画素値が背景画像に存在し、履歴画像において前景候補と判定された状態を示す。
【００２９】
"背景"は、履歴画像において背景と判定された画素値を、背景画像に反映した状態を示す。
【００３０】
図３の例では、３フレームの入力画像に対して、１回の背景画像の更新を行う。なお、背景画像の更新頻度は、これに限定されるものではなく、環境光の変化を検出した場合や外部からの指示によって変更してもよい。
【００３１】
本実施形態では、画素値の変化が環境光の変化によるものであるかどうかを判定するための第１の閾値として、ユーザーによって予め設定された輝度の変化量を用いることができる。本実施形態では、環境光による変化を輝度変化と呼ぶが、複数の光源や色のついた光を用いる場合や、反射光で色相や彩度が変化する可能性がある場合は、色相や彩度の変化量を第１の閾値に含めてもよい。例えば、ＨＳＶ色空間において、色相や彩度の変化量が小さく、輝度の変化量が大きい領域の値を、第１の閾値として用いてもよい。
【００３２】
また、一実施形態では、第２の閾値として、前景の動きによる色相または彩度の変化量を用いてもよい。
【００３３】
また、本実施形態では、入力画像と履歴画像の画素値の変化量が、第１の閾値以上となる場合に、入力画像全体の輝度変化履歴と画素値の変化方向が一致するか否かをチェックする。入力画像全体の輝度変化履歴と画素値の変化方向が一致する場合は"背景"として扱い、一致しない場合は"前景候補"として扱う。入力画像全体の輝度変化の変化方向は、例えば、入力画像のヒストグラムを用いて判定することができる。
【００３４】
また、本実施形態では、背景バッファ２０３に保持された背景画像を更新する際に、履歴バッファ２０２の履歴状態フラグが"背景"及び"輝度変化"である領域は、背景画像に履歴画像の画素値をコピーする。履歴バッファ２０２の履歴状態フラグが"未確定"である領域は、背景画像を更新しない。また、一度"未確定"となった領域は、履歴バッファ２０２が初期化されるまで"未確定"のまま保持し、更新しない。履歴バッファ２０２の履歴状態フラグが"前景候補"である領域は、履歴画像と背景画像の画素値をα合成した値を、背景画像の画素値として用いる。α合成とは、２つの画像（すなわち、背景画像と履歴画像）を、透過度を表す係数αを用いて合成する手法である。
【００３５】
図３（ａ）において、履歴状態フラグ３１０及び履歴画像３２０は、背景画像生成処理の開始時点における履歴バッファ２０２の状態を示す。背景画像３３０は、背景画像生成処理の開始時点における背景バッファ２０３の状態を示す。入力画像３０１の入力時点では、履歴バッファ２０２は初期化されている。
【００３６】
履歴状態フラグ３１０において、"前景"は黒、"背景"は白、"輝度変化"はグレー、"前景候補"は横縞のハッチングで示す。履歴状態フラグ３１０において"前景"である領域に対応する履歴画像の画素値は不定であるものとし、黒で表す。
【００３７】
引き続き、図３（ａ）を参照して、３フレームの入力画像の処理手順を説明する。
【００３８】
１フレーム目の入力画像３０１には、背景のみが存在する。１フレーム目の処理では、入力画像３０１を履歴画像３２０及び背景画像３３０に上書きし、履歴状態フラグ３１０に"背景"を設定する。
【００３９】
２フレーム目の処理では、入力画像３０２、履歴画像３２０、及び履歴状態フラグ３１０を参照し、履歴画像３２１及び履歴状態フラグ３１１を出力する。
【００４０】
３フレーム目の処理では、入力画像３０３、履歴画像３２１、及び履歴状態フラグ３１１を参照し、履歴画像３２２及び履歴状態フラグ３１２を出力する。
【００４１】
３フレーム目の履歴画像３２２及び履歴状態フラグ３１２の処理が完了すると、履歴画像３２２、履歴状態フラグ３１２、及び背景画像３３０を参照し、背景画像３３１を生成する。
【００４２】
次いで、履歴画像と背景画像の更新手順を詳細に説明する。
【００４３】
図３（ｂ）は、２フレーム目の入力画像の処理の詳細を示す。
【００４４】
入力画像３０２では、入力画像３０１と比較して、前景が変化し、環境光量が増加している。入力画像３０２の領域３４４は、背景に対して色相が異なる前景である。入力画像３０２の領域３４３は、前景の影であり、領域３４１及び３４２は、入力画像に含まれない物体の影である。領域３４１〜３４３は、背景に対して輝度のみが異なる。
【００４５】
履歴状態フラグ３１１は、前景である領域３４４に対応する領域３５４が"未確定"となる。環境光は変化したが、履歴画像３２０と同じ画素値を持つ領域３４１〜３４３に対応する領域３５１〜３５３は"背景"となる。履歴画像３２０と比較して環境光によって明るさが変化した領域３４５に対応する領域３５５は"輝度変化"となる。履歴画像３２１には"未確定"の領域３４４を除く入力画像３０２の画素値がコピーされる。
【００４６】
また、入力画像３０２の処理時に、履歴画像３２０と入力画像３０２の各画素値を比較すると、環境光変化により入力画像全体が明るくなっていることがわかる。このため、入力画像全体の輝度変化履歴として輝度向上を記録する。
【００４７】
図３（ｃ）は、３フレーム目の入力画像の処理の詳細を示す。
【００４８】
入力画像３０３では、入力画像３０２と比較して、前景が変化している。入力画像３０３の領域３４６は、背景に対して色相が異なる前景であり、入力画像３０３の領域３４７は前景の影である。
【００４９】
履歴状態フラグ３１２では、領域３４６に対応する領域３５６が"未確定"に変更される。上述したように、２フレーム目の入力画像３０２の処理時に、輝度変化履歴として輝度向上が記録されているが、入力画像３０３の領域３４７は、前景の影になることにより輝度が低下し、暗くなっている。したがって、領域３４７では輝度変化履歴と画素値の変化方向が一致しないため、領域３４７に対応する領域３５７は"前景候補"となる。
【００５０】
履歴状態フラグ３１２の領域３５８は、前景の移動によって前景の影がなくなった領域である。領域３５８は、輝度変化履歴と同様に、明るくなる方向に輝度が変化しているため、"背景"となる。
【００５１】
"未確定"の領域３５６を除く領域の入力画像３０３の画素値は、履歴画像３２２に保存される。
【００５２】
履歴バッファ２０２の処理が完了すると、背景バッファ２０３に保持された背景画像３３１の更新を行う。
【００５３】
履歴状態フラグ３１２の領域３５６は、入力画像３０３に前景が存在した領域であるため、履歴状態フラグ３１２が"未確定"である。したがって、領域３５６に対応する背景画像３３１の領域３６２は、画素値を更新しない。すなわち、背景画像３３０の画素値が維持される。背景状態フラグは"未確定"となる。
【００５４】
履歴状態フラグ３１２の領域３５７は、履歴状態フラグ３１２が"前景候補"である。領域３５７に対応する背景画像３３１の領域３６１には、履歴画像３２２と背景画像３３０の画素値をα合成した値を設定する。背景状態フラグは"前景候補"となる。
【００５５】
履歴状態フラグ３１２のその他の領域に対応する背景画像３３１の領域３６０は、履歴状態フラグ３１２が"背景"である。したがって、背景画像３３１の画素値を履歴画像３２２の画素値で更新する。背景状態フラグは"背景"となる。
【００５６】
以上説明したように、本実施形態における背景画像生成処理が実施される。以下では、履歴バッファ制御部２０４、背景バッファ制御部２０５、及びシステム制御部２０６のそれぞれによる処理を詳細に説明する。
【００５７】
図４は、履歴バッファ制御部２０４による履歴画像生成処理のフローチャートを示す。履歴バッファ制御部２０４は、履歴画像生成部として機能する。フローチャートの各ステップは、ＣＰＵがプログラムを実行することにより実施される。
【００５８】
ステップＳ４０１で、履歴バッファ制御部２０４は、システム制御部２０６からの処理開始指示を待つ。履歴バッファ制御部２０４が処理開始指示を受信すると、ステップＳ４０２に進む。
【００５９】
ステップＳ４０２で、履歴バッファ制御部２０４は、履歴バッファ２０２が初期化済みかどうか判定する。履歴バッファ２０２が初期化済みの場合は、ステップＳ４０３に進む。一方、履歴バッファ２０２が初期化されていない場合は、ステップＳ４０４に進む。
【００６０】
ステップＳ４０４で、履歴バッファ制御部２０４は、入力画像の全画素値を履歴バッファ２０２に保存し、各画素のアトリビュートを示す履歴状態フラグを"背景"に設定する。次いで、ステップＳ４０３に進む。
【００６１】
ステップＳ４０３で、履歴バッファ制御部２０４は、入力画像に未処理画素が存在するかどうか判定する。未処理画素が存在せず、全画素の処理が終了している場合は、ステップＳ４１５に進む。一方、未処理画素が存在する場合は、ステップＳ４０５に進む。
【００６２】
ステップＳ４０５で、履歴バッファ制御部２０４は、履歴バッファ２０２の履歴状態フラグが"未確定"か否か判定する。履歴状態フラグが"未確定"である場合は前景が存在した領域なので、画素値を更新せずステップＳ４０３に戻る。一方、履歴状態フラグが"未確定"でない場合は、ステップＳ４０６に進む。
【００６３】
ステップＳ４０６で、履歴バッファ制御部２０４は、入力画像と履歴バッファ２０２に保持された履歴画像の画素値を比較する。具体的には、履歴バッファ制御部２０４は、入力画像と履歴画像の画素値の差分が、所定の閾値以下であるかどうか判定する。入力画像と履歴画像の画素値の差分が所定の閾値以下である場合、同色とみなし、ステップＳ４１４に進む。ステップＳ４１４で、履歴バッファ制御部２０４は、入力画像の画素値を履歴バッファ２０２に保存する（すなわち、履歴バッファ２０２に保持された履歴画像の画素値を更新する）。一方、入力画像と履歴画像の画素値の差分が所定の閾値より大きい場合（すなわち、画素の色が異なる場合）、ステップＳ４０７に進む。
【００６４】
ステップＳ４０７で、履歴バッファ制御部２０４は、環境光による画素値の変化を検出する。具体的には、履歴バッファ制御部２０４は、入力画像と履歴画像の画素値の差分が、環境光で想定される色相及び彩度の変化量の所定の閾値以下であるかどうか判定する。画素値の差分が所定の閾値以下である場合、ステップＳ４０８に進む。一方、所定の閾値より大きい場合、ステップＳ４１３に進む。ステップＳ４１３で、履歴バッファ制御部２０４は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグに"未確定"を設定する。
【００６５】
なお、上述したステップＳ４０６及びＳ４０７では、環境光による画素値の変化量を示す閾値を用いたが、さらに、第２の閾値として、前景の動きによる色相または彩度の変化量を閾値として用いてもよい。その場合、画素値の差分が、前景の動きによる色相または彩度の変化量を示す第２の閾値を超える領域を、前景として判定することができる。
【００６６】
ステップＳ４０８で、履歴バッファ制御部２０４は、１フレーム前の入力画像と履歴画像との間の輝度変化履歴が利用可能であるか否か判定する。すなわち、履歴バッファ制御部２０４は、輝度変化履歴の利用可能なデータが存在するか否か判定する。輝度変化履歴が利用可能な場合はステップＳ４０９へ進む。一方、輝度変化履歴が利用可能でない場合はステップＳ４１１へ進む。
【００６７】
ステップＳ４１１で、履歴バッファ制御部２０４は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグに"輝度変化"を設定し、ステップＳ４１４に進む。
【００６８】
ステップＳ４０９で、履歴バッファ制御部２０４は、輝度変化履歴が、処理中の画素値の輝度変化方向と一致するか判定する。変化方向が同じ場合はステップＳ４１０へ進み、変化方向が異なる場合はステップＳ４１２に進む。
【００６９】
ステップＳ４１２で、履歴バッファ制御部２０４は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグに"前景候補"を設定し、ステップＳ４１４に進む。
【００７０】
ステップＳ４１０で、履歴バッファ制御部２０４は、入力画像と履歴画像の画素値の比較により、背景領域の輝度変化量を計算する。１フレームの処理が完了すると、輝度が上がった画素の数と輝度が下がった画素の数が得られるので、この値を用いて輝度変化履歴を更新する。
【００７１】
次に、上述したステップＳ４０３において、入力画像に未処理画素が存在せず、全画素の処理が終了したと判定された後の処理について説明する。
【００７２】
ステップＳ４１５で、履歴バッファ制御部２０４は、背景領域の輝度変化量が所定の閾値以上であるかどうか判定する。背景領域の輝度変化量が所定の閾値以上である場合、ステップＳ４１６に進み、所定の閾値より小さい場合は、ステップＳ４１７に進む。
【００７３】
ステップＳ４１６で、履歴バッファ制御部２０４は、入力画像の輝度変化をシステム制御部２０６に通知し、ステップＳ４１７に進む。システム制御部２０６に通知する情報として、背景領域の輝度変化量に関する情報を含めてもよい。
【００７４】
ステップＳ４１７で、履歴バッファ制御部２０４は、１フレームの入力画像の処理が完了したことをシステム制御部２０６に通知し、ステップＳ４１８に進む。
【００７５】
ステップＳ４１８で、履歴バッファ制御部２０４は、システム制御部２０６からの履歴バッファ２０２の初期化指示の有無を判定する。初期化指示がある場合はステップＳ４２０に進み、初期化指示がない場合はステップＳ４１９に進む。
【００７６】
ステップＳ４１９で、履歴バッファ制御部２０４は、履歴バッファ２０２の輝度変化履歴を背景領域の輝度変化量で更新し、ステップＳ４０１に戻る。
【００７７】
ステップＳ４２０で、履歴バッファ制御部２０４は、履歴バッファ２０２に保持されたすべてのデータを初期化し、ステップＳ４０１に戻る。なお、輝度変化履歴を用いる構成であれば輝度変化履歴も初期化する。
【００７８】
以上説明したように、履歴バッファ制御部２０４による履歴画像生成処理が実施される。
【００７９】
図５は、背景バッファ制御部２０５による背景画像生成処理のフローチャートを示す。背景バッファ制御部２０５は、背景画像生成部として機能する。フローチャートの各ステップは、ＣＰＵがプログラムを実行することにより実施される。
【００８０】
ステップＳ５０１で、背景バッファ制御部２０５は、システム制御部２０６からの処理開始通知をチェックする。背景バッファ制御部２０５は、システム制御部２０６から処理開始通知を受信するまでステップＳ５０１を繰り返し、履歴バッファ２０２の更新が完了し、システム制御部２０６から処理開始通知を受信すると、ステップＳ５０２に進む。
【００８１】
ステップＳ５０２で、背景バッファ制御部２０５は、履歴バッファ２０２に保持された履歴画像に未処理画素が存在するかどうか判定する。履歴バッファ２０２に未処理画素が存在せず、全画素の処理が完了している場合は、ステップＳ５０３に進む。一方、履歴バッファ２０２に未処理画素が存在する場合は、ステップＳ５０４に進む。
【００８２】
ステップＳ５０４で、背景バッファ制御部２０５は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグが、"未確定"か否か判定する。履歴状態フラグが"未確定"である場合は、履歴バッファ２０２の該当の領域は前景が存在した領域であり、有効な背景の画素値が存在しないため、ステップＳ５０２に戻る。一方、履歴状態フラグが"未確定"でない場合は、ステップＳ５０５に進む。
【００８３】
ステップＳ５０５で、背景バッファ制御部２０５は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグが、"前景候補"か否か判定する。履歴状態フラグが"前景候補"である場合は、ステップＳ５０８に進み、背景バッファ制御部２０５は、背景バッファ２０３のアトリビュートを示す背景フラグを"前景候補"に設定する。一方、履歴状態フラグが"前景候補"でない場合は、ステップＳ５０６に進む。
【００８４】
ステップＳ５０６で、背景バッファ制御部２０５は、履歴バッファ２０２のアトリビュートを示す履歴状態フラグが"背景"もしくは"輝度変化"であるため、背景バッファ２０３のアトリビュートを示す背景状態フラグを"背景"に設定する。次いで、ステップ５０７に進む。
【００８５】
ステップＳ５０７で、背景バッファ制御部２０５は、背景バッファ２０３に履歴バッファ２０２の画素値を保存する（すなわち、背景バッファ２０３に保持された背景画像の画素値を、履歴バッファ２０２に保持された履歴画像の画素値で更新する）。次いで、ステップＳ５０２に戻る。
【００８６】
ステップＳ５０９で、背景バッファ制御部２０５は、背景バッファ２０３のアトリビュートを示す背景状態フラグが"背景"か否か判定する。背景状態フラグが"背景"でない場合は、ステップＳ５１０に進む。一方、背景状態フラグが"背景"である場合は、ステップＳ５０７に進む。
【００８７】
ステップＳ５１０で、背景バッファ制御部２０５は、背景バッファ２０３の画素値と履歴バッファ２０２の画素値を透過合成（α合成）した値を、背景バッファ２０３の画素値として保存する。すなわち、背景バッファ制御部２０５は、透過合成した値で、背景バッファ２０３に保持された背景画像の画素値を更新する。
【００８８】
次に、上述したステップＳ５０２において、履歴バッファ２０２に未処理画素が存在せず、全画素の処理が終了したと判定された後の処理について説明する。
【００８９】
ステップＳ５０３で、背景バッファ制御部２０５は、背景バッファ２０３に"未確定"の背景状態フラグを持つ画素があるか否か判定する。"未確定"の背景状態フラグを持つ画素がない場合はステップＳ５１１に進み、背景バッファ制御部２０５は、システム制御部２０６に背景更新の完了を通知する。一方、"未確定"の背景状態フラグを持つ画素がある場合は、ステップＳ５１２に進み、背景バッファ制御部２０５は、履歴バッファ２０２の１フレームの背景生成処理の完了のみをシステム制御部２０６に通知する。
【００９０】
以上説明したように、背景バッファ制御部２０５による背景画像生成処理が実施される。
【００９１】
図６は、システム制御部２０６による制御処理のフローチャートを示す。フローチャートの各ステップは、ＣＰＵがプログラムを実行することより実施される。
【００９２】
ステップＳ６０１で、システム制御部２０６は、撮像部２０１が撮影した入力画像の更新を待つ。入力画像が更新されると、ステップＳ６０２に進む。
【００９３】
ステップＳ６０２で、システム制御部２０６は、履歴バッファ制御部２０４が処理開始可能になるのを待つ。履歴バッファ制御部２０４が処理開始可能になると、ステップＳ６０３に進む。
【００９４】
ステップＳ６０３で、システム制御部２０６は、背景生成値に用いる影領域の閾値、及び前景と背景の差分閾値の変更の要否を判定する。変更が必要な場合は、ステップＳ６０４に進み、システム制御部２０６は、履歴バッファ制御部２０４の閾値を再設定する。閾値は、本画像処理装置を用いる機器から指示された設定値を用いることができる。また、履歴バッファ制御部２０４が算出した輝度変化履歴を用いて、システム制御部２０６が閾値を算出してもよい。
【００９５】
ステップＳ６０５で、システム制御部２０６は、履歴バッファ制御部２０４に処理開始を指示する。
【００９６】
ステップＳ６１２で、システム制御部２０６は、履歴バッファ制御部２０４の処理時に輝度変化履歴に変化があったか否か判定する。輝度変化履歴に変化があった場合は、ステップＳ６１３に進み、システム制御部２０６が保持する背景バッファ制御部２０５の更新レートを再設定し、背景バッファの更新タイミングを変更する。一方、輝度変化履歴に変化がない場合は、更新レートの再設定は行わずに、ステップＳ６１４に進む。
【００９７】
ステップＳ６１４で、システム制御部２０６は、履歴バッファ制御部２０４の１フレームの処理完了を待つ。履歴バッファ制御部２０４による１フレームの処理が完了すると、ステップＳ６０６に進む。
【００９８】
ステップＳ６０６で、システム制御部２０６は、背景バッファ制御部２０５の更新レートによって定まる、所定のフレーム数の履歴バッファ２０２の処理が完了し、背景バッファ２０３の更新を行うか否か判定する。背景バッファ２０３の更新を行う場合はステップＳ６０７に進み、背景バッファ２０３の更新を行わない場合はステップＳ６０１に戻る。
【００９９】
ステップＳ６０７で、システム制御部２０６は、背景バッファ制御部２０５の処理開始を指示する。
【０１００】
ステップＳ６０８で、システム制御部２０６は、背景バッファ制御部２０５の１フレームの更新完了を待つ。背景バッファ制御部２０５による１フレームの処理が完了すると、ステップＳ６０９に進む。
【０１０１】
ステップＳ６０９で、システム制御部２０６は、背景画像の生成が完了したか判定する。背景画像の生成が完了した場合は、ステップＳ６１０に進む。一方、背景画像の生成が未完了の場合は、ステップＳ６０１に戻り、システム制御部２０６は、後続の入力画像の処理を行う。
【０１０２】
ステップＳ６１０で、システム制御部２０６は、背景画像の出力処理を行う。背景画像は、上述したように、入力画像から前景と背景を分離するために使用したり、任意の前景画像と合成して合成画像を生成するために使用したりすることができる。
【０１０３】
ステップＳ６１１で、システム制御部２０６は、履歴バッファ制御部２０４の初期化指示を行う。
【０１０４】
以上説明したように、本実施形態によると、入力画像全体の明るさが変化した場合であっても、あらかじめ定めた影色の条件に当たる範囲内の変化であれば影と判断し、背景として取り扱うことができる。また、入力画像全体が明るくなって新たに影が出来たり、背景領域の色が変わったりした場合も、該当領域は背景として取り扱い、背景画像を更新することができる。すなわち、本実施形態によると、前景に移動体が存在する入力画像から背景画像を生成する際に、前景を適切に識別して背景画像を生成することができる。
【０１０５】
また、本実施形態では、入力画像の変化を１つの履歴画像として履歴バッファに保持して背景画像を生成するため、履歴画像としてすべての入力画像を保持する必要はない。したがって、より少ないハードウェアリソースで画像処理を行い、背景画像を生成することができる。
【０１０６】
（第２の実施形態）
上述した第１の実施形態では、"背景"、"輝度変化"、"前景候補"、及び"未確定"の４つの値を持つ履歴状態フラグを用いたが、本実施形態では、"背景"、"影"、及び"前景"の３つ値を持つ履歴状態フラグを用いて、前景と影と背景とを識別する。すなわち、本実施形態によると、より少ない種類の履歴状態フラグを用いて、背景画像を生成することができる。
【０１０７】
"背景"は、画素値が背景であることを示す。
【０１０８】
"影"は、入力画像と履歴画像の画素値が異なるが、画素値の相違が環境光の変化によるものと推定されたことを示す
"前景"は、入力画像と履歴画像の画素値の差が輝度変化によるものではないと判断されたことを示す。
【０１０９】
また、本実施形態では、背景バッファ２０３に保持された背景画像のアトリビュートとして、"背景"及び"前景"という２つの値を持つ背景状態フラグ用いる。
【０１１０】
"未確定"は、背景画像に有効な画素値がない状態を示す。
【０１１１】
"背景"は、履歴画像において"背景"と判定された画素値を、背景画像に反映した状態を示す。
【０１１２】
なお、本実施形態における画像処理装置のハードウェア構成及び機能は、図１及び図２を参照して上述した構成と同様である。
【０１１３】
図７は、本実施形態における背景画像生成処理の概念図である。本実施形態においても、入力画像と履歴バッファ２０２に保持された履歴画像の内容を比較し、画素値及び画素の状態変化の評価結果を１つの履歴画像として履歴バッファ２０２に蓄積して、背景の候補画像を生成する。生成した背景の候補画像は所定の期間ごとに背景バッファ２０３に反映され、背景が更新される。
【０１１４】
履歴状態フラグ７１０及び履歴画像７２０は、背景画像生成処理の開始時点における履歴バッファ２０２の状態を示す。背景画像７３０は、背景画像生成処理の開始時点における背景バッファ２０３の状態を示す。入力画像７０１の入力時点では、履歴バッファ２０２は初期化されている。
【０１１５】
履歴状態フラグは、"前景"を黒、"背景"を白、"輝度変化"をグレーで示す。履歴状態フラグが"前景"である領域に対応する履歴画像の画素値は不定であるものとし、黒で表す。なお、履歴画像において画素値が不定である領域は、背景画像の生成において画素値の更新は行わない。
【０１１６】
以下、履歴画像と背景画像の更新手順を説明する。
【０１１７】
図７（ａ）は、１フレーム目から３フレーム目までの入力画像に対する処理の手順を示す。図７（ａ）に示す例では、３フレーム目の入力画像を処理した後に、背景画像を生成する。
【０１１８】
１フレーム目の入力画像７０１には、背景のみが存在する。１フレーム目の処理では、入力画像７０１を履歴画像７２０及び背景画像７３０に上書きし、履歴状態フラグ７１０に"背景"を設定する。
【０１１９】
２フレーム目の入力画像７０２には、背景及び前景と、前景の影が存在する。２フレーム目の処理では、入力画像７０２、履歴画像７２０、及び履歴状態フラグ７１０を参照し、履歴画像７２１及び履歴状態フラグ７１１を出力する。処理の詳細は、図７（ｂ）を参照して後述する。
【０１２０】
３フレーム目の入力画像７０３には、背景及び前景と、前景の影が存在する。また、前景とその影は、入力画像７０２における位置から移動している。３フレーム目の処理では、入力画像７０３、履歴画像７２１、及び履歴状態フラグ７１１を参照し、履歴画像７２２及び履歴状態フラグ７１２を出力する。
【０１２１】
３フレーム目の入力画像７０３の処理が完了すると、履歴画像７２２、履歴状態フラグ７１２、及び背景画像７３０を参照し、背景画像７３１を生成する。処理の詳細は、図７（ｃ）を参照して後述する。
【０１２２】
図７（ｂ）は、２フレーム目の入力画像の処理の詳細を示す。
【０１２３】
２フレーム目の入力画像７０２は、前景７４４、影７４３、及び背景７４５を含む。背景７４５は、入力画像７０１の画素値と比較して、色相及び彩度が同じで、輝度が向上している。
【０１２４】
履歴状態フラグ７１１は、前景７４４に対応する領域７５４が"前景"となる。領域７５３は履歴画像７２０と同じ色であるので、"背景"となる。背景７４５に対応する領域７５５は、輝度のみに変化があったので、"輝度変化"となる。
【０１２５】
履歴状態フラグが"背景"である領域７５３、及び、履歴状態フラグが"輝度変化"である領域７５５に対応する履歴画像７２１の領域は、入力画像７０２の画素値で上書きして更新する。
【０１２６】
図７（ｃ）は、３フレーム目の入力画像の処理の詳細を示す。
【０１２７】
３フレーム目の入力画像７０３は、前景７４６、影７４７、及び背景７４８を含む。入力画像７０３では、２フレーム目の入力画像７０２と比較して、前景７４６と影７４７が移動している。
【０１２８】
履歴状態フラグ７１２は、前景７４６に対応する領域７５６が"前景"に変更される。領域７５７は、過去に"前景"と判定されたため有効な背景がないとみなし、履歴状態フラグは変更しない。影７４７に対応する領域７５８、及び前景７４４の移動によって、履歴画像７２１と比較して輝度が変化した領域７５９（すなわち、履歴画像７２１で影だった領域）の履歴状態フラグは、それぞれ"輝度変化"となる。
【０１２９】
履歴状態フラグが"輝度変化"または"背景"である領域７６１、領域７５９、領域７５８に対応する履歴画像７２２の領域は、入力画像７０３の画素値で更新する。
【０１３０】
背景画像７３１の更新では、履歴状態フラグが"背景"もしくは"輝度変化"である領域に、履歴画像７２２の画素値を上書きする。
【０１３１】
領域７６０、領域７６１は、履歴状態フラグが"前景"であるため、背景画像７３０の画素値は更新しない。領域７６２、及び領域７６３は、履歴状態フラグが"輝度変化"もしくは"背景"であるため、背景画像７３０の画素値を、履歴画像７２２の画素値で更新する。
【０１３２】
以上説明したように、本実施形態における背景画像生成処理が実施される。
【０１３３】
なお、本実施形態においても、履歴バッファ制御部２０４、背景バッファ制御部２０５、及びシステム制御部２０６のそれぞれによる処理は、図４乃至６のフローチャートを参照して説明した処理が同様に適用され得る。
【０１３４】
以上説明したように、本実施形態によると、上述した第１の実施形態と比較してより少ない種類の履歴状態フラグを用いて、背景画像を生成することができる。
【０１３５】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１３６】
２０１  撮像部
２０２  履歴バッファ
２０３  背景バッファ
２０４  履歴バッファ制御部
２０５  背景バッファ制御部
２０６  システム制御部
【図１】
2019086969.tif 000003
【図２】
2019086969.tif 000004
【図３】
2019086969.tif 000005
【図４】
2019086969.tif 000006
【図５】
2019086969.tif 000007
【図６】
2019086969.tif 000008
【図７】
2019086969.tif 000009