<検出装置の動作の概要>
図1は本実施の形態に係る検出装置1の動作の概要を示す図である。検出装置1は、入力される画像に基づいて、当該画像に写る撮像領域、つまり当該画像を撮像する撮像部の撮像領域(視野範囲)に存在する検出対象物を検出する。
本実施の形態では、検出対象物は動体、より具体的には人である。検出装置1は、入力される画像に含まれる動体画像(動体を示す画像)を検出することによって、動体検出、つまり当該画像に写る撮像領域に存在する動体を検出する。
図1に示されるように、本実施の形態では、検出装置1の動作段階として、準備段階と実動作段階とが存在する。検出装置1は、準備段階において、時系列で順次に入力される複数枚の入力画像を用いて、背景モデルの生成処理を実行する。背景モデルは、同一のシーン(被写体)を撮影して得られた複数枚の入力画像に含まれる情報が集められて構成されたモデルである。背景モデルは、後述の動体検出処理において、時系列で順次に入力される各入力画像から動体画像を検出する際に利用される。なお、背景モデルの生成処理が実行される準備段階は「学習段階」とも呼ばれる。以後、背景モデルの生成で使用される入力画像を「基準画像」と呼び、動体画像の検出の対象となる入力画像を「検出対象画像」と呼ぶことがある。
検出装置1では、背景モデルの生成が完了すると、動作段階が準備段階から実動作段階へと移行する。検出装置1は、実動作段階において、入力画像に対して動体画像の検出を行う動体検出処理と、背景モデルを更新する背景モデル更新処理と、背景モデル更新処理で使用される後述の登録判定期間を調整する判定期間調整処理とを行う。なお、本実施の形態では、検出対象物は人であるが、人以外であっても良い。
<検出装置の構成>
図2は検出装置1の構成を示すブロック図である。図2に示されるように、検出装置1は、画像入力部2と、画像処理部3と、検出結果出力部4と、背景モデル記憶部5と、キャッシュモデル記憶部6とを備えている。図3は画像処理部3の構成を示すブロック図である。
画像入力部2は、検出装置1の外部から入力される入力画像200を画像処理部3に入力する。入力画像200は撮像部で撮像された撮像画像である。図4は、入力画像200に写る撮像領域10、つまり入力画像200を撮像する撮像部の撮像領域(視野範囲)10の一例を示す図である。図4に示される撮像領域10には、被写体として会議室100が含まれている。したがって、この場合には、検出装置1に入力される入力画像200は、会議室100を示す画像となる。会議室100では、複数の机101と複数の椅子102が床の中央部を取り囲むように並べられており、複数の机101の外側が通路103となっている。そして、会議室100では、壁の一部にカーテン104が設けられている。本実施の形態に係る検出装置1は、例えば、会議室100を示す入力画像200に対して動体画像の検出を行うことによって、会議室100に存在する人を検出する。
画像処理部3は、画像入力部2から入力される入力画像200に対して様々な画像処理を行う。画像処理部3は、CPU300と記憶部310を備えている。記憶部310は、ROM(Read Only Memory)及びRAM(Random Access Memory)等の、CPU300が読み取り可能な非一時的な記録媒体で構成されている。記憶部310には、検出装置1を制御するための制御プログラム311が記憶されている。CPU300が記憶部310内の制御プログラム311を実行することによって、画像処理部3には様々な機能ブロックが形成される。
なお記憶部310は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えていても良い。記憶部310は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)等を備えていても良い。
図3に示されるように、画像処理部3には、背景モデル生成部30、動体検出部31、判定期間調整部32及び背景モデル更新部33等の複数の機能ブロックが形成される。これらの機能ブロックは、CPUがプログラムを実行することによって実現されるのではなく、論理回路を用いたハードウェア回路で実現されても良い。
背景モデル生成部30は、画像入力部2から順次入力される複数枚の入力画像200(複数枚の基準画像200)を用いて、背景画像情報を含む背景モデル500を生成する。背景モデル生成部30によって生成された背景モデル500は背景モデル記憶部5に記憶される。
動体検出部31は、画像入力部2から入力される入力画像200と、背景モデル記憶部5内の背景モデル500とを用いて、入力画像200中の動体画像を検出する。言い換えれば、動体検出部31は、入力画像200と背景モデル500とを用いて、当該入力画像200に写る撮像領域10に存在する動体を検出する。
背景モデル更新部33は背景モデル500の更新を行う。背景モデル更新部33は、特定部330及び登録決定部331を備えている。特定部330は、動体検出部31での動体検出の検出結果に基づいて、撮像領域10において動体が存在する可能性が高い領域を特定する。具体的には、特定部330は、動体検出部31での検出結果に基づいて、検出頻度マップと非検出頻度マップを生成し、これらのマップを用いて撮像領域10において動体が存在する可能性が高い領域を特定する。検出頻度マップは、撮像領域10における複数の領域での動体(検出対象物)の検出頻度の分布を示している。非検出頻度マップは、撮像領域10における複数の領域での動体の非検出頻度の分布を示している。登録決定部331は、入力画像200から得られる画像情報を背景画像情報として背景モデル500に登録するか否かを、特定部330での特定結果を用いて決定する。検出頻度マップ及び非検出頻度マップについては後で詳細に説明する。
背景モデル記憶部5は、背景モデル生成部30で生成される背景モデル500を記憶する。キャッシュモデル記憶部6は、後述するキャッシュモデルを記憶する。背景モデル記憶部5及びキャッシュモデル記憶部6のそれぞれは、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)またはハードディスク(HD)等の書き換え可能な記憶手段で構成される。なお本例では、背景モデル記憶部5とキャッシュモデル記憶部6とはハードウェア的に独立しているが、一つの記憶装置が有する記憶領域の一部を背景モデル記憶部5として使用し、当該記憶領域の他の一部をキャッシュモデル記憶部6として使用しても良い。
判定期間調整部32は、背景モデル500の更新で使用される登録判定期間を調整する。検出結果出力部4は、動体検出部31での動体検出の検出結果を外部に出力する。検出結果出力部4は、例えば、撮像領域10の様子、つまり撮像領域10に存在する被写体(図4の例では会議室100)の様子をリアルタイムで表示する表示部を備えており、当該表示部において、動体が検出された領域を色等で表示することによって、動体検出の検出結果を外部に出力する。また、検出結果出力部4は、検出結果を音声等の音で外部に出力しても良い。また、検出結果出力部4は、検出結果を示す信号を、外部装置に対して出力することによって、当該検出結果を外部に出力しても良い。この場合には、外部装置は、検出結果に応じた動作を実行する。例えば、外部装置は、警報を発生する。あるいは、撮像領域10が図4の会議室100である場合には、外部装置は、会議室100の照明器具を制御して、人が存在する領域だけ明るくする。また、外部装置は、会議室100の空調機を制御して、人が存在する領域だけ冷却したり、暖めたりする。
<準備段階(背景モデル生成処理)>
次に検出装置1の準備段階で行われる背景モデル生成処理について説明する。図5は背景モデル500を説明するための図である。本実施の形態では、撮像領域10において人が存在しないとき(会議室100が利用されていないとき)に撮像部で撮像された入力画像200が、背景モデル500の生成で使用される基準画像200となっている。背景モデル生成処理では、A枚(A≧2)の基準画像200に基づいて背景モデル500が生成される。
本実施の形態では、撮像領域10は、複数の矩形の撮像ブロック(部分撮像領域)に分割される。入力画像200に含まれる、ある撮像ブロックの画像を示す領域を「画像ブロック」と呼ぶと、入力画像200は、撮像領域10を構成する複数の撮像ブロックの画像をそれぞれ示す複数の画像ブロックで構成される。本実施の形態では、一つの画像ブロックの大きさは、例えば、3画素×3画素となっている。以後、撮像ブロックと、入力画像200における、当該撮像ブロックの画像を示す画像ブロックとに関して、当該撮像ブロックを、当該画像ブロックに対応する撮像ブロックと呼ぶことがある。
図5に示されるように、背景モデル500には、複数の撮像ブロックBKにそれぞれ対応する複数のコードブック(Codebook)CBが含まれる。各コードブックCBには、画像情報と、当該画像情報に関連する関連情報とを含むコードワード(Codeword)CWが含まれている。コードブックCBに含まれるコードワードCWは、一枚の入力画像200における、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。各コードブックCBには複数のコードワードCWが含まれている。以後、背景モデル500中のコードワードCWに含まれる画像情報を「背景画像情報」と呼ぶことがある。
図5において砂地のハッチングが示されているコードブックCBには、3枚の基準画像200a〜200cに基づいてそれぞれ生成された3つのコードワードCW1〜CW3が含まれている。コードブックCBに含まれるコードワードCW1は、基準画像200aにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。コードブックCBに含まれるコードワードCW2は、基準画像200bにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。そして、コードブックCBに含まれるコードワードCW3は、基準画像200cにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。
図6はコードワードCWを説明するための図である。コードワードCWには、当該コードワードCWを含むコードブックCBが対応する撮像ブロックの画像を示す画像ブロックの画像情報、つまり当該画像ブロックを構成する複数の画素の画素値PVが、背景画像情報として含まれている。そして、コードワードCWには、関連情報として、最新一致時刻Teとコードワード生成時刻Tiとが含まれている。後述するように、背景モデル500に含まれるコードワードCW中の画像情報については、検出対象画像200から取得された画像情報と一致する否かが判定される。コードワードCWに含まれる最新一致時刻Teは、当該コードワードCWに含まれる画像情報と、検出対象画像200から取得された画像情報とが一致すると判定された最新の時刻を示している。また、コードワードCWに含まれるコードワード生成時刻Tiは、当該コードワードCWが生成された時刻を示している。
図7は、このような背景モデル500が生成される背景モデル生成処理を示すフローチャートである。図7に示される背景モデル生成処理は、背景モデル記憶部5に背景モデル500が記憶されていないときに実行される。
図7に示されるように、ステップs1において、背景モデル生成部30は、画像入力部2から基準画像200が画像処理部3に入力されると、ステップs2において、撮像領域10のある撮像ブロックを注目撮像ブロックとし、注目撮像ブロックに対応するコードブックCBが背景モデル記憶部5に記憶されているか否かを判定する。
背景モデル生成部30は、注目撮像ブロックに対応するコードブックCBが背景モデル記憶部5に記憶されていないと判定すると、ステップs3において、ステップs1で入力された基準画像200に基づいて、注目撮像ブロックに対応するコードブックCBを生成して背景モデル記憶部5に記憶する。
具体的には、背景モデル生成部30は、ステップs1で入力された基準画像200における、注目撮像ブロックの画像を示す画像ブロックから画像情報を取得する。そして、背景モデル生成部30は、取得した画像情報を背景画像情報として含むコードワードCWを生成し、当該コードワードCWを含むコードブックCBを背景モデル記憶部5に記憶する。このコードワードCWに含まれる最新一致時刻Teは、暫定的に、コードワード生成時刻Tiと同じ時刻に設定される。
一方で、背景モデル生成部30は、注目撮像ブロックに対応するコードブックCBが背景モデル記憶部5に記憶されていると判定すると、ステップs4において、ステップs1で入力された基準画像200における、注目撮像ブロックの画像を示す画像ブロックから画像情報を取得する。そして、背景モデル生成部30は、背景モデル記憶部5が記憶している、注目撮像ブロックに対応するコードブックCBに含まれる各コードワードCW中の背景情報画像と、取得した画像情報とが一致するか否かを判定する。つまり、背景モデル生成部30は、注目撮像ブロックに対応するコードブックCBに含まれるコードワードCWにおいて、取得した画像情報と一致する背景画像情報を含むコードワードCWが存在するか否かを判定する。
ステップs4での判定の結果、ステップs5において、注目撮像ブロックに対応するコードブックCBに含まれる各コードワードCW中の背景情報画像と、取得した画像情報とが一致しない場合には、つまり、注目撮像ブロックに対応するコードブックCBに含まれるコードワードCWにおいて、取得した画像情報と一致する背景画像情報を含むコードワードCWが存在しない場合には、ステップs6において、背景モデル生成部30は、ステップs4で基準画像200から取得した画像情報を背景画像情報として含むコードワードCWを生成する。このコードワードCWに含まれる最新一致時刻Teは、暫定的に、コードワード生成時刻Tiと同じ時刻に設定される。そして、背景モデル生成部30は、生成したコードワードCWを、背景モデル記憶部5が記憶する、注目撮像ブロックに対応するコードブックCBに追加する。これにより、注目撮像ブロックに対応するコードブックCBには新しい背景画像情報が追加される。
一方で、ステップs5において、注目撮像ブロックに対応するコードブックCBに含まれるコードワードCW中の背景情報画像と、取得した画像情報とが一致する場合には、つまり、注目撮像ブロックに対応するコードブックCBに含まれるコードワードCWにおいて、取得した画像情報と一致する背景画像情報を含むコードワードCWが存在する場合には、ステップs6は実行されずに、ステップs7が実行される。ステップs7において、背景モデル生成部30は、撮像領域10における全ての撮像ブロックについて処理が行われた否か、つまり、全ての撮像ブロックを注目撮像ブロックに設定したか否かを判定する。ステップs7での判定の結果、処理が行われていない撮像ブロックが存在する場合には、背景モデル生成部30は、未だ処理が行われていない撮像ブロックを新たな注目撮像ブロックとして、ステップs2以降を実行する。
一方で、ステップs7での判定の結果、撮像領域10における全ての撮像ブロックについて処理が行われている場合には、背景モデル生成部30は、ステップs8において、A枚の基準画像200に対して同様の処理が行われたか否かを判定する。背景モデル生成部30は、ステップs8での判定の結果、処理を行った基準画像200の枚数がA枚よりも少ない場合には、ステップs1において画像処理部3に対して新たに入力される基準画像200に対して、ステップs2以下の処理を実行する。背景モデル生成部30は、ステップs8での判定の結果、処理を行った基準画像200の枚数がA枚である場合には、背景モデル生成処理を終了する。これにより、上述のような背景モデル500が背景モデル記憶部5内に生成される。
<実動作段階>
次に検出装置1の実動作段階での動作について説明する。図8は、検出装置1の実動作段階での概略動作を示すフローチャートである。検出装置1では、背景モデル生成処理が終了すると、図8に示される処理が実行される。
図8に示されるように、ステップs11において画像入力部2から入力画像200が画像処理部3に入力されると、当該入力画像200を処理対象として、ステップs12〜s14までの一連の処理が実行される。
ステップs12において、画像処理部3は、処理対象の入力画像200に対して動体画像の検出を行う動体検出処理を行う。そして、ステップs13において、画像処理部3は、ステップs12での動体検出処理の結果に基づいて、登録判定期間を調整する判定期間調整処理を行う。その後、画像処理部3は、ステップs14において、背景モデル記憶部5内の背景モデル500を更新する背景モデル更新処理を行う。
その後、ステップs11において、画像入力部2から画像処理部3に新たな入力画像200(新たな検出対象画像200)が入力されると、当該入力画像200を新たな処理対象として、ステップs12〜s14までの一連の処理が実行される。その後、画像処理部3は同様に動作する。
このように、本実施の形態に係る検出装置1では、入力画像200が入力されるたびに、動体検出処理、判定期間調整処理及び背景モデル更新処理がこの順番で実行される。
<動体検出処理>
次にステップs12での動体検出処理について詳しく説明する。図9は動体検出処理を示すフローチャートである。図9に示されるように、ステップs121において、動体検出部31は、撮像領域10のある撮像ブロック(例えば、撮像領域10における左上の撮像ブロック)を注目撮像ブロックとし、上述のステップs11で入力された処理対象の入力画像200(検出対象画像200)における、注目撮像ブロックの画像を示す画像ブロック(以後、「注目画像ブロック」と呼ぶことがある)に対して動体画像の検出を行う。つまり、動体検出部31は、注目撮像ブロックに動体が存在するか否かを検出する。
本実施の形態に係る動体検出では、入力画像200中の注目画像ブロックから取得される画像情報と、背景モデル500における、注目撮像ブロックに対応するコードブックCBに含まれる各コードワードCW中の背景画像情報とが一致するか否かが判定されることによって、注目画像ブロックが動体画像であるか否かが判定される。以後、注目撮像ブロックに対応するコードブックCBを「対応コードブックCB」と呼ぶことがある。また、対応コードブックCBに含まれるコードワードCWを「対応コードワードCW」と呼ぶことがある。動体検出の具体的手法については後述する。
ステップs121が実行されると、ステップs122において、動体検出部31は、ステップs121での動体検出の結果を記憶する。そして、動体検出部31は、ステップs123において、撮像領域10における全ての撮像ブロックについて処理が行われた否か、つまり、全ての撮像ブロックを注目撮像ブロックに設定したか否かを判定する。ステップs123での判定の結果、処理が行われていない撮像ブロックが存在する場合には、動体検出部31は、未だ処理が行われていない撮像ブロックを新たな注目撮像ブロックとして、ステップs121以降を実行する。一方で、ステップs123での判定の結果、撮像領域10における全ての撮像ブロックについて処理が行われている場合には、つまり、入力画像200の全領域に対して動体画像の検出が完了している場合には、動体検出部31は動体検出処理を終了する。これにより、動体検出部31には、入力画像200を構成する複数の画像ブロックに対する動体画像の検出の結果が記憶される。つまり、動体検出部31には、撮像領域10を構成する複数の撮像ブロックに対する動体検出の結果が記憶される。この検出結果は、検出結果出力部4に入力される。
<動体検出の詳細>
次にステップs121での動体検出の具体的手法について図10及び11を用いて説明する。図10は、入力画像200の注目画像ブロック及び背景モデル500の対応コードワードCWのそれぞれからベクトルを抽出する様子を表した図である。図11は、入力画像200の注目画像ブロックから抽出されたベクトルと、背景モデル500の対応コードワードCWから抽出されたベクトルとの関係を示す図である。
本実施の形態では、入力画像200中の注目画像ブロックの画像情報がベクトルとして扱われる。また、背景モデル500中の各対応コードワードCWについて、当該対応コードワードCWに含まれる背景画像情報がベクトルとして扱われる。そして、注目画像ブロックの画像情報についてのベクトルと、各対応コードワードCWの背景画像情報についてのベクトルとが、同じ方向を向いているか否かに基づいて、注目画像ブロックが動体画像であるか否かが判定される。この2種類のベクトルが同じ方向を向いている場合には、注目画像ブロックの画像情報と、各対応コードワードCWの背景画像情報とは一致すると考えることができる。したがって、この場合には、入力画像200中の注目画像ブロックは、背景を示す画像と変わらず、動体画像ではないと判定される。一方、2種類のベクトルが同じ方向を向いていない場合には、注目画像ブロックの画像情報と、各対応コードワードCWの背景画像情報とは一致しないと考えることができる。したがって、この場合には、入力画像200中の注目画像ブロックは、背景を示す画像ではなく、動体画像であると判定される。
具体的には、動体検出部31は、入力画像200中の注目画像ブロックに含まれる複数の画素の画素値を成分とした画像ベクトルxfを生成する。図10には、9個の画素を有する注目画像ブロック210の各画素の画素値を成分とした画像ベクトルxfが示されている。図10の例では、各画素は、R(赤)、G(緑)及びB(青)の画素値を有しているため、画像ベクトルxfは、27個の成分で構成されている。
同様に、動体検出部31は、背景モデル500の対応コードブックCBに含まれる対応コードワードCW中の背景画像情報を用いて、背景画像情報に関するベクトルである背景ベクトルを生成する。図10に示される対応コードワードの背景画像情報510には、9個の画素についての画素値が含まれている。したがって、当該9個の画素についての画素値を成分とした背景ベクトルxbが生成される。背景ベクトルxbについては、対応コードブックCBに含まれる複数のコードワードCWのそれぞれから生成される。したがって、一つの画像ベクトルxfに対して複数の背景ベクトルxbが生成される。
上述のように、画像ベクトルxfと各背景ベクトルxbとが同じ方向を向いている場合、入力画像200中の注目画像ブロックは、背景を示す画像と変わらないことになる。しかしながら、画像ベクトルxf及び各背景ベクトルxbには、ある程度のノイズ成分が含まれていると考えられることから、画像ベクトルxfと各背景ベクトルxbとが完全に同じ方向を向いていなくても、入力画像200中の注目画像ブロックは背景を示す画像であると判定することができる。
そこで、本実施の形態では、画像ベクトルxf及び各背景ベクトルxbに、ある程度のノイズ成分が含まれていることを考慮して、画像ベクトルxfと各背景ベクトルxbとが完全に同じ方向を向いていない場合であっても、入力画像200中の注目画像ブロックは背景を示す画像であると判定する。
画像ベクトルxf及び背景ベクトルxbにノイズ成分が含まれていると仮定すると、真のベクトルuに対する画像ベクトルxfと背景ベクトルxbとの関係は、図11のように表すことができる。本実施の形態では、画像ベクトルxfと背景ベクトルxbとが、どの程度同じ方向を向いているかを示す評価値として、以下の(1)で表される評価値D2を考える。
そして、行列Xを画像ベクトルxfと背景ベクトルxbとを用いて、式(2)のように表すと、評価値D2は、2×2行列XXTの非ゼロの最小固有値となる。したがって、評価値D2については解析的に求めることができる。なお、評価値D2が2×2行列XXTの非ゼロの最小固有値となることについては、上記の非特許文献3に記載されている。
上述のように、一つの画像ベクトルxfに対して複数の背景ベクトルxbが生成されることから、画像ベクトルxfと背景ベクトルxbとを用いて表される評価値D2の値も、背景ベクトルxbの数と同じ数だけ得られることになる。
入力画像200中の注目画像ブロックが動体画像であるか否かの判定は、評価値D2の複数の値のうちの最小値Cと、評価値D2の複数の値についての平均値μ及び標準偏差σとを用いて表される、以下の式(3)で示される動体判定式が用いられる。この動体判定式はチェビシェフ(Chebyshev)の不等式と呼ばれる。
ここで、式(3)のkは定数であって、入力画像200を撮像する撮像部の撮像環境(撮像部が設置される環境)等に基づいて定められる値である。定数kは実験等によって決定される。
動体検出部31は、動体判定式(不等式)を満たす場合、画像ベクトルxfと各背景ベクトルxbとが同じ方向を向いていないと考えて、注目画像ブロックは、背景を示す画像ではなく、動体画像であると判定する。一方で、動体検出部31は、動体判定式を満たさない場合、画像ベクトルxfと各背景ベクトルxbとは同じ方向を向いていると考えて、注目画像ブロックは動体画像ではなく、背景を示す画像であると判定する。
このように、本実施の形態では、注目画像ブロックから得られた画像ベクトルの方向と、各対応コードワードCWから得られた背景ベクトルの方向とが、同じか否かに基づいて動体検出が行われているため、本実施の形態に係る動体検出手法は、日照変化あるいは照明変化などの撮像領域10での明るさの変化に対して比較的頑健な動体検出手法である。
<検出頻度マップ及び非検出頻度マップ>
図12,13は検出頻度マップ600及び非検出頻度マップ610の一例をそれぞれ示す図である。検出頻度マップ600には、撮像領域10を構成する複数の撮像ブロックBKのそれぞれについての動体(検出対象物)700の検出頻度601が含まれている。一方で、非検出頻度マップ610には、撮像領域10を構成する複数の撮像ブロックBKのそれぞれについての動体(検出対象物)700の非検出頻度611が含まれている。
検出頻度マップ600では、それに含まれる複数の検出頻度601が行列状に配置されている。ある撮像ブロックBKについての動体700の検出頻度601は、検出頻度マップ600において、撮像領域10での当該撮像ブロックBKの位置と同じ位置に配置されている。同様に、非検出頻度マップ610では、それに含まれる複数の非検出頻度611が行列状に配置されている。ある撮像ブロックBKについての動体700の非検出頻度611は、非検出頻度マップ610において、撮像領域10での当該撮像ブロックBKの位置と同じ位置に配置されている。
特定部330は、入力画像200に含まれるある画像ブロックが動体画像であると動体検出部31で判定されると、つまり、当該画像ブロックに対応する撮像ブロックに動体700が存在すると判定されると、検出頻度マップ600における、当該画像ブロックに対応する撮像ブロックBKについての動体700の検出頻度601を1つ増加する。
また特定部330は、入力画像200に含まれるある画像ブロックが動体画像でないと動体検出部31で判定されると、つまり、当該画像ブロックに対応する撮像ブロックに動体700が存在しないと判定されると、非検出頻度マップ610における、当該画像ブロックに対応する撮像ブロックBKについての動体700の非検出頻度611を1つ増加する。
図12,13には、撮像領域10を構成する複数の撮像ブロックBKのうち、中央の下側の2つの撮像ブロックBKにおいて動体(人)700が静止している場合に生成される検出頻度マップ600及び非検出頻度マップ610の一例が示されている。図12に示される検出頻度マップ600では、動体700が存在する2つの撮像ブロックBKについての動体700の検出頻度601が大きくなっている。一方で、図13に示される非検出頻度マップ610では、動体700が存在する2つの撮像ブロックBK以外の各撮像ブロックBKについての動体700の非検出頻度611が大きくなっている。
このような検出頻度マップ600では、動体700が頻繁に検出される撮像ブロックBKについての検出頻度601は大きくなる。したがって、検出頻度マップ600を参照することによって、撮像領域10において動体700が存在する可能性が高い領域を特定することができる。撮像領域10において、例えば、人の通路が存在する場合には、当該通路に対応する撮像ブロックについての検出頻度が大きくなり、当該撮像ブロックに人が存在する可能性が高いことが理解できる。
また非検出頻度マップ610では、動体700があまり検出されない撮像ブロックBKについての非検出頻度611は大きくなる。したがって、非検出頻度マップ610を参照することによって、撮像領域10において動体700が存在しない可能性が高い領域を特定することができる。
<背景モデル更新処理>
次にステップs14での背景モデル更新処理について説明する。背景モデル更新処理では、キャッシュモデルを記憶するキャッシュモデル記憶部6が使用される。キャッシュモデルには、背景モデル500に登録される背景画像情報の候補である背景画像情報候補が含められる。
ここで、撮像領域10では、日照変化あるいは照明変化などによって、明るさが変化することがある。撮像領域10での明るさが変化すると、入力画像200の画像情報が変化することから、動体検出部31は、入力画像200に含まれる、背景を示す画像ブロックを誤って動体画像であると判定する可能性がある。したがって、動体検出部31において動体画像あると判定された画像ブロックの画像情報が、実際には背景の画像情報である可能性がある。
そこで、本実施の形態では、背景モデル更新部33は、動体検出部31において動体画像であると判定された画像ブロックの画像情報を背景画像情報候補として、いったんキャッシュモデルに登録する。そして、背景モデル更新部33は、登録判定期間に入力される複数枚の入力画像200に基づいて、キャッシュモデルに登録した背景候補画像情報が、背景の画像情報であるか否かを判定する。背景モデル更新部33は、キャッシュモデルに登録した背景画像情報候補が背景の画像情報であると判定すると、当該背景画像情報候補を背景画像情報として背景モデル500に登録する。つまり、背景モデル更新部33は、登録判定期間に入力される複数枚の入力画像200に基づいて、キャッシュモデル記憶部6に記憶した背景画像情報候補を背景画像情報として背景モデル500に登録するか否かを判定する。登録判定期間は、ステップs13での判定期間調整処理で調整される。
図14は背景モデル更新処理を示すフローチャートである。図14に示されるように、ステップs141において、背景モデル更新部33は、撮像領域10のある撮像ブロックを注目撮像ブロックとし、上述のステップs11で入力された処理対象の入力画像200における、注目撮像ブロックの画像を示す画像ブロック(注目画像ブロック)が動体検出部31において動体画像であると判定されたか否かを判定する。ステップs141において、注目画像ブロックが動体検出部31において動体画像ではないと判定されたと判断されると、つまり、注目画像ブロックの画像情報が、背景モデル500中の各対応コードワードCWの背景画像情報と一致すると判定されると、背景モデル更新部33はステップs142を実行する。
ステップs142では、背景モデル更新部33は、注目画像ブロックの画像情報と一致すると判定された背景画像情報を含む、背景モデル500中のコードワードCWの最新一致時刻Teを現在時刻に変更する。ステップs142が実行されると、背景モデル更新部33では、特定部330が、ステップs143において、非検出頻度マップ610における、注目画像ブロックに対応する注目撮像ブロックについての非検出頻度を1つ増加する。
一方で、ステップs141において、注目画像ブロックが動体検出部31において動体画像であると判定されたと判断されると、背景モデル更新部33はステップs144を実行する。ステップs144では、キャッシュモデルの更新が行われる。具体的には、背景モデル更新部33は、注目画像ブロックの画像情報が、キャッシュモデル記憶部6内のキャッシュモデルに含まれる各対応コードワードCWに含まれていない場合には、当該画像情報を背景画像情報候補として含むコードワードCWを生成してキャッシュモデル内の対応コードブロックCBに登録する。このコードワードCWには、画像情報(背景画像情報候補)以外にも、最新一致時刻Te及びコードワード生成時刻Tiが含まれている。ステップs144で生成されたコードワードCWに含まれる最新一致時刻Teは、暫定的に、コードワード生成時刻Tiと同じ時刻に設定される。また背景モデル更新部33は、注目画像ブロックの画像情報が、キャッシュモデル記憶部6内のキャッシュモデルに含まれる対応コードワードCWに含まれている場合には、つまり、注目画像ブロックの画像情報と一致する背景画像情報候補を含む対応コードワードCWがキャッシュモデルに含まれている場合には、キャッシュモデルにおける、当該背景画像情報候補を含むコードワードCW中の最新一致時刻Teを現在時刻に変更する。
このように、ステップs144では、不足している画像情報を含むコードワードCWのキャッシュモデルへの追加、あるいはキャッシュモデル中のコードワードCWの最新一致時刻Teの更新が行われる。
なお、ステップs144において、背景モデル更新部33は、キャッシュモデル記憶部6内のキャッシュモデルに、注目撮像ブロックに対応するコードブックCBが登録されていない場合には、注目画像ブロックの画像情報を背景画像情報候補として含むコードワードCWを生成し、当該コードワードCWを含むコードブックCBを生成してキャッシュモデルに登録する。
ステップs144が実行されると、特定部330は、ステップs145において、検出頻度マップ600における、注目画像ブロックに対応する注目撮像ブロックについての検出頻度を1つ増加する。
ステップs143あるいはステップs145が実行されると、ステップs146において、背景モデル更新部33は、撮像領域10における全ての撮像ブロックについて処理が行われた否か、つまり、全ての撮像ブロックを注目撮像ブロックに設定したか否かを判定する。ステップs146において、処理が行われていない撮像ブロックが存在すると判定された場合には、背景モデル更新部33は、未だ処理が行われていない撮像ブロックを新たな注目撮像ブロックとして、ステップs141以降を実行する。一方で、ステップs146において、撮像領域10における全ての撮像ブロックについて処理が行われたと判定されると、背景モデル更新部33はステップs147を実行する。
ステップs147では、キャッシュモデルに含まれる、最新一致時刻Teが所定期間更新されていないコードワードCWが削除される。つまり、キャッシュモデル中のコードワードCWに含まれる画像情報が、ある程度の期間、入力画像200から取得された画像情報と一致しない場合には、当該コードワードCWが削除される。コードワードCWに含まれる画像情報が、背景の画像情報である場合には、つまり入力画像200に含まれる、背景を示す画像から取得された画像情報である場合には、当該コードワードCW中の最新一致時刻Teは頻繁に更新されることから、最新一致時刻Teが所定期間更新されていないコードワードCWに含まれる画像情報については、入力画像200に含まれる動体画像から取得された画像情報である可能性が高いと考えることができる。最新一致時刻Teが所定期間更新されていないコードワードCWがキャッシュモデルから削除されることによって、動体画像の画像情報がキャッシュモデルから削除される。以後、この所定期間を「削除判定用期間」と呼ぶことがある。削除判定用期間は、日照変化あるいは照明変化などの撮像領域10での明るさの変化、及びポスターの設置あるいは机の配置変更などの環境の変化等による画像情報の変化と、検出対象とする人等の動体が動くときに生じる画像情報の変化とを区別するために予め設定される期間である。例えば、入力画像200を撮像する撮像部の撮像フレームレートが30fpsであり、撮像領域10が会議室100(図4参照)であるとすると、削除判定用期間は、数十フレーム分から数百フレーム分の入力画像200が入力される期間に設定される。
ステップs147において、キャッシュモデルに含まれる、最新一致時刻Teが削除判定用期間更新されていないコードワードCWが削除されると、背景モデル更新部33はステップs148を実行する。ステップs148では、背景モデル更新部33は、キャッシュモデルに登録されているコードワードCWのうち、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWを特定する。ステップs144では、コードワードCWが生成されると、当該コードワードCWはすぐにキャッシュメモリに登録されることから、コードワードCWがキャッシュモデル内に登録された時刻として、当該コードワードCWに含まれるコードワード生成時刻Tiを使用することができる。
登録判定期間は削除判定用期間よりも大きな値に設定される。登録判定期間は、削除判定用期間よりも例えば数倍程度大きな値に設定される。本実施の形態では、登録判定期間はフレーム数で表されるものとする。登録判定期間が例えば“500”であるとすると、登録判定期間は、500フレーム分の入力画像200が入力される期間となる。
ステップs148が実行されると、ステップs149において、背景モデル更新部33は、検出頻度マップ600を用いた背景モデル登録判定処理を行う。背景モデル登録判定処理では、ステップs148で特定されたコードワードCWを、背景モデル記憶部5内の背景モデル500に登録するか否かが決定される。以下に背景モデル登録判定処理について詳細に説明する。
背景モデル登録判定処理では、まず特定部330が、検出頻度マップ600を用いて、撮像領域10において動体が存在する可能性が高い領域を特定する。具体的には、特定部330は、検出頻度マップ600において、第1のしきい値よりも大きい検出頻度を特定する。そして、特定部330は、第1のしきい値よりも大きい検出頻度に対応する撮像ブロックを、撮像領域10において動体が存在する可能性が高い領域とする。つまり、特定部330は、撮像ブロックについて動体の検出頻度が第1のしきい値よりも大きい場合には、当該撮像ブロックには動体が存在する可能性が高いと判定する。
図15は検出頻度マップ600の一例を示す図である。第1のしきい値=100とすると、図15に示される検出頻度マップ600では、一番右の列の下から一行目と二行目の2つの検出頻度が第1のしきい値よりも大きくなっている。したがって、撮像領域10において、一番右の列の下から一行目と二行目の撮像ブロックBKから成る領域(斜線で示された領域)が、撮像領域10において動体が存在する可能性が高い領域120となる。
なお、特定部330は、検出頻度マップ600において、第1のしきい値よりも大きい検出頻度が存在しない場合には、撮像領域10において動体が存在する可能性が高い領域が存在しないと判定する。また、特定部330は、第1のしきい値以上の検出頻度に対応する撮像ブロックを、撮像領域10において動体が存在する可能性が高い領域としても良い。
特定部330において、撮像領域10において動体が存在する可能性が高い領域が特定されると、登録決定部331は、ステップs148で特定された各コードワードCWについて、当該コードワードCWを背景モデル500に登録するか否かを、特定部330での特定結果に基づいて決定する。
具体的には、登録決定部331は、ステップs148で特定されたコードワードCWに含まれる画像情報が取得された画像ブロックに対応する撮像ブロックが、特定部330で特定された、撮像領域10において動体が存在する可能性が高い領域に含まれる場合には、つまり、当該撮像ブロックに動体が存在する可能性が高い場合には、当該コードワードCWを背景モデル500に登録しないと決定する。
一方で、登録決定部331は、ステップs148で特定されたコードワードCWに含まれる画像情報が取得された画像ブロックに対応する撮像ブロックが、特定部330で特定された、撮像領域10において動体が存在する可能性が高い領域に含まれない場合には、つまり、当該撮像ブロックに動体が存在する可能性が高くない場合には、当該コードワードCWを背景モデル500に登録すると決定する。
なお、特定部330において、撮像領域10において動体が存在する可能性が高い領域が存在しないと判定された場合には、登録決定部331は、ステップs148で特定されたコードワードCWのすべてを背景モデル500に登録すると決定する。
背景モデル更新部33は、登録決定部331において背景モデル500に登録すると決定されたコードワードCWを、背景モデル500内の当該コードワードCWに対応するコードブロックCBに登録する。そして、背景モデル更新部33は、背景モデル500に登録したコードワードCWをキャッシュモデルから削除する。
上記の説明から理解できるように、本実施の形態では、背景モデル更新部33は、キャッシュモデル内のコードワードCWを、キャッシュモデルに登録してから登録判定期間経過するまでに削除することがある。背景モデル更新部33が、キャッシュモデル内のコードワードCW(背景画像情報候補)を、キャッシュモデルに登録してから登録判定期間経過するまでに削除するということは、背景モデル更新部33が、登録判定期間において入力される複数枚の入力画像200に基づいて、キャッシュメモリに登録したコードワードCW(背景画像情報候補)を背景モデル500に登録しないと判定したことを意味している。
また、本実施の形態では、背景モデル更新部33は、キャッシュモデル内のコードワードCWを、キャッシュモデルに登録してから登録判定期間経過するまでに削除せずに、背景モデル500に登録することがある。背景モデル更新部33が、キャッシュモデル内のコードワードCW(背景画像情報候補)を、キャッシュモデルに登録してから登録判定期間経過するまで削除せずに背景モデル500に登録するということは、背景モデル更新部33が、登録判定期間において入力される複数枚の入力画像200に基づいて、キャッシュメモリに登録したコードワードCW(背景画像情報候補)を背景モデル500に登録すると判定したことを意味している。
このように、背景モデル更新部33は、登録判定期間において入力される複数枚の入力画像200に基づいて、キャッシュモデルに登録された背景画像情報候補を背景画像情報として背景モデル500に登録するか否かを判定していることから、動体検出部31において動体画像であると誤って判定された画像ブロックの画像情報を、背景画像情報として背景モデル500に登録することができる。よって、背景モデル500を適切に更新することができ、動体検出部31での動体検出の精度が向上する。
また、本実施の形態とは異なり、キャッシュモデルに登録されているコードワードCWのうち、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWを無条件で背景モデル500に登録する場合には、キャッシュモデルに登録された、動体画像の画像情報を含むコードワードCWが背景モデル500に登録される可能性がある。具体的には、撮像領域10において動体が一時的に静止している場合には、撮像領域10における、当該動体が存在する撮像ブロックの画像を示す画像ブロックの画像情報が変化しにくい。したがって、キャッシュモデルに登録された、当該動体を示す動体画像の画像情報を含むコードワードCWが、キャッシュモデルから長時間削除されずに、最終的には背景モデル500に登録される可能性がある。これにより、動体検出部31での動体検出の精度が劣化する可能性がある。特に、後述するように、登録判定期間が調整されて短くなった場合には、キャッシュモデルに登録された、動体画像の画像情報を含むコードワードCWが背景モデル500に登録されやすく、その結果、動体検出部31での動体検出の精度が劣化する可能性が大きくなる。
そこで、本実施の形態では、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWを無条件で背景モデル500に登録するのではなく、上述のように、検出頻度マップ600を用いて当該コードワードCWを背景モデル500に登録するか否かを決定している。これにより、動体画像の画像情報を含むコードワードCWが誤って背景モデル500に登録されることを抑制することができる。以下にこの点について詳細に説明する。
上述のように、特定部330は、検出頻度マップ600を用いて、撮像領域10において動体が存在する可能性が高い撮像ブロックを特定している。入力画像200に含まれる、動体が存在する可能性が高い撮像ブロックの画像を示す画像ブロックの画像情報については、動体画像の画像情報である可能性が高い。したがって、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWであっても、当該コードワードCWに含まれる画像情報が取得された画像ブロックに対応する撮像ブロックが、動体が存在する可能性が高い撮像ブロックであれば、当該コードワードCWの画像情報は動体画像の画像情報である可能性が高い。よって、本実施の形態のように、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWであっても、当該コードワードCWに含まれる画像情報が取得された画像ブロックに対応する撮像ブロックが、動体が存在する可能性が高い撮像ブロックであれば、当該コードワードCWを背景モデル500に追加しないことによって、動体画像の画像情報を含むコードワードCWが誤って背景モデル500に追加されることを抑制することができる。
ステップs149が終了すると、ステップs150において、背景モデル更新部33は検出頻度クリア処理を行う。この検出頻度クリア処理では、まず特定部330が、非検出頻度マップ610において第2のしきい値よりも大きい非検出頻度を特定する。そして、特定部330は、第2のしきい値よりも大きい非検出頻度に対応する撮像ブロックについての検出頻度マップ600での検出頻度をクリアして零に設定する。さらに、特定部330は、非検出頻度マップ610において第2のしきい値よりも大きい非検出頻度をクリアして零に設定する。第2のしきい値は、例えば、第1のしきい値と同じ値に設定される。
ここで、検出頻度は、ステップs12での動体検出処理において、当該検出頻度に対応する撮像ブロックでの動体の存在が検出されるたびに増加する。したがって、検出頻度をクリアしない場合には、撮像領域10でのレイアウトの変更等によって現在は動体が存在する可能性は高くない撮像ブロックについての検出頻度が第1のしきい値よりも大きい状態が発生する可能性が高くなる。
一方で、ある撮像ブロックについて、動体が存在する可能性が高い状態からそうではない状態へ遷移すると、非検出頻度マップ610での当該撮像ブロックの非検出頻度が大きくなる。
そこで、本実施の形態では、上述のように、非検出頻度マップ610において第2のしきい値よりも大きい非検出頻度に対応する撮像ブロックについての検出頻度マップ600での検出頻度をクリアしている。これにより、現在は動体が存在する可能性が高くない撮像ブロックについての検出頻度が第1のしきい値よりも大きい状態が発生することを抑制することができる。したがって、撮像領域10において動体が存在する可能性が高い領域を正確に特定することができる。よって、動体画像の画像情報が背景モデル500に登録されることをさらに抑制することができる。その結果、動体検出の精度がさらに向上する。なお、特定部330は、第2のしきい値以上の非検出頻度に対応する撮像ブロックについての検出頻度と非検出頻度をクリアしても良い。
ステップs150が終了すると、ステップs151において、背景モデル更新部33は、背景モデル500に含まれるコードワードCWにおいて、入力画像200の画像情報と所定期間にわたって一致しなかった背景画像情報を含むコードワードCWを削除する。つまり、背景モデル更新部33は、背景モデル500に含まれる、最新一致時刻Teが所定期間更新されていないコードワードCWを削除する。これにより、撮像領域10において、時系列的な撮像環境の変化により既に背景ではなくなった撮像ブロックの画像から取得された画像情報を含むコードワードCWを背景モデル500から削除することができる。よって、背景モデル500の情報量を低減することができる。
このような背景モデルの更新処理を行うことによって、撮像領域10での明るさの変化等の撮像環境の変化が生じた場合であっても、撮像環境の変化に追従した背景モデル500を用いて動体検出を行うことができる。よって、動体検出の精度が向上する。
なお、本実施の形態では、背景モデル更新処理において検出頻度マップ600及び非検出頻度マップ610を更新しているが、この代わりに、ステップs12での動体検出処理が終了した後であって、ステップs14での背景モデル更新処理が開始する前に、動体検出部31での各撮像ブロックについての動体検出の結果に基づいて、検出頻度マップ600及び非検出頻度マップ610を更新しても良い。例えば、ステップs12での動体検出処理とステップs13での判定期間調整処理との間で検出頻度マップ600及び非検出頻度マップ610を更新しても良い。
<判定期間調整処理>
日照変化あるいは照明変化などによって、撮像領域10での明るさが急に変化すると、入力画像200の画像情報が急に変化する。したがって、入力画像200に含まれる、背景を示す画像が動体画像であると誤って判定されて、当該背景を示す画像の画像情報がキャッシュモデルに登録されることがある。このような場合、背景モデル更新処理で使用される登録判定期間が長いと、キャッシュモデル内の背景の画像情報が長時間背景モデル500に反映されなくなる。その結果、動体検出の精度が劣化する可能性がある。
そこで、ステップs13での判定期間調整処理において、登録判定期間の調整を行う。具体的には、判定期間調整部32は、登録判定期間を、ステップs11で入力された処理対象の入力画像200中の動体領域(動体検出部31で動体画像であると判定された領域)の割合が大きいほど小さくする。これにより、入力画像200中の動体領域の割合が大きい場合には、ステップs14での背景モデル更新処理で使用される登録判定期間が短くなる。撮像領域10での明るさが急に変化すると、入力画像200全体で画像情報が急に変化することから、入力画像200での動体領域の割合が大きくなる。よって、撮像領域10での明るさが急に変化すると、背景モデル更新処理で使用される登録判定期間が短くなる。その結果、キャッシュモデル内の背景の画像情報をすぐに背景モデルに反映することが可能となり、動体検出の精度が向上する。
本実施の形態では、登録判定期間Dtは、入力画像200中の動体領域の割合をRdとすると、以下の式(4)で表される。
ここで式(4)中のaはしきい値であって、Dmin及びDmaxは定数である。Dmax>Dminとなっている。
式(4)で表される、登録判定期間Dtと入力画像200中の動体領域の割合Rdとの関係を図示すると図16のようになる。図16にも示されるように、式(4)によれば、入力画像200中の動体領域の割合Rdが大きくなるほど、登録判定期間Dtが小さくなる。特に、入力画像200中の動体領域の割合Rdが固定のしきい値aを超えた場合、登録判定期間Dtが最小値(Dmin)となる。
なお、しきい値aは、入力画像200の何パーセント以上の領域が動体画像であると判定されると異常と考えられるか(撮像領域10での明るさが急に変化した状態と考えられるか)という基準に基づいて予め設定される値であり、撮像領域10での被写体に応じて設定されることになる。
また、入力画像200中の動体領域の割合Rdは、動体領域の画素数をPd、入力画像200の全画素数をPaとすると、以下の式(5)で表される。
動体領域の画素数Pdは、動体画像である画像ブロックの数に、1つの画像ブロックに含まれる画素数を乗じることによって得ることができる。
<登録判定期間と検出頻度マップに関する第1のしきい値との関係>
登録判定期間を表すフレーム数が小さい場合には、撮像領域10において動体が存在する可能性が高い撮像ブロックに関して、当該撮像ブロックについての検出頻度が第1のしきい値よりも大きくなる前に、キャッシュモデル内の、当該撮像ブロックの画像を示す画像ブロックから取得された画像情報を含むコードワードCWが背景モデル500に登録される可能性が高くなる。したがって、登録判定期間を表すフレーム数が小さい場合には、キャッシュモデル内の、動体画像の画像情報を含むコードワードCWが、誤って背景モデル500に追加されることがある。これを抑制するためには、登録判定期間の最小値を示すDminを第1のしきい値よりも大きくことが考えされる。
しかしながら、Dminを大きくすると、上述の「キャッシュモデル内の背景の画像情報をすぐに背景モデルに反映することが可能となる」という効果が薄れてしまう。
そこで、本実施の形態では、第1のしきい値を、Dmin<第1のしきい値<Dmaxに設定する。例えば、第1のしきい値を、DminとDmaxを足して得られる値の半分とする。これにより、入力画像200中の動体領域の割合Rdが小さい場合には、登録判定期間は第1のしきい値よりも大きくなる。したがって、入力画像200中の動体領域の割合Rdが小さい場合には、キャッシュモデル内の、動体画像の画像情報を含むコードワードCWが、誤って背景モデル500に追加されることを抑制することができる。これに対して、入力画像200中の動体領域の割合Rdが大きい場合には、登録判定期間は第1のしきい値よりも小さくなる。したがって、キャッシュモデル内の背景の画像情報をすぐに登録することが可能となる。
以上のように、本実施の形態では、撮像領域10での検出対象物が存在する可能性が高い領域の特定結果が用いられて、入力画像200から得られる画像情報が背景画像情報として背景モデル500に登録するか否かが決定される。したがって、撮像領域10における、検出対象物が実際に存在する領域の画像から得られた画像情報が背景画像情報として背景モデル500に登録されることを抑制することができる。よって、検出対象物の検出精度が向上する。
図17は動体検出部31での動体検出の結果の一例を示す図である。図17には、動体検出部31が入力画像200から検出した動体領域800が入力画像200に重ねて示されている。図17に示される入力画像200には、被写体の画像として、床910に複数のダンボール920と複数の椅子930が配置された部屋900の画像が含まれている。部屋900の壁940には図示しない窓が設けられている。部屋900には二人の人990a,990bが存在している。図17の例では、部屋900に存在する人990a,990bのそれぞれが、動体領域800として適切に検出されている。
図18は、部屋900において、人990a,990bが図17に示される位置で静止している場合の検出頻度マップ600を示す図である。図18では床910及び壁940が破線で示されている。図18では、理解し易いように、検出頻度の大きさを例えば第1段階から第3段階の3段階に分けて検出頻度マップ600を示している。図18に示される検出頻度マップ600においては、検出頻度が、最も大きい第3段階に属する領域については左上がりのハッチングが示されており、2番目に大きい第2段階に属する領域については右上がりのハッチングが示されている。そして、図18に示される検出頻度マップ600においては、検出頻度が、最も小さい第1段階に属する領域についてはハッチングが示されていない。図18に示される検出頻度マップ600においては、撮像領域10における、人990a,990bが存在する領域についての検出頻度が大きくなっている。
図19は、本実施の形態とは異なり、背景モデル500の更新に検出頻度マップ600が使用されない場合での動体検出部31での動体検出の結果の一例を示す図である。図19には、動体検出部31が入力画像200から検出した動体領域800が入力画像200に重ねて示されている。図19に示される入力画像200では、二人の人990a,990bが二つの椅子930にそれぞれ座っている。図19に示される動体検出結果では、人990aは動体領域800として検出されているものの、人990bは動体領域800として検出されていない。
図20は、本実施の形態での動体検出結果、つまり、背景モデル500の更新に検出頻度マップ600が使用された場合での動体検出部31での動体検出の結果の一例を示す図である。図20に示されるように、背景モデル500の更新に検出頻度マップ600が使用された場合には、人990a,990bのそれぞれが動体領域800として適切に検出されている。
なお、撮像領域10の環境が、会議室などのように動体の動きが少ない環境である場合には、検出頻度マップ600についての第1のしきい値は、非検出頻度マップ610についての第2のしきい値よりも大きい方が望ましい。動体の動きが少ない環境では、動体が同じ場所に留まる可能性が高いことから、動体が存在する可能性が高い撮像ブロックの検出頻度は大きくなりやすい。このような環境において、第1のしきい値を小さくすると、動体がたまたま少しだけ留まった撮像ブロックについて、動体が存在する可能性が高いと誤って判断する可能性がある。一方で、第2のしきい値を大きくすると、環境の変化により、撮像ブロックが、動体が存在する可能性が高くない領域に変化した場合であっても、当該撮像ブロックについての検出頻度がいつまでもクリアされない可能性がある。よって、撮像領域10の環境が動体の動きが少ない環境である場合には、第1のしきい値は大きく、第2のしきい値は小さい方が望ましい。
また、撮像領域10の環境が、人通りの多い場所など、動体の動きが多い環境である場合には、第1のしきい値は第2のしきい値よりも小さい方が望ましい。動体の動きが多い環境では、動体が同じ場所に留まる可能性は低い。したがって、動体が存在する可能性が高い撮像ブロックであっても、当該撮像ブロックの検出頻度は大きくなりにくい。このような環境において、第1のしきい値を大きくすると、動体が存在する可能性が高い領域を適切に特定できない可能性がある。一方で、第2のしきい値を小さくすると、動体が撮像ブロックから少し動いただけで、当該撮像ブロックについての検出頻度がクリアされる可能性がある。よって、撮像領域10の環境が動体の動きが多い環境である場合には、第1のしきい値は小さく、第2のしきい値は大きい方が望ましい。
<変形例>
人等の動体は、静止しているといっても完全に静止していることはほとんど無く、微動することがある。例えば、机に座っている人や、通路で立ち止まって他の人と話をしている人は、その全体的な位置は変化しないものの(巨視的には静止しているものの)、手、頭、体、脚等が微動する。
図21は、撮像領域10で人990が微動する様子と、その場合の検出頻度マップ600の一例を示す図である。図21に示されるように、人990が微動する場合には、検出頻度マップ600では、その人990が主に存在する撮像ブロックについての検出頻度は大きくなるものの、当該撮像ブロックの周辺の撮像ブロックについての検出頻度はあまり大きくならない。したがって、キャッシュモデル内の、当該撮像ブロックの周辺の撮像ブロックに対応する画像ブロックから取得された、動体画像の画像情報が、当該撮像ブロックの周辺の撮像ブロックの検出頻度が小さいために、背景モデル500に登録される可能性がある。
そこで、本変形例では、図22に示されるように、ステップs145において、特定部330が、検出頻度マップ600における、注目画像ブロックに対応する注目撮像ブロックについての検出頻度601aを1つ増加させるとともに、注目撮像ブロックの周辺の各撮像ブロックの検出頻度601bを1つ増加させる。つまり、特定部330は、複数の撮像ブロックにおいて、動体が検出された撮像ブロック(注目撮像ブロック)の検出頻度601aを増加させるとともに、当該撮像ブロックの周辺の各撮像ブロックの検出頻度601bを増加させる。これにより、人等の動体が完全に静止していなくて微動している場合であっても、当該動体が主に存在する撮像ブロックについての検出頻度と、当該撮像ブロックの周辺の撮像ブロックについての検出頻度とを大きくすることができる。よって、キャッシュモデル内の、当該撮像ブロックの周辺の撮像ブロックに対応する画像ブロックから取得された、動体画像の画像情報が背景モデル500に登録されることを抑制することができる。よって、動体検出の精度がさらに向上する。
また、本変形例では、図23に示されるように、ステップs143において、特定部330が、非検出頻度マップ610における、注目画像ブロックに対応する注目撮像ブロックについての非検出頻度611aを1つ増加させるとともに、注目撮像ブロックの周辺の各撮像ブロックの非検出頻度611bを1つ増加させる。つまり、特定部330は、複数の撮像ブロックにおいて、動体が検出されなかった撮像ブロック(注目撮像ブロック)の非検出頻度611aを増加させるとともに、当該撮像ブロックの周辺の各撮像ブロックの非検出頻度611bを増加させる。これにより、動体が完全に静止していなくて微動する場合であっても、現在は動体が存在する可能性が高くない撮像ブロックについての検出頻度を適切にクリアすることができる。よって、動体検出の精度がさらに向上する。
なお、上述のように、ステップs12での動体検出処理が終了した後であって、ステップs14での背景モデル更新処理が開始する前に検出頻度マップ600を更新する場合には、図24に示されるように、ステップs12において動体画像であると特定された複数の画像ブロックにそれぞれ対応する複数の撮像ブロックBKcの検出頻度601cを1つ増加させるとともに、当該複数の撮像ブロックBKcの周辺の各撮像ブロックBKdの検出頻度601dを1つ増加させても良い。
同様に、ステップs12での動体検出処理が終了した後であって、ステップs14での背景モデル更新処理が開始する前に非検出頻度マップ610を更新する場合には、ステップs12において動体画像ではないと特定された複数の画像ブロックにそれぞれ対応する複数の撮像ブロックの非検出頻度を1つ増加させるとともに、当該複数の撮像ブロックの周辺の各撮像ブロックの非検出頻度を1つ増加させても良い。
また、上記の例では、画像ブロックの大きさを、3画素×3画素としていたが、これに限定されず、画像ブロックの大きさは、4画素×4画素、または5画素×5画素としてもよい。
また、上記の例では、ある画像ブロックについてのコードワードCWには、当該ある画像ブロック内の全ての画素の画素値が画像情報として含まれている場合を例示したが、これに限定されず、コードワードCWには、画像情報として画像ブロック内の全ての画素の画素値が含まれていなくてもよい。具体的には、画像ブロックの大きさが、3画素×3画素であった場合、コードワードCWには、5画素分の画素値が画像情報として含まれていてもよい。このように、コードワードCW内の情報量を減らすことによって、処理量を低減することができるので、動体検出処理を高速化することができる。
また、上記の例では、入力画像200中の各画素が、R(赤)、G(緑)及びB(青)のそれぞれの画素値を有している場合を想定していたが、これに限定されない。具体的には、入力画像200中の各画素の画素値は、RGB以外の他の色空間を用いて表されていてもよい。例えば、入力画像200がYUV形式の画像データである場合、輝度信号Y並びに2つの色差信号U,Vが、各画素の画素値として用いられることになる。
以上のように、検出装置1は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。