(58)【調査した分野】(Int.Cl.,DB名)
前記オブジェクト数検出部は、前記フレーム画像抽出部が抽出した複数のフレーム画像について検出した撮像されているオブジェクトの個数に基づき、入力された動画像における撮像されているオブジェクトの個数の変動を推定し、
前記分割処理部は、前記オブジェクト数検出部が推定した、入力された動画像における撮像されているオブジェクトの個数の変動に基づき、この動画像を複数の処理ブロックに分割する、請求項1に記載の画像処理装置。
前記分割処理部は、前記動画像入力部に入力された動画像を処理ブロックに分割するとき、時間的に連続する処理ブロックに共通するフレーム画像を存在させる、請求項1〜3のいずれかに記載の画像処理装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上述のマルチスレッド方式では、時間的に連続する処理ブロック間で、追跡しているオブジェクトを同定する(処理結果を統合する)マージ処理が必要になる。このマージ処理は、同定するオブジェクトの個数が多くなるにつれて、その処理時間が長くなる。
【0006】
このため、マルチスレッド方式による動画像に撮像されているオブジェクトを追跡する処理において、マージ処理を効率的に行い、処理時間を短縮する技術が要望されている。
【0007】
この発明の目的は、マルチスレッド方式による動画像に撮像されているオブジェクトの追跡にかかる処理において、マージ処理が効率的に行え、処理時間を十分に短縮することができる技術を提供することにある。
【課題を解決するための手段】
【0008】
この発明の画像処理装置は、上述の目的を達するために、以下のように構成している。
【0009】
フレーム画像抽出部は、入力された動画像にかかるフレーム画像を、予め定めたフレーム抽出間隔で抽出する。この動画像は、例えばビデオカメラで撮像した動画像である。フレーム画像抽出部におけるフレーム抽出間隔は、例えば数フレーム〜数十フレーム程度である。ただし、フレーム抽出間隔は、上記の範囲外に設定してもよいことはいうまでもない。また、フレーム抽出間隔は、動画像からサンプル的に抽出したフレーム画像に撮像されているオブジェクトの個数に応じて定める構成としてもよい。また、この場合、フレーム抽出間隔は、撮像されているオブジェクトの個数に応じて、動的に変化させてもよい。
【0010】
分割処理部は、入力された動画像を複数の処理ブロックに分割する。オブジェクト追跡部は、分割処理部が分割した複数の処理ブロックをマルチスレッドで処理し、この動画像に撮像されているオブジェクトを追跡する。マージ処理部は、分割処理部が分割した複数の処理ブロックについて、オブジェクト追跡部がマルチスレッドで処理したオブジェクトの追跡結果を統合する。
【0011】
また、この画像処理装置は、フレーム画像抽出部が抽出した複数のフレーム画像について、そのフレーム画像に撮像されているオブジェクトの個数を検出するオブジェクト数検出部を備えている。そして、分割処理部は、フレーム画像抽出部が抽出した複数のフレーム画像について、オブジェクト数検出部が検出したオブジェクトの個数に基づき、入力された動画像を複数の処理ブロックに分割する。
【0012】
例えば、分割処理部は、入力された動画像において、撮像されているオブジェクトの個数が予め定めた値以上である箇所を、それ以外の箇所よりもフレーム数を多くした処理ブロックに分割する。これにより、時間的に連続する処理ブロック間で処理結果を統合するマージ処理において、同定するオブジェクトの個数が比較的多いマージ処理の回数が抑えられる。これにより、マルチスレッド方式による動画像に撮像されているオブジェクトを追跡する処理において、マージ処理にかかる処理時間を短縮することができる。
【0013】
また、オブジェクト数検出部は、フレーム画像抽出部が抽出した複数のフレーム画像について検出した撮像されているオブジェクトの個数に基づき、入力された動画像における撮像されているオブジェクトの個数の変動を推定する構成としてもよい。このようにすれば、オブジェクト数検出部が撮像されているオブジェクトの個数を検出するフレーム画像を抑えることができ、動画像に撮像されているオブジェクトの追跡にかかる処理が一層効率的に行える。この場合、分割処理部は、オブジェクト数検出部が推定した、入力された動画像における撮像されているオブジェクトの個数の変動に基づき、この動画像を複数の処理ブロックに分割すればよい。
【0014】
また、分割処理部は、動画像入力部に入力された動画像を処理ブロックに分割するとき、時間的に連続する処理ブロックに共通するフレーム画像を存在させる構成としてもよい。
【0015】
このように構成すれば、時間的に連続する処理ブロック間でのマージ処理において、同じフレーム画像を用いてオブジェクトを同定することができる。したがって、オブジェクトの同定にかかる処理を簡単にすることができるとともに、オブジェクトの同定精度の低下を抑えることができるので、オブジェクトの追跡が適正に行える。
【0016】
また、この発明にかかる画像処理装置は、入力された動画像を、複数の処理ブロックに分割する分割処理部と、この分割処理部が分割した複数の処理ブロックをマルチスレッドで処理し、この動画像に撮像されているオブジェクトを追跡するオブジェクト追跡部と、このオブジェクト追跡部がマルチスレッドで処理したオブジェクトの追跡結果を統合するマージ処理部と、を備え、分割処理部が、入力された動画像を処理ブロックに分割するとき、時間的に連続する処理ブロックに共通するフレーム画像を存在させる、構成としてもよい。この構成でも、上述したように、時間的に連続する処理ブロック間でのマージ処理において、同じフレーム画像を用いてオブジェクトを同定することができる。したがって、オブジェクトの同定にかかる処理を簡単にすることができるので、マージ処理にかかる処理時間を短縮することができる。また、上述したように、オブジェクトの同定精度の低下を抑えることができるので、オブジェクトの追跡が適正に行える。
【0017】
また、この発明にかかる画像処理方法は、上述した画像処理装置が備える各部の機能をコンピュータで実行する発明である。
【0018】
また、この発明にかかる画像処理プログラムは、上述した画像処理装置が備える各部の機能をコンピュータに実行させる発明である。
【発明の効果】
【0019】
この発明によれば、マルチスレッド方式による動画像に撮像されているオブジェクトの追跡にかかる処理において、マージ処理が効率的に行え、処理時間を十分に短縮することができる。
【発明を実施するための形態】
【0021】
以下、この発明の実施形態である画像処理装置について説明する。
【0022】
図1は、この例にかかる画像処理装置の主要部の構成を示すブロック図である。この画像処理装置1は、画像入力部2と、動画像記憶部3と、画像処理プロセッサ4と、出力部5と、を備えている。この画像処理装置1は、この発明にかかる画像処理プログラムをインストールしたパーソナルコンピュータ(PC)で実現できる。この画像処理プログラムを実行するコンピュータは、この例では画像処理プロセッサ4である。また、この発明にかかる画像処理方法を実行するコンピュータも、同様に、この例では画像処理プロセッサ4である。
【0023】
この例では、画像入力部2には、ビデオカメラ10が接続されている。ビデオカメラ10の撮像エリアは、オブジェクトの検出、および検出したオブジェクトの移動を追跡する監視エリアである。画像入力部2には、ビデオカメラ10が撮像した撮像エリアの動画像が入力される。ビデオカメラ10が画像入力部2に入力する動画像は、1秒間に10〜30フレームである。追跡対象のオブジェクトは、人や車両等の移動体だけでなく、放置された物体(非移動体)も含む。ただし、撮像エリア内(監視エリア内)に位置する、ベンチ、柵、ごみ箱等の設置物は背景であり、追跡対象のオブジェクトではない。
【0024】
なお、画像入力部2に接続される機器は、上述のビデオカメラ10に限らず、動画像を記録した記録メディア等であってもよい。
【0025】
動画像記憶部3は、画像入力部2に入力された動画像を記録するハードディスク等の記録媒体である。画像入力部2に入力された動画像は、公知のMPEG2等で圧縮して動画像記憶部3に記録される。
【0026】
画像処理プロセッサ4は、動画像記憶部3に記憶している動画像、すなわち画像入力部2に入力された動画像、を処理し、撮像されているオブジェクトの検出や、追跡にかかる処理(以下、追跡処理と言う。)を行う。この画像処理プロセッサ4が、この発明で言う、フレーム画像抽出部、オブジェクト数検出部、分割処理部、オブジェクト追跡部、およびマージ処理部に相当する構成を有する。
【0027】
出力部5は、画像処理プロセッサ4におけるオブジェクトの検出や、追跡にかかる処理結果を上位装置に出力する。
【0028】
なお、この画像処理装置1は、画像入力部2、動画像記憶部3、画像処理プロセッサ4、出力部5等の各部を制御する主制御部(不図示)を備えている。
【0029】
図2は、画像処理プロセッサの機能構成を示すブロック図である。画像処理プロセッサ4は、フレーム画像抽出部41と、オブジェクト数検出部42と、分割処理部43と、オブジェクト追跡部44と、マージ処理部45と、を備えている。
【0030】
フレーム画像抽出部41は、画像入力部2に入力され、動画像記憶部3に記憶している処理対象の動画像にかかるフレーム画像を、予め定めたフレーム抽出間隔で抽出する。このフレーム抽出間隔は、数フレーム〜数十フレームである。ここで抽出されるフレーム画像の時間間隔は、数百ms〜1s程度である。ただし、フレーム抽出間隔は、上記の範囲外に設定してもよいことはいうまでもない。また、フレーム抽出間隔は固定値であってもよいし、変動値であってもよい。また、フレーム抽出間隔は、動画像からサンプル的に抽出したフレーム画像に撮像されているオブジェクトの個数に応じて定める構成としてもよい。この場合、フレーム抽出間隔は、撮像されているオブジェクトの個数に応じて、動的に変化させてもよい。
【0031】
オブジェクト数検出部42は、フレーム画像抽出部41が抽出したフレーム画像に対して、そのフレーム画像に撮像されているオブジェクトの個数を検出する。また、オブジェクト数検出部42は、抽出した複数のフレーム画像について検出したオブジェクトの個数に基づき、処理対象である動画像に撮像されているオブジェクトの個数の変動(時間経過にともなう変動)を推定する。この推定精度は、上述のフレーム抽出間隔を小さくすれば向上できるが、処理時間が長くなる。したがって、上述のフレーム抽出間隔は、この推定精度と、処理時間を考慮して決定している。ここでは、フレーム抽出間隔を4フレームとして場合を例にして説明する。
【0032】
分割処理部43は、オブジェクト数検出部42が推定した処理対象である動画像における処理負荷の大きさの変動に基づいて、処理対象である動画像を複数のフレーム画像からなる処理ブロックに分割する。処理ブロックのフレーム数は、一定ではない。また、処理ブロックは、時間的に連続するフレーム画像で構成される。さらに、時間的に連続する処理ブロックには、同じフレーム画像が含まれている。
【0033】
オブジェクト追跡部44は、複数のコアを備え、分割処理部43が分割した処理ブロックをマルチスレッド方式で並行処理する。
図2では、4つのコア(コアA、コアB、コアC、およびコアD)を図示したが、オブジェクト追跡部44が備えるコアの数は2つ以上であればいくつであってもよい。オブジェクト追跡部44は、分割された処理ブロック単位で、各コア(コアA〜コアD)が撮像されているオブジェクトの追跡処理を行う。
【0034】
マージ処理部45は、オブジェクト追跡部44の各コア(コアA〜コアD)が分割された処理ブロック単位で行ったオブジェクトの追跡結果を統合するマージ処理を行う。
【0035】
以下、この例にかかる画像処理装置1の動作について詳細に説明する。画像処理装置1は、処理対象の動画像を動画像記憶部3に記憶している。
【0036】
図3は、画像処理プロセッサの動作を示すフローチャートである。画像処理プロセッサ4は、フレーム画像抽出部41において動画像記憶部3に記憶している処理対象の動画像にかかるフレーム画像を予め定めたフレーム抽出間隔で抽出するフレーム画像抽出処理を行う(s1)。
図4は、mフレーム(F1〜Fm)で構成されている処理対象の動画像から、予め定めたフレーム抽出間隔でフレーム画像を抽出する例を示している。
図4に示す例では、フレーム抽出間隔は4フレームである。
【0037】
フレーム抽出間隔が固定値である場合、予め設定しているフレーム抽出間隔をxフレームとすると、処理対象の動画像における(a×x)番目のフレーム画像を抽出する。ただし、aは自然数である。このs1で抽出されるフレーム画像(以下、抽出フレームと言う。)のフレーム数は、この例では、m/4(小数点以下切り捨て。)である。
【0038】
なお、この例ではフレーム抽出間隔を固定値(4フレーム)にしているが、変動値にしてもよい。
【0039】
画像処理プロセッサ4は、オブジェクト数検出部42において、s1で抽出した抽出フレーム毎に、そのフレーム画像に撮像されているオブジェクトの個数を検出するオブジェクト数検出処理を行う(s2)。s2は、公知のパターンマッチングや背景差分等で撮像されているオブジェクトを検出し、撮像されているオブジェクトの個数を得る処理である。このs2にかかる処理は、撮像されているオブジェクトの個数を得ることができればよいので、撮像されているオブジェクトの属性(形状等の特徴量)まで検出する必要はない。
【0040】
図5では、撮像されているオブジェクトが2であるフレーム画像(フレームFn)、撮像されているオブジェクトが5であるフレーム画像(フレームFn+4)、および、撮像されているオブジェクトが3であるフレーム画像(フレームFn+8)を図示している。
【0041】
画像処理プロセッサ4は、オブジェクト数検出部42において、s2で検出した各抽出フレームに撮像されているオブジェクトの個数に基づき、処理対象の動画像に撮像されているオブジェクトの個数の変動を推定するオブジェクト数変動推定処理を行う(s3)。s3では、
図6に示すように、処理対象の動画像全体に渡って、フレーム画像に撮像されているオブジェクトの数の変動を推定する処理である。すなわち、抽出フレームに対する撮像されているオブジェクトの個数の検出結果に基づき、抽出フレーム以外のフレーム画像について、撮像されているオブジェクトの個数を推定する処理である。
【0042】
s3にかかるオブジェクト数変動推定処理の推定精度は、上述のフレーム抽出間隔を小さくすることで向上できるが、その処理時間(s1〜s3(特に、s2)の処理にかかる時間)が長くなる。したがって、上述のフレーム抽出間隔は、s1〜s3にかかる処理時間と、s3にかかるオブジェクト数変動推定処理の推定精度と、を考慮して定めればよい。
【0043】
画像処理プロセッサ4は、分割処理部43において、s3で推定した処理対象の動画像における処理負荷量の大きさの変動に基づいて、この動画像を処理ブロックに分割する分割処理を行う(s4)。このs4にかかる分割処理では、まず、処理対象の動画像に対して分割点を決定する。
【0044】
この分割点を決定する手法の例を以下に示す。
【0045】
(1)分割処理部43は、この処理対象の動画像の先頭フレームから、予め定めたAフレーム毎に分割点を仮決定する。例えば、2フレーム毎に、分割点を仮決定する。分割処理部43は、仮決定した分割点毎に、その直後のフレーム画像に撮像されているオブジェクトの個数(s2での検出数、またはs3での推定値)が予め定めた個数(例えば5個)未満であれば、この分割点を本決定し、反対に、予め定めた個数(例えば5個)以上であれば、この分割点の仮決定を取り消す。これにより、撮像されているオブジェクトの個数が比較的多い(この例では、5個以上である)フレーム画像の直前に分割点が設定されることがない。
【0046】
(2)また、上記(1)の例では、隣接する分割点間に位置するフレーム画像のフレーム数の差が大きくなることがある。後述するように、ここで決定した分割点に基づいて、動画像を処理ブロックに分割するので、分割した処理ブロック間で、処理負荷の差が大きくなる。このため、仮決定した分割点について、その仮決定を取り消すことができない制限を加えるのが好ましい。例えば、仮決定した分割点について、時間的に直前の分割点が取り消されている場合、この分割点を本決定する制限を設けるのが好ましい。これにより、隣接する分割点間に位置するフレーム画像のフレーム数の差が大きくなるのを防止できる。
【0047】
なお、上述の仮決定を取り消すことができない分割点の制限は、隣接する分割点間に位置するフレーム画像のフレーム数を最大で2倍に抑える例であるが、3倍や4倍に抑える制限であってもよい。
【0048】
(3)また、s3の処理結果に基づき、撮像されているオブジェクトの個数が予め定めた個数未満であるフレーム画像の直前に分割点を決定する。この場合、隣接する分割点の間に位置するフレーム画像のフレーム数の最小値(例えば、2フレーム(ただし、最小値は2フレーム以上))や、最大値(例えば、4フレーム)を設定しておき、この制限に基づいて分割点を決定するのが好ましい。
【0049】
この分割点の決定は、分割点の直後のフレーム画像に撮像されているオブジェクトの個数が予め定めた個数以上である分割点の総数が、予め定めたAフレーム毎に分割点を決定した場合よりも少なくなる手法であれば、上記(1)〜(3)に示した方法以外であってもよい。
【0050】
図7は、上記(2)の手法で決定した分割点を例示している。この図では、Fn+3と、Fn+4との間に仮決定された分割点が取り消されている。
【0051】
分割処理部43は、処理対象の動画像に対して、
図7に示す分割点を決定すると、分割点毎に、その直後のフレーム(分割開始フレーム)から、次の分割点の直後のフレーム(次の分割開始フレーム)までを、1つの処理ブロックとする分割を行う。したがって、この例では処理ブロックは、3フレーム、または5フレームで構成される。また、
図7に示すように、時間的に連続する2つの処理ブロックは、一方の最終フレームと、他方の先頭フレームとが同じフレーム画像である。
【0052】
図7では、時間的に連続する2つの処理ブロックに共通して含まれるフレームを、分割点直後のフレーム(分割開始フレーム)とした例を示したが、分割点直前のフレームにしてもよい。この場合、分割点毎に、その直前のフレームから、次の分割点の直前のフレームまでを、1つの処理ブロックとする分割を行えばよい。
【0053】
画像処理プロセッサ4は、オブジェクト追跡部44において、オブジェクトの追跡処理を行う(s5)。オブジェクト追跡部44は、分割処理部43が分割した処理ブロックをマルチスレッド方式で並行処理する。具体的には、4つのコア(コアA、コアB、コアC、およびコアD)が、分割された処理ブロック単位で、撮像されているオブジェクトの追跡処理を行う。
【0054】
この追跡処理では、各コアは、処理ブロックに含まれているフレーム画像毎に撮像されているオブジェクトを検出するとともに、検出したオブジェクト毎にフレーム画像上の位置を取得する。また、検出したオブジェクトをフレーム画像間で対応付け、オブジェクトマップを作成する。ここで作成するオブジェクトマップでは、検出したオブジェクト毎に、仮IDを付与している。例えば、コアAは、検出したオブジェクトに対して、A1、A2・・・等の仮IDを付与する。コアBは、検出したオブジェクトに対して、B1、B2・・・等の仮IDを付与する。コアCは、検出したオブジェクトに対して、C1、C2・・・等の仮IDを付与する。コアDは、検出したオブジェクトに対して、D1、D2・・・等の仮IDを付与する。
【0055】
図8(A)は、コアAが
図7に示すFn〜Fn+2までの処理ブロックに対する追跡処理で作成したオブジェクトマップを示す図である。また、
図8(B)は、コアBが
図7に示すFn+2〜Fn+6までの処理ブロックに対する追跡処理で作成したオブジェクトマップを示す図である。オブジェクトマップは、
図8に示すように、検出したオブジェクトに付与した仮ID毎に、フレーム画像と、そのフレーム画像上の位置(座標)とを対応付けて登録したものである。
図8に示すオブジェクトマップにおいて、その位置が示されていないオブジェクトは、当該フレーム画像に撮像されていなかったオブジェクトである。すなわち、
図8において、仮IDがA4であるオブジェクトは、フレーム番号Fnのフレーム画像に撮像されていない。また、仮IDがA5であるオブジェクトは、フレーム番号Fn、およびフレーム番号Fn+1のフレーム画像に撮像されていない。また、仮IDがB3であるオブジェクトは、フレーム番号Fn+5、およびフレーム番号Fn+6のフレーム画像に撮像されていない。また、仮IDがB5であるオブジェクトは、フレーム番号Fn+6のフレーム画像に撮像されていない。
【0056】
このように、オブジェクト追跡部44は、複数のコアによるマルチスレッドで分割した処理ブロックに撮像されているオブジェクトの追跡処理を行い、
図8に示したオブジェクトマップを作成する。
【0057】
画像処理プロセッサ4は、マージ処理部45において、各コアが作成したオブジェクトマップを統合するマージ処理を行う(s6)。s6では、時間的に連続する処理ブロックにかかるオブジェクトマップ間において、仮IDが付与されているオブジェクトを同定する処理である。具体的には、時間的に連続する処理ブロックにかかるオブジェクトマップには、共通するフレーム画像が含まれている。
図8に示す例では、フレーム番号Fn+4が共通するフレーム画像である。このフレーム画像において、検出されているオブジェクトの位置がほぼ同じであるオブジェクトを、同一のオブジェクトとして同定する。例えば
図8に示す例では、仮IDがA1であるオブジェクトと、仮IDがB5であるオブジェクトとを、同一のオブジェクトとして同定する。仮IDがA2であるオブジェクトと、仮IDがB3であるオブジェクトとを、同一のオブジェクトとして同定する。仮IDがA3であるオブジェクトと、仮IDがB2であるオブジェクトとを、同一のオブジェクトとして同定する。仮IDがA4であるオブジェクトと、仮IDがB4であるオブジェクトとを、同一のオブジェクトとして同定する。仮IDがA5であるオブジェクトと、仮IDがB1であるオブジェクトとを、同一のオブジェクトとして同定する。
【0058】
このように、処理対象の動画像を処理ブロックに分割するときに、時間的に連続する処理ブロックに同じフレーム画像を含ませているので、s6にかかるマージ処理の精度を十分に確保できる。また、このマージ処理が比較的簡単な処理(検出位置の突き合わせる処理)で行えるので、マージ処理にかかる処理時間を一層短縮できる。
【0059】
また、画像処理プロセッサ4は、このマージ処理で同定したオブジェクトに対して、本IDを付与することで、処理対象の動画像全体にわたって、撮像された各オブジェクトを区別したオブジェクトマップを構築できる。すなわち、処理対象の動画像全体にわたって、撮像されているオブジェクトの追跡結果を示すオブジェクトマップを得ることができる。
【0060】
このように、この例にかかる画像処理装置1は、同定するオブジェクトの個数が比較的多いマージ処理の回数を抑えることができる。したがって、マルチスレッド方式による動画像に撮像されているオブジェクトの追跡にかかる処理において、マージ処理が効率的に行え、処理時間を十分に短縮することができる。
【0061】
また、時間的に連続する処理ブロックに同じフレーム画像を含ませているので、マージ処理におけるオブジェクトの同定精度の低下を抑えることができる。また、このマージ処理が比較的簡単な処理で行えるので、マージ処理にかかる処理時間を一層短縮できる。
【0062】
なお、上述した例における、s1〜s4、およびs6にかかる処理は、
図2に示したいずれかのコアA〜Dが実行してもよいし、図示していない別のコアで実行してもよい。
【0063】
また、画像処理プロセッサ4は、
図9に示すように、上述のフレーム画像抽出部41、およびオブジェクト数検出部42を備えていない構成であってもよい。
【0064】
この場合、画像処理プロセッサ4は、
図10に示す処理を行えばよい。画像処理プロセッサ4は、分割処理部43において、処理対象の動画像の先頭フレームから、予め定めたAフレーム毎に分割点を決定する(s11)。画像処理プロセッサ4は、オブジェクト追跡部44において、オブジェクトの追跡処理を行う(s12)。画像処理プロセッサ4は、マージ処理部45において、各コアが作成したオブジェクトマップを統合するマージ処理を行う(s13)。
【0065】
s12は、上述のs5と同じ処理であり、s13は上述のs6と同じ処理である。
【0066】
この例では、処理対象の動画像に対して分割点が均等に決定されるので、上述の例のように、同定するオブジェクトの個数が比較的多いマージ処理の回数を抑えることはできない。しかしながら、処理対象の動画像を処理ブロックに分割するときに、時間的に連続する処理ブロックに同じフレーム画像を含ませているので、上述したように、s13にかかるマージ処理の精度を十分に確保できる。また、このマージ処理が比較的簡単な処理で行えるので、マージ処理にかかる処理時間を一層短縮できる。
【0067】
なお、上記の例では、複数のコアを備える画像処理プロセッサ4で、分割処理部43が分割した処理ブロックをマルチスレッド方式で並行処理する構成としたが、複数のPCを結合したPCクラスタで、分割処理部43が分割した処理ブロックをマルチスレッド方式で並行処理する構成としてもよい。