画像処理装置、画像処理方法、及びプログラム
【課題】より適切に被写体を検出することを目的とする。
【解決手段】入力映像の画素または部分領域ごとに特徴量を抽出し、特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶し、入力映像の特徴量と背景モデルとを比較して入力映像に類似する背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新し、類似すると判定した状態の時間情報に基づいて前景領域を判定し、前景領域に対して所定の被写体の検出を行い、検出の結果に基づいて背景モデル中の状態の時間情報を補正することによって課題を解決する。
【解決手段】入力映像の画素または部分領域ごとに特徴量を抽出し、特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶し、入力映像の特徴量と背景モデルとを比較して入力映像に類似する背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新し、類似すると判定した状態の時間情報に基づいて前景領域を判定し、前景領域に対して所定の被写体の検出を行い、検出の結果に基づいて背景モデル中の状態の時間情報を補正することによって課題を解決する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、カメラで撮影された画像から物体を検出する次のような技術が開示されている。まず、背景差分法(背景差分)によって移動物体を検出する方法がある。背景差分では、固定したカメラにおいて、被写体がいない背景が予め撮影され、その画像の特徴量が基準モデルとして記憶される。その後、カメラから入力された画像中の特徴量と基準モデル中の特徴量との差分が求められ、異なる領域が前景(移動物体)として検出される。
また、画像から顔、人などの特定の被写体を検出する方法もある。例えば、人体を検出する技術が開示されている(特許文献1参照。)。この技術では、所定の大きさの検出ウィンドウが入力画像上で走査され、検出ウィンドウ内の画像が切り出されたパターン画像に対して、被写体であるか否かの判別(2クラス判別)が行われる。
【0003】
この判別では、アダブーストを使って多くの弱判別器を有効に組み合わせて判別器を構成し、判別の精度を向上させる。また、この判別器を直列に繋ぎ、カスケード型の検出器を構成するようにしている。弱判別器は、HoG(Histogram of oriented gradients)特徴量で構成されている。そして、カスケード型の検出器は、まず前段の単純な判別器を使って明らかに被写体でないパターンの候補をその場で除去する。それ以外の候補に対してのみ、より高い識別性能を持つ後段の複雑な判別器を使って被写体かどうかの判別が行われる。
ここで、背景差分によって求められた移動物体の領域についてのみ、被写体(人物)であるかどうかの認識を行う技術が開示されている(特許文献2参照。)。一般的に、被写体の検出は、検出ウィンドウを画像中で走査し、毎回、複数の判別器を適用するために処理コストが非常に高くなる。したがって、特許文献1に開示された技術のように、背景差分で検知された移動物体の領域に対してのみ、被写体の検出を行うことで、画像内の全領域に対して行うよりも、全体の処理コストを削減することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2007/0237387号明細書
【特許文献2】特開2002−74371号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、被写体(人物)が存在する状態で背景差分が開始されると、初期化時に人物が存在する領域が背景モデルとして記憶されてしまう。したがって、その後、人物が移動し、隠れていた真の背景が表れると、背景モデルとの差分が生じるので、前景の領域であると判定されることになる。
特許文献1に開示された技術のように、背景差分によって被写体の検出の探索範囲の絞り込みを行うとしても、このような場合には前景の領域が広くなってしまう。つまり、被写体の検出の探索範囲の絞り込みが適切に行えず、例えば結果として高速な被写体の検知ができなくなってしまう。
【0006】
本発明はこのような問題点に鑑みなされたもので、より適切に被写体を検出することを目的とする。
【課題を解決するための手段】
【0007】
そこで、本発明に係る画像処理装置は、入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出手段と、前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶手段と、前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定手段と、前記入力状態判定手段で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定手段と、前記前景領域に対して所定の被写体の検出を行う被写体検出手段と、前記被写体検出手段の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新手段と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、より適切に被写体を検出することができる。
【図面の簡単な説明】
【0009】
【図1】画像処理装置のハードウェア構成の一例を示す図である。
【図2】画像処理装置の機能構成の一例を示す図である。
【図3】画像処理に係るフローチャートの一例を示す図である。
【図4】差分算出処理に係るフローチャートの一例を示す図である。
【図5】背景モデルの一例を示す図である。
【図6】最小差分値情報の一例を示す図である。
【図7】入力状態判定処理に係るフローチャートの一例を示す図である。
【図8】入力状態情報の一例を示す図である。
【図9】前景背景判定処理に係るフローチャートの一例を示す図である。
【図10】前景フラグ情報の一例を示す図である。
【図11】前景領域情報の一例を示す図である。
【図12】被写体検出処理に係るフローチャートの一例を示す図である。
【図13】物体領域情報の一例を示す図である。
【図14】更新処理に係るフローチャートの一例を示す図である。
【図15】論理積領域の一例を示す図である。
【図16】画像処理装置の機能構成の一例を示す図である。
【図17】被写体確信度分布を説明する図である。
【図18】被写体確信度分布を説明する図である。
【図19】算出処理に係るフローチャートの一例を示す図である。
【図20】被写体確信度情報の一例を示す図である。
【図21】累積スコア情報の一例を示す図である。
【図22】画像処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【0011】
<第1の実施形態>
本実施形態では、動画像から、人物、動物、車両、物体などの特定の被写体又は被写体の一部を検出する画像処理装置(ネットワークカメラなどのデジタル画像機器)、画像処理ソフトウェア、画像処理方法などに適用可能な技術に関して説明する。
図1は、本実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。CPU101は、ROM102、RAM103等に格納されたプログラムに従って命令を実行する。ROM102は、不揮発性メモリであり、後述のフローチャートに係るプログラム、その他の制御に必要なプログラム、データなどを格納する。RAM103は、揮発性メモリであり、フレーム画像データ(フレーム画像)、パターン判別の結果などの一時的なデータを記憶する。
【0012】
2次記憶装置104は、ハードディスクドライブ、フラッシュメモリなどの書き換え可能な2次記憶装置であり、画像情報、画像処理プログラム、各種の設定情報などを記憶する。これらの情報は、RAM103に転送され、CPU101によるプログラムの実行などに利用される。
画像入力装置105は、デジタルビデオカメラ、ネットワークカメラ、赤外線カメラなどであり、画像を入力するものである。入力装置106は、キーボード、マウスなどであり、ユーザからの入力を可能とするものである。表示装置107は、ブラウン管CRT、液晶ディスプレイなどであり、ユーザに対して処理結果などを表示するものである。
ネットワークI/F108は、インターネット、イントラネットなどのネットワークと接続を行うモデム、LANなどである。バス109は、これらのデバイス(101〜108)を接続して相互にデータの入出力を行う。なお、本画像処理装置では、CPU101によりプログラムが実行されることにより実装されるオペレーティングシステムの上で動作するアプリケーションにより、画像処理装置の機能、後述するフローチャートに係る処理の全部または一部が実現される。
【0013】
図2は、画像処理装置の機能構成の一例を示す図である。映像入力部201は、画像入力装置105等により実現され、映像を入力するものである。特徴量抽出部202は、入力された映像(入力映像)より特徴量を抽出するものである。
差分算出部203は、背景モデル記憶部204より読み出した背景モデルと入力映像との差分を求めるものである。背景モデル記憶部204は、RAM103、2次記憶装置104等により実現され、入力映像内の各位置の状態を画像特徴量で代表させた背景モデルとして記憶するものである。なお、背景モデルの詳細については後述する。入力状態判定部205は、差分算出部203の結果に基づいて、入力映像に近い背景モデル中の状態を判定するものである。
前景背景判定部206は、入力状態判定部205の結果に基づいて、入力映像中の各位置が前景であるか背景であるかを判定するものである。被写体検出部207は、映像入力部201からの入力映像の中で、前景背景判定部206にて前景であると判定された領域から、特定の被写体(本実施例では人体とする。)の領域を検出するものである。
背景モデル更新部208は、入力状態判定部205と被写体検出部207との結果に基づいて、背景モデル記憶部204に記憶されている背景モデルの更新を行うものである。
【0014】
次に、本画像処理装置における主な画像処理の流れについて図3を用いて説明する。図3は、画像処理に係るフローチャートの一例を示す図である。
まず、映像入力部201は、撮像などが行われることにより映像が入力されると、所定の時間ごとにフレーム画像を取得する(S301)。次に、特徴量抽出部202は、取得されたフレーム画像から特徴量を抽出し、差分算出部203は、背景モデル記憶部204より背景モデル中の特徴量を読み出し、フレーム画像中の特徴量との差分を算出する(S302)。
次に、入力状態判定部205は、差分算出部203の結果に基づいて、フレーム画像に近い背景モデル中の状態を求める(S303)。次に、前景背景判定部206は、映像中の領域を部分領域毎(前景領域と背景領域と)に分ける(S304)。
【0015】
次に、被写体検出部207は、前景背景判定部206によって求められた前景領域に対して被写体の検出を行う(S305)。次に、制御部(図示せず)は、被写体検出部207で検出された物体の情報(後述の物体領域情報など)を表示装置107などに出力する(S306)。物体の情報は、入力された映像に矩形として重ね描きされる表示などの用途に使用される。
次に、背景モデル更新部208は、入力状態判定部205の結果と被写体検出部207の結果とを背景モデルに反映し、背景モデルの更新を行う(S307)。次に、制御部は、電源OFFなどによるユーザからの終了指示の判定を行う(S308)。このとき、制御部は、終了指示を受け付けたと判断した場合、処理を終了する。他方、制御部が終了指示を受け付けていないと判断した場合、S301の処理が行われる。即ち、終了指示が行われるまで、S301からS307までの処理が繰り返えされる。
【0016】
次に、S302の処理(差分算出処理)の詳細について図4を用いて説明する。図4は、差分算出処理に係るフローチャートの一例を示す図である。
まず、特徴量抽出部202は、映像入力部201で取得されたフレーム画像より各位置の状態を表す値として画像特徴量を抽出する(S401)。画像特徴量の例としては、輝度、色、エッジなどが挙げられるが、特にこれらに限定されるものではない。また、画素ごとの特徴量であっても、部分領域ごとの特徴量であってもよい。部分領域ごとの特徴量の例としては、8×8画素ブロック内の画素の平均輝度、DCT係数などが挙げられる。DCT係数とは、離散コサイン変換(Discrete Cosine Transform)した結果である。
【0017】
また、フレーム画像がJPEG形式で圧縮符号化されている場合は、既に画像圧縮時に特徴量が抽出されているのと同じことになる。したがって、この場合は、JPEG形式のフレーム画像よりDCT係数を直接取り出し、これを特徴量として使用するようにしてもよい。
本実施形態では、画素ごとの輝度を採用した場合を例に挙げて説明する。なお、フレーム画像の左上の画素を開始点とし、以降、左より右へ、行ごとに下へ(以下ではラスタスキャン順と適宜称する。)処理の対象が移動し、以降の処理が行われるものとする。
【0018】
次に、差分算出部203は、背景モデル記憶部204に記憶されている背景モデルより、注目位置(処理の対象の画素の位置)の位置毎背景モデル情報を読み出し、RAM103に一時記憶する(S402)。
ここで、背景モデル記憶部204に記憶されている背景モデルについて図5を用いて説明する。図5は、背景モデルの一例を示す図である。背景モデルは、フレーム画像中の各位置の状態を画像特徴量で現したものである。背景モデルは、背景モデル管理情報と位置毎背景モデル情報との2種類の情報から構成されている。
背景モデル管理情報は、位置情報と各位置における位置毎背景モデル情報へのポインタとから構成される。位置情報は、フレーム画像の画素の位置をXY座標で示した値であってもいいし、8×8画素などのブロックの位置を、ラスタスキャン順に振った番号であってもよい。なお、本実施形態では、フレーム画像の画素の位置をXY座標で示した値であるものとして説明する。
【0019】
位置毎背景モデル情報は、各位置に対応する状態を複数保持する。位置毎背景モデル情報の複数の状態によれば、新たな静止物体(花瓶など)の出現などにより時間と共に変化する背景に対応することができる。各状態には、状態の番号(状態番号)と、状態を代表する特徴量(画像特徴量)、作成時刻、出現時間が保持されている。
状態番号とは、各状態を識別するための番号であり、1番から順に発番されるものである。作成時刻とは、その状態が始めて背景モデル内に作成された時刻であり、時間、フレーム番号で表現される。本実施形態では、フレーム番号で表現するものとする。出現時間は、その状態が作成されてから現在までに入力映像中に類似した状態が出現した時間、フレーム数などである。本実施形態では、フレーム数で表現するものとする。
【0020】
そして、フレーム画像内で同じ位置における複数の状態は、背景モデル管理情報のポインタで参照された先に連続して格納される。図5の例では、座標(0,0)の位置については、1200番地に状態番号「1」の状態が格納され、続いて1201番地に状態番号「2」の状態が格納されている。
例えば、注目位置に対応する全ての状態の読み出しは、差分算出部203が、背景モデル管理情報から注目位置とその次の位置とのポインタを参照し、注目位置のアドレスから次の位置の1つ手前のアドレスまでを読み出すことで実現される。
【0021】
S402の説明に戻る。S402では、差分算出部203は、背景モデル管理情報より注目位置の位置毎背景モデル情報へのポインタを参照し、当該注目位置の全ての状態の位置毎背景モデル情報を読み出す。
図5の例で、初めの位置である場合、差分算出部203は、次の2つの状態の位置毎背景モデル情報を読み出す。1つ目の状態の位置毎背景モデル情報として、1200番地より、状態番号「1」、特徴量「100」、作成時刻「0」、出現時間「300」が読み出される。また、2つ目の状態の位置毎背景モデル情報として、1201番地より、状態番号「2」、特徴量「230」、作成時刻「101」、出現時間「35」が読み出される。
【0022】
次に、差分算出部203は、S402で読み出した注目位置の位置毎背景モデル情報中より1つの状態の特徴量を読み出す(S403)。そして、差分算出部203は、フレーム画像中の同じ位置の特徴量との差分を算出する(S404)。差分の算出方法として、ここでは2つの特徴量の差の絶対値を用いるが、特にこれに限定されるものではなく、例えば、差を2乗した値であってもよい。そして、差分算出部203は、差分値をRAM103にフレーム画像内の位置、及び差分を算出した状態番号と関連付けて一時記憶する。
次に、差分算出部203は、注目位置で差分を算出していない状態が存在するかどうかを判定する(S405)。このとき、差分算出部203は、存在すると判断した場合、S406の処理を行い、他方、存在しないと判断した場合、S407の処理を行う。S406では、差分算出部203は、処理の対象を次の状態に進め、続いてS403の処理を行う。
【0023】
S407では、差分算出部203は、注目位置について、フレーム画像の特徴量との全ての状態との差分値の中から、最小の値(最小差分値)を求める。次に、差分算出部203は、このときの最小差分値を、対応する状態の状態番号、作成時刻、出現時間、フレーム画像の特徴量、及びフレーム画像内の座標と関連付けて最小差分値情報(図6に一例を示す。)としてRAM103に一時記憶する(S408)。
次に、差分算出部203は、フレーム画像中の全ての画素(座標)について処理を行ったかどうかを判定する(S409)。このとき、行ったと判断した場合、S411の処理が行われ、他方、行っていないと判断された場合、S410の処理が行われる。S410では、差分算出部203は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS401の処理の処理を行う。
【0024】
S411では、差分算出部203は、一時記憶した全画素分の最小差分値情報を入力状態判定部205に対して出力する。
なお、本画像処理装置の開始時(起動時)は、背景モデルが記憶されていないので、差分の算出の際の値として、差分値として取り得る最大値などを設定しておく。これらは、後述するように新規の状態であると判定され、背景モデルとして記憶される。このように、起動時のフレーム画像によって背景モデルの初期化が行われる。
以上が、S302の処理(差分算出処理)の詳細である。
【0025】
次に、S303の処理(入力状態判定処理)の詳細について図7を用いて説明する。図7は、入力状態判定処理に係るフローチャートの一例を示す図である。
まず、入力状態判定部205は、S302の差分算出処理の結果である最小差分値を取得する(S701)。より具体的には、入力状態判定部205は、フレーム画像の左上の画素を開始点とし、以降、ラスタスキャン順に移動しながら1つずつ最小差分値情報(図6)の座標を参照し、最小差分値を取得する。
次に、入力状態判定部205は、注目位置における最小差分値と閾値Aとを比較する(S702)。このとき、入力状態判定部205は、最小差分値のほうが小さい場合、背景モデルに記憶されている状態に類似していると判断し、続いてS703の処理を行う。他方、入力状態判定部205は、最小差分値のほうが大きい場合、背景モデルに記憶されているどの状態とも異なり、新しい状態であると判定し、続いてS704の処理を行う。
【0026】
S703では、入力状態判定部205は、最小差分値情報(図6)中の出現時間をインクリメントする。出現時間は、フレーム数で表現され、類似する状態であるときは、映像中に同じ特徴を持つ状態が出現したとみなすことができるから、出現時間が例えば「1」加算される。
S704では、入力状態判定部205は、新しい状態を意味する特殊な番号(例:0)を状態番号として設定する。なお、状態番号「0」は、背景モデル更新部208により背景モデル更新時に改めて発番される。次に、入力状態判定部205は、現在時刻を本状態が初めて作成された時刻として作成時刻に設定する(S705)。なお、本実施形態では、現在のフレーム番号を用いるが、何時何分何秒といった通常の時刻を用いてもよい。次に、入力状態判定部205は、新しく出現した状態であるので、出現時間を(フレーム数)1とする(S706)。
【0027】
次に、入力状態判定部205は、状態番号、フレーム画像の特徴量、作成時刻、出現時間をフレーム画像内の座標に関連付けて入力状態情報(図8に一例を示す。)としてRAM103に一時記憶する(S707)。
次に、入力状態判定部205は、フレーム画像中の全ての画素(座標)について、処理を行ったかどうかを判定する(S708)。このとき、入力状態判定部205は、行ったと判断した場合、S710の処理を行い、他方、行っていないと判断した場合、S709の処理を行う。S709では、入力状態判定部205は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS701の処理を行う。
【0028】
なお、上述のように、本画像処理装置の開始時のフレーム画像については、差分値が最大値に設定されているので、S702において全て新規の状態と判定される。
S710では、入力状態判定部205は、全画素分の入力状態情報を前景背景判定部206と背景モデル更新部208とに対して出力する。
以上が、S303の処理(入力状態判定処理)の詳細である。
【0029】
次に、S304の処理(前景背景判定処理)の詳細について図9を用いて説明する。図9は、前景背景判定処理に係るフローチャートの一例を示す図である。
まず、前景背景判定部206は、S303の入力状態判定処理の出力である入力状態情報(図8)を取得する(S901)。より具体的には、前景背景判定部206は、フレーム画像の左上の画素を開始点として、ラスタスキャン順に1つずつ参照し、入力状態情報を取得する。
次に、前景背景判定部206は、前景であるかどうかを時間の情報を用いて判断する(S902)。時間の情報としては、出現時間、存在時間(ある状態(特徴)が映像に出現した時刻から現在まで、つまり現在時刻と作成時刻との差分の時間)などが考えられる。即ち、特定の状態に関する時間情報を適宜採用できる。
【0030】
本実施形態では、出現時間を用いるものとし、前景背景判定部206は、閾値Cと比較する。このとき、前景背景判定部206は、出現時間が閾値C以上である場合、十分に長い時間存在した状態であり、背景とみなすことができるので、続いてS903の処理を行う。他方、前景背景判定部206は、出現時間が閾値C未満である場合、背景とみなせるほど長い時間存在した状態ではなく、背景であるとみなすことができないので、続いてS904の処理を行う。
S903では、前景背景判定部206は、処理の対象の画素(現在の画素)が背景であると判定する。例えば、前景背景判定部206は、前景フラグを、背景を意味する「0」にする。S904では、前景背景判定部206は、処理の対象の画素が前景であると判定する。例えば、前景背景判定部206は、前景フラグを、前景を意味する「1」にする。
【0031】
次に、前景背景判定部206は、前景フラグをフレーム画像中の現在の画素の座標と関連付けて前景フラグ情報(図10に一例を示す。)として一時記憶する(S905)。
次に、前景背景判定部206は、フレーム画像中の全ての画素(位置)について、処理を行ったかどうかを判定する(S906)。このとき、前景背景判定部206は、行っていると判断した場合、S908の処理を行い、他方、行っていないと判断した場合、S907の処理を行う。S907では、前景背景判定部206は、次の画素へ処理の対象を進め、続いてS901の処理を行う。なお、次に説明するS908からS919までの処理では、前景背景判定部206は、連続する前景の画素を統合して前景領域を求める。
【0032】
S908では、前景背景判定部206は、探索済みフラグ情報を初期化する。より詳細に説明すると、本実施形態では、前景領域として前景の画素を統合するために、前景フラグ=1の画素を探索したかどうかを示す探索フラグ情報を用意する。これは、前景フラグ情報と同様にフレーム画像中の座標に探索フラグを関連付けたものである。前景背景判定部206は、探索フラグ=1を探索済みであると解釈するので、全ての座標に対応する探索フラグを「0」にする初期化を行う。
次に、前景背景判定部206は、フレーム画像の左上の画素を開始点として、RAM103中の前景フラグ情報(図10)の座標を参照し、前景フラグを取得する(S909)。
【0033】
次に、前景背景判定部206は、現在の座標の前景フラグが「1」であるかどうかをチェックする(S910)。このとき、「0」であると判断した場合、処理の対象の画素が背景であるのでS911の処理を行い、他方、「1」であると判断した場合、処理の対象の画素が前景であるのでS912の処理を行う。
S911では、前景背景判定部206は、現在の画素から、ラスタスキャン順で次の画素に処理の対象を進め、続いてS909の処理を行う。
S912では、処理の対象の画素が前景であるので、現在の座標の探索済みフラグが「0」であるかどうか、つまり未探索であるかどうかをチェックする(S912)。このとき、前景背景判定部206は、「1」であると判断した場合、探索済みであるのでS911の処理を行い、他方、「0」であると判断した場合、未探索であるのでS913の処理を行う。
【0034】
S913では、前景背景判定部206は、現在の座標を一時記憶する。そして、前景背景判定部206は、探索を行ったので、探索済みフラグを1にする(S914)。次に、前景背景判定部206は、連続する前景の画素を探索するために近傍の前景フラグを取得する(S915)。
次に、前景背景判定部206は、近傍の前景フラグが「1」であるかをチェックする(S916)。このとき、前景背景判定部206は、「1」である場合、連続する画素であると判断し、S917の処理を行い、他方、「0」である場合、S918の処理を行う。S917では、前景背景判定部206は、探索済みフラグが「0」であるかを判定する。このとき、前景背景判定部206は、「0」である場合、未探索であると判断し、更に近傍を探索するため、S913の処理を行う。他方、前景背景判定部206は、「1」である場合、S918の処理を行う。
【0035】
そして、S917で近傍が全て探索済みか(探索済みフラグ=1)、S916で近傍が全て背景(前景フラグ=0)となるまで、前景背景判定部206は、S913からS917までの処理を繰り返す。
S918では、即ち、S913からS917までの処理で連続する前景の画素が探索された場合、前景背景判定部206は、一時的に記憶されているこれらの画素の座標から外接矩形を求め、右下の座標と左上の座標とをRAM103に一時記憶する(S918)。
次に、前景背景判定部206は、フレーム画像中の全画素について、S909からS918までの処理を行ったかどうかを判定する(S919)。このとき、前景背景判定部206は、行っていないと判断した場合、S911の処理を行い、他方、行ったと判断した場合、S920の処理を行う。
【0036】
S920では、前景背景判定部206は、前景領域情報を出力する。より具体的には、前景背景判定部206は、全画素について、S909からS918までの処理を行っていると判断した場合、一時保存された前景領域の右下の座標と左上の座標との数をカウントする。そして、前景背景判定部206は、前景領域数とともに、前景領域の右下の座標及び左上の座標、並びに平均出現時間を、前景領域情報(図11に一例を示す。)として被写体検出部207に対して出力する。
図11は、前景領域情報の一例であり、前景領域座標データ先頭ポインタは、各前景領域(矩形領域)の左上の座標及び右下の座標にアクセスするためのポインタである。図11の例では、前景領域は2つ存在し、前景領域座標データ先頭ポインタの指し示す1400番地より1401番地まで順に、2つ分の矩形領域の左上の座標及び右下の座標を読み出すことができる。
以上が、S304の処理(前景背景判定処理)の詳細である。
【0037】
次に、S305の処理(前景領域からの被写体検出処理)の詳細について図12を用いて説明する。図12は、被写体検出処理に係るフローチャートの一例を示す図である。
まず、被写体検出部207は、映像入力部201よりフレーム画像を取得する(S1201)。次に、S304の前景背景判定処理の結果である前景領域情報(図11)から1つの前景領域の外接矩形の座標を取得する(S1202)。次に、被写体検出部207は、特許文献1などの方法により、取得した前景領域に対してのみ検出ウィンドウを走査し、被写体の検出を行う(S1203)。
次に、被写体検出部207は、被写体が検出されたかどうかを判定する(S1204)。このとき、被写体検出部207は、検出したと判断した場合、S1205の処理を行い、他方、検出していないと判断した場合、S1206の処理を行う。S1205では、被写体検出部207は、被写体フラグ=1とし、続いてS1207の処理を行う。S1206では、被写体検出部207は、被写体フラグ=0とし、続いてS1207の処理を行う。
【0038】
S1207では、被写体検出部207は、前景領域情報(図11)に含まれる全ての前景領域について、処理を行ったかを判定する。このとき、被写体検出部207は、行ったと判断した場合、S1209の処理を行い、他方、行っていないと判断した場合、S1208の処理を行う。S1208では、被写体検出部207は、次の前景領域へ処理の対象を進め、続いてS1202の処理を行う。
S1209では、即ち、全ての前景領域についてS1202からS1206までの処理を行っている場合、被写体検出部207は、前景領域情報に被写体フラグを付与したものを物体領域情報(図13に一例を示す。)として、本物体検出部の外部(例えば制御部)と背景モデル更新部208とに対して出力する。
【0039】
図13は、物体領域情報の一例を示す図であり、物体領域座標データ先頭ポインタは、各物体領域(矩形領域)の左上の座標及び右下の座標にアクセスするためのポインタである。図13の例では、物体領域は2つ存在し、物体領域座標データ先頭ポインタの指し示す1600番地より1601番地まで順に、2つ分の矩形領域の左上の座標及び右下の座標、平均出現時間、並びに被写体フラグを読み出すことができる。
以上が、S305の処理(前景領域からの被写体検出処理)の詳細である。
なお、物体領域情報は、次のように利用される。例えば、ユーザが指定した画面内の領域への被写体の侵入を検出する装置は、物体領域情報より被写体フラグ=1の物体領域のみを取得する。そして、当該装置は、物体領域の右下の座標及び左上の座標から、ユーザ指定の範囲に被写体が侵入しているかどうかを判定する。
【0040】
次に、S307の処理(背景モデルの更新処理)の詳細について図14を用いて説明する。図14は、更新処理に係るフローチャートの一例を示す図である。
まず、背景モデル更新部208は、入力状態判定部205の出力である入力状態情報(図8)から、フレーム画像の左上の画素を開始点として、順に一画素分の入力状態情報を、座標を参照して取得する(S1401)。
次に、背景モデル更新部208は、現在の画素の状態が新規であるかどうかをチェックする(S1402)。背景モデル更新部208は、入力状態情報中の状態番号を参照し、「0」である場合、新規であると判断し、「0」以外である場合、背景モデルに存在する既存の状態であると判断する。このとき、背景モデル更新部208は、新規であると判断した場合、S1408の処理を行い、他方、新規でないと判断した場合、S1403の処理を行う。
【0041】
S1403では、背景モデル更新部208は、背景モデル(図5)中の対応する位置毎背景モデル情報を更新する。より具体的には、背景モデル更新部208は、現在の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する。そして、背景モデル更新部208は、読み出しながら前記ポインタを順に進め、入力状態情報から読み出した状態番号と一致する位置毎背景モデル情報を参照する。
次に、背景モデル更新部208は、背景モデル中の特徴量を、入力状態情報中の特徴量で更新する(S1404)。これは、照明変化などによる変化に対応するためである。更新の方法としては、例えば、式(1)を用いる。
μt=(1−α)・μt-1+α・It ・・・(1)
式(1)において、現在のフレームをtとし、1つ前のフレームをt−1とする。μt-1は更新前の特徴量の値、μtは更新後の特徴量の値である。Itは、フレーム画像の特徴量の値である。αは、0から1までの値を持つ重みであり、大きな値であるほど、更新後の値は、入力の値に近くなる。
【0042】
次に、背景モデル更新部208は、被写体の検出の結果である物体領域情報(図13)を参照し、注目する画素が被写体領域に含まれるかどうかをチェックする(S1405)。このとき、背景モデル更新部208は、被写体領域であると判断した場合、S1407の処理を行い、他方、被写体領域でないと判断した場合(注目画素が物体領域であり、かつ、被写体フラグ=0のとき)、S1406の処理を行う。
ここで、被写体領域でないと判断された場合、前景背景判定部206の判定では前景であったものの、実際には背景であった可能性が高いことを示す。
【0043】
したがって、S1406では、背景モデル更新部208は、入力状態情報中の出現時間に固定量を加算するなどして延長し、次回の前景背景判定処理のS902で背景であると判定されるようにする。ここで、延長する量としては、閾値Cまで一度に延長する方法もあるが、被写体検出部207の判定が常に正しいとは限らないので、所定の固定量B分としてもよい。真に背景であった場合、連続して被写体は検出されず、その度に出現時間はBずつ延長され、やがて閾値Cに達してS902で背景であると判定されるようになる。
なお、S902における判定で、存在時間(現在時刻−作成時刻)を用いる場合は、例えば、作成時刻から固定量を引いて、背景モデルに記憶されている以前の時刻にすることで、存在時間を延長する。
【0044】
次に、背景モデル更新部208は、背景モデル中の出現時間を入力状態情報中の出現時間で上書きすることによって更新する(S1407)。
なお、本実施形態では、時間情報として出現時間、存在時間を用いているが、例えば、背景化するまでの時間の閾値Cを、状態を初めて背景モデルに追加したときに時間情報として保持するようにしてもよい。この場合は、S702において、背景モデルに類似する状態が存在すると判定されたときは、S703において、前記時間情報をデクリメントする。したがって、このような場合は、S1405で被写体が検出されていないと判断されたとき、S1406で時間情報を短縮するように時間情報を補正する。
【0045】
ここでは、被写体検出部207で被写体が検出されなかった前景領域のみを対象とし、背景である可能性が高いものとして背景モデルへ反映した。しかしながら、例えば、被写体検出部207が人体を検出する場合、人体に共通した特徴は主に人体の輪郭となるので、人体の周りの背景に相当する画素も含めた領域が検出結果となる。即ち、被写体検出部207で検出された領域に含まれる背景に相当する画素についても、背景モデルへ反映することができれば、背景モデルの精度を更に高めることができる。
そこで、上記を実現する方法として、まず、前景背景判定処理の結果の領域と被写体検出処理の結果の領域との重なりを利用する方法がある。即ち、前景領域と被写体領域との重なり以外は背景であるものとして、背景モデル更新部208において対応する画素の出現時間(存在時間)を延長する。
【0046】
以下では、重なり領域を求める方法の詳細について説明する。
まず、前景背景判定部206は、図9のS901からS905までの処理の終了時に生成される前景フラグ情報(図10)を背景モデル更新部208に対して出力する。背景モデル更新部208では、前景フラグ情報から得られる前景領域と被写体検出部207の出力である物体領域との内、被写体フラグが「1」である被写体領域の論理積領域(図15に一例を示す。)を求める。
【0047】
図15は、論理積領域の一例を示す図である。多角形で示された領域1501は、前景背景判定部206により前景であると判定された前景領域である。矩形で示した領域1502は、被写体検出部207により検出された被写体領域である。縦線で塗りつぶされた領域1503は、重なり領域(論理積領域)となる。
S1405の判定では、注目画素が物体領域であり、かつ、被写体フラグ=0であるとき(被写体領域でなかった場合)、出現時間を延長する対象としていた。これを、注目画素が物体領域であり、かつ、被写体フラグ=1であり、かつ、重なり領域でない場合についても、出現時間を延長する対象とする。これにより、被写体領域に含まれている背景に相当する画素についても背景モデルを補正することができる。
【0048】
また、前景領域と被写体領域との重なり領域を利用する方法では、前景領域が正しく被写体の輪郭を検出できていることが前提となる。したがって、前景領域に被写体の影など、本来背景である領域が含まれてしまうと精度が落ちてしまう。
そこで、他の方法として、被写体検出部207の結果から、画像の位置毎に被写体の一部であると確信できる度合いを示す被写体確信度を求め、これを基に背景モデルを更新する方法を説明する。即ち、被写体確信度の低いところを背景とみなす方法である。そこで、図16に示したように、画像処理装置は、図2の構成に加えて被写体確信度算出部1601を更に有する。
【0049】
次に、被写体確信度の算出処理の詳細について説明する。
被写体確信度の算出方法として、本実施形態では、次の2つの方法を例として説明するが、これらの方法に限定されるものではなく、各画素の被写体確信度を得られる他の方法を採用してもよい。
(1)学習用画像から生成した被写体確信度分布を使用する方法
被写体検出部207を構成する弱判別器を生成するためには、正解画像と非正解画像からなるアダブースト学習(特許文献1参照)のような機械学習が必要である。正解画像としては、人体に共通の特徴(輪郭など)を学習できるように、頭の位置や足の位置を所定のサイズの画像内で揃えた複数の画像が使用される。このことを利用して、検出された領域内でどの位置が最も人体らしいといえるかを、正解画像から推定する方法を説明する。
【0050】
図17の被写体確信度分布を説明する図を用いて詳細を説明する。領域1701は、正解画像の領域全体を示している。境界線1702は、全ての正解画像の濃度勾配を求めた画像を平均した結果に対し、所定の閾値以上の濃度強度を持つ領域の境界を示している。即ち、境界線1702の内部に位置する画素ほど、人体である可能性が高い。そこで、例えば、補助線1703に対応する被写体確信度の分布が、図18のように正規分布を使って与えられるものと仮定する。
図18の横軸は、図17の補助線1703上の位置を示し、縦軸は、被写体確信度を示している。1801は、正規分布に従った曲線(被写体確信度分布)であり、1802は平均、1803、1804は平均から標準偏差分離れた位置を示している。1802の被写体確信度が最大の「100」であるものとする。1802を、1701の中心位置、1803及び1804を補助線1703と境界線1702が接する点に合わせ、被写体確信度分布(1801)を決定する。
このように、被写体(人体)を含む画像から統計的な方法で、領域1701内の全ての位置での画素値として被写体確信度が規定された被写体確信度分布画像を求めることができる。これを予めROM102、2次記憶装置104等に格納しておき、本画像処理装置の起動時にRAM103に読み込こまれ、被写体確信度算出部1601で参照可能な状態にしておく。
【0051】
次に、被写体確信度の算出処理の詳細について図19を用いて説明する。図19は、算出処理に係るフローチャートの一例を示す図である。
まず、被写体確信度算出部1601は、被写体確信度情報(図20に一例を示す。)を初期化する(S1901)。被写体確信度情報とは、フレーム画像の全領域の各座標について被写体確信度が格納されたものである。即ち、被写体確信度算出部1601は、全ての座標に対しての被写体確信度を0にすることで初期化する。
次に、被写体確信度算出部1601は、物体領域情報(図13)より被写体フラグ=1である領域(被写体領域)を1つ取得する(S1902)。
【0052】
ここで、上述の被写体確信度分布画像は、学習時に使用した画像を基に決定されるので、学習に使用された画像のサイズとなる。したがって、検出された被写体のサイズに合わせた拡大縮小処理が必要である。そこで、被写体確信度算出部1601は、被写体確信度分布画像を被写体領域と同じサイズになるように通常の画像の拡大縮小と同様に最近傍法、線形補完などにより拡大または縮小を行う(S1903)。
次に、被写体確信度算出部1601は、被写体確信度情報上の被写体領域に相当する領域の被写体確信度を、サイズが変更された被写体確信度分布画像中の画素値である被写体確信度で更新する(S1904)。より具体的には、被写体確信度算出部1601は、対応する座標において、被写体確信度情報中の被写体確信度と被写体確信度分布画像中の被写体確信度との和をとり、新たな被写体確信度の値とする。
【0053】
次に、被写体確信度算出部1601は、S1904で更新された被写体確信度の値が、値の範囲(0から100)を超えているかどうかをチェックする(S1905)。このとき、被写体確信度算出部1601は、超えていると判断した場合、S1906の処理を行い、他方、超えていないと判断した場合、S1907の処理を行う。
S1906では、被写体確信度算出部1601は、被写体確信度の値を被写体確信度の範囲内に補正する。S1907では、被写体確信度算出部1601は、全ての被写体領域について処理を行ったかどうかを判定する。このとき、被写体確信度算出部1601は、行ったと判断した場合、S1909の処理を行い、他方、行っていないと判断した場合、S1908の処理を行う。S1908では、被写体確信度算出部1601は、次の被写体領域へ処理の対象を進め、続いてS1902の処理を行う。
S1909では、被写体確信度算出部1601は、最終的な被写体確信度情報を背景モデル更新部208に出力する。
【0054】
(2)被写体検出内の弱判別器の累積スコアから推定する方法
被写体検出部207は、各弱判別器の信頼度をat、弱判別器をht(x)(当該弱判別器において被写体であると判別したら+1、非被写体であると判別したら−1の2値を取る関数)としたときに、その累積スコアを式(2)により算出する。
F(x)=Σtatht(x) ・・・(2)
そして、被写体検出部207は、累積スコアF(x)に対する閾値によって、最終的に被写体であるかどうかを判定する。なお、t=1からT個の弱判別器が存在するものとする。また、累積スコアF(x)は、弱判別器がどの程度信頼できるかを示した値atを累積したものであるので、被写体が出力結果に含まれる確率を直接示した値ではない。そこで、累積スコアをsigmoid関数にて変換することによって、被写体が出力結果に含まれる確率P(y=+1|x)に変換できると仮定する。
P(y=+1|x)=1/(1+exp(−w1F(x)−w0)) ・・・(3)
【0055】
sigmoid関数の重みw1、w0は、複数の正解(被写体の位置)がわかっているサンプル画像に対して実際に検出を行い、累積スコアと被写体の検出結果との関係から、最小二乗法などにより求めることができる。
被写体検出部207より被写体を決定する前の各検出ウィンドウの累積スコアを全て、検出ウィンドウの中心位置と関連付けて累積スコア情報(図21に一例を示す。)として出力するようにする。図21は、累積スコア情報の一例を示す図である。座標は、検出ウィンドウの中心位置のフレーム画像内での座標である。なお、背景モデル更新部208は、被写体確信度算出部1601において式(3)で変換された確率を被写体確信度として使用する。また、全ての画素について変換することにより被写体確信度情報を得ることができる。
【0056】
以上のように算出された被写体確信度を背景モデル更新部208は、例えば次のように使用する。
背景モデル更新部208は、S1405の判定で注目する画素が被写体領域に含まるかどうかを判定する代わりに、被写体確信度が所定値F未満であるかどうかを判定する。そして、背景モデル更新部208は、所定値F未満であれると判断した場合、被写体でない可能性が高いと考えられるので、S1406に処理を進め、出現時間を延長する。
【0057】
図14の説明に戻る。S1402において、背景モデル更新部208は、新規の状態であると判断した場合、S1408からS1411までの処理を行い、背景モデルへの追加を行う。なお、本画像処理装置の開始時は、フレーム画像の全ての座標に対して新規の状態となっているので、全て背景モデルに追加されることになる。このようにして背景モデルは初期化される。
まず、背景モデル更新部208は、現在の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する。そして、背景モデル更新部208は、次の画素の座標の状態へのポインタまでポインタを進めて、現在の座標の状態の最後の状態番号を取得する(S1408)。
【0058】
次に、背景モデル更新部208は、新規の状態の状態番号を発番する(S1409)。より具体的には、最後の状態番号の次の値を使用する。なお、背景モデル更新部208は、本画像処理装置の起動時のように、初めて背景モデルへ状態を追加するときは1番を割り当てる。
次に、背景モデル更新部208は、現在の画素の最後の状態の次に追加を行うので、次の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する(S1410)。次に、背景モデル更新部208は、ここに新規の状態として、入力状態情報中の現在の座標の特徴量、作成時刻、出現時間と共に、発番された状態番号を挿入する(S1411)。
次に、背景モデル更新部208は、フレーム画像中の全ての画素(座標)について処理を行ったかどうかを判定する(S1412)。このとき、行ったと判断した場合、処理を終了し、行っていないと判断した場合、S1413の処理を行う。S1413では、背景モデル更新部208は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS1401の処理を行う。
以上が、S307の処理(背景モデルの更新処理)の詳細である。
【0059】
本背景モデルの更新処理によって、被写体検出部207の結果から背景である可能性が高い画素について、背景モデル中の各状態に付与されている時間情報が補正される。これにより、背景モデルの精度が向上するので、前景背景判定部206による判定が適切に行えるようになる。
また、上述の構成によれば、例えば、初期化時に存在していた人物(被写体)が動いた跡の誤検知を補正することが可能となる。また、例えば、被写体検出の探索範囲が無意味な領域にまで及ぶことがなくなるため、高速な被写体の検出が可能となる。
【0060】
<第2の実施形態>
図22は、第2の実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。第1の実施形態と同じ構成については同じ符号を用いてその説明を省略する。
本実施形態は、本実施形態に係るプログラムを記録したDVD、CD等の光ディスク2211(記録媒体の一例)を読書き可能な外部記憶入出力装置2210を画像処理装置が有する点が第1の実施形態とは異なる。
光ディスク2211を外部記憶入出力装置2210に挿入すると、CPU101は、記録媒体からプログラムを読み取って、RAM103に展開することで、第1の実施形態と同様の処理を実現することができる。
プログラムを供給するための記憶媒体としては、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD、DVD、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0061】
また、情報処理装置(コンピュータ)が、読出したプログラムを実行することにより、上述の画像処理装置の機能を実現してもよい。また、そのプログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部または全部を行って、画像処理装置の機能を実現してもよい。
また、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボード、コンピュータに接続された機能拡張ユニットに備わるメモリなどに書込まれた後に実行されてもよい。このとき、機能拡張ボードや機能拡張ユニットに備わる1つまたは複数のプロセッシングエレメント、CPU等が実際の処理の一部または全部を行って、上述の画像処理装置の機能を実現してもよい。
【0062】
また、画像処理装置の各装置は、バス109によって接続されているが、一部の装置をネットワークI/F108により接続して構成してもよい。例えば、画像入力装置105をネットワークI/F108により接続して画像を入力するように構成してもよい。
また、特徴量抽出部202から背景モデル更新部208までの全てを集積回路チップに納め、画像入力装置105と一体化させてもよい。或いは、被写体検出部207のみをPC上に構成し、フレーム画像、前景領域情報(図11)等を、LANケーブルなどを介して受信し、物体領域情報を送信するようにしてもよい。
【0063】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0064】
上述した実施形態の構成によれば、より適切に被写体を検出することができる。
【0065】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0066】
101 CPU、102 ROM、103 RAM、104 2次記憶装置、105 画像入力装置、106 入力装置、107 表示装置、108 ネットワークI/F、109 バス
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、カメラで撮影された画像から物体を検出する次のような技術が開示されている。まず、背景差分法(背景差分)によって移動物体を検出する方法がある。背景差分では、固定したカメラにおいて、被写体がいない背景が予め撮影され、その画像の特徴量が基準モデルとして記憶される。その後、カメラから入力された画像中の特徴量と基準モデル中の特徴量との差分が求められ、異なる領域が前景(移動物体)として検出される。
また、画像から顔、人などの特定の被写体を検出する方法もある。例えば、人体を検出する技術が開示されている(特許文献1参照。)。この技術では、所定の大きさの検出ウィンドウが入力画像上で走査され、検出ウィンドウ内の画像が切り出されたパターン画像に対して、被写体であるか否かの判別(2クラス判別)が行われる。
【0003】
この判別では、アダブーストを使って多くの弱判別器を有効に組み合わせて判別器を構成し、判別の精度を向上させる。また、この判別器を直列に繋ぎ、カスケード型の検出器を構成するようにしている。弱判別器は、HoG(Histogram of oriented gradients)特徴量で構成されている。そして、カスケード型の検出器は、まず前段の単純な判別器を使って明らかに被写体でないパターンの候補をその場で除去する。それ以外の候補に対してのみ、より高い識別性能を持つ後段の複雑な判別器を使って被写体かどうかの判別が行われる。
ここで、背景差分によって求められた移動物体の領域についてのみ、被写体(人物)であるかどうかの認識を行う技術が開示されている(特許文献2参照。)。一般的に、被写体の検出は、検出ウィンドウを画像中で走査し、毎回、複数の判別器を適用するために処理コストが非常に高くなる。したがって、特許文献1に開示された技術のように、背景差分で検知された移動物体の領域に対してのみ、被写体の検出を行うことで、画像内の全領域に対して行うよりも、全体の処理コストを削減することができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開第2007/0237387号明細書
【特許文献2】特開2002−74371号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、被写体(人物)が存在する状態で背景差分が開始されると、初期化時に人物が存在する領域が背景モデルとして記憶されてしまう。したがって、その後、人物が移動し、隠れていた真の背景が表れると、背景モデルとの差分が生じるので、前景の領域であると判定されることになる。
特許文献1に開示された技術のように、背景差分によって被写体の検出の探索範囲の絞り込みを行うとしても、このような場合には前景の領域が広くなってしまう。つまり、被写体の検出の探索範囲の絞り込みが適切に行えず、例えば結果として高速な被写体の検知ができなくなってしまう。
【0006】
本発明はこのような問題点に鑑みなされたもので、より適切に被写体を検出することを目的とする。
【課題を解決するための手段】
【0007】
そこで、本発明に係る画像処理装置は、入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出手段と、前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶手段と、前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定手段と、前記入力状態判定手段で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定手段と、前記前景領域に対して所定の被写体の検出を行う被写体検出手段と、前記被写体検出手段の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新手段と、を有することを特徴とする。
【発明の効果】
【0008】
本発明によれば、より適切に被写体を検出することができる。
【図面の簡単な説明】
【0009】
【図1】画像処理装置のハードウェア構成の一例を示す図である。
【図2】画像処理装置の機能構成の一例を示す図である。
【図3】画像処理に係るフローチャートの一例を示す図である。
【図4】差分算出処理に係るフローチャートの一例を示す図である。
【図5】背景モデルの一例を示す図である。
【図6】最小差分値情報の一例を示す図である。
【図7】入力状態判定処理に係るフローチャートの一例を示す図である。
【図8】入力状態情報の一例を示す図である。
【図9】前景背景判定処理に係るフローチャートの一例を示す図である。
【図10】前景フラグ情報の一例を示す図である。
【図11】前景領域情報の一例を示す図である。
【図12】被写体検出処理に係るフローチャートの一例を示す図である。
【図13】物体領域情報の一例を示す図である。
【図14】更新処理に係るフローチャートの一例を示す図である。
【図15】論理積領域の一例を示す図である。
【図16】画像処理装置の機能構成の一例を示す図である。
【図17】被写体確信度分布を説明する図である。
【図18】被写体確信度分布を説明する図である。
【図19】算出処理に係るフローチャートの一例を示す図である。
【図20】被写体確信度情報の一例を示す図である。
【図21】累積スコア情報の一例を示す図である。
【図22】画像処理装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【0011】
<第1の実施形態>
本実施形態では、動画像から、人物、動物、車両、物体などの特定の被写体又は被写体の一部を検出する画像処理装置(ネットワークカメラなどのデジタル画像機器)、画像処理ソフトウェア、画像処理方法などに適用可能な技術に関して説明する。
図1は、本実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。CPU101は、ROM102、RAM103等に格納されたプログラムに従って命令を実行する。ROM102は、不揮発性メモリであり、後述のフローチャートに係るプログラム、その他の制御に必要なプログラム、データなどを格納する。RAM103は、揮発性メモリであり、フレーム画像データ(フレーム画像)、パターン判別の結果などの一時的なデータを記憶する。
【0012】
2次記憶装置104は、ハードディスクドライブ、フラッシュメモリなどの書き換え可能な2次記憶装置であり、画像情報、画像処理プログラム、各種の設定情報などを記憶する。これらの情報は、RAM103に転送され、CPU101によるプログラムの実行などに利用される。
画像入力装置105は、デジタルビデオカメラ、ネットワークカメラ、赤外線カメラなどであり、画像を入力するものである。入力装置106は、キーボード、マウスなどであり、ユーザからの入力を可能とするものである。表示装置107は、ブラウン管CRT、液晶ディスプレイなどであり、ユーザに対して処理結果などを表示するものである。
ネットワークI/F108は、インターネット、イントラネットなどのネットワークと接続を行うモデム、LANなどである。バス109は、これらのデバイス(101〜108)を接続して相互にデータの入出力を行う。なお、本画像処理装置では、CPU101によりプログラムが実行されることにより実装されるオペレーティングシステムの上で動作するアプリケーションにより、画像処理装置の機能、後述するフローチャートに係る処理の全部または一部が実現される。
【0013】
図2は、画像処理装置の機能構成の一例を示す図である。映像入力部201は、画像入力装置105等により実現され、映像を入力するものである。特徴量抽出部202は、入力された映像(入力映像)より特徴量を抽出するものである。
差分算出部203は、背景モデル記憶部204より読み出した背景モデルと入力映像との差分を求めるものである。背景モデル記憶部204は、RAM103、2次記憶装置104等により実現され、入力映像内の各位置の状態を画像特徴量で代表させた背景モデルとして記憶するものである。なお、背景モデルの詳細については後述する。入力状態判定部205は、差分算出部203の結果に基づいて、入力映像に近い背景モデル中の状態を判定するものである。
前景背景判定部206は、入力状態判定部205の結果に基づいて、入力映像中の各位置が前景であるか背景であるかを判定するものである。被写体検出部207は、映像入力部201からの入力映像の中で、前景背景判定部206にて前景であると判定された領域から、特定の被写体(本実施例では人体とする。)の領域を検出するものである。
背景モデル更新部208は、入力状態判定部205と被写体検出部207との結果に基づいて、背景モデル記憶部204に記憶されている背景モデルの更新を行うものである。
【0014】
次に、本画像処理装置における主な画像処理の流れについて図3を用いて説明する。図3は、画像処理に係るフローチャートの一例を示す図である。
まず、映像入力部201は、撮像などが行われることにより映像が入力されると、所定の時間ごとにフレーム画像を取得する(S301)。次に、特徴量抽出部202は、取得されたフレーム画像から特徴量を抽出し、差分算出部203は、背景モデル記憶部204より背景モデル中の特徴量を読み出し、フレーム画像中の特徴量との差分を算出する(S302)。
次に、入力状態判定部205は、差分算出部203の結果に基づいて、フレーム画像に近い背景モデル中の状態を求める(S303)。次に、前景背景判定部206は、映像中の領域を部分領域毎(前景領域と背景領域と)に分ける(S304)。
【0015】
次に、被写体検出部207は、前景背景判定部206によって求められた前景領域に対して被写体の検出を行う(S305)。次に、制御部(図示せず)は、被写体検出部207で検出された物体の情報(後述の物体領域情報など)を表示装置107などに出力する(S306)。物体の情報は、入力された映像に矩形として重ね描きされる表示などの用途に使用される。
次に、背景モデル更新部208は、入力状態判定部205の結果と被写体検出部207の結果とを背景モデルに反映し、背景モデルの更新を行う(S307)。次に、制御部は、電源OFFなどによるユーザからの終了指示の判定を行う(S308)。このとき、制御部は、終了指示を受け付けたと判断した場合、処理を終了する。他方、制御部が終了指示を受け付けていないと判断した場合、S301の処理が行われる。即ち、終了指示が行われるまで、S301からS307までの処理が繰り返えされる。
【0016】
次に、S302の処理(差分算出処理)の詳細について図4を用いて説明する。図4は、差分算出処理に係るフローチャートの一例を示す図である。
まず、特徴量抽出部202は、映像入力部201で取得されたフレーム画像より各位置の状態を表す値として画像特徴量を抽出する(S401)。画像特徴量の例としては、輝度、色、エッジなどが挙げられるが、特にこれらに限定されるものではない。また、画素ごとの特徴量であっても、部分領域ごとの特徴量であってもよい。部分領域ごとの特徴量の例としては、8×8画素ブロック内の画素の平均輝度、DCT係数などが挙げられる。DCT係数とは、離散コサイン変換(Discrete Cosine Transform)した結果である。
【0017】
また、フレーム画像がJPEG形式で圧縮符号化されている場合は、既に画像圧縮時に特徴量が抽出されているのと同じことになる。したがって、この場合は、JPEG形式のフレーム画像よりDCT係数を直接取り出し、これを特徴量として使用するようにしてもよい。
本実施形態では、画素ごとの輝度を採用した場合を例に挙げて説明する。なお、フレーム画像の左上の画素を開始点とし、以降、左より右へ、行ごとに下へ(以下ではラスタスキャン順と適宜称する。)処理の対象が移動し、以降の処理が行われるものとする。
【0018】
次に、差分算出部203は、背景モデル記憶部204に記憶されている背景モデルより、注目位置(処理の対象の画素の位置)の位置毎背景モデル情報を読み出し、RAM103に一時記憶する(S402)。
ここで、背景モデル記憶部204に記憶されている背景モデルについて図5を用いて説明する。図5は、背景モデルの一例を示す図である。背景モデルは、フレーム画像中の各位置の状態を画像特徴量で現したものである。背景モデルは、背景モデル管理情報と位置毎背景モデル情報との2種類の情報から構成されている。
背景モデル管理情報は、位置情報と各位置における位置毎背景モデル情報へのポインタとから構成される。位置情報は、フレーム画像の画素の位置をXY座標で示した値であってもいいし、8×8画素などのブロックの位置を、ラスタスキャン順に振った番号であってもよい。なお、本実施形態では、フレーム画像の画素の位置をXY座標で示した値であるものとして説明する。
【0019】
位置毎背景モデル情報は、各位置に対応する状態を複数保持する。位置毎背景モデル情報の複数の状態によれば、新たな静止物体(花瓶など)の出現などにより時間と共に変化する背景に対応することができる。各状態には、状態の番号(状態番号)と、状態を代表する特徴量(画像特徴量)、作成時刻、出現時間が保持されている。
状態番号とは、各状態を識別するための番号であり、1番から順に発番されるものである。作成時刻とは、その状態が始めて背景モデル内に作成された時刻であり、時間、フレーム番号で表現される。本実施形態では、フレーム番号で表現するものとする。出現時間は、その状態が作成されてから現在までに入力映像中に類似した状態が出現した時間、フレーム数などである。本実施形態では、フレーム数で表現するものとする。
【0020】
そして、フレーム画像内で同じ位置における複数の状態は、背景モデル管理情報のポインタで参照された先に連続して格納される。図5の例では、座標(0,0)の位置については、1200番地に状態番号「1」の状態が格納され、続いて1201番地に状態番号「2」の状態が格納されている。
例えば、注目位置に対応する全ての状態の読み出しは、差分算出部203が、背景モデル管理情報から注目位置とその次の位置とのポインタを参照し、注目位置のアドレスから次の位置の1つ手前のアドレスまでを読み出すことで実現される。
【0021】
S402の説明に戻る。S402では、差分算出部203は、背景モデル管理情報より注目位置の位置毎背景モデル情報へのポインタを参照し、当該注目位置の全ての状態の位置毎背景モデル情報を読み出す。
図5の例で、初めの位置である場合、差分算出部203は、次の2つの状態の位置毎背景モデル情報を読み出す。1つ目の状態の位置毎背景モデル情報として、1200番地より、状態番号「1」、特徴量「100」、作成時刻「0」、出現時間「300」が読み出される。また、2つ目の状態の位置毎背景モデル情報として、1201番地より、状態番号「2」、特徴量「230」、作成時刻「101」、出現時間「35」が読み出される。
【0022】
次に、差分算出部203は、S402で読み出した注目位置の位置毎背景モデル情報中より1つの状態の特徴量を読み出す(S403)。そして、差分算出部203は、フレーム画像中の同じ位置の特徴量との差分を算出する(S404)。差分の算出方法として、ここでは2つの特徴量の差の絶対値を用いるが、特にこれに限定されるものではなく、例えば、差を2乗した値であってもよい。そして、差分算出部203は、差分値をRAM103にフレーム画像内の位置、及び差分を算出した状態番号と関連付けて一時記憶する。
次に、差分算出部203は、注目位置で差分を算出していない状態が存在するかどうかを判定する(S405)。このとき、差分算出部203は、存在すると判断した場合、S406の処理を行い、他方、存在しないと判断した場合、S407の処理を行う。S406では、差分算出部203は、処理の対象を次の状態に進め、続いてS403の処理を行う。
【0023】
S407では、差分算出部203は、注目位置について、フレーム画像の特徴量との全ての状態との差分値の中から、最小の値(最小差分値)を求める。次に、差分算出部203は、このときの最小差分値を、対応する状態の状態番号、作成時刻、出現時間、フレーム画像の特徴量、及びフレーム画像内の座標と関連付けて最小差分値情報(図6に一例を示す。)としてRAM103に一時記憶する(S408)。
次に、差分算出部203は、フレーム画像中の全ての画素(座標)について処理を行ったかどうかを判定する(S409)。このとき、行ったと判断した場合、S411の処理が行われ、他方、行っていないと判断された場合、S410の処理が行われる。S410では、差分算出部203は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS401の処理の処理を行う。
【0024】
S411では、差分算出部203は、一時記憶した全画素分の最小差分値情報を入力状態判定部205に対して出力する。
なお、本画像処理装置の開始時(起動時)は、背景モデルが記憶されていないので、差分の算出の際の値として、差分値として取り得る最大値などを設定しておく。これらは、後述するように新規の状態であると判定され、背景モデルとして記憶される。このように、起動時のフレーム画像によって背景モデルの初期化が行われる。
以上が、S302の処理(差分算出処理)の詳細である。
【0025】
次に、S303の処理(入力状態判定処理)の詳細について図7を用いて説明する。図7は、入力状態判定処理に係るフローチャートの一例を示す図である。
まず、入力状態判定部205は、S302の差分算出処理の結果である最小差分値を取得する(S701)。より具体的には、入力状態判定部205は、フレーム画像の左上の画素を開始点とし、以降、ラスタスキャン順に移動しながら1つずつ最小差分値情報(図6)の座標を参照し、最小差分値を取得する。
次に、入力状態判定部205は、注目位置における最小差分値と閾値Aとを比較する(S702)。このとき、入力状態判定部205は、最小差分値のほうが小さい場合、背景モデルに記憶されている状態に類似していると判断し、続いてS703の処理を行う。他方、入力状態判定部205は、最小差分値のほうが大きい場合、背景モデルに記憶されているどの状態とも異なり、新しい状態であると判定し、続いてS704の処理を行う。
【0026】
S703では、入力状態判定部205は、最小差分値情報(図6)中の出現時間をインクリメントする。出現時間は、フレーム数で表現され、類似する状態であるときは、映像中に同じ特徴を持つ状態が出現したとみなすことができるから、出現時間が例えば「1」加算される。
S704では、入力状態判定部205は、新しい状態を意味する特殊な番号(例:0)を状態番号として設定する。なお、状態番号「0」は、背景モデル更新部208により背景モデル更新時に改めて発番される。次に、入力状態判定部205は、現在時刻を本状態が初めて作成された時刻として作成時刻に設定する(S705)。なお、本実施形態では、現在のフレーム番号を用いるが、何時何分何秒といった通常の時刻を用いてもよい。次に、入力状態判定部205は、新しく出現した状態であるので、出現時間を(フレーム数)1とする(S706)。
【0027】
次に、入力状態判定部205は、状態番号、フレーム画像の特徴量、作成時刻、出現時間をフレーム画像内の座標に関連付けて入力状態情報(図8に一例を示す。)としてRAM103に一時記憶する(S707)。
次に、入力状態判定部205は、フレーム画像中の全ての画素(座標)について、処理を行ったかどうかを判定する(S708)。このとき、入力状態判定部205は、行ったと判断した場合、S710の処理を行い、他方、行っていないと判断した場合、S709の処理を行う。S709では、入力状態判定部205は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS701の処理を行う。
【0028】
なお、上述のように、本画像処理装置の開始時のフレーム画像については、差分値が最大値に設定されているので、S702において全て新規の状態と判定される。
S710では、入力状態判定部205は、全画素分の入力状態情報を前景背景判定部206と背景モデル更新部208とに対して出力する。
以上が、S303の処理(入力状態判定処理)の詳細である。
【0029】
次に、S304の処理(前景背景判定処理)の詳細について図9を用いて説明する。図9は、前景背景判定処理に係るフローチャートの一例を示す図である。
まず、前景背景判定部206は、S303の入力状態判定処理の出力である入力状態情報(図8)を取得する(S901)。より具体的には、前景背景判定部206は、フレーム画像の左上の画素を開始点として、ラスタスキャン順に1つずつ参照し、入力状態情報を取得する。
次に、前景背景判定部206は、前景であるかどうかを時間の情報を用いて判断する(S902)。時間の情報としては、出現時間、存在時間(ある状態(特徴)が映像に出現した時刻から現在まで、つまり現在時刻と作成時刻との差分の時間)などが考えられる。即ち、特定の状態に関する時間情報を適宜採用できる。
【0030】
本実施形態では、出現時間を用いるものとし、前景背景判定部206は、閾値Cと比較する。このとき、前景背景判定部206は、出現時間が閾値C以上である場合、十分に長い時間存在した状態であり、背景とみなすことができるので、続いてS903の処理を行う。他方、前景背景判定部206は、出現時間が閾値C未満である場合、背景とみなせるほど長い時間存在した状態ではなく、背景であるとみなすことができないので、続いてS904の処理を行う。
S903では、前景背景判定部206は、処理の対象の画素(現在の画素)が背景であると判定する。例えば、前景背景判定部206は、前景フラグを、背景を意味する「0」にする。S904では、前景背景判定部206は、処理の対象の画素が前景であると判定する。例えば、前景背景判定部206は、前景フラグを、前景を意味する「1」にする。
【0031】
次に、前景背景判定部206は、前景フラグをフレーム画像中の現在の画素の座標と関連付けて前景フラグ情報(図10に一例を示す。)として一時記憶する(S905)。
次に、前景背景判定部206は、フレーム画像中の全ての画素(位置)について、処理を行ったかどうかを判定する(S906)。このとき、前景背景判定部206は、行っていると判断した場合、S908の処理を行い、他方、行っていないと判断した場合、S907の処理を行う。S907では、前景背景判定部206は、次の画素へ処理の対象を進め、続いてS901の処理を行う。なお、次に説明するS908からS919までの処理では、前景背景判定部206は、連続する前景の画素を統合して前景領域を求める。
【0032】
S908では、前景背景判定部206は、探索済みフラグ情報を初期化する。より詳細に説明すると、本実施形態では、前景領域として前景の画素を統合するために、前景フラグ=1の画素を探索したかどうかを示す探索フラグ情報を用意する。これは、前景フラグ情報と同様にフレーム画像中の座標に探索フラグを関連付けたものである。前景背景判定部206は、探索フラグ=1を探索済みであると解釈するので、全ての座標に対応する探索フラグを「0」にする初期化を行う。
次に、前景背景判定部206は、フレーム画像の左上の画素を開始点として、RAM103中の前景フラグ情報(図10)の座標を参照し、前景フラグを取得する(S909)。
【0033】
次に、前景背景判定部206は、現在の座標の前景フラグが「1」であるかどうかをチェックする(S910)。このとき、「0」であると判断した場合、処理の対象の画素が背景であるのでS911の処理を行い、他方、「1」であると判断した場合、処理の対象の画素が前景であるのでS912の処理を行う。
S911では、前景背景判定部206は、現在の画素から、ラスタスキャン順で次の画素に処理の対象を進め、続いてS909の処理を行う。
S912では、処理の対象の画素が前景であるので、現在の座標の探索済みフラグが「0」であるかどうか、つまり未探索であるかどうかをチェックする(S912)。このとき、前景背景判定部206は、「1」であると判断した場合、探索済みであるのでS911の処理を行い、他方、「0」であると判断した場合、未探索であるのでS913の処理を行う。
【0034】
S913では、前景背景判定部206は、現在の座標を一時記憶する。そして、前景背景判定部206は、探索を行ったので、探索済みフラグを1にする(S914)。次に、前景背景判定部206は、連続する前景の画素を探索するために近傍の前景フラグを取得する(S915)。
次に、前景背景判定部206は、近傍の前景フラグが「1」であるかをチェックする(S916)。このとき、前景背景判定部206は、「1」である場合、連続する画素であると判断し、S917の処理を行い、他方、「0」である場合、S918の処理を行う。S917では、前景背景判定部206は、探索済みフラグが「0」であるかを判定する。このとき、前景背景判定部206は、「0」である場合、未探索であると判断し、更に近傍を探索するため、S913の処理を行う。他方、前景背景判定部206は、「1」である場合、S918の処理を行う。
【0035】
そして、S917で近傍が全て探索済みか(探索済みフラグ=1)、S916で近傍が全て背景(前景フラグ=0)となるまで、前景背景判定部206は、S913からS917までの処理を繰り返す。
S918では、即ち、S913からS917までの処理で連続する前景の画素が探索された場合、前景背景判定部206は、一時的に記憶されているこれらの画素の座標から外接矩形を求め、右下の座標と左上の座標とをRAM103に一時記憶する(S918)。
次に、前景背景判定部206は、フレーム画像中の全画素について、S909からS918までの処理を行ったかどうかを判定する(S919)。このとき、前景背景判定部206は、行っていないと判断した場合、S911の処理を行い、他方、行ったと判断した場合、S920の処理を行う。
【0036】
S920では、前景背景判定部206は、前景領域情報を出力する。より具体的には、前景背景判定部206は、全画素について、S909からS918までの処理を行っていると判断した場合、一時保存された前景領域の右下の座標と左上の座標との数をカウントする。そして、前景背景判定部206は、前景領域数とともに、前景領域の右下の座標及び左上の座標、並びに平均出現時間を、前景領域情報(図11に一例を示す。)として被写体検出部207に対して出力する。
図11は、前景領域情報の一例であり、前景領域座標データ先頭ポインタは、各前景領域(矩形領域)の左上の座標及び右下の座標にアクセスするためのポインタである。図11の例では、前景領域は2つ存在し、前景領域座標データ先頭ポインタの指し示す1400番地より1401番地まで順に、2つ分の矩形領域の左上の座標及び右下の座標を読み出すことができる。
以上が、S304の処理(前景背景判定処理)の詳細である。
【0037】
次に、S305の処理(前景領域からの被写体検出処理)の詳細について図12を用いて説明する。図12は、被写体検出処理に係るフローチャートの一例を示す図である。
まず、被写体検出部207は、映像入力部201よりフレーム画像を取得する(S1201)。次に、S304の前景背景判定処理の結果である前景領域情報(図11)から1つの前景領域の外接矩形の座標を取得する(S1202)。次に、被写体検出部207は、特許文献1などの方法により、取得した前景領域に対してのみ検出ウィンドウを走査し、被写体の検出を行う(S1203)。
次に、被写体検出部207は、被写体が検出されたかどうかを判定する(S1204)。このとき、被写体検出部207は、検出したと判断した場合、S1205の処理を行い、他方、検出していないと判断した場合、S1206の処理を行う。S1205では、被写体検出部207は、被写体フラグ=1とし、続いてS1207の処理を行う。S1206では、被写体検出部207は、被写体フラグ=0とし、続いてS1207の処理を行う。
【0038】
S1207では、被写体検出部207は、前景領域情報(図11)に含まれる全ての前景領域について、処理を行ったかを判定する。このとき、被写体検出部207は、行ったと判断した場合、S1209の処理を行い、他方、行っていないと判断した場合、S1208の処理を行う。S1208では、被写体検出部207は、次の前景領域へ処理の対象を進め、続いてS1202の処理を行う。
S1209では、即ち、全ての前景領域についてS1202からS1206までの処理を行っている場合、被写体検出部207は、前景領域情報に被写体フラグを付与したものを物体領域情報(図13に一例を示す。)として、本物体検出部の外部(例えば制御部)と背景モデル更新部208とに対して出力する。
【0039】
図13は、物体領域情報の一例を示す図であり、物体領域座標データ先頭ポインタは、各物体領域(矩形領域)の左上の座標及び右下の座標にアクセスするためのポインタである。図13の例では、物体領域は2つ存在し、物体領域座標データ先頭ポインタの指し示す1600番地より1601番地まで順に、2つ分の矩形領域の左上の座標及び右下の座標、平均出現時間、並びに被写体フラグを読み出すことができる。
以上が、S305の処理(前景領域からの被写体検出処理)の詳細である。
なお、物体領域情報は、次のように利用される。例えば、ユーザが指定した画面内の領域への被写体の侵入を検出する装置は、物体領域情報より被写体フラグ=1の物体領域のみを取得する。そして、当該装置は、物体領域の右下の座標及び左上の座標から、ユーザ指定の範囲に被写体が侵入しているかどうかを判定する。
【0040】
次に、S307の処理(背景モデルの更新処理)の詳細について図14を用いて説明する。図14は、更新処理に係るフローチャートの一例を示す図である。
まず、背景モデル更新部208は、入力状態判定部205の出力である入力状態情報(図8)から、フレーム画像の左上の画素を開始点として、順に一画素分の入力状態情報を、座標を参照して取得する(S1401)。
次に、背景モデル更新部208は、現在の画素の状態が新規であるかどうかをチェックする(S1402)。背景モデル更新部208は、入力状態情報中の状態番号を参照し、「0」である場合、新規であると判断し、「0」以外である場合、背景モデルに存在する既存の状態であると判断する。このとき、背景モデル更新部208は、新規であると判断した場合、S1408の処理を行い、他方、新規でないと判断した場合、S1403の処理を行う。
【0041】
S1403では、背景モデル更新部208は、背景モデル(図5)中の対応する位置毎背景モデル情報を更新する。より具体的には、背景モデル更新部208は、現在の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する。そして、背景モデル更新部208は、読み出しながら前記ポインタを順に進め、入力状態情報から読み出した状態番号と一致する位置毎背景モデル情報を参照する。
次に、背景モデル更新部208は、背景モデル中の特徴量を、入力状態情報中の特徴量で更新する(S1404)。これは、照明変化などによる変化に対応するためである。更新の方法としては、例えば、式(1)を用いる。
μt=(1−α)・μt-1+α・It ・・・(1)
式(1)において、現在のフレームをtとし、1つ前のフレームをt−1とする。μt-1は更新前の特徴量の値、μtは更新後の特徴量の値である。Itは、フレーム画像の特徴量の値である。αは、0から1までの値を持つ重みであり、大きな値であるほど、更新後の値は、入力の値に近くなる。
【0042】
次に、背景モデル更新部208は、被写体の検出の結果である物体領域情報(図13)を参照し、注目する画素が被写体領域に含まれるかどうかをチェックする(S1405)。このとき、背景モデル更新部208は、被写体領域であると判断した場合、S1407の処理を行い、他方、被写体領域でないと判断した場合(注目画素が物体領域であり、かつ、被写体フラグ=0のとき)、S1406の処理を行う。
ここで、被写体領域でないと判断された場合、前景背景判定部206の判定では前景であったものの、実際には背景であった可能性が高いことを示す。
【0043】
したがって、S1406では、背景モデル更新部208は、入力状態情報中の出現時間に固定量を加算するなどして延長し、次回の前景背景判定処理のS902で背景であると判定されるようにする。ここで、延長する量としては、閾値Cまで一度に延長する方法もあるが、被写体検出部207の判定が常に正しいとは限らないので、所定の固定量B分としてもよい。真に背景であった場合、連続して被写体は検出されず、その度に出現時間はBずつ延長され、やがて閾値Cに達してS902で背景であると判定されるようになる。
なお、S902における判定で、存在時間(現在時刻−作成時刻)を用いる場合は、例えば、作成時刻から固定量を引いて、背景モデルに記憶されている以前の時刻にすることで、存在時間を延長する。
【0044】
次に、背景モデル更新部208は、背景モデル中の出現時間を入力状態情報中の出現時間で上書きすることによって更新する(S1407)。
なお、本実施形態では、時間情報として出現時間、存在時間を用いているが、例えば、背景化するまでの時間の閾値Cを、状態を初めて背景モデルに追加したときに時間情報として保持するようにしてもよい。この場合は、S702において、背景モデルに類似する状態が存在すると判定されたときは、S703において、前記時間情報をデクリメントする。したがって、このような場合は、S1405で被写体が検出されていないと判断されたとき、S1406で時間情報を短縮するように時間情報を補正する。
【0045】
ここでは、被写体検出部207で被写体が検出されなかった前景領域のみを対象とし、背景である可能性が高いものとして背景モデルへ反映した。しかしながら、例えば、被写体検出部207が人体を検出する場合、人体に共通した特徴は主に人体の輪郭となるので、人体の周りの背景に相当する画素も含めた領域が検出結果となる。即ち、被写体検出部207で検出された領域に含まれる背景に相当する画素についても、背景モデルへ反映することができれば、背景モデルの精度を更に高めることができる。
そこで、上記を実現する方法として、まず、前景背景判定処理の結果の領域と被写体検出処理の結果の領域との重なりを利用する方法がある。即ち、前景領域と被写体領域との重なり以外は背景であるものとして、背景モデル更新部208において対応する画素の出現時間(存在時間)を延長する。
【0046】
以下では、重なり領域を求める方法の詳細について説明する。
まず、前景背景判定部206は、図9のS901からS905までの処理の終了時に生成される前景フラグ情報(図10)を背景モデル更新部208に対して出力する。背景モデル更新部208では、前景フラグ情報から得られる前景領域と被写体検出部207の出力である物体領域との内、被写体フラグが「1」である被写体領域の論理積領域(図15に一例を示す。)を求める。
【0047】
図15は、論理積領域の一例を示す図である。多角形で示された領域1501は、前景背景判定部206により前景であると判定された前景領域である。矩形で示した領域1502は、被写体検出部207により検出された被写体領域である。縦線で塗りつぶされた領域1503は、重なり領域(論理積領域)となる。
S1405の判定では、注目画素が物体領域であり、かつ、被写体フラグ=0であるとき(被写体領域でなかった場合)、出現時間を延長する対象としていた。これを、注目画素が物体領域であり、かつ、被写体フラグ=1であり、かつ、重なり領域でない場合についても、出現時間を延長する対象とする。これにより、被写体領域に含まれている背景に相当する画素についても背景モデルを補正することができる。
【0048】
また、前景領域と被写体領域との重なり領域を利用する方法では、前景領域が正しく被写体の輪郭を検出できていることが前提となる。したがって、前景領域に被写体の影など、本来背景である領域が含まれてしまうと精度が落ちてしまう。
そこで、他の方法として、被写体検出部207の結果から、画像の位置毎に被写体の一部であると確信できる度合いを示す被写体確信度を求め、これを基に背景モデルを更新する方法を説明する。即ち、被写体確信度の低いところを背景とみなす方法である。そこで、図16に示したように、画像処理装置は、図2の構成に加えて被写体確信度算出部1601を更に有する。
【0049】
次に、被写体確信度の算出処理の詳細について説明する。
被写体確信度の算出方法として、本実施形態では、次の2つの方法を例として説明するが、これらの方法に限定されるものではなく、各画素の被写体確信度を得られる他の方法を採用してもよい。
(1)学習用画像から生成した被写体確信度分布を使用する方法
被写体検出部207を構成する弱判別器を生成するためには、正解画像と非正解画像からなるアダブースト学習(特許文献1参照)のような機械学習が必要である。正解画像としては、人体に共通の特徴(輪郭など)を学習できるように、頭の位置や足の位置を所定のサイズの画像内で揃えた複数の画像が使用される。このことを利用して、検出された領域内でどの位置が最も人体らしいといえるかを、正解画像から推定する方法を説明する。
【0050】
図17の被写体確信度分布を説明する図を用いて詳細を説明する。領域1701は、正解画像の領域全体を示している。境界線1702は、全ての正解画像の濃度勾配を求めた画像を平均した結果に対し、所定の閾値以上の濃度強度を持つ領域の境界を示している。即ち、境界線1702の内部に位置する画素ほど、人体である可能性が高い。そこで、例えば、補助線1703に対応する被写体確信度の分布が、図18のように正規分布を使って与えられるものと仮定する。
図18の横軸は、図17の補助線1703上の位置を示し、縦軸は、被写体確信度を示している。1801は、正規分布に従った曲線(被写体確信度分布)であり、1802は平均、1803、1804は平均から標準偏差分離れた位置を示している。1802の被写体確信度が最大の「100」であるものとする。1802を、1701の中心位置、1803及び1804を補助線1703と境界線1702が接する点に合わせ、被写体確信度分布(1801)を決定する。
このように、被写体(人体)を含む画像から統計的な方法で、領域1701内の全ての位置での画素値として被写体確信度が規定された被写体確信度分布画像を求めることができる。これを予めROM102、2次記憶装置104等に格納しておき、本画像処理装置の起動時にRAM103に読み込こまれ、被写体確信度算出部1601で参照可能な状態にしておく。
【0051】
次に、被写体確信度の算出処理の詳細について図19を用いて説明する。図19は、算出処理に係るフローチャートの一例を示す図である。
まず、被写体確信度算出部1601は、被写体確信度情報(図20に一例を示す。)を初期化する(S1901)。被写体確信度情報とは、フレーム画像の全領域の各座標について被写体確信度が格納されたものである。即ち、被写体確信度算出部1601は、全ての座標に対しての被写体確信度を0にすることで初期化する。
次に、被写体確信度算出部1601は、物体領域情報(図13)より被写体フラグ=1である領域(被写体領域)を1つ取得する(S1902)。
【0052】
ここで、上述の被写体確信度分布画像は、学習時に使用した画像を基に決定されるので、学習に使用された画像のサイズとなる。したがって、検出された被写体のサイズに合わせた拡大縮小処理が必要である。そこで、被写体確信度算出部1601は、被写体確信度分布画像を被写体領域と同じサイズになるように通常の画像の拡大縮小と同様に最近傍法、線形補完などにより拡大または縮小を行う(S1903)。
次に、被写体確信度算出部1601は、被写体確信度情報上の被写体領域に相当する領域の被写体確信度を、サイズが変更された被写体確信度分布画像中の画素値である被写体確信度で更新する(S1904)。より具体的には、被写体確信度算出部1601は、対応する座標において、被写体確信度情報中の被写体確信度と被写体確信度分布画像中の被写体確信度との和をとり、新たな被写体確信度の値とする。
【0053】
次に、被写体確信度算出部1601は、S1904で更新された被写体確信度の値が、値の範囲(0から100)を超えているかどうかをチェックする(S1905)。このとき、被写体確信度算出部1601は、超えていると判断した場合、S1906の処理を行い、他方、超えていないと判断した場合、S1907の処理を行う。
S1906では、被写体確信度算出部1601は、被写体確信度の値を被写体確信度の範囲内に補正する。S1907では、被写体確信度算出部1601は、全ての被写体領域について処理を行ったかどうかを判定する。このとき、被写体確信度算出部1601は、行ったと判断した場合、S1909の処理を行い、他方、行っていないと判断した場合、S1908の処理を行う。S1908では、被写体確信度算出部1601は、次の被写体領域へ処理の対象を進め、続いてS1902の処理を行う。
S1909では、被写体確信度算出部1601は、最終的な被写体確信度情報を背景モデル更新部208に出力する。
【0054】
(2)被写体検出内の弱判別器の累積スコアから推定する方法
被写体検出部207は、各弱判別器の信頼度をat、弱判別器をht(x)(当該弱判別器において被写体であると判別したら+1、非被写体であると判別したら−1の2値を取る関数)としたときに、その累積スコアを式(2)により算出する。
F(x)=Σtatht(x) ・・・(2)
そして、被写体検出部207は、累積スコアF(x)に対する閾値によって、最終的に被写体であるかどうかを判定する。なお、t=1からT個の弱判別器が存在するものとする。また、累積スコアF(x)は、弱判別器がどの程度信頼できるかを示した値atを累積したものであるので、被写体が出力結果に含まれる確率を直接示した値ではない。そこで、累積スコアをsigmoid関数にて変換することによって、被写体が出力結果に含まれる確率P(y=+1|x)に変換できると仮定する。
P(y=+1|x)=1/(1+exp(−w1F(x)−w0)) ・・・(3)
【0055】
sigmoid関数の重みw1、w0は、複数の正解(被写体の位置)がわかっているサンプル画像に対して実際に検出を行い、累積スコアと被写体の検出結果との関係から、最小二乗法などにより求めることができる。
被写体検出部207より被写体を決定する前の各検出ウィンドウの累積スコアを全て、検出ウィンドウの中心位置と関連付けて累積スコア情報(図21に一例を示す。)として出力するようにする。図21は、累積スコア情報の一例を示す図である。座標は、検出ウィンドウの中心位置のフレーム画像内での座標である。なお、背景モデル更新部208は、被写体確信度算出部1601において式(3)で変換された確率を被写体確信度として使用する。また、全ての画素について変換することにより被写体確信度情報を得ることができる。
【0056】
以上のように算出された被写体確信度を背景モデル更新部208は、例えば次のように使用する。
背景モデル更新部208は、S1405の判定で注目する画素が被写体領域に含まるかどうかを判定する代わりに、被写体確信度が所定値F未満であるかどうかを判定する。そして、背景モデル更新部208は、所定値F未満であれると判断した場合、被写体でない可能性が高いと考えられるので、S1406に処理を進め、出現時間を延長する。
【0057】
図14の説明に戻る。S1402において、背景モデル更新部208は、新規の状態であると判断した場合、S1408からS1411までの処理を行い、背景モデルへの追加を行う。なお、本画像処理装置の開始時は、フレーム画像の全ての座標に対して新規の状態となっているので、全て背景モデルに追加されることになる。このようにして背景モデルは初期化される。
まず、背景モデル更新部208は、現在の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する。そして、背景モデル更新部208は、次の画素の座標の状態へのポインタまでポインタを進めて、現在の座標の状態の最後の状態番号を取得する(S1408)。
【0058】
次に、背景モデル更新部208は、新規の状態の状態番号を発番する(S1409)。より具体的には、最後の状態番号の次の値を使用する。なお、背景モデル更新部208は、本画像処理装置の起動時のように、初めて背景モデルへ状態を追加するときは1番を割り当てる。
次に、背景モデル更新部208は、現在の画素の最後の状態の次に追加を行うので、次の画素の座標から背景モデル中の背景モデル管理情報を参照し、一致する座標の状態へのポインタを取得する(S1410)。次に、背景モデル更新部208は、ここに新規の状態として、入力状態情報中の現在の座標の特徴量、作成時刻、出現時間と共に、発番された状態番号を挿入する(S1411)。
次に、背景モデル更新部208は、フレーム画像中の全ての画素(座標)について処理を行ったかどうかを判定する(S1412)。このとき、行ったと判断した場合、処理を終了し、行っていないと判断した場合、S1413の処理を行う。S1413では、背景モデル更新部208は、ラスタスキャン順に次の画素へ処理の対象を進め、続いてS1401の処理を行う。
以上が、S307の処理(背景モデルの更新処理)の詳細である。
【0059】
本背景モデルの更新処理によって、被写体検出部207の結果から背景である可能性が高い画素について、背景モデル中の各状態に付与されている時間情報が補正される。これにより、背景モデルの精度が向上するので、前景背景判定部206による判定が適切に行えるようになる。
また、上述の構成によれば、例えば、初期化時に存在していた人物(被写体)が動いた跡の誤検知を補正することが可能となる。また、例えば、被写体検出の探索範囲が無意味な領域にまで及ぶことがなくなるため、高速な被写体の検出が可能となる。
【0060】
<第2の実施形態>
図22は、第2の実施形態に係る画像処理装置のハードウェア構成の一例を示す図である。第1の実施形態と同じ構成については同じ符号を用いてその説明を省略する。
本実施形態は、本実施形態に係るプログラムを記録したDVD、CD等の光ディスク2211(記録媒体の一例)を読書き可能な外部記憶入出力装置2210を画像処理装置が有する点が第1の実施形態とは異なる。
光ディスク2211を外部記憶入出力装置2210に挿入すると、CPU101は、記録媒体からプログラムを読み取って、RAM103に展開することで、第1の実施形態と同様の処理を実現することができる。
プログラムを供給するための記憶媒体としては、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD、DVD、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0061】
また、情報処理装置(コンピュータ)が、読出したプログラムを実行することにより、上述の画像処理装置の機能を実現してもよい。また、そのプログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステムなどが実際の処理の一部または全部を行って、画像処理装置の機能を実現してもよい。
また、記憶媒体から読出されたプログラムが、コンピュータに挿入された機能拡張ボード、コンピュータに接続された機能拡張ユニットに備わるメモリなどに書込まれた後に実行されてもよい。このとき、機能拡張ボードや機能拡張ユニットに備わる1つまたは複数のプロセッシングエレメント、CPU等が実際の処理の一部または全部を行って、上述の画像処理装置の機能を実現してもよい。
【0062】
また、画像処理装置の各装置は、バス109によって接続されているが、一部の装置をネットワークI/F108により接続して構成してもよい。例えば、画像入力装置105をネットワークI/F108により接続して画像を入力するように構成してもよい。
また、特徴量抽出部202から背景モデル更新部208までの全てを集積回路チップに納め、画像入力装置105と一体化させてもよい。或いは、被写体検出部207のみをPC上に構成し、フレーム画像、前景領域情報(図11)等を、LANケーブルなどを介して受信し、物体領域情報を送信するようにしてもよい。
【0063】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0064】
上述した実施形態の構成によれば、より適切に被写体を検出することができる。
【0065】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0066】
101 CPU、102 ROM、103 RAM、104 2次記憶装置、105 画像入力装置、106 入力装置、107 表示装置、108 ネットワークI/F、109 バス
【特許請求の範囲】
【請求項1】
入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出手段と、
前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶手段と、
前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定手段と、
前記入力状態判定手段で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定手段と、
前記前景領域に対して所定の被写体の検出を行う被写体検出手段と、
前記被写体検出手段の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記背景モデル更新手段は、前記被写体検出手段において、前記被写体が検出されなかった領域について、前記背景モデル中の状態の時間情報を補正することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記背景モデル更新手段は、前記前景背景判定手段において、前記前景領域と前記被写体の被写体領域との論理積領域について、前記背景モデル中の状態の時間情報を補正することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記被写体検出手段の結果に基づいて、前記入力映像の画素または部分領域ごとに被写体確信度を算出する被写体確信度算出手段を更に備え、
前記背景モデル更新手段は、前記被写体確信度に基づいて前記背景モデルの更新を行うことを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記被写体確信度算出手段は、前記被写体を含む画像から統計的に求めた被写体確信度の分布に基づいて被写体確信度を算出することを特徴とする請求項4記載の画像処理装置。
【請求項6】
入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出工程と、
前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶工程と、
前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定工程と、
前記入力状態判定工程で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定工程と、
前記前景領域に対して所定の被写体の検出を行う被写体検出工程と、
前記被写体検出工程の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新工程と、
を有することを特徴とする画像処理方法。
【請求項7】
請求項6記載の画像処理方法の各工程をコンピュータに実行させるプログラム。
【請求項1】
入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出手段と、
前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶手段と、
前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定手段と、
前記入力状態判定手段で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定手段と、
前記前景領域に対して所定の被写体の検出を行う被写体検出手段と、
前記被写体検出手段の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記背景モデル更新手段は、前記被写体検出手段において、前記被写体が検出されなかった領域について、前記背景モデル中の状態の時間情報を補正することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記背景モデル更新手段は、前記前景背景判定手段において、前記前景領域と前記被写体の被写体領域との論理積領域について、前記背景モデル中の状態の時間情報を補正することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記被写体検出手段の結果に基づいて、前記入力映像の画素または部分領域ごとに被写体確信度を算出する被写体確信度算出手段を更に備え、
前記背景モデル更新手段は、前記被写体確信度に基づいて前記背景モデルの更新を行うことを特徴とする請求項1記載の画像処理装置。
【請求項5】
前記被写体確信度算出手段は、前記被写体を含む画像から統計的に求めた被写体確信度の分布に基づいて被写体確信度を算出することを特徴とする請求項4記載の画像処理装置。
【請求項6】
入力映像の画素または部分領域ごとに特徴量を抽出する特徴量抽出工程と、
前記特徴量と時間情報とを組みとした複数の状態を背景モデルとして記憶する背景モデル記憶工程と、
前記入力映像の特徴量と前記背景モデルとを比較して前記入力映像に類似する前記背景モデル中の状態を判定し、類似すると判定した状態の時間情報を更新する入力状態判定工程と、
前記入力状態判定工程で類似すると判定された状態の時間情報に基づいて前景領域を判定する前景背景判定工程と、
前記前景領域に対して所定の被写体の検出を行う被写体検出工程と、
前記被写体検出工程の結果に基づいて前記背景モデル中の状態の時間情報を補正する背景モデル更新工程と、
を有することを特徴とする画像処理方法。
【請求項7】
請求項6記載の画像処理方法の各工程をコンピュータに実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2012−234494(P2012−234494A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−104517(P2011−104517)
【出願日】平成23年5月9日(2011.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願日】平成23年5月9日(2011.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]