(57)【要約】【課題】フレーム内に移動速度が異なる物体が含まれている場合であっても、精度よく動きベクトルを検出する。【解決手段】連続する複数フレームにおける対象フレームＦｒｔと、対象フレームから所定フレーム間隔離れた過去フレームＦｒｔ−ｉとに基づいて、対象フレームＦｒｔ上の対象画素位置での動きベクトルを計測する。この際、間隔パラメータ設定部４が、対象フレームＦｒｔ上における領域毎または画素毎に、動きベクトルを計測する際の対象フレームＦｒｔと過去フレームＦｒｔ−ｉとの間隔を表す間隔パラメータを設定する。具体的には、移動速度が大きい物体に対応する領域または画素ほど、フレーム間隔が小さくなるように間隔パラメータを設定する。動きベクトル計測部５が、間隔パラメータにしたがって、動きベクトルを計測する。【選択図】図１
2011191972.tif 000002
【特許請求の範囲】
【請求項１】
動画像に含まれる複数フレームにおける対象フレームと、該対象フレームから所定フレーム間隔離れた過去フレームとに基づいて、前記対象フレーム上の対象画素位置での動きベクトルを計測する動きベクトル計測装置において、
前記対象フレーム上における領域毎または画素毎に、前記動きベクトルを計測する際の前記対象フレームと前記過去フレームとのフレーム間隔を表す間隔パラメータを設定する間隔パラメータ設定手段と、
前記間隔パラメータにしたがって、前記動きベクトルを計測する動きベクトル計測手段とを備えたことを特徴とする動きベクトル計測装置。
【請求項２】
前記対象フレームおよび前記過去フレームを階層化する階層化手段をさらに備え、
前記間隔パラメータ変更手段は、最低階層以外の階層の前記対象フレーム上における領域毎または画素毎に前記間隔パラメータを設定する手段であることを特徴とする請求項１記載の動きベクトル計測装置。
【請求項３】
前記間隔パラメータを記憶する記憶手段をさらに備え、
前記間隔パラメータ設定手段は、計測された前記動きベクトルが小さいほど、前記対象フレームと前記過去フレームとの間隔が大きくなるように前記記憶手段に記憶された間隔パラメータを更新する手段であることを特徴とする請求項１または２記載の動きベクトル計測装置。
【請求項４】
前記間隔パラメータを記憶する記憶手段をさらに備え、
前記間隔パラメータ設定手段は、前記対象画素位置および該対象画素位置近傍の複数画素位置の複数の前記動きベクトルに基づいて、前記記憶された間隔パラメータを更新する手段であることを特徴とする請求項１から３のいずれか１項記載の動きベクトル計測装置。
【請求項５】
前記間隔パラメータ設定手段は、前記フレーム間隔とともに、前記動きベクトルの計測に使用する前記過去フレームのフレーム数を表す前記間隔パラメータを設定する手段であることを特徴とする請求項１から４のいずれか１項記載の動きベクトル計測装置。
【請求項６】
前記動きベクトル計測手段は、前記対象フレームに近いフレーム間隔の前記過去フレームから順に、あるいは前記対象フレームから離れたフレーム間隔の前記過去フレームから順に用いて前記動きベクトルを計測する手段であり、大きさが０以外の値の前記動きベクトルが計測されると、それ以降の前記過去フレームを用いての前記動きベクトルの計測を停止する手段であることを特徴とする請求項５記載の動きベクトル計測装置。
【請求項７】
前記動きベクトル計測手段は、前記対象画素位置および該対象画素位置近傍の複数画素位置の複数の前記動きベクトルに基づいて、前記対象画素位置の動きベクトルを決定する手段であることを特徴とする請求項１から６のいずれか１項記載の動きベクトル計測装置。
【請求項８】
動画像に含まれる複数フレームにおける対象フレームと、該対象フレームから所定フレーム間隔離れた過去フレームとに基づいて、前記対象フレーム上の対象画素位置での動きベクトルを計測する動きベクトル計測方法において、
前記対象フレーム上における領域毎または画素毎に、前記動きベクトルを計測する際の前記対象フレームと前記過去フレームとのフレーム間隔を表す間隔パラメータを設定し、
前記間隔パラメータにしたがって、前記動きベクトルを計測することを特徴とする動きベクトル計測方法。
【請求項９】
動画像に含まれる複数フレームにおける対象フレームと、該対象フレームから所定フレーム間隔離れた過去フレームとに基づいて、前記対象フレーム上の対象画素位置での動きベクトルを計測する動きベクトル計測方法をコンピュータに実行させるためのプログラムにおいて、
前記プログラムは、前記対象フレーム上における領域毎または画素毎に、前記動きベクトルを計測する際の前記対象フレームと前記過去フレームとのフレーム間隔を表す間隔パラメータを設定する手順と、
前記間隔パラメータにしたがって、前記動きベクトルを計測する手順とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像における物体の動きを表す動きベクトルを計測する動きベクトル計測装置および方法並びに動きベクトル計測方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【０００２】
画像の動きベクトルを計測する手段として、従来より相関演算に基づくブロックマッチング法が知られている。ブロックマッチング法は、動きベクトル計測の対象となる対象フレームを複数の適当な大きさのブロック（例えば８×８画素）に分割し、このブロック単位で過去のフレームとの画素の差を算出し、この差の絶対値の和が最小となる過去のフレームの画素位置を探索する方法である。ブロックマッチング法においては、フレーム間におけるブロックのずれが、対象フレームにおけるそのブロックの中心にある画素位置の動きベクトルを示すものとなる。
【０００３】
また、動きベクトルを計測するに際し、オリジナルの解像度のフレームから、画素数を低減した低解像度のフレームを作成し、作成した低解像度のフレームを用いて、ブロックマッチング法により動きベクトルを計測する手法が提案されている（特許文献１参照）。特許文献１の手法によれば、低解像度のフレームを使用することにより、動きベクトルを計測するための演算量を低減できるため、高速に動きベクトルを計測することができる。
【０００４】
また、動きベクトルを計測する際の精度を向上させたり、演算量を低減させたりするための種々の手法が提案されている（特許文献２〜４参照）。特許文献２に記載された手法は、動きベクトルの計測に用いる対象フレームと過去フレームとの間のフレームを、設定されたフレーム数コマ落としし、コマ落としされたフレーム数に応じて、ブロックのサイズを変更することにより、精度を落とすことなく高速に動きベクトルを計測する手法である。また、特許文献３に記載された手法は、フレーム中に複数の移動物体がある場合に、その移動物体の領域毎に動きベクトルを求める手法である。また、特許文献４に記載された手法は、対象フレームと過去フレームとの間隔が大きくなると、物体の移動量が大きくなることから、動きベクトルの探索範囲を広げる手法である
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３６１７６７１号公報
【特許文献２】特開平１０−１３８３６号公報
【特許文献３】特開平８−２５１４７４号公報
【特許文献４】特開平７−６７１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載された手法は、動きベクトルの検出に高階層のフレームを使用しているため、フレームに含まれる物体の小さな動きを検出することができない。また、小さな動きを検出するためには、再度低階層（高解像度）のフレームを用いて動きベクトルを検出する必要があるため、演算量を低減することができない。また、特許文献２に記載された手法は、移動速度が異なる物体がフレームに含まれる場合において、フレーム間隔が大きいと、移動速度が小さい物体の動きベクトルは精度よく検出できるが、移動速度が大きい物体はフレーム外に移動してしまう可能性があるため、動きベクトルを検出できない場合がある。また、特許文献３に記載された手法は、移動物体の領域毎に動きベクトルを求めることができるが、物体の移動速度に応じた処理を行っていないため、精度よく動きベクトルを求めることができない。さらに、特許文献４に記載された手法は、物体の移動量に応じて動きベクトルの探索範囲を広げているため、精度よく動きベクトルを検出できるものの、フレーム内に移動速度が異なる物体が含まれる場合には、対応することができない。
【０００７】
本発明は、上記事情に鑑みなされたものであり、フレーム内に移動速度が異なる物体が含まれている場合であっても、精度よく動きベクトルを検出することを目的とする。
【課題を解決するための手段】
【０００８】
本発明による動きベクトル計測装置は、動画像に含まれる複数フレームにおける対象フレームと、該対象フレームから所定フレーム間隔離れた過去フレームとに基づいて、前記対象フレーム上の対象画素位置での動きベクトルを計測する動きベクトル計測装置において、
前記対象フレーム上における領域毎または画素毎に、前記動きベクトルを計測する際の前記対象フレームと前記過去フレームとのフレーム間隔を表す間隔パラメータを設定する間隔パラメータ設定手段と、
前記間隔パラメータにしたがって、前記動きベクトルを計測する動きベクトル計測手段とを備えたことを特徴とするものである。
【０００９】
なお、本発明による動きベクトル計測装置においては、前記対象フレームおよび前記過去フレームを階層化する階層化手段をさらに備えるものとし、
前記間隔パラメータ変更手段を、最低階層以外の階層、すなわちオリジナルの解像度以外の解像度の前記対象フレーム上における領域毎または画素毎に前記間隔パラメータを設定する手段としてもよい。
【００１０】
また、本発明による動きベクトル計測装置においては、前記間隔パラメータを記憶する記憶手段をさらに備えるものとし、前記間隔パラメータ設定手段を、計測された前記動きベクトルが小さいほど、前記対象フレームと前記過去フレームとの間隔が大きくなるように前記記憶された間隔パラメータを更新する手段としてもよい。
【００１１】
また、本発明による動きベクトル計測装置においては、前記間隔パラメータを記憶する記憶手段をさらに備えるものとし、前記間隔パラメータ設定手段を、前記対象画素位置および該対象画素位置近傍の複数画素位置の複数の前記動きベクトルに基づいて、前記記憶された間隔パラメータを更新する手段としてもよい。
【００１２】
「対象画素位置および該対象画素位置近傍の複数画素位置の前記動きベクトルに基づいて、前記記憶された間隔パラメータを更新する」とは、対象画素位置の動きベクトルのみならず、対象画素位置近傍の動きベクトルを考慮して、間隔パラメータを変更することを意味する。例えば、対象画素位置の動きベクトルと対象画素位置近傍の動きベクトルにばらつきがなければ、その動きベクトルを計測した間隔パラメータを、次の対象フレームについての動きベクトルの計測に使用し、動きベクトルにばらつきがある場合、間隔パラメータにより表されるフレーム間隔、あるいは間隔パラメータが動きベクトルの計測に使用する過去フレームのフレーム数をも表すものである場合はフレーム数を変更して動きベクトルをより精度よく計測できるようにすればよい。
【００１３】
また、本発明による動きベクトル計測装置においては、前記間隔パラメータ設定手段を、前記フレーム間隔とともに、前記動きベクトルの計測に使用する前記過去フレームのフレーム数を表す前記間隔パラメータを設定する手段としてもよい。
【００１４】
この場合、前記動きベクトル計測手段を、前記対象フレームに近いフレーム間隔の前記過去フレームから順に、あるいは前記対象フレームから離れたフレーム間隔の前記過去フレームから順に用いて前記動きベクトルを計測する手段であり、大きさが０以外の値の前記動きベクトルが計測されると、それ以降の前記過去フレームを用いての前記動きベクトルの計測を停止する手段としてもよい。
【００１５】
また、本発明による動きベクトル計測装置においては、前記動きベクトル計測手段を、前記対象画素位置および該対象画素位置近傍の複数画素位置の複数の前記動きベクトルに基づいて、前記対象画素位置の動きベクトルを決定する手段としてもよい。
【００１６】
本発明による動きベクトル計測方法は、動画像に含まれる複数フレームにおける対象フレームと、該対象フレームから所定フレーム間隔離れた過去フレームとに基づいて、前記対象フレーム上の対象画素位置での動きベクトルを計測する動きベクトル計測方法において、
前記対象フレーム上における領域毎または画素毎に、前記動きベクトルを計測する際の前記対象フレームと前記過去フレームとのフレーム間隔を表す間隔パラメータを設定し、
前記間隔パラメータにしたがって、前記動きベクトルを計測することを特徴とするものである。
【００１７】
なお、本発明による動きベクトル計測方法をコンピュータに実行させるためのプログラムとして提供してもよい。
【発明の効果】
【００１８】
動画像に含まれる物体のうち、移動速度が小さい物体は、対象フレームと過去フレームとのフレーム間隔が小さい場合には動きベクトルを精度よく検出することは困難であるが、フレーム間隔が大きくなるほど精度よく動きベクトルを検出できる。逆に、移動速度が大きい物体は、対象フレームと過去フレームとのフレーム間隔が大きいと、物体がフレーム外に移動してしまう可能性があるが、フレーム間隔が小さければ精度よく動きベクトルを検出できる。
【００１９】
本発明は、対象フレームまたは過去フレーム上における領域毎または画素毎に、動きベクトルを計測する際の対象フレームと過去フレームとのフレーム間隔を表す間隔パラメータを設定し、間隔パラメータにしたがって動きベクトルを計測するようにしたものである。このため、フレーム中の物体の移動速度に応じた適切なフレーム間隔を設定することができ、その結果、物体の移動速度に拘わらず、精度よく動きベクトルを計測することができる。
【００２０】
また、対象フレームおよび過去フレームを階層化し、最低階層以外の階層すなわち低解像度の対象フレーム上における領域毎または画素毎に間隔パラメータを設定することにより、演算量を低減して高速に動きベクトルを計測することができる。また、高階層のフレームを用いると、移動速度が小さい物体の動きベクトルの検出精度が低下するが、本発明によれば、フレーム中の物体の移動速度に応じた適切なフレーム間隔を設定することができるため、物体の移動速度に拘わらず、精度よくかつ高速に動きベクトルを計測することができる。
【００２１】
また、動きベクトルが小さいほど、対象フレームと過去フレームとの間隔が大きくなるように間隔パラメータを変更することにより、移動速度が小さい物体についての動きベクトルおよび移動速度が大きい物体についての動きベクトルの双方を精度よく検出することができる。
【００２２】
また、対象画素位置および対象画素位置近傍の複数画素位置の複数の動きベクトルに基づいて間隔パラメータを変更することにより、物体の動きに応じて間隔パラメータを精度よく設定できるため、より精度よく動きベクトルを計測することができる。
【００２３】
また、複数の過去フレームを用いることにより、動きベクトルを確実に計測できる。
【００２４】
この場合、複数の過去フレームについて、対象フレームに近いフレーム間隔の過去フレームから順に、あるいは対象フレームから離れたフレーム間隔の過去フレームから順に用いて動きベクトルを計測し、大きさが０以外の値の動きベクトルが計測されると、それ以降の過去フレームを用いての動きベクトルの計測を停止することにより、複数フレームのすべてについて動きベクトルを計測しなくてもよくなるため、演算速度を向上させることができる。
【００２５】
また、対象画素位置および対象画素位置近傍の複数画素位置の複数の動きベクトルに基づいて、対象画素位置の動きベクトルを決定することにより、対象画素位置および対象画素位置近傍の動きベクトルのばらつきを抑えて、より精度よく対象画素位置の動きベクトルを計測することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態による動きベクトル計測装置の構成を示す概略ブロック図
【図２】階層化部が行う処理を説明するための図
【図３】間隔パラメータの設定を説明するための図
【図４】動きベクトル計測部の構成を示す概略ブロック図
【図５】動きベクトルの分布の算出を説明するための図
【図６】動きベクトルの再構成を説明するための図（その１）
【図７】動きベクトルの再構成を説明するための図（その２）
【図８】動きベクトルの検出を説明するための図
【図９】第２の動きベクトルの計測を説明するための図
【図１０】自己動きベクトル分布の算出を説明するための図
【図１１】対象画素位置の動きベクトル検出空間に自己動きベクトル分布のスコアを割り当てた状態を示す図
【図１２】本実施形態において行われる処理を示すフローチャート
【図１３】間隔パラメータの更新を説明するための図
【図１４】動きベクトルの計測処理のフローチャート
【発明を実施するための形態】
【００２７】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の実施形態による動きベクトル計測装置の構成を示す概略ブロック図である。図１に示すように、本実施形態による動きベクトル計測装置１は、フレームメモリ２、階層化部３、間隔パラメータ設定部４、動きベクトル計測部５、メモリ６および制御部７を備える。
【００２８】
フレームメモリ２は、不図示の画像入力装置から入力されたデジタルの動画像の画像データをフレーム単位で一時的に記憶する。なお、動きベクトルを計測する際の、動きベクトルの計測対象となるフレームを対象フレームＦｒｔ、動きベクトルの計測に用いる対象フレームＦｒｔよりも過去のフレームを過去フレームＦｒｔ−ｉ（ｉ＝１〜ｎ：ｎは正の整数）とする。
【００２９】
階層化部３は、フレームメモリ２に一時的に記憶された動画像の画像データの各フレームを階層化して、低解像度の階層フレームを作成する。なお、フレームメモリ２には、動画像の画像データのフレームが順次記憶されるため、階層化部３は、フレームメモリ２に順次記憶されるフレームを１回のみ階層化して、低解像度の階層フレームを作成する。図２は階層化部３が行う処理を説明するための図である。なお、図２において対象フレームＦｒｔの階層化を示す。図２に示すように階層化部３は、階層化されていない最高解像度のフレーム（以下第１階層フレームＦｒｔ０−１とする）について、画素を間引くあるいは４画素の平均値を算出する等の公知の手法を用いて、第１階層フレームＦｒｔ０−１の解像度が１／２（縦横サイズが第１階層フレームＦｒｔ０−１の１／２）の第２階層フレームＦｒｔ０−２を作成する。また、第２階層フレームＦｒｔ０−２の解像度が１／２の第３階層フレームＦｒｔ０−３を作成する。さらに、第３階層フレームＦｒｔ０−３の解像度が１／２の第４階層フレームＦｒｔ０−４を作成する。
【００３０】
なお、後述するように動きベクトルを計測する際には、フレームの解像度が低いほど演算量が少なく、高速に処理を行うことができるが、計測精度が低下する。したがって、作成するフレームの階層数は、必要とされる演算時間および計測精度に応じて、適宜設定すればよい。
【００３１】
間隔パラメータ設定部４は、対象フレームＦｒｔ上における画素毎に間隔パラメータを設定する。間隔パラメータは、動きベクトルを計測する際の、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔、および動きベクトルの計測に使用する過去フレームＦｒｔ−ｉのフレーム数を表す。以下、間隔パラメータの設定について説明する。図３は間隔パラメータの設定を説明するための図である。図３に示すように対象フレームＦｒｔには、移動速度が異なる３つの物体の領域Ａ１，Ａ２，Ａ３が含まれているものとする。また、移動速度はＡ１＞Ａ２＞Ａ３であるものとする。
【００３２】
本実施形態においては、対象フレームＦｒｔと、対象フレームＦｒｔよりも時間的に過去の複数の過去フレームＦｒｔ−ｉをフレームメモリ２に記憶し、対象フレームＦｒｔと過去フレームＦｒｔ−ｉのいずれかとを用いて、動きベクトルを計測する。なお、使用する過去フレームＦｒｔ−ｉの数は、動きベクトルの計測に使用するフレームの階層に応じて設定する。例えば、動きフレームの計測に使用するフレームの階層が第３階層であれば、第１階層における物体の１画素の動きは、過去フレームが４つあれば検出できる。また、動きフレームの計測に使用するフレームの階層が第４階層であれば、第１階層における物体の１画素の動きは、過去フレームが８つあれば検出できる。このため、動きベクトルの計測に使用する過去フレーム数は、動きベクトルの計測に使用するフレームの階層に応じて定められる数以上に設定すればよい。本実施形態においては、例えば第３階層のフレームを使用し、６つの過去フレームＦｒｔ−１〜Ｆｒｔ−６を使用して、動きベクトルを計測するものとする。
【００３３】
また、本実施形態においては、計測された動きベクトルの大きさに応じて、次の対象フレームの動きベクトルの計測に使用する対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔を画素毎に設定する。例えば、最も移動速度が大きい領域Ａ１内の画素については、間隔パラメータにより表されるフレーム間隔を１に設定し、対象フレームＦｒｔと、対象フレームＦｒｔに時間的に最も近い過去フレームＦｒｔ−１とを用いて動きベクトルの計測を行うようにする。また過去フレームＦｒｔ−１，Ｆｒｔ−２の２つの過去フレームを動きベクトルの計測に使用するようフレーム数を２に設定する。なお、複数の過去フレームを用いての動きベクトルの計測については後述する。
【００３４】
また、領域Ａ１の次に移動速度が大きい領域Ａ２内の画素については、間隔パラメータにより表されるフレーム間隔を２に設定し、対象フレームＦｒｔと過去フレームＦｒｔ−２とを用いて動きベクトルの計測を行うようにする。また、この場合、過去フレームＦｒｔ−２，Ｆｒｔ−３の２つの過去フレームを動きベクトルの計測に使用すべく、フレーム数を２に設定する。
【００３５】
また、最も移動速度が小さい領域Ａ３については、間隔パラメータにより表されるフレーム間隔を３に設定し、対象フレームＦｒｔと過去フレームＦｒｔ−３とを用いて動きベクトルの計測を行うようにする。また、この場合、過去フレームＦｒｔ−３，Ｆｒｔ−４，Ｆｒｔ−５の３つの過去フレームを動きベクトルの計測に使用すべく、フレーム数を３に設定する。
【００３６】
ここで、動きベクトルの計測に使用する過去フレームのフレーム数は、対象画素が含まれる物体の移動速度が小さいほど、すなわち間隔パラメータにより表されるフレーム間隔が大きいほど、多くすることが計測精度向上の観点から好ましい。例えば、本実施形態の場合、間隔パラメータにより表されるフレーム間隔が２以下の場合には、使用する過去フレーム数を２、フレーム間隔が３以上の場合には、使用する過去フレーム数を３と設定することが好ましい。
【００３７】
なお、間隔パラメータ設定部４は、計測された動きベクトルに基づいて、次の対象フレームについて動きベクトルを計測する際の間隔パラメータを更新する。動きベクトルに基づく間隔パラメータの更新については後述する。
【００３８】
また、間隔パラメータ設定部４は、動きベクトルを計測した後、対象フレームＦｒｔの各画素位置において、動きベクトル計測の対象となる対象画素位置の動きベクトルと、対象画素位置周辺の複数の画素位置の動きベクトルとを比較し、すべての動きベクトルが同一の方向を向いていない、あるいはすべての動きベクトルの大きさが同一でない等、動きベクトルの方向が安定していない場合には、計測精度を向上させるために、動きベクトルの計測に使用する過去フレームの数が多くなるように、間隔パラメータを更新するものであってもよい。
【００３９】
ここで、対象画素位置およびその周辺の複数の画素位置からなる領域内に、動きのある物体が存在しない場合、領域内の画素位置における動きベクトルの平均値は０となる。一方、領域内に動きのある物体が移動してくると、領域内への移動の侵入の程度が大きくなるにつれて、動きベクトルの平均値は大きくなる。したがって、間隔パラメータ設定部４は、動きベクトルを計測した後、対象フレームＦｒｔの各画素位置において、動きベクトル計測の対象となる対象画素位置の動きベクトルと、対象画素位置周辺の複数の画素位置の動きベクトルとの平均値を算出し、平均値が大きいほどフレーム間隔が小さくなるとともに使用する過去フレームの数が少なくなり、平均値が小さいほどフレーム間隔が大きくなるとともに、使用する過去フレームの数が多くなるように、間隔パラメータを更新するものとしてもよい。
【００４０】
ここで、動きベクトル計測のための１回目の処理時には、対象フレームＦｒｔのすべての画素について動きベクトルが計測されていないため、画素毎に間隔パラメータを設定することができない。このため、動きベクトルの１回目の計測時には、間隔パラメータを設定することなく、対象フレームＦｒｔとすべての過去フレームＦｒｔ−ｉとを用いて動きベクトルを計測し、動きベクトルの大きさに応じて、画素毎に間隔パラメータを設定すればよい。そして、２回目の動きベクトルの計測時には、１回目の動きベクトルの計測により設定された間隔パラメータを用いて動きベクトルを計測すればよい。
【００４１】
動きベクトル計測部５は、対象フレームＦｒｔの各画素位置の動きベクトルを計測する。以下、動きベクトルの計測について説明する。なお、動きベクトル計測部５は、高階層の対象フレームおよび過去フレームを用いて動きベクトルを計測するが、以降の説明においては、高階層の対象フレームおよび過去フレームについても、参照符号としてＦｒｔおよびＦｒｔ−ｉを用いるものとする。図４は動きベクトル計測部５の構成を示す概略ブロック図である。図４に示すように、動きベクトル計測部５は、動きベクトル分布算出部５１、平均化処理部５２、動きベクトル検出部５３および誤計測判定部５４を備える。以下、動きベクトル計測部５の動きベクトル分布算出部５１、平均化処理部５２、動きベクトル検出部５３および誤計測判定部５４が行う各処理について説明する。
【００４２】
まず、動きベクトル分布算出部５１は、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとの動きベクトル分布を算出する。図５は動きベクトルの分布の算出を説明するための図である。なお、図５においては、対象フレームＦｒｔを実線で、過去フレームＦｒｔ−ｉを破線で示す。図５に示すように、動きベクトル計測部５は、まず対象フレームＦｒｔと過去フレームＦｒｔ−ｉとを一致させ、対象フレームＦｒｔ上の各画素位置において、過去フレームＦｒｔ−ｉとの相関を表すスコアＣ０を算出する。具体的には、下記の式（１）に示すように、スコア算出の対象となる対象画素を中心とする３×３サイズのブロックＢ０を使用し、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉ上においてブロックＢ０をラスタスキャンさせつつ、ブロックＢ０同志の対応する画素値の差分値の絶対値の和（平均絶対誤差）をスコアＣ０として算出する。ここで、ブロックサイズは３×３に限定されるものではないが、できるだけ小さいものであることが演算量を低減することができる。なお、式（１）において、ｆ（ｘ＋ｐ，ｙ＋ｑ）は対象フレームＦｒｔの画素値を、ｇ（ｘ＋ｐ，ｙ＋ｑ）は過去フレームＦｒｔ−ｉの画素値をそれぞれ示す。また、ｘ，ｙはそれぞれｘ方向、ｙ方向を示す。また、スコアＣ０としては平均二乗誤差を用いてもよい。
【数１】
2011191972.tif 000003
【００４３】
なお、動画像の撮影時における露出値の変動および予期しない明るさの変更による動きベクトルの誤検出を防止するために、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉにおける３×３サイズのブロック内の画素値の平均値ｆｍ，ｇｍを算出し、平均値ｆｍ，ｇｍを用いて下記の式（２）によりスコアＣ０を正規化して算出するようにしてもよい。
【数２】
2011191972.tif 000004
【００４４】
また、上記式（１）、（２）により算出したスコアＣ０は、画素同志の相関が高いほど小さい値となる。本実施形態においては、入力される動画像の画素値の最大値からスコアＣ０を減算することにより算出したスコアＣ１を用いて以降の説明を行うものとする。例えば、画像画８ビットの画像である場合、Ｃ１＝２５５−Ｃ０として算出することができる。なお、スコアＣ１は、画素同志の相関が高いほど大きい値となる。
【００４５】
さらに、動きベクトル分布算出部５１は、対象フレームＦｒｔに対して、過去フレームＦｒｔ−ｉを水平方向および垂直方向に±２画素の範囲で１画素ずつずらし、画素をずらす毎に対象フレームＦｒｔ上の各画素位置において、過去フレームＦｒｔ−ｉとのスコアＣ１を算出する。ここで、過去フレームＦｒｔ−ｉを対象フレームＦｒｔに対してずらすための水平方向の座標をｈ、垂直方向の座標をｖとすると、対象フレームＦｒｔに対する過去フレームＦｒｔ−ｉの画素のずらし量は（ｈ，ｖ）＝（ｋ，ｌ）（ｋ，ｌ＝−２〜＋２の整数）と表すことができる。具体的には、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとを一致させた場合は、（ｈ，ｖ）＝（０，０）となり、過去フレームＦｒｔ−ｉを対象フレームＦｒｔに対して水平方向に＋１画素ずらした場合は（ｈ，ｖ）＝（１，０）となる。図５には、（ｈ，ｖ）＝（０，０）、（１，０）、（２，０）、（１，１）および（−２，−２）の場合の、対象フレームＦｒｔに対する過去フレームＦｒｔ−ｉのずらし量を示す。なお、図５においては、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉのずらし量は、説明のために実際のずらし量よりも大きく示している。
【００４６】
このように水平方向および垂直方向に±２画素の範囲で、対象フレームＦｒｔに対して過去フレームＦｒｔ−ｉを１画素ずつずらしつつスコアＣ１を算出することにより、ずらし量毎に、対象フレームＦｒｔ上のすべての画素位置に各ずらし位置におけるスコアＣ１を割り当てたスコアＣ１の分布を算出することができる。ここで、スコアＣ１は、過去フレームＦｒｔ−ｉを対象フレームＦｒｔに対してずらした場合の、対象フレームＦｒｔ上における動きベクトルと見なすことができる。このため、本実施形態においては、スコアＣ１の分布を動きベクトル分布Ｄと称する。なお、画素のずらし方は５×５＝２５通りあることから、２５通りの動きベクトル分布Ｄ（ｋ，ｌ）（ｋ，ｌ＝−２〜＋２の整数）が算出されることとなる。これは、換言すれば、対象フレームＦｒｔの各画素位置に、ずらし位置に対応した２５個のスコアＣ１、すなわち動きベクトルが算出されていることを意味する。
【００４７】
平均化処理部５２は、動きベクトル分布Ｄ（ｋ，ｌ）に対して空間的な平均化フィルタ処理を行うことにより、動きベクトル分布Ｄ（ｋ，ｌ）のノイズを除去して、平均化された動きベクトル分布Ｄｍ（ｋ，ｌ）を算出する。平均化フィルタとしては、例えば３×３のサイズのものを用いることができるが、これに限定されるものではなく、所望するノイズ除去の程度に応じて適宜設定すればよい。また、使用するフィルタは平均化フィルタに限定されるものではなく、空間的なメディアンフィルタを用いてもよい。
【００４８】
動きベクトル検出部５３は、２５個の動きベクトルからなる動きベクトル分布Ｄｍ（ｋ，ｌ）を用いて、対象フレームＦｒｔの各画素位置における動きベクトルを検出する。以下、動きベクトルの検出について説明する。動きベクトル検出部５３は、対象フレームＦｒｔの各画素位置において、動きベクトル検出空間を設定し、動きベクトル検出空間において動きベクトルを再構成する。図６および図７は動きベクトルの再構成を説明するための図である。本実施形態においては、対象フレームＦｒｔに対して、過去フレームＦｒｔ−ｉを水平方向および垂直方向に±２画素の範囲で１画素ずつずらすことにより、対象フレームＦｒｔの各画素位置において、２５個のスコアＣ１すなわち動きベクトルが算出されていることから、動きベクトル検出の対象となる対象画素位置において、図６に示すように５×５＝２５画素の動きベクトル検出空間を設定する。なお、この動きベクトル検出空間の正負の方向は、動きベクトル分布を算出した場合の画素のずらし量の方向と同様である。
【００４９】
そして、動きベクトル検出部４３は、動きベクトル検出空間における２５の座標位置に、対応する画素のずらし量により算出された動きベクトル分布Ｄｍ（ｋ，ｌ）の、対応する画素位置のスコアＣ１を割り当てる。すなわち、動きベクトル検出空間の（０，０）の座標位置には、動きベクトル分布Ｄｍ（０，０）、（２，２）の座標位置には、動きベクトル分布Ｄｍ（２，２）の対象画素位置のスコアＣ１を割り当てる。これにより、図６に示すように、対象フレームＦｒｔの各画素位置について、動きベクトル検出空間にスコアＣ１すなわち動きベクトルが割り当てられて、対象画素位置の動きベクトルが再構成される。
【００５０】
次いで、動きベクトル検出部４３は、動きベクトル検出空間におけるスコアＣ１が最大となる座標位置を検出する。なお、スコアＣ１を算出した場合には、最大となる座標位置（以下、最大座標位置とする）を検出するものであり、スコアＣ０を算出した場合には、スコアＣ０が最小となる座標位置を検出するものである。そして、動きベクトル検出空間における中心座標位置（すなわち（０，０））を基準として、中心座標位置から最大座標位置へ向かうベクトルを動きベクトルとして検出する。例えば、図７に示すように動きベクトルが再構成された場合、最大座標位置は（２，２）となるため、図８に示すように、始点が（０，０）、終点が（２，２）となる動きベクトルを検出することができる。なお、動きベクトルの大きさは、中心座標位置から最大座標位置までの大きさとして検出することができる。例えば、動きベクトルの始点が（０，０）、終点が（２，２）の場合、動きベクトルの大きさは、２√２となる。
【００５１】
なお、検出された動きベクトルの大きさは、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔に応じて異なるものとなる。例えば、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔が１であれば、検出した動きベクトルの大きさをそのまま対象画素位置の動きベクトルの大きさとすることができる。一方、フレーム間隔が２であれば、動きベクトルの実際の大きさは、検出した動きベクトルの大きさの１／２倍、フレーム間隔が３であれば１／３倍となる。したがって、動きベクトル検出部５３は、動きベクトルを検出した場合、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔に応じて、動きベクトルの大きさを修正する。
【００５２】
動きベクトル検出部５３は、以上の処理を対象フレームＦｒｔのすべての画素位置において行うことにより、対象フレームＦｒｔのすべての画素位置における動きベクトルを検出する。なお、動きベクトル分布Ｄ（ｋ，ｌ）は、水平方向および垂直方向に±２画素の範囲で、対象フレームＦｒｔに対して過去フレームＦｒｔ−ｉをずらしつつ、動きベクトルを表すスコアＣ１を算出することにより算出される。このため、対象フレームＦｒｔの周囲の２画素の範囲においては、スコアＣ１が算出できない場合がある。したがって、動きベクトルは、対象フレームＦｒｔの周囲２画素の範囲を除く画素位置において検出されることとなる。
【００５３】
誤計測判定部５４は、動きベクトル検出部４３が検出した対象フレームＦｒｔの各画素位置における動きベクトルが誤計測であるか否かを判定する。ここで、動きベクトル検出部４３が検出した動きベクトルは、動きベクトル検出空間における中心座標位置を始点、スコアＣ１が最大（またはスコアＣ０が最小）となる座標位置を終点としている。しかしながら、本実施形態においては、動きベクトル分布を算出するのに３×３という、従来のブロックマッチング法のような８×８等のブロックと比較して小さいブロックを用いているため、フレーム中のノイズにより偶然に現れた動きベクトルを検出してしまうおそれがある。また、対象フレームＦｒｔにおける動きベクトルを検出した対象画素位置が、移動する物体ではなく、その物体の背景に対応するものである場合、動きベクトルがランダムな方向に発生するおそれがある。このような場合、検出した動きベクトルの始点の座標位置のスコアＣ１ｓと、終点の座標位置のスコアＣ１ｅとの差はそれほど大きくならない。
【００５４】
このため、誤計測判定部５４は、対象フレームＦｒｔにおける誤計測の判定の対象となる対象画素位置について、検出した動きベクトルの始点の座標位置のスコアＣ１ｓと、終点の座標位置のスコアＣ１ｅとの関係が、Ｃ１ｓ＞Ｃ１ｅ・αの場合に、検出した動きベクトルを誤計測されたものと判定し、対象画素位置の動きベクトルは計測されなかったとの判定結果を出力する。一方、Ｃ１ｓ≦Ｃ１ｅ・αの場合には、検出した動きベクトルは真の動きベクトルであると判定し、その動きベクトルを対象画素位置の判定結果として出力する。なお、動きベクトルが誤計測であると判定された対象画素位置については、動きベクトルが０であるとの判定結果を出力してもよい。ここで、係数αの値は、要求される計測精度に応じて設定すればよく、例えば０．９９等の値を用いることができるが、これに限定されるものではない。
【００５５】
なお、検出した動きベクトルの始点の座標位置のスコアＣ１ｓと、終点の座標位置のスコアＣ１ｅとの関係が、Ｃ１ｅ＞Ｃ１ｓ＞Ｃ１ｅ・αの場合に、検出した動きベクトルを誤計測されたものと判定するようにしてもよい。
【００５６】
一方、上記実施形態においては、対象フレームＦｒｔに対して過去フレームＦｒｔ−ｉをずらしつつ、動きベクトルを表すスコアＣ１を算出することにより動きベクトル分布Ｄ（ｋ，ｌ）を算出しているが、逆に過去フレームＦｒｔ−ｉに対して対象フレームＦｒｔをずらしつつ動きベクトル分布を算出して、対象フレームＦｒｔの各画素位置における動きベクトルを検出する場合を考える。なお、以降では説明のために、対象フレームＦｒｔに対して過去フレームＦｒｔ−ｉをずらした場合に検出した動きベクトルを第１の動きベクトル、過去フレームＦｒｔ−ｉに対して対象フレームＦｒｔをずらした場合に検出した動きベクトルを第２の動きベクトルと称する。この場合、第１および第２の動きベクトルが誤計測されたものでない場合、第１および第２の動きベクトルの大きさは一致し、第１の動きベクトルの方向と第２の動きベクトルの方向とは逆となる。しかしながら、第１および第２の動きベクトルが誤計測されたものである場合、第１および第２の動きベクトルの大きさは一致しないか、または第２の動きベクトルの方向が第１の動きベクトルの方向とは逆にならないものとなる。
【００５７】
このため、誤計測判定部５４において、図９に示すように、過去フレームＦｒｔ−ｉに対して対象フレームＦｒｔをずらしつつ、動きベクトル分布を算出することにより、第２の動きベクトルを検出し、対象フレームＦｒｔの対象画素位置における第１および第２の動きベクトルのそれぞれの始点および終点の画素位置を判定し、第１の動きベクトルの始点と第２の動きベクトルの終点とが一致し、かつ第１の動きベクトルの終点と第２の動きベクトルの始点とが一致する場合に、第１の動きベクトルを真の動きベクトルであると判定し、それ以外の場合には、第１の動きベクトルは誤計測であると判定するようにしてもよい。
【００５８】
なお、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとの間において移動する物体は、必ずしも１画素単位で移動するものではなく、１画素未満の単位で移動する場合もある。例えば、過去フレームＦｒｔ−ｉに含まれる移動する物体は、対象フレームＦｒｔにおいては、過去フレームＦｒｔ−ｉの位置から、１．５画素ずれるというように、いわゆるサブピクセル単位で移動する場合がある。このような場合、対象画素位置が真に移動している物体に対応するものであっても、その対象画素位置において計測した第２の動きベクトルの始点および終点のそれぞれの画素位置は、第１の動きベクトルの終点および始点の画素位置と完全に一致しない。このため、誤計測判定部５４は、第１および第２の動きベクトルを用いて誤計測を判定する場合、第２の動きベクトルの終点座標位置と第１の動きベクトルの始点座標位置との差が、水平および垂直方向に±１画素の範囲にあれば、第２の動きベクトルの大きさは第１の動きベクトルの大きさと一致するものであると判定するようにしてもよい。これにより、真の動きベクトルが誤計測であると判定される可能性を低減することができる。
【００５９】
また、対象フレームＦｒｔに対して対象フレームＦｒｔ自身をずらしつつ、上記と同様に相関が高いほど値が大きくなるスコアを算出することにより動きベクトル分布を算出することを考える。なお、このようにして算出される動きベクトル分布を自己動きベクトル分布と称するものとする。また、自己動きベクトル分布のスコアをＣ１′とする。図１０に示すように、対象フレームＦｒｔに移動する物体２０が含まれる場合、重なっている対象フレームＦｒｔ同士をずらすと、物体２０の位置もずれる。したがって、上記と同様に２５通りの自己動きベクトル分布を算出し、物体２０に対応する対象画素位置の動きベクトル検出空間に、自己動きベクトル分布のスコアＣ１′を割り当てた場合、図１１に示すように、中心座標位置（０，０）のスコアＣ１′は大きくなるが、それ以外の座標位置のスコアＣ１′は中心座標位置（０，０）から離れるほど小さくなる。
【００６０】
逆に、物体２０の単調背景に対応する対象画素位置の動きベクトル検出空間に、自己動きベクトル分布のスコアＣ１′を割り当てた場合、対象画素位置の周囲の画素位置の画素値は対象画素位置の画素値とそれほど変わらないため、動きベクトル検出空間の座標位置に拘わらず、スコアＣ１′は比較的大きいものとなる。
【００６１】
ここで、自己動きベクトル分布において、中心座標位置（０，０）以外の座標位置においてスコアＣ１′が大きくなるということは、その大きいスコアとなった座標位置において誤計測が起こっている可能性が高いということである。したがって、自己動きベクトル分布において、検出した動きベクトルの終点位置に対応する位置におけるスコアＣ１′の値に応じて、検出した動きベクトルが誤計測であるか否かを判定することができる。
【００６２】
このため、誤計測判定部５４は、自己動きベクトル分布を算出し、対象画素位置の動きベクトル検出空間に自己動きベクトル分布のスコアＣ１′を割り当て、対象画素位置の動きベクトルの終点となる動きベクトル検出空間上の座標位置における自己動きベクトル分布のスコアＣ１′を測定する。そして、測定したスコアＣ１′を所定のしきい値Ｔｈ１と比較し、スコアＣ１′がしきい値Ｔｈ１未満である場合に、動きベクトルを真の動きベクトルであると判定し、スコアＣ１′がしきい値Ｔｈ１以上である場合に、動きベクトルは誤計測であると判定するようにしてもよい。これにより、上記実施形態と同様に、動きベクトルの誤計測を判定することができる。
【００６３】
また、機械学習を用いて生成された、動きベクトルが真の動きベクトルであるか否かを判定する判別器を用いて、動きベクトルが真の動きベクトルであるか否かを判定するようにしてもよい。この場合、判別器は、動きベクトルが真の動きベクトルである動きベクトル検出空間のスコア分布を正の教師データ、動きベクトルが誤検出である動きベクトル検出空間のスコア分布を負の教師データとして使用して学習を行うことにより作成すればよい。
【００６４】
メモリ６は、間隔パラメータ設定部４が設定した間隔パラメータを記憶する。
【００６５】
制御部７は、階層化部３、間隔パラメータ設定部４および動きベクトル計測部５の動作を制御する。
【００６６】
次いで、本実施形態の動作について説明する。図１２は本実施形態において行われる処理を示すフローチャートである。なお、本実施形態においては、連続して入力されるフレーム毎に動きベクトルを計測するに際し、フレームの画素毎に間隔パラメータを設定するものであるが、１回目の動きベクトルの計測時には、フレーム内の各画素の動きベクトルが分からないため間隔パラメータを設定できない。このため、本実施形態においては、１回目の動きベクトルの計測時においては、間隔パラメータを使用せず、すべての過去フレームＦｒｔ−ｉと対象フレームＦｒｔとの間で動きベクトル分布を算出して、動きベクトルを計測して間隔パラメータを設定するものとする。なお、図１２に示すフローチャートにおいては、１回目の動きベクトルの計測が終了し、動きベクトルに基づいて対象フレームＦｒｔの画素毎に間隔パラメータが設定されてメモリ６に記憶されているものとする。
【００６７】
不図示の画像入力装置からフレームメモリ２に対象フレームＦｒｔおよび処理に必要な数の過去フレームＦｒｔ−ｉが記憶されると（ステップＳＴ１）、階層化部３が、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉを階層化する（ステップＳＴ２）。なお、現在の対象フレームＦｒｔについての動きベクトル計測の処理が終了した後には、次の対象フレームについて動きベクトル計測の処理が行われるが、その場合、階層化部３は次の対象フレームのみ階層化すればよいこととなる。
【００６８】
次いで、動きベクトル計測部５が、高階層の対象フレームＦｒｔにおける全画素位置の間隔パラメータをメモリ６から読み出し（ステップＳＴ３）、さらに対象フレームＦｒｔおよび対象フレームＦｒｔに時間的に最も近い過去フレームＦｒｔ−ｉをフレームメモリ２から読み出す（ステップＳＴ４）。そして、制御部７が高階層の対象フレームＦｒｔにおける動きベクトル計測の対象となる対象画素位置を初期位置に設定する（ステップＳＴ５）。なお、初期位置としては、例えば対象フレームＦｒｔの左上隅の画素位置を用いることができる。
【００６９】
次いで、制御部７は、対象画素位置の間隔パラメータを参照し、対象画素位置が、対象フレームＦｒｔと現在読み出している過去フレーム（現在の過去フレームとする）Ｆｒｔ−ｉとを用いて動きベクトルを計測する画素位置であるか否かを判定する（ステップＳＴ６）。ステップＳＴ６が肯定されると、制御部７はさらに対象画素位置について動きベクトルがすでに計測されているか否かを判定する（ステップＳＴ７）。ステップＳＴ７が否定されると、動きベクトル計測部５が対象フレームＦｒｔおよび現在の過去フレームＦｒｔ−ｉを用いて対象画素位置の動きベクトルの計測を行う（ステップＳＴ８）。動きベクトルの計測処理については後述する。ステップＳＴ８に続いて、およびステップＳＴ６が否定される、あるいはステップＳＴ７が肯定されると、制御部７は、対象画素位置が対象フレームＦｒｔの最終画素位置であるか否かを判定する（ステップＳＴ９）。ステップＳＴ９が否定されると、対象画素位置を次の画素位置に変更し（ステップＳＴ１０）、ステップＳＴ６に戻り、ステップＳＴ６以降の処理を繰り返す。
【００７０】
ステップＳＴ９が肯定されると、制御部７は、間隔パラメータにより表されるすべてのフレーム数の過去フレームＦｒｔ−ｉを用いて動きベクトルを計測したか否かを判定する（ステップＳＴ１１）。ステップＳＴ１１が否定されると、過去フレームＦｒｔ−ｉを次の過去フレームに変更するとともに、変更した過去フレームをフレームメモリ２から読み出し（ステップＳＴ１２）、ステップＳＴ５に戻り、ステップＳＴ６以降の処理を繰り返す。
【００７１】
一方、ステップＳＴ１１が肯定された場合は、動きベクトル計測部５は、動きベクトルの計測結果を出力する（ステップＳＴ１３）。なお、動きベクトルが計測された場合には、計測された動きベクトルを出力し、動きベクトルが計測されなかった場合には、動きベクトルが計測されなかった旨の計測結果、あるいは大きさが０の動きベクトルを出力する。
【００７２】
以上の処理を具体的に説明すると、動きベクトル計測部５は、過去フレームＦｒｔ−ｉについて、対象フレームＦｒｔの全画素についての間隔パラメータを参照して、動きベクトルを計測する。例えば過去フレームがＦｒｔ−１である場合、間隔パラメータによりフレーム間隔が１に設定されている画素位置においてのみ動きベクトルを計測する。そして、過去フレームＦｒｔ−ｉを次の過去フレームに変更し、次の過去フレームＦｒｔ−ｉについて、対象フレームＦｒｔの全画素についての間隔パラメータを参照して、動きベクトルを計測する。
【００７３】
なお、本実施形態においては、対象画素位置が間隔パラメータにより動きベクトルを計測する画素位置である場合であっても、対象画素位置において動きベクトルがすでに計測されている場合には、動きベクトルは計測されないこととなる。例えば、対象画素位置の間隔パラメータにより規定される過去フレームＦｒｔ−ｉが、例えばＦｒｔ−１〜Ｆｒｔ−３の３つある場合において、対象フレームＦｒｔと過去フレームＦｒｔ−１とを用いて動きベクトルが計測された場合、残りの過去フレームＦｒｔ−２，Ｆｒｔ−３については動きベクトルは計測されない。一方、動きベクトルが計測されていなければ、対象フレームＦｒｔと過去フレームＦｒｔ−２を用いて動きベクトルを計測する。動きベクトルが計測されれば、残りの過去フレームＦｒｔ−３については動きベクトルは計測されない。このように、動きベクトルが計測された場合には、間隔パラメータにより表されるすべての過去フレームＦｒｔ−ｉについて動きベクトルを計測しないようにすることにより、演算量を低減して処理を高速に行うことができる。
【００７４】
一方、ステップＳＴ１３に続いて、間隔パラメータ設定部４が、動きベクトルの計測結果に基づいて対象画素位置の間隔パラメータを更新する（ステップＳＴ１４）。以下、間隔パラメータの更新について説明する。
【００７５】
図１３は間隔パラメータの更新を説明するための図である。なお、ここでは、処理前の対象画素位置の間隔パラメータにより規定される過去フレームＦｒｔ−ｉが例えば、Ｆｒｔ−３〜Ｆｒｔ−５の３つである場合について説明する。なお、この場合、間隔パラメータにより規定されるフレーム間隔は３であり、フレーム数は３である。動きベクトルが過去フレームＦｒｔ−３を用いた処理により計測された場合には、先の間隔パラメータ設定時よりも対象画素位置の物体の移動速度が速まっている可能性があることから、先に設定された間隔パラメータよりも、フレーム間隔を１つ少なくする。また、フレーム間隔を１つ少なくすることにより、フレーム間隔が２となることから使用する過去フレームのフレーム数を２とする。したがって、間隔パラメータ設定部４は、フレーム間隔が２、フレーム数が２となるように間隔パラメータを更新する。これにより、次回の処理においては、過去フレームＦｒｔ−２，Ｆｒｔ−３が使用されることとなる。
【００７６】
一方、動きベクトルが過去フレームＦｒｔ−５を用いた処理により計測された場合には、先の間隔パラメータ設定時よりも対象画素位置の物体の移動速度が遅くなっている可能性があることから、先に設定された間隔パラメータよりも、フレーム間隔を１つ多くする。また、フレーム間隔を１つ多くすることにより、フレーム間隔が４となることから、使用する過去フレーム数は３のままである。したがって、間隔パラメータ設定部４は、フレーム間隔が４、フレーム数が３となるように間隔パラメータを更新する。これにより、次回の処理においては、過去フレームＦｒｔ−４，Ｆｒｔ−５、Ｆｒｔ−６が使用されることとなる。
【００７７】
また、いずれの過去フレームを用いても動きベクトルが計測されなかった場合には、使用する過去フレーム数を１つ多くする。したがって、間隔パラメータ設定部４は、フレーム間隔が３、フレーム数が４となるように間隔パラメータを更新する。これにより、次回の処理においては、過去フレームＦｒｔ−３，Ｆｒｔ−４，Ｆｒｔ−５、Ｆｒｔ−６が使用されることとなる。なお、使用する過去フレーム数を多くすると、演算量が多くなることから、使用する過去フレーム数の最大値を例えば４に設定しておくことが好ましい。なお、定期的に間隔パラメータを初期値（例えばフレーム間隔２、フレーム数３）にリセットするようにしてもよい。
【００７８】
さらに、計測された動きベクトルが０であった場合には、フレーム間隔を６とし、動きベクトルが計測されるまで、過去フレームＦｒｔ−６から過去フレームＦｒｔ−１まで順次使用して動きベクトルの計測を行うように、間隔パラメータを設定する。この場合、過去フレームＦｒｔ−６を用いて動きベクトルが計測されれば、そこで動きベクトルの計測を終了し、動きベクトルが計測されなければ、次に過去フレームＦｒｔ−５を用いて動きベクトルを計測し、以下順次過去フレームＦｒｔ−４〜Ｆｒｔ−１を用いて動きベクトルが計測されるまで、動きベクトルの計測を行うこととなる。
【００７９】
なお、本実施形態においては、６つの過去フレームＦｒｔ−１〜Ｆｒｔ−６を使用して動きベクトルを計測するものであるため、Ｆｒｔ−６以降の過去フレームは使用されない。このため、本実施形態においては、Ｆｒｔ−６以降の過去フレームを使用しないように間隔パラメータにおけるフレーム間隔の上限値が設定されている。上述したように本実施形態においては、使用する過去フレームのフレーム数の最大値は４であるため、フレーム間隔の上限値は４に設定されている。したがって、処理前の対象画素位置の間隔パラメータにより規定される過去フレームＦｒｔ−ｉが例えば、Ｆｒｔ−４〜Ｆｒｔ−６の場合において、動きベクトルが計測されなかった場合には、実質的には間隔パラメータは更新されないこととなる。
【００８０】
ステップＳＴ１４に続いて、次の対象フレームについて動きベクトルを計測すべく、制御部７は対象フレームＦｒｔを次のフレームに変更し（ｔ＝ｔ＋１、ステップＳＴ１５）、ステップＳＴ２に戻る。なお、ステップＳＴ２においては、次の対象フレームのみが階層化されることとなる。
【００８１】
図１４は動きベクトルの計測処理のフローチャートである。動きベクトル計測部５の動きベクトル分布算出部５１は、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのずらし量を初期値（例えば（ｈ，ｖ）＝（０，０））に設定し（ステップＳＴ２１）、動きベクトル分布Ｄを算出する（ステップＳＴ２２）。そして、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのすべてのずらし量について動きベクトル分布を算出したか否かを判定し（ステップＳＴ２３）、ステップＳＴ２３が否定されるとずらし量を変更し（ステップＳＴ２４）、ステップＳＴ２２に戻る。ステップＳＴ２３が肯定されると、平均化処理部５２が、算出した動きベクトル分布Ｄに対して平均化処理を施す（ステップＳＴ２５）。
【００８２】
続いて、動きベクトル検出部５３が動きベクトルを検出し（ステップＳＴ２６）、さらに誤計測判定部５４が動きベクトルの誤計測を判定し（ステップＳＴ２７）、動きベクトル計測処理を終了する。
【００８３】
このように、本実施形態においては、対象フレームＦｒｔ上における画素毎に、動きベクトルを計測する際の対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのフレーム間隔を表す間隔パラメータを設定し、間隔パラメータにしたがって動きベクトルを計測するようにしたものである。このため、フレーム中の物体の移動速度に応じた適切なフレーム間隔を設定することができ、その結果、物体の移動速度に拘わらず、精度よく動きベクトルを計測することができる。
【００８４】
また、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉを階層化し、最低階層以外の階層すなわち低解像度の対象フレームＦｒｔ上における画素毎に間隔パラメータを設定するようにしたため、演算量を低減して高速に動きベクトルを計測することができる。また、高階層のフレームを用いると、移動速度が小さい物体の動きベクトルの検出精度が低下するが、本実施形態によれば、フレーム中の物体の移動速度に応じた適切なフレーム間隔を設定しているため、物体の移動速度に拘わらず、精度よくかつ高速に動きベクトルを計測することができる。
【００８５】
また、動きベクトルの大きさが小さいほど、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとの間隔が大きくなるように間隔パラメータを変更することにより、移動速度が小さい物体についての動きベクトル、および移動速度が大きい物体についての動きベクトルの双方を精度よく検出することができる。
【００８６】
また、複数の過去フレームを用いることにより動きベクトルを確実に計測できるが、その際に複数の過去フレームについて、対象フレームに近いフレーム間隔の過去フレームから順に用いて動きベクトルを計測し、０以外の値の動きベクトルが計測されると、それ以降の過去フレームを用いての動きベクトルの計測を停止しているため、複数フレームのすべてについて動きベクトルを計測しなくてもよくなり、その結果、処理速度を向上させることができる。なお、対象フレームから離れたフレーム間隔の過去フレームから順に用いて動きベクトルを計測するようにしてもよいことはもちろんである。
【００８７】
また、上記実施形態においては、対象フレームＦｒｔ上の画素毎に間隔パラメータを設定しているが、移動する物体は複数の画素からなる領域に亘って存在する。このため、対象フレームＦｒｔ上の移動する物体に対応する領域毎に間隔パラメータを設定するようにしてもよい。
【００８８】
また、上記実施形態においては、動きベクトル計測部５において動きベクトル分布を算出することにより動きベクトルを計測しているが、動きベクトルの計測手法はこれに限定されるものではなく、従来のブロックマッチング法、あるいは上記特許文献１〜特許文献４に記載された手法等、任意の手法を用いることができることはもちろんである。なお、従来のブロックマッチング法を用いる場合であっても、本実施形態においては、ブロックサイズを小さくすることができるため、演算量を低減して、高速に処理を行うことができる。
【００８９】
また、上記実施形態においては、階層化部３において対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉを階層化し、高階層のフレームを用いて動きベクトルを計測しているが、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉを階層化することなく、対象フレームＦｒｔおよび過去フレームＦｒｔ−ｉそのものを用いて動きベクトルを計測するようにしてもよいことはもちろんである。
【００９０】
また、上記実施形態においては、対象フレームＦｒｔ上の各画素位置における動きベクトルについて、各画素位置近傍の複数画素位置の複数の動きベクトルに基づいて、対象画素位置の動きベクトルを決定するようにしてもよい。例えば、複数の画素位置の動きベクトルの平均値を対象画素位置の動きベクトルとしてもよい。これにより、動きベクトルのばらつきを抑えて、より精度よく対象画素位置の動きベクトルを計測することができる。
【００９１】
また、上記実施形態においては、動きベクトルが計測された場合には、間隔パラメータにより表されるすべての過去フレームＦｒｔ−ｉについて動きベクトルを計測しないようにしているが、すべての過去フレームＦｒｔ−ｉについて動きベクトルを計測するようにしてもよいことはもちろんである。この場合、すべての過去フレームを用いて計測した動きベクトルの平均値を、対象画素位置の動きベクトルとすればよい。
【００９２】
また、上記実施形態においては、動きベクトルを計測する際に、対象フレームＦｒｔと過去フレームＦｒｔ−ｉとのすらし量を±２画素としているが、これに限定されるものではなく、±１画素、あるいは±３画素等、求められる計測精度に応じてすらし量を適宜設定すればよい。
【００９３】
また、上記実施形態においては、動きベクトル分布Ｄを平均化しているが、動きベクトル分布Ｄを平均化することなく、動きベクトルを計測するようにしてもよいことはもちろんである。
【００９４】
以上、本発明の実施形態に係る装置１について説明したが、コンピュータを、上記の階層化部３、間隔パラメータ設定部４、動きベクトル計測部５および制御部７に対応する手段として機能させ、図１２および図１４に示すような処理を行わせるプログラムも、本発明の実施形態の１つである。また、そのようなプログラムを記録したコンピュータ読取り可能な記録媒体も、本発明の実施形態の１つである。
【符号の説明】
【００９５】
１    動きベクトル計測装置
２    フレームメモリ
３    階層化部
４    間隔パラメータ設定部
５    動きベクトル計測部
５１    動きベクトル分布算出部
５２    平均化処理部
５３    動きベクトル検出部
５４    誤計測判定部
【図１】
2011191972.tif 000005
【図２】
2011191972.tif 000006
【図３】
2011191972.tif 000007
【図４】
2011191972.tif 000008
【図５】
2011191972.tif 000009
【図６】
2011191972.tif 000010
【図７】
2011191972.tif 000011
【図８】
2011191972.tif 000012
【図９】
2011191972.tif 000013
【図１０】
2011191972.tif 000014
【図１１】
2011191972.tif 000015
【図１２】
2011191972.tif 000016
【図１３】
2011191972.tif 000017
【図１４】
2011191972.tif 000018