(57)【要約】【課題】映像から検出した物体を追尾する画像処理装置において、追尾精度を下げることなく、処理に係る演算量を低減する。【解決手段】映像を構成する画像を取得する画像取得部と、物体の追尾を行う画像領域での物体の移動履歴を生成する履歴管理部と、移動履歴に基づいて前記画像領域に探索範囲を設定して物体の探索を行い、探索範囲から対象とする物体を検出し対応付けることで対象とする物体を追尾する物体追尾部とを有し、生成した移動履歴を利用して追尾処理を行うようにすることで、追尾精度を下げることなく、処理に係る演算量を低減できるようにする。【選択図】図１
2020119447.tif 000002
【特許請求の範囲】
【請求項１】
映像を構成する画像を取得する画像取得手段と、
物体の追尾を行う画像領域での物体の移動履歴を生成する履歴管理手段と、
前記移動履歴に基づいて前記画像領域に探索範囲を設定して物体の探索を行い、前記探索範囲から対象とする物体を検出し対応付けることで前記対象とする物体を追尾する物体追尾手段とを有することを特徴とする画像処理装置。
【請求項２】
前記履歴管理手段は、前記画像領域を複数の領域に分割し、分割した領域毎に前記移動履歴を生成することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記履歴管理手段は、前記画像領域をグリッド分割して生成したグリッドセル単位で前記複数の領域を設定することを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記履歴管理手段は、前記物体追尾手段が前記探索範囲での物体の探索を行って前記対象とする物体が検出されなかった回数に基づくエラー率が所定のしきい値以上になった前記領域について、前記移動履歴を再生成することを特徴とする請求項２又は３記載の画像処理装置。
【請求項５】
過去の画像の前記画像領域における物体の位置を特定する軌跡情報を収集する収集手段をさらに有し、
前記履歴管理手段は、収集された既存の前記軌跡情報に基づいて、前記移動履歴を生成することを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項６】
前記履歴管理手段は、前記物体追尾手段が物体を追尾することで得られた物体の移動先を示す情報に基づいて、前記移動履歴を生成することを特徴とする請求項１〜４の何れか１項に記載の画像処理装置。
【請求項７】
前記物体の移動履歴には、物体の観測位置、物体の移動先の位置、及び前記観測位置の画像と前記移動先の位置の画像との差分フレーム数の少なくとも１つの情報を含むことを特徴とする請求項１〜６の何れか１項に記載の画像処理装置。
【請求項８】
前記物体追尾手段は、前記履歴管理手段により生成される前記移動履歴に基づいて複数の前記探索範囲を設定することを特徴とする請求項１〜７の何れか１項に記載の画像処理装置。
【請求項９】
前記物体追尾手段は、前記探索範囲に設定された探索優先度に基づく順に、前記探索範囲での物体の探索を行うことを特徴とする請求項８記載の画像処理装置。
【請求項１０】
映像を構成する画像を取得する画像取得工程と、
物体の追尾を行う画像領域での物体の移動履歴を生成する履歴管理工程と、
前記移動履歴に基づいて前記画像領域に探索範囲を設定して物体の探索を行い、前記探索範囲から対象とする物体を検出し対応付けることで前記対象とする物体を追尾する物体追尾工程とを有することを特徴とする画像処理方法。
【請求項１１】
映像を構成する画像を取得する画像取得ステップと、
物体の追尾を行う画像領域での物体の移動履歴を生成する履歴管理ステップと、
前記移動履歴に基づいて前記画像領域に探索範囲を設定して物体の探索を行い、前記探索範囲から対象とする物体を検出し対応付けることで前記対象とする物体を追尾する物体追尾ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、カメラの映像から検出した物体や人体を追尾する技術がある。例えば、特許文献１には、テンプレート同士の重なり方を考慮したテンプレートマッチングにより追尾を行い、動きベクトルから次フレーム画像での探索位置を推定する技術が提案されている。また、特許文献２には、まず、撮像画像を複数の追跡領域に分割し、次に各追跡領域内に存在するエッジの移動ベクトルの分布に基づいて平均移動ベクトルを算出する。そして、算出した平均移動ベクトルに基づいて、追跡領域内に存在するエッジの移動を追跡（追尾）する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３７３３３２号公報
【特許文献２】特開２００６−１７２０６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１や特許文献２に記載の方法では、着目している物体の直前の移動方向や速度に基づいて次フレームでの物体の出現位置を予測し、予測した出現位置を基準に探索領域を設定して探索領域内で着目している物体や人体を探索する。しかし、これらの方法では、追尾対象とする物体の移動の傾向が当初の想定から外れた場合には、設定した探索領域内で物体が検出されない検出エラーの発生頻度が大きくなってしまう。例えば、等速直線運動を前提に次フレームでの出現位置の予測及び探索領域の設定を行っていた状況で、急に人の流れの向きや速さが変わった場合などが相当する。
【０００５】
検出エラーの発生頻度が大きくなると、検出エラーの発生頻度を小さくするために、探索領域の拡大や予測時間間隔の短縮等の対応が行われる。この対応により、追尾精度は維持できるが、処理に係る演算量が増大してしまう。すなわち、直前の移動方向や速度に基づいて次フレームでの物体の出現位置を予測する特許文献１や特許文献２に記載の方法では、追尾精度を下げることなく処理に係る演算量を削減することが容易ではないという問題がある。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、映像から検出した物体を追尾する画像処理装置において、追尾精度を下げることなく、処理に係る演算量を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、映像を構成する画像を取得する画像取得手段と、物体の追尾を行う画像領域での物体の移動履歴を生成する履歴管理手段と、前記移動履歴に基づいて前記画像領域に探索範囲を設定して物体の探索を行い、前記探索範囲から対象とする物体を検出し対応付けることで前記対象とする物体を追尾する物体追尾手段とを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、映像から検出した物体を追尾する画像処理装置において、追尾精度を下げることなく、処理に係る演算量を低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態における画像処理装置の構成例を示す図である。
【図２】第１の実施形態における軌跡情報収集部の構成例を示す図である。
【図３】第１の実施形態における移動履歴を説明する図である。
【図４】第１の実施形態における移動履歴の生成処理の例を示すフローチャートである。
【図５】第１の実施形態における追尾処理の例を示すフローチャートである。
【図６】第２の実施形態における画像処理装置の構成例を示す図である。
【図７】第２の実施形態における移動履歴の生成処理の例を示すフローチャートである。
【図８】本実施形態における画像処理装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面に基づいて説明する。
本発明の実施形態における画像処理装置では、追尾精度の維持と演算コストの低減の両立を図るために、物体の移動履歴を利用することで、追尾時の探索範囲を限定しつつ、設定した探索範囲内で物体が検出されない検出エラーの発生頻度を小さくする。移動履歴とは、物体の観測位置ｇを定めたとき、フレームｔ0で観測位置ｇに存在した物体ｈが、所定時間Δｔ（移動先との差分フレーム数）後のフレーム（ｔ0＋Δｔ）ではどの位置に移動したのか、という情報を一定数以上の物体について集計したものである。
【００１１】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１は、第１の実施形態における画像処理装置１１０の構成例を示すブロック図である。画像処理装置１１０は、履歴管理部１１１、記憶装置１１２、物体追尾部１１３、及び画像取得部１１４を有する。履歴管理部１１１は、収集された軌跡情報に基づいて各物体の移動履歴を生成する。履歴管理部１１１により生成された物体の移動履歴は、記憶装置１１２に記憶される。
【００１２】
物体追尾部１１３は、画像取得部１１４により取得した画像から追尾対象の物体を検出することにより、追尾対象の物体を追尾する。画像取得部１１４は、例えばカメラやサーバ等の外部の装置から、処理対象の画像を時系列順に取得する。なお、画像取得部１１４は、外部メモリ等に保存された画像を取得するようにしてもよい。
【００１３】
第１の実施形態における画像処理装置１１０は、軌跡情報収集部１２０によって収集された既存の軌跡情報を利用して、移動履歴の生成や追尾対象の物体の追尾を行う。軌跡情報とは、追尾対象となっている物体の、過去のフレーム上での位置情報を特定できる情報であり、物体ＩＤや物体位置や時間等の情報を含む。また、物体の軌跡情報として、物体のサイズや属性情報等を含んでもよい。なお、以下の説明では、一部において人体の追尾を例に説明するが、本実施形態における画像処理装置は、人体の追尾に限らず任意の物体の追尾に利用可能である。
【００１４】
図２は、軌跡情報収集部１２０の構成例を示すブロック図である。軌跡情報収集部１２０は、画像取得部２０１、物体検出部２０２、物体追尾部２０３、人体検出部２０４、物体対応付部２０５、軌跡管理部２０６、判定パラメータ設定部２０７、軌跡情報判定部２０８、及び外部出力部２０９を有する。画像取得部２０１は、処理対象の画像（映像のフレーム）を時系列順に外部の装置から取得する。この外部装置は、例えばカメラやサーバであるが、外部メモリ等に保存された画像を取得してもよい。
【００１５】
物体検出部２０２は、画像取得部２０１で取得した画像から背景差分法により物体を検出する。ここで検出される物体は、例えば移動物体である。あるいは、背景差分法により検出された前景である。または、背景ではないと判定された部分でもよい。検出した物体の情報は、例えば、画面上位置と外接矩形と物体のサイズとからなる。なお、物体検出部２０２では、画像から物体を検出できればよく、物体を検出する方法は背景差分法に限定されるものではない。物体追尾部２０３は、物体検出部２０２が検出した物体と前画像で検出された物体とを対応付けることにより、検出した物体を追尾する。新規に出現した物体には、新規に物体ＩＤを付与し、前画像と対応付けることができた物体には、前画像で付与した物体ＩＤを付与する。
【００１６】
人体検出部２０４は、物体検出部２０２が物体を検出した領域からパターンマッチング処理により人体を検出する。人体検出部２０４の処理は、映像から人体を検出する処理であり、パターンマッチング処理に限定されるものではない。また、必ずしも物体検出部２０２が物体を検出した領域から人体の検出を行う必要はなく、画像全体に対して人体の検出処理を行ってもよい。また、検出対象は、人体に限定されるものではなく、特定の物体（特定の特徴を有する物体、あるいは特定のパターンを有すると判定される物体）であることを検出すればよい。例えば、物体が自動車であることや動物であることを検出してもよい。物体対応付部２０５は、物体検出部２０２が検出した物体と人体検出部２０４が検出した人体との対応付けを決定する。
【００１７】
軌跡管理部２０６は、物体追尾部２０３で追尾した物体の軌跡情報を生成して管理する。また、軌跡管理部２０６は、物体対応付部２０５で物体に対応付けられた人体の情報を物体の属性として管理する。すなわち、軌跡管理部２０６は、追尾した物体が物体対応付部２０５により人体（特定の物体）に対応付けられたことを管理する。判定パラメータ設定部２０７は、物体の軌跡情報を判定するための判定パラメータを外部から軌跡情報判定部２０８に設定する。判定パラメータは、判定を行う場所を示す座標の組と、座標の組の扱いを「領域」もしくは「線」から決定する領域タイプと、物体サイズの範囲と、物体属性及び属性数と、画面内での存在時間の範囲と検出イベント等からなる。
【００１８】
軌跡情報判定部２０８は、軌跡管理部２０６で管理される物体の軌跡情報を判定パラメータ設定部２０７で設定された判定パラメータに従って判定することで、所望の物体を検出する。軌跡情報の判定処理は、設定された判定パラメータのすべてに対して、軌跡管理部２０６において軌跡情報が更新されるたびに実施する。例えば、軌跡情報判定部２０８は、追尾した物体が特定の場所を通過したことを判定する。外部出力部２０９は、軌跡管理部２０６で管理される物体の軌跡情報と軌跡情報判定部２０８の判定結果等を外部に出力する。
【００１９】
次に、本実施形態において物体の追尾処理に利用する物体の移動履歴について説明する。本実施形態では、画像領域を複数の領域に分割し、分割した領域毎に移動履歴を生成する。以下の例では、画像領域をグリッド分割して生成したグリッドセル単位で移動履歴を生成する。すなわち、フレームｔ0のグリッドセルｇ上に存在する物体ｈについて、所定時間Δｔ後のフレーム（ｔ0＋Δｔ）を移動先予測フレームとして設定した場合、物体ｈが移動先予測フレームではどの位置に移動したのか、という情報を集計する。集計では、対象となるすべての物体について移動先の位置をそれぞれ特定した後、位置のクラスタリングを行う。その後、クラスタリングで生成したクラスタ毎に探索優先度を設定する。
【００２０】
図３は、本実施形態における物体の移動履歴を説明する図である。図３において、３００は追尾を行う画像領域を示し、画像領域３００において破線によりグリッドを示している。３０１及び３０５は、それぞれ追尾対象の物体（人体）ｈ1及び物体（人体）ｈ2であり、本例では人体を想定している。人体の追尾は、「頭部中心」を追尾することで行われるものとする。そのため、「人体の位置」は、頭部中心の位置を基準に決定される。すなわち、図３に示す例では、人体ｈ1が存在するグリッドセルｇ1は３０２（太線の黒枠矩形部分）となる。
【００２１】
３０３は、グリッドセルｇ1を通過した複数の人体のそれぞれについて、グリッドセルｇ1を通過した時のフレームをフレームｔ0としたときのフレーム（ｔ0＋Δｔ）における移動先を所定期間収集した移動先プロット（ｇ1）である。収集した移動先を「□（白抜き四角形）」の記号で示している。同様に、３０６は、人体ｈ1が存在するグリッドセルｇ2（３０５の頭部が位置するグリッドセル）を人体が通過した時のフレームをフレームｔ0としたとき、フレーム（ｔ0＋Δｔ）における移動先を所定時間収集した移動先プロット（ｇ2）である。こちらについては、収集した移動先を「△（白抜き三角形）」の記号で示している。
【００２２】
フレームｔ0でグリッドセルｇ1を通過した複数の人体のそれぞれは、フレーム（ｔ0＋２×Δｔ）においては移動先３０４に移動し、グリッドセルｇ2を通過した複数の人体のそれぞれは、フレーム（ｔ0＋２×Δｔ）においては移動先３０７に移動する。一般に、移動先３０４、３０７の範囲は、対応する移動先３０３、３０６の範囲に比べて広くなる。
【００２３】
＜移動履歴の生成＞
以下、第１の実施形態における物体の移動履歴の生成について説明する。本実施形態では、履歴管理部１２１が、軌跡情報収集部１２０により収集された軌跡情報に基づいて物体の移動履歴を生成する。図４は、第１の実施形態における移動履歴の生成処理の例を示すフローチャートである。
【００２４】
移動履歴の生成処理を開始すると、ステップＳ４０１では、履歴管理部１２１は、軌跡情報収集部１２０から軌跡情報を取得する。なお、軌跡情報収集部１２０では、軌跡情報を軌跡管理部２０６で管理している。次に、ステップＳ４０２では、履歴管理部１２１は、追尾を行う画像領域をグリッド分割し、軌跡情報における各軌跡の各座標とグリッドセルとの対応付けを行う。
【００２５】
ステップＳ４０３では、履歴管理部１２１は、ステップＳ４０２においてグリッド分割したすべてのグリッドセルについて移動履歴の生成処理を実行したか否かを判定する。すべてのグリッドセルについて移動履歴の生成処理を実行した、すなわち処理対象とするグリッドセルの残りがないと履歴管理部１２１が判定した場合（ＹＥＳ）、履歴管理部１２１は移動履歴の生成処理を終了する。一方、すべてのグリッドセルについては移動履歴の生成処理を実行していない、すなわち処理対象とするグリッドセルの残りがあると履歴管理部１２１が判定した場合（ＮＯ）、ステップＳ４０４へ進む。ステップＳ４０４では、履歴管理部１２１は、未処理のグリッドセルの内から処理対象とするグリッドセル（グリッドセルｇi）を設定し、ステップＳ４０５へ進む。
【００２６】
グリッドセルｇiを設定した後のステップＳ４０５では、履歴管理部１２１は、グリッドセルｇiを通ったすべての物体についてステップＳ４０６以降の処理を実行したか否かを判定する。グリッドセルｇiを通ったすべての物体についてステップＳ４０６以降の処理を実行した、すなわちグリッドセルｇiについての処理が完了したと履歴管理部１２１が判定した場合（ＹＥＳ）、ステップＳ４１０へ進む。グリッドセルｇiを通ったすべての物体についてはステップＳ４０６以降の処理を実行していない、すなわちグリッドセルｇiを通った物体において未処理の物体があると履歴管理部１２１が判定した場合（ＮＯ）、ステップＳ４０７へ進む。
【００２７】
ステップＳ４０７では、履歴管理部１２１は、グリッドセルｇiを通った未処理の物体の内から物体ｈjを追尾対象の物体として選択し、ステップＳ４０７へ進む。本実施形態では、軌跡情報からグリッドセルｇiに対応付けられた軌跡を１つ抽出し、その軌跡に関連付けられている物体を物体ｈjとする。ここで、物体ｈjがグリッドセルｇi上に初めて現れたフレーム番号をフレームｔ0とする。
【００２８】
追尾対象の物体として物体ｈjを選択した後のステップＳ４０７では、履歴管理部１２１は、物体ｈjの移動先を集計するすべてのフレームに対して、対象とする物体ｈjの移動先の抽出及び記録を行ったか否かを判定する。ここで、物体の移動先を集計するフレームは、Δｔkを事前にいくつか設定しておき、移動先を集計するフレーム番号をフレーム（ｔ0＋Δｔk）とする。なお、Δｔkはどのように設定してもよい。例えば、Δｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）として設定した場合、物体ｈjがグリッドセルｇi上に初めて現れたフレームｔ0から１００フレーム先まで、１０フレーム毎に１０回、物体ｈjの移動先を集計する。
【００２９】
物体ｈjの移動先を集計するすべてのフレームに対して移動先の抽出及び記録を行った、すなわちすべてΔｔkについて処理を行ったと履歴管理部１２１が判定した場合（ＹＥＳ）、ステップＳ４０５へ進む。一方、物体ｈjの移動先を集計するすべてのフレームに対して移動先の抽出及び記録を行っていない、すなわち未処理のフレームがあると履歴管理部１２１が判定した場合（ＮＯ）、ステップＳ４０８へ進む。ステップＳ４０８では、履歴管理部１２１は、未処理のフレームの内から物体ｈjの移動先を集計するフレーム番号を決定する。具体的には、履歴管理部１２１は、Δｔkを順番に指定することで、物体ｈjの移動先を集計するフレーム番号を決定する。
【００３０】
ステップＳ４０９では、履歴管理部１２１は、フレーム（ｔ0＋Δｔk）における物体ｈjの移動先を抽出する。本実施形態では、履歴管理部１２１は、物体ｈjに関連付けられている軌跡をたどることで、フレーム（ｔ0＋Δｔk）で物体ｈjが移動した先の座標を抽出し、記憶装置１１２に記録する。その後、ステップＳ４０７に処理を戻す。
【００３１】
ステップＳ４１０は、ステップＳ４０５でグリッドセルｇiを通った物体において選択すべき物体の残りがないと判定された場合に実行される処理である。つまり、このステップＳ４１０の処理を行う直前の時点で、記憶装置１１２には、グリッドセルｇiを通った物体について、フレーム（ｔ0＋Δｔk）における移動先の座標が記録されている。ただし、本実施形態では、Δｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）としている。例えば、図３に示した例では、グリッドセルｇiをグリッドセル３０２、Δｔ＝Δｔ30とすると、３０３がグリッドセルｇiを通過した人体ｈj（複数）のΔｔ30フレーム後の移動先となる。また、３０４がグリッドセルｇiを通過した人体ｈj（複数）のΔｔ60フレーム後の移動先となる。
【００３２】
ステップＳ４１０では、履歴管理部１２１は、グリッドセルｇiを通った物体の移動先をクラスタリングする。本実施形態では、クラスタリングの単位を各Δｔkの各グリッドセルとする。すなわち、各Δｔkの各グリッドにカウンタを設置し、移動先として指定された（移動先の座標がそのグリッドセルに属した）回数をカウントする。履歴管理部１２１は、カウントが終わったら、所定回数以上のカウントを持つグリッドセル（Δｔk，ｇi）を抽出する。所定回数以上のカウントを持つグリッドセル同士が隣接している場合には、連結して１つのクラスタとしてもよい。本実施形態では、説明を簡単にするため、連結せずに個々のグリッドセルをクラスタとして扱うこととする。
【００３３】
ステップＳ４１１では、履歴管理部１２１は、ステップＳ４１０において抽出したクラスタ（本実施形態ではグリッドセル）に対し、探索優先度を設定する。本実施形態では、優先度スコアＳｃをＳｃ＝ｎ×ｋで算出し、優先度スコアＳｃが大きいクラスタほど探索優先度を高く設定することとする。ただし、ｎは移動先として指定されたカウント数、ｋはΔｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）のｋである。つまり、ｎが大きいほど移動先となる可能性が高く、ｋが大きいほど演算量を削減できる。探索優先度の設定が完了すると、履歴管理部１２１は、ステップＳ４１１において設定した探索優先度を各クラスタに付与する。その後、履歴管理部１２１は、クラスタ情報（Δｔk：予測実行差分フレーム数、ｇ：観測位置、ｇi：移動先）を含む移動履歴を記憶装置１１２に記録する。記録が完了したら、ステップＳ４０３に戻る。
【００３４】
ステップＳ４０２においてグリッド分割した、すべてのグリッドセルに対し、以上の処理を完了すると、移動履歴の生成は終了となる。
【００３５】
＜追尾処理＞
次に、第１の実施形態における画像処理装置１１０の追尾処理について説明する。本実施形態では、画像処理装置１１０の物体追尾部１１３が、履歴管理部１１１により前述のようにして生成した移動履歴を用いて物体の追尾処理を行う。図５は、第１の実施形態における追尾処理の例を示すフローチャートである。
【００３６】
物体の追尾処理を開始すると、ステップＳ５０１では、物体追尾部１１３は、画像取得部１１４を介して時間的に連続したフレームをＦフレーム分読み込む。ただし、本実施形態では、Ｆ≧Δｔ10（＝１００）とする。次に、ステップＳ５０２では、物体追尾部１１３は、前述の移動履歴の生成処理と同様に追尾を行う画像領域をグリッド分割する。
【００３７】
ステップＳ５０３では、物体追尾部１１３は、追尾対象となっているすべての物体について追尾処理を実行したか否かを判定する。追尾対象となっているすべての物体について追尾処理を実行した、すなわち追尾対象となっている物体の内に未処理の物体がないと物体追尾部１１３が判定した場合（ＹＥＳ）、ステップＳ５１５へ進む。一方、追尾対象となっているすべての物体については追尾処理を実行していない、すなわち追尾対象となっている物体の内に未処理の物体があると物体追尾部１１３が判定した場合（ＮＯ）、ステップＳ５０４へ進む。
【００３８】
ステップＳ５０４では、物体追尾部１１３は、追尾対象となっている物体（複数）の内から着目物体ｈ’jを１つ選択する。追尾対象となっている物体には、過去フレームから継続して追尾中の物体と、新たに読み込んだフレームから物体検出等により新たに検出された物体とがある。本実施形態では、物体追尾部１１３は、軌跡情報収集部１２０の軌跡管理部２０６で管理している軌跡情報を利用して、追尾対象となっている物体情報を得るものとする。
【００３９】
ステップＳ５０５では、物体追尾部１１３は、ステップＳ５０４において選択した着目物体ｈ’jの現在位置と対応するグリッドセルｇ’iを特定する。ここで、グリッドセルｇ’iを特定したフレーム番号をフレームｔ0とする。ステップＳ５０６では、物体追尾部１１３は、記憶装置１１２に記録されている移動履歴の中からグリッドセルｇ’iの移動履歴を獲得する。
【００４０】
ステップＳ５０７では、物体追尾部１１３は、グリッドセルｇ’iの移動履歴に登録されているすべてのクラスタについて物体の探索を実行したか否かを判定する。グリッドセルｇ’iの移動履歴に登録されているすべてのクラスタについて物体の探索を実行したと物体追尾部１１３が判定した場合（ＹＥＳ）、ステップＳ５１４へ進む。一方、グリッドセルｇ’iの移動履歴に登録されているすべてのクラスタについては物体の探索を実行していない、すなわち物体の探索を実行していないクラスタがあると物体追尾部１１３が判定した場合（ＮＯ）、ステップＳ５０８へ進む。
【００４１】
ステップＳ５０８では、物体追尾部１１３は、グリッドセルｇ’iの移動履歴に登録されているクラスタの中から物体の探索が未実行のクラスタを１つ選択する。選択順序は、例えばクラスタに設定されている探索優先度の高いものから順に選択する。本実施形態では、前述したようにクラスタリング単位を各Δｔkの各グリッドセルとしている。
【００４２】
ステップＳ５０９では、物体追尾部１１３は、選択したクラスタに基づき、追尾のための着目物体ｈ’jの探索範囲を決定する。本実施形態では、クラスタが持つ情報は移動先のグリッドセルｇとフレームｔ0からの差分フレーム数Δｔである。本実施形態では、フレーム（ｔ0＋Δｔ）上におけるグリッドセルｇを中心とする３×３のグリッドセル領域を探索範囲とする。
【００４３】
ステップＳ５１０では、物体追尾部１１３は、ステップＳ５０９において設定した探索範囲の中で、着目物体ｈ’jに対応する物体を探索する。本実施形態では、物体追尾部１１３は、例えばパターンマッチングを利用して物体の探索を行う。パターンマッチングでの類似度算出方法は、任意の方法を採用可能である。例えば、ピクセル値の差の絶対値和を類似度とする方法（ＳＡＤ：Sum of Absolute Difference）や差の２乗和を類似度とする方法（ＳＳＤ：Sum of Squared Difference）等がある。本実施例では類似度算出方法としてＳＡＤを利用するものとする。ただし、着目物体ｈ’jに対応する物体を検出する方法をパターンマッチングに限定するものではない。
【００４４】
ステップＳ５１１では、物体追尾部１１３は、ステップＳ５１０において行った物体の探索により、着目物体ｈ’jに対応する物体が検出されたか否かを判定する。ステップＳ５１０での物体の探索により着目物体ｈ’jに対応する物体が検出されたと物体追尾部１１３が判定した場合（類似度がしきい値以上となった場合）（ＹＥＳ）、ステップＳ５１３へ進む。一方、ステップＳ５１０での物体の探索により着目物体ｈ’jに対応する物体が検出されなかったと物体追尾部１１３が判定した場合（ＮＯ）、ステップＳ５１２へ進む。
【００４５】
ステップＳ５１２では、物体追尾部１１３は、検出エラーを記録する。本実施形態における検出エラーの情報は、グリッドセルＩＤ毎に、移動履歴に登録されているクラスタ数、エラー発生数とする。検出エラーを記録した後、ステップＳ５０７に戻り、次のクラスタを選択して処理を行う。
【００４６】
ステップＳ５１３では、物体追尾部１１３は、着目物体ｈ’jのフレームｔ0からフレーム（ｔ0＋Δｔ）までの軌跡を作成する。着目物体ｈ’jの軌跡について、フレームｔ0における位置は既知であり、フレーム（ｔ0＋Δｔ）における位置はステップＳ５１０において検出済みである。フレーム（ｔ0＋１）からフレーム（ｔ0＋Δｔ−１）の区間については、物体追尾部１１３は、フレームｔ0からフレーム（ｔ0＋Δｔ）まで等速直線運動をしたものとして、軌跡を線形補間により作成する。作成した軌跡は、本実施形態では軌跡情報収集部１２０の軌跡管理部２０６を通じて記録する。その後、処理をステップＳ５０３に戻し、物体追尾部１１３は、追尾対象となっている物体（複数）の中から次の着目物体を選択して処理を行う。
【００４７】
前述したようにステップＳ５０７においてグリッドセルｇ’iの移動履歴に登録されているすべてのクラスタについて物体の探索を実行したと物体追尾部１１３が判定した場合（ＹＥＳ）、ステップＳ５１４へ進む。これは、グリッドセルｇ’iの移動履歴に基づいて設定された探索範囲を探しても、着目物体ｈ’jに対応する物体が見つからなかった場合に対応する。
【００４８】
ステップＳ５１４では、本実施形態では、軌跡情報収集部１２０を用いて着目物体ｈ’jに対応する物体を追尾する。具体的には、フレームｔ0からフレーム（ｔ0＋Δｔk）までの画像を画像取得部２０１に入力する。そして、物体検出部２０２、物体追尾部２０３、人体検出部２０４、物体対応付部２０５、及び軌跡管理部２０６により着目物体ｈ’jのフレームｔ0からフレーム（ｔ0＋Δｔk）までの軌跡を作成する。ただし、ｋ＝１，２，３，・・・，１０のいずれかであり、グリッドセルｇ’iとは異なるグリッドセルに属することとなる最小のｋとする。ｋ＝１０においても、グリッドセルｇ’iとは異なるグリッドセルに移動しない場合、その物体は消失したものとして扱い、追尾を中断する。処理を終えたら、ステップＳ５０３に処理を移す。
【００４９】
ステップＳ５０３において追尾対象のすべての物体について処理を実行したと判定した場合（ＹＥＳ）に進むステップＳ５１５では、物体追尾部１１３は、ステップＳ５１２において記録した検出エラー情報を元に、グリッドセル毎にエラー率を算出する。本実施形態では、エラー率＝（そのグリッドセルでのエラー発生数）／（そのグリッドセルの移動履歴に登録されているクラスタ数）とする。
【００５０】
ステップＳ５１６では、物体追尾部１１３は、ステップＳ５１５においてエラー率を計算した結果、エラー率が所定しきい値以上のグリッドセルがあったか否かを判定する。エラー率が所定のしきい値以上のグリッドセルがあると物体追尾部１１３が判定した場合には（ＹＥＳ）、ステップＳ５１７に処理を進め、ないと物体追尾部１１３が判定した場合には（ＮＯ）、追尾処理を終了する。
【００５１】
ステップＳ５１７では、履歴管理部１１１が、エラー率が所定のしきい値以上のグリッドセルについて、移動履歴の再生成を行う。移動履歴の生成方法は、すでに説明した移動履歴の生成処理と同様である。そして、移動履歴を再生成した後、追尾処理を終了する。
【００５２】
以上のように、本実施形態における画像処理装置は、物体の移動履歴を生成し、生成した移動履歴を利用して追尾処理を行うことにより、追尾時の探索範囲を限定しつつ、探索範囲内に物体が検出されない検出エラーの発生頻度を小さくすることができる。これにより、追尾精度を低下させることなく、処理に係る演算コストを低減することが可能となる。
【００５３】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
前述した第１の実施形態では、物体の既存の軌跡情報を利用する場合について説明した。第２の実施形態では、移動履歴の生成に既存の軌跡情報を利用せず、移動履歴を逐次生成して追尾する方法を説明する。
【００５４】
図６は、第２の実施形態における画像処理装置６００の構成例を示すブロック図である。画像処理装置６００は、履歴管理部６０１、記憶装置６０２、物体追尾部６０３、画像取得部６０４、及び軌跡管理部６０５を有する。履歴管理部６０１は、各物体の移動履歴を生成する。履歴管理部６０１により生成された物体の移動履歴は、記憶装置６０２に記憶される。
【００５５】
物体追尾部６０３は、画像取得部６０４により取得した画像から追尾対象の物体を検出することにより、追尾対象の物体を追尾する。画像取得部６０４は、例えばカメラやサーバ等の外部の装置から、処理対象の画像を時系列順に取得する。なお、画像取得部６０４は、外部メモリ等に保存された画像を取得するようにしてもよい。軌跡管理部６０５は、物体追尾部６０３で追尾した物体の軌跡情報を管理する。
【００５６】
＜移動履歴の生成＞
以下、第２の実施形態における物体の移動履歴の生成について説明する。図７は、第２の実施形態における移動履歴の生成処理の例を示すフローチャートである。
【００５７】
ステップＳ７０１では、履歴管理部６０１は、初期設定を行う。本実施形態では、第１の実施形態と同様に、画像領域をグリッド分割する。また、物体の移動先の集計に利用するΔｔkの値を設定する。ここでは、Δｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）と設定するものとする。また、変数Ｃｎｔの値を０に初期化する。変数Ｃｎｔは、物体追尾部６０３から送られてくる追尾情報の集計回数をカウントするためのカウンタとして用いる。
【００５８】
初期設定が終わると、ステップＳ７０２では、履歴管理部６０１は、物体追尾部６０３からの追尾情報を受信する。本実施形態において、受信する追尾情報には、物体ＩＤ、フレーム番号及び物体位置（座標）を含むものとする。物体ＩＤとは、追尾対象となる物体毎に割り当てられる共通のＩＤであり、物体追尾部６０３や軌跡管理部６０５ではそれぞれ追尾や軌跡管理のために用いる。物体追尾部６０３からの追尾情報がない場合には、受信できるまで待機する。
【００５９】
追尾情報を受信すると進むステップＳ７０３では、履歴管理部６０１は、追尾情報に含まれる物体ｈが移動履歴管理物体として登録済みの物体であるか否かを判定する。登録済みの物体であるか否かは、記憶装置６０２に保持している登録情報に対して物体ＩＤを検出することで判定する。
【００６０】
ステップＳ７０３での判定の結果、追尾情報に含まれる物体ｈが未登録の物体であると履歴管理部６０１が判定した場合（ＮＯ）、ステップＳ７０４に進み、履歴管理部６０１は、追尾情報に含まれる物体ｈを移動履歴管理物体として登録する。このときに登録する情報には、物体ＩＤの他、その物体の初出情報としてのフレーム番号（＝ｔ0）、及び物体位置（座標）から特定したグリッドセル（＝ｇ）の情報を含む。登録情報の保持には記憶装置６０２を利用し、登録後は、物体ＩＤを指定することで登録情報を参照可能とする。
【００６１】
ステップＳ７０３での判定の結果、追尾情報に含まれる物体ｈが移動履歴管理物体として登録済みであると履歴管理部６０１が判定した場合（ＹＥＳ）、ステップＳ７０５に処理を進める。
【００６２】
ステップＳ７０５では、履歴管理部６０１は、追尾情報からそのフレーム番号ｔを抽出する。次に、履歴管理部６０１は、Δｔ＝ｔ−ｔ0∈Δｔkである、すなわちそのフレームが集計対象のフレームであるか否かを判定する。履歴管理部６０１は、そのフレームが集計対象のフレームであると判定した場合（ＹＥＳ）にはステップＳ７０６に処理を進め、そうでない場合（ＮＯ）にはステップＳ７０２に処理を進める。
【００６３】
ステップＳ７０６では、履歴管理部６０１は、物体ｈの物体位置（座標）を物体ｈのフレーム（ｔ0＋Δｔk）における移動先として記録する。その後、ステップＳ７０７では、履歴管理部６０１は、変数Ｃｎｔの値を１だけインクリメントする。続く、ステップＳ７０８では、履歴管理部６０１は、変数Ｃｎｔの値が事前に定めたしきい値Ｔｈより大きいか否かを判定する。すなわち、ステップＳ７０８では、履歴管理部６０１は、移動履歴の生成に十分なデータが集まったか否かを判定する。
【００６４】
履歴管理部６０１は、変数Ｃｎｔの値が事前に定めたしきい値Ｔｈ以下であると履歴管理部６０１が判定した場合（ＮＯ）にはステップＳ７０２に処理を移し、閾値Ｔｈより大きいと判定した場合（ＹＥＳ）にはステップＳ７０９に処理を移す。
【００６５】
ステップＳ７０９では、履歴管理部６０１は、グリッドセル毎に物体の移動先をクラスタリングする。ここでは、グリッドセルｇiに着目して説明する。履歴管理部６０１は、登録情報として、グリッドセルｇiを通った物体ｈjを抽出し、それらの物体の移動先をクラスタリングする。本実施形態では、クラスタリングの単位を各Δｔkの各グリッドセルとする。すなわち、各Δｔkの各グリッドにカウンタを設置し、移動先として指定された（移動先の座標がそのグリッドセルに属した）回数をカウントする。履歴管理部６０１は、カウントが終わったら、所定回数以上のカウントを持つグリッドセル（Δｔk，ｇi）を抽出する。所定回数以上のカウントを持つグリッドセル同士が隣接している場合は、連結して１つのクラスタとしてもよい。本実施形態では、説明を簡単にするため、連結せずに個々のクラスタとして扱うこととする。
【００６６】
ステップＳ７１０では、履歴管理部６０１は、ステップＳ７０９において抽出したグリッドセルに対し、探索優先度を設定する。本実施形態では、優先度スコアＳｃをＳｃ＝ｎ×ｋで算出し、優先度スコアＳｃが大きいグリッドセルほど探索優先度を高く設定することとする。ただし、ｎは移動先として指定されたカウント数、ｋはΔｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）のｋである。つまり、ｎが大きいほど移動先となる可能性が高く、ｋが大きいほど演算量を削減できる。探索優先度の設定が完了すると、履歴管理部６０１は、ステップＳ７１０において設定した探索優先度をグリッドセルｇiに関する移動履歴に加えた後、移動履歴を記憶装置６０２に記録する。記録が完了したら、履歴管理部６０１は、ステップＳ７１１で変数Ｃｎｔの値を０に設定し、ステップＳ７０２に処理を移す。
【００６７】
＜追尾処理＞
次に、第２の実施形態における画像処理装置６００の追尾処理について説明する。本実施形態では、画像処理装置６００の物体追尾部６０３が、前述のようにして生成される移動履歴を用いて物体の追尾処理を行う。第２の実施形態における追尾処理は、図５に示した第１の実施形態における追尾処理と基本的には同様である。
【００６８】
ただし、第２の実施形態では、ステップＳ５０４において着目物体ｈ’jを１つ選択する際、物体追尾部６０３は、軌跡管理部６０５で管理している追尾情報を利用して、現時点で追尾対象となっている物体情報を得るものとする。また、ステップＳ５１３において着目物体ｈ’jのフレームｔ0からフレーム（ｔ0＋Δｔ）までの軌跡を作成した際、物体追尾部６０３は、作成した軌跡を軌跡管理部６０５に記録する。
【００６９】
以上のように、本実施形態における画像処理装置は、物体の移動履歴を生成し、生成した移動履歴を利用して追尾処理を行うことにより、追尾時の探索範囲を限定しつつ、探索範囲内に物体が検出されない検出エラーの発生頻度を小さくすることができる。これにより、追尾精度を低下させることなく、処理に係る演算コストを低減することが可能となる
【００７０】
なお、前述した第１及び第２の実施形態では、追尾を行う画像領域をグリッド分割し、グリッドセル毎に移動履歴を生成するようにしているが、グリッド分割以外の方法も可能である。例えば、自由な形状の部分領域を複数設定し、それぞれの部分領域を本実施形態でのグリッドセルと同様に扱うことで、本発明の実施が可能である。もちろん、処理時間が問題にならない場合には、部分領域を画素とすることで、画素単位で本発明を実施できる。
【００７１】
また、前述した第１及び第２の実施形態では、Δｔk＝１０×ｋ（ｋ＝１，２，３，・・・，１０）とし、クラスタリングの実施フレームをｔ0＋ｔkとした。しかし、この方法に限らず、自由にクラスタリングの実施フレームを設定可能である。また、前述した第１及び第２の実施形態では、優先度スコアの算出方法を定義し、優先度スコアを利用して探索優先度を設定するようにしているが、これに限定されるものではなく、探索優先度は、他の任意の方法で設定可能である。例えば、ランダムに優先度を設定するよう構成しても良い。
【００７２】
また、前述した第１及び第２の実施形態では、物体の移動先をクラスタリングするようにしているが、必ずしもクラスタリングする必要はない。例えば、物体の移動先の中から代表となる移動先とその周辺領域を選択するようにしても良い。また、前述した第１及び第２の実施形態では、探索範囲を移動履歴に登録されているクラスタに基づき決定しているが、探索範囲の決定に他の要素を考慮するようにしても良い。例えば、探索範囲を設定する時間に基づき、探索範囲のサイズを拡げたり狭めたりするようにしても良い。例えば、朝の通勤時間帯では探索範囲を小さく設定し、夕方の買い物時間帯では探索範囲を広く設定することで、検出エラーの発生頻度を低減可能となる。
【００７３】
また、前述した第１及び第２の実施形態では、追尾に際し、人間の性別や年齢等の追尾対象物体の属性を利用していないが、これらの属性を検出及び利用するようにしても良い。これにより、例えば属性毎に移動履歴を作成するとともに、属性毎に追尾することが可能となり、追尾精度が向上する効果がある。また、前述した第１及び第２の実施形態では、物体の観測位置、移動先、移動先差分フレーム数を表示等の出力はしていなかったが、これらの情報を出力するよう構成しても良い。これにより、追尾が失敗した場合の原因を探ることが可能となる。また、Δｔk値など、内部パラメータを修正するためのインターフェイスを備えるように構成しても良い。これにより、追尾が失敗した場合の原因に応じて、パラメータを手動で修正し、本実施形態における動作をユーザが制御可能となる。
【００７４】
（本発明の他の実施形態）
本発明は、前述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７５】
図８は、本実施形態における画像処理装置のハードウェア構成の一例を示すブロック図である。図８に示すように画像処理装置は、ＣＰＵ８０１、ＲＡＭ８０２、ＲＯＭ８０３、入力部８０４、出力部８０５、記憶部８０６、及び通信インターフェイス（ＩＦ）８０７を有する。ＣＰＵ８０１、ＲＡＭ８０２、ＲＯＭ８０３、入力部８０４、出力部８０５、記憶部８０６、及び通信ＩＦ８０７は、システムバス８０８を介して通信可能に接続される。
【００７６】
ＣＰＵ（Central Processing Unit）８０１は、システムバス８０８に接続された各部の制御を行う。ＲＡＭ（Random Access Memory）８０２は、ＣＰＵ８０１の主記憶装置として使用される。ＲＯＭ（Read Only Memory）８０３は、装置の起動プログラム等を記憶する。ＣＰＵ８０１が、記憶部８０６からプログラムを読み出して実行することで、例えば画像処理装置が有する履歴管理部や物体追尾部の機能が実現される。
【００７７】
入力部８０４は、ユーザによる入力等を受け付けたり、画像データを入力したりする。出力部８０５は、画像データやＣＰＵ８０１における処理結果等を出力する。記憶部８０６は、装置の動作や処理に係る制御プログラム等を記憶する不揮発性の記憶装置である。通信ＩＦ８０７は、本装置と他の装置（中継器等）との情報通信を制御する。
【００７８】
前述のように構成された装置において、装置に電源が投入されると、ＣＰＵ８０１は、ＲＯＭ８０３に格納された起動プログラムに従って、記憶部８０６から制御プログラム等をＲＡＭ８０２に読み込む。ＣＰＵ８０１は、ＲＡＭ８０２に読み込んだ制御プログラム等に従い処理を実行することによって、画像処理装置の機能を実現する。つまり、画像処理装置のＣＰＵ８０１が制御プログラム等に基づき処理を実行することによって、画像処理装置の機能構成及び動作が実現される。
【００７９】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００８０】
１１０、６００：画像処理装置  １１１、６０１：履歴管理部  １１２、６０２：記憶装置  １１３、６０３：物体追尾部  １１４、６０４：画像取得部  １２０：軌跡情報収集部  ６０５：軌跡管理部
【図１】
2020119447.tif 000003
【図２】
2020119447.tif 000004
【図３】
2020119447.tif 000005
【図４】
2020119447.tif 000006
【図５】
2020119447.tif 000007
【図６】
2020119447.tif 000008
【図７】
2020119447.tif 000009
【図８】
2020119447.tif 000010