<動体検出装置の動作の概要>
図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)等を備えている。記憶部310には、動体検出装置1を制御するための制御プログラム311が記憶されている。CPU300が記憶部310内の制御プログラム311を実行することによって、画像処理部3には様々な機能ブロックが形成される。
図3に示されるように、画像処理部3には、背景モデル生成部30、動体検出部31、特定部32、感度調整部33及び背景モデル更新部34等の複数の機能ブロックが形成される。なお、これらの機能ブロックは、CPUがプログラムを実行することによって実現されるのではなく、論理回路を用いたハードウェア回路で実現されても良い。
背景モデル生成部30は、画像入力部2から順次入力される複数枚の入力画像200(複数枚の基準画像200)を用いて背景モデル500を生成する。背景モデル生成部30によって生成された背景モデル500は背景モデル記憶部5に記憶される。
動体検出部31は、画像入力部2から入力される入力画像200と、背景モデル500とを用いて、入力画像200中の動体画像を検出する。
特定部32は、入力画像200に写る撮像領域10において、第1動き領域と、第2動き領域と、ノイズ領域と、背景領域とを特定する特定処理を、動体検出部31での動体検出の結果に基づいて行う。特定部32は、動きベクトル取得部320と、評価値取得部321と、領域特定部322とを備えている。図5は特定部32で特定される複数種類の領域を説明するための図である。
第1動き領域とは、検出対象の動体(本例では人)が動く領域であって、当該動体の動き量(動体が動く量)が小さい領域である。図4に示される撮像領域10では、人が座る椅子102の周辺の領域等が第1動き領域となる。
第2動き領域とは、検出対象の動体が動く領域であって、当該動体の動き量が大きい領域である。図4に示される撮像領域10では、人が通る通路103が存在する領域等が第2領域となる。
ノイズ領域は、撮像領域10において不規則に状態が変化する領域である。図4に示される撮像領域10では、風等によって揺れるカーテン104が存在する領域がノイズ領域となる。また、会議室100に表示装置が置かれている場合には、当該表示装置の画面が存在する領域がノイズ領域となる。
背景領域は、撮像領域10において第1動き領域、第2動き領域及びノイズ領域よりも状態変化が小さい領域、つまり状態がほとんど変化しない領域である。図4に示される撮像領域10では、床が存在する領域や、カーテンの無い壁などが存在する領域が背景領域となる。
なお、背景領域を広い意味で捉えると、ノイズ領域も背景領域に含まれるが、ここでは、状態がほとんど変化しない領域を背景領域と呼び、ノイズ領域と背景領域とを区別している。特定部32の動作については後で詳しく説明する。
感度調整部33は、パラメータ調整部330と判定期間調整部331とを備えている。感度調整部33は、動体検出部31の動体検出の検出感度を調整する。具体的には、感度調整部33は、特定部32で特定された複数種類の領域のそれぞれについて、入力画像200に含まれる当該領域の画像に対する動体検出の検出感度を個別に設定する。図6は、特定部32で特定される複数種類の領域と、動体検出の検出感度との対応関係を示す図である。以後、単に「検出感度」と言えば、動体検出の検出感度を意味する。
本実施の形態では、入力画像200に含まれる、第1動き領域の画像(以後、「第1動き領域画像」と呼ぶ)に対する動体検出の検出感度はとても高く設定される。図4に示される例では、第1動き領域画像は、例えば、人が座っている椅子102付近を示す画像となる。また、入力画像200に含まれる、第2動き領域の画像(以後、「第2動き領域画像」と呼ぶ)に対する動体検出の検出感度は比較的高く設定される。図4に示される例では、第2動き領域画像は、例えば、人が通っている通路103を示す画像となる。また、入力画像200に含まれる、ノイズ領域の画像(以後、「ノイズ領域画像」と呼ぶ)に対する動体検出の検出感度は比較的低く設定される。図4に示される例では、ノイズ領域画像は、例えば、揺れているカーテン104を示す画像となる。そして、入力画像200に含まれる、背景領域の画像(以後、「背景領域画像」と呼ぶ)に対する動体検出の検出感度は中程度に設定される。図4に示される例では、背景領域画像は、例えば、床や天井を示す画像となる。
このように、感度調整部33では、入力画像200に含まれる第1動き領域画像に対する動体検出の検出感度が、入力画像200に含まれる第2動き領域画像に対する動体検出の検出感度よりも高く設定される。また、感度調整部33では、入力画像200に含まれる第1及び第2動き領域画像に対する動体検出の検出感度が、入力画像200に含まれる背景領域画像に対する動体検出の検出感度よりも高く設定される。そして、感度調整部33では、入力画像200に含まれるノイズ領域画像に対する動体検出の検出感度が、入力画像200に含まれる第1動き領域画像、第2動き領域画像及び背景領域画像よりも低く設定される。感度調整部33の動作については後で詳しく説明する。
背景モデル更新部34は背景モデル500の更新を行う。背景モデル記憶部5は、背景モデル生成部30で生成される背景モデル500を記憶する。キャッシュモデル記憶部6は、後述するキャッシュモデルを記憶する。背景モデル記憶部5及びキャッシュモデル記憶部6のそれぞれは、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)またはハードディスク(HD)等の書き換え可能な記憶手段で構成される。なお本例では、背景モデル記憶部5とキャッシュモデル記憶部6とはハードウェア的に独立しているが、一つの記憶装置が有する記憶領域の一部を背景モデル記憶部5として使用し、当該記憶領域の他の一部をキャッシュモデル記憶部6として使用しても良い。
検出結果出力部4は、動体検出部31での動体検出についての検出結果を外部に出力する。検出結果出力部4は、例えば、撮像領域10に存在する被写体(図4の例では会議室100)の様子をリアルタイムで表示する表示部を備えており、当該表示部において、動体が検出された領域を色等で表示することによって、動体検出の検出結果を外部に出力する。また、検出結果出力部4は、検出結果を音声等の音で外部に出力しても良い。また、検出結果出力部4は、検出結果を示す信号を、外部装置に対して出力することによって、当該検出結果を外部に出力しても良い。この場合には、外部装置は、検出結果に応じた動作を実行する。例えば、外部装置は、警報を発生する。あるいは、撮像領域10が図4の会議室100である場合には、外部装置は、会議室100の照明器具を制御して、人が存在する領域だけ明るくする。また、外部装置は、会議室100の空調機を制御して、人が存在する領域だけ冷却したり、暖めたりする。
<準備段階(背景モデル生成処理)>
次に動体検出装置1の準備段階で行われる背景モデル生成処理について説明する。図7は背景モデル500を説明するための図である。本実施の形態では、撮像領域10において人が存在しないとき(会議室100が利用されていないとき)に撮像部で撮像された入力画像200が、背景モデル500の生成で使用される基準画像200となっている。背景モデル生成処理では、A枚(A≧2)の基準画像200に基づいて背景モデル500が生成される。
本実施の形態では、撮像領域10は、複数の矩形の撮像ブロック(部分撮像領域)に分割される。入力画像200に含まれる、ある撮像ブロックの画像を示す領域を「画像ブロック」と呼ぶと、入力画像200は、撮像領域10を構成する複数の撮像ブロックの画像をそれぞれ示す複数の画像ブロックで構成される。本実施の形態では、一つの画像ブロックの大きさは、例えば、3画素×3画素となっている。以後、撮像ブロックと、入力画像200における、当該撮像ブロックの画像を示す画像ブロックとに関して、当該撮像ブロックを、当該画像ブロックに対応する撮像ブロックと呼ぶことがある。
図7に示されるように、背景モデル500には、複数の撮像ブロックBKにそれぞれ対応する複数のコードブック(Codebook)CBが含まれる。各コードブックCBには、画像情報と、当該画像情報に関連する関連情報とを含むコードワード(Codeword)CWが含まれている。コードブックCBに含まれるコードワードCWは、一枚の入力画像200における、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。各コードブックCBには複数のコードワードCWが含まれている。以後、背景モデル500中のコードワードCWに含まれる画像情報を「背景画像情報」と呼ぶことがある。
図7において砂地のハッチングが示されているコードブックCBには、3枚の基準画像200a〜200cに基づいてそれぞれ生成された3つのコードワードCW1〜CW3が含まれている。コードブックCBに含まれるコードワードCW1は、基準画像200aにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。コードブックCBに含まれるコードワードCW2は、基準画像200bにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。そして、コードブックCBに含まれるコードワードCW3は、基準画像200cにおける、当該コードブックCBが対応する撮像ブロックBKの画像を示す画像ブロックに基づいて生成される。
図8はコードワードCWを説明するための図である。コードワードCWには、当該コードワードCWを含むコードブックCBが対応する撮像ブロックの画像を示す画像ブロックの画像情報、つまり当該画像ブロックを構成する複数の画素の画素値PVが、背景画像情報として含まれている。そして、コードワードCWには、関連情報として、最新一致時刻Teとコードワード生成時刻Tiとが含まれている。後述するように、背景モデル500に含まれるコードワードCW中の画像情報については、検出対象画像200から取得された画像情報と一致する否かが判定される。コードワードCWに含まれる最新一致時刻Teは、当該コードワードCWに含まれる画像情報と、検出対象画像200から取得された画像情報とが一致すると判定された最新の時刻を示している。また、コードワードCWに含まれるコードワード生成時刻Tiは、当該コードワードCWが生成された時刻を示している。
図9は、このような背景モデル500が生成される背景モデル生成処理を示すフローチャートである。図9に示される背景モデル生成処理は、背景モデル記憶部5に背景モデル500が記憶されていないときに実行される。
図9に示されるように、ステップ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の実動作段階での動作について説明する。図10は、動体検出装置1の実動作段階での概略動作を示すフローチャートである。動体検出装置1では、背景モデル生成処理が終了すると、図10に示される処理が実行される。
図10に示されるように、ステップ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での動体検出処理について詳しく説明する。図11は動体検出処理を示すフローチャートである。図11に示されるように、ステップs121において、動体検出部31は、撮像領域10のある撮像ブロック(例えば、撮像領域10における左上の撮像ブロック)を注目撮像ブロックとし、上述のステップs11で入力された処理対象の入力画像200(検出対象画像200)における、注目撮像ブロックの画像を示す画像ブロック(以後、「注目画像ブロック」と呼ぶことがある)に対して動体検出を行う。本実施の形態に係る動体検出では、入力画像200中の注目画像ブロックから取得される画像情報と、背景モデル500における、注目撮像ブロックに対応するコードブックCBに含まれる各コードワードCW中の背景画像情報とが一致するか否かが判定されることによって、注目画像ブロックが動体画像であるか否かが判定される。以後、背景モデル500における、注目撮像ブロックに対応するコードブックCBを「対応コードブックCB」と呼ぶことがある。また、対応コードブックに含まれるコードワードCWを「対応コードワードCW」と呼ぶことがある。動体検出の具体的手法については後述する。
ステップs121が実行されると、ステップs122において、動体検出部31は、ステップs121での動体検出の結果を記憶する。そして、動体検出部31は、ステップs123において、撮像領域10における全ての撮像ブロックについて処理が行われた否か、つまり、全ての撮像ブロックを注目撮像ブロックに設定したか否かを判定する。ステップs123での判定の結果、処理が行われていない撮像ブロックが存在する場合には、動体検出部31は、未だ処理が行われていない撮像ブロックを新たな注目撮像ブロックとして、ステップs121以降を実行する。一方で、ステップs123での判定の結果、撮像領域10における全ての撮像ブロックについて処理が行われている場合には、つまり、入力画像200の全領域に対して動体検出が完了している場合には、動体検出部31は動体検出処理を終了する。これにより、動体検出部31には、入力画像200を構成する複数の画像ブロックに対する動体検出の結果が記憶される。この検出結果は、検出結果出力部4に入力される。
<動体検出の詳細>
次にステップs121での動体検出の具体的手法について図12及び13を用いて説明する。図12は、入力画像200の注目画像ブロック及び背景モデル500の対応コードワードCWのそれぞれからベクトルを抽出する様子を表した図である。図13は、入力画像200の注目画像ブロックから抽出されたベクトルと、背景モデル500の対応コードワードCWから抽出されたベクトルとの関係を示す図である。
本実施の形態では、入力画像200中の注目画像ブロックの画像情報がベクトルとして扱われる。また、背景モデル500中の各対応コードワードCWについて、当該対応コードワードCWに含まれる背景画像情報がベクトルとして扱われる。そして、注目画像ブロックの画像情報についてのベクトルと、各対応コードワードCWの背景画像情報についてのベクトルとが、同じ方向を向いているか否かに基づいて、注目画像ブロックが動体画像であるか否かが判定される。この2種類のベクトルが同じ方向を向いている場合には、注目画像ブロックの画像情報と、各対応コードワードCWの背景画像情報とは一致すると考えることができる。したがって、この場合には、入力画像200中の注目画像ブロックは、背景を示す画像と変わらず、動体画像ではないと判定される。一方、2種類のベクトルが同じ方向を向いていない場合には、注目画像ブロックの画像情報と、各対応コードワードCWの背景画像情報とは一致しないと考えることができる。したがって、この場合には、入力画像200中の注目画像ブロックは、背景を示す画像ではなく、動体画像であると判定される。
具体的には、動体検出部31は、入力画像200中の注目画像ブロックに含まれる複数の画素の画素値を成分とした画像ベクトルxfを生成する。図12には、9個の画素を有する注目画像ブロック210の各画素の画素値を成分とした画像ベクトルxfが示されている。図12の例では、各画素は、R(赤)、G(緑)及びB(青)の画素値を有しているため、画像ベクトルxfは、27個の成分で構成されている。
同様に、動体検出部31は、背景モデル500の対応コードブックCBに含まれる対応コードワードCW中の背景画像情報を用いて、背景画像情報に関するベクトルである背景ベクトルを生成する。図12に示される対応コードワードの背景画像情報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との関係は、図13のように表すことができる。本実施の形態では、画像ベクトル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は実験等によって決定される。また、式(3)のαは変数であって、ステップs13での検出感度調整処理で調整される。以後、変数αを「調整パラメータα」と呼ぶ。本実施の形態では、撮像ブロックごとに、当該撮像ブロックの画像を示す画像ブロックに対する動体検出で使用される動体判定式の調整パラメータαを調整することが可能となっている。
動体検出部31は、動体判定式(不等式)を満たす場合、画像ベクトルxfと各背景ベクトルxbとが同じ方向を向いていないと考えて、注目画像ブロックは、背景を示す画像ではなく、動体画像であると判定する。一方で、動体検出部31は、動体判定式を満たさない場合、画像ベクトルxfと各背景ベクトルxbとは同じ方向を向いていると考えて、注目画像ブロックは動体画像ではなく、背景を示す画像であると判定する。
このように、本実施の形態では、注目画像ブロックから得られた画像ベクトルの方向と、各対応コードワードCWから得られた背景ベクトルの方向とが、同じか否かに基づいて動体検出が行われているため、本実施の形態に係る動体検出手法は、日照変化あるいは照明変化などの撮像領域10での明るさの変化に対して比較的頑健な動体検出手法である。
なお、式(3)を以下の式(4)に書き直すことによって、調整パラメータαはしきい値αとして見ることができる。式(4)の左辺に示される評価値がしきい値α以上であれば、注目画像ブロックは動体画像であると判定される。一方で、当該評価値がしきい値αよりも小さければ、注目画像ブロックは動体画像ではないと判定される。
<背景モデル更新処理>
次にステップs14での背景モデル更新処理について説明する。背景モデル更新処理では、キャッシュモデルを記憶するキャッシュモデル記憶部6が使用される。キャッシュモデルには、背景モデル500に登録される背景画像情報の候補である背景画像情報候補が含められる。
ここで、撮像領域10では、日照変化あるいは照明変化などによって、明るさが変化することがある。撮像領域10での明るさが変化すると、入力画像200の画像情報が変化することから、動体検出部31は、入力画像200に含まれる、背景を示す画像ブロックを誤って動体画像であると判定する可能性がある。したがって、動体検出部31において動体画像あると判定された画像ブロックの画像情報が、実際には背景の画像情報である可能性がある。
そこで、本実施の形態では、背景モデル更新部34は、動体検出部31において動体画像であると判定された画像ブロックの画像情報を背景画像情報候補として、いったんキャッシュモデルに登録する。そして、背景モデル更新部34は、判定期間に入力される複数枚の入力画像200に基づいて、キャッシュモデルに登録した背景候補画像情報が、背景の画像情報であるか否かを判定する。背景モデル更新部34は、キャッシュモデルに登録した背景画像情報候補が背景の画像情報であると判定すると、当該背景画像情報候補を背景画像情報として背景モデル500に登録する。つまり、背景モデル更新部34は、判定期間に入力される複数枚の入力画像200に基づいて、キャッシュモデル記憶部6に記憶した背景画像情報候補を背景画像情報として背景モデル500に登録するか否かを判定する。この判定期間を「登録判定期間」と呼ぶ。
登録判定期間は、ステップs13での検出感度調整処理で調整される。また、登録判定期間は、撮像ブロックごとに準備されている。ある撮像ブロックの画像を示す画像ブロックの画像情報が背景画像情報候補としてキャッシュモデルに登録され、当該背景画像情報候補が、背景画像情報として背景モデル500に登録されるか否かが判定される際には、当該撮像ブロックに対応する登録判定期間が使用される。
図14は背景モデル更新処理を示すフローチャートである。図14に示されるように、ステップs141において、背景モデル更新部34は、撮像領域10のある撮像ブロックを注目撮像ブロックとし、上述のステップs11で入力された処理対象の入力画像200における、注目撮像ブロックの画像を示す画像ブロック(注目画像ブロック)が動体検出部31において動体画像であると判定されてか否かを判定する。ステップs141において、注目画像ブロックが動体検出部31において動体画像ではないと判定されたと判断されると、つまり、注目画像ブロックの画像情報が、背景モデル500中の各対応コードワードCWの背景画像情報と一致すると判定されると、背景モデル更新部34はステップs142を実行する。
ステップs142では、背景モデル更新部34は、注目画像ブロックの画像情報と一致すると判定された背景画像情報を含む、背景モデル500中のコードワードCWの最新一致時刻Teを現在時刻に変更する。
一方で、ステップs141において、注目画像ブロックが動体検出部31において動体画像であると判定されたと判断されると、背景モデル更新部34はステップs143を実行する。ステップs143では、キャッシュモデルの更新が行われる。具体的には、背景モデル更新部34は、注目画像ブロックの画像情報が、キャッシュモデル記憶部6内のキャッシュモデルに含まれていない場合には、当該画像情報を背景画像情報候補として含むコードワードCWを生成してキャッシュモデルに登録する。このコードワードCWには、画像情報(背景画像情報候補)以外にも、最新一致時刻Te及びコードワード生成時刻Tiが含まれている。ステップs143で生成されたコードワードCWに含まれる最新一致時刻Teは、暫定的に、コードワード生成時刻Tiと同じ時刻に設定される。また背景モデル更新部34は、注目画像ブロックの画像情報が、キャッシュモデル記憶部6内のキャッシュモデルに含まれている場合には、つまり、注目画像ブロックの画像情報と一致する背景画像情報候補がキャッシュモデルに含まれている場合には、キャッシュモデルにおける、当該背景画像情報候補を含むコードワードCW中の最新一致時刻Teを現在時刻に変更する。
このように、ステップs143では、不足している画像情報を含むコードワードCWのキャッシュモデルへの追加、あるいはキャッシュモデル中のコードワードCWの最新一致時刻Teの更新が行われる。
ステップs142あるいはステップs143が実行されると、ステップs144において、背景モデル更新部34は、撮像領域10における全ての撮像ブロックについて処理が行われた否か、つまり、全ての撮像ブロックを注目撮像ブロックに設定したか否かを判定する。ステップs144において、処理が行われていない撮像ブロックが存在すると判定された場合には、背景モデル更新部34は、未だ処理が行われていない撮像ブロックを新たな注目撮像ブロックとして、ステップs141以降を実行する。一方で、ステップs144において、撮像領域10における全ての撮像ブロックについて処理が行われたと判定されると、背景モデル更新部34はステップs145を実行する。
ステップs145では、キャッシュモデルに含まれる、最新一致時刻Teが所定期間更新されていないコードワードCWが削除される。つまり、キャッシュモデル中のコードワードCWに含まれる画像情報が、ある程度の期間、入力画像200から取得された画像情報と一致しない場合には、当該コードワードCWが削除される。コードワードCWに含まれる画像情報が、背景の画像情報である場合には、つまり入力画像200に含まれる、背景を示す画像から取得された画像情報である場合には、当該コードワードCW中の最新一致時刻Teは頻繁に更新されることから、最新一致時刻Teが所定期間更新されていないコードワードCWに含まれる画像情報については、入力画像200に含まれる動体画像から取得された画像情報である可能性が高いと考えることができる。最新一致時刻Teが所定期間更新されていないコードワードCWがキャッシュモデルから削除されることによって、動体画像の画像情報がキャッシュモデルから削除される。以後、この所定期間を「削除判定用期間」と呼ぶことがある。削除判定用期間は、日照変化あるいは照明変化などの撮像領域10での明るさの変化、及びポスターの設置あるいは机の配置変更などの環境の変化等による画像情報の変化と、検出対象とする人等の動体が動くときに生じる画像情報の変化とを区別するために予め設定される期間である。例えば、入力画像200を撮像する撮像部の撮像フレームレートが30fpsであり、撮像領域10が会議室100(図4参照)であるとすると、削除判定用期間は、数十フレーム分から数百フレーム分の入力画像200が入力される期間に設定される。
ステップs145において、キャッシュモデルに含まれる、最新一致時刻Teが削除判定用期間更新されていないコードワードCWが削除されると、背景モデル更新部34はステップs146を実行する。ステップs146では、背景モデル更新部34は、キャッシュモデルに登録されているコードワードCWのうち、キャッシュモデルに登録されてから登録判定期間経過しているコードワードCWを、背景モデル記憶部5内の背景モデル500に登録する。背景モデル500に登録されたコードワードCWはキャッシュモデルから削除される。登録判定期間は削除判定用期間よりも大きな値に設定される。登録判定期間は、削除判定用期間よりも例えば数倍程度大きな値に設定される。本実施の形態では、登録判定期間はフレーム数で表されるものとする。登録判定期間が例えば“500”であるとすると、登録判定期間は、500フレーム分の入力画像200が入力される期間となる。
ここで、背景モデル更新部34が、キャッシュモデル内のコードワードCW(背景画像情報候補)を、キャッシュモデルに登録してから登録判定期間経過するまでに削除するということは、背景モデル更新部34が、登録判定期間において入力される複数枚の入力画像200に基づいて、キャッシュメモリに登録したコードワードCW(背景画像情報候補)を背景モデル500に登録しないと判定したことを意味している。一方で、背景モデル更新部34が、キャッシュモデル内のコードワードCW(背景画像情報候補)を、キャッシュモデルに登録してから登録判定期間経過するまで削除しないということは、背景モデル更新部34が、登録判定期間において入力される複数枚の入力画像200に基づいて、キャッシュメモリに登録したコードワードCW(背景画像情報候補)を背景モデル500に登録すると判定したことを意味している。
また、背景モデル更新部34は、キャッシュモデル内に存在しているコードワードCWが、キャッシュモデルに登録されてから登録判定期間経過しているか否かを判定する際には、当該コードワードCWに含まれる画像情報(背景画像情報候補)が取得された画像ブロックに対応する撮像ブロックに応じた登録判定期間が使用される。
なお、ステップs143では、コードワードCWが生成されると、当該コードワードCWはすぐにキャッシュメモリに登録されることから、コードワードCWがキャッシュモデル内に登録された時刻として、当該コードワードCWに含まれるコードワード生成時刻Tiを使用することができる。
このように、背景モデル更新部34は、判定期間において入力される複数枚の入力画像200に基づいて、キャッシュモデルに登録された背景画像情報候補を背景画像情報として背景モデル500に登録するか否かを判定していることから、動体検出部31において動体画像であると誤って判定された画像ブロックの画像情報を、背景画像情報として背景モデル500に登録することができる。よって、背景モデル500を適切に更新することができ、動体検出部31での動体検出の精度が向上する。
ステップs146が終了すると、ステップs147において、背景モデル更新部34は、背景モデル500に含まれるコードワードCWにおいて、入力画像200の画像情報と所定期間にわたって一致しなかった背景画像情報を含むコードワードCWを削除する。つまり、背景モデル更新部34は、背景モデル500に含まれる、最新一致時刻Teが所定期間更新されていないコードワードCWを削除する。これにより、撮像領域10において、時系列的な撮像環境の変化により既に背景ではなくなった撮像ブロックの画像から取得された画像情報を含むコードワードCWを背景モデル500から削除することができる。よって、背景モデル500の情報量を低減することができる。
このような背景モデルの更新処理を行うことによって、撮像領域10での明るさの変化等の撮像環境の変化が生じた場合であっても、撮像環境の変化に追従した背景モデル500を用いて動体検出を行うことができる。よって、動体検出の精度が向上する。
<検出感度調整処理>
次にステップs13での検出感度調整処理について説明する。検出感度調整処理では、上記の式(3)で示される動体判定式に含まれる調整パラメータαが調整されることによって、動体検出部31での動体検出の検出感度が調整される。調整パラメータαが小さくされると、動体判定式が満たされやすくなることから、画像ブロックが動体画像であると判定されやすくなる。つまり、検出感度が高くなる。一方で、調整パラメータαが大きくされると、動体判定式が満たされにくくなることから、画像ブロックが動体画像であると判定されにくくなる。つまり、検出感度が低くなる。
さらに、検出感度調整処理では、キャッシュモデルに登録したコードワードCWを背景モデル500に登録するか否かを判定する登録判定期間が調整されることによって、動体検出部31での動体検出の検出感度が調整される。登録判定期間が短くされると、登録判定期間に入力される入力画像200が少なくなることから、少ない数の入力画像200に基づいて、キャッシュモデルに登録したコードワードCWを背景モデル500に登録するか否かを判定することになる。したがって、キャッシュモデル内の、動体画像から取得された画像情報を含むコードワードCWが誤って背景モデル500に登録される可能性が高くなる。よって、背景モデル500が用いられた動体検出の検出精度が低くなる。一方で、登録判定期間が長くされると、登録判定期間に入力される入力画像200が多くなることから、多くの数の入力画像200に基づいて、キャッシュモデルに登録したコードワードCWを背景モデル500に登録するか否かを判定することになる。したがって、キャッシュモデル内の、動体画像から取得された画像情報を含むコードワードCWが誤って背景モデル500に登録される可能性が低くなる。よって、背景モデル500が用いられた動体検出の検出精度が高くなる。
図15は検出感度調整処理を示すフローチャートである。以下の説明では、現在の処理対象の入力画像200を「Nフレーム目の入力画像200」と呼び、それよりもmフレーム前(m≧1)の入力画像200を「(N−m)フレーム目の入力画像200」と呼ぶことがある。
図15に示されるように、ステップs131において、特定部32の動きベクトル取得部320は、動体検出部31での動体検出の結果に基づいて、動体の動きベクトルを取得する。本実施の形態では、例えば、NN(Nearest Neighbor)法を用いた動体追跡が行われて、動きベクトルが求められる。NN法では、前後のフレーム画像の間において、距離が近い動体画像が同じ動体の画像であるとして動体追跡が行われる。以下にステップs131について詳細に説明する。
ステップs131では、動きベクトル取得部320は、まず、Nフレーム目の入力画像200において動体画像であると判定された画像ブロック(以後、「動体画像ブロック」と呼ぶ)に対して4連結等を用いたラベリングを行って、隣接する複数の動体画像ブロックを連結して一つの動体画像領域とする。図16には、Nフレーム目の入力画像200での動体画像領域600が実線で示されている。
次に動きベクトル取得部320は、Nフレーム目の入力画像200での各動体画像領域600の位置と、(N−1)フレーム目の入力画像200での各動体画像領域610の位置とを比較して、互いに近い位置にある動体画像領域600,610を、同じ動体の画像であるとして、互いに対応付ける。図16には、(N−1)フレーム目の入力画像200での動体画像領域610が破線で示されている。なお、(N−1)フレーム目の入力画像200での動体画像領域610については、(N−1)フレーム目の入力画像200を処理対象とする一つ前の検出感度調整処理で求められている。
次に動きベクトル取得部320は、互いに対応付けた動体画像領域600,610について、当該動体画像領域610の重心610aから、当該動体画像領域600の重心600に向かうベクトルを求めて、このベクトルを当該動体画像領域600,610が示す動体の動きベクトル620とする(図16参照)。以後、この動きベクトルを「Nフレーム目の動きベクトル」あるいは「Nフレーム目の動体画像領域の動きベクトル」と呼ぶことがある。
次に動きベクトル取得部320は、互いに対応付けた動体画像領域600,610から求めたNフレーム目の動きベクトル620を、当該動体画像領域600を構成する複数の動体画像ブロックにそれぞれ対応する複数の撮像ブロックに対して対応付ける。これにより、動体画像であると判定された画像ブロックに対応する撮像ブロックには、Nフレーム目の動きベクトル620が対応付けられる。撮像ブロックに対応付けられたNフレーム目の動きベクトルは、Nフレーム目の入力画像200が撮像される際に当該撮像ブロックに存在する動体の動きベクトルであると言える。
このようにして、Nフレーム目の動きベクトルが求められて撮像ブロックに対応付けられる。なお、(N−m)フレーム目の入力画像200を処理対象とする検出感度調整処理においても、(N−m)フレーム目の動きベクトルが求められて撮像ブロックに対応付けられている。
Nフレーム目の動きベクトルが求められて撮像ブロックに対応付けられると、ステップs132において領域特定処理が行われる。領域特定処理では、特定部32が、撮像領域10において、第1動き領域と、第2動き領域と、ノイズ領域と、背景領域とを特定する。本実施の形態では、特定部32は、Nフレーム目から(N−M)フレーム目(M≧1)の動きベクトルのうちの複数の動きベクトルが対応付けられている各撮像ブロックについて、当該撮像ブロックに対応付けられている複数の動きベクトルに基づいて、当該撮像ブロックがどのような領域(第1動き領域あるいは第2動き領域など)であるのかを特定する。また、特定部32は、Nフレーム目から(N−M)フレーム目の動きベクトルのいずれも対応付けられていない撮像ブロックを背景領域とする。Mは、例えば数十の値に設定される。ステップs132での領域特定処理については後で詳細に説明する。
ステップs132での領域特定処理が終了すると、ステップs133において、感度調整部33は、動体検出部31での動体検出の検出感度を調整する。感度調整部33では、パラメータ調整部330が動体判定式に含まれる調整パラメータαを調整することによって、動体検出の検出感度を調整する。また、感度調整部33では、判定期間調整部331が背景モデル更新処理で使用される登録判定期間を調整することによって、動体検出の検出感度を調整する。まず、パラメータ調整部330の動作について説明する。
本実施の形態では、調整パラメータαの初期値が準備されており、調整パラメータαの値がこの初期値から変更されることによって、調整パラメータαが調整される。パラメータ調整部330は、入力画像200に含まれる、撮像領域10の第1動き領域の画像(第1動き領域画像)に対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値−Q1)とする(Q1>0)。つまり、パラメータ調整部330は、撮像領域10の第1動き領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックに対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値−Q1)とする。
また、パラメータ調整部330は、入力画像200に含まれる、撮像領域10の第2動き領域の画像(第2動き領域画像)に対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値−Q2)とする(Q1>Q2>0)。つまり、パラメータ調整部330は、撮像領域10の第2動き領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックに対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値−Q2)とする。
また、パラメータ調整部330は、入力画像200に含まれる、撮像領域10のノイズ領域の画像(ノイズ領域画像)に対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値+Q3)とする(Q3>0)。つまり、パラメータ調整部330は、撮像領域10のノイズ領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックに対する動体検出で使用される動体判定式の調整パラメータαの値を(初期値+Q3)とする。
そして、パラメータ調整部330は、入力画像200に含まれる、撮像領域10の背景領域の画像(背景領域画像)に対する動体検出で使用される動体判定式の調整パラメータαの値を初期値とする。つまり、パラメータ調整部330は、撮像領域10の背景領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックに対する動体検出で使用される動体判定式の調整パラメータαの値を初期値とする。
これにより、図17に示されるように、第1動き領域画像に対する動体検出での調整パラメータαの値が最も小さく、第2動き領域画像に対する動体検出での調整パラメータαの値が二番目に小さく、背景領域画像に対する動体検出での調整パラメータαの値が三番目に小さく、ノイズ領域画像に対する動体検出での調整パラメータαの値が最も大きくなる。上述のように、調整パラメータαが小さくされると、動体検出の検出感度が高くなることから、第1動き領域画像に対する動体検出の検出感度が一番高く、第2動き領域画像に対する動体検出の検出感度が二番目に高く、背景領域画像に対する動体検出の検出感度が三番目に高く、ノイズ領域画像に対する動体検出の検出精度が最も低くなっている(図6参照)。
このようにして調整された調整パラメータαは、(N+1)フレーム目の入力画像200を処理対象とする動体検出処理において使用される。なお、特定部32が、撮像領域10において、第1動き領域、第2動き領域、ノイズ領域及び背景領域のいずれにも該当しないと判定した不明領域については、当該不明領域に対する動体検出で使用される調整パラメータαは初期値に設定される。
次に判定期間調整部331の動作について説明する。本実施の形態では、登録判定期間の初期値が準備されており、登録判定期間がこの初期値から変更されることによって、登録判定期間が調整される。判定期間調整部331は、撮像領域10の第1動き領域の画像(第1動き領域画像)から取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間(第1動き領域に対応する登録判定期間)を(初期値+T1)とする(T1>0)。つまり、判定期間調整部331は、撮像領域10の第1動き領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックから取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間を(初期値+T1)とする。
また、判定期間調整部331は、撮像領域10の第2動き領域の画像(第2動き領域画像)から取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間(第2動き領域に対応する登録判定期間)を(初期値+T2)とする(T1>T2>0)。つまり、判定期間調整部331は、撮像領域10の第2動き領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックから取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間を(初期値+T2)とする。
また、判定期間調整部331は、撮像領域10のノイズ領域の画像(ノイズ領域画像)から取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間(ノイズ領域に対応する登録判定期間)を(初期値−T3)とする(T3>0)。つまり、判定期間調整部331は、撮像領域10のノイズ領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックから取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間を(初期値−T3)とする。
そして、判定期間調整部331は、撮像領域10の背景領域の画像(背景領域画像)から取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間(背景領域に対応する登録判定期間)を初期値とする。つまり、判定期間調整部331は、撮像領域10の背景領域を構成する複数の撮像ブロックの画像をそれぞれ示す、入力画像200中の複数の画像ブロックのそれぞれについて、当該画像ブロックから取得された画像情報を含む、キャッシュモデル内のコードワードCWを背景モデル500に登録するか否かの判定で使用される登録判定期間を初期値とする。
これにより、図17に示されるように、第1動き領域に対応する登録判定期間(第1動き領域を構成する各撮像ブロックに対応する登録判定期間)が最も長くなり、第2動き領域に対する登録判定期間(第2動き領域を構成する各撮像ブロックに対応する登録判定期間)が二番目に長くなり、背景領域に対応する登録判定期間(背景領域を構成する各撮像ブロックに対応する登録判定期間)が三番目に長くなり、ノイズ領域(ノイズ領域を構成する各撮像ブロックに対応する登録判定期間)に対応する登録判定期間が最も短くなる。上述のように、登録判定期間が長くされると、背景モデル500が用いられた動体検出の検出精度が高くなることから、上記のように登録判定期間を調整することによって、第1動き領域画像に対する動体検出の検出感度が一番高く、第2動き領域画像に対する動体検出の検出感度が二番目に高く、背景領域画像に対する動体検出の検出感度が三番目に高く、ノイズ領域画像に対する動体検出の検出精度が最も低くなる(図6参照)。
このようにして、ステップs13の検出感度調整処理で調整された登録判定期間は、当該ステップs13の次のステップs14での背景モデル更新処理で使用される。なお、撮像領域10における不明領域に対応する登録判定期間は初期値に設定される。
ステップs133において、調整パラメータα及び登録判定期間が調整されると、検出感度調整処理が終了する。
以上のように、本実施の形態では、感度調整部33が、入力画像200に含まれる第1動き領域画像に対する動体検出の検出感度を、入力画像200に含まれる第2動き領域画像に対する動体検出の検出感度よりも高くしている。
ここで、第1動き領域は、会議室100における、人が座る椅子102の周辺の領域のように、撮像領域10における、動体の動き量が小さい領域である。したがって、入力画像200に含まれる第1動き領域画像の画像情報は変化しにくい。よって、本実施の形態とは異なり、動体検出の検出感度を調整しない場合には、第1動き領域画像に対して動体検出を行うと、当該第1動き領域画像に含まれる動体画像を検出できない可能性がある。
本実施の形態では、画像情報が変化しにくい第1動き領域画像に対する動体検出の検出感度を高くしていることから、第1動き領域画像から動体画像が検出されやすくなる。よって、入力画像200に対する動体検出の精度を向上することができる。
また、本実施の形態では、感度調整部33は、入力画像200に含まれる第1及び第2動き領域画像に対する動体検出の検出感度を、入力画像200に含まれる背景領域画像に対する動体検出の検出感度よりも高くしている。つまり、本実施の形態では、撮像領域10における、動体が動く領域(以後、「動き領域」と呼ぶ)の画像(以後、「動き領域画像」と呼ぶ)に対する動体検出の検出感度が高くされている。動き領域では、動体がゆっくりと動くことがあり、場合によっては、動体の動きが止まることもあり、このような場合には、動き領域画像の画像情報は変化しにくくなる。したがって、本実施の形態のように、動き領域画像に対する動体検出の検出感度を高くすることによって、動き領域画像に含まれる動体画像を検出しやすくなる。よって、入力画像200に対する動体検出の精度が向上する。
また、本実施の形態では、感度調整部33は、入力画像200に含まれるノイズ領域画像に対する動体検出の検出感度を、入力画像200に含まれる第1及び第2動き領域画像に対する動体検出の検出感度よりも低くしている。撮像領域10のノイズ領域では、状態が不規則に変化することから、ノイズ領域画像の画像情報が変化しやすくなる。したがって、動体検出の検出感度を調整しない場合には、ノイズ領域画像に対して動体検出を行うと、ノイズ領域画像から誤って動体画像が検出される可能性がある。本実施の形態のように、ノイズ領域画像に対する動体検出の検出感度を低くすることによって、ノイズ領域画像から誤って動体画像が検出されにくくなり、入力画像200に対する動体検出の精度が向上する。
なお、上記の例では、動体検出の感度を調整する際に、調整パラメータα及び登録判定期間の両方を調整したが、調整パラメータα及び登録判定期間のどちらか一方だけを調整しても良い。つまり、動体検出の感度を調整する際には、調整パラメータα及び登録判定期間の少なくとも一方を調整すれば良い。
また、動体検出部31は、上記の式(3)で示される動体判定式の代わりに、以下の式(5)で示される動体判定式を使用しても良い。
ここで、式(5)中のk’は調整パラメータである。式(5)に示される動体判定式が使用される場合には、パラメータ調整部330は、調整パラメータαの代わりに調整パラメータk’を調整することによって動体検出の感度を調整する。調整パラメータk’が大きくなると、式(5)に示される動体判定式を満たしにくくなることから、動体検出の感度は低下する。一方で、調整パラメータk’が小さくなると、式(5)に示される動体判定式を満たしやすくなることから、動体検出の感度は向上する。
また、式(5)を以下の式(6)に書き直すことによって、調整パラメータk’はしきい値k’として見ることができる。式(6)の左辺に示される評価値がしきい値k’以上であれば、注目画像ブロックは動体画像であると判定される。一方で、当該評価値がしきい値k’よりも小さければ、注目画像ブロックは動体画像ではないと判定される。
<領域特定処理>
次にステップs132の領域特定処理について詳細に説明する。本実施の形態では、平均動き量、動き量ばらつき度及び動き方向ばらつき度の3種類の評価値に基づいて、撮像領域10において、第1動き領域と、第2動き領域と、ノイズ領域と、背景領域とが特定される。
特定部32では、評価値取得部321が、Nフレーム目から(N−M)フレーム目の動きベクトルのうちの複数の動きベクトルが対応付けられている各撮像ブロックについて、当該撮像ブロックに対応付けられている複数の動きベクトルに基づいて、当該撮像ブロックでの動体についての平均動き量、動き量ばらつき度及び動き方向ばらつき度を求める。以後、Nフレーム目から(N−M)フレーム目の動きベクトルのうちの複数の動きベクトルが対応付けられている撮像ブロックを「対象撮像ブロック」と呼ぶことがある。
対象撮像ブロックでの動体の平均動き量は、対象撮像ブロックにおいて動体がどの程度の量、動くかを示している。また、対象撮像ブロックでの動体の動き量ばらつき度は、対象撮像ブロックにおいて動体の動き量がどの程度ばらつくのかを示している。つまり、対象撮像ブロックでの動体の動き量ばらつき度は、対象撮像ブロックにおいて動体が動く量のばらつきの度合いを示している。そして、対象撮像ブロックでの動体の動き方向ばらつき度は、対象撮像ブロックにおいて動体の動き方向(動体が動く方向)がどの程度ばらつくのかを示している。つまり、対象撮像ブロックでの動体の動き方向ばらつき度は、対象撮像ブロックにおいて動体が動く方向のばらつきの度合いを示している。以下に、平均動き量、動き量ばらつき度及び動き方向ばらつき度の算出方法の例について説明する。
<平均動き量の算出方法>
評価値取得部321は、対象撮像ブロックに対応付けられている複数の動きベクトルの大きさの平均値を算出し、当該平均値を平均動き量とする。動きベクトルの始点及び終点の座標がそれぞれ(0,0)及び(5,3)であるとすると、当該動きベクトルの大きさVは、以下の式(7)で表される。
評価値取得部321は、撮像領域10での各対象撮像ブロックについて平均動き量を算出する。
<動き量ばらつき度の算出方法>
評価値取得部321は、対象撮像ブロックに対応付けられている複数の動きベクトルのそれぞれについて、当該動きベクトルの大きさを求めて、当該大きさを動体の動き量とする。そして、評価値取得部321は、対象撮像ブロックについて算出した複数の動き量の分布を示す動き量ヒストグラムを生成する。
評価値取得部321は、動き量ヒストグラムを生成する際には、零から、求めた複数の動き量の最大値までの範囲を複数の部分範囲に区分して、各部分範囲を動きヒストグラムの階級とする。評価値取得部321は、複数の階級のそれぞれについて、当該階級に属する動き量を有する動きベクトルの数を求めて、当該数を当該階級の度数(頻度)とする。
図18は対象撮像ブロックについて求められた動き量ヒストグラムの一例を示す図である。図18の例では、零から、複数の動き量の最大値MAXまでの範囲が10個の部分範囲に区分されており、各部分範囲が階級とされている。
評価値取得部321は、対象撮像ブロックについての動き量ヒストグラムを求めると、各階級について、当該階級の度数を、対象撮像ブロックに対応付けられている複数の動きベクトルの総数で割って得られた値を、当該階級の動き量を有する動きベクトルについての出現確率Pとする。そして、評価値取得部321は、動き量ヒストグラムの各階級について求めた出現確率Pを用いて、以下の式(8)で示される当該動き量ヒストグラムのエントロピーHを求める。
ここで、式(8)中のLは、動き量ヒストグラムの複数の階級の総数を示している。動き量ヒストグラムの複数の階級には、1番からL番までの番号が付与されており、Piはi番目の階級についての出現確率Pを意味している。
動き量ヒストグラムのエントロピーHは、動き量のばらつきの度合いを示していることから、評価値取得部321は、対象撮像ブロックについて求めた動き量ヒストグラムのエントロピーHを、対象撮像ブロックについての動き量ばらつき度として使用する。
このようにして、評価値取得部321は、撮像領域10での各対象撮像ブロックについて動き量ばらつき度を求める。
<動き方向ばらつき度の算出方法>
動き方向ばらつき度については、動き量ばらつき度と同様にして求めることができる。まず、評価値取得部321は、対象撮像ブロックに対応付けられている複数の動きベクトルのそれぞれについて、当該動きベクトルが向く方向を求めて、当該方向を動体の動き方向とする。そして、評価値取得部321は、対象撮像ブロックについて求めた複数の動き方向の分布を示す動き方向ヒストグラムを生成する。
評価値取得部321は、動き方向ヒストグラムを生成する際には、0°〜360°の範囲を例えば30°ごとに区分し、得られた12個の部分範囲を動き方向ヒストグラムの階級とする。評価値取得部321は、複数の階級のそれぞれについて、当該階級に属する動き方向に対応する動きベクトルの数を求めて、当該数を当該階級の度数とする。図19は対象撮像ブロックについて求められた動き方向ヒストグラムの一例を示す図である。
評価値取得部321は、対象撮像ブロックについての動き方向ヒストグラムを求めると、各階級について、当該階級の度数を、対象撮像ブロックに対応付けられている複数の動きベクトルの総数で割って得られた値を、当該階級の動き方向に対応する動きベクトルについての出現確率Pとする。そして、評価値取得部321は、動き方向ヒストグラムの各階級について求めた出現確率Pと、上記の式(8)とを用いて、当該動き方向ヒストグラムのエントロピーを求める。なお、ここでは、式(8)中のLは、動き方向ヒストグラムの複数の階級の総数(本例では12個)を示す。動き方向ヒストグラムの複数の階級にも、1番からL番までの番号が付与されており、Piはi番目の階級についての出現確率Pを意味している。
動き方向ヒストグラムのエントロピーは、動き方向のばらつきの度合いを示していることから、評価値取得部321は、対象撮像ブロックについての求めた動き方向ヒストグラムのエントロピーを、対象撮像ブロックについての動き方向ばらつき度として使用する。
このようにして、評価値取得部321は、撮像領域10での各対象撮像ブロックについて動き方向ばらつき度を求める。
以上のようにして、評価値取得部321が、撮像領域10での各対象撮像ブロックについて、平均動き量、動き量ばらつき度及び動き方向ばらつき度を求めると、領域特定部322は、撮像領域10での各対象撮像ブロックについて、当該対象撮像ブロックがどのような領域であるかを特定する。図20は、第1動き領域、第2動き領域、ノイズ領域及び背景領域と、平均動き量、動き量ばらつき度及び動き方向ばらつき度との関係を示す図である。
本実施の形態では、平均動き量に対して、2段階のしきいth11,th12(th11<th12)が準備されている。また、動き量ばらつき度に対して、2段階のしきいth21,th22(th21<th22)が準備されている。そして、動き方向ばらつき度に対して、2段階のしきいth31,th32(th31<th32)が準備されている。
領域特定部322は、対象撮像ブロックについて、平均動き量がしきい値th11以下であって、動き量ばらつき度がしきい値th21以下であって、動き方向ばらつき度がしきい値th31以下である場合には、対象撮像ブロックが背景領域であると判定する。つまり、領域特定部322は、対象撮像ブロックについて、平均動き量、動き量ばらつき度及び動き方向ばらつき度のすべてがかなり小さい場合には、対象撮像ブロックが、状態がほとんど変化しない背景領域であると判定する。
領域特定部322は、対象撮像ブロックについて、平均動き量がしきい値th11よりも大きくかつしきい値th12以下であって、動き量ばらつき度がしきい値th21よりも大きくかつしきい値th22以下であって、動き方向ばらつき度がしきい値th31よりも大きくかつしきい値th32以下である場合には、対象撮像ブロックが第1動き領域であると判定する。つまり、領域特定部322は、対象撮像ブロックについて、平均動き量、動き量ばらつき度及び動き方向ばらつき度のすべてがある程度小さい場合には、対象撮像ブロックが、動体が動く領域であってかつ動体の動き量が小さい第1動き領域であると判定する。
領域特定部322は、対象撮像ブロックについて、平均動き量がしきい値th12よりも大きく、動き量ばらつき度がしきい値th21よりも大きくかつしきい値th22以下であって、動き方向ばらつき度がしきい値th31よりも大きくかつしきい値th32以下である場合には、対象撮像ブロックが第2動き領域であると判定する。つまり、領域特定部322は、対象撮像ブロックについて、平均動き量が大きく、動き量ばらつき度及び動き方向ばらつき度のそれぞれがある程度小さい場合には、対象撮像ブロックが、動体が動く領域であってかつ動体の動き量が大きい第2動き領域であると判定する。
領域特定部322は、対象撮像ブロックについて、動き量ばらつき度がしきい値th22よりも大きく、動き方向ばらつき度がしきい値th32よりも大きい場合には、対象撮像ブロックがノイズ領域であると判定する。つまり、領域特定部322は、対象撮像ブロックについて、平均動き量の大きさにかかわらず、動き量ばらつき度及び動き方向ばらつき度のそれぞれが大きい場合には、対象撮像ブロックが、状態が不規則に変化するノイズ領域であると判定する。
なお、領域特定部322は、対象撮像ブロックが、第1動き領域、第2動き領域、ノイズ領域及び背景領域のいずれにも該当しない場合には、対象撮像ブロックを不明領域とする。
領域特定部322は、このようにして、撮像領域10での各対象撮像ブロックについて、当該対象撮像ブロックがどのような領域であるかを特定する。領域特定部322において、撮像領域10での各対象撮像ブロックがどのような領域であるかが特定されると、ステップs132の領域判定処理が終了し、その後、上述のステップs133において、特定された領域ごとに個別に検出感度が調整される。
このように、本実施の形態では、撮像領域10での複数の対象撮像ブロックについての平均動き量、動き量ばらつき度及び動き方向ばらつき度に基づいて、撮像領域10において、第1動き領域、第2動き領域、ノイズ領域及び背景領域が特定されていることから、第1動き領域、第2動き領域、ノイズ領域及び背景領域を精度良く特定することができる。よって、動体検出の検出感度を適切に設定することができ、その結果、動体検出の検出精度が向上する。特に、本実施の形態では、状態が不規則に変化するノイズ領域を精度良く特定することができることから、撮像領域10において、カーテンの揺れ、あるいは表示装置の画面に映る映像の変化などが生じる場合であっても、そのような局所的なノイズの影響を受けることなく動体を適切に検出することができる。
本実施の形態では、動き量ばらつき度及び動き方向ばらつき度が使用されているが、動き量ばらつき度及び動き方向ばらつき度のどちらか一方だけが使用されても良い。つまり、平均動き量と、動き量ばらつき度及び動き方向ばらつき度の少なくとも一方とを用いて、撮像領域10において、第1動き領域、第2動き領域、ノイズ領域及び背景領域を特定しても良い。本実施の形態のように、動き量ばらつき度及び動き方向ばらつき度の両方が使用される場合には、第1動き領域、第2動き領域、ノイズ領域及び背景領域を精度良く特定することができる。
また、撮像領域10において、ノイズ領域は必ずしも特定しなくても良く、背景領域は必ずしも特定しなくても良い。つまり、撮像領域10において、第1及び第2動き領域だけを特定しても良いし、第1動き領域、第2動き領域及びノイズ領域だけを特定しても良いし、第1動き領域、第2動き領域及び背景領域だけを特定しても良い。平均動き量だけでも第1動き領域、第2動き領域及び背景領域をある程度は特定することができることから、撮像領域10において、第1及び第2動き領域だけが特定される場合、第1動き領域、第2動き領域及び背景領域だけが特定される場合には、動き量ばらつき度及び動き方向ばらつき度は使用されなくても良い。
<各種変形例>
<第1変形例>
上記の例のように、動き方向ヒストグラムが生成される際に、0°〜360°の範囲が複数の部分範囲に区分され、各部分範囲を動き方向ヒストグラムの階級とされる場合には、例えば、30°の方向を向く動きベクトルと、210°の方向を向く動きベクトルとは区別されることになる。したがって、人が通る通路のように、撮像領域10における、動体が直線的に往復するような領域についての動き方向ばらつき度は大きくなってしまう。その結果、撮像環境によっては、撮像領域10において、動体が動く第1及び第2動き領域が特定しにくくなる可能性がある。
そこで、本変形例では、0°〜180°の範囲を複数の部分範囲に区分し(例えば30°ごとに区分し)、各部分範囲を動き方向ヒストグラムの階級とする。そして、以下の式(9)を使用して、動きベクトルから動体の動き方向MDを求める。
式(9)に示されるように、動きベクトルの方向VDが0°以上180°以下であれば、当該動きベクトルに対応する動体の動き方向は、当該動きベクトルの方向VDと一致する。一方で、動きベクトルの方向VDが180°よりも大きく360°未満であれば、当該動きベクトルに対応する動体の動き方向は、当該動きベクトルの方向VDから180°を差し引いて得られる値となる。これにより、動体が直線的に往復するような領域についての動き方向ばらつき度が大きくなることを抑制することができる。よって、第1及び第2動き領域が特定しやすくなる。
<第2変形例>
上記の例では、動き方向ヒストグラムのエントロピーが動き方向ばらつき度とされていたが、他の方法で動き方向ばらつき度が求められても良い。以下に、動き方向ばらつき度の他の求め方について説明する。
評価値取得部321は、まず、対象撮像ブロックに対応付けられている複数の動きベクトル(ただし、最も前に求められた動きベクトルを除く)のそれぞれを第1動きベクトルとする。そして、評価値取得部321は、各第1動きベクトルについて、対象撮像ブロックに対応付けられている複数の動きベクトルに含まれる、当該第1動きベクトルよりも前であって直近で求められた動きベクトルを、当該第1動きベクトルと対を成す第2動きベクトルとする。これにより、第1動きベクトルと第2動きベクトルとの組が複数組得られる。評価値取得部321は、第1及び第2動きベクトルの各組について、第1動きベクトルと、それと対を成す第2動きベクトルとのコサイン類似度Zを求める。第1動きベクトルをz1とし、それと対を成す第2動きベクトルをz2とすると、それらのコサイン類似度Zは以下の式(10)を用いて求めることができる。なお、式(10)中のθは、第1動きベクトルz1と第2動きベクトルz2との成す角度を示している。
評価値取得部321は、第1及び第2動きベクトルの各組について、第1動きベクトルと、それと対を成す第2動きベクトルとのコサイン類似度Zを求めると、求めた複数のコサイン類似度Zの平均値を求める。そして、評価値取得部321は、求めた平均値を動き方向ばらつき度とする。
このように、コサイン類似度Zの平均値を動き方向ばらつき度として採用する場合には、動き方向ヒストグラムのエントロピーを動き方向ばらつき度として採用する場合よりも、動き方向ばらつき度を求める際の処理量(演算量)を低減することができる。
ただし、コサイン類似度Zの算出には、互いに近いタイミングで求められた2つの動きベクトルが使用されることから、コサイン類似度Zの平均値を動き方向ばらつき度として採用した場合には、動きベクトルの角度が徐々に変化して、動体の動き方向がばらつくような撮像環境においては、動き方向ばらつき度は小さい値となってしまう。したがって、このような撮像環境においては、撮像領域10においてノイズ領域が特定されにくくなる。動き方向ばらつき度として、コサイン類似度Zの平均値を採用するのか、動き方向ヒストグラムのエントロピーを採用するのかについては、動体検出について要求される精度と、許容される処理量とに基づいて適宜決定される。
<第3変形例>
上記の例では、Nフレーム目の入力画像200の動体画像領域600と、当該動体画像領域600と対応付けられた、(N−1)フレーム目の入力画像200の動体画像領域610とから求められたNフレーム目の動きベクトル620が、当該動体画像領域600を構成する複数の動体画像ブロックにそれぞれ対応する複数の撮像ブロックに対して対応付けられていたが、撮像ブロックに対しては他の方向で動きベクトルを対応付けても良い。
例えば、動きベクトル取得部320は、Nフレーム目の動体画像領域の動きベクトルを求めると、当該動きベクトルを、当該Nフレーム目の動体画像領域に対応付けられた(N−1)フレーム目の動体画像領域の動きベクトルと対応付ける。(N−1)フレーム目の動体画像領域の動きベクトルは、(N−1)フレーム目の入力画像200に対する処理において、当該(N−1)フレーム目の動体画像領域に対応付けられた(N−2)フレーム目の動体画像領域の動きベクトルと対応付けられている。これより、Nフレーム目の動体画像領域の動きベクトルは、(N−1)フレーム目以前の複数枚の入力画像200にそれぞれ含まれる複数の動体画像領域の動きベクトルと直接的にあるいは間接的に対応付けられる。動きベクトル取得部320は、Nフレーム目の動体画像領域の動きベクトルと、当該動きベクトルに対応付けられている、(N−1)フレーム目から(N−M)フレーム目までの動きベクトルとを、当該動体画像領域を構成する複数の画像ブロックにそれぞれ対応する複数の撮像ブロックに対して対応付ける。動きベクトル取得部320は、この処理を、Nフレーム目の入力画像200に含まれる各動体画像領域について行う。
このようにして動きベクトルを撮像ブロックに対応付ける場合であっても、上記と同様にして、動きベクトルを使用して、撮像領域10において第1動き領域及び第2動き領域等を特定することができる。
<第4変形例>
日照変化あるいは照明変化などによって、撮像領域10での明るさが急に変化すると、入力画像200の画像情報が急に変化する。したがって、入力画像200に含まれる、背景を示す画像が動体画像であると誤って判定されて、当該背景を示す画像の画像情報がキャッシュモデルに登録されることがある。このような場合、背景モデル更新処理で使用される登録判定期間が長いと、キャッシュモデル内の背景の画像情報が長時間背景モデル500に反映されなくなる。その結果、動体検出の精度が劣化する可能性がある。
そこで、本変形例では、判定期間調整部331が、ステップs12とステップs13との間において、登録判定期間の初期値の調整を行う。具体的には、判定期間調整部331は、登録判定期間の初期値を、ステップs11で入力された処理対象の入力画像200中の動体領域(動体検出部31で動体画像であると判定された領域)の割合が大きいほど小さくする。これにより、入力画像200中の動体領域の割合が大きい場合には、ステップs14での背景モデル更新処理で使用される登録判定期間が短くなる。撮像領域10での明るさが急に変化すると、入力画像200全体で画像情報が急に変化することから、入力画像200での動体領域の割合が大きくなる。よって、撮像領域10での明るさが急に変化すると、背景モデル更新処理で使用される登録判定期間が短くなる。その結果、キャッシュモデル内の背景の画像情報をすぐに背景モデルに反映することが可能となり、動体検出の精度が向上する。
本変形例では、登録判定期間の初期値Dtは、入力画像200中の動体領域の割合をRdとすると、以下の式(11)で表される。
ここで式(11)中のaはしきい値であって、Diは定数である。
式(11)で表される、初期値Dtと入力画像200中の動体領域の割合Rdとの関係を図示すると図21のようになる。図21にも示されるように、式(11)によれば、入力画像200中の動体領域の割合Rdが大きくなるほど、登録判定期間の初期値Dtが小さくなる。特に、入力画像200中の動体領域の割合Rdが固定のしきい値aを超えた場合、登録判定期間の初期値が例えば「10」となる。つまり、登録判定期間の初期値は、10フレーム分の入力画像200が入力される期間となる。
なお、しきい値aは、入力画像200の何パーセント以上の領域が動体画像であると判定されると異常と考えられるか(撮像領域10での明るさが急に変化した状態と考えられるか)という基準に基づいて予め設定される値であり、撮像領域10での被写体に応じて設定されることになる。
また、入力画像200中の動体領域の割合Rdは、動体領域の画素数をPd、入力画像200の全画素数をPaとすると、以下の式(12)で表される。
動体領域の画素数Pdは、動体画像である画像ブロックの数に、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は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。