まず、撮像装置から見て重なっている複数の人物を撮像したときの画像内の人物同士の関係を説明する。
図1Aは、撮像装置と人物との関係の一例を示す図である。図1Bは、撮像装置と人物とが図1Aに示した関係である場合に撮像装置で撮像した画像内の人物の関係を示す図である。図2Aは、撮像装置と人物との関係の別の例を示す図である。図2Bは、撮像装置と人物とが図2Aに示した関係である場合に撮像装置で撮像した画像内の人物の関係を示す図である。
図1Aに示すように、定点観測や監視に用いる撮像装置2は、例えば、地面5上を移動する人物6A,6B等の身長よりも高い位置に、光軸200が俯角になる向きで設置される。ここで、撮像装置2の撮像範囲に身長がほぼ同じ二人の人物6A,6Bがいて、この二人の人物6A,6Bの撮像装置2からの距離が異なる場合を考える。
このとき、撮像装置2から見た人物6A,6Bの頭頂部への視線は、撮像装置2から近いほうの人物6Aの頭頂部への視線201の俯角が、撮像装置2から遠いほうの人物6Bの頭頂部への視線202の俯角よりも大きくなる。そのため、撮像装置2から見て二人の人物6A,6Bが重なっている場合、図1Bに示すように、撮像装置2で撮像した画像700では、撮像装置2から近いほうの人物6Aの頭部が、遠いほうの人物6Bの頭部よりもΔd1だけ下方に位置している。
ところが、撮像装置2の撮像範囲内を移動する人物は、撮像装置2からの距離が近いほうの人物の身長が遠いほうの人物の身長よりも高い場合がある。この場合、図2Aに示したように、撮像装置2から見た人物6C,6Dの頭頂部への視線は、撮像装置2から近いほうの人物6Cの頭頂部への視線203の俯角が、撮像装置2から遠いほうの人物6Dの頭頂部への視線204の俯角よりも小さくなることがある。撮像装置2から近いほうの人物6Cへの視線の俯角のほうが小さい場合、撮像装置2から見て二人の人物6C,6Dが重なっていると、撮像装置2で撮像した画像は、図2Bに示す画像701のようになる。画像701では、撮像装置2から近いほうの人物6Cの頭部が、遠いほうの人物6Dの頭部よりもΔd2だけ上方に位置している。
また、詳細な説明は省略するが、撮像装置2の光軸が仰角である場合、重なる人物の身長が同程度であれば撮像装置2から近いほうの人物の頭部が画面の上方になる。しかしながら、撮像装置2から近いほうの人物の身長が撮像装置2から遠いほうの人物の身長よりも低い場合、撮像装置2から近いほうの人物の頭部が画面の下方になることもある。
このように、画像内で重なる人物の頭部の位置と撮像装置2からの距離との関係は、重なる人物の身長や重なる人物同士の距離により変化する。そのため、画像内で重なる人物の頭部の上下関係に基づいて人物の前後関係を判定する場合、判定を誤ることがある。
図3は、一実施形態に係る監視装置の機能的構成を示すブロック図である。
図3に示すように、本実施形態に係る監視装置1は、画像取得部100と、人物位置推定部101と、重なり領域検出部102と、前後関係判定部103と、人物追跡部104と、人物検出部105と、画像出力部106と、記憶部107と、を備える。
画像取得部100は、撮像装置2で撮像した動画像データを取得する。また、画像取得部100は、例えば、取得した動画像データをフレーム毎に人物位置推定部101、及び人物検出部105に出力する。以下、取得した動画像データを単に動画像ともいう。
人物位置推定部101は、取得した動画像における過去のフレームから検出された人物の位置情報に基づいて、現在の処理対象フレームに存在する人物の位置を推定する。また、人物位置推定部101は、推定した人物の位置に基づいて、現在の処理対象フレームに追跡中の人物についての人物領域を設定する。このとき、人物位置推定部101は、過去のフレームから検出された人物の位置情報を、記憶部107から読み出す。ここで、過去のフレームは、後述する画像処理を既に行ったフレームである。以下、過去のフレームから検出された人物のことを追跡中の人物ともいう。
重なり領域検出部102は、現在の処理対象フレームにおける追跡中の人物の位置に基づいて複数の人物が重なっている領域の有無を判定し、重なっている領域がある場合にはその重なり領域の位置及び寸法を算出する。また、重なり領域検出部102は、重なっている複数の人物のなかから、撮像装置2に最も近い位置にいる人物の候補を選出する。以下、重なっている複数の人物のうち撮像装置2に最も近い位置にいる人物を最前の人物という。重なり領域検出部102は、現在の処理対象フレーム、及び重なり領域の検出結果を前後関係判定部103に出力する。
前後関係判定部103は、重なり領域検出部102の検出結果と、重なっている人物についての照合用データとに基づいて、最前の人物の候補が最前の人物であるか否かを判定し、重なっている人物の前後関係を特定する。このとき、前後関係判定部103は、照合用データを記憶部107から読み出す。照合用データは、例えば、過去のフレームから抽出した、追跡中の人物の特徴部分を含む画像データである。また、人物の前後関係は、撮像装置2から見た奥行き方向での人物の位置関係であり、撮像装置2から見て撮像装置2により近い位置にいる人物を前(手前)にいる人物とする。前後関係判定部103は、現在の処理対象フレーム、及び特定した人物の前後関係を人物追跡部104に出力する。
人物追跡部104は、追跡中の人物の位置の推定結果と、重なっている人物の前後関係と、追跡中の人物の照合用データとに基づいて、追跡中の人物についての現在の処理対象フレームにおける位置を特定する。このとき、人物追跡部104は、照合用データを記憶部107から読み出す。また、人物追跡部104は、現在の処理対象フレームにおける追跡中の人物の位置を、複数の人物を識別する数字等の識別子と対応付けて記憶部107に格納する。更に、人物追跡部104は、特定した追跡中の人物の位置を人物検出部105に出力する。
人物検出部105は、現在の処理対象フレームから、過去のフレームには存在していない人物を検出する。人物検出部105は、例えば、Histograms of Oriented Gradients(HOG)特徴量を用いた人物検出処理により、現在の処理対象フレームに存在する人物を検出する。また、人物検出部105は、現在の処理対象フレームから検出した人物の位置と、人物追跡部104で求めた追跡中の人物の現在の処理対象フレームにおける位置とに基づいて、現在の処理対象フレームに新たに追跡対象とする人物が存在するか否かを判定する。新たに追跡対象とする人物が存在する場合、人物検出部105は、その人物を識別する識別子と、位置と、照合用データとを記憶部107に格納する。照合用データは、例えば、人物検出処理において検出した人物を囲む矩形の枠内の画像データとする。人物検出部105は、現在の処理対象フレーム、及び現在の処理対象フレームから検出した人物の位置情報を画像出力部106に出力する。
画像出力部106は、例えば、撮像装置2から取得した動画像データに、追跡中の人物や新たに検出した人物を示す枠線等の情報を付加して表示装置3に出力する。画像出力部106は、例えば、人物検出部105から入力された追跡中の人物の位置情報及び新たに追跡対象となった人物の位置情報に基づいて、現在の処理対象フレームに枠線等の情報を付加する。
記憶部107は、追跡中の人物の位置、照合用データ等を記憶する。
図4は、監視装置が行う画像処理を示すフローチャートである。
監視装置1は、撮像装置2から取得した動画像データに対し図4に示したような画像処理を行い、撮像領域内を移動する人物を監視する。
監視装置1は、まず、撮像装置2で撮像した動画像の取得を開始する(ステップS1)。動画像の取得は、画像取得部100が行う。画像取得部100は、監視装置1による画像処理を終了するまで、撮像装置2から動画像を取得し、画像処理の単位となるフレーム毎に人物位置推定部101、及び人物検出部106に渡す処理を続ける。
人物位置推定部101は、処理対象のフレームが入力されると、人物位置推定処理(ステップS2)を行う。人物位置推定部101は、まず、記憶部107から読み出した追跡中の人物の位置情報に基づいて、追跡中の人物の現在の監視対象フレームにおける位置を推定する。また、人物位置推定部101は、推定した人物の位置に基づいて、現在の処理対象フレームに追跡中の人物についての人物領域を設定する。人物の位置の推定及び人物領域の設定を終えると、人物位置推定部101は、現在の処理対象フレーム、追跡中の人物を識別する識別子、及び設定した人物領域を重なり領域検出部102に出力する。なお、画像処理の開始直後で追跡中の人物の位置情報が不足している場合、人物位置推定部101は、人物位置推定処理を行わず、現在の処理対象フレーム、及び処理をスキップしたことを示す情報を重なり領域検出部102に出力する。
重なり領域検出部102は、人物位置推定部101から設定した人物領域等の情報を受け取ると、重なり領域検出処理(ステップS3)を行う。重なり領域検出部102は、まず、人物領域に基づいて、各人物について重なっている人物の有無を判定する。そして、重なっている人物がいる場合、重なり領域検出部102は、重なり領域の位置及び寸法を算出する処理を行う。更に、重なり領域検出部102は、重なっている複数の人物のなかから、撮像装置2に最も近い位置にいる最前の人物の候補を選出する。本実施形態では、重なっている複数の人物のうちフレーム(画面)内における頭部の位置が最も下方の人物を、最前の人物の候補に選出する。重なり領域を算出し、最前の人物の候補を選出すると、重なり領域検出部102は、現在の処理対象フレーム、及び検出した重なり領域に関する情報を前後関係判定部103に出力する。なお、人物位置推定部101が人物位置推定処理をスキップした場合、及び重なっている人物がいない場合、重なり領域検出部102は、現在の処理対象フレーム、及び重なり領域が存在しないことを示す情報を前後関係判定部103に出力する。
前後関係判定部103は、重なり領域検出部102から検出した重なり領域に関する情報等を受け取ると、前後関係判定処理(ステップS3)を行う。前後関係判定部103は、まず、現在の処理対象フレームと、重なり領域に関する情報と、記憶部107から読み出した重なる人物についての照合用データとに基づいて、最前の人物の候補が最前の人物であるか否かを判定する。当然のことであるが、最前の人物の候補が最前の人物であると判定した場合、前後関係判定部103は、最前の人物の候補を最前の人物に特定する。一方、最前の人物の候補が最前の人物ではないと判定した場合、前後関係判定部103は、最前の人物の候補を除く他の人物から最前の人物を特定する。例えば、重なっている人物が二人で、最前の人物の候補が最前の人物ではないと判定した場合、前後関係判定部103は、最前の人物の候補ではないほうの人物が最前の人物であると特定する。最前の人物の特定を終えると、前後関係判定部103は、現在の処理対象フレーム、及び特定した最前の人物の識別子を人物追跡部104に出力する。なお、重なり領域検出部102において重なり領域を検出しなかった場合、前後関係判定部103は、前後関係判定処理をスキップし、現在の処理対象フレーム、及び重なり領域が存在しないことを示す情報を人物追跡部104に出力する。
人物追跡部104は、前後関係判定部103から重なり領域における人物の前後関係を示す情報等を受け取ると、人物追跡処理(ステップS4)を行う。人物追跡部104は、現在の処理対象フレームにおける追跡中の人物の推定位置と、重なり領域の人物の前後関係と、各人物の照合用データとに基づいて、現在の処理対象フレームにおける追跡中の人物の位置を算出する。追跡中の人物の位置の算出は、照合用データをテンプレートとするテンプレートマッチングを用いて行う。テンプレートマッチングでは、現在の処理対象フレームにおいてテンプレート(照合用データ)との類似度が最も高い領域を算出する。人物追跡部104は、テンプレートマッチングの結果に基づき、照合用データとの類似度が最も高い領域を表す位置を追跡中の人物の位置に特定する。追跡中の人物の位置の特定を終えると、人物追跡部104は、特定した追跡中の人物の位置についての情報を人物検出部105に出力するとともに、記憶部107に記憶させた追跡中の人物の位置情報を更新する。
人物検出部105は、現在の処理対象フレームにおける追跡中の人物の位置情報を受け取ると、人物検出処理(ステップS6)を行う。人物検出部105は、現在の処理対象フレームに対しHOG特徴量等を用いた人物検出処理を行って検出した人物の位置情報と、追跡中の人物の位置情報とを比較し、新たに追跡対象とする人物の位置情報を抽出する。人物検出部105は、現在の処理対象フレームに新たに追跡対象とする人物が存在する場合、当該人物に識別子を付与し、位置情報や照合用データを記憶部107に記憶させる。また、人物検出部105は、現在の処理対象フレーム、及び検出した人物の位置情報を画像出力部106に出力する。なお、人物検出部105が行う人物検出処理のうち、HOG特徴量等を用いて現在の処理対象フレームから人物を検出する処理は、ステップS2〜S5の後に限らず、ステップS2〜S5と並列に行ってもよい。
画像出力部106は、人物検出部105から現在の処理対象フレーム、及び当該処理対象フレームから検出した人物の位置情報を受け取ると、現在の処理対象フレームに対する画像処理の結果を出力する(ステップS7)。画像出力部106は、例えば、現在の処理対象フレームに検出した人物を囲む枠線等を付加した表示データを作成し、作成した表示データを表示装置3に出力する。
上記ステップS2〜S7の処理を行った後、監視装置1は、処理を続けるか否かを判定する(ステップS8)。処理を続ける場合(ステップS8;Yes)、監視装置1は、次のフレームを現在の処理対象フレームとしてステップS2〜S7を行う。一方、処理を続けない場合(ステップS8;No)、監視装置1は、画像処理(監視処理)を終了する。
以下、ステップS2〜S5の処理について、図5〜図12Bを参照して詳細に説明する。
図5は、人物位置推定処理の内容を示すフローチャートである。
図4に示したフローチャートの人物位置推定処理(ステップS2)は、上記のように人物位置推定部101が行う。人物位置推定部101は、人物位置推定処理として、図5に示したような処理を行う。
人物位置推定部101は、まず、記憶部107に追跡中の人物の位置情報があるか否かをチェックする(ステップS200)。ステップS200において、人物位置推定部101は、現在の処理対象フレームの直前2フレームの人物の位置情報が記憶部107に記憶されているかをチェックする。ここで、人物の位置情報は、撮像装置2で撮像した動画像におけるカメラ座標系での座標とする。
人物の位置情報がない場合(ステップS200;No)、人物位置推定部101は、ステップS201以降の処理をスキップし、人物位置推定処理を終了する(リターン)。なお、図5では省略しているが、人物の位置情報がない場合、人物位置推定部101は、現在の処理対象フレーム、及び追跡中の人物が存在しないことを示す情報を重なり領域検出部102に出力してから人物位置推定処理を終了する。
一方、人物の位置情報がある場合(ステップS200;Yes)、人物位置推定部101は、次に、記憶部107から過去の2フレームにおける人物の位置情報を読み出す(ステップS201)。
次に、人物位置推定部101は、読み出した位置情報を用いて、追跡中の人物の移動量を算出する(ステップS202)。人物の移動量は、現在の処理対象フレームの2フレーム前の位置から1フレーム前の位置までの距離と、2フレーム前の位置から1フレーム前の位置への移動方向とで表される。本実施形態では、現在の処理対象フレームの1フレーム前の位置を示す座標と2フレーム前の位置を表す座標との差分を移動量とする。また、ステップS201で複数の人物の位置情報を読み出した場合、人物位置推定部101は、ステップS202において読み出した人数分の移動量を人物毎に算出する。
次に、人物位置推定部101は、算出した移動量に基づいて、現在の処理対象フレームにおける追跡中の人物の位置を推定する(ステップS203)。ステップS203において、人物位置推定部101は、1フレーム前の位置を表す座標に算出した移動量を加算して得られる座標を、現在の処理対象フレームにおける追跡中の人物の推定位置とする。
次に、人物位置推定部101は、ステップS203で推定した人物の位置に基づいて、人物領域を設定する(ステップS204)。本実施形態では、人物位置推定部101は、例えば、1フレーム前における人物領域と、ステップS202で算出した移動量とに基づいて、現在の処理対象フレームに追跡中の人物についての人物領域を設定する。
人物領域の設定を終了すると、人物位置推定部101は、現在の処理対象フレーム、推定した人物の位置、及び設定した人物領域を重なり領域検出部102に出力し、人物位置推定処理を終了する。なお、ステップS203において推定した位置(座標)が処理対象フレーム内でとり得る値の範囲外になった人物も、後述する人物追跡処理においてフレーム内に該当する人物の位置が特定されることがある。そのため、人物位置推定部101は、追跡中の全ての人物についての推定位置及び人物領域を重なり領域検出部102に出力する。
図6は、追跡中の人物の現在の処理対象フレームにおける位置の推定方法を説明する図である。図6において、フレーム時刻tのフレーム712は現在の処理対象フレームであり、フレーム時刻t−1のフレーム711及びフレーム時刻t−2のフレーム710は過去のフレームである。
フレーム712に対して人物位置推定処理を行うときには、フレーム710における人物6Eの位置を表す座標(PXt−2,PYt−2)、及びフレーム711における人物6Eの位置を表す座標(PXt−1,PYt−1)が記憶部107に記憶されている。そのため、人物位置推定部101は、まず、ステップS201でフレーム710における人物6Eの位置を表す座標(PXt−2,PYt−2)、及びフレーム711における人物6Eの位置を表す座標(PXt−1,PYt−1)を読み出す。そして、人物位置推定部101は、次のステップS202で、読み出した人物6Eについての座標(PXt−2,PYt−2)及び(PXt−1,PYt−1)を用いて時刻t−2からt−1までの人物6Eの移動量(ΔPX,ΔPY)を算出する。移動量(ΔPX,ΔPY)は、下記式(1−1)及び(1−2)により算出する。
ΔPX=PXt−1−PXt−2 ・・・(1−1)
ΔPY=PYt−1−PYt−2 ・・・(1−2)
ここで、動画像のフレームレートが極端に低い場合を除けば、連続するフレーム間における人物6Eの移動量に大きな変動はないとみなすことができる。すなわち、フレームレートが極端に低い場合を除き、時刻t−2からt−1までの人物6Eの移動量と、時刻t−1からtまでの人物6Eの移動量とに大きな差異はないとみなすことができる。そのため、時刻tのフレーム712における人物6Eの位置は、時刻t−2からt−1までの人物6Eの移動量(ΔPX,ΔPY)を用いた線形近似により推定することができる。よって、人物位置推定部101は、ステップS203で、下記式(2−1)及び(2−2)により時刻tのフレーム712における人物6Eの推定位置を示す座標(PXt,PYt)を算出する。
PXt=PXt−1+ΔPX
=2・PXt−1−PXt−2 ・・・(2−1)
PYt=PYt−1+ΔPY
=2・PYt−1−PYt−2 ・・・(2−2)
また、時刻tのフレーム712における人物6Eについての人物領域AR1は、時刻t−1のフレーム711における人物6Eの人物領域AR、すなわち時刻t−1のフレーム711に対する画像処理で得られた人物6Eを示す領域に基づいて設定する。例えば、フレーム711における人物6Eの人物領域ARにおける4つの頂点A1〜A4の各座標を移動量(ΔPX,ΔPY)だけ移動させた点B1〜B4を頂点とする領域を、時刻tのフレーム712における人物6Eについての人物領域AR1とする。
なお、人物6Eの位置を示す座標は、図6に示したような人物6Eの頭部の中心の座標に限らず、他の部位の座標であってもよい。
図7は、重なり領域検出処理の内容を示すフローチャートである。
図4に示したフローチャートの重なり領域検出処理(ステップS3)は、上記のように重なり領域検出部102が行う。重なり領域検出部102は、重なり領域検出処理として、図7に示したような処理を行う。
重なり領域検出部102は、まず、ステップS2の処理結果に基づいて、現在の処理対象フレームに複数の人物領域があるか否かを判定する(ステップS300)。人物領域が1つ又は0の場合(ステップS300;No)、重なり領域検出部102は、ステップS301以降の処理をスキップし、重なり領域検出処理を終了する(リターン)。なお、図7では省略しているが、人物領域が1つ又は0の場合、重なり領域検出部102は、現在の処理対象フレーム、及び前後関係の判定が必要な人物領域がないことを示す情報を前後関係判定部103に出力してから重なり領域検出処理を終了する。
一方、複数の人物領域がある場合(ステップS300;Yes)、重なり領域検出部102は、次に、1つの人物領域を選択し、選択した人物領域についての重複フラグを0にする(ステップS301)。
次に、重なり領域検出部102は、選択した人物領域と重なり、かつ重なり領域が未設定の人物領域があるか否かをチェックする(ステップS302)。ステップS302において、重なり領域検出部102は、例えば、選択した人物領域と他の人物領域とに重なり領域があるか否かの判定を、以下のような方法で行う。まず、選択した人物領域の4つの頂点のうち左上及び右下の頂点の座標(Xs,Ys)及び(Xe,Ye)と、他の人物領域の4つの頂点のうち左上及び右下の頂点の座標(Xs’,Ys’)及び(Xe’,Ye’)とを抽出する。そして、これらの座標値が下記の条件1又は2を満たす場合、2つの人物領域に重なり領域が存在すると判定する。
(条件1)Xs<Xs’<Xe及びXs<Xe’<Xeのいずれか或いは両方を満たし、かつ、Ys<Ys’<Ye及びYs<Ye’<Yeのいずれか或いは両方を満たす。
(条件2)Xs’<Xs<Xe’及びXs<Xe’<Xeのいずれか或いは両方を満たし、かつ、Ys<Ys’<Ye及びYs<Ye’<Yeのいずれか或いは両方を満たす。
選択した人物領域と重なり、かつ重なり領域が未設定の人物領域がある場合(ステップS302;Yes)、重なり領域検出部102は、重複フラグを1にし、頭部が画面下方になる人物を人物1、頭部が画面上方になる人物を人物2とする(ステップS303)。ここで、画面下方及び画面上方は、それぞれ、処理対象フレームを正立方向で表示したときの下方及び上方である。また、頭部の上下方向の位置関係は、例えば、各人物領域の上辺のy座標で判断する。また、本実施形態では、図1Aに示したように光軸200が俯角になるよう設置された撮像装置2で撮像した動画像の人物を追跡している。この場合、重なっている複数の人物の身長が同程度であれば撮像装置2から近い人物の頭部のほうが画面下方になるが、撮像装置2から近い人物の身長が高い場合、図2Bに示したように撮像装置2から近い人物の頭部のほうが画面上方になることもある。そのため、本実施形態におけるステップS303では、重なっている複数の人物のうち頭部が画面下方になる人物を撮像装置2から最も近い人物(すなわち最前の人物)の候補とし、他の人物と区別するため人物1というラベルを付す。
次に、重なり領域検出部102は、選択した人物領域と、当該人物領域に重なる人物領域との重なり領域を算出する(ステップS304)。ステップS304において、重なり領域検出部102は、例えば、以下の方法で重なり領域を算出する。すなわち、重なり領域の4つの頂点のうち左上の頂点、右上の頂点、及び右下の頂点の座標をそれぞれ(Xso,Yso),(Xeo,Yso),及び(Xeo,Yeo)とし、下記式(3−1)〜(3−3)によりXso,Yso,Xeo,Yeoを算出する。
Xso=max(Xs,Xs’) ・・・(3−1)
Yso=max(Ys,Ys’) ・・・(3−2)
Xeo=min(Xe,Xe’) ・・・(3−3)
Xeo=min(Ye,Ye’) ・・・(3−4)
ここで、max(a,b)は値aと値bのうち大きいほうの値を選択することを意味し、min(a,b)は値aと値bのうち小さいほうの値を選択することを意味する。
ステップS304で重なり領域を算出した後、重なり領域検出部102は、ステップS301で選択していない人物領域、すなわちステップS301〜S304について未処理の人物領域があるか否かを判定する(ステップS305)。
一方、ステップS302において選択した人物領域と重なり、かつ重なり領域が未設定の人物領域がないと判定した場合(ステップS302;No)、重なり領域検出部102は、ステップS303,S304をスキップし、ステップS305の判定を行う。
ステップS305において未処理の人物領域があると判定した場合(ステップS305;Yes)、重なり領域検出部102は、ステップS301に戻り、未処理の人物領域に対しステップS301〜S304の処理を行う。そして、ステップS305において未処理の人物領域はないと判定した場合(ステップS305;No)、重なり領域検出部102は、重なり領域検出処理を終了する。なお、図7では省略しているが、ステップS305において未処理の人物領域はないと判定した後、重なり領域検出部102は、現在の処理対象フレーム、及び重なり領域に関する情報等を前後関係判定部103に出力してから重なり領域検出処理を終了する。
図8は、重なり領域の有無の判定方法及び重なり領域の算出方法を説明する図である。
図8に示したフレーム713では、人物6Fについての人物領域AR1と、人物6Gについての人物領域AR2とが重なっている。また、人物6Fと人物6Gとは、人物6Fの頭部のほうが画面下方(+y方向)にある。
このようなフレーム713に対して重なり領域検出処理を行う場合、重なり領域検出部102は、例えば、まず、ステップS301で人物領域AR1を選択し、ステップS302で人物領域AR1と人物領域AR2とが重なるかを判定する。ここで、人物領域AR1の4つの頂点のうち左上の頂点、右上の頂点、及び右下の頂点の座標をそれぞれ(Xs,Ys),(Xe,Ys),及び(Xe,Ye)とする。また、人物領域AR2の4つの頂点のうち左上の頂点、右上の頂点、及び右下の頂点の座標をそれぞれ(Xs’,Ys’),(Xe’,Ys’),及び(Xe’,Ye’)とする。このとき、2つの人物領域AR1,AR2は、x方向の座標がXs<Xs’<Xeであり、y方向の座標がYs<Ye’<Yeである。そのため、2つの人物領域AR1,AR2は条件1を満たしており、ステップS302において重なり領域があると判定される。よって、2つの人物領域AR1,AR2の重なり領域が未設定の場合、ステップS303,S304により重なり領域(太い点線で示した領域)OAが設定される。
また、図8に示した人物6Fと人物6Gとは、人物6Fの頭部のほうが下方にある。そのため、ステップS303では、人物6Fに最前の人物の候補であることを表す人物1のラベルが付与され、人物6Gには人物2のラベルが付与される。また、ステップS304で式(3−1)〜(3−4)を用いて人物領域AR1,AR2の重なり領域を算出すると、重なり領域OAの4つの頂点のうち左上、右上、右下の頂点の座標は、それぞれ(Xs’,Ys),(Xe,Ys),及び(Xe,Ye’)となる。
図9は、前後関係判定処理の内容を示すフローチャートである。
図4に示したフローチャートの前後関係判定処理(ステップS4)は、上記のように前後関係判定部103が行う。前後関係判定部103は、前後関係判定処理として、図9に示したような処理を行う。
前後関係判定部103は、まず、ステップS3の処理結果に基づいて、重複フラグが1の人物領域の組があるか否かを判定する(ステップS400)。該当する人物領域の組がない場合(ステップS400;No)、前後関係判定部103は、ステップS401以降の処理をスキップし、前後関係判定処理を終了する(リターン)。ここで、重複フラグが1の人物領域の組がない場合は、現在の処理対象フレームに追跡中の人物が存在しない場合、及び追跡中の人物が一人の場合、並びに追跡中の人物が複数で各人物の人物領域に重なりがない場合を含む。なお、図9では省略しているが、重複フラグが1の人物領域の組がない場合、前後関係判定部103は、現在の処理対象フレーム、及び人物領域の重なりがないことを示す情報等を人物追跡部104に出力してから前後関係判定処理を終了する。
一方、重複フラグが1の人物領域の組がある場合(ステップS400;Yes)、前後関係判定部103は、次に、重複フラグが1で判定フラグが未設定の人物領域の組の1つを選択する(ステップS401)。ここで、判定フラグは、重なり領域検出処理で選出した最前の人物の候補が最前の人物であるか否かの判定結果を示すフラグである。
次に、前後関係判定部103は、選択した人物領域の組みについて、人物1の照合用データにおける重なり領域部分と人物領域の重なり領域との照合割合M1、及び人物2についての照合用データと人物領域との照合割合M2を算出する(ステップS402)。ここで、照合割合M1の算出に用いる人物領域の重なり領域、及び照合割合M2の算出に用いる人物領域は、それぞれ、現在の処理対象フレームにおける重なり領域及び人物領域である。また、照合割合M1,M2は、2つの画像の類似度や一致度の算出に用いる既知の関数により算出する。
次に、前後関係判定部103は、照合割合M1,M2がM1<Th1かつM2>Th2であるか否か、及び2つの照合位置が同じ位置に存在するか否かを判定する(ステップS403)。ここで、Th1及びTh2はそれぞれ予め定めた閾値であり、例えば、照合割合M1,M2が0≦M1≦1,0≦M2≦1の場合、それぞれ0.7〜0.8程度の数値とする。
M1<Th1かつM2>Th2である場合、又は2つの照合位置が同じ位置に存在する場合(ステップS403;Yes)、前後関係判定部103は、人物1が遮蔽状態であると判定し、判定フラグを0にする(ステップS404)。ここで、遮蔽状態は、人物1よりも前に人物2がいて、人物1の一部又は全部が人物2に隠れている状態を意味する。すなわち、重なっている人物領域の組に対する判定フラグを0にすることで、当該人物領域の組における最前の人物は、最前の人物の候補(人物1)ではなく、人物2であることが特定される。
一方、M1≧Th1又はM2≦Th2であり、かつ2つの照合位置が同じ位置に存在しない場合(ステップS403;No)、前後関係判定部103は、人物1のほうが前であると判定し、判定フラグを1にする(ステップS405)。すなわち、重なっている人物領域の組に対する判定フラグを1にすることで、当該人物領域の組における最前の人物は最前の人物の候補(人物1)であることが特定される。
ステップS404又はS405により判定フラグの値を設定した後、前後関係判定部103は、判定フラグが未設定の人物領域の組があるか否かをチェックする(ステップS406)。判定フラグが未設定の人物領域の組がある場合(ステップS406;Yes)、前後関係判定部103は、未設定の人物領域の組に対しステップS401〜ステップS405の処理を行う。そして、ステップS406において判定フラグが未設定の人物領域の組がないと判定した場合(ステップS406;No)、前後関係判定部103は、前後関係判定処理を終了する。なお、図9では省略しているが、ステップS406において判定フラグが未設定の人物領域の組はないと判定した後、前後関係判定部103は、現在の処理対象フレーム、及び処理結果に関する情報等を人物追跡部104に出力してから前後関係判定処理を終了する。
図10Aは、頭部が下方にある人物1が人物2よりも手前にいる場合の前後関係判定処理の結果を説明する図である。図10Bは、頭部が下方にある人物1が人物2よりも奥にいる場合の前後関係判定処理の結果を説明する図である。
図10Aに示したフレーム713のように二人の人物6F,6Gが重なっている場合、重なり領域検出処理(ステップS3)により、頭部がより画面下方に位置する人物6Fが人物1となり、頭部がより画面上方に位置する人物6Gが人物2となる。そのため、前後関係判定処理のステップS402では、次のような照合割合M1,M2の算出処理が行われる。まず、人物1(人物6F)については、照合用データBR1のうちフレーム713の重なり領域OA(太い点線で囲まれた領域)と対応する部分領域BR1’を、フレーム713の重なり領域OA及びその近傍領域と照合して照合割合M1を算出する。このとき、図10Aに示したように、人物6Fが人物6Gよりも前(撮像装置側)にいれば、重なり領域OA内で人物6Fが人物6Gに隠れることはない。そのため、照合割合M1は、人物6Fと人物6Gとが重なっていない状態である場合と同程度の大きな値になる。
また、人物2(人物6G)については、照合用データBR2の全体を、フレーム713の人物2についての人物領域AR2及びその近傍領域と照合して照合割合M2を算出する。このとき、図10Aに示したように、人物6Fが人物6Gよりも前(撮像装置側)にいると、人物6Gの一部が人物6Fで遮蔽される。そのため、照合割合M2は人物6Fと人物6Gとが重なっていない状態である場合に比べて小さな値になる。
一方、図10Bに示したフレーム714のように二人の人物6F,6Gが重なっており、前(撮像装置側)にいる人物6Gの頭部のほうがより画面上方に位置する場合、奥にいる人物6Fが人物1となり、前にいる人物6Gが人物2となる。すなわち、実際には最前の人物ではない人物6Fが、最前の人物の候補となる。そのため、前後関係判定処理のステップS402では、人物1(人物6F)については、照合用データBR1のうち重なり領域OAと対応する部分領域BR1’を、フレーム714の重なり領域OA及びその近傍領域と照合して照合割合M1を算出する。このとき、図10Bに示したように、人物6Gが人物6Fよりも前(撮像装置側)にいると、重なり領域OAでは人物6Fの一部が人物6Gに遮蔽される。そのため、照合割合M1は、人物6Fと人物6Gとが重なっていない状態である場合に比べて小さな値になる。
また、人物2(人物6G)については、照合用データBR2の全体を、フレーム714の人物2についての人物領域AR2及びその近傍領域と照合して照合割合M2を算出する。このとき、人物6Gが前(撮像装置側)にいると、人物6Gが人物6Fで遮蔽されることはないため、照合割合M2は人物6Fと人物6Gとが重なっていない状態である場合と同程度の大きな値になる。
更に、人物1についての照合領域BR1の部分領域BR1’と人物2についての照合領域BR2とが同じ位置にある場合、頭部が下方にある人物1(人物6F)が人物2(人物6G)よりも奥にいると、人物1の全体が人物2に遮蔽されてしまう。
よって、本実施形態の前後関係判定処理において、上記のようにM1<Th1かつM2>Th2である場合、又は2つの照合位置が同じ位置に存在する場合、前後関係判定部103は、人物2のほうが前であると判定する。
このように、前後関係判定部103が行う前後関係判定処理では、重なっている複数の人物の頭部の位置関係、及び人物毎に算出した照合割合に基づいて、重なっている複数の人物の前後関係を判定する。また、重なっている複数の人物のうち最前の人物の候補に選出された人物については、照合用データのうち重なり領域検出処理のステップS304で算出した重なり領域と対応する部分領域のみを用いて照合割合M1を算出する。そのため、本実施形態の前後関係判定処理によれば、図10Bに示したように、前にいる人物の頭部が奥にいる人物の頭部よりも画面上方にある場合でも、両人物の前後関係を正確に判定することができる。
例えば、人物1と人物2との重なり領域が狭く、かつ図10Bに示したように人物1(人物6F)が実際には他の人物6Gよりも奥にいる場合、人物6Fのうち人物6Gに遮蔽される部分が少なくなる。そのため、人物1についての照合用データBR1の全体を用いて照合割合M1を算出すると、照合割合M1は、人物6Gと人物6Fとが重なっていない状態である場合に比べてわずかに小さくなるだけである。よって、人物1についての照合用データBR1の全体を用いて照合割合M1を算出すると、人物6G及び人物6Fのどちらが前にいるかを正確に判定することが困難になる。
これに対し、本実施形態の前後関係判定処理では、上記のように最前の人物の候補に選出された人物6Fについての照合割合M1は、重なり領域OAのみで算出する。そのため、最前の人物の候補である人物6Fよりも前に他の人物6Gがいる場合、重なり領域OA内における人物6Fのうち人物6Gで遮蔽された部分の割合は、人物領域AR1における人物6Fのうち人物6Gで遮蔽された部分の割合よりも高くなる。そして、照合する領域内における照合対象人物のうち他の人物等で遮蔽された部分の割合が高いほど、照合割合は小さくなる。したがって、重なり領域OAと対応する部分領域BR1’のみで照合割合M1を算出すると、照合用データBR1の全体を用いて照合割合M1を算出した場合に比べて、照合割合M1が小さくなる。よって、最前の人物の候補(人物1)についての照合割合M1を重なり領域OAと対応する部分領域BR1’のみを用いて算出すると、人物1と人物2との重なり領域が狭い場合でも、人物6G及び人物6Fの前後関係を正確に判定することが可能になる。
図11Aは、人物追跡処理の内容を示すフローチャートである。図11Bは、人物追跡処理における人物1,2の位置を特定する処理の内容を示すフローチャートである。
図4に示したフローチャートの人物追跡処理(ステップS5)は、上記のように人物追跡部104が行う。人物追跡部104は、人物追跡処理として、図11A及び図11Bに示したような処理を行う。
人物追跡部104は、まず、ステップS2〜S4の処理結果に基づいて、現在の処理対象フレームに追跡中の人物がいるか否かを判定する(ステップS500)。追跡中の人物がいない場合(ステップS500;No)、人物追跡部104は、ステップS501以降の処理をスキップし、人物追跡処理を終了する(リターン)。なお、図11Aでは省略しているが、追跡中の人物がいない場合、人物追跡部104は、追跡中の人物がいないことを示す情報を人物検出部105に出力してから人物追跡処理を終了する。
追跡中の人物がいる場合(ステップ500;Yes)、人物追跡部104は、次に、重複フラグが0の人物領域、すなわち他の人物領域との重なり領域が存在しない人物領域があるか否かをチェックする(ステップS501)。重複フラグが0の人物領域がある場合(ステップS501;Yes)、人物追跡部104は、既知の追跡方法(例えば、テンプレートマッチング)により、該当する人物の位置を特定する(ステップS502)。また、ステップS502において、人物追跡部104は、記憶部107が記憶している過去のフレームにおける人物の位置情報のうちステップS502で位置を特定した人物についての位置情報を更新する。そして、ステップS502の処理を終えると、人物追跡部104は、次に、重複フラグが1の人物領域の組があるか否かをチェックする(ステップS503)。
また、重複フラグが0の人物領域がない場合(ステップS501;No)、人物追跡部104は、ステップS502をスキップしてステップS503のチェックを行う。
重複フラグが1の人物領域の組がない場合(ステップS503;No)、人物追跡部104は、ステップS504以降の処理をスキップし、人物追跡処理を終了する。追跡中の人物がいて重複フラグが1の人物領域の組がない場合、追跡中の人物は他の人物と重ならない人物のみであり、ステップS502において位置が特定されている。そのため、図11Aでは省略しているが、重複フラグが1の人物領域の組がない場合、人物追跡部104は、ステップS502で特定した追跡中の人物の位置を示す情報を人物検出部105に出力してから人物追跡処理を終了する。
一方、重複フラグが1の人物領域の組がある場合(ステップS503;Yes)、人物追跡部104は、次に、人物領域の組を1つ選択し(ステップS504)、選択した人物領域の組についての判定フラグが1であるか否かをチェックする(ステップS505)。判定フラグが1である場合(ステップS505;Yes)、人物追跡部104は、選択した人物領域の組における人物1,2の位置を特定する処理(ステップS506)を行う。
また、判定フラグが0である場合(ステップS505;No)、人物追跡部104は、次に、選択した人物領域の組における人物1についての照合用データを保持するとともに、人物1についての遮蔽フラグを1にする(ステップS507)。その後、人物追跡部104は、選択した人物領域の組における人物2について、現在の処理対象フレームにおける人物2の位置を特定する(ステップS508)。
ステップS506又はステップS508により人物の位置を特定すると、人物追跡部104は、次に、重複フラグが1の全ての人物領域の組について追跡(人物の位置を特定する処理)をしたか否かを判断する(ステップS509)。未処理の人物領域の組がある場合(ステップS509;No)、人物追跡部104は、未処理の人物領域の組に対しステップS504以降の処理を行う。そして、全ての人物領域の組について追跡を行った場合(ステップS509;Yes)、人物追跡部104は、人物追跡処理を終了する。なお、図11Aでは省略しているが、全ての人物領域の組に対しステップS504〜S508の処理を行った場合、人物追跡部104は、特定した追跡中の人物の位置を示す情報等を人物検出部105に出力してから人物追跡処理を終了する。
上記の人物追跡処理におけるステップS506の処理、すなわち重複フラグ及び判定フラグが1の人物領域の組における人物1,2の位置を特定する処理として、人物追跡部104は、図11Bに示したような処理を行う。
人物1,2の位置を特定する処理において、人物追跡部104は、まず、人物1,2の人物領域を表す座標を読み出す(ステップS506a)。次に、人物追跡部104は、人物1,2の人物領域におけるy座標の最小値を抽出する(ステップS506b)。
次に、人物追跡部104は、人物2の人物領域から、人物1,2の人物領域におけるy座標の最小値で挟まれた重なりのない領域を抽出する(ステップS506c)。次に、人物追跡部104は、人物1の照合用データの全体、及び人物2の照合用データのうちステップS506cで抽出した重なりのない領域と対応する部分領域を人物1,2の位置の特定に用いるテンプレートに設定する(ステップS506d)。
次に、人物追跡部104は、設定した人物1,2のテンプレートを用いて現在の処理対象フレームを走査し、各位置における類似度Rを算出する(ステップS506e)。類似度Rは、例えば、下記式(4)のような評価関数R(x,y)を用いて算出する。
式(4)において、T(x’,y’)はテンプレートの座標(x’,y’)の画素値であり、I(x+x’,y+y’)は処理対象フレームの座標(x+x’,y+y’)の画素値である。また、式(4)において、w及びhは、それぞれ、テンプレートのx方向(左右方向)の画素数及びy方向(上下方向)の画素数である。
次に、人物追跡部104は、類似度Rが最も高い位置を現在の処理対象フレームにおける人物の位置とし、記憶部107が記憶する人物の位置を表す座標を更新する(ステップS506f)。このステップS506fの処理を終えると、人物追跡部104は、人物1,2の位置を特定する処理を終了する(リターン)。
図12Aは、人物2の追跡に用いるテンプレートの設定方法を説明する図である。図12Bは、テンプレートマッチングによる人物1,2の追跡方法を説明する図である。
図11Bに示した人物1,2の位置を特定する処理は、判定フラグが1である人物領域の組に対して行う。判定フラグが1である人物領域の組では、図12Aに示したフレーム713のように、重なる二人の人物6F、6Gのうち頭部がより画面下方の人物6F(人物1)のほうが人物6G(人物2)よりも前にいるので人物6Gの一部は人物6Fに遮蔽されている。そのため、人物6Gの照合用データBR2の全体をテンプレートとしたテンプレートマッチングを行った場合、人物6Fで遮蔽された部分における類似度(一致度)が低くなり、人物6Gの位置を精度良く特定することが難しい。よって、人物6G(人物2)の位置を特定する際には、照合用データのうち人物6F(人物1)の人物領域と重ならない領域のみを用いて特定することが好ましい。
そこで、本実施形態では、図12Aに示したように、人物6Gの照合用データBR2のうち人物領域AR1のy座標の最小値と人物領域AR2のy座標の最小値とで挟まれる高さΔd3の領域と対応した部分領域BR2’を、人物2のテンプレートに設定する。
一方、重なっている人物6F,6Gのうち前にいる人物6F(人物1)は、遮蔽された部分がない。そのため、人物6Fについては、照合領域BR1全体を追跡用のテンプレートとして用いることができる。
また、図12Bに示したように、現在の処理対象フレーム715において追跡中の二人の人物6H,6Jが重なっている場合、重なり領域判定処理において頭部の位置がより画面下方である人物6Hが人物1(最前の人物の候補)になる。そして、上記の前後関係判定処理を続けて行うことで、最前の人物の候補である人物6Hが人物6Jよりも前にいることが特定され、人物6H,6Jに対する判定フラグが1になる。よって、フレーム715についての人物追跡処理では、図11Bに示した処理により人物6H,6Jの位置を特定する。
この際、前にいる人物6Hについては、人物6Hの照合用データBR1の全体をテンプレートとして、テンプレートマッチングを行う。人物6Hは他の人物に遮蔽された部分がないため、照合用データBR1の全体をテンプレートとして用いた場合に、遮蔽された部分が含まれることによる類似度Rの低下は起こらない。そのため、人物6Hについては、照合用データBR1の全体をテンプレートとして用いることで、人物6Hの正確な位置を算出する。
一方、奥にいる人物6Jについては、人物領域AR2のうち人物6Hの人物領域AR1と重ならない領域AR2’を求め、照合用データBR2のうち人物領域AR2の部分領域AR2’と対応した部分領域BR2’のみをテンプレートとして用いる。奥にいる人物6Jは、その一部が前にいる人物6Hに遮蔽されているため、照合用データBR2の全体をテンプレートとして用いると、人物6Hに遮蔽された部分が含まれることにより類似度Rが低下する。これに対し、本実施形態の人物追跡処理では、上記のように照合用データBR2のうち人物6Hの人物領域AR1と重ならない部分領域BR2’(頭部6J’)のみをテンプレートとして用いる。そのため、人物6Hに遮蔽された部分が含まれることによる類似度Rの低下を防げ、人物6Jの位置を精度良く算出することができる。
以上のように、本実施形態に係る画像処理では、撮像装置2の光軸200の方向から推定される人物の前後関係とフレーム(画像)内における頭部の位置の上下関係とに基づいて、重なっている人物のうち最前の人物の候補を選出する。そして、前後関係判定処理により、最前の人物の候補が最前の人物であるか否かを判定し、最前の人物を特定する。その際、上記のように最前の人物の候補についての照合を重なり領域のみで行うことで、重なり領域が狭い場合でも、重なっている人物のなかから最前の人物を正確に特定することができる。また、本実施形態に係る画像処理では、現在の処理対象フレームから得られる二次元の情報に基づいて人物の前後関係を特定することができるので、三次元モデルを用いて人物の前後関係を特定する場合に比べて監視装置1における処理負荷が軽減される。よって、本実施形態によれば、画像内の追跡中の人物に重なりが生じた場合に重なる人物の前後関係を正確かつ容易に判断することができる。
また、本実施形態に係る画像処理では、重なっている人物のうち前後関係判定処理により奥(後ろ)にいると特定された人物については、前にいる人物と重ならない領域のみを用いて現在の処理対象フレームにおける位置を特定(追跡)する。そのため、奥にいる人物の位置を特定する際に、前にいる人物と重なり遮蔽された部分領域における類似度の低下による位置の特定精度の低下を防ぐことが可能になる。よって、本実施形態によれば、画像内の人物を精度良く追跡することができる。
なお、図4、図5、図7、図9、図11A及び図11Bのフローチャートは、画像処理の一例に過ぎず、監視装置1の構成や条件に応じて一部の処理を変更又は省略してもよい。例えば、前後関係判定処理は、人物1についての照合用データBR1における部分領域BR1’と人物領域の重なり領域OAとの照合割合M1のみを算出し、照合割合M1と閾値Th1との大小関係のみで人物1,2の前後関係を判定するようにしてもよい。また、人物検出処理におけるHOG特徴量等を用いて現在の処理対象フレームから人物を検出する処理は、ステップS5の処理結果を用いずに行うことが可能であるため、ステップS2〜S5の後に限らず、ステップS2〜S5と並列に行うようにしてもよい。
また、本実施形態に係る画像処理において、撮像装置2から取得する画像データは、動画像データに限らず、例えば、非常に短い撮像間隔(例えば、0.5秒以下)で撮像された複数の静止画像データであってもよい。
また、上記の画像処理を行う監視装置1は、例えば、コンピュータと、コンピュータに上記の画像処理を実行させるプログラムとにより実現可能である。以下、監視装置1として動作させることが可能なコンピュータについて、図13を参照して説明する。
図13は、コンピュータのハードウェア構成を示す図である。
図13に示すように、コンピュータ9は、Central Processing Unit(CPU)901と、主記憶装置902と、補助記憶装置903と、Digital Signal Processor(DSP)904と、を備える。また、コンピュータ9は、入力装置905と、表示装置906と、インタフェース装置907と、記憶媒体駆動装置908と、通信装置909と、を更に備える。コンピュータ9におけるこれらの要素901〜909は、バス910により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
CPU 901は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ9の全体の動作を制御する演算処理装置である。
主記憶装置902は、Read Only Memory(ROM)及びRandom Access Memory(RAM)を含む。ROMには、例えばコンピュータ9の起動時にCPU 901が読み出す所定の基本制御プログラム等が予め記録されている。また、RAMは、CPU 901が各種のプログラムを実行する際に、必要に応じて作業用記憶領域として使用する。
補助記憶装置903は、Hard Disk Drive(HDD)やSolid State Drive(SSD)等の主記憶装置902に比べて大容量の記憶装置である。補助記憶装置903には、CPU 901によって実行される各種のプログラムや各種のデータ等を記憶させる。補助記憶装置903に記憶させるプログラムとしては、例えば、図4、図5、図7、図9、図11A及び図11Bに示したような画像処理をコンピュータ9に実行させるプログラムが挙げられる。また、補助記憶装置903に記憶させるデータとしては、例えば、上記のプログラムによる画像処理を行った後の画像データ等が挙げられる。
DSP 904は、CPU 901からの制御信号等に従って画像処理における一部の処理等を行う演算処理装置である。
入力装置905は、例えばキーボード装置やマウス装置であり、コンピュータ9のオペレータにより操作されると、その操作内容に対応付けられている入力情報をCPU 901に送信する。
表示装置906は、例えば液晶ディスプレイである。液晶ディスプレイは、CPU 901等から送信される表示データに従って各種のテキスト、画像等を表示する。
インタフェース装置907は、例えば、コンピュータ9を撮像装置2や他の電子機器と接続するための入出力装置である。
記憶媒体駆動装置908は、図示しない可搬型記憶媒体に記録されているプログラムやデータの読み出し、補助記憶装置903に記憶されたデータ等の可搬型記憶媒体への書き込みを行う装置である。可搬型記憶媒体としては、例えば、USB規格のコネクタが備えられているフラッシュメモリが利用可能である。また、可搬型記憶媒体としては、Compact Disk(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等の光ディスクも利用可能である。
通信装置909は、インターネット等の通信網10を介してコンピュータ9と他のコンピュータ等とを通信可能に接続する装置である。
このコンピュータ9は、CPU 901が補助記憶装置903から上述した画像処理を含むプログラムを読み出し、DSP 904、主記憶装置902、補助記憶装置903等と協働して撮像装置2から取得した画像データの画像処理を実行する。この際、CPU 901は、画像処理における演算処理の一部、例えば人物追跡処理や人物検出処理をDSP 904に実行させる。
また、コンピュータ9で画像処理を行った後の画像データは、例えば、補助記憶装置903に記憶させておき、必要に応じてコンピュータ9で再生する。また、画像処理後の画像データは、例えば、通信装置909を用い、通信網10を介して他のコンピュータ(例えば管理サーバ)に転送することもできる。また、画像処理後の画像データは、例えば、記憶媒体駆動装置908を用い、光ディスク等に記録して保管することもできる。
なお、監視装置1として用いるコンピュータ9は、図13に示した全ての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、DSP 904を省略し、CPU 901において図4に示した画像処理における全ての演算処理を行う構成であってもよい。また、コンピュータ9は、種々のプログラムを実行することにより複数の機能を実現する汎用型のものに限らず、人物の検出及び追跡に特化した画像処理装置でもよい。
以上記載した実施形態に関し、更に以下の付記を開示する。
(付記1)
過去の画像データから検出された人物の位置に基づいて、現在の処理対象の画像データにおける人物の位置を推定し、
推定した前記人物の位置に基づいて複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合に、当該複数の人物の重なり領域を検出するとともに、前記複数の人物のうち前記画像データを撮像した撮像装置に最も近い位置にいる最前の人物の候補を選出し、
選出した前記最前の人物の候補についての照合用データのうち他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域とを照合し、
当該照合の結果に基づいて、前記最前の人物の候補が最前の人物であるか否かを判定する、
処理をコンピュータに実行させる監視プログラム。
(付記2)
選出した前記最前の人物の候補についての照合用データのうち前記他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域との前記照合では、更に、前記他の人物についての照合用データと、前記現在の処理対象の画像データにおける当該他の人物についての人物領域とを照合し、
前記最前の人物の候補が最前の人物であるか否かの判定は、前記最前の人物の候補についての照合結果、前記他の人物についての照合結果、及び前記照合用データのうち照合に用いた領域の大小関係に基づいて行う、
ことを特徴とする付記1に記載の監視プログラム。
(付記3)
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて、前記現在の処理対象の画像データにおける人物の位置を特定し、
前記現在の処理対象の画像データにおける人物と前記過去の画像データから検出された人物との関連付けを行い、前記現在の処理対象の画像データにおける前記人物の位置を前記過去の画像データから検出された人物の位置として保持する、
処理を更に前記コンピュータに実行させることを特徴とする付記1に記載の監視プログラム。
(付記4)
前記現在の処理対象の画像データにおける人物の位置の特定では、
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて、前記現在の処理対象の画像データにおいて重なっている人物の前後関係を特定した後、
最前の人物に特定された人物については、当該人物の照合用データの全部を用いて前記現在の処理対象の画像データにおける位置を特定し、
最前の人物に特定された前記人物と重なっている他の人物については、当該人物の照合用データのうち前記重なり領域を除く部分領域のみを用いて前記現在の処理対象の画像データにおける位置を特定する、
ことを特徴とする付記3に記載の監視プログラム。
(付記5)
最前の人物に特定された前記人物と重なっている他の人物の照合用データの全体が前記重なり領域に含まれる場合、当該他の人物の前記現在の処理対象の画像データにおける位置は、前記過去の画像データにおける位置から推定した位置に特定する、
ことを特徴とする付記4に記載の監視プログラム。
(付記6)
前記現在の処理対象の画像データから人物を検出し、
検出した前記現在の処理対象の画像データの人物のうち前記過去の画像データから検出された人物と関連付けされた人物を除く全ての人物の位置を、前記過去の画像データから検出された人物の位置に追加する、
処理を更に前記コンピュータに実行させることを特徴とする付記3に記載の監視プログラム。
(付記7)
前記複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合の前記最前の人物の候補の選出は、前記現在の処理対象の画像データにおける前記複数の人物の頭部の位置に基づいて行う、
ことを特徴とする付記1に記載の監視プログラム。
(付記8)
前記撮像装置の光軸が俯角である場合、
前記複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合の前記最前の人物の候補の選出では、前記複数の人物のうち前記現在の処理対象の画像データにおける頭部の位置が最も下方である人物を選出する、
ことを特徴とする付記1に記載の監視プログラム。
(付記9)
撮像装置で撮像した画像データを取得する画像取得部と、
過去の画像データから検出された人物の位置に基づいて、現在の処理対象の画像データにおける人物の位置を推定する位置推定部と、
推定した前記人物の位置に基づいて複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合に、当該複数の人物の重なり領域を検出するとともに、前記複数の人物のうち前記画像データを撮像した撮像装置に最も近い位置にいる最前の人物の候補を選出する重なり領域検出部と、
選出した前記最前の人物の候補についての照合用データのうち他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域とを照合し、当該照合の結果に基づいて、前記最前の人物の候補が最前の人物であるか否かを判定する前後関係判定部と、
を備えることを特徴とする監視装置。
(付記10)
前記前後関係判定部は、
選出した前記最前の人物の候補についての照合用データのうち他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域とを照合するとともに、前記他の人物についての照合用データと、前記現在の処理対象の画像データにおける当該他の人物についての人物領域とを照合し、
前記最前の人物の候補についての照合結果、前記他の人物についての照合結果、及び前記照合用データのうち照合に用いた領域の大小関係に基づいて、当該最前の人物の候補が最前の人物であるか否かを判定する、
ことを特徴とする付記9に記載の監視装置。
(付記11)
当該監視装置は、
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて重なっている人物の前後関係を特定するとともに、前記現在の処理対象の画像データにおける人物の位置を特定し、前記現在の処理対象の画像データにおける人物と前記過去の画像データから検出された人物との関連付けを行う人物追跡部、
を更に備えることを特徴とする付記9に記載の監視装置。
(付記12)
前記人物追跡部は、
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて最前の人物に特定された人物については、当該人物の照合用データの全部を用いて前記現在の処理対象の画像データにおける位置を特定し、最前の人物に特定された前記人物と重なっている他の人物については、当該人物の照合用データのうち重なり領域を除く部分領域のみを用いて前記現在の処理対象の画像データにおける位置を特定する、
ことを特徴とする付記11に記載の監視装置。
(付記13)
当該監視装置は、
前記現在の処理対象の画像データから人物を検出し、検出した前記現在の処理対象の画像データの人物のうち前記過去の画像データから検出された人物と関連付けされた人物を除く全ての人物を、前記過去の画像データから検出された人物に追加する人物検出部、
を更に備えることを特徴とする付記11に記載の監視装置。
(付記14)
コンピュータが、
過去の画像データから検出された人物の位置に基づいて、現在の処理対象の画像データにおける人物の位置を推定し、
推定した前記人物の位置に基づいて複数の人物が重なっていると判定した場合に、当該複数の人物の重なり領域を検出するとともに、前記複数の人物のうち前記画像データを撮像した撮像装置に最も近い位置にいる最前の人物の候補を選出し、
選出した前記最前の人物の候補についての照合用データのうち他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域とを照合し、
当該照合の結果に基づいて、前記最前の人物の候補が最前の人物であるか否かを判定する、
処理を実行することを特徴とする監視方法。
(付記15)
選出した前記最前の人物の候補についての照合用データのうち前記他の人物との重なり領域に対応した領域と、前記現在の処理対象の画像データにおける重なり領域との照合では、前記他の人物についての照合用データと、前記現在の処理対象の画像データにおける当該他の人物についての人物領域との照合も行い、
前記最前の人物の候補が最前の人物であるか否かの判定は、前記最前の人物の候補についての照合結果、前記他の人物についての照合結果、及び前記照合用データのうち照合に用いた領域の大小関係に基づいて行う、
ことを特徴とする付記14に記載の監視方法。
(付記16)
前記コンピュータが、
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて、前記現在の処理対象の画像データにおける人物の位置を特定し、
前記現在の処理対象の画像データにおける人物と前記過去の画像データから検出された人物との関連付けを行い、前記現在の処理対象の画像データにおける前記人物の位置を前記過去の画像データから検出された人物の位置として保持する、
処理を更に実行することを特徴とする付記14に記載の監視方法。
(付記17)
前記現在の画像データにおける人物の位置の特定では、
前記最前の人物の候補が最前の人物であるか否かの判定結果に基づいて、前記現在の処理対象の画像データにおいて重なっている人物の前後関係を特定した後、
最前の人物に特定された人物については、当該人物の照合用データの全部を用いて前記現在の処理対象の画像データにおける位置を特定し、
最前の人物に特定された前記人物と重なっている他の人物については、当該人物の照合用データのうち重なり領域を除く部分領域のみを用いて前記現在の処理対象の画像データにおける位置を特定する、
ことを特徴とする付記16に記載の監視方法。
(付記18)
前記コンピュータが、
前記現在の処理対象の画像データから人物を検出し、
検出した前記現在の処理対象の画像データの人物のうち前記過去の画像データから検出された人物と関連付けされた人物を除く全ての人物の位置を、前記過去の画像データから検出された人物の位置に追加する、
処理を更に実行することを特徴とする付記16に記載の監視方法。
(付記19)
前記複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合の前記最前の人物の候補の選出は、前記現在の処理対象の画像データにおける前記複数の人物の頭部の位置に基づいて行う、
ことを特徴とする付記14に記載の監視方法。
(付記20)
前記撮像装置の光軸が俯角である場合、
前記複数の人物が前記現在の処理対象の画像データにおいて重なっていると判定した場合の前記最前の人物の候補の選出では、前記複数の人物のうち前記現在の処理対象の画像データにおける頭部の位置が最も下方である人物を選出する、
ことを特徴とする付記14に記載の監視方法。